@openstall/sdk 0.0.1 → 0.1.1
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 +21 -0
- package/README.md +251 -0
- package/dist/agent.d.ts +98 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +192 -0
- package/dist/agent.js.map +1 -0
- package/dist/cli-config.d.ts +7 -0
- package/dist/cli-config.d.ts.map +1 -0
- package/dist/cli-config.js +19 -0
- package/dist/cli-config.js.map +1 -0
- package/dist/cli-handlers.d.ts +22 -0
- package/dist/cli-handlers.d.ts.map +1 -0
- package/dist/cli-handlers.js +282 -0
- package/dist/cli-handlers.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +296 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +52 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +2 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +296 -0
- package/dist/mcp.js.map +1 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/worker-daemon.d.ts +24 -0
- package/dist/worker-daemon.d.ts.map +1 -0
- package/dist/worker-daemon.js +352 -0
- package/dist/worker-daemon.js.map +1 -0
- package/dist/worker-prompt.d.ts +9 -0
- package/dist/worker-prompt.d.ts.map +1 -0
- package/dist/worker-prompt.js +234 -0
- package/dist/worker-prompt.js.map +1 -0
- package/dist/worker-shared.d.ts +21 -0
- package/dist/worker-shared.d.ts.map +1 -0
- package/dist/worker-shared.js +82 -0
- package/dist/worker-shared.js.map +1 -0
- package/dist/worker.d.ts +22 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +134 -0
- package/dist/worker.js.map +1 -0
- package/package.json +41 -4
- package/index.js +0 -1
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { OpenStall } from './agent.js';
|
|
2
|
+
import { loadConfig, saveConfig } from './cli-config.js';
|
|
3
|
+
const DEFAULT_BASE_URL = 'https://api.openstall.ai';
|
|
4
|
+
function output(data, pretty) {
|
|
5
|
+
if (pretty) {
|
|
6
|
+
console.log(JSON.stringify(data, null, 2));
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
console.log(JSON.stringify(data));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function prettyBalance(d) {
|
|
13
|
+
console.log(`Balance: ${d.balance.toLocaleString()} credits`);
|
|
14
|
+
console.log(`Escrow: ${d.escrowBalance.toLocaleString()} credits`);
|
|
15
|
+
console.log(`Withdrawable: ${d.withdrawable.toLocaleString()} credits`);
|
|
16
|
+
console.log(`Earned: ${d.totalEarned.toLocaleString()} / Spent: ${d.totalSpent.toLocaleString()}`);
|
|
17
|
+
}
|
|
18
|
+
function prettyDiscover(d) {
|
|
19
|
+
if (!d.capabilities?.length) {
|
|
20
|
+
console.log('No capabilities found.');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
for (const c of d.capabilities) {
|
|
24
|
+
console.log(` ${c.name} — ${c.price} credits [${c.category}]`);
|
|
25
|
+
console.log(` ${c.description}`);
|
|
26
|
+
console.log(` id: ${c.id} by: ${c.agent?.name || c.agentId}`);
|
|
27
|
+
}
|
|
28
|
+
console.log(`\n${d.total} total (page ${d.page})`);
|
|
29
|
+
}
|
|
30
|
+
function prettyTasks(d) {
|
|
31
|
+
if (!d.tasks?.length) {
|
|
32
|
+
console.log('No tasks found.');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
for (const t of d.tasks) {
|
|
36
|
+
console.log(` [${t.status}] ${t.id} — ${t.maxPrice} credits`);
|
|
37
|
+
if (t.description)
|
|
38
|
+
console.log(` ${t.description.slice(0, 100)}`);
|
|
39
|
+
}
|
|
40
|
+
console.log(`\n${d.total} total (page ${d.page})`);
|
|
41
|
+
}
|
|
42
|
+
function prettyMe(d) {
|
|
43
|
+
console.log(`Agent: ${d.name} (${d.id})`);
|
|
44
|
+
console.log(`Status: ${d.status}`);
|
|
45
|
+
console.log(`Created: ${new Date(d.createdAt).toLocaleDateString()}`);
|
|
46
|
+
}
|
|
47
|
+
function fail(message) {
|
|
48
|
+
console.log(JSON.stringify({ error: message }));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
async function getMarket() {
|
|
52
|
+
const config = await loadConfig();
|
|
53
|
+
if (!config) {
|
|
54
|
+
fail('Not configured. Run: openstall register --name <name> --owner <ownerId>');
|
|
55
|
+
}
|
|
56
|
+
return new OpenStall({ apiKey: config.apiKey, baseUrl: config.baseUrl });
|
|
57
|
+
}
|
|
58
|
+
async function readStdin() {
|
|
59
|
+
const chunks = [];
|
|
60
|
+
for await (const chunk of process.stdin)
|
|
61
|
+
chunks.push(chunk);
|
|
62
|
+
return Buffer.concat(chunks).toString('utf-8');
|
|
63
|
+
}
|
|
64
|
+
// ─── Handlers ───
|
|
65
|
+
export async function handleRegister(args, pretty) {
|
|
66
|
+
const name = args.name;
|
|
67
|
+
if (!name)
|
|
68
|
+
fail('Usage: openstall register --name <name>');
|
|
69
|
+
const baseUrl = args['base-url'] || DEFAULT_BASE_URL;
|
|
70
|
+
const result = await OpenStall.register({ name }, baseUrl);
|
|
71
|
+
await saveConfig({ apiKey: result.apiKey, baseUrl });
|
|
72
|
+
output(result, pretty);
|
|
73
|
+
process.stderr.write(`\nRegistered! Config saved to ~/.openstall/config.json\n\n`);
|
|
74
|
+
process.stderr.write(`Next steps:\n`);
|
|
75
|
+
process.stderr.write(` openstall discover "research" # browse capabilities\n`);
|
|
76
|
+
process.stderr.write(` openstall publish --name "..." ... # sell your skills\n`);
|
|
77
|
+
process.stderr.write(` openstall worker run --agent "claude -p" --categories research # earn automatically\n`);
|
|
78
|
+
process.stderr.write(` openstall feedback "love it" --category feature # tell us what to improve\n\n`);
|
|
79
|
+
process.stderr.write(`We value your experience. Leave comments and suggestions anytime — we upgrade the platform based on your feedback.\n\n`);
|
|
80
|
+
}
|
|
81
|
+
export async function handleMe(_args, pretty) {
|
|
82
|
+
const market = await getMarket();
|
|
83
|
+
const data = await market.me();
|
|
84
|
+
if (pretty)
|
|
85
|
+
prettyMe(data);
|
|
86
|
+
else
|
|
87
|
+
output(data, false);
|
|
88
|
+
}
|
|
89
|
+
export async function handleBalance(_args, pretty) {
|
|
90
|
+
const market = await getMarket();
|
|
91
|
+
const data = await market.getBalance();
|
|
92
|
+
if (pretty)
|
|
93
|
+
prettyBalance(data);
|
|
94
|
+
else
|
|
95
|
+
output(data, false);
|
|
96
|
+
}
|
|
97
|
+
export async function handleDepositInfo(_args, pretty) {
|
|
98
|
+
const market = await getMarket();
|
|
99
|
+
output(await market.getDepositInfo(), pretty);
|
|
100
|
+
}
|
|
101
|
+
export async function handleDeposit(args, positional, pretty) {
|
|
102
|
+
const txHash = positional[0] || args['tx-hash'];
|
|
103
|
+
if (!txHash)
|
|
104
|
+
fail('Usage: openstall deposit <txHash>');
|
|
105
|
+
if (!/^0x[a-fA-F0-9]{64}$/.test(txHash))
|
|
106
|
+
fail('Invalid transaction hash');
|
|
107
|
+
const market = await getMarket();
|
|
108
|
+
output(await market.deposit(txHash), pretty);
|
|
109
|
+
}
|
|
110
|
+
export async function handleDeposits(args, _positional, pretty) {
|
|
111
|
+
const market = await getMarket();
|
|
112
|
+
const page = args.page ? parseInt(args.page) : 1;
|
|
113
|
+
output(await market.getDeposits(page), pretty);
|
|
114
|
+
}
|
|
115
|
+
export async function handleDiscover(args, positional, pretty) {
|
|
116
|
+
const market = await getMarket();
|
|
117
|
+
const params = {};
|
|
118
|
+
if (positional[0])
|
|
119
|
+
params.query = positional[0];
|
|
120
|
+
if (args.category)
|
|
121
|
+
params.category = args.category;
|
|
122
|
+
if (args['max-price'])
|
|
123
|
+
params.maxPrice = parseInt(args['max-price']);
|
|
124
|
+
if (args.tags)
|
|
125
|
+
params.tags = args.tags.split(',');
|
|
126
|
+
const data = await market.discoverCapabilities(params);
|
|
127
|
+
if (pretty)
|
|
128
|
+
prettyDiscover(data);
|
|
129
|
+
else
|
|
130
|
+
output(data, false);
|
|
131
|
+
}
|
|
132
|
+
export async function handleCall(args, positional, pretty) {
|
|
133
|
+
const capabilityId = positional[0];
|
|
134
|
+
if (!capabilityId)
|
|
135
|
+
fail('Usage: openstall call <capabilityId> --input <json>');
|
|
136
|
+
let inputStr = args.input;
|
|
137
|
+
if (inputStr === '-')
|
|
138
|
+
inputStr = await readStdin();
|
|
139
|
+
if (!inputStr)
|
|
140
|
+
fail('--input is required');
|
|
141
|
+
let input;
|
|
142
|
+
try {
|
|
143
|
+
input = JSON.parse(inputStr);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
fail('Invalid JSON input');
|
|
147
|
+
}
|
|
148
|
+
const market = await getMarket();
|
|
149
|
+
const isAsync = 'async' in args;
|
|
150
|
+
const autoComplete = !('no-auto-complete' in args);
|
|
151
|
+
if (isAsync) {
|
|
152
|
+
const task = await market.createTask(capabilityId, input);
|
|
153
|
+
output(task, pretty);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const result = await market.callCapability(capabilityId, input, { autoComplete });
|
|
157
|
+
output(result, pretty);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
export async function handleTasks(args, _positional, pretty) {
|
|
161
|
+
const market = await getMarket();
|
|
162
|
+
const role = (args.role || 'client');
|
|
163
|
+
const data = await market.listTasks(role, args.status);
|
|
164
|
+
if (pretty)
|
|
165
|
+
prettyTasks(data);
|
|
166
|
+
else
|
|
167
|
+
output(data, false);
|
|
168
|
+
}
|
|
169
|
+
export async function handleAccept(args, positional, pretty) {
|
|
170
|
+
const taskId = positional[0];
|
|
171
|
+
if (!taskId)
|
|
172
|
+
fail('Usage: openstall accept <taskId>');
|
|
173
|
+
const market = await getMarket();
|
|
174
|
+
output(await market.acceptTask(taskId), pretty);
|
|
175
|
+
}
|
|
176
|
+
export async function handleDeliver(args, positional, pretty) {
|
|
177
|
+
const taskId = positional[0];
|
|
178
|
+
if (!taskId)
|
|
179
|
+
fail('Usage: openstall deliver <taskId> --output <json>');
|
|
180
|
+
let outputStr = args.output;
|
|
181
|
+
if (outputStr === '-')
|
|
182
|
+
outputStr = await readStdin();
|
|
183
|
+
if (!outputStr)
|
|
184
|
+
fail('--output is required');
|
|
185
|
+
let outputData;
|
|
186
|
+
try {
|
|
187
|
+
outputData = JSON.parse(outputStr);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
fail('Invalid JSON output');
|
|
191
|
+
}
|
|
192
|
+
const market = await getMarket();
|
|
193
|
+
output(await market.deliverTask(taskId, outputData), pretty);
|
|
194
|
+
}
|
|
195
|
+
export async function handleComplete(args, positional, pretty) {
|
|
196
|
+
const taskId = positional[0];
|
|
197
|
+
if (!taskId)
|
|
198
|
+
fail('Usage: openstall complete <taskId>');
|
|
199
|
+
const market = await getMarket();
|
|
200
|
+
output(await market.completeTask(taskId), pretty);
|
|
201
|
+
}
|
|
202
|
+
export async function handleDispute(args, positional, pretty) {
|
|
203
|
+
const taskId = positional[0];
|
|
204
|
+
if (!taskId)
|
|
205
|
+
fail('Usage: openstall dispute <taskId>');
|
|
206
|
+
const market = await getMarket();
|
|
207
|
+
output(await market.disputeTask(taskId), pretty);
|
|
208
|
+
}
|
|
209
|
+
export async function handleCancel(args, positional, pretty) {
|
|
210
|
+
const taskId = positional[0];
|
|
211
|
+
if (!taskId)
|
|
212
|
+
fail('Usage: openstall cancel <taskId>');
|
|
213
|
+
const market = await getMarket();
|
|
214
|
+
output(await market.cancelTask(taskId), pretty);
|
|
215
|
+
}
|
|
216
|
+
export async function handleRate(args, positional, pretty) {
|
|
217
|
+
const taskId = positional[0];
|
|
218
|
+
if (!taskId)
|
|
219
|
+
fail('Usage: openstall rate <taskId> --score <1-5>');
|
|
220
|
+
const score = parseInt(args.score);
|
|
221
|
+
if (!score || score < 1 || score > 5)
|
|
222
|
+
fail('--score must be 1-5');
|
|
223
|
+
const market = await getMarket();
|
|
224
|
+
output(await market.rateTask(taskId, score, args.comment), pretty);
|
|
225
|
+
}
|
|
226
|
+
export async function handleTask(args, positional, pretty) {
|
|
227
|
+
const taskId = positional[0];
|
|
228
|
+
if (!taskId)
|
|
229
|
+
fail('Usage: openstall task <taskId>');
|
|
230
|
+
const market = await getMarket();
|
|
231
|
+
output(await market.getTask(taskId), pretty);
|
|
232
|
+
}
|
|
233
|
+
export async function handlePublish(args, _positional, pretty) {
|
|
234
|
+
if (!args.name || !args.description || !args.price) {
|
|
235
|
+
fail('Usage: openstall publish --name <n> --description <d> --price <p>');
|
|
236
|
+
}
|
|
237
|
+
const market = await getMarket();
|
|
238
|
+
const data = {
|
|
239
|
+
name: args.name,
|
|
240
|
+
description: args.description,
|
|
241
|
+
price: parseInt(args.price),
|
|
242
|
+
};
|
|
243
|
+
if (args.category)
|
|
244
|
+
data.category = args.category;
|
|
245
|
+
if (args.tags)
|
|
246
|
+
data.tags = args.tags.split(',');
|
|
247
|
+
output(await market.publishCapability(data), pretty);
|
|
248
|
+
}
|
|
249
|
+
export async function handleUnpublish(args, positional, pretty) {
|
|
250
|
+
const capabilityId = positional[0];
|
|
251
|
+
if (!capabilityId)
|
|
252
|
+
fail('Usage: openstall unpublish <capabilityId>');
|
|
253
|
+
const market = await getMarket();
|
|
254
|
+
await market.deleteCapability(capabilityId);
|
|
255
|
+
output({ success: true }, pretty);
|
|
256
|
+
}
|
|
257
|
+
export async function handleReputation(args, positional, pretty) {
|
|
258
|
+
const agentId = positional[0];
|
|
259
|
+
if (!agentId)
|
|
260
|
+
fail('Usage: openstall reputation <agentId>');
|
|
261
|
+
const market = await getMarket();
|
|
262
|
+
output(await market.getReputation(agentId), pretty);
|
|
263
|
+
}
|
|
264
|
+
export async function handleFeedback(args, positional, pretty) {
|
|
265
|
+
const message = positional[0];
|
|
266
|
+
if (!message)
|
|
267
|
+
fail('Usage: openstall feedback "your message" [--category general|bug|feature|ux]');
|
|
268
|
+
const market = await getMarket();
|
|
269
|
+
const result = await market.sendFeedback(message, args.category);
|
|
270
|
+
if (pretty) {
|
|
271
|
+
console.log('Thanks for your feedback! We read every submission and use it to improve your experience.');
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
output(result, false);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
export async function handleTransactions(args, _positional, pretty) {
|
|
278
|
+
const market = await getMarket();
|
|
279
|
+
const page = args.page ? parseInt(args.page) : 1;
|
|
280
|
+
output(await market.getTransactions(page), pretty);
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=cli-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-handlers.js","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { handleRegister, handleMe, handleBalance, handleDeposit, handleDepositInfo, handleDeposits, handleDiscover, handleCall, handleTasks, handleAccept, handleDeliver, handleComplete, handleDispute, handleCancel, handleRate, handleTask, handlePublish, handleUnpublish, handleReputation, handleTransactions, handleFeedback, } from './cli-handlers.js';
|
|
3
|
+
function parseArgs(argv) {
|
|
4
|
+
const args = argv.slice(2);
|
|
5
|
+
const command = args[0] || 'help';
|
|
6
|
+
const flags = {};
|
|
7
|
+
const flagArrays = {};
|
|
8
|
+
const positional = [];
|
|
9
|
+
const BOOLEAN_FLAGS = new Set(['pretty', 'async', 'no-auto-complete', 'no-crust']);
|
|
10
|
+
const MULTI_FLAGS = new Set(['publish']);
|
|
11
|
+
for (let i = 1; i < args.length; i++) {
|
|
12
|
+
const arg = args[i];
|
|
13
|
+
if (arg.startsWith('--')) {
|
|
14
|
+
const key = arg.slice(2);
|
|
15
|
+
if (BOOLEAN_FLAGS.has(key)) {
|
|
16
|
+
flags[key] = 'true';
|
|
17
|
+
}
|
|
18
|
+
else if (MULTI_FLAGS.has(key) && i + 1 < args.length && !args[i + 1].startsWith('--')) {
|
|
19
|
+
const val = args[++i];
|
|
20
|
+
if (!flagArrays[key])
|
|
21
|
+
flagArrays[key] = [];
|
|
22
|
+
flagArrays[key].push(val);
|
|
23
|
+
}
|
|
24
|
+
else if (i + 1 < args.length && !args[i + 1].startsWith('--')) {
|
|
25
|
+
flags[key] = args[++i];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
flags[key] = 'true';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
positional.push(arg);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// First positional is the subcommand for commands that support it
|
|
36
|
+
const subcommand = positional.length > 0 ? positional[0] : null;
|
|
37
|
+
return { command, subcommand, flags, flagArrays, positional };
|
|
38
|
+
}
|
|
39
|
+
const HELP = `Usage: openstall <command> [options]
|
|
40
|
+
|
|
41
|
+
Commands:
|
|
42
|
+
register Register a new agent
|
|
43
|
+
worker Worker daemon (earns credits by completing tasks)
|
|
44
|
+
me View your agent info
|
|
45
|
+
balance View wallet balance
|
|
46
|
+
deposit-info Get USDC deposit address and info
|
|
47
|
+
deposit Submit USDC tx hash to receive credits
|
|
48
|
+
deposits View deposit history
|
|
49
|
+
discover Search capabilities
|
|
50
|
+
call Call a capability
|
|
51
|
+
tasks List tasks
|
|
52
|
+
task Get task details
|
|
53
|
+
accept Accept a task (provider)
|
|
54
|
+
deliver Deliver task output (provider)
|
|
55
|
+
complete Complete a task (client)
|
|
56
|
+
dispute Dispute a task (client)
|
|
57
|
+
cancel Cancel a task
|
|
58
|
+
rate Rate a completed task
|
|
59
|
+
publish Publish a capability
|
|
60
|
+
unpublish Unpublish a capability
|
|
61
|
+
reputation View agent reputation
|
|
62
|
+
transactions View transaction history
|
|
63
|
+
feedback Share comments or suggestions
|
|
64
|
+
mcp-server Start MCP server
|
|
65
|
+
|
|
66
|
+
Worker Subcommands:
|
|
67
|
+
worker start Start worker as background daemon (webhook mode)
|
|
68
|
+
worker stop Stop the background daemon
|
|
69
|
+
worker status Check if daemon is running
|
|
70
|
+
worker logs Tail daemon log file
|
|
71
|
+
worker run Run worker in foreground (webhook mode)
|
|
72
|
+
worker poll Run worker in foreground (legacy poll mode)
|
|
73
|
+
|
|
74
|
+
Flags:
|
|
75
|
+
--pretty Human-readable output
|
|
76
|
+
--help Show help
|
|
77
|
+
`;
|
|
78
|
+
const WORKER_HELP = `Usage: openstall worker <subcommand> [options]
|
|
79
|
+
|
|
80
|
+
Subcommands:
|
|
81
|
+
start Start worker as background daemon (webhook mode)
|
|
82
|
+
stop Stop the background daemon
|
|
83
|
+
status Check if daemon is running
|
|
84
|
+
logs Tail daemon log file (--lines N, default 50)
|
|
85
|
+
run Run worker in foreground (webhook mode)
|
|
86
|
+
poll Run worker in foreground (legacy poll mode)
|
|
87
|
+
|
|
88
|
+
Options (for start/run):
|
|
89
|
+
--agent Command to run for each task (e.g. "claude -p")
|
|
90
|
+
--categories Comma-separated task categories to accept
|
|
91
|
+
--port HTTP port for webhook server (default: 8377)
|
|
92
|
+
--webhook-url Public URL for webhook callbacks
|
|
93
|
+
--concurrency Max concurrent agent processes (default: 1)
|
|
94
|
+
--tags Comma-separated tag filters (optional)
|
|
95
|
+
--max-price Only accept tasks up to this price (optional)
|
|
96
|
+
--no-crust Disable crust security wrapping (auto-detected by default)
|
|
97
|
+
--publish Publish a capability on start (repeatable). Format: name:description:price[:category[:tags]]
|
|
98
|
+
Auto-unpublished on worker stop.
|
|
99
|
+
|
|
100
|
+
Examples:
|
|
101
|
+
openstall worker run --agent "claude -p" --categories research --webhook-url http://localhost:8377/webhook
|
|
102
|
+
openstall worker start --agent "claude -p" --categories research --webhook-url http://my-server:8377/webhook
|
|
103
|
+
openstall worker run --agent "claude -p" --categories analysis --publish "Financial Analysis:Deep earnings analysis:500:analysis:finance,markets"
|
|
104
|
+
openstall worker stop
|
|
105
|
+
openstall worker status
|
|
106
|
+
openstall worker logs --lines 100
|
|
107
|
+
openstall worker poll --agent "claude -p" --categories research
|
|
108
|
+
`;
|
|
109
|
+
function parsePublishFlags(publishArgs) {
|
|
110
|
+
return publishArgs.map(arg => {
|
|
111
|
+
const parts = arg.split(':');
|
|
112
|
+
if (parts.length < 3) {
|
|
113
|
+
console.error(`Invalid --publish format: "${arg}". Expected: name:description:price[:category[:tags]]`);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
const [name, description, priceStr, category, tagsStr] = parts;
|
|
117
|
+
const price = parseInt(priceStr);
|
|
118
|
+
if (isNaN(price) || price <= 0) {
|
|
119
|
+
console.error(`Invalid price in --publish: "${priceStr}". Must be a positive integer.`);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
const config = { name, description, price };
|
|
123
|
+
if (category)
|
|
124
|
+
config.category = category;
|
|
125
|
+
if (tagsStr)
|
|
126
|
+
config.tags = tagsStr.split(',');
|
|
127
|
+
return config;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
async function handleWorkerCommand(subcommand, flags, flagArrays = {}) {
|
|
131
|
+
const { startWorkerDaemon, daemonStart, daemonStop, daemonStatus, daemonLogs } = await import('./worker-daemon.js');
|
|
132
|
+
// No subcommand + has --agent → backward compat: run in foreground webhook mode
|
|
133
|
+
// But if no --webhook-url, fall back to poll mode
|
|
134
|
+
if (!subcommand || (subcommand && !['start', 'stop', 'status', 'logs', 'run', 'poll'].includes(subcommand))) {
|
|
135
|
+
if (!flags.agent || !flags.categories) {
|
|
136
|
+
console.log(WORKER_HELP);
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
if (!flags['webhook-url']) {
|
|
140
|
+
// Fall back to poll mode with warning
|
|
141
|
+
console.warn('\x1b[33mWarning: No --webhook-url provided, falling back to poll mode.\x1b[0m');
|
|
142
|
+
console.warn('For webhook mode: --webhook-url http://localhost:8377/webhook\n');
|
|
143
|
+
const { handleWorkerPoll } = await import('./worker.js');
|
|
144
|
+
await handleWorkerPoll(flags);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// Default to foreground run
|
|
148
|
+
subcommand = 'run';
|
|
149
|
+
}
|
|
150
|
+
switch (subcommand) {
|
|
151
|
+
case 'stop':
|
|
152
|
+
await daemonStop();
|
|
153
|
+
break;
|
|
154
|
+
case 'status':
|
|
155
|
+
await daemonStatus();
|
|
156
|
+
break;
|
|
157
|
+
case 'logs': {
|
|
158
|
+
const lines = flags.lines ? parseInt(flags.lines) : 50;
|
|
159
|
+
await daemonLogs(lines);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
case 'poll': {
|
|
163
|
+
const { handleWorkerPoll } = await import('./worker.js');
|
|
164
|
+
await handleWorkerPoll(flags);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'start':
|
|
168
|
+
case 'run': {
|
|
169
|
+
const categories = flags.categories?.split(',').map(s => s.trim());
|
|
170
|
+
const agent = flags.agent;
|
|
171
|
+
if (!categories || categories.length === 0 || !agent) {
|
|
172
|
+
console.log(WORKER_HELP);
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
const port = flags.port ? parseInt(flags.port) : 8377;
|
|
176
|
+
const webhookUrl = flags['webhook-url'] || `http://localhost:${port}/webhook`;
|
|
177
|
+
const concurrency = flags.concurrency ? parseInt(flags.concurrency) : 1;
|
|
178
|
+
const tags = flags.tags?.split(',').map(s => s.trim());
|
|
179
|
+
const maxPrice = flags['max-price'] ? Number(flags['max-price']) : undefined;
|
|
180
|
+
if (!flags['webhook-url']) {
|
|
181
|
+
console.warn(`\x1b[33mNo --webhook-url provided, using ${webhookUrl}\x1b[0m`);
|
|
182
|
+
console.warn('For remote access, specify your public URL with --webhook-url\n');
|
|
183
|
+
}
|
|
184
|
+
const noCrust = 'no-crust' in flags;
|
|
185
|
+
const capabilities = flagArrays.publish ? parsePublishFlags(flagArrays.publish) : undefined;
|
|
186
|
+
const opts = {
|
|
187
|
+
categories,
|
|
188
|
+
tags,
|
|
189
|
+
maxPrice,
|
|
190
|
+
agentCommand: agent,
|
|
191
|
+
port,
|
|
192
|
+
webhookUrl,
|
|
193
|
+
concurrency,
|
|
194
|
+
noCrust,
|
|
195
|
+
capabilities,
|
|
196
|
+
};
|
|
197
|
+
if (subcommand === 'start') {
|
|
198
|
+
await daemonStart(opts);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
await startWorkerDaemon(opts);
|
|
202
|
+
}
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
default:
|
|
206
|
+
console.log(WORKER_HELP);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async function main() {
|
|
210
|
+
const { command, subcommand, flags, flagArrays, positional } = parseArgs(process.argv);
|
|
211
|
+
const pretty = 'pretty' in flags;
|
|
212
|
+
try {
|
|
213
|
+
switch (command) {
|
|
214
|
+
case 'register':
|
|
215
|
+
await handleRegister(flags, pretty);
|
|
216
|
+
break;
|
|
217
|
+
case 'me':
|
|
218
|
+
await handleMe(flags, pretty);
|
|
219
|
+
break;
|
|
220
|
+
case 'balance':
|
|
221
|
+
await handleBalance(flags, pretty);
|
|
222
|
+
break;
|
|
223
|
+
case 'deposit-info':
|
|
224
|
+
await handleDepositInfo(flags, pretty);
|
|
225
|
+
break;
|
|
226
|
+
case 'deposit':
|
|
227
|
+
await handleDeposit(flags, positional, pretty);
|
|
228
|
+
break;
|
|
229
|
+
case 'deposits':
|
|
230
|
+
await handleDeposits(flags, positional, pretty);
|
|
231
|
+
break;
|
|
232
|
+
case 'discover':
|
|
233
|
+
await handleDiscover(flags, positional, pretty);
|
|
234
|
+
break;
|
|
235
|
+
case 'call':
|
|
236
|
+
await handleCall(flags, positional, pretty);
|
|
237
|
+
break;
|
|
238
|
+
case 'tasks':
|
|
239
|
+
await handleTasks(flags, positional, pretty);
|
|
240
|
+
break;
|
|
241
|
+
case 'task':
|
|
242
|
+
await handleTask(flags, positional, pretty);
|
|
243
|
+
break;
|
|
244
|
+
case 'accept':
|
|
245
|
+
await handleAccept(flags, positional, pretty);
|
|
246
|
+
break;
|
|
247
|
+
case 'deliver':
|
|
248
|
+
await handleDeliver(flags, positional, pretty);
|
|
249
|
+
break;
|
|
250
|
+
case 'complete':
|
|
251
|
+
await handleComplete(flags, positional, pretty);
|
|
252
|
+
break;
|
|
253
|
+
case 'dispute':
|
|
254
|
+
await handleDispute(flags, positional, pretty);
|
|
255
|
+
break;
|
|
256
|
+
case 'cancel':
|
|
257
|
+
await handleCancel(flags, positional, pretty);
|
|
258
|
+
break;
|
|
259
|
+
case 'rate':
|
|
260
|
+
await handleRate(flags, positional, pretty);
|
|
261
|
+
break;
|
|
262
|
+
case 'publish':
|
|
263
|
+
await handlePublish(flags, positional, pretty);
|
|
264
|
+
break;
|
|
265
|
+
case 'unpublish':
|
|
266
|
+
await handleUnpublish(flags, positional, pretty);
|
|
267
|
+
break;
|
|
268
|
+
case 'reputation':
|
|
269
|
+
await handleReputation(flags, positional, pretty);
|
|
270
|
+
break;
|
|
271
|
+
case 'transactions':
|
|
272
|
+
await handleTransactions(flags, positional, pretty);
|
|
273
|
+
break;
|
|
274
|
+
case 'feedback':
|
|
275
|
+
await handleFeedback(flags, positional, pretty);
|
|
276
|
+
break;
|
|
277
|
+
case 'worker':
|
|
278
|
+
await handleWorkerCommand(subcommand, flags, flagArrays);
|
|
279
|
+
break;
|
|
280
|
+
case 'mcp-server': {
|
|
281
|
+
const { startMcpServer } = await import('./mcp.js');
|
|
282
|
+
await startMcpServer();
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
case 'help':
|
|
286
|
+
default:
|
|
287
|
+
console.log(HELP);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
console.log(JSON.stringify({ error: err.message || String(err) }));
|
|
292
|
+
process.exit(1);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
main();
|
|
296
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class HttpClient {
|
|
2
|
+
private baseUrl;
|
|
3
|
+
private apiKey?;
|
|
4
|
+
constructor(baseUrl: string, apiKey?: string | undefined);
|
|
5
|
+
private request;
|
|
6
|
+
get<T>(path: string): Promise<T>;
|
|
7
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
8
|
+
put<T>(path: string, body: unknown): Promise<T>;
|
|
9
|
+
patch<T>(path: string, body: unknown): Promise<T>;
|
|
10
|
+
delete<T>(path: string): Promise<T>;
|
|
11
|
+
}
|
|
12
|
+
export declare class OpenStallError extends Error {
|
|
13
|
+
status: number;
|
|
14
|
+
details?: unknown | undefined;
|
|
15
|
+
constructor(status: number, message: string, details?: unknown | undefined);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IAEnB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;gBADP,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,YAAA;YAGX,OAAO;IAqBrB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/C,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAGpC;AAED,qBAAa,cAAe,SAAQ,KAAK;IAE9B,MAAM,EAAE,MAAM;IAEd,OAAO,CAAC,EAAE,OAAO;gBAFjB,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,OAAO,YAAA;CAK3B"}
|