scoutline 0.1.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.
Files changed (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/bin/scoutline.js +17 -0
  4. package/dist/commands/code.d.ts +13 -0
  5. package/dist/commands/code.d.ts.map +1 -0
  6. package/dist/commands/code.js +94 -0
  7. package/dist/commands/code.js.map +1 -0
  8. package/dist/commands/doctor.d.ts +10 -0
  9. package/dist/commands/doctor.d.ts.map +1 -0
  10. package/dist/commands/doctor.js +70 -0
  11. package/dist/commands/doctor.js.map +1 -0
  12. package/dist/commands/quota.d.ts +9 -0
  13. package/dist/commands/quota.d.ts.map +1 -0
  14. package/dist/commands/quota.js +77 -0
  15. package/dist/commands/quota.js.map +1 -0
  16. package/dist/commands/read.d.ts +20 -0
  17. package/dist/commands/read.d.ts.map +1 -0
  18. package/dist/commands/read.js +166 -0
  19. package/dist/commands/read.js.map +1 -0
  20. package/dist/commands/repo.d.ts +22 -0
  21. package/dist/commands/repo.d.ts.map +1 -0
  22. package/dist/commands/repo.js +219 -0
  23. package/dist/commands/repo.js.map +1 -0
  24. package/dist/commands/search.d.ts +19 -0
  25. package/dist/commands/search.d.ts.map +1 -0
  26. package/dist/commands/search.js +235 -0
  27. package/dist/commands/search.js.map +1 -0
  28. package/dist/commands/tools.d.ts +22 -0
  29. package/dist/commands/tools.d.ts.map +1 -0
  30. package/dist/commands/tools.js +173 -0
  31. package/dist/commands/tools.js.map +1 -0
  32. package/dist/commands/vision.d.ts +15 -0
  33. package/dist/commands/vision.d.ts.map +1 -0
  34. package/dist/commands/vision.js +168 -0
  35. package/dist/commands/vision.js.map +1 -0
  36. package/dist/index.d.ts +5 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +443 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/lib/api-client.d.ts +133 -0
  41. package/dist/lib/api-client.d.ts.map +1 -0
  42. package/dist/lib/api-client.js +150 -0
  43. package/dist/lib/api-client.js.map +1 -0
  44. package/dist/lib/cache.d.ts +34 -0
  45. package/dist/lib/cache.d.ts.map +1 -0
  46. package/dist/lib/cache.js +168 -0
  47. package/dist/lib/cache.js.map +1 -0
  48. package/dist/lib/code-mode.d.ts +19 -0
  49. package/dist/lib/code-mode.d.ts.map +1 -0
  50. package/dist/lib/code-mode.js +83 -0
  51. package/dist/lib/code-mode.js.map +1 -0
  52. package/dist/lib/config.d.ts +21 -0
  53. package/dist/lib/config.d.ts.map +1 -0
  54. package/dist/lib/config.js +59 -0
  55. package/dist/lib/config.js.map +1 -0
  56. package/dist/lib/errors.d.ts +29 -0
  57. package/dist/lib/errors.d.ts.map +1 -0
  58. package/dist/lib/errors.js +69 -0
  59. package/dist/lib/errors.js.map +1 -0
  60. package/dist/lib/extract.d.ts +37 -0
  61. package/dist/lib/extract.d.ts.map +1 -0
  62. package/dist/lib/extract.js +106 -0
  63. package/dist/lib/extract.js.map +1 -0
  64. package/dist/lib/image.d.ts +13 -0
  65. package/dist/lib/image.d.ts.map +1 -0
  66. package/dist/lib/image.js +102 -0
  67. package/dist/lib/image.js.map +1 -0
  68. package/dist/lib/index.d.ts +10 -0
  69. package/dist/lib/index.d.ts.map +1 -0
  70. package/dist/lib/index.js +10 -0
  71. package/dist/lib/index.js.map +1 -0
  72. package/dist/lib/mcp-client.d.ts +161 -0
  73. package/dist/lib/mcp-client.d.ts.map +1 -0
  74. package/dist/lib/mcp-client.js +494 -0
  75. package/dist/lib/mcp-client.js.map +1 -0
  76. package/dist/lib/mcp-config.d.ts +24 -0
  77. package/dist/lib/mcp-config.d.ts.map +1 -0
  78. package/dist/lib/mcp-config.js +129 -0
  79. package/dist/lib/mcp-config.js.map +1 -0
  80. package/dist/lib/monitor-client.d.ts +51 -0
  81. package/dist/lib/monitor-client.d.ts.map +1 -0
  82. package/dist/lib/monitor-client.js +115 -0
  83. package/dist/lib/monitor-client.js.map +1 -0
  84. package/dist/lib/output.d.ts +24 -0
  85. package/dist/lib/output.d.ts.map +1 -0
  86. package/dist/lib/output.js +59 -0
  87. package/dist/lib/output.js.map +1 -0
  88. package/dist/lib/redact.d.ts +7 -0
  89. package/dist/lib/redact.d.ts.map +1 -0
  90. package/dist/lib/redact.js +50 -0
  91. package/dist/lib/redact.js.map +1 -0
  92. package/dist/lib/silence.d.ts +16 -0
  93. package/dist/lib/silence.d.ts.map +1 -0
  94. package/dist/lib/silence.js +56 -0
  95. package/dist/lib/silence.js.map +1 -0
  96. package/dist/lib/tty.d.ts +60 -0
  97. package/dist/lib/tty.d.ts.map +1 -0
  98. package/dist/lib/tty.js +103 -0
  99. package/dist/lib/tty.js.map +1 -0
  100. package/package.json +60 -0
package/dist/index.js ADDED
@@ -0,0 +1,443 @@
1
+ /**
2
+ * scoutline - CLI for Z.AI capabilities
3
+ */
4
+ import * as vision from "./commands/vision.js";
5
+ import { search, SEARCH_HELP } from "./commands/search.js";
6
+ import { read, READ_HELP } from "./commands/read.js";
7
+ import { repoSearch, repoTree, repoRead, REPO_HELP } from "./commands/repo.js";
8
+ import { listTools, showTool, callTool, TOOLS_HELP, CALL_HELP } from "./commands/tools.js";
9
+ import { doctor, DOCTOR_HELP } from "./commands/doctor.js";
10
+ import { quota, QUOTA_HELP } from "./commands/quota.js";
11
+ import { isExtractMode } from "./lib/extract.js";
12
+ import { runCodeFile, evalCode, printInterfaces, printPromptTemplate, CODE_HELP, } from "./commands/code.js";
13
+ import { outputError, setOutputMode } from "./lib/output.js";
14
+ import { createRequire } from "node:module";
15
+ const require = createRequire(import.meta.url);
16
+ const { version: VERSION } = require("../package.json");
17
+ const MAIN_HELP = `
18
+ scoutline v${VERSION} - CLI for Z.AI MCP services
19
+
20
+ Usage: scoutline <command> [args] [options]
21
+
22
+ Commands:
23
+ vision Image and video analysis (MCP)
24
+ search Real-time web search
25
+ read Fetch and parse web pages
26
+ repo GitHub repository exploration
27
+ quota Authoritative Z.AI plan usage (calls remaining, reset time)
28
+ tools List available MCP tools
29
+ tool Show a tool schema
30
+ call Call a tool directly
31
+ doctor Environment + connectivity checks
32
+ code Execute TypeScript tool chains (Code Mode)
33
+
34
+ Global Options:
35
+ --output-format <data|json|pretty|compact|markdown|refs> Output mode (default: data)
36
+ -O <mode> Alias for --output-format
37
+
38
+ Help:
39
+ scoutline --help
40
+ scoutline vision --help
41
+ scoutline search --help
42
+ scoutline read --help
43
+ scoutline repo --help
44
+ scoutline tools --help
45
+ scoutline call --help
46
+ scoutline code --help
47
+ `.trim();
48
+ function parseArgs(args) {
49
+ const flags = {};
50
+ const positional = [];
51
+ let i = 0;
52
+ while (i < args.length) {
53
+ const arg = args[i];
54
+ if (arg.startsWith("--")) {
55
+ const key = arg.slice(2);
56
+ if (key.startsWith("no-")) {
57
+ flags[key.slice(3)] = false;
58
+ flags[key] = true;
59
+ i++;
60
+ continue;
61
+ }
62
+ const nextArg = args[i + 1];
63
+ if (nextArg && !nextArg.startsWith("-")) {
64
+ flags[key] = nextArg;
65
+ i += 2;
66
+ }
67
+ else {
68
+ flags[key] = true;
69
+ i++;
70
+ }
71
+ }
72
+ else if (arg.startsWith("-") && arg.length === 2) {
73
+ const key = arg.slice(1);
74
+ const nextArg = args[i + 1];
75
+ if (nextArg && !nextArg.startsWith("-")) {
76
+ flags[key] = nextArg;
77
+ i += 2;
78
+ }
79
+ else {
80
+ flags[key] = true;
81
+ i++;
82
+ }
83
+ }
84
+ else {
85
+ positional.push(arg);
86
+ i++;
87
+ }
88
+ }
89
+ return { flags, positional };
90
+ }
91
+ function extractGlobalOptions(args) {
92
+ const rest = [];
93
+ let outputFormat;
94
+ let forcePretty = false;
95
+ let forceRaw = false;
96
+ for (let i = 0; i < args.length; i += 1) {
97
+ const arg = args[i];
98
+ if (arg === "--output-format" || arg === "-O") {
99
+ outputFormat = args[i + 1];
100
+ i += 1;
101
+ continue;
102
+ }
103
+ if (arg === "--pretty-output") {
104
+ forcePretty = true;
105
+ continue;
106
+ }
107
+ if (arg === "--raw") {
108
+ forceRaw = true;
109
+ continue;
110
+ }
111
+ rest.push(arg);
112
+ }
113
+ return { outputFormat, forcePretty, forceRaw, rest };
114
+ }
115
+ function applyOutputMode(mode) {
116
+ const valid = ["data", "json", "pretty", "compact", "markdown", "refs", "tty"];
117
+ if (!mode)
118
+ return;
119
+ if (valid.includes(mode)) {
120
+ setOutputMode(mode);
121
+ return;
122
+ }
123
+ outputError(`Invalid output format: ${mode}`, "INVALID_ARGS", `Use one of: ${valid.join(", ")}`);
124
+ }
125
+ async function handleVision(args) {
126
+ const { flags, positional } = parseArgs(args);
127
+ if (flags.help || flags.h || positional.length === 0) {
128
+ console.log(vision.VISION_HELP);
129
+ return;
130
+ }
131
+ const command = positional[0];
132
+ const source = positional[1];
133
+ const prompt = positional[2];
134
+ switch (command) {
135
+ case "analyze":
136
+ if (!source) {
137
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision analyze <image> [prompt]");
138
+ }
139
+ await vision.analyze(source, prompt);
140
+ break;
141
+ case "ui-to-code":
142
+ if (!source) {
143
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision ui-to-code <image> [prompt]");
144
+ }
145
+ const outputType = flags.output || "code";
146
+ await vision.uiToCode(source, prompt, outputType);
147
+ break;
148
+ case "extract-text":
149
+ if (!source) {
150
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision extract-text <image> [prompt] [--language <lang>]");
151
+ }
152
+ await vision.extractText(source, prompt, flags.language);
153
+ break;
154
+ case "diagnose-error":
155
+ if (!source) {
156
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision diagnose-error <image> [prompt] [--context <ctx>]");
157
+ }
158
+ await vision.diagnoseError(source, prompt, flags.context);
159
+ break;
160
+ case "diagram":
161
+ if (!source) {
162
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision diagram <image> [prompt] [--type <type>]");
163
+ }
164
+ await vision.diagram(source, prompt, flags.type);
165
+ break;
166
+ case "chart":
167
+ if (!source) {
168
+ outputError("Missing image source", "INVALID_ARGS", "Usage: scoutline vision chart <image> [prompt] [--focus <focus>]");
169
+ }
170
+ await vision.chart(source, prompt, flags.focus);
171
+ break;
172
+ case "diff":
173
+ const actual = positional[2];
174
+ const diffPrompt = positional[3];
175
+ if (!source || !actual) {
176
+ outputError("Missing image sources", "INVALID_ARGS", "Usage: scoutline vision diff <expected> <actual> [prompt]");
177
+ }
178
+ await vision.diff(source, actual, diffPrompt);
179
+ break;
180
+ case "video":
181
+ if (!source) {
182
+ outputError("Missing video source", "INVALID_ARGS", "Usage: scoutline vision video <video> [prompt]");
183
+ }
184
+ await vision.video(source, prompt);
185
+ break;
186
+ default:
187
+ outputError(`Unknown vision command: ${command}`, "INVALID_ARGS", 'Run "scoutline vision --help" for available commands');
188
+ }
189
+ }
190
+ async function handleSearch(args) {
191
+ const { flags, positional } = parseArgs(args);
192
+ if (flags.help || flags.h || positional.length === 0) {
193
+ console.log(SEARCH_HELP);
194
+ return;
195
+ }
196
+ const query = positional.join(" ");
197
+ const fieldsRaw = flags.fields;
198
+ const fields = fieldsRaw
199
+ ? fieldsRaw
200
+ .split(",")
201
+ .map((f) => f.trim())
202
+ .filter(Boolean)
203
+ : undefined;
204
+ await search(query, {
205
+ count: flags.count ? parseInt(flags.count, 10) : undefined,
206
+ domain: flags.domain,
207
+ recency: flags.recency,
208
+ contentSize: flags["content-size"],
209
+ location: flags.location,
210
+ maxSummary: flags["max-summary"] ? parseInt(flags["max-summary"], 10) : undefined,
211
+ fields: fields && fields.length > 0 ? fields : undefined,
212
+ noCache: flags["no-cache"] === true,
213
+ merge: flags.merge === true,
214
+ });
215
+ }
216
+ async function handleRead(args) {
217
+ const { flags, positional } = parseArgs(args);
218
+ if (flags.help || flags.h || positional.length === 0) {
219
+ console.log(READ_HELP);
220
+ return;
221
+ }
222
+ const url = positional[0];
223
+ await read(url, {
224
+ format: flags.format,
225
+ noImages: flags["no-images"] === true,
226
+ noCache: flags["no-cache"] === true,
227
+ withLinks: flags["with-links"] === true,
228
+ timeout: flags.timeout ? parseInt(flags.timeout, 10) : undefined,
229
+ noGfm: flags["no-gfm"] === true,
230
+ keepImgDataUrl: flags["keep-img-data-url"] === true,
231
+ withImagesSummary: flags["with-images-summary"] === true,
232
+ maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
233
+ fullEnvelope: flags["full-envelope"] === true,
234
+ extract: isExtractMode(flags.extract) ? flags.extract : undefined,
235
+ });
236
+ }
237
+ async function handleRepo(args) {
238
+ const { flags, positional } = parseArgs(args);
239
+ if (flags.help || flags.h || positional.length === 0) {
240
+ console.log(REPO_HELP);
241
+ return;
242
+ }
243
+ const command = positional[0];
244
+ const repo = positional[1];
245
+ switch (command) {
246
+ case "search":
247
+ const query = positional.slice(2).join(" ");
248
+ if (!repo || !query) {
249
+ outputError("Missing repo or query", "INVALID_ARGS", "Usage: scoutline repo search <owner/repo> <query>");
250
+ }
251
+ await repoSearch(repo, query, {
252
+ language: flags.language,
253
+ maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
254
+ noCache: flags["no-cache"] === true,
255
+ });
256
+ break;
257
+ case "tree":
258
+ if (!repo) {
259
+ outputError("Missing repo", "INVALID_ARGS", "Usage: scoutline repo tree <owner/repo>");
260
+ }
261
+ await repoTree(repo, {
262
+ path: flags.path,
263
+ depth: flags.depth ? parseInt(flags.depth, 10) : undefined,
264
+ noCache: flags["no-cache"] === true,
265
+ });
266
+ break;
267
+ case "read":
268
+ const path = positional[2];
269
+ if (!repo || !path) {
270
+ outputError("Missing repo or path", "INVALID_ARGS", "Usage: scoutline repo read <owner/repo> <path>");
271
+ }
272
+ await repoRead(repo, path, {
273
+ maxChars: flags["max-chars"] ? parseInt(flags["max-chars"], 10) : undefined,
274
+ noCache: flags["no-cache"] === true,
275
+ });
276
+ break;
277
+ default:
278
+ outputError(`Unknown repo command: ${command}`, "INVALID_ARGS", 'Run "scoutline repo --help" for available commands');
279
+ }
280
+ }
281
+ async function handleTools(args) {
282
+ const { flags } = parseArgs(args);
283
+ if (flags.help || flags.h) {
284
+ console.log(TOOLS_HELP);
285
+ return;
286
+ }
287
+ await listTools({
288
+ filter: flags.filter,
289
+ full: flags.full === true,
290
+ typescript: flags.typescript === true || flags.ts === true,
291
+ enableVision: flags.vision !== false,
292
+ });
293
+ }
294
+ async function handleTool(args) {
295
+ const { flags, positional } = parseArgs(args);
296
+ if (flags.help || flags.h || positional.length === 0) {
297
+ console.log(TOOLS_HELP);
298
+ return;
299
+ }
300
+ await showTool(positional[0], { enableVision: flags.vision !== false });
301
+ }
302
+ async function handleCall(args) {
303
+ const { flags, positional } = parseArgs(args);
304
+ if (flags.help || flags.h || positional.length === 0) {
305
+ console.log(CALL_HELP);
306
+ return;
307
+ }
308
+ await callTool(positional[0], {
309
+ json: flags.json,
310
+ file: flags.file,
311
+ stdin: flags.stdin === true,
312
+ dryRun: flags["dry-run"] === true,
313
+ enableVision: flags.vision !== false,
314
+ });
315
+ }
316
+ async function handleDoctor(args) {
317
+ const { flags } = parseArgs(args);
318
+ if (flags.help || flags.h) {
319
+ console.log(DOCTOR_HELP);
320
+ return;
321
+ }
322
+ await doctor({
323
+ noTools: flags["no-tools"] === true,
324
+ enableVision: flags.vision !== false,
325
+ });
326
+ }
327
+ async function handleQuota(args) {
328
+ const { flags } = parseArgs(args);
329
+ if (flags.help || flags.h) {
330
+ console.log(QUOTA_HELP);
331
+ return;
332
+ }
333
+ await quota({});
334
+ }
335
+ async function handleCode(args) {
336
+ const { flags, positional } = parseArgs(args);
337
+ if (flags.help || flags.h || positional.length === 0) {
338
+ console.log(CODE_HELP);
339
+ return;
340
+ }
341
+ const command = positional[0];
342
+ const timeout = flags.timeout ? parseInt(flags.timeout, 10) : undefined;
343
+ const includeLogs = flags.logs === true;
344
+ switch (command) {
345
+ case "run": {
346
+ const filePath = positional[1];
347
+ if (!filePath) {
348
+ outputError("Missing code file", "INVALID_ARGS", "Usage: scoutline code run <file>");
349
+ }
350
+ await runCodeFile(filePath, { timeout, includeLogs });
351
+ break;
352
+ }
353
+ case "eval": {
354
+ const code = positional.slice(1).join(" ");
355
+ if (!code) {
356
+ outputError("Missing code string", "INVALID_ARGS", "Usage: scoutline code eval <code>");
357
+ }
358
+ await evalCode(code, { timeout, includeLogs });
359
+ break;
360
+ }
361
+ case "interfaces":
362
+ await printInterfaces();
363
+ break;
364
+ case "prompt":
365
+ printPromptTemplate();
366
+ break;
367
+ default:
368
+ outputError(`Unknown code command: ${command}`, "INVALID_ARGS", 'Run "scoutline code --help" for available commands');
369
+ }
370
+ }
371
+ export async function main(args) {
372
+ const cleanArgs = args[0]?.includes("node") || args[0]?.includes("scoutline") ? args.slice(2) : args;
373
+ const { outputFormat, forcePretty, forceRaw, rest } = extractGlobalOptions(cleanArgs);
374
+ // Resolve effective mode: explicit -O wins; else --pretty-output / --raw;
375
+ // else auto: "tty" when stdout is a TTY, "data" when piped.
376
+ if (outputFormat) {
377
+ applyOutputMode(outputFormat);
378
+ }
379
+ else if (forcePretty) {
380
+ setOutputMode("tty");
381
+ }
382
+ else if (forceRaw) {
383
+ setOutputMode("data");
384
+ }
385
+ else if (process.stdout.isTTY) {
386
+ setOutputMode("tty");
387
+ } // else: default "data" mode (set at module load in output.ts)
388
+ if (rest.length === 0 || rest[0] === "--help" || rest[0] === "-h") {
389
+ console.log(MAIN_HELP);
390
+ return;
391
+ }
392
+ if (rest[0] === "--version" || rest[0] === "-v") {
393
+ console.log(VERSION);
394
+ return;
395
+ }
396
+ const command = rest[0];
397
+ const commandArgs = rest.slice(1);
398
+ switch (command) {
399
+ case "vision":
400
+ await handleVision(commandArgs);
401
+ break;
402
+ case "search":
403
+ await handleSearch(commandArgs);
404
+ break;
405
+ case "read":
406
+ await handleRead(commandArgs);
407
+ break;
408
+ case "repo":
409
+ await handleRepo(commandArgs);
410
+ break;
411
+ case "tools":
412
+ await handleTools(commandArgs);
413
+ break;
414
+ case "tool":
415
+ await handleTool(commandArgs);
416
+ break;
417
+ case "call":
418
+ await handleCall(commandArgs);
419
+ break;
420
+ case "doctor":
421
+ await handleDoctor(commandArgs);
422
+ break;
423
+ case "quota":
424
+ await handleQuota(commandArgs);
425
+ break;
426
+ case "code":
427
+ await handleCode(commandArgs);
428
+ break;
429
+ default:
430
+ outputError(`Unknown command: ${command}`, "INVALID_ARGS", 'Run "scoutline --help" for available commands');
431
+ }
432
+ }
433
+ main(process.argv)
434
+ .then(() => process.exit(0))
435
+ .catch((error) => {
436
+ console.error(JSON.stringify({
437
+ success: false,
438
+ error: error.message,
439
+ code: "FATAL_ERROR",
440
+ }, null, 2));
441
+ process.exit(1);
442
+ });
443
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Z.AI API client for vision, search, and reader
3
+ */
4
+ import { type ZaiConfig } from "./config.js";
5
+ export interface ImageContent {
6
+ type: "image_url";
7
+ image_url: {
8
+ url: string;
9
+ };
10
+ }
11
+ export interface VideoContent {
12
+ type: "video_url";
13
+ video_url: {
14
+ url: string;
15
+ };
16
+ }
17
+ export interface TextContent {
18
+ type: "text";
19
+ text: string;
20
+ }
21
+ export type MessageContent = ImageContent | VideoContent | TextContent;
22
+ export interface Message {
23
+ role: "system" | "user" | "assistant";
24
+ content: string | MessageContent[];
25
+ }
26
+ export interface VisionRequest {
27
+ model: string;
28
+ messages: Message[];
29
+ thinking?: {
30
+ type: string;
31
+ };
32
+ stream: boolean;
33
+ temperature: number;
34
+ top_p: number;
35
+ max_tokens: number;
36
+ }
37
+ export interface VisionResponse {
38
+ id: string;
39
+ created: number;
40
+ model: string;
41
+ choices: Array<{
42
+ index: number;
43
+ message: {
44
+ role: string;
45
+ content: string;
46
+ reasoning_content?: string;
47
+ };
48
+ finish_reason: string;
49
+ }>;
50
+ usage: {
51
+ prompt_tokens: number;
52
+ completion_tokens: number;
53
+ total_tokens: number;
54
+ };
55
+ }
56
+ export interface SearchRequest {
57
+ search_engine: "search-prime";
58
+ search_query: string;
59
+ count?: number;
60
+ search_domain_filter?: string;
61
+ search_recency_filter?: "oneDay" | "oneWeek" | "oneMonth" | "oneYear" | "noLimit";
62
+ }
63
+ export interface SearchResult {
64
+ title: string;
65
+ content: string;
66
+ link: string;
67
+ media: string;
68
+ icon: string;
69
+ refer: string;
70
+ publish_date?: string;
71
+ }
72
+ export interface SearchResponse {
73
+ id: string;
74
+ created: number;
75
+ search_result: SearchResult[];
76
+ }
77
+ export interface ReaderRequest {
78
+ url: string;
79
+ timeout?: number;
80
+ no_cache?: boolean;
81
+ return_format?: "markdown" | "text";
82
+ retain_images?: boolean;
83
+ no_gfm?: boolean;
84
+ with_images_summary?: boolean;
85
+ with_links_summary?: boolean;
86
+ }
87
+ export interface ReaderResponse {
88
+ id: string;
89
+ created: number;
90
+ reader_result: {
91
+ content: string;
92
+ description: string;
93
+ title: string;
94
+ url: string;
95
+ metadata?: Record<string, string>;
96
+ };
97
+ }
98
+ /**
99
+ * Z.AI API client
100
+ */
101
+ export declare class ZaiApiClient {
102
+ private config;
103
+ constructor(config?: ZaiConfig);
104
+ private request;
105
+ /**
106
+ * Vision completions API for image/video analysis
107
+ */
108
+ visionComplete(messages: Message[]): Promise<VisionResponse>;
109
+ /**
110
+ * Web search API
111
+ */
112
+ webSearch(params: {
113
+ query: string;
114
+ count?: number;
115
+ domainFilter?: string;
116
+ recencyFilter?: "oneDay" | "oneWeek" | "oneMonth" | "oneYear" | "noLimit";
117
+ }): Promise<SearchResponse>;
118
+ /**
119
+ * Web reader API
120
+ */
121
+ webRead(params: {
122
+ url: string;
123
+ format?: "markdown" | "text";
124
+ retainImages?: boolean;
125
+ withLinksSummary?: boolean;
126
+ timeout?: number;
127
+ }): Promise<ReaderResponse>;
128
+ }
129
+ export declare function createImageContent(url: string): ImageContent;
130
+ export declare function createVideoContent(url: string): VideoContent;
131
+ export declare function createTextContent(text: string): TextContent;
132
+ export declare function createMultimodalMessage(contents: MessageContent[], role?: "user" | "system"): Message;
133
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}