50c 1.1.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +6 -8
- package/README.md +120 -96
- package/bin/50c.js +123 -28
- package/package.json +6 -6
package/LICENSE
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
PROPRIETARY SOFTWARE LICENSE
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026 genxis.
|
|
3
|
+
Copyright (c) 2026 genxis. All Rights Reserved.
|
|
4
4
|
|
|
5
5
|
This software and associated documentation files (the "Software") are the
|
|
6
|
-
proprietary property of genxis.
|
|
6
|
+
proprietary property of genxis.
|
|
7
7
|
|
|
8
8
|
USAGE TERMS:
|
|
9
|
-
1. You may install and use this Software only with a valid API key
|
|
10
|
-
|
|
11
|
-
2. Each use of the Software requires credits purchased at $0.50 per problem.
|
|
9
|
+
1. You may install and use this Software only with a valid API key.
|
|
10
|
+
2. Each use of the Software requires credits at published rates.
|
|
12
11
|
3. You may NOT copy, modify, merge, publish, distribute, sublicense, or sell
|
|
13
12
|
copies of the Software.
|
|
14
13
|
4. You may NOT reverse engineer, decompile, or disassemble the Software.
|
|
@@ -26,8 +25,7 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
26
25
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
27
26
|
|
|
28
27
|
LIMITATION OF LIABILITY:
|
|
29
|
-
IN NO EVENT SHALL GENXIS
|
|
28
|
+
IN NO EVENT SHALL GENXIS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
29
|
LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
Purchase credits: https://genxis.com/50c
|
|
31
|
+
Contact: https://genxis.one
|
package/README.md
CHANGED
|
@@ -1,26 +1,56 @@
|
|
|
1
|
-
# 50c -
|
|
1
|
+
# 50c - AI Augmentation CLI & MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Augment any AI with genius-level problem solving**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
**
|
|
5
|
+
Works as both:
|
|
6
|
+
- **CLI** for agents and scripts
|
|
7
|
+
- **MCP server** for IDEs (Claude Desktop, Cursor, VS Code, etc.)
|
|
7
8
|
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
##
|
|
11
|
+
## CLI Mode (for Agents)
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
```bash
|
|
14
|
+
# Install globally (optional)
|
|
15
|
+
npm install -g 50c
|
|
16
|
+
|
|
17
|
+
# Or use directly with npx
|
|
18
|
+
export FIFTYC_API_KEY="your-key"
|
|
19
|
+
|
|
20
|
+
# Deep problem solving ($0.50)
|
|
21
|
+
50c genius "How do I scale PostgreSQL to 10M rows?"
|
|
22
|
+
|
|
23
|
+
# Quick hints ($0.05)
|
|
24
|
+
50c hints "api design"
|
|
14
25
|
|
|
15
|
-
|
|
26
|
+
# Expanded hints ($0.10)
|
|
27
|
+
50c hints+ "microservices architecture"
|
|
16
28
|
|
|
17
|
-
|
|
29
|
+
# Creative ideas ($0.05)
|
|
30
|
+
50c vibe "building a CLI tool"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Agent-friendly:** Output is plain text, ready for piping:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Use in scripts
|
|
37
|
+
ANSWER=$(50c genius "Fix this SQL query")
|
|
38
|
+
echo "$ANSWER" | grep "SELECT"
|
|
39
|
+
|
|
40
|
+
# Chain with other tools
|
|
41
|
+
50c hints "caching strategies" | head -3
|
|
42
|
+
```
|
|
18
43
|
|
|
19
44
|
---
|
|
20
45
|
|
|
46
|
+
## MCP Mode (for IDEs)
|
|
47
|
+
|
|
48
|
+
When run without arguments, starts JSON-RPC server on stdin/stdout.
|
|
49
|
+
|
|
21
50
|
### Claude Desktop
|
|
22
51
|
|
|
23
|
-
|
|
52
|
+
**Mac/Linux:** `~/.claude/claude_desktop_config.json`
|
|
53
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
24
54
|
|
|
25
55
|
```json
|
|
26
56
|
{
|
|
@@ -36,11 +66,9 @@ Config file: `~/.claude/claude_desktop_config.json` (Mac/Linux) or `%APPDATA%\Cl
|
|
|
36
66
|
}
|
|
37
67
|
```
|
|
38
68
|
|
|
39
|
-
---
|
|
40
|
-
|
|
41
69
|
### Cursor
|
|
42
70
|
|
|
43
|
-
Config
|
|
71
|
+
**Config:** `~/.cursor/mcp.json`
|
|
44
72
|
|
|
45
73
|
```json
|
|
46
74
|
{
|
|
@@ -56,11 +84,9 @@ Config file: `~/.cursor/mcp.json`
|
|
|
56
84
|
}
|
|
57
85
|
```
|
|
58
86
|
|
|
59
|
-
---
|
|
60
|
-
|
|
61
87
|
### VS Code (Copilot)
|
|
62
88
|
|
|
63
|
-
Config
|
|
89
|
+
**Config:** `.vscode/mcp.json`
|
|
64
90
|
|
|
65
91
|
```json
|
|
66
92
|
{
|
|
@@ -76,13 +102,9 @@ Config file: `.vscode/mcp.json` in workspace or user settings
|
|
|
76
102
|
}
|
|
77
103
|
```
|
|
78
104
|
|
|
79
|
-
Or via Command Palette: `MCP: Add Server`
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
105
|
### Windsurf
|
|
84
106
|
|
|
85
|
-
Config
|
|
107
|
+
**Config:** `~/.codeium/windsurf/mcp_config.json`
|
|
86
108
|
|
|
87
109
|
```json
|
|
88
110
|
{
|
|
@@ -98,20 +120,9 @@ Config file: `~/.codeium/windsurf/mcp_config.json`
|
|
|
98
120
|
}
|
|
99
121
|
```
|
|
100
122
|
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### JetBrains (IntelliJ, WebStorm, PyCharm, etc.)
|
|
104
|
-
|
|
105
|
-
1. Go to **Settings → Tools → MCP Server**
|
|
106
|
-
2. Click **Enable MCP Server**
|
|
107
|
-
3. Add external server with command: `npx -y 50c`
|
|
108
|
-
4. Set environment variable: `FIFTYC_API_KEY=<YOUR_API_KEY>`
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
123
|
### Zed
|
|
113
124
|
|
|
114
|
-
Config
|
|
125
|
+
**Config:** `~/.config/zed/settings.json`
|
|
115
126
|
|
|
116
127
|
```json
|
|
117
128
|
{
|
|
@@ -131,79 +142,110 @@ Config file: `~/.config/zed/settings.json`
|
|
|
131
142
|
|
|
132
143
|
---
|
|
133
144
|
|
|
134
|
-
|
|
145
|
+
## Tools & Pricing
|
|
135
146
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
147
|
+
| Tool | Cost | Description |
|
|
148
|
+
|------|------|-------------|
|
|
149
|
+
| `genius` | $0.50 | Deep problem solving with research |
|
|
150
|
+
| `hints` | $0.05 | 5 brutal 2-word hints |
|
|
151
|
+
| `hints+` | $0.10 | 10 expanded hints (4 words each) |
|
|
152
|
+
| `vibe` | $0.05 | 3 unconventional ideas |
|
|
141
153
|
|
|
142
154
|
---
|
|
143
155
|
|
|
144
|
-
|
|
156
|
+
## Unified API: genxis.one
|
|
145
157
|
|
|
146
|
-
|
|
158
|
+
**One bare root. Every capability. Streaming-first.**
|
|
147
159
|
|
|
148
|
-
|
|
149
|
-
[mcp.50c]
|
|
150
|
-
command = "npx"
|
|
151
|
-
args = ["-y", "50c"]
|
|
160
|
+
`https://genxis.one` is the unified gateway—no versioned paths, no fragmented endpoints. Just POST to root.
|
|
152
161
|
|
|
153
|
-
|
|
154
|
-
FIFTYC_API_KEY = "<YOUR_API_KEY>"
|
|
155
|
-
```
|
|
162
|
+
### Why This Matters
|
|
156
163
|
|
|
157
|
-
|
|
164
|
+
Traditional APIs scatter functionality across dozens of endpoints. We plant the flag for the future: **one URL, infinite capabilities, streaming by default.**
|
|
158
165
|
|
|
159
|
-
|
|
166
|
+
```
|
|
167
|
+
POST https://genxis.one
|
|
168
|
+
```
|
|
160
169
|
|
|
161
|
-
|
|
170
|
+
That's it. The body determines everything.
|
|
162
171
|
|
|
163
|
-
|
|
172
|
+
### Single Tool Call
|
|
164
173
|
|
|
165
|
-
|
|
174
|
+
```bash
|
|
175
|
+
curl -X POST https://genxis.one \
|
|
176
|
+
-H "Content-Type: application/json" \
|
|
177
|
+
-d '{"m": "genius", "q": "your problem"}'
|
|
178
|
+
```
|
|
166
179
|
|
|
167
|
-
|
|
168
|
-
|------|------|-------------|
|
|
169
|
-
| `genius_mode` | $0.50 | Deep problem solver with research |
|
|
170
|
-
| `quick_vibe` | $0.50 | Quick idea injection |
|
|
171
|
-
| `check_balance` | FREE | Check remaining credits |
|
|
180
|
+
### Recipe Chains (Composable AI)
|
|
172
181
|
|
|
173
|
-
|
|
182
|
+
Chain multiple tools in one request. Output flows through each step:
|
|
174
183
|
|
|
175
|
-
|
|
184
|
+
```bash
|
|
185
|
+
curl -X POST https://genxis.one \
|
|
186
|
+
-H "Content-Type: application/json" \
|
|
187
|
+
-d '{"chain": ["vibe", "hints+"], "q": "your idea"}'
|
|
188
|
+
```
|
|
176
189
|
|
|
177
|
-
|
|
178
|
-
- **Developer:** $25 = 50 problems
|
|
179
|
-
- **Pro:** $100 = 200 problems
|
|
190
|
+
### Parallel Execution
|
|
180
191
|
|
|
181
|
-
|
|
192
|
+
Run multiple tools simultaneously:
|
|
182
193
|
|
|
183
|
-
|
|
194
|
+
```bash
|
|
195
|
+
curl -X POST https://genxis.one \
|
|
196
|
+
-H "Content-Type: application/json" \
|
|
197
|
+
-d '{"parallel": ["hints", "vibe"], "q": "your idea"}'
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Streaming (SSE)
|
|
184
201
|
|
|
185
|
-
|
|
202
|
+
Add `"stream": true` to any request for server-sent events:
|
|
186
203
|
|
|
187
204
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
205
|
+
curl -X POST https://genxis.one \
|
|
206
|
+
-H "Content-Type: application/json" \
|
|
207
|
+
-d '{"m": "genius", "q": "problem", "stream": true}'
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### OpenAI-Compatible
|
|
190
211
|
|
|
191
|
-
|
|
192
|
-
|
|
212
|
+
Drop-in replacement for existing integrations:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
curl -X POST https://genxis.one/v1/chat/completions \
|
|
216
|
+
-H "Content-Type: application/json" \
|
|
217
|
+
-d '{"model": "50c-genius", "messages": [{"role": "user", "content": "problem"}]}'
|
|
193
218
|
```
|
|
194
219
|
|
|
220
|
+
### Available Models
|
|
221
|
+
|
|
222
|
+
| Model | Cost | Use Case |
|
|
223
|
+
|-------|------|----------|
|
|
224
|
+
| `genius` | $0.50 | Deep problem solving |
|
|
225
|
+
| `hints` | $0.05 | 5 brutal 2-word hints |
|
|
226
|
+
| `hints+` | $0.10 | 10 expanded 4-word hints |
|
|
227
|
+
| `vibe` | $0.05 | 3 unconventional ideas |
|
|
228
|
+
| `one-liner` | $0.02 | 8-word elevator pitch |
|
|
229
|
+
| `roast` | $0.05 | Brutal code review |
|
|
230
|
+
| `name-it` | $0.03 | 5 names + domain check |
|
|
231
|
+
| `price-it` | $0.05 | SaaS pricing strategy |
|
|
232
|
+
| `compute` | $0.02 | Execute Python code |
|
|
233
|
+
| `mind-opener` | $0.08 | 5 curious angles |
|
|
234
|
+
|
|
195
235
|
---
|
|
196
236
|
|
|
197
|
-
##
|
|
237
|
+
## Environment Variables
|
|
198
238
|
|
|
199
|
-
|
|
200
|
-
|
|
239
|
+
| Variable | Description |
|
|
240
|
+
|----------|-------------|
|
|
241
|
+
| `FIFTYC_API_KEY` | Your API key (required) |
|
|
242
|
+
| `FIFTYC_ENDPOINT` | Custom endpoint (optional) |
|
|
201
243
|
|
|
202
244
|
---
|
|
203
245
|
|
|
204
|
-
##
|
|
246
|
+
## SDK
|
|
205
247
|
|
|
206
|
-
For programmatic
|
|
248
|
+
For programmatic use in Node.js, browsers, or Cloudflare Workers:
|
|
207
249
|
|
|
208
250
|
```bash
|
|
209
251
|
npm install 50c-sdk
|
|
@@ -211,28 +253,10 @@ npm install 50c-sdk
|
|
|
211
253
|
|
|
212
254
|
```typescript
|
|
213
255
|
import { FiftyC } from '50c-sdk';
|
|
214
|
-
|
|
215
|
-
const
|
|
216
|
-
const answer = await ai.genius('How do I optimize this SQL query?');
|
|
256
|
+
const ai = new FiftyC('your-key');
|
|
257
|
+
const answer = await ai.genius('your problem');
|
|
217
258
|
```
|
|
218
259
|
|
|
219
|
-
Works in Node.js, browsers, Cloudflare Workers, Deno, Bun.
|
|
220
|
-
|
|
221
|
-
See [50c-sdk on npm](https://www.npmjs.com/package/50c-sdk) for full API docs.
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Troubleshooting
|
|
226
|
-
|
|
227
|
-
**"FIFTYC_API_KEY environment variable required"**
|
|
228
|
-
Set your API key in the MCP config env section.
|
|
229
|
-
|
|
230
|
-
**Request timeout**
|
|
231
|
-
Check your internet connection. Server may be temporarily unavailable.
|
|
232
|
-
|
|
233
|
-
**IDE not detecting MCP server**
|
|
234
|
-
Restart your IDE after adding the config. Check the config file path is correct.
|
|
235
|
-
|
|
236
260
|
---
|
|
237
261
|
|
|
238
|
-
**Built by genxis
|
|
262
|
+
**Built by genxis**
|
package/bin/50c.js
CHANGED
|
@@ -2,51 +2,145 @@
|
|
|
2
2
|
const https = require('https');
|
|
3
3
|
const readline = require('readline');
|
|
4
4
|
|
|
5
|
+
const API_ENDPOINT = process.env.FIFTYC_ENDPOINT || 'https://50c.ai';
|
|
6
|
+
const MCP_ENDPOINT = API_ENDPOINT + '/mcp';
|
|
7
|
+
const API_KEY = process.env.FIFTYC_API_KEY;
|
|
8
|
+
|
|
9
|
+
// Version
|
|
5
10
|
if (process.argv.includes('--version') || process.argv.includes('-v')) {
|
|
6
11
|
console.log(require('../package.json').version);
|
|
7
12
|
process.exit(0);
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
// Help
|
|
10
16
|
if (process.argv.includes('--help') || process.argv.includes('-h')) {
|
|
17
|
+
showHelp();
|
|
18
|
+
process.exit(0);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function showHelp() {
|
|
11
22
|
console.log(`
|
|
12
|
-
50c -
|
|
13
|
-
Usage: 50c (reads JSON-RPC from stdin)
|
|
23
|
+
50c - AI Augmentation CLI & MCP Server
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
USAGE:
|
|
26
|
+
50c <command> <input> Direct CLI mode
|
|
27
|
+
50c MCP mode (JSON-RPC via stdin)
|
|
28
|
+
|
|
29
|
+
COMMANDS:
|
|
30
|
+
genius <problem> Deep problem solving ($0.50)
|
|
31
|
+
hints <topic> 5 brutal 2-word hints ($0.05)
|
|
32
|
+
hints+ <topic> 10 expanded hints ($0.10)
|
|
33
|
+
vibe <working_on> 3 unconventional ideas ($0.05)
|
|
34
|
+
one-liner <product> Elevator pitch in 8 words ($0.02)
|
|
35
|
+
roast <code> Brutal code review ($0.05)
|
|
36
|
+
name-it <does> 5 names + domain check ($0.03)
|
|
37
|
+
price-it <product> SaaS pricing strategy ($0.05)
|
|
38
|
+
compute <code> Execute Python code ($0.02)
|
|
39
|
+
|
|
40
|
+
EXAMPLES:
|
|
41
|
+
50c genius "How do I scale PostgreSQL?"
|
|
42
|
+
50c hints "api design"
|
|
43
|
+
50c one-liner "habit tracker with friends"
|
|
44
|
+
50c roast "const x = localStorage.getItem('jwt')"
|
|
45
|
+
50c name-it "AI that writes emails"
|
|
46
|
+
50c price-it "email automation SaaS"
|
|
47
|
+
|
|
48
|
+
ENVIRONMENT:
|
|
16
49
|
FIFTYC_API_KEY Your API key (required)
|
|
17
|
-
FIFTYC_ENDPOINT Custom endpoint (
|
|
50
|
+
FIFTYC_ENDPOINT Custom endpoint (default: https://50c.ai)
|
|
18
51
|
|
|
19
|
-
|
|
52
|
+
MCP MODE:
|
|
53
|
+
Run without arguments for IDE integration (Claude Desktop, Cursor, etc.)
|
|
20
54
|
`);
|
|
21
|
-
process.exit(0);
|
|
22
55
|
}
|
|
23
56
|
|
|
24
|
-
|
|
25
|
-
const API_KEY = process.env.FIFTYC_API_KEY;
|
|
26
|
-
|
|
57
|
+
// Check API key
|
|
27
58
|
if (!API_KEY) {
|
|
28
59
|
console.error('Error: FIFTYC_API_KEY environment variable required');
|
|
29
|
-
console.error('Get your key at https://
|
|
60
|
+
console.error('Get your key at: https://50c.ai');
|
|
30
61
|
process.exit(1);
|
|
31
62
|
}
|
|
32
63
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
process.
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
// CLI commands
|
|
65
|
+
const COMMANDS = ['genius', 'hints', 'hints+', 'vibe', 'compute', 'one-liner', 'roast', 'name-it', 'price-it', 'mind-opener'];
|
|
66
|
+
const command = process.argv[2];
|
|
67
|
+
const input = process.argv.slice(3).join(' ');
|
|
68
|
+
|
|
69
|
+
if (command && COMMANDS.includes(command)) {
|
|
70
|
+
if (!input) {
|
|
71
|
+
console.error(`Error: ${command} requires input`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
runCLI(command, input).then(result => {
|
|
76
|
+
console.log(result);
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}).catch(err => {
|
|
79
|
+
console.error('Error:', err.message);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
});
|
|
82
|
+
} else if (command) {
|
|
83
|
+
startMCPMode();
|
|
84
|
+
} else {
|
|
85
|
+
startMCPMode();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async function runCLI(cmd, query) {
|
|
89
|
+
// Map CLI commands to MCP tool names
|
|
90
|
+
const toolMap = {
|
|
91
|
+
'genius': { name: 'genius', arg: 'problem' },
|
|
92
|
+
'hints': { name: 'hints', arg: 'query' },
|
|
93
|
+
'hints+': { name: 'hints_plus', arg: 'query' },
|
|
94
|
+
'vibe': { name: 'quick_vibe', arg: 'working_on' },
|
|
95
|
+
'compute': { name: 'compute', arg: 'code' },
|
|
96
|
+
'one-liner': { name: 'one_liner', arg: 'product' },
|
|
97
|
+
'roast': { name: 'roast', arg: 'code' },
|
|
98
|
+
'name-it': { name: 'name_it', arg: 'does' },
|
|
99
|
+
'price-it': { name: 'price_it', arg: 'product' },
|
|
100
|
+
'mind-opener': { name: 'mind_opener', arg: 'problem' }
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const tool = toolMap[cmd];
|
|
104
|
+
if (!tool) throw new Error(`Unknown command: ${cmd}`);
|
|
105
|
+
|
|
106
|
+
const request = {
|
|
107
|
+
jsonrpc: '2.0',
|
|
108
|
+
id: 1,
|
|
109
|
+
method: 'tools/call',
|
|
110
|
+
params: {
|
|
111
|
+
name: tool.name,
|
|
112
|
+
arguments: { [tool.arg]: query }
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const response = await callRemoteMCP(request);
|
|
117
|
+
|
|
118
|
+
if (response.error) {
|
|
119
|
+
throw new Error(response.error.message || JSON.stringify(response.error));
|
|
48
120
|
}
|
|
49
|
-
|
|
121
|
+
|
|
122
|
+
return response.result?.content?.[0]?.text || 'No output';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function startMCPMode() {
|
|
126
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
|
|
127
|
+
|
|
128
|
+
rl.on('line', async (line) => {
|
|
129
|
+
try {
|
|
130
|
+
const clean = line.trim();
|
|
131
|
+
if (!clean) return;
|
|
132
|
+
const request = JSON.parse(clean);
|
|
133
|
+
const response = await callRemoteMCP(request);
|
|
134
|
+
process.stdout.write(JSON.stringify(response) + '\n');
|
|
135
|
+
} catch (e) {
|
|
136
|
+
process.stdout.write(JSON.stringify({
|
|
137
|
+
jsonrpc: '2.0',
|
|
138
|
+
id: null,
|
|
139
|
+
error: { code: -32603, message: e.message }
|
|
140
|
+
}) + '\n');
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
50
144
|
|
|
51
145
|
function callRemoteMCP(request) {
|
|
52
146
|
return new Promise((resolve, reject) => {
|
|
@@ -61,7 +155,8 @@ function callRemoteMCP(request) {
|
|
|
61
155
|
headers: {
|
|
62
156
|
'Content-Type': 'application/json',
|
|
63
157
|
'Content-Length': Buffer.byteLength(postData),
|
|
64
|
-
'Authorization': `Bearer ${API_KEY}
|
|
158
|
+
'Authorization': `Bearer ${API_KEY}`,
|
|
159
|
+
'User-Agent': '50c-cli/1.4.0'
|
|
65
160
|
}
|
|
66
161
|
};
|
|
67
162
|
|
|
@@ -77,7 +172,7 @@ function callRemoteMCP(request) {
|
|
|
77
172
|
});
|
|
78
173
|
});
|
|
79
174
|
|
|
80
|
-
req.setTimeout(
|
|
175
|
+
req.setTimeout(120000, () => {
|
|
81
176
|
req.destroy();
|
|
82
177
|
reject(new Error('Request timeout'));
|
|
83
178
|
});
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "50c",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "AI
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "AI augmentation CLI & MCP server. genius, hints, roast, one-liner, name-it, price-it + more.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"50c": "./bin/50c.js"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
|
-
"postinstall": "node -e \"console.log('\\n50c installed. Set FIFTYC_API_KEY env var
|
|
9
|
+
"postinstall": "node -e \"console.log('\\n50c installed. Set FIFTYC_API_KEY env var.\\n')\""
|
|
10
10
|
},
|
|
11
|
-
"keywords": ["mcp", "ai", "llm", "
|
|
12
|
-
"author": "genxis
|
|
11
|
+
"keywords": ["mcp", "ai", "llm", "cli", "agent", "genxis", "50c", "intelligence", "problem-solving", "hints", "genius", "compute"],
|
|
12
|
+
"author": "genxis",
|
|
13
13
|
"license": "SEE LICENSE IN LICENSE",
|
|
14
|
-
"homepage": "https://
|
|
14
|
+
"homepage": "https://50c.ai",
|
|
15
15
|
"engines": {
|
|
16
16
|
"node": ">=18.0.0"
|
|
17
17
|
},
|