@skillzmarket/sdk 0.1.2 → 0.1.4
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 +159 -14
- package/dist/bin/init.d.ts +1 -1
- package/dist/bin/init.d.ts.map +1 -1
- package/dist/bin/init.js +2 -0
- package/dist/bin/init.js.map +1 -1
- package/dist/creator/index.d.ts +1 -0
- package/dist/creator/index.d.ts.map +1 -1
- package/dist/creator/index.js +2 -0
- package/dist/creator/index.js.map +1 -1
- package/dist/creator/init.d.ts.map +1 -1
- package/dist/creator/init.js +97 -79
- package/dist/creator/init.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ SDK for discovering and calling paid AI skills with automatic x402 crypto paymen
|
|
|
10
10
|
- **Discover skills** - Search and explore the Skillz Market registry
|
|
11
11
|
- **Automatic payments** - x402 protocol handles USDC payments seamlessly
|
|
12
12
|
- **Create skills** - Monetize your AI services with zero crypto knowledge
|
|
13
|
+
- **Simple auth** - API key authentication (no wallet signing on each start)
|
|
13
14
|
- **Type-safe** - Full TypeScript support with comprehensive types
|
|
14
15
|
- **Base network** - Fast, low-cost transactions on Base mainnet
|
|
15
16
|
|
|
@@ -23,22 +24,44 @@ pnpm add @skillzmarket/sdk viem
|
|
|
23
24
|
|
|
24
25
|
## Quick Start
|
|
25
26
|
|
|
26
|
-
###
|
|
27
|
+
### Creator: Monetize Your Skills
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
import { SkillzMarket } from '@skillzmarket/sdk';
|
|
29
|
+
The fastest way to get started is with the interactive setup:
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
```bash
|
|
32
|
+
npx @skillzmarket/sdk init
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
This will:
|
|
36
|
+
1. Guide you through getting an API key from the dashboard
|
|
37
|
+
2. Set up your wallet (use existing or generate a new one)
|
|
38
|
+
3. Save configuration to `.env`
|
|
39
|
+
|
|
40
|
+
Then create your skills:
|
|
36
41
|
|
|
37
42
|
```typescript
|
|
38
43
|
import { skill, serve } from '@skillzmarket/sdk/creator';
|
|
39
44
|
|
|
40
|
-
const echo = skill({
|
|
41
|
-
|
|
45
|
+
const echo = skill({
|
|
46
|
+
price: '$0.001',
|
|
47
|
+
description: 'Echoes input back',
|
|
48
|
+
}, async (input) => ({ echo: input }));
|
|
49
|
+
|
|
50
|
+
serve({ echo }, {
|
|
51
|
+
register: {
|
|
52
|
+
endpoint: 'https://your-server.com',
|
|
53
|
+
enabled: true,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Consumer: Call Paid Skills
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { SkillzMarket } from '@skillzmarket/sdk';
|
|
62
|
+
|
|
63
|
+
const market = new SkillzMarket({ wallet: '0x...' });
|
|
64
|
+
const result = await market.call('text-to-image', { prompt: 'A sunset' });
|
|
42
65
|
```
|
|
43
66
|
|
|
44
67
|
## Documentation
|
|
@@ -145,6 +168,37 @@ Payments use the [x402 protocol](https://x402.org):
|
|
|
145
168
|
|
|
146
169
|
The creator API lets you monetize your AI skills.
|
|
147
170
|
|
|
171
|
+
### Getting Started
|
|
172
|
+
|
|
173
|
+
#### 1. Interactive Setup (Recommended)
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
npx @skillzmarket/sdk init
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
This guides you through:
|
|
180
|
+
- Getting an API key from [skillz.market/dashboard](https://skillz.market/dashboard)
|
|
181
|
+
- Setting up your wallet (enter existing address or generate a new one)
|
|
182
|
+
- Saving to `.env`
|
|
183
|
+
|
|
184
|
+
#### 2. Manual Setup
|
|
185
|
+
|
|
186
|
+
Set environment variables:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
export SKILLZ_API_KEY="sk_..." # API key from dashboard
|
|
190
|
+
export SKILLZ_WALLET_ADDRESS="0x..." # Your wallet address
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Or pass them directly:
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
serve({ echo }, {
|
|
197
|
+
apiKey: 'sk_...',
|
|
198
|
+
wallet: '0x...',
|
|
199
|
+
});
|
|
200
|
+
```
|
|
201
|
+
|
|
148
202
|
### Functions
|
|
149
203
|
|
|
150
204
|
| Function | Description |
|
|
@@ -152,6 +206,8 @@ The creator API lets you monetize your AI skills.
|
|
|
152
206
|
| `skill(options, handler)` | Define a monetized skill |
|
|
153
207
|
| `serve(skills, options?)` | Start the skill server |
|
|
154
208
|
| `register(skills, options)` | Register skills with marketplace |
|
|
209
|
+
| `init()` | Interactive CLI setup |
|
|
210
|
+
| `checkConfig()` | Validate SDK configuration |
|
|
155
211
|
|
|
156
212
|
### Example
|
|
157
213
|
|
|
@@ -189,6 +245,55 @@ serve({ summarize, translate }, {
|
|
|
189
245
|
});
|
|
190
246
|
```
|
|
191
247
|
|
|
248
|
+
### Configuration Helpers
|
|
249
|
+
|
|
250
|
+
#### init()
|
|
251
|
+
|
|
252
|
+
Interactive CLI setup that guides you through configuration:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
npx @skillzmarket/sdk init
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
The wizard will:
|
|
259
|
+
|
|
260
|
+
1. **API Key Setup**: Guide you to get an API key from the dashboard
|
|
261
|
+
2. **Wallet Setup**: Ask if you have an existing wallet
|
|
262
|
+
- **Yes**: Enter your wallet address (0x...)
|
|
263
|
+
- **No**: Option to generate a new wallet
|
|
264
|
+
- Generates a secure private key and address
|
|
265
|
+
- Displays the private key with a security warning
|
|
266
|
+
- Saves both `SKILLZ_WALLET_ADDRESS` and `SKILLZ_WALLET_KEY` to `.env`
|
|
267
|
+
3. **Save Configuration**: Write to `.env` file or show shell export commands
|
|
268
|
+
|
|
269
|
+
You can also call it programmatically:
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
import { init } from '@skillzmarket/sdk/creator';
|
|
273
|
+
|
|
274
|
+
await init();
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### checkConfig()
|
|
278
|
+
|
|
279
|
+
Validate that required configuration is present:
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
import { checkConfig } from '@skillzmarket/sdk/creator';
|
|
283
|
+
|
|
284
|
+
const config = checkConfig();
|
|
285
|
+
|
|
286
|
+
if (!config.configured) {
|
|
287
|
+
console.error('Configuration issues:');
|
|
288
|
+
config.issues.forEach(issue => console.error(` - ${issue}`));
|
|
289
|
+
process.exit(1);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// config.apiKey - boolean, true if SKILLZ_API_KEY is valid
|
|
293
|
+
// config.walletAddress - boolean, true if wallet is configured
|
|
294
|
+
// config.issues - string[], list of configuration problems
|
|
295
|
+
```
|
|
296
|
+
|
|
192
297
|
### Price Formats
|
|
193
298
|
|
|
194
299
|
Creators can specify prices in multiple formats:
|
|
@@ -216,7 +321,10 @@ interface SkillOptions {
|
|
|
216
321
|
```typescript
|
|
217
322
|
interface ServeOptions {
|
|
218
323
|
port?: number; // Port to listen on (default: 3002)
|
|
219
|
-
wallet?:
|
|
324
|
+
wallet?: string; // Wallet address (42-char) or private key (66-char)
|
|
325
|
+
// Falls back to SKILLZ_WALLET_ADDRESS or SKILLZ_WALLET_KEY env
|
|
326
|
+
apiKey?: string; // API key for registration
|
|
327
|
+
// Falls back to SKILLZ_API_KEY env
|
|
220
328
|
network?: string; // Network (default: 'eip155:8453')
|
|
221
329
|
register?: {
|
|
222
330
|
endpoint: string; // Your public server URL
|
|
@@ -230,13 +338,30 @@ interface ServeOptions {
|
|
|
230
338
|
|
|
231
339
|
---
|
|
232
340
|
|
|
341
|
+
## Authentication Flow
|
|
342
|
+
|
|
343
|
+
The SDK uses API key authentication for skill registration:
|
|
344
|
+
|
|
345
|
+
1. **One-time setup**: Sign with your wallet on [skillz.market/dashboard](https://skillz.market/dashboard) to create your account
|
|
346
|
+
2. **Get API key**: Create an API key in the dashboard's "API Keys" section
|
|
347
|
+
3. **Use in SDK**: The API key authenticates registration requests - no signing required
|
|
348
|
+
|
|
349
|
+
Benefits over wallet signing on every start:
|
|
350
|
+
- No private key needed in your skill server
|
|
351
|
+
- Can rotate/revoke keys without changing wallet
|
|
352
|
+
- Same security (wallet verified at account creation)
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
233
356
|
## Environment Variables
|
|
234
357
|
|
|
235
358
|
| Variable | Description | Required |
|
|
236
359
|
|----------|-------------|----------|
|
|
237
|
-
| `
|
|
360
|
+
| `SKILLZ_API_KEY` | API key for registration | Yes (creator) |
|
|
361
|
+
| `SKILLZ_WALLET_ADDRESS` | Wallet address for receiving payments | Yes (creator) |
|
|
362
|
+
| `SKILLZ_WALLET_KEY` | Private key (saved when wallet is generated via `init`) | No* |
|
|
238
363
|
|
|
239
|
-
|
|
364
|
+
*`SKILLZ_WALLET_KEY` is automatically saved when you generate a new wallet via `npx @skillzmarket/sdk init`. For serving skills, only the address is needed. The private key is useful for consumers making payments or if you need to access the generated wallet elsewhere.
|
|
240
365
|
|
|
241
366
|
## Security Considerations
|
|
242
367
|
|
|
@@ -246,9 +371,22 @@ All API URLs must use HTTPS. The SDK rejects HTTP URLs (except localhost for dev
|
|
|
246
371
|
|
|
247
372
|
### Wallet Security
|
|
248
373
|
|
|
249
|
-
|
|
250
|
-
-
|
|
251
|
-
-
|
|
374
|
+
With API key authentication, your skill server only needs a wallet **address** (not private key) for receiving payments. The private key is only used when:
|
|
375
|
+
- Creating your account (one-time signature in dashboard)
|
|
376
|
+
- Making payments as a consumer
|
|
377
|
+
|
|
378
|
+
**If you generate a wallet via `init`:**
|
|
379
|
+
- The private key is displayed once and saved to `.env`
|
|
380
|
+
- Store it securely (password manager, hardware wallet backup)
|
|
381
|
+
- Never commit `.env` to source control
|
|
382
|
+
- You cannot retrieve the private key later if lost
|
|
383
|
+
|
|
384
|
+
### API Key Security
|
|
385
|
+
|
|
386
|
+
- Store API keys securely (environment variables, secrets manager)
|
|
387
|
+
- Never commit API keys to source control
|
|
388
|
+
- Rotate keys if compromised via the dashboard
|
|
389
|
+
- Use separate keys for development/production
|
|
252
390
|
|
|
253
391
|
### Error Handling
|
|
254
392
|
|
|
@@ -299,6 +437,13 @@ interface ParsedPrice {
|
|
|
299
437
|
amount: string;
|
|
300
438
|
currency: 'USDC';
|
|
301
439
|
}
|
|
440
|
+
|
|
441
|
+
interface RegistrationResult {
|
|
442
|
+
name: string;
|
|
443
|
+
success: boolean;
|
|
444
|
+
slug?: string;
|
|
445
|
+
error?: string;
|
|
446
|
+
}
|
|
302
447
|
```
|
|
303
448
|
|
|
304
449
|
---
|
package/dist/bin/init.d.ts
CHANGED
package/dist/bin/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAGA,OAAO,eAAe,CAAC"}
|
package/dist/bin/init.js
CHANGED
package/dist/bin/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAEA,4CAA4C;AAC5C,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/creator/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/creator/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAgB7D,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/creator/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAgB7D,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqL1C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAwBA"}
|
package/dist/creator/init.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as readline from 'readline';
|
|
4
|
+
import pc from 'picocolors';
|
|
5
|
+
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
4
6
|
const DASHBOARD_URL = 'https://skillz.market/dashboard';
|
|
5
7
|
/**
|
|
6
8
|
* Interactive setup for Skillz Market SDK.
|
|
@@ -27,20 +29,20 @@ export async function init() {
|
|
|
27
29
|
});
|
|
28
30
|
};
|
|
29
31
|
console.log('');
|
|
30
|
-
console.log('='.repeat(60));
|
|
31
|
-
console.log(' Skillz Market SDK - Setup');
|
|
32
|
-
console.log('='.repeat(60));
|
|
32
|
+
console.log(pc.dim('='.repeat(60)));
|
|
33
|
+
console.log(pc.bold(' Skillz Market SDK - Setup'));
|
|
34
|
+
console.log(pc.dim('='.repeat(60)));
|
|
33
35
|
console.log('');
|
|
34
36
|
// Check for existing API key
|
|
35
37
|
const existingKey = process.env.SKILLZ_API_KEY;
|
|
36
38
|
if (existingKey) {
|
|
37
|
-
console.log('✓ Found existing API key in environment: SKILLZ_API_KEY');
|
|
38
|
-
console.log(` Key prefix: ${existingKey.slice(0, 11)}...`);
|
|
39
|
+
console.log(pc.green('✓') + ' Found existing API key in environment: ' + pc.cyan('SKILLZ_API_KEY'));
|
|
40
|
+
console.log(pc.dim(` Key prefix: ${existingKey.slice(0, 11)}...`));
|
|
39
41
|
console.log('');
|
|
40
42
|
const overwrite = await question('Do you want to set up a new key? (y/N): ');
|
|
41
43
|
if (overwrite.toLowerCase() !== 'y') {
|
|
42
44
|
console.log('');
|
|
43
|
-
console.log('Setup complete! Your existing API key will be used.');
|
|
45
|
+
console.log(pc.green('Setup complete!') + ' Your existing API key will be used.');
|
|
44
46
|
rl.close();
|
|
45
47
|
return;
|
|
46
48
|
}
|
|
@@ -49,106 +51,122 @@ export async function init() {
|
|
|
49
51
|
// Instructions for getting an API key
|
|
50
52
|
console.log('To register skills, you need an API key from Skillz Market.');
|
|
51
53
|
console.log('');
|
|
52
|
-
console.log('Steps to get your API key:');
|
|
54
|
+
console.log(pc.bold('Steps to get your API key:'));
|
|
53
55
|
console.log('');
|
|
54
|
-
console.log(' 1. Go to: ' + DASHBOARD_URL);
|
|
55
|
-
console.log(' 2. Connect your wallet');
|
|
56
|
-
console.log(' 3. Sign to authenticate (one-time)');
|
|
57
|
-
console.log(' 4. Find the "API Keys" section');
|
|
58
|
-
console.log(' 5. Click "Create Key" and copy the key');
|
|
56
|
+
console.log(pc.dim(' 1.') + ' Go to: ' + pc.cyan(DASHBOARD_URL));
|
|
57
|
+
console.log(pc.dim(' 2.') + ' Connect your wallet');
|
|
58
|
+
console.log(pc.dim(' 3.') + ' Sign to authenticate (one-time)');
|
|
59
|
+
console.log(pc.dim(' 4.') + ' Find the "API Keys" section');
|
|
60
|
+
console.log(pc.dim(' 5.') + ' Click "Create Key" and copy the key');
|
|
59
61
|
console.log('');
|
|
60
62
|
// Wait for user to get the key
|
|
61
63
|
const apiKey = await question('Paste your API key here (sk_...): ');
|
|
62
64
|
if (!apiKey) {
|
|
63
65
|
console.log('');
|
|
64
|
-
console.log('No API key provided. Setup cancelled.');
|
|
66
|
+
console.log(pc.red('No API key provided. Setup cancelled.'));
|
|
65
67
|
rl.close();
|
|
66
68
|
return;
|
|
67
69
|
}
|
|
68
70
|
if (!apiKey.startsWith('sk_')) {
|
|
69
71
|
console.log('');
|
|
70
|
-
console.log('⚠️ Warning: API keys should start with "sk_"');
|
|
71
|
-
console.log(' The key you entered might be invalid.');
|
|
72
|
+
console.log(pc.yellow('⚠️ Warning:') + ' API keys should start with "sk_"');
|
|
73
|
+
console.log(pc.dim(' The key you entered might be invalid.'));
|
|
72
74
|
console.log('');
|
|
73
75
|
}
|
|
74
|
-
// Ask
|
|
75
|
-
console.log('');
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
// Ask about wallet setup
|
|
77
|
+
console.log('');
|
|
78
|
+
let walletAddress;
|
|
79
|
+
let generatedPrivateKey = null;
|
|
80
|
+
const hasWallet = await question('Do you have a wallet set up to receive payments? (y/N): ');
|
|
81
|
+
if (hasWallet.toLowerCase() === 'y') {
|
|
82
|
+
// User has existing wallet
|
|
83
|
+
const inputAddress = await question('Enter your wallet address (0x...): ');
|
|
84
|
+
if (!inputAddress) {
|
|
85
|
+
console.log('');
|
|
86
|
+
console.log(pc.red('No wallet address provided. Setup cancelled.'));
|
|
87
|
+
rl.close();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!inputAddress.startsWith('0x') || inputAddress.length !== 42) {
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(pc.yellow('⚠️ Warning:') + ' Wallet address should be 42 characters starting with "0x"');
|
|
93
|
+
console.log('');
|
|
94
|
+
}
|
|
95
|
+
walletAddress = inputAddress;
|
|
82
96
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
console.log('⚠️ Warning: Wallet address should be 42 characters starting with "0x"');
|
|
97
|
+
else {
|
|
98
|
+
// User doesn't have a wallet
|
|
86
99
|
console.log('');
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
console.log(' 3. Cancel');
|
|
95
|
-
console.log('');
|
|
96
|
-
const choice = await question('Choose an option (1/2/3): ');
|
|
97
|
-
console.log('');
|
|
98
|
-
if (choice === '1') {
|
|
99
|
-
// Write to .env file
|
|
100
|
-
const envPath = path.resolve(process.cwd(), '.env');
|
|
101
|
-
let envContent = '';
|
|
102
|
-
// Read existing .env if it exists
|
|
103
|
-
if (fs.existsSync(envPath)) {
|
|
104
|
-
envContent = fs.readFileSync(envPath, 'utf-8');
|
|
105
|
-
// Remove existing SKILLZ_ variables
|
|
106
|
-
envContent = envContent
|
|
107
|
-
.split('\n')
|
|
108
|
-
.filter((line) => !line.startsWith('SKILLZ_API_KEY=') && !line.startsWith('SKILLZ_WALLET_ADDRESS='))
|
|
109
|
-
.join('\n');
|
|
110
|
-
if (envContent && !envContent.endsWith('\n')) {
|
|
111
|
-
envContent += '\n';
|
|
112
|
-
}
|
|
100
|
+
const generateWallet = await question('Would you like to generate a new wallet? (y/N): ');
|
|
101
|
+
if (generateWallet.toLowerCase() !== 'y') {
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log(pc.dim('You need a wallet to receive payments for your skills.'));
|
|
104
|
+
console.log(pc.dim('Run this setup again when you have a wallet ready.'));
|
|
105
|
+
rl.close();
|
|
106
|
+
return;
|
|
113
107
|
}
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
fs.writeFileSync(envPath, envContent);
|
|
119
|
-
console.log('✓ Configuration saved to .env');
|
|
108
|
+
// Generate new wallet
|
|
109
|
+
generatedPrivateKey = generatePrivateKey();
|
|
110
|
+
const account = privateKeyToAccount(generatedPrivateKey);
|
|
111
|
+
walletAddress = account.address;
|
|
120
112
|
console.log('');
|
|
121
|
-
console.log(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
console.log('
|
|
113
|
+
console.log(pc.yellow('╔════════════════════════════════════════════════════════════════╗'));
|
|
114
|
+
console.log(pc.yellow('║') + pc.bold(pc.red(' ⚠️ IMPORTANT: SAVE YOUR PRIVATE KEY NOW! ')) + pc.yellow(' ║'));
|
|
115
|
+
console.log(pc.yellow('║ ║'));
|
|
116
|
+
console.log(pc.yellow('║') + ' You will ' + pc.bold('NOT') + ' be able to retrieve it later. ' + pc.yellow(' ║'));
|
|
117
|
+
console.log(pc.yellow('║') + ' Store it securely (password manager, hardware wallet). ' + pc.yellow(' ║'));
|
|
118
|
+
console.log(pc.yellow('╚════════════════════════════════════════════════════════════════╝'));
|
|
125
119
|
console.log('');
|
|
126
|
-
console.log(
|
|
127
|
-
console.log(
|
|
120
|
+
console.log(' Private Key: ' + pc.magenta(generatedPrivateKey));
|
|
121
|
+
console.log(' Wallet Address: ' + pc.cyan(walletAddress));
|
|
128
122
|
console.log('');
|
|
129
|
-
|
|
123
|
+
await question('Press Enter once you have saved your private key...');
|
|
130
124
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
125
|
+
// Write directly to .env
|
|
126
|
+
const envPath = path.resolve(process.cwd(), '.env');
|
|
127
|
+
let envContent = '';
|
|
128
|
+
// Read existing .env if it exists
|
|
129
|
+
if (fs.existsSync(envPath)) {
|
|
130
|
+
envContent = fs.readFileSync(envPath, 'utf-8');
|
|
131
|
+
// Remove existing SKILLZ_ variables
|
|
132
|
+
envContent = envContent
|
|
133
|
+
.split('\n')
|
|
134
|
+
.filter((line) => !line.startsWith('SKILLZ_API_KEY=') &&
|
|
135
|
+
!line.startsWith('SKILLZ_WALLET_ADDRESS=') &&
|
|
136
|
+
!line.startsWith('SKILLZ_WALLET_KEY='))
|
|
137
|
+
.join('\n');
|
|
138
|
+
if (envContent && !envContent.endsWith('\n')) {
|
|
139
|
+
envContent += '\n';
|
|
140
|
+
}
|
|
135
141
|
}
|
|
142
|
+
// Add new variables
|
|
143
|
+
envContent += `\n# Skillz Market SDK Configuration\n`;
|
|
144
|
+
envContent += `SKILLZ_API_KEY=${apiKey}\n`;
|
|
145
|
+
envContent += `SKILLZ_WALLET_ADDRESS=${walletAddress}\n`;
|
|
146
|
+
if (generatedPrivateKey) {
|
|
147
|
+
envContent += `SKILLZ_WALLET_KEY=${generatedPrivateKey}\n`;
|
|
148
|
+
}
|
|
149
|
+
fs.writeFileSync(envPath, envContent);
|
|
150
|
+
console.log('');
|
|
151
|
+
console.log(pc.green('✓') + ' Configuration saved to ' + pc.cyan('.env'));
|
|
152
|
+
console.log('');
|
|
153
|
+
console.log(pc.yellow('Make sure .env is in your .gitignore!'));
|
|
136
154
|
console.log('');
|
|
137
|
-
console.log('='.repeat(60));
|
|
138
|
-
console.log(' Setup Complete!');
|
|
139
|
-
console.log('='.repeat(60));
|
|
155
|
+
console.log(pc.dim('='.repeat(60)));
|
|
156
|
+
console.log(pc.bold(pc.green(' Setup Complete!')));
|
|
157
|
+
console.log(pc.dim('='.repeat(60)));
|
|
140
158
|
console.log('');
|
|
141
159
|
console.log('You can now use the SDK:');
|
|
142
160
|
console.log('');
|
|
143
|
-
console.log(' import { skill, serve } from "@skillzmarket/sdk/creator";');
|
|
161
|
+
console.log(pc.dim(' import { skill, serve } from "@skillzmarket/sdk/creator";'));
|
|
144
162
|
console.log('');
|
|
145
|
-
console.log(' const mySkill = skill({ price: "$0.001" }, async (input) => {');
|
|
146
|
-
console.log(' return { result: "Hello!" };');
|
|
147
|
-
console.log(' });');
|
|
163
|
+
console.log(pc.dim(' const mySkill = skill({ price: "$0.001" }, async (input) => {'));
|
|
164
|
+
console.log(pc.dim(' return { result: "Hello!" };'));
|
|
165
|
+
console.log(pc.dim(' });'));
|
|
148
166
|
console.log('');
|
|
149
|
-
console.log(' serve({ mySkill }, {');
|
|
150
|
-
console.log(' register: { endpoint: "https://your-server.com", enabled: true }');
|
|
151
|
-
console.log(' });');
|
|
167
|
+
console.log(pc.dim(' serve({ mySkill }, {'));
|
|
168
|
+
console.log(pc.dim(' register: { endpoint: "https://your-server.com", enabled: true }'));
|
|
169
|
+
console.log(pc.dim(' });'));
|
|
152
170
|
console.log('');
|
|
153
171
|
rl.close();
|
|
154
172
|
}
|
package/dist/creator/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/creator/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAmB,EAAE;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,6BAA6B;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,0CAA0C,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QAC7E,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,sCAAsC,CAAC,CAAC;YAClF,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,kCAAkC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,sCAAsC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,+BAA+B;IAC/B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC7D,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,mCAAmC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,aAAqB,CAAC;IAC1B,IAAI,mBAAmB,GAAyB,IAAI,CAAC;IAErD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,0DAA0D,CAAC,CAAC;IAE7F,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QACpC,2BAA2B;QAC3B,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAE3E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACpE,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,4DAA4D,CAAC,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,aAAa,GAAG,YAAY,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,kDAAkD,CAAC,CAAC;QAE1F,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC1E,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,mBAAmB,GAAG,kBAAkB,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QACzD,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,mDAAmD,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,iEAAiE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,QAAQ,CAAC,qDAAqD,CAAC,CAAC;IACxE,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,kCAAkC;IAClC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,oCAAoC;QACpC,UAAU,GAAG,UAAU;aACpB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACnC,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC1C,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CACzC;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,UAAU,IAAI,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,UAAU,IAAI,uCAAuC,CAAC;IACtD,UAAU,IAAI,kBAAkB,MAAM,IAAI,CAAC;IAC3C,UAAU,IAAI,yBAAyB,aAAa,IAAI,CAAC;IACzD,IAAI,mBAAmB,EAAE,CAAC;QACxB,UAAU,IAAI,qBAAqB,mBAAmB,IAAI,CAAC;IAC7D,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,0BAA0B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAA;IAE/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,EAAE,CAAC,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IAMzB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEzF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;SAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5C,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;QAChE,MAAM;KACP,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skillzmarket/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "SDK for discovering and calling paid AI skills with automatic x402 payments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -61,12 +61,14 @@
|
|
|
61
61
|
"node": ">=18.0.0"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
+
"dotenv": "^16.0.0",
|
|
64
65
|
"@hono/node-server": "^1.19.9",
|
|
65
66
|
"@x402/core": "^2.2.0",
|
|
66
67
|
"@x402/evm": "^2.2.0",
|
|
67
68
|
"@x402/fetch": "^2.2.0",
|
|
68
69
|
"@x402/hono": "^2.2.0",
|
|
69
70
|
"hono": "^4.0.0",
|
|
71
|
+
"picocolors": "^1.1.1",
|
|
70
72
|
"user": "^0.0.0",
|
|
71
73
|
"viem": "^2.0.0"
|
|
72
74
|
},
|