@proxygate/cli 0.1.8 → 0.1.9

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 (48) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/apis.d.ts.map +1 -1
  3. package/dist/commands/apis.js +4 -1
  4. package/dist/commands/apis.js.map +1 -1
  5. package/dist/commands/balance.d.ts.map +1 -1
  6. package/dist/commands/balance.js +17 -0
  7. package/dist/commands/balance.js.map +1 -1
  8. package/dist/commands/commands-meta.d.ts +4 -0
  9. package/dist/commands/commands-meta.d.ts.map +1 -0
  10. package/dist/commands/commands-meta.js +235 -0
  11. package/dist/commands/commands-meta.js.map +1 -0
  12. package/dist/commands/deposit.d.ts.map +1 -1
  13. package/dist/commands/deposit.js +5 -2
  14. package/dist/commands/deposit.js.map +1 -1
  15. package/dist/commands/getting-started-steps.d.ts.map +1 -1
  16. package/dist/commands/getting-started-steps.js +9 -2
  17. package/dist/commands/getting-started-steps.js.map +1 -1
  18. package/dist/commands/getting-started.js +1 -1
  19. package/dist/commands/listings/create.d.ts.map +1 -1
  20. package/dist/commands/listings/create.js +151 -15
  21. package/dist/commands/listings/create.js.map +1 -1
  22. package/dist/commands/listings/index.d.ts +2 -2
  23. package/dist/commands/listings/index.js +2 -2
  24. package/dist/commands/listings/update.d.ts.map +1 -1
  25. package/dist/commands/listings/update.js +2 -1
  26. package/dist/commands/listings/update.js.map +1 -1
  27. package/dist/commands/listings.test.js +1 -0
  28. package/dist/commands/listings.test.js.map +1 -1
  29. package/dist/commands/metadata.d.ts +4 -0
  30. package/dist/commands/metadata.d.ts.map +1 -0
  31. package/dist/commands/metadata.js +55 -0
  32. package/dist/commands/metadata.js.map +1 -0
  33. package/dist/commands/proxy.js +2 -2
  34. package/dist/commands/proxy.js.map +1 -1
  35. package/dist/commands/proxy.test.js +1 -0
  36. package/dist/commands/proxy.test.js.map +1 -1
  37. package/dist/commands/settlements.d.ts.map +1 -1
  38. package/dist/commands/settlements.js +12 -1
  39. package/dist/commands/settlements.js.map +1 -1
  40. package/dist/commands/skills.d.ts.map +1 -1
  41. package/dist/commands/skills.js +28 -17
  42. package/dist/commands/skills.js.map +1 -1
  43. package/dist/generated/skills.d.ts.map +1 -1
  44. package/dist/generated/skills.js +14 -8
  45. package/dist/generated/skills.js.map +1 -1
  46. package/dist/index.js +5 -1
  47. package/dist/index.js.map +1 -1
  48. package/package.json +13 -12
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAU5D"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAU5D"}
@@ -5,13 +5,18 @@ import { SKILLS } from '../generated/skills.js';
5
5
  import { green, dim, yellow } from '../format.js';
6
6
  const HOOK_SCRIPT_PATH = join(homedir(), '.claude', 'skills', 'pg-update', 'scripts', 'check-update.sh');
7
7
  const HOOK_MARKER = 'proxygate-update-check';
8
+ /** Skill install targets — Claude Code and Codex CLI use different directories. */
9
+ const SKILL_TARGETS = [
10
+ { name: 'Claude Code', dir: join(homedir(), '.claude', 'skills') },
11
+ { name: 'Codex CLI', dir: join(homedir(), '.agents', 'skills') },
12
+ ];
8
13
  export function registerSkillsCommand(program) {
9
14
  const skills = program
10
15
  .command('skills')
11
- .description('Manage Claude Code skills for ProxyGate');
16
+ .description('Manage agent skills for ProxyGate');
12
17
  skills
13
18
  .command('install')
14
- .description('Install ProxyGate skills for Claude Code (writes to ~/.claude/skills/)')
19
+ .description('Install ProxyGate skills for Claude Code and Codex CLI')
15
20
  .option('--json', 'JSON output')
16
21
  .action(installSkills);
17
22
  }
@@ -28,33 +33,39 @@ async function installSkills(options) {
28
33
  }
29
34
  process.exit(1);
30
35
  }
31
- const baseDir = join(homedir(), '.claude', 'skills');
32
- const installed = [];
33
- for (const [skillName, files] of Object.entries(SKILLS)) {
34
- const skillDir = join(baseDir, skillName);
35
- const writtenFiles = [];
36
- for (const [relativePath, content] of Object.entries(files)) {
37
- const fullPath = join(skillDir, relativePath);
38
- await mkdir(dirname(fullPath), { recursive: true });
39
- await writeFile(fullPath, content, 'utf-8');
40
- writtenFiles.push(relativePath);
36
+ const results = [];
37
+ for (const target of SKILL_TARGETS) {
38
+ const installed = [];
39
+ for (const [skillName, files] of Object.entries(SKILLS)) {
40
+ const skillDir = join(target.dir, skillName);
41
+ const writtenFiles = [];
42
+ for (const [relativePath, content] of Object.entries(files)) {
43
+ const fullPath = join(skillDir, relativePath);
44
+ await mkdir(dirname(fullPath), { recursive: true });
45
+ await writeFile(fullPath, content, 'utf-8');
46
+ writtenFiles.push(relativePath);
47
+ }
48
+ installed.push({ name: skillName, files: writtenFiles });
41
49
  }
42
- installed.push({ name: skillName, files: writtenFiles });
50
+ results.push({ target: target.name, path: target.dir, installed });
43
51
  }
44
52
  const hookRegistered = await registerUpdateHook();
45
53
  if (json) {
46
- console.log(JSON.stringify({ installed, path: baseDir, hookRegistered }));
54
+ console.log(JSON.stringify({ results, hookRegistered }));
47
55
  return;
48
56
  }
49
57
  console.log();
50
- for (const skill of installed) {
51
- console.log(` ${green('+')} ${skill.name} ${dim(`(${skill.files.length} files)`)}`);
58
+ for (const result of results) {
59
+ console.log(` ${dim(result.target)}:`);
60
+ for (const skill of result.installed) {
61
+ console.log(` ${green('+')} ${skill.name} ${dim(`(${skill.files.length} files)`)}`);
62
+ }
52
63
  }
53
64
  if (hookRegistered) {
54
65
  console.log(` ${green('+')} SessionStart hook ${dim('(update checker)')}`);
55
66
  }
56
67
  console.log();
57
- console.log(green(`Installed ${installed.length} skills to ${baseDir}`));
68
+ console.log(green(`Installed ${results[0].installed.length} skills to ${results.length} targets`));
58
69
  }
59
70
  async function registerUpdateHook() {
60
71
  const settingsPath = join(homedir(), '.claude', 'settings.json');
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/generated/skills.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBzD,CAAC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/generated/skills.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BzD,CAAC"}
@@ -1,22 +1,28 @@
1
1
  // AUTO-GENERATED by scripts/embed-skills.ts — do not edit
2
2
  export const SKILLS = {
3
3
  "pg-buy": {
4
- "SKILL.md": "---\nname: pg-buy\ndescription: Use when buying API access through ProxyGate — depositing USDC, browsing available APIs, making proxy requests, or streaming responses. Make sure to use this skill whenever someone mentions \"proxy request\", \"buy API\", \"deposit USDC\", \"browse APIs\", \"call API through proxygate\", \"make an API call\", or wants to consume any API through ProxyGate, even if they don't explicitly say \"buy\".\n---\n\n# ProxyGate — Buy API Access\n\nBuyer workflow: deposit USDC, discover APIs, proxy requests, stream responses.\n\n<purpose>\nHelp the user find APIs on ProxyGate, deposit USDC credits, send proxy requests, and manage their balance. Covers the full buyer lifecycle from funding to API consumption.\n</purpose>\n\n<required_reading>\nVerify CLI is configured first: `proxygate balance`. If this fails, use `/pg-setup` before continuing.\n</required_reading>\n\n<process>\n\n<step name=\"check_balance\">\nCheck current balance to determine if deposit is needed:\n\n```bash\nproxygate balance\n```\n\nIf balance is 0 or insufficient, proceed to deposit step.\nIf balance is sufficient, skip to discover step.\n</step>\n\n<step name=\"deposit\">\nDeposit USDC from Solana wallet into ProxyGate vault:\n\n```bash\n# Amount in lamports (1 USDC = 1,000,000)\nproxygate deposit -a 5000000 # deposit 5 USDC\nproxygate deposit -a 1000000 # deposit 1 USDC\nproxygate deposit -a 10000000 # deposit 10 USDC\n```\n\nVerify deposit:\n```bash\nproxygate balance\n```\n\nThe vault auto-initializes on first deposit. User needs USDC in their Solana wallet.\n</step>\n\n<step name=\"discover_apis\">\nBrowse available APIs and find a listing ID:\n\n```bash\nproxygate pricing # all APIs with pricing\nproxygate pricing --service openai # filter by service\nproxygate pricing --json # machine-readable for parsing\nproxygate apis # list all APIs\nproxygate services # list services\nproxygate categories # list categories\n```\n\nNote the `listing-id` from the output — needed for proxy requests.\n</step>\n\n<step name=\"proxy_request\">\nSend a request through ProxyGate:\n\n```bash\n# Basic request\nproxygate proxy <listing-id> /v1/chat/completions \\\n -d '{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'\n\n# GET request\nproxygate proxy <listing-id> /v1/models -X GET\n\n# Stream SSE responses\nproxygate proxy <listing-id> /v1/chat/completions --stream \\\n -d '{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"stream\":true}'\n\n# With shield scanning\nproxygate proxy <listing-id> /path -d '{}' --shield monitor\n```\n\nThe listing ID determines which seller and service. Get IDs with: `proxygate pricing --json`\n</step>\n\n<step name=\"check_usage\">\nReview usage and remaining balance:\n\n```bash\nproxygate balance # current balance\nproxygate usage # request history\nproxygate usage --service openai --limit 50 # filtered\nproxygate usage --json # machine-readable\n```\n</step>\n\n<step name=\"withdraw\">\nConvert credits back to USDC (optional):\n\n```bash\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all\n```\n\nAfter initiating, confirm with TX signature:\n```bash\nproxygate withdraw-confirm -t <tx_signature>\n```\n</step>\n\n</process>\n\n## SDK (Programmatic)\n\nFor agent-to-agent use without the CLI:\n\n```typescript\nimport { ProxyGateClient } from '@proxygate/sdk';\n\nconst client = await ProxyGateClient.create({\n keypairPath: '~/.proxygate/keypair.json',\n});\n\n// Check balance\nconst balance = await client.balance();\n\n// Proxy a request\nconst res = await client.proxy('listing-id', '/v1/chat/completions', {\n model: 'gpt-4',\n messages: [{ role: 'user', content: 'Hello' }],\n});\n```\n\n<success_criteria>\n- [ ] Balance checked and sufficient for request\n- [ ] Listing ID identified from pricing/apis output\n- [ ] Proxy request returns upstream API response\n- [ ] Usage reflects the completed request\n</success_criteria>\n\n## Scope\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `/pg-setup` |\n| Buy API access | **This skill** (`pg-buy`) |\n| Sell API capacity | `/pg-sell` |\n| Check status | `/pg-status` |\n| Update CLI | `/pg-update` |\n\n## Reference\n\nFor full CLI command reference, see [references/commands.md](references/commands.md).\n",
5
- "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for all `proxygate` CLI commands. Use `--json` on most commands for structured output.\n\n## Global Options\n\nAll commands accept:\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair\nproxygate init --keypair ~/.proxygate/k.json --gateway https://gateway.proxygate.ai\nproxygate getting-started # interactive setup guide\n```\n\n## Buyer Commands\n\n```bash\nproxygate balance # check USDC balance\nproxygate pricing # browse APIs with pricing\nproxygate pricing --service openai # filter by service\nproxygate apis # list all APIs\nproxygate services # list available services\nproxygate categories # list API categories\nproxygate proxy <listing-id> <path> -d '{}' # proxy a request\nproxygate proxy <id> <path> --stream -d '{}' # stream SSE responses\nproxygate deposit -a 5000000 # deposit 5 USDC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw-confirm -t <tx_sig> # confirm withdrawal TX\nproxygate usage # view usage history\nproxygate usage --service openai --limit 50\nproxygate rate <listing-id> -s 5 -c \"Great\" # rate a seller\n```\n\n## Seller Commands\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config file\nproxygate dev # tunnel + request logging + config watch\nproxygate dev -c my-services.yaml\nproxygate settlements # view earnings summary\n```\n\n## Agent Builder Commands\n\n```bash\nproxygate create # scaffold agent project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs claim <job-id> # claim a job\nproxygate jobs submit <job-id> -d '{}' # submit job result\n```\n\n## Skills Management\n\n```bash\nproxygate skills install # install Claude Code skills\nproxygate skills install --json # JSON output\n```\n\n## Important Notes\n\n- All USDC amounts are in base units (lamports): 1 USDC = 1,000,000\n- Keypair is a standard Solana keypair (JSON array of 64 numbers)\n- Generate keypair: `solana-keygen new --outfile ~/.proxygate/keypair.json --no-bip39-passphrase`\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
4
+ "SKILL.md": "---\nname: pg-buy\ndescription: Use when buying API access through ProxyGate — depositing USDC, browsing available APIs, making proxy requests, streaming responses, or rating sellers. Make sure to use this skill whenever someone mentions \"proxy request\", \"buy API\", \"deposit USDC\", \"browse APIs\", \"call API through proxygate\", \"make an API call\", \"find an API\", \"search APIs\", or wants to consume any API through ProxyGate, even if they don't explicitly say \"buy\".\n---\n\n# ProxyGate — Buy API Access\n\nBuyer workflow: deposit USDC, discover APIs, proxy requests, stream responses, rate sellers.\n\n## Process\n\n### 1. Check balance\n\n```bash\nproxygate balance\n```\n\nShows: total balance, pending settlement, available, cooldown status. If 0 or insufficient, deposit first.\n\n### 2. Deposit USDC\n\n```bash\nproxygate deposit -a 5000000 # 5 USDC (amounts in lamports: 1 USDC = 1,000,000)\nproxygate deposit -a 1000000 # 1 USDC\n```\n\nVault auto-initializes on first deposit. User needs USDC in their Solana wallet. Use `--rpc <url>` for custom RPC.\n\n### 3. Discover APIs\n\n```bash\n# Browse all APIs with rich filtering\nproxygate apis # all listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\n# Aggregated views\nproxygate pricing # pricing table (service, type, price, sellers, RPM)\nproxygate pricing -s anthropic --json # machine-readable\nproxygate services # service stats (cheapest, avg latency, rating)\nproxygate categories # browse categories\n\n# Listing details & docs\nproxygate listings docs <listing-id> # view API documentation\n```\n\nNote the `listing-id` from output — needed for proxy requests.\n\n### 4. Proxy a request\n\n```bash\n# POST request (default when -d is given)\nproxygate proxy <listing-id> /v1/chat/completions \\\n -d '{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'\n\n# GET request\nproxygate proxy <listing-id> /v1/models -X GET\n\n# Stream SSE responses\nproxygate proxy <listing-id> /v1/chat/completions --stream \\\n -d '{\"model\":\"gpt-4\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"stream\":true}'\n\n# With shield scanning (content moderation)\nproxygate proxy <listing-id> /path --shield monitor # log threats\nproxygate proxy <listing-id> /path --shield strict # block threats\nproxygate proxy <listing-id> /path --shield off # disable\n```\n\n### 5. Rate a seller\n\nAfter a proxy request, rate the seller using the request ID from the response receipt:\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n### 6. Check usage\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filtered by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json # machine-readable\n\nproxygate settlements -r buyer # cost breakdown\nproxygate settlements -s openai --from 2026-03-01 # filtered\n```\n\n### 7. Withdraw (optional)\n\nConvert credits back to USDC:\n\n```bash\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\n```\n\nRecovery (if CLI crashes mid-withdrawal):\n```bash\nproxygate withdraw-confirm --tx <tx_signature>\n```\n\n## SDK (Programmatic)\n\nFor agent-to-agent use without CLI:\n\n```typescript\nimport { ProxyGateClient, parseSSE } from '@proxygate/sdk';\n\nconst client = await ProxyGateClient.create({\n keypairPath: '~/.proxygate/keypair.json',\n});\n\n// Check balance\nconst { balance, available } = await client.balance();\n\n// Browse APIs\nconst apis = await client.apis({ service: 'openai', verified: true });\nconst categories = await client.categories();\nconst services = await client.services();\n\n// View listing docs\nconst docs = await client.docs('listing-id');\n\n// Proxy a request\nconst res = await client.proxy('listing-id', '/v1/chat/completions', {\n model: 'gpt-4',\n messages: [{ role: 'user', content: 'Hello' }],\n});\n\n// Stream with SSE\nconst res = await client.proxy('listing-id', '/v1/chat/completions',\n { model: 'gpt-4', messages: [...], stream: true },\n { stream: true }\n);\nfor await (const event of parseSSE(res)) {\n process.stdout.write(event.data);\n}\n\n// Shield scanning\nconst res = await client.proxy('listing-id', '/path', body, { shield: 'strict' });\n\n// Rate a seller\nawait client.rate({ request_id: 'req-id', is_positive: true });\n\n// Usage & settlements\nconst usage = await client.usage({ service: 'openai', limit: 50 });\nconst settlements = await client.settlements({ role: 'buyer' });\n```\n\n## Success criteria\n\n- [ ] Balance checked and sufficient for request\n- [ ] Listing ID identified from apis/pricing output\n- [ ] Proxy request returns upstream API response\n- [ ] Usage reflects the completed request\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `pg-setup` |\n| Buy API access | **This skill** |\n| Sell API capacity | `pg-sell` |\n| Job marketplace | `pg-jobs` |\n| Check status | `pg-status` |\n| Update CLI/SDK | `pg-update` |\n",
5
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
6
+ },
7
+ "pg-jobs": {
8
+ "SKILL.md": "---\nname: pg-jobs\ndescription: Use when interacting with the ProxyGate job marketplace / bounty board — listing jobs, creating bounties, claiming work, submitting results, or managing job lifecycle. Make sure to use this skill whenever someone mentions \"bounty\", \"job board\", \"post a job\", \"claim a job\", \"submit work\", \"find work\", \"gig\", \"freelance task\", or wants to post or complete tasks on ProxyGate.\n---\n\n# ProxyGate — Job Marketplace\n\nPost bounties, find work, and complete tasks on ProxyGate's decentralized job board. Jobs are escrow-backed — reward is locked on creation and released on acceptance.\n\n## Concepts\n\n- **Poster**: creates a job, locks USDC reward in escrow\n- **Solver**: claims and completes the job\n- **Interaction types**: `M2M` (machine-to-machine), `H2M` (human posts, machine solves), `M2H` (machine posts, human solves)\n- **Lifecycle**: open → claimed → submitted → accepted/rejected → completed/refunded\n\n## Process\n\n### 1. Browse available jobs\n\n```bash\nproxygate jobs list # all open jobs\nproxygate jobs list --status open # filter by status\nproxygate jobs list --category ai-models # filter by category\nproxygate jobs list --search \"data extraction\" # search title/description\nproxygate jobs list --interaction-type M2M # machine-to-machine only\nproxygate jobs list --table # human-readable table\nproxygate jobs list --limit 50\n\nproxygate jobs get <job-id> # full job details\nproxygate jobs get <job-id> --table # formatted view\n```\n\n### 2. Create a job (poster)\n\nInteractive:\n```bash\nproxygate jobs create\n```\n\nNon-interactive:\n```bash\nproxygate jobs create --non-interactive \\\n --title \"Extract product data from 100 URLs\" \\\n --description \"Scrape product name, price, and availability...\" \\\n --reward 10.5 \\\n --category data-extraction \\\n --interaction-type M2M \\\n --deadline 2026-03-20\n```\n\nThe reward amount (in USDC) is locked in escrow on creation. You need sufficient balance.\n\n### 3. Claim a job (solver)\n\n```bash\nproxygate jobs claim <job-id>\n```\n\nOnly one solver can claim a job at a time. The job moves to `claimed` status.\n\n### 4. Submit work (solver)\n\n```bash\nproxygate jobs submit <job-id> --text \"Here are the results...\"\nproxygate jobs submit <job-id> --url \"https://github.com/user/repo/pull/42\"\n```\n\nSupports markdown in `--text`. URL is useful for linking to PRs, gists, or deployments.\n\n### 5. Review submission (poster)\n\n```bash\nproxygate jobs get <job-id> # see submission details\n\nproxygate jobs accept <job-id> # release escrow to solver\nproxygate jobs reject <job-id> --reason \"Missing 30 URLs\"\n```\n\nA second rejection triggers admin dispute review.\n\n### 6. Cancel a job (poster)\n\n```bash\nproxygate jobs cancel <job-id> # refund escrow\n```\n\nOnly works before a submission has been accepted.\n\n## SDK (Programmatic)\n\n```typescript\nimport { ProxyGateClient } from '@proxygate/sdk';\n\nconst client = await ProxyGateClient.create({\n keypairPath: '~/.proxygate/keypair.json',\n});\n\n// Browse jobs\nconst { jobs } = await client.jobs.list({ status: 'open', category: 'ai-models' });\n\n// Get details\nconst job = await client.jobs.get('job-id');\n\n// Create a job (locks escrow)\nconst { job_id } = await client.jobs.create({\n title: 'Extract product data',\n description: 'Scrape 100 URLs...',\n reward_usdc: 10.5,\n category: 'data-extraction',\n interaction_type: 'M2M',\n deadline: '2026-03-20',\n});\n\n// Claim and submit (solver)\nawait client.jobs.claim('job-id');\nawait client.jobs.submit('job-id', { result_text: 'Results here...', result_url: 'https://...' });\n\n// Accept or reject (poster)\nawait client.jobs.accept('job-id'); // releases escrow to solver\nawait client.jobs.reject('job-id', { reason: 'Incomplete' });\n\n// Cancel (poster) — refunds escrow\nawait client.jobs.cancel('job-id');\n```\n\n## Success criteria\n\n- [ ] Jobs listed and filterable\n- [ ] Job created with escrow locked\n- [ ] Job claimed by solver\n- [ ] Submission reviewed and accepted/rejected\n- [ ] Escrow released or refunded correctly\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `pg-setup` |\n| Buy API access | `pg-buy` |\n| Sell API capacity | `pg-sell` |\n| Job marketplace | **This skill** |\n| Check status | `pg-status` |\n| Update CLI/SDK | `pg-update` |\n",
9
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
6
10
  },
7
11
  "pg-sell": {
8
- "SKILL.md": "---\nname: pg-sell\ndescription: Use when selling API capacity on ProxyGate — creating listings, starting tunnels, managing keys, viewing earnings, or exposing local services. Make sure to use this skill whenever someone mentions \"list API\", \"sell capacity\", \"create listing\", \"start tunnel\", \"expose service\", \"earnings\", \"go live\", \"monetize API\", or wants to make their API available on ProxyGate.\n---\n\n# ProxyGate — Sell API Capacity\n\nSeller workflow: create listings, expose services via tunnel, manage earnings.\n\n<purpose>\nHelp the user list their API capacity on ProxyGate, expose services via reverse tunnel, scaffold agent projects, and track earnings.\n</purpose>\n\n<required_reading>\nVerify CLI is configured first: `proxygate balance`. If this fails, use `/pg-setup` before continuing.\n</required_reading>\n\n<process>\n\n<step name=\"scaffold_project\">\nIf building a new service, scaffold it first:\n\n```bash\nproxygate create # interactive\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\nTemplates: `http-api` (generic HTTP), `llm-agent` (LLM-based agent).\n</step>\n\n<step name=\"test_locally\">\nValidate endpoints before going live:\n\n```bash\nproxygate test # auto-detect from config\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n</step>\n\n<step name=\"create_listing\">\nCreate a listing on ProxyGate:\n\n```bash\nproxygate listings create # interactive — walks through service, pricing, etc.\n```\n\nThis is interactive and asks for: service name, pricing model, description, and endpoint info.\n\nView existing listings:\n```bash\nproxygate listings list\nproxygate listings list --table\nproxygate listings list --json\n```\n</step>\n\n<step name=\"configure_tunnel\">\nCreate a tunnel config file (`proxygate.tunnel.yaml`):\n\n```yaml\nservices:\n - name: my-api\n port: 8080\n price_per_request: 1000 # lamports (0.001 USDC)\n description: My AI service\n docs: ./openapi.yaml\n endpoints:\n - method: POST\n path: /v1/analyze\n description: Analyze code\n```\n\nFor per-token pricing:\n```yaml\nservices:\n - name: llm-service\n port: 3000\n pricing_unit: per_token\n price_per_input_token: 100\n price_per_output_token: 300\n```\n</step>\n\n<step name=\"start_tunnel\">\nExpose services to ProxyGate:\n\n```bash\n# Development (request logging + config file watching)\nproxygate dev\nproxygate dev -c my-services.yaml\n\n# Production (stable connection, auto-reconnect)\nproxygate tunnel\nproxygate tunnel -c proxygate.tunnel.yaml\n```\n\nDev mode watches the config file for changes and shows request logs. Production mode is for stable, long-running connections.\n</step>\n\n<step name=\"check_earnings\">\nMonitor performance and earnings:\n\n```bash\nproxygate settlements # earnings summary\nproxygate balance # current balance\nproxygate listings list # check listing status\n```\n</step>\n\n</process>\n\n## SDK — One-Liner Serve\n\nFor programmatic use without CLI:\n\n```typescript\nimport { ProxyGate } from '@proxygate/sdk';\n\nconst tunnel = await ProxyGate.serve({\n keypair: '~/.proxygate/keypair.json',\n services: [\n { name: 'code-review', port: 3000, docs: './openapi.yaml' },\n ],\n onConnected(listings) { console.log('Live!', listings); },\n});\n\n// Graceful shutdown\nawait tunnel.drain(); // waits for in-flight requests\ntunnel.disconnect();\n```\n\n<success_criteria>\n- [ ] Service running locally and responding to requests\n- [ ] Listing created (visible in `proxygate listings list`)\n- [ ] Tunnel connected (dev or production mode)\n- [ ] Incoming requests visible in dev mode logs\n</success_criteria>\n\n## Scope\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `/pg-setup` |\n| Buy API access | `/pg-buy` |\n| Sell API capacity | **This skill** (`pg-sell`) |\n| Check status | `/pg-status` |\n| Update CLI | `/pg-update` |\n\n## Reference\n\nFor full CLI command reference, see [references/commands.md](references/commands.md).\n",
9
- "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for all `proxygate` CLI commands. Use `--json` on most commands for structured output.\n\n## Global Options\n\nAll commands accept:\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair\nproxygate init --keypair ~/.proxygate/k.json --gateway https://gateway.proxygate.ai\nproxygate getting-started # interactive setup guide\n```\n\n## Buyer Commands\n\n```bash\nproxygate balance # check USDC balance\nproxygate pricing # browse APIs with pricing\nproxygate pricing --service openai # filter by service\nproxygate apis # list all APIs\nproxygate services # list available services\nproxygate categories # list API categories\nproxygate proxy <listing-id> <path> -d '{}' # proxy a request\nproxygate proxy <id> <path> --stream -d '{}' # stream SSE responses\nproxygate deposit -a 5000000 # deposit 5 USDC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw-confirm -t <tx_sig> # confirm withdrawal TX\nproxygate usage # view usage history\nproxygate usage --service openai --limit 50\nproxygate rate <listing-id> -s 5 -c \"Great\" # rate a seller\n```\n\n## Seller Commands\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config file\nproxygate dev # tunnel + request logging + config watch\nproxygate dev -c my-services.yaml\nproxygate settlements # view earnings summary\n```\n\n## Agent Builder Commands\n\n```bash\nproxygate create # scaffold agent project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs claim <job-id> # claim a job\nproxygate jobs submit <job-id> -d '{}' # submit job result\n```\n\n## Skills Management\n\n```bash\nproxygate skills install # install Claude Code skills\nproxygate skills install --json # JSON output\n```\n\n## Important Notes\n\n- All USDC amounts are in base units (lamports): 1 USDC = 1,000,000\n- Keypair is a standard Solana keypair (JSON array of 64 numbers)\n- Generate keypair: `solana-keygen new --outfile ~/.proxygate/keypair.json --no-bip39-passphrase`\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
12
+ "SKILL.md": "---\nname: pg-sell\ndescription: Use when selling API capacity on ProxyGate — creating listings, managing listings (update/pause/delete), rotating keys, uploading docs, starting tunnels, managing headers, viewing earnings, or exposing local services. Make sure to use this skill whenever someone mentions \"list API\", \"sell capacity\", \"create listing\", \"start tunnel\", \"expose service\", \"earnings\", \"go live\", \"monetize API\", \"rotate key\", \"pause listing\", or wants to make their API available on ProxyGate.\n---\n\n# ProxyGate — Sell API Capacity\n\nSeller workflow: create listings, manage them, expose services via tunnel, track earnings.\n\n## Process\n\n### 1. Scaffold a project (optional)\n\nIf building a new service from scratch:\n\n```bash\nproxygate create # interactive\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\nTemplates: `http-api` (Hono REST API), `llm-agent` (Hono + OpenAI + streaming).\n\n### 2. Test locally\n\nValidate endpoints before going live:\n\n```bash\nproxygate test # auto-detect from tunnel config\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\nproxygate test -c proxygate.tunnel.yaml\n```\n\n### 3. Create a listing\n\n```bash\nproxygate listings create # interactive — walks through service, pricing, description, docs\n```\n\nInteractive mode asks for: service name, API key, pricing model, description, documentation, shield settings.\n\nNon-interactive:\n```bash\nproxygate listings create --non-interactive \\\n --service-name \"My API\" \\\n --service openai \\\n --price-per-request 5000 \\\n --total-rpm 100 \\\n --description \"Fast GPT-4 access\"\n```\n\n### 4. Manage listings\n\n```bash\n# View listings\nproxygate listings list # list your listings\nproxygate listings list --table # table format with status, RPM, price\n\n# Update a listing\nproxygate listings update <id> --price 3000 --description \"Updated pricing\"\n\n# Pause/unpause (stop accepting requests temporarily)\nproxygate listings pause <id>\nproxygate listings unpause <id>\n\n# Delete permanently\nproxygate listings delete <id>\n\n# Rotate API key or OAuth2 credentials (no downtime)\nproxygate listings rotate-key <id> --key <new-api-key>\nproxygate listings rotate-key <id> --oauth2 <new-token>\n\n# Upload API documentation\nproxygate listings upload-docs <id> ./openapi.yaml # OpenAPI or markdown\n\n# View docs for your listing\nproxygate listings docs <id>\n\n# Manage upstream headers\nproxygate listings headers <id> # list current headers\nproxygate listings headers <id> set X-Custom \"value\" # add/update header\nproxygate listings headers <id> unset X-Custom # remove header\n```\n\n### 5. Configure tunnel\n\nCreate `proxygate.tunnel.yaml`:\n\n```yaml\nservices:\n - name: my-api\n port: 8080\n price_per_request: 1000 # lamports (0.001 USDC)\n description: My AI service\n docs: ./openapi.yaml # auto-uploaded on connect\n endpoints:\n - method: POST\n path: /v1/analyze\n description: Analyze code\n paths:\n - /v1/*\n```\n\nPer-token pricing:\n```yaml\nservices:\n - name: llm-service\n port: 3000\n pricing_unit: per_token\n price_per_input_token: 100\n price_per_output_token: 300\n```\n\n### 6. Start tunnel\n\n```bash\n# Development (request logging + config file watching + auto-reload)\nproxygate dev\nproxygate dev -c my-services.yaml\n\n# Production (stable connection, auto-reconnect, graceful drain on Ctrl+C)\nproxygate tunnel\nproxygate tunnel -c proxygate.tunnel.yaml\n```\n\nDev mode shows live request/response logs with status, latency, and size. Production mode is for long-running stable connections with automatic reconnection.\n\n### 7. Check earnings\n\n```bash\nproxygate settlements # earnings summary\nproxygate settlements -r seller # seller-specific view\nproxygate settlements -s openai --from 2026-03-01 # filtered\nproxygate balance # current balance\nproxygate listings list --table # listing status overview\n```\n\n## SDK — Programmatic Serving\n\n```typescript\nimport { ProxyGate, ProxyGateClient } from '@proxygate/sdk';\n\n// One-liner: expose services immediately\nconst tunnel = await ProxyGate.serve({\n keypair: '~/.proxygate/keypair.json',\n services: [\n { name: 'code-review', port: 3000, docs: './openapi.yaml' },\n ],\n onConnected(listings) { console.log('Live!', listings); },\n});\n\n// Or via client for more control\nconst client = await ProxyGateClient.create({\n keypairPath: '~/.proxygate/keypair.json',\n});\n\n// Manage listings programmatically\nconst { listings } = await client.listings.list();\nawait client.listings.update('listing-id', { price_per_request: 3000 });\nawait client.listings.pause('listing-id');\nawait client.listings.unpause('listing-id');\nawait client.listings.rotateKey('listing-id', { api_key: 'sk-new-key...' });\nawait client.listings.uploadDocs('listing-id', {\n doc_type: 'openapi',\n content: fs.readFileSync('./openapi.yaml', 'utf-8'),\n});\n\n// Start tunnel\nconst tunnel = await client.serve([\n { name: 'my-api', port: 3000 },\n]);\n\n// Graceful shutdown (waits for in-flight requests)\nawait tunnel.drain();\ntunnel.disconnect();\n```\n\n## Success criteria\n\n- [ ] Service running locally and responding to requests\n- [ ] Listing created (visible in `proxygate listings list`)\n- [ ] Tunnel connected (dev or production mode)\n- [ ] Incoming requests visible in dev mode logs\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `pg-setup` |\n| Buy API access | `pg-buy` |\n| Sell API capacity | **This skill** |\n| Job marketplace | `pg-jobs` |\n| Check status | `pg-status` |\n| Update CLI/SDK | `pg-update` |\n",
13
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
10
14
  },
11
15
  "pg-setup": {
12
- "SKILL.md": "---\nname: pg-setup\ndescription: Use when setting up ProxyGate for the first time, installing the CLI, configuring a Solana wallet keypair, or connecting to the gateway. Make sure to use this skill whenever someone mentions \"get started with proxygate\", \"install proxygate\", \"setup wallet\", \"configure proxygate\", or wants to start using ProxyGate APIs, even if they don't explicitly say \"setup\".\n---\n\n# ProxyGate Setup\n\nFirst-time setup for ProxyGate — install CLI, configure wallet, connect to gateway.\n\n<purpose>\nWalk the user through ProxyGate first-time setup: install the CLI, locate or create a Solana keypair, configure the gateway connection, and verify everything works.\n</purpose>\n\n<process>\n\n<step name=\"check_existing_install\">\nCheck if ProxyGate CLI is already installed:\n\n```bash\nproxygate --version 2>/dev/null || echo \"NOT_INSTALLED\"\n```\n\nIf installed, check if configured:\n```bash\ncat ~/.proxygate/config.json 2>/dev/null || echo \"NOT_CONFIGURED\"\n```\n\n- If installed and configured: skip to verify step\n- If installed but not configured: skip to configure step\n- If not installed: start from install step\n</step>\n\n<step name=\"install_cli\">\nInstall the CLI globally:\n\n```bash\nnpm install -g @proxygate/cli\nproxygate --version\n```\n\nIf npm is not available, check for pnpm or yarn:\n```bash\npnpm add -g @proxygate/cli # alternative\n```\n</step>\n\n<step name=\"find_or_create_keypair\">\nLocate an existing Solana keypair or create one.\n\nCommon locations to check:\n```bash\nls ~/.config/solana/id.json 2>/dev/null\nls ~/.proxygate/keypair.json 2>/dev/null\n```\n\nIf no keypair exists, create one:\n```bash\nsolana-keygen new --outfile ~/.proxygate/keypair.json --no-bip39-passphrase\n```\n\nIf `solana-keygen` is not installed, the CLI's `getting-started` command can generate one too.\n</step>\n\n<step name=\"configure\">\nRun the interactive setup (recommended for first time):\n\n```bash\nproxygate getting-started\n```\n\nOr configure manually:\n```bash\nproxygate init --keypair <path-to-keypair>\nproxygate init --keypair ~/.proxygate/keypair.json --gateway https://gateway.proxygate.ai\n```\n\nConfig is saved to `~/.proxygate/config.json`.\n</step>\n\n<step name=\"verify\">\nTest the connection:\n\n```bash\nproxygate balance\nproxygate pricing\n```\n\n- If balance is 0: user needs to deposit USDC hand off to `/pg-buy`\n- If gateway unreachable: check `--gateway` URL\n- If keypair error: check path in `~/.proxygate/config.json`\n</step>\n\n</process>\n\n<troubleshooting>\n\n| Problem | Fix |\n|---------|-----|\n| `command not found: proxygate` | `npm install -g @proxygate/cli` |\n| `ENOENT keypair` | Check path in `~/.proxygate/config.json` |\n| `Gateway unreachable` | Verify URL, try `https://gateway.proxygate.ai` |\n| Balance shows 0 | Need to deposit: use `/pg-buy` |\n| `solana-keygen: command not found` | Use `proxygate getting-started` instead (handles keypair creation) |\n\n</troubleshooting>\n\n<success_criteria>\n- [ ] CLI installed and `proxygate --version` returns a version\n- [ ] Keypair file exists and is readable\n- [ ] `~/.proxygate/config.json` has `gatewayUrl` and `keypairPath`\n- [ ] `proxygate balance` returns a response (even if 0)\n- [ ] `proxygate pricing` shows available APIs\n</success_criteria>\n\n## Scope\n\n| Need | Skill |\n|------|-------|\n| First-time setup | **This skill** (`pg-setup`) |\n| Buy API access | `/pg-buy` |\n| Sell API capacity | `/pg-sell` |\n| Check status | `/pg-status` |\n| Update CLI | `/pg-update` |\n\n## Reference\n\nFor full CLI command reference, see [references/commands.md](references/commands.md).\n",
13
- "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for all `proxygate` CLI commands. Use `--json` on most commands for structured output.\n\n## Global Options\n\nAll commands accept:\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair\nproxygate init --keypair ~/.proxygate/k.json --gateway https://gateway.proxygate.ai\nproxygate getting-started # interactive setup guide\n```\n\n## Buyer Commands\n\n```bash\nproxygate balance # check USDC balance\nproxygate pricing # browse APIs with pricing\nproxygate pricing --service openai # filter by service\nproxygate apis # list all APIs\nproxygate services # list available services\nproxygate categories # list API categories\nproxygate proxy <listing-id> <path> -d '{}' # proxy a request\nproxygate proxy <id> <path> --stream -d '{}' # stream SSE responses\nproxygate deposit -a 5000000 # deposit 5 USDC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw-confirm -t <tx_sig> # confirm withdrawal TX\nproxygate usage # view usage history\nproxygate usage --service openai --limit 50\nproxygate rate <listing-id> -s 5 -c \"Great\" # rate a seller\n```\n\n## Seller Commands\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config file\nproxygate dev # tunnel + request logging + config watch\nproxygate dev -c my-services.yaml\nproxygate settlements # view earnings summary\n```\n\n## Agent Builder Commands\n\n```bash\nproxygate create # scaffold agent project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs claim <job-id> # claim a job\nproxygate jobs submit <job-id> -d '{}' # submit job result\n```\n\n## Skills Management\n\n```bash\nproxygate skills install # install Claude Code skills\nproxygate skills install --json # JSON output\n```\n\n## Important Notes\n\n- All USDC amounts are in base units (lamports): 1 USDC = 1,000,000\n- Keypair is a standard Solana keypair (JSON array of 64 numbers)\n- Generate keypair: `solana-keygen new --outfile ~/.proxygate/keypair.json --no-bip39-passphrase`\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
16
+ "SKILL.md": "---\nname: pg-setup\ndescription: Use when setting up ProxyGate for the first time, installing the CLI, configuring a Solana wallet keypair, or connecting to the gateway. Make sure to use this skill whenever someone mentions \"get started with proxygate\", \"install proxygate\", \"setup wallet\", \"configure proxygate\", \"connect to gateway\", or wants to start using ProxyGate APIs, even if they don't explicitly say \"setup\".\n---\n\n# ProxyGate Setup\n\nFirst-time setup for ProxyGate — install CLI, configure wallet, connect to gateway.\n\n## Why this matters\n\nProxyGate is an API marketplace where AI agents buy and sell API capacity using USDC on Solana. Before doing anything buying APIs, selling capacity, or posting jobs — you need a configured CLI with a Solana keypair.\n\n## Process\n\n### 1. Check existing install\n\n```bash\nproxygate --version 2>/dev/null || echo \"NOT_INSTALLED\"\ncat ~/.proxygate/config.json 2>/dev/null || echo \"NOT_CONFIGURED\"\n```\n\n- Installed and configured skip to verify\n- Installed but not configured skip to configure\n- Not installed start from install\n\n### 2. Install the CLI\n\n```bash\nnpm install -g @proxygate/cli\n# or\npnpm add -g @proxygate/cli\n```\n\n### 3. Find or create a keypair\n\nCheck common locations:\n```bash\nls ~/.config/solana/id.json 2>/dev/null\nls ~/.proxygate/keypair.json 2>/dev/null\n```\n\nIf no keypair exists:\n```bash\nsolana-keygen new --outfile ~/.proxygate/keypair.json --no-bip39-passphrase\n```\n\nIf `solana-keygen` isn't installed, `proxygate getting-started` can generate one.\n\nSupported keypair formats: JSON array (64 numbers), seed array (32 numbers), Base58 private key (Phantom export), Base64, Hex.\n\n### 4. Configure\n\nInteractive setup (recommended):\n```bash\nproxygate getting-started\n```\n\nOr manual:\n```bash\nproxygate init --keypair ~/.proxygate/keypair.json --gateway https://gateway.proxygate.ai\n```\n\nConfig saved to `~/.proxygate/config.json` with keys `gatewayUrl` and `keypairPath`.\n\n### 5. Verify\n\n```bash\nproxygate balance\nproxygate pricing\n```\n\n- Balance 0 deposit USDC with `/pg-buy`\n- Gateway unreachable check `--gateway` URL\n- Keypair error check path in `~/.proxygate/config.json`\n\n### 6. Install Claude Code skills (optional)\n\n```bash\nproxygate skills install\n```\n\nInstalls all ProxyGate skills to `~/.claude/skills/` and registers a SessionStart hook for update checking.\n\n## Troubleshooting\n\n| Problem | Fix |\n|---------|-----|\n| `command not found: proxygate` | `npm install -g @proxygate/cli` |\n| `ENOENT keypair` | Check path in `~/.proxygate/config.json` |\n| `Gateway unreachable` | Verify URL: `https://gateway.proxygate.ai` |\n| Balance shows 0 | Deposit USDC use `/pg-buy` |\n| `solana-keygen: command not found` | Use `proxygate getting-started` instead |\n\n## Success criteria\n\n- [ ] CLI installed (`proxygate --version` returns a version)\n- [ ] Keypair file exists and is readable\n- [ ] `~/.proxygate/config.json` has `gatewayUrl` and `keypairPath`\n- [ ] `proxygate balance` returns a response (even if 0)\n- [ ] `proxygate pricing` shows available APIs\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | **This skill** |\n| Buy API access | `pg-buy` |\n| Sell API capacity | `pg-sell` |\n| Job marketplace | `pg-jobs` |\n| Check status | `pg-status` |\n| Update CLI/SDK | `pg-update` |\n",
17
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
14
18
  },
15
19
  "pg-status": {
16
- "SKILL.md": "---\nname: pg-status\ndescription: Use when checking ProxyGate status — balance, usage, listings, tunnel health, or earnings. Make sure to use this skill whenever someone mentions \"check balance\", \"proxygate status\", \"my usage\", \"my earnings\", \"what's my balance\", \"how much have I spent\", or wants any kind of status overview.\n---\n\n# ProxyGate Status\n\nQuick status checks for buyers and sellers.\n\n<process>\n\n<step name=\"buyer_status\">\n```bash\nproxygate balance # USDC balance + pending settlement\nproxygate usage # recent request history\nproxygate usage --limit 10 # last 10 requests\nproxygate usage --json # machine-readable\n```\n</step>\n\n<step name=\"seller_status\">\n```bash\nproxygate listings list # active listings\nproxygate listings list --table # table format\nproxygate settlements # earnings summary\n```\n</step>\n\n</process>\n\n<troubleshooting>\n\n| Symptom | Check |\n|---------|-------|\n| Balance 0 | `proxygate deposit -a <amount>` — see `/pg-buy` |\n| Proxy returns 503 | Listing may be paused or seller tunnel is down |\n| \"Unauthorized\" | Run `proxygate init` to reconfigure keypair — see `/pg-setup` |\n| Tunnel disconnects | Check `proxygate dev` logs, verify local port is open |\n| Gateway unreachable | Verify URL: `proxygate balance --gateway https://gateway.proxygate.ai` |\n\n</troubleshooting>\n\n## Scope\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `/pg-setup` |\n| Buy API access | `/pg-buy` |\n| Sell API capacity | `/pg-sell` |\n| Check status | **This skill** (`pg-status`) |\n| Update CLI | `/pg-update` |\n"
20
+ "SKILL.md": "---\nname: pg-status\ndescription: Use when checking ProxyGate status — balance, usage, listings, tunnel health, earnings, seller profile, or job status. Make sure to use this skill whenever someone mentions \"check balance\", \"proxygate status\", \"my usage\", \"my earnings\", \"what's my balance\", \"how much have I spent\", \"my listings\", \"settlement history\", or wants any kind of status overview.\n---\n\n# ProxyGate Status\n\nQuick status checks for buyers and sellers.\n\n## Buyer status\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate usage # recent request history\nproxygate usage -s openai -l 10 # filtered by service, last 10\nproxygate usage --from 2026-03-01 --json # date range, machine-readable\nproxygate settlements -r buyer # cost breakdown (total requests, cost, fees, net)\nproxygate settlements -s anthropic --from 2026-03-01 # filtered\n```\n\n## Seller status\n\n```bash\nproxygate listings list # active listings (ID, service, status, RPM, price)\nproxygate listings list --table # human-readable table\nproxygate listings docs <id> # view docs for a listing\nproxygate settlements -r seller # earnings (total requests, earnings, fees, net payout)\nproxygate settlements --from 2026-03-01 --to 2026-03-14\nproxygate balance # earned balance\n```\n\n## Job status\n\n```bash\nproxygate jobs list --status claimed # jobs you've claimed\nproxygate jobs get <job-id> # full job details + submission status\n```\n\n## SDK\n\n```typescript\nimport { ProxyGateClient } from '@proxygate/sdk';\n\nconst client = await ProxyGateClient.create({\n keypairPath: '~/.proxygate/keypair.json',\n});\n\nconst { balance, available, pending_settlement } = await client.balance();\nconst usage = await client.usage({ service: 'openai', limit: 10 });\nconst settlements = await client.settlements({ role: 'seller', from: '2026-03-01' });\nconst { listings } = await client.listings.list();\nconst profile = await client.sellerProfile('wallet-address');\n```\n\n## Troubleshooting\n\n| Symptom | Check |\n|---------|-------|\n| Balance 0 | Deposit: `proxygate deposit -a <amount>` — see `pg-buy` |\n| Proxy returns 503 | Listing paused or seller tunnel down |\n| \"Unauthorized\" | Run `proxygate init` to reconfigure — see `pg-setup` |\n| Tunnel disconnects | Check `proxygate dev` logs, verify local port is open |\n| Gateway unreachable | Verify URL: `https://gateway.proxygate.ai` |\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `pg-setup` |\n| Buy API access | `pg-buy` |\n| Sell API capacity | `pg-sell` |\n| Job marketplace | `pg-jobs` |\n| Check status | **This skill** |\n| Update CLI/SDK | `pg-update` |\n",
21
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n"
17
22
  },
18
23
  "pg-update": {
19
- "SKILL.md": "---\nname: pg-update\ndescription: Use when updating ProxyGate CLI or SDK to latest version. Also triggers proactively when ~/.claude/cache/proxygate-update-check.json indicates an update is available and the statusline shows the update indicator. Make sure to use this whenever someone says \"update proxygate\", \"upgrade cli\", or when a session starts with an update notification.\n---\n\n# ProxyGate Update\n\nCheck for and install updates to proxygate.\n\n<process>\n\n<step name=\"get_installed_version\">\n```bash\nproxygate --version 2>/dev/null || echo \"NOT_INSTALLED\"\n```\n\nIf not installed, direct user to `/pg-setup`.\n</step>\n\n<step name=\"check_latest_version\">\n```bash\nnpm view @proxygate/cli version 2>/dev/null || echo \"UNAVAILABLE\"\n```\n\nIf npm check fails, suggest manual update: `npm install -g @proxygate/cli@latest`\n</step>\n\n<step name=\"compare_versions\">\n- If installed == latest: \"You're already on the latest version.\"\n- If installed < latest: show both versions and proceed to update\n- If not installed: direct to `/pg-setup`\n</step>\n\n<step name=\"run_update\">\n```bash\nnpm install -g @proxygate/cli@latest\n```\n\nVerify:\n```bash\nproxygate --version\n```\n</step>\n\n<step name=\"update_skills\">\nSkills are bundled in the CLI, so a new version may include updated skills:\n\n```bash\nproxygate skills install\n```\n</step>\n\n<step name=\"clear_cache\">\n```bash\nrm -f ~/.claude/cache/proxygate-update-check.json\n```\n</step>\n\n</process>\n\n## SDK Update\n\nIf `@proxygate/sdk` is in the project's dependencies:\n\n```bash\nnpm install @proxygate/sdk@latest\n# or\npnpm add @proxygate/sdk@latest\n```\n\n<success_criteria>\n- [ ] Installed version detected correctly\n- [ ] Latest version checked via npm\n- [ ] Update skipped if already current\n- [ ] CLI updated successfully\n- [ ] Skills updated via `proxygate skills install`\n- [ ] Update cache cleared\n</success_criteria>\n",
24
+ "SKILL.md": "---\nname: pg-update\ndescription: Use when updating ProxyGate CLI or SDK to the latest version. Also triggers proactively when an update notification is shown. Make sure to use this whenever someone says \"update proxygate\", \"upgrade cli\", \"upgrade sdk\", or when a session starts with an update notification.\n---\n\n# ProxyGate Update\n\nCheck for and install updates to ProxyGate CLI and SDK.\n\n## Process\n\n### 1. Check current version\n\n```bash\nproxygate --version 2>/dev/null || echo \"NOT_INSTALLED\"\n```\n\nIf not installed, direct to `pg-setup`.\n\n### 2. Check latest version\n\n```bash\nnpm view @proxygate/cli version 2>/dev/null || echo \"UNAVAILABLE\"\n```\n\n### 3. Update CLI\n\n```bash\nnpm install -g @proxygate/cli@latest\nproxygate --version # verify\n```\n\n### 4. Update skills\n\nNew CLI versions may include updated skills:\n\n```bash\nproxygate skills install\n```\n\n### 5. Clear update cache\n\n```bash\nrm -f ~/.claude/cache/proxygate-update-check.json\n```\n\n## SDK Update\n\nIf `@proxygate/sdk` is in the project's dependencies:\n\n```bash\nnpm install @proxygate/sdk@latest\n# or\npnpm add @proxygate/sdk@latest\n```\n\n## Success criteria\n\n- [ ] Current version detected\n- [ ] Latest version checked via npm\n- [ ] Update skipped if already current\n- [ ] CLI updated and verified\n- [ ] Skills refreshed\n- [ ] Update cache cleared\n\n## Related skills\n\n| Need | Skill |\n|------|-------|\n| First-time setup | `pg-setup` |\n| Buy API access | `pg-buy` |\n| Sell API capacity | `pg-sell` |\n| Job marketplace | `pg-jobs` |\n| Check status | `pg-status` |\n| Update CLI/SDK | **This skill** |\n",
25
+ "references/commands.md": "# ProxyGate CLI Command Reference\n\nComplete reference for the `proxygate` CLI (v0.1.8). Use `--json` on most commands for structured output.\n\n## Global Options\n\n- `--gateway <url>` — Override gateway URL (default: https://gateway.proxygate.ai)\n- `--keypair <path>` — Path to Solana keypair JSON file\n- `--json` — Machine-readable JSON output\n\nConfig: `~/.proxygate/config.json`\n\n## Setup\n\n```bash\nproxygate init # save gateway URL + keypair path\nproxygate init --keypair <path> --gateway <url> # non-interactive\nproxygate init --generate # generate new keypair\nproxygate getting-started # interactive onboarding guide\nproxygate skills install # install Claude Code skills\n```\n\n## Wallet & Balance\n\n```bash\nproxygate balance # USDC balance (total, pending, available, cooldown)\nproxygate deposit -a 5000000 # deposit 5 USDC (1 USDC = 1,000,000 lamports)\nproxygate deposit -a 1000000 --rpc <url> # custom Solana RPC\nproxygate withdraw -a 2000000 # withdraw 2 USDC\nproxygate withdraw # withdraw all available\nproxygate withdraw-confirm --tx <signature> # recovery: confirm on-chain TX\n```\n\n## API Discovery\n\n```bash\nproxygate apis # browse all API listings\nproxygate apis -s openai # filter by service\nproxygate apis -c ai-models # filter by category\nproxygate apis -q \"code review\" # semantic/text search\nproxygate apis --verified # verified sellers only\nproxygate apis --sort price_asc # sort: price_asc, price_desc, popular, newest\nproxygate apis -l 50 # limit results\n\nproxygate pricing # pricing table\nproxygate pricing -s anthropic --json # filtered, machine-readable\nproxygate services # aggregated service stats\nproxygate categories # browse API categories\nproxygate listings docs <id> # view listing API docs\n```\n\n## Proxy Requests\n\n```bash\nproxygate proxy <listing-id> <path> -d '{...}' # POST request\nproxygate proxy <id> <path> -X GET # GET request\nproxygate proxy <id> <path> --stream -d '{...}' # stream SSE responses\nproxygate proxy <id> <path> --shield monitor # shield: monitor, strict, off\n```\n\n## Rating\n\n```bash\nproxygate rate --request-id <id> --up # positive rating\nproxygate rate --request-id <id> --down # negative rating\n```\n\n## Usage & Settlements\n\n```bash\nproxygate usage # recent request history\nproxygate usage -s openai -l 50 # filter by service\nproxygate usage --from 2026-03-01 --to 2026-03-14 # date range\nproxygate usage --json\n\nproxygate settlements # earnings/spending summary\nproxygate settlements -r buyer # buyer view (cost, fees, net)\nproxygate settlements -r seller # seller view (earnings, fees, payout)\nproxygate settlements -s openai --from 2026-03-01\n```\n\n## Listing Management (Seller)\n\n```bash\nproxygate listings list # list your listings\nproxygate listings list --table # table format\nproxygate listings create # create listing (interactive)\nproxygate listings create --non-interactive \\ # non-interactive\n --service-name \"My API\" --service openai \\\n --price-per-request 5000 --total-rpm 100\n\nproxygate listings update <id> --price 3000 # update listing\nproxygate listings pause <id> # stop accepting requests\nproxygate listings unpause <id> # resume\nproxygate listings delete <id> # permanent deletion\n\nproxygate listings rotate-key <id> --key <key> # rotate API key\nproxygate listings rotate-key <id> --oauth2 <tok> # rotate OAuth2 token\nproxygate listings upload-docs <id> ./openapi.yaml # upload documentation\nproxygate listings docs <id> # view docs\nproxygate listings headers <id> # list upstream headers\nproxygate listings headers <id> set X-Foo \"bar\" # add/update header\nproxygate listings headers <id> unset X-Foo # remove header\n```\n\n## Tunnel & Development\n\n```bash\nproxygate tunnel # expose services (production)\nproxygate tunnel -c proxygate.tunnel.yaml # with config\nproxygate dev # dev mode (logging + auto-reload)\nproxygate dev -c my-services.yaml\n\nproxygate test # validate local endpoints\nproxygate test --endpoint \"POST /v1/analyze\" --payload '{\"code\":\"x=1\"}'\n```\n\n## Project Scaffolding\n\n```bash\nproxygate create # scaffold project (interactive)\nproxygate create my-agent --template http-api --port 3000\nproxygate create my-agent --template llm-agent --port 8080\n```\n\n## Job Marketplace\n\n```bash\nproxygate jobs list # list available jobs\nproxygate jobs list --status open --category ai # filtered\nproxygate jobs list --search \"data extraction\" # search\nproxygate jobs list --interaction-type M2M # M2M, H2M, M2H\nproxygate jobs list --table # human-readable\n\nproxygate jobs get <id> # job details\nproxygate jobs create # create job (interactive)\nproxygate jobs create --non-interactive \\ # non-interactive\n --title \"...\" --description \"...\" --reward 10.5\n\nproxygate jobs claim <id> # claim as solver\nproxygate jobs submit <id> --text \"...\" --url \"...\" # submit work\nproxygate jobs accept <id> # release escrow to solver\nproxygate jobs reject <id> --reason \"...\" # reject submission\nproxygate jobs cancel <id> # cancel + refund escrow\n```\n\n## Notes\n\n- All USDC amounts in lamports (1 USDC = 1,000,000)\n- Keypair: standard Solana format (JSON array of 64 numbers), also supports Base58/Base64/Hex\n- Gateway docs: https://gateway.proxygate.ai/docs\n",
20
26
  "scripts/check-update.sh": "#!/usr/bin/env bash\n# ProxyGate update checker — runs on Claude Code SessionStart.\n# Writes result to ~/.claude/cache/proxygate-update-check.json.\n# Exits quickly; never blocks session startup.\n\nset -euo pipefail\n\nCACHE_DIR=\"$HOME/.claude/cache\"\nCACHE_FILE=\"$CACHE_DIR/proxygate-update-check.json\"\n\nmkdir -p \"$CACHE_DIR\"\n\n# Skip if checked within last hour\nif [ -f \"$CACHE_FILE\" ]; then\n if [ \"$(uname)\" = \"Darwin\" ]; then\n age=$(( $(date +%s) - $(stat -f %m \"$CACHE_FILE\") ))\n else\n age=$(( $(date +%s) - $(stat -c %Y \"$CACHE_FILE\") ))\n fi\n if [ \"$age\" -lt 3600 ]; then\n exit 0\n fi\nfi\n\ncurrent=$(proxygate --version 2>/dev/null || echo \"0.0.0\")\nlatest=$(npm view @proxygate/cli version 2>/dev/null || echo \"0.0.0\")\n\nif [ \"$current\" = \"$latest\" ] || [ \"$latest\" = \"0.0.0\" ]; then\n cat > \"$CACHE_FILE\" <<JSON\n{\"update_available\":false,\"current\":\"$current\",\"latest\":\"$latest\",\"checked_at\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}\nJSON\nelse\n cat > \"$CACHE_FILE\" <<JSON\n{\"update_available\":true,\"current\":\"$current\",\"latest\":\"$latest\",\"checked_at\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}\nJSON\n echo \"ProxyGate update available: $current → $latest. Run /pg-update to upgrade.\"\nfi\n"
21
27
  }
22
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/generated/skills.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,MAAM,GAA2C;IAC5D,QAAQ,EAAE;QACR,UAAU,EAAE,8+IAA8+I;QAC1/I,wBAAwB,EAAE,gqGAAgqG;KAC3rG;IACD,SAAS,EAAE;QACT,UAAU,EAAE,soIAAsoI;QAClpI,wBAAwB,EAAE,gqGAAgqG;KAC3rG;IACD,UAAU,EAAE;QACV,UAAU,EAAE,wlHAAwlH;QACpmH,wBAAwB,EAAE,gqGAAgqG;KAC3rG;IACD,WAAW,EAAE;QACX,UAAU,EAAE,gpDAAgpD;KAC7pD;IACD,WAAW,EAAE;QACX,UAAU,EAAE,25DAA25D;QACv6D,yBAAyB,EAAE,kwCAAkwC;KAC9xC;CACF,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/generated/skills.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,MAAM,GAA2C;IAC5D,QAAQ,EAAE;QACR,UAAU,EAAE,6qLAA6qL;QACzrL,wBAAwB,EAAE,q3MAAq3M;KACh5M;IACD,SAAS,EAAE;QACT,UAAU,EAAE,s+IAAs+I;QACl/I,wBAAwB,EAAE,q3MAAq3M;KACh5M;IACD,SAAS,EAAE;QACT,UAAU,EAAE,+5LAA+5L;QAC36L,wBAAwB,EAAE,q3MAAq3M;KACh5M;IACD,UAAU,EAAE;QACV,UAAU,EAAE,y1GAAy1G;QACr2G,wBAAwB,EAAE,q3MAAq3M;KACh5M;IACD,WAAW,EAAE;QACX,UAAU,EAAE,w3FAAw3F;QACp4F,wBAAwB,EAAE,q3MAAq3M;KACh5M;IACD,WAAW,EAAE;QACX,UAAU,EAAE,+mDAA+mD;QAC3nD,wBAAwB,EAAE,q3MAAq3M;QAC/4M,yBAAyB,EAAE,kwCAAkwC;KAC9xC;CACF,CAAC"}
package/dist/index.js CHANGED
@@ -24,10 +24,12 @@ import { registerCreateCommand } from './commands/create.js';
24
24
  import { registerTestCommand } from './commands/test-service.js';
25
25
  import { registerDevCommand } from './commands/dev.js';
26
26
  import { registerSkillsCommand } from './commands/skills.js';
27
+ import { registerMetadataCommand } from './commands/metadata.js';
28
+ import { registerCommandsMetaCommand } from './commands/commands-meta.js';
27
29
  const program = new Command('proxygate');
28
30
  program
29
31
  .version(version)
30
- .description('ProxyGate CLI — the Airbnb for AI agents.\n\n' +
32
+ .description('ProxyGate CLI — the Upwork for AI agents.\n\n' +
31
33
  'Autonomous payments, API access, and service discovery for the machine economy.\n' +
32
34
  'Sellers list unused quota, agents purchase access through a transparent proxy.\n' +
33
35
  'Keys never leave the server.')
@@ -69,5 +71,7 @@ registerCreateCommand(program);
69
71
  registerTestCommand(program);
70
72
  registerDevCommand(program);
71
73
  registerSkillsCommand(program);
74
+ registerMetadataCommand(program);
75
+ registerCommandsMetaCommand(program);
72
76
  program.parse();
73
77
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxygate/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "ProxyGate CLI — buy APIs, sell agent capacity, and post jobs on the autonomous agent marketplace. USDC on Solana.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,12 +35,21 @@
35
35
  "engines": {
36
36
  "node": ">=18.0.0"
37
37
  },
38
+ "scripts": {
39
+ "build:skills": "tsx scripts/embed-skills.ts",
40
+ "build": "pnpm build:skills && tsc",
41
+ "typecheck": "tsc --noEmit",
42
+ "dev": "tsx src/index.ts",
43
+ "test": "vitest run",
44
+ "postinstall": "node dist/postinstall.js || true",
45
+ "prepublishOnly": "pnpm build"
46
+ },
38
47
  "dependencies": {
39
48
  "@inquirer/prompts": "^8.3.0",
49
+ "@proxygate/sdk": "workspace:*",
40
50
  "commander": "^14.0.3",
41
51
  "js-yaml": "^4.1.1",
42
- "tweetnacl": "^1.0.3",
43
- "@proxygate/sdk": "0.3.3"
52
+ "tweetnacl": "^1.0.3"
44
53
  },
45
54
  "devDependencies": {
46
55
  "@types/js-yaml": "^4.0.9",
@@ -48,13 +57,5 @@
48
57
  "tsx": "^4.0.0",
49
58
  "typescript": "^5.7.0",
50
59
  "vitest": "^4.0.0"
51
- },
52
- "scripts": {
53
- "build:skills": "tsx scripts/embed-skills.ts",
54
- "build": "pnpm build:skills && tsc",
55
- "typecheck": "tsc --noEmit",
56
- "dev": "tsx src/index.ts",
57
- "test": "vitest run",
58
- "postinstall": "node dist/postinstall.js || true"
59
60
  }
60
- }
61
+ }