@genspark/cli 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.js CHANGED
@@ -1,16 +1,16 @@
1
1
  /**
2
2
  * API Client for Genspark Tool CLI
3
3
  */
4
- import { debug, info, error as logError } from "./logger.js";
4
+ import { debug, info, error as logError } from './logger.js';
5
5
  /**
6
6
  * Make an unauthenticated request to the backend.
7
7
  * Used for device-flow auth endpoints that don't require an API key.
8
8
  */
9
- export async function unauthenticatedRequest(baseUrl, endpoint, method = "GET", body) {
10
- const url = `${baseUrl.replace(/\/$/, "")}${endpoint}`;
9
+ export async function unauthenticatedRequest(baseUrl, endpoint, method = 'GET', body) {
10
+ const url = `${baseUrl.replace(/\/$/, '')}${endpoint}`;
11
11
  debug(`Unauthenticated request: ${method} ${url}`);
12
12
  const headers = {
13
- "Content-Type": "application/json",
13
+ 'Content-Type': 'application/json',
14
14
  };
15
15
  const response = await fetch(url, {
16
16
  method,
@@ -30,32 +30,32 @@ export class ApiClient {
30
30
  debugMode;
31
31
  projectId;
32
32
  constructor(options) {
33
- this.baseUrl = options.baseUrl.replace(/\/$/, "");
34
- this.apiKey = options.apiKey || "";
33
+ this.baseUrl = options.baseUrl.replace(/\/$/, '');
34
+ this.apiKey = options.apiKey || '';
35
35
  this.timeout = options.timeout;
36
36
  this.debugMode = options.debug;
37
37
  this.projectId = options.projectId;
38
38
  }
39
- async request(endpoint, method = "GET", body) {
39
+ async request(endpoint, method = 'GET', body) {
40
40
  const url = `${this.baseUrl}/api/tool_cli${endpoint}`;
41
41
  debug(`Request: ${method} ${url}`);
42
- debug(`Project ID for header: ${this.projectId || "(not set)"}`);
42
+ debug(`Project ID for header: ${this.projectId || '(not set)'}`);
43
43
  if (body) {
44
44
  debug(`Body: ${JSON.stringify(body)}`);
45
45
  }
46
46
  const headers = {
47
- "Content-Type": "application/json",
47
+ 'Content-Type': 'application/json',
48
48
  };
49
49
  if (this.apiKey) {
50
- headers["X-Api-Key"] = this.apiKey;
50
+ headers['X-Api-Key'] = this.apiKey;
51
51
  }
52
52
  // Add project ID header for sandbox lookup when sandbox_id is not provided
53
53
  if (this.projectId) {
54
- headers["X-Project-ID"] = this.projectId;
54
+ headers['X-Project-ID'] = this.projectId;
55
55
  }
56
56
  // Add debug header to request more details from server
57
57
  if (this.debugMode) {
58
- headers["X-Debug"] = "true";
58
+ headers['X-Debug'] = 'true';
59
59
  }
60
60
  const controller = new AbortController();
61
61
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
@@ -73,7 +73,7 @@ export class ApiClient {
73
73
  const errorText = await response.text();
74
74
  debug(`Error response: ${errorText}`);
75
75
  return {
76
- status: "error",
76
+ status: 'error',
77
77
  message: `HTTP ${response.status}: ${response.statusText}`,
78
78
  data: null,
79
79
  };
@@ -89,11 +89,11 @@ export class ApiClient {
89
89
  const SUPPORTED_VERSION = 1;
90
90
  const text = await response.text();
91
91
  debug(`Raw response length: ${text.length}`);
92
- const lines = text.trim().split("\n");
92
+ const lines = text.trim().split('\n');
93
93
  let finalResult = null;
94
94
  for (const rawLine of lines) {
95
95
  const line = rawLine.trim();
96
- if (!line || !line.startsWith("{")) {
96
+ if (!line || !line.startsWith('{')) {
97
97
  continue;
98
98
  }
99
99
  try {
@@ -136,8 +136,8 @@ export class ApiClient {
136
136
  }
137
137
  if (!finalResult) {
138
138
  return {
139
- status: "error",
140
- message: "No valid result found in response",
139
+ status: 'error',
140
+ message: 'No valid result found in response',
141
141
  data: null,
142
142
  };
143
143
  }
@@ -147,34 +147,76 @@ export class ApiClient {
147
147
  catch (err) {
148
148
  clearTimeout(timeoutId);
149
149
  if (err instanceof Error) {
150
- if (err.name === "AbortError") {
150
+ if (err.name === 'AbortError') {
151
151
  logError(`Request timeout after ${this.timeout}ms`);
152
152
  return {
153
- status: "error",
153
+ status: 'error',
154
154
  message: `Request timeout after ${this.timeout}ms`,
155
155
  data: null,
156
156
  };
157
157
  }
158
158
  logError(`Request failed: ${err.message}`);
159
159
  return {
160
- status: "error",
160
+ status: 'error',
161
161
  message: err.message,
162
162
  data: null,
163
163
  };
164
164
  }
165
165
  return {
166
- status: "error",
167
- message: "Unknown error",
166
+ status: 'error',
167
+ message: 'Unknown error',
168
168
  data: null,
169
169
  };
170
170
  }
171
171
  }
172
+ /**
173
+ * Simple JSON request (non-streaming) for endpoints that return plain JSON.
174
+ */
175
+ async requestJson(endpoint, method = 'GET', body) {
176
+ const url = `${this.baseUrl}/api/tool_cli${endpoint}`;
177
+ debug(`Request: ${method} ${url}`);
178
+ if (body) {
179
+ debug(`Body: ${JSON.stringify(body)}`);
180
+ }
181
+ const headers = {
182
+ 'Content-Type': 'application/json',
183
+ };
184
+ if (this.apiKey) {
185
+ headers['X-Api-Key'] = this.apiKey;
186
+ }
187
+ if (this.projectId) {
188
+ headers['X-Project-ID'] = this.projectId;
189
+ }
190
+ const controller = new AbortController();
191
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
192
+ try {
193
+ const response = await fetch(url, {
194
+ method,
195
+ headers,
196
+ body: body ? JSON.stringify(body) : undefined,
197
+ signal: controller.signal,
198
+ });
199
+ clearTimeout(timeoutId);
200
+ if (!response.ok) {
201
+ const errorText = await response.text();
202
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
203
+ }
204
+ return (await response.json());
205
+ }
206
+ catch (err) {
207
+ clearTimeout(timeoutId);
208
+ if (err instanceof Error && err.name === 'AbortError') {
209
+ throw new Error(`Request timeout after ${this.timeout}ms`);
210
+ }
211
+ throw err;
212
+ }
213
+ }
172
214
  /**
173
215
  * List available tools with full schemas
174
216
  */
175
217
  async listTools() {
176
- const response = await this.request("/tools", "GET");
177
- if (response.status === "error") {
218
+ const response = await this.request('/tools', 'GET');
219
+ if (response.status === 'error') {
178
220
  throw new Error(response.message);
179
221
  }
180
222
  // The /tools endpoint returns the data directly, not wrapped in ApiResponse
@@ -184,19 +226,129 @@ export class ApiClient {
184
226
  * Execute any tool by name with arguments
185
227
  */
186
228
  async executeTool(toolName, args) {
187
- return this.request(`/${toolName}`, "POST", args);
229
+ return this.request(`/${toolName}`, 'POST', args);
188
230
  }
189
231
  /**
190
232
  * Get a pre-signed URL for uploading a file
191
233
  */
192
234
  async getUploadUrl(params) {
193
- return this.request("/file/upload_url", "POST", params);
235
+ return this.request('/file/upload_url', 'POST', params);
194
236
  }
195
237
  /**
196
238
  * Get a downloadable URL for a file wrapper URL
197
239
  */
198
240
  async getDownloadUrl(params) {
199
- return this.request("/file/download", "POST", params);
241
+ return this.request('/file/download', 'POST', params);
242
+ }
243
+ /**
244
+ * Get current user info (email, name, plan)
245
+ */
246
+ async getMe() {
247
+ return this.requestJson('/me');
248
+ }
249
+ /**
250
+ * Get OpenCode configuration JSON
251
+ */
252
+ async getOpencodeConfig(model) {
253
+ const query = model ? `?model=${encodeURIComponent(model)}` : '';
254
+ return this.requestJson(`/opencode-config${query}`);
255
+ }
256
+ /**
257
+ * Streaming NDJSON request that processes lines as they arrive.
258
+ * Calls onDebug for each debug/heartbeat message and returns the final result.
259
+ * Suitable for long-running operations like phone calls.
260
+ */
261
+ async requestStreaming(endpoint, body, onDebug) {
262
+ const url = `${this.baseUrl}/api/tool_cli${endpoint}`;
263
+ debug(`Streaming request: POST ${url}`);
264
+ const headers = {
265
+ 'Content-Type': 'application/json',
266
+ };
267
+ if (this.apiKey)
268
+ headers['X-Api-Key'] = this.apiKey;
269
+ if (this.projectId)
270
+ headers['X-Project-ID'] = this.projectId;
271
+ if (this.debugMode)
272
+ headers['X-Debug'] = 'true';
273
+ // Use a long timeout for phone calls (10 minutes)
274
+ const controller = new AbortController();
275
+ const timeoutId = setTimeout(() => controller.abort(), 600000);
276
+ try {
277
+ info(`Calling ${endpoint}...`);
278
+ const response = await fetch(url, {
279
+ method: 'POST',
280
+ headers,
281
+ body: JSON.stringify(body),
282
+ signal: controller.signal,
283
+ });
284
+ // Do NOT clearTimeout here — the timeout must remain active during
285
+ // streaming so a stalled mid-stream connection is still aborted.
286
+ if (!response.ok) {
287
+ clearTimeout(timeoutId);
288
+ const errorText = await response.text();
289
+ return { status: 'error', message: `HTTP ${response.status}: ${errorText}`, data: null };
290
+ }
291
+ if (!response.body) {
292
+ clearTimeout(timeoutId);
293
+ return { status: 'error', message: 'No response body', data: null };
294
+ }
295
+ const SUPPORTED_VERSION = 1;
296
+ let finalResult = null;
297
+ const reader = response.body.getReader();
298
+ const decoder = new TextDecoder();
299
+ let buffer = '';
300
+ while (true) {
301
+ const { done, value } = await reader.read();
302
+ if (done)
303
+ break;
304
+ buffer += decoder.decode(value, { stream: true });
305
+ // Process complete lines
306
+ let newlineIdx;
307
+ while ((newlineIdx = buffer.indexOf('\n')) !== -1) {
308
+ const line = buffer.substring(0, newlineIdx).trim();
309
+ buffer = buffer.substring(newlineIdx + 1);
310
+ if (!line || !line.startsWith('{'))
311
+ continue;
312
+ try {
313
+ const parsed = JSON.parse(line);
314
+ const ver = parsed.version ?? 1;
315
+ if (ver > SUPPORTED_VERSION)
316
+ continue;
317
+ if (parsed.debug === true) {
318
+ onDebug(parsed);
319
+ }
320
+ else {
321
+ finalResult = parsed;
322
+ }
323
+ }
324
+ catch {
325
+ debug(`Skipping malformed JSON line: ${line.substring(0, 100)}`);
326
+ }
327
+ }
328
+ }
329
+ // Process any remaining data in buffer
330
+ const remaining = buffer.trim();
331
+ if (remaining && remaining.startsWith('{')) {
332
+ try {
333
+ const parsed = JSON.parse(remaining);
334
+ if (parsed.debug !== true) {
335
+ finalResult = parsed;
336
+ }
337
+ }
338
+ catch {
339
+ // ignore
340
+ }
341
+ }
342
+ clearTimeout(timeoutId);
343
+ return finalResult || { status: 'error', message: 'No final result in stream', data: null };
344
+ }
345
+ catch (err) {
346
+ clearTimeout(timeoutId);
347
+ if (err instanceof Error && err.name === 'AbortError') {
348
+ return { status: 'error', message: 'Request timeout (phone call took too long)', data: null };
349
+ }
350
+ return { status: 'error', message: err.message, data: null };
351
+ }
200
352
  }
201
353
  }
202
354
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}