@wiro-ai/wiro-mcp 1.1.4 → 1.2.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/README.md +87 -5
- package/dist/client.d.ts +46 -11
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +239 -22
- package/dist/client.js.map +1 -1
- package/dist/tools/cancel-task.d.ts.map +1 -1
- package/dist/tools/cancel-task.js +34 -4
- package/dist/tools/cancel-task.js.map +1 -1
- package/dist/tools/explore.d.ts.map +1 -1
- package/dist/tools/explore.js +17 -1
- package/dist/tools/explore.js.map +1 -1
- package/dist/tools/get-model-schema.d.ts.map +1 -1
- package/dist/tools/get-model-schema.js +18 -2
- package/dist/tools/get-model-schema.js.map +1 -1
- package/dist/tools/get-task-price.d.ts.map +1 -1
- package/dist/tools/get-task-price.js +38 -5
- package/dist/tools/get-task-price.js.map +1 -1
- package/dist/tools/get-task.d.ts +1 -1
- package/dist/tools/get-task.d.ts.map +1 -1
- package/dist/tools/get-task.js +77 -7
- package/dist/tools/get-task.js.map +1 -1
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/kill-task.d.ts.map +1 -1
- package/dist/tools/kill-task.js +34 -4
- package/dist/tools/kill-task.js.map +1 -1
- package/dist/tools/list-tasks.d.ts +4 -0
- package/dist/tools/list-tasks.d.ts.map +1 -0
- package/dist/tools/list-tasks.js +89 -0
- package/dist/tools/list-tasks.js.map +1 -0
- package/dist/tools/recommend-model.d.ts.map +1 -1
- package/dist/tools/recommend-model.js +51 -4
- package/dist/tools/recommend-model.js.map +1 -1
- package/dist/tools/run-model.d.ts +1 -1
- package/dist/tools/run-model.d.ts.map +1 -1
- package/dist/tools/run-model.js +115 -19
- package/dist/tools/run-model.js.map +1 -1
- package/dist/tools/schemas.d.ts +683 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +134 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/search-docs.d.ts.map +1 -1
- package/dist/tools/search-docs.js +30 -4
- package/dist/tools/search-docs.js.map +1 -1
- package/dist/tools/search-models.d.ts.map +1 -1
- package/dist/tools/search-models.js +65 -15
- package/dist/tools/search-models.js.map +1 -1
- package/dist/tools/upload-file.d.ts.map +1 -1
- package/dist/tools/upload-file.js +42 -4
- package/dist/tools/upload-file.js.map +1 -1
- package/dist/tools/wait-for-task.d.ts +4 -0
- package/dist/tools/wait-for-task.d.ts.map +1 -0
- package/dist/tools/wait-for-task.js +121 -0
- package/dist/tools/wait-for-task.js.map +1 -0
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/format.d.ts +10 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +93 -4
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/structured.d.ts +113 -0
- package/dist/utils/structured.d.ts.map +1 -0
- package/dist/utils/structured.js +227 -0
- package/dist/utils/structured.js.map +1 -0
- package/package.json +13 -6
package/README.md
CHANGED
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
## Quick Start
|
|
20
20
|
|
|
21
|
+
Local `npx` and library usage require Node.js 20 or later. The hosted MCP
|
|
22
|
+
endpoint does not require a local Node.js installation.
|
|
23
|
+
|
|
21
24
|
### 1. Get API Keys
|
|
22
25
|
|
|
23
26
|
Sign up at [wiro.ai](https://wiro.ai/) and create a project at [wiro.ai/panel/project/new](https://wiro.ai/panel/project/new) to get your API key and secret.
|
|
@@ -83,6 +86,44 @@ Then set environment variables `WIRO_API_KEY` and `WIRO_API_SECRET`.
|
|
|
83
86
|
}
|
|
84
87
|
```
|
|
85
88
|
|
|
89
|
+
**OpenClaw** — configure a remote server under `mcp.servers`:
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"mcp": {
|
|
94
|
+
"servers": {
|
|
95
|
+
"wiro": {
|
|
96
|
+
"url": "https://mcp.wiro.ai/v1",
|
|
97
|
+
"transport": "streamable-http",
|
|
98
|
+
"connectionTimeoutMs": 10000,
|
|
99
|
+
"headers": {
|
|
100
|
+
"Authorization": "Bearer ${WIRO_MCP_AUTH}"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Set `WIRO_MCP_AUTH` in OpenClaw's environment, then verify with
|
|
109
|
+
`openclaw mcp doctor wiro --probe`. On older OpenClaw releases without that
|
|
110
|
+
probe command, use `openclaw mcp show wiro`, restart OpenClaw, and run
|
|
111
|
+
`/tools verbose`.
|
|
112
|
+
|
|
113
|
+
**Hermes** — add to `~/.hermes/config.yaml`:
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
mcp_servers:
|
|
117
|
+
wiro:
|
|
118
|
+
url: "https://mcp.wiro.ai/v1"
|
|
119
|
+
headers:
|
|
120
|
+
Authorization: "Bearer ${WIRO_MCP_AUTH}"
|
|
121
|
+
timeout: 60
|
|
122
|
+
connect_timeout: 10
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Store `WIRO_MCP_AUTH` in `~/.hermes/.env`, then run `/reload-mcp` and `/tools`.
|
|
126
|
+
|
|
86
127
|
### 3. Start Using
|
|
87
128
|
|
|
88
129
|
Ask your AI assistant:
|
|
@@ -92,6 +133,7 @@ Ask your AI assistant:
|
|
|
92
133
|
- *"Show me the parameters for openai/sora-2"*
|
|
93
134
|
- *"Create a 5-second video with Kling V3 — a drone shot over mountains"*
|
|
94
135
|
- *"Check the status of my last task"*
|
|
136
|
+
- *"Show my latest productions and open the newest result"*
|
|
95
137
|
|
|
96
138
|
## Authentication
|
|
97
139
|
|
|
@@ -122,21 +164,60 @@ WIRO_API_KEY=your-api-key
|
|
|
122
164
|
| `get_model_schema` | Get full parameter schema and pricing for any model |
|
|
123
165
|
| `recommend_model` | Describe what you want to build, get model recommendations by relevance |
|
|
124
166
|
| `explore` | Browse curated models organized by category — no parameters needed |
|
|
125
|
-
| `run_model` | Run any model —
|
|
126
|
-
| `
|
|
167
|
+
| `run_model` | Run any model — waits up to 45s by default, then returns a recoverable task token |
|
|
168
|
+
| `wait_for_task` | Continue waiting for an existing task without submitting or billing a duplicate run |
|
|
169
|
+
| `get_task` | Check task status immediately or wait up to 45s with `wait_seconds` |
|
|
170
|
+
| `list_tasks` | Browse authenticated task history across conversations, then continue with `get_task` |
|
|
127
171
|
| `get_task_price` | Get the cost of a completed task |
|
|
128
172
|
| `cancel_task` | Cancel a queued task |
|
|
129
173
|
| `kill_task` | Kill a running task |
|
|
130
174
|
| `upload_file` | Upload a file from URL for use as model input |
|
|
131
175
|
| `search_docs` | Search the Wiro documentation for guides and API references |
|
|
132
176
|
|
|
177
|
+
For long generations, `run_model` returns the existing task ID and token when its
|
|
178
|
+
wait budget expires. The assistant must continue with `wait_for_task`; retrying
|
|
179
|
+
`run_model` creates a separate billable task.
|
|
180
|
+
|
|
181
|
+
### LLM-friendly responses
|
|
182
|
+
|
|
183
|
+
All tools publish typed MCP input and output schemas. Successful calls return
|
|
184
|
+
`structuredContent` for reliable chaining, concise text `content` for clients
|
|
185
|
+
that only render text, and MCP resource links for generated media.
|
|
186
|
+
|
|
187
|
+
Task responses use the stable states `submitted`, `running`, `completed`,
|
|
188
|
+
`failed`, and `cancelled`. When more work is required, the response includes an
|
|
189
|
+
executable `nextAction`:
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"state": "running",
|
|
194
|
+
"task": {
|
|
195
|
+
"id": "123",
|
|
196
|
+
"token": "task-token",
|
|
197
|
+
"status": "task_start"
|
|
198
|
+
},
|
|
199
|
+
"outputs": [],
|
|
200
|
+
"nextAction": {
|
|
201
|
+
"tool": "wait_for_task",
|
|
202
|
+
"arguments": { "tasktoken": "task-token" },
|
|
203
|
+
"reason": "Continue this exact task. Do not call run_model again."
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Generation chain:
|
|
209
|
+
`search_models → get_model_schema → run_model → wait_for_task`
|
|
210
|
+
|
|
211
|
+
Cross-conversation history:
|
|
212
|
+
`list_tasks → get_task`
|
|
213
|
+
|
|
133
214
|
## Hosted MCP Server
|
|
134
215
|
|
|
135
216
|
Wiro also provides a hosted MCP server at `https://mcp.wiro.ai/v1` that requires no local installation. See the [MCP Server documentation](https://wiro.ai/docs/wiro-mcp-server) for setup instructions.
|
|
136
217
|
|
|
137
218
|
## Documentation
|
|
138
219
|
|
|
139
|
-
- [MCP Server (Hosted)](https://wiro.ai/docs/wiro-mcp-server) — setup guides for Cursor, Claude Code, Claude Desktop, Windsurf
|
|
220
|
+
- [MCP Server (Hosted)](https://wiro.ai/docs/wiro-mcp-server) — setup guides for Cursor, Claude Code, Claude Desktop, Windsurf, OpenClaw, and Hermes
|
|
140
221
|
- [Self-Hosted MCP](https://wiro.ai/docs/mcp-self-hosted) — run locally with npx, environment variables, library usage
|
|
141
222
|
- [Authentication](https://wiro.ai/docs/authentication) — signature-based vs API Key Only
|
|
142
223
|
- [Run a Model](https://wiro.ai/docs/run-a-model) — how the Run endpoint works
|
|
@@ -149,7 +230,8 @@ Wiro also provides a hosted MCP server at `https://mcp.wiro.ai/v1` that requires
|
|
|
149
230
|
This package exports its core components for use in custom MCP servers:
|
|
150
231
|
|
|
151
232
|
```typescript
|
|
152
|
-
import {
|
|
233
|
+
import { WiroClient } from '@wiro-ai/wiro-mcp/client';
|
|
234
|
+
import { createMcpServer } from '@wiro-ai/wiro-mcp/server';
|
|
153
235
|
|
|
154
236
|
const client = new WiroClient('your-api-key', 'your-api-secret');
|
|
155
237
|
const server = createMcpServer(client);
|
|
@@ -159,7 +241,7 @@ const server = createMcpServer(client);
|
|
|
159
241
|
|
|
160
242
|
| Export | Description |
|
|
161
243
|
|--------|-------------|
|
|
162
|
-
| `createMcpServer(client)` | Creates an McpServer with all
|
|
244
|
+
| `createMcpServer(client)` | Creates an McpServer with all 13 tools registered |
|
|
163
245
|
| `WiroClient` | API client with both auth types |
|
|
164
246
|
| `registerTools(server, client)` | Register tools on an existing McpServer |
|
|
165
247
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,25 +1,60 @@
|
|
|
1
|
-
import type { SearchModelsParams, RunModelResult, TaskDetailResponse, ToolListResponse, ToolDetailResponse, ExploreResponse, FileUploadResponse } from './types.js';
|
|
2
|
-
export type { SearchModelsParams, RunModelResult, TaskDetailResponse, ToolListResponse, ToolDetailResponse, ExploreResponse, FileUploadResponse, } from './types.js';
|
|
1
|
+
import type { ListTasksParams, SearchModelsParams, RunModelResult, TaskDetailResponse, TaskListResponse, ToolListResponse, ToolDetailResponse, ExploreResponse, FileUploadResponse, Task } from './types.js';
|
|
2
|
+
export type { ListTasksParams, SearchModelsParams, RunModelResult, TaskDetailResponse, TaskListResponse, ToolListResponse, ToolDetailResponse, ExploreResponse, FileUploadResponse, } from './types.js';
|
|
3
3
|
export type { Task, TaskOutput, TaskOutputRawContent, ToolListItem, ToolParameterGroup, ToolParameterItem } from './types.js';
|
|
4
|
+
export interface TaskReference {
|
|
5
|
+
tasktoken?: string;
|
|
6
|
+
taskid?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WaitForTaskOptions {
|
|
9
|
+
signal?: AbortSignal;
|
|
10
|
+
onPoll?: (task: Task, context: {
|
|
11
|
+
attempt: number;
|
|
12
|
+
elapsedMs: number;
|
|
13
|
+
}) => void | Promise<void>;
|
|
14
|
+
pollIntervalMs?: number;
|
|
15
|
+
maxConsecutiveErrors?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface TrustedProxyContext {
|
|
18
|
+
clientIp: string;
|
|
19
|
+
sharedSecret: string;
|
|
20
|
+
}
|
|
21
|
+
export interface WiroClientOptions {
|
|
22
|
+
trustedProxy?: TrustedProxyContext;
|
|
23
|
+
}
|
|
24
|
+
export declare class WiroApiError extends Error {
|
|
25
|
+
readonly status: number;
|
|
26
|
+
readonly responseBody: string;
|
|
27
|
+
constructor(status: number, responseBody: string);
|
|
28
|
+
}
|
|
29
|
+
export declare class TaskWaitTimeoutError extends Error {
|
|
30
|
+
readonly timeoutMs: number;
|
|
31
|
+
readonly lastDetail?: TaskDetailResponse;
|
|
32
|
+
readonly lastError?: unknown;
|
|
33
|
+
constructor(timeoutMs: number, lastDetail?: TaskDetailResponse, lastError?: unknown);
|
|
34
|
+
}
|
|
35
|
+
export declare class TaskPollingError extends Error {
|
|
36
|
+
readonly lastDetail?: TaskDetailResponse;
|
|
37
|
+
readonly lastError?: unknown;
|
|
38
|
+
constructor(message: string, lastDetail?: TaskDetailResponse, lastError?: unknown);
|
|
39
|
+
}
|
|
4
40
|
export declare class WiroClient {
|
|
5
41
|
private readonly apiKey;
|
|
6
42
|
private readonly apiSecret?;
|
|
7
43
|
private readonly baseUrl;
|
|
44
|
+
private readonly trustedProxy?;
|
|
8
45
|
readonly authType: 'signature' | 'apikey-only';
|
|
9
|
-
constructor(apiKey: string, apiSecret?: string, baseUrl?: string);
|
|
46
|
+
constructor(apiKey: string, apiSecret?: string, baseUrl?: string, options?: WiroClientOptions);
|
|
10
47
|
private getAuthHeaders;
|
|
11
48
|
private request;
|
|
12
49
|
searchModels(params?: SearchModelsParams): Promise<ToolListResponse>;
|
|
13
50
|
explore(): Promise<ExploreResponse>;
|
|
14
51
|
getModelSchema(model: string): Promise<ToolDetailResponse>;
|
|
15
|
-
runModel(model: string, params: Record<string, unknown
|
|
16
|
-
getTask(opts:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
cancelTask(tasktoken: string): Promise<Record<string, unknown>>;
|
|
21
|
-
killTask(tasktoken: string): Promise<Record<string, unknown>>;
|
|
52
|
+
runModel(model: string, params: Record<string, unknown>, signal?: AbortSignal): Promise<RunModelResult>;
|
|
53
|
+
getTask(opts: TaskReference, signal?: AbortSignal): Promise<TaskDetailResponse>;
|
|
54
|
+
listTasks(params?: ListTasksParams, signal?: AbortSignal): Promise<TaskListResponse>;
|
|
55
|
+
cancelTask(task: string | TaskReference, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
56
|
+
killTask(task: string | TaskReference, signal?: AbortSignal): Promise<Record<string, unknown>>;
|
|
22
57
|
uploadFile(fileUrl: string, fileName?: string): Promise<FileUploadResponse>;
|
|
23
|
-
waitForTask(
|
|
58
|
+
waitForTask(task: string | TaskReference, timeoutMs?: number, options?: WaitForTaskOptions): Promise<TaskDetailResponse>;
|
|
24
59
|
}
|
|
25
60
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,22 +1,68 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
|
+
import net from 'node:net';
|
|
2
3
|
import { TERMINAL_STATUSES } from './types.js';
|
|
3
4
|
const DEFAULT_BASE_URL = 'https://api.wiro.ai/v1';
|
|
4
|
-
const DEFAULT_POLL_INTERVAL = 3000;
|
|
5
5
|
const DEFAULT_TIMEOUT = 120000;
|
|
6
|
+
const FAST_POLL_INTERVAL = 2000;
|
|
7
|
+
const NORMAL_POLL_INTERVAL = 5000;
|
|
8
|
+
const SLOW_POLL_INTERVAL = 10000;
|
|
9
|
+
const DEFAULT_MAX_CONSECUTIVE_ERRORS = 5;
|
|
10
|
+
export class WiroApiError extends Error {
|
|
11
|
+
status;
|
|
12
|
+
responseBody;
|
|
13
|
+
constructor(status, responseBody) {
|
|
14
|
+
super(`Wiro API error ${status}: ${responseBody}`);
|
|
15
|
+
this.name = 'WiroApiError';
|
|
16
|
+
this.status = status;
|
|
17
|
+
this.responseBody = responseBody;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class TaskWaitTimeoutError extends Error {
|
|
21
|
+
timeoutMs;
|
|
22
|
+
lastDetail;
|
|
23
|
+
lastError;
|
|
24
|
+
constructor(timeoutMs, lastDetail, lastError) {
|
|
25
|
+
super(`Task timed out after ${timeoutMs / 1000} seconds`);
|
|
26
|
+
this.name = 'TaskWaitTimeoutError';
|
|
27
|
+
this.timeoutMs = timeoutMs;
|
|
28
|
+
this.lastDetail = lastDetail;
|
|
29
|
+
this.lastError = lastError;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class TaskPollingError extends Error {
|
|
33
|
+
lastDetail;
|
|
34
|
+
lastError;
|
|
35
|
+
constructor(message, lastDetail, lastError) {
|
|
36
|
+
super(message);
|
|
37
|
+
this.name = 'TaskPollingError';
|
|
38
|
+
this.lastDetail = lastDetail;
|
|
39
|
+
this.lastError = lastError;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
6
42
|
export class WiroClient {
|
|
7
43
|
apiKey;
|
|
8
44
|
apiSecret;
|
|
9
45
|
baseUrl;
|
|
46
|
+
trustedProxy;
|
|
10
47
|
authType;
|
|
11
|
-
constructor(apiKey, apiSecret, baseUrl) {
|
|
48
|
+
constructor(apiKey, apiSecret, baseUrl, options = {}) {
|
|
12
49
|
if (!apiKey)
|
|
13
50
|
throw new Error('WIRO_API_KEY is required');
|
|
51
|
+
if (options.trustedProxy) {
|
|
52
|
+
if (net.isIP(options.trustedProxy.clientIp) === 0) {
|
|
53
|
+
throw new Error('trustedProxy.clientIp must be a valid IPv4 or IPv6 address');
|
|
54
|
+
}
|
|
55
|
+
if (options.trustedProxy.sharedSecret.length < 32) {
|
|
56
|
+
throw new Error('trustedProxy.sharedSecret must be at least 32 characters');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
14
59
|
this.apiKey = apiKey;
|
|
15
60
|
this.apiSecret = apiSecret;
|
|
16
61
|
this.baseUrl = baseUrl ?? DEFAULT_BASE_URL;
|
|
62
|
+
this.trustedProxy = options.trustedProxy;
|
|
17
63
|
this.authType = apiSecret ? 'signature' : 'apikey-only';
|
|
18
64
|
}
|
|
19
|
-
getAuthHeaders() {
|
|
65
|
+
getAuthHeaders(pathname) {
|
|
20
66
|
const headers = {
|
|
21
67
|
'x-api-key': this.apiKey,
|
|
22
68
|
'Content-Type': 'application/json',
|
|
@@ -30,19 +76,35 @@ export class WiroClient {
|
|
|
30
76
|
headers['x-signature'] = signature;
|
|
31
77
|
headers['x-nonce'] = nonce;
|
|
32
78
|
}
|
|
79
|
+
if (this.trustedProxy) {
|
|
80
|
+
const timestamp = Date.now().toString();
|
|
81
|
+
const payload = [
|
|
82
|
+
timestamp,
|
|
83
|
+
this.trustedProxy.clientIp,
|
|
84
|
+
this.apiKey,
|
|
85
|
+
pathname,
|
|
86
|
+
].join('\n');
|
|
87
|
+
headers['x-wiro-proxy-client-ip'] = this.trustedProxy.clientIp;
|
|
88
|
+
headers['x-wiro-proxy-timestamp'] = timestamp;
|
|
89
|
+
headers['x-wiro-proxy-signature'] = crypto
|
|
90
|
+
.createHmac('sha256', this.trustedProxy.sharedSecret)
|
|
91
|
+
.update(payload)
|
|
92
|
+
.digest('hex');
|
|
93
|
+
}
|
|
33
94
|
return headers;
|
|
34
95
|
}
|
|
35
|
-
async request(path, body) {
|
|
96
|
+
async request(path, body, signal) {
|
|
36
97
|
const url = `${this.baseUrl}${path}`;
|
|
37
|
-
const headers = this.getAuthHeaders();
|
|
98
|
+
const headers = this.getAuthHeaders(new URL(url).pathname);
|
|
38
99
|
const response = await fetch(url, {
|
|
39
100
|
method: 'POST',
|
|
40
101
|
headers,
|
|
41
102
|
body: JSON.stringify(body),
|
|
103
|
+
signal,
|
|
42
104
|
});
|
|
43
105
|
const text = await response.text();
|
|
44
106
|
if (!response.ok) {
|
|
45
|
-
throw new
|
|
107
|
+
throw new WiroApiError(response.status, text);
|
|
46
108
|
}
|
|
47
109
|
try {
|
|
48
110
|
return JSON.parse(text);
|
|
@@ -81,15 +143,15 @@ export class WiroClient {
|
|
|
81
143
|
slugproject: cleanslugproject,
|
|
82
144
|
});
|
|
83
145
|
}
|
|
84
|
-
async runModel(model, params) {
|
|
146
|
+
async runModel(model, params, signal) {
|
|
85
147
|
const [cleanslugowner, ...rest] = model.split('/');
|
|
86
148
|
const cleanslugproject = rest.join('/');
|
|
87
149
|
if (!cleanslugowner || !cleanslugproject) {
|
|
88
150
|
throw new Error('Model must be in "owner/model" format, e.g. "openai/sora-2"');
|
|
89
151
|
}
|
|
90
|
-
return this.request(`/Run/${cleanslugowner}/${cleanslugproject}`, params);
|
|
152
|
+
return this.request(`/Run/${cleanslugowner}/${cleanslugproject}`, params, signal);
|
|
91
153
|
}
|
|
92
|
-
async getTask(opts) {
|
|
154
|
+
async getTask(opts, signal) {
|
|
93
155
|
if (!opts.tasktoken && !opts.taskid) {
|
|
94
156
|
throw new Error('Either tasktoken or taskid is required');
|
|
95
157
|
}
|
|
@@ -98,13 +160,45 @@ export class WiroClient {
|
|
|
98
160
|
body.tasktoken = opts.tasktoken;
|
|
99
161
|
if (opts.taskid)
|
|
100
162
|
body.taskid = opts.taskid;
|
|
101
|
-
return this.request('/Task/Detail', body);
|
|
163
|
+
return this.request('/Task/Detail', body, signal);
|
|
102
164
|
}
|
|
103
|
-
async
|
|
104
|
-
|
|
165
|
+
async listTasks(params = {}, signal) {
|
|
166
|
+
const body = {
|
|
167
|
+
type: 'model',
|
|
168
|
+
sort: 'id',
|
|
169
|
+
order: 'DESC',
|
|
170
|
+
start: String(params.start ?? 0),
|
|
171
|
+
limit: String(params.limit ?? 20),
|
|
172
|
+
};
|
|
173
|
+
if (params.model)
|
|
174
|
+
body.modelName = params.model;
|
|
175
|
+
return this.request('/Task/List', body, signal);
|
|
105
176
|
}
|
|
106
|
-
async
|
|
107
|
-
|
|
177
|
+
async cancelTask(task, signal) {
|
|
178
|
+
const reference = normalizeTaskReference(task);
|
|
179
|
+
let taskid = reference.taskid;
|
|
180
|
+
if (!taskid && reference.tasktoken) {
|
|
181
|
+
const detail = await this.getTask({ tasktoken: reference.tasktoken }, signal);
|
|
182
|
+
taskid = detail.tasklist?.[0]?.id;
|
|
183
|
+
}
|
|
184
|
+
if (!taskid) {
|
|
185
|
+
throw new Error('Unable to resolve task ID for cancellation');
|
|
186
|
+
}
|
|
187
|
+
return this.request('/Task/Cancel', { taskid }, signal);
|
|
188
|
+
}
|
|
189
|
+
async killTask(task, signal) {
|
|
190
|
+
const reference = normalizeTaskReference(task);
|
|
191
|
+
const body = {};
|
|
192
|
+
if (reference.taskid) {
|
|
193
|
+
body.taskid = reference.taskid;
|
|
194
|
+
}
|
|
195
|
+
else if (reference.tasktoken) {
|
|
196
|
+
body.socketaccesstoken = reference.tasktoken;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
throw new Error('Either tasktoken or taskid is required');
|
|
200
|
+
}
|
|
201
|
+
return this.request('/Task/Kill', body, signal);
|
|
108
202
|
}
|
|
109
203
|
async uploadFile(fileUrl, fileName) {
|
|
110
204
|
const fileResponse = await fetch(fileUrl);
|
|
@@ -118,7 +212,7 @@ export class WiroClient {
|
|
|
118
212
|
const formData = new FormData();
|
|
119
213
|
formData.append('file', blob, resolvedName);
|
|
120
214
|
const url = `${this.baseUrl}/File/Upload`;
|
|
121
|
-
const headers = this.getAuthHeaders();
|
|
215
|
+
const headers = this.getAuthHeaders(new URL(url).pathname);
|
|
122
216
|
delete headers['Content-Type'];
|
|
123
217
|
const response = await fetch(url, {
|
|
124
218
|
method: 'POST',
|
|
@@ -136,19 +230,142 @@ export class WiroClient {
|
|
|
136
230
|
throw new Error(`Invalid JSON response: ${text}`);
|
|
137
231
|
}
|
|
138
232
|
}
|
|
139
|
-
async waitForTask(
|
|
233
|
+
async waitForTask(task, timeoutMs = DEFAULT_TIMEOUT, options = {}) {
|
|
234
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
235
|
+
throw new Error('timeoutMs must be a positive number');
|
|
236
|
+
}
|
|
237
|
+
const reference = normalizeTaskReference(task);
|
|
238
|
+
if (!reference.tasktoken && !reference.taskid) {
|
|
239
|
+
throw new Error('Either tasktoken or taskid is required');
|
|
240
|
+
}
|
|
241
|
+
const startedAt = Date.now();
|
|
140
242
|
const deadline = Date.now() + timeoutMs;
|
|
243
|
+
const maxConsecutiveErrors = options.maxConsecutiveErrors
|
|
244
|
+
?? DEFAULT_MAX_CONSECUTIVE_ERRORS;
|
|
245
|
+
let consecutiveErrors = 0;
|
|
246
|
+
let attempt = 0;
|
|
247
|
+
let lastDetail;
|
|
248
|
+
let lastError;
|
|
141
249
|
while (Date.now() < deadline) {
|
|
142
|
-
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
250
|
+
throwIfAborted(options.signal);
|
|
251
|
+
const remainingMs = Math.max(1, deadline - Date.now());
|
|
252
|
+
const pollSignal = createDeadlineSignal(options.signal, remainingMs);
|
|
253
|
+
try {
|
|
254
|
+
const detail = await this.getTask(reference, pollSignal.signal);
|
|
255
|
+
lastDetail = detail;
|
|
256
|
+
if (!detail.result) {
|
|
257
|
+
const message = detail.errors?.map(error => error.message).join(', ')
|
|
258
|
+
|| 'Task status request failed';
|
|
259
|
+
throw new Error(message);
|
|
260
|
+
}
|
|
261
|
+
const currentTask = detail.tasklist?.[0];
|
|
262
|
+
if (!currentTask) {
|
|
263
|
+
throw new Error('Task not found');
|
|
264
|
+
}
|
|
265
|
+
consecutiveErrors = 0;
|
|
266
|
+
attempt += 1;
|
|
267
|
+
await options.onPoll?.(currentTask, {
|
|
268
|
+
attempt,
|
|
269
|
+
elapsedMs: Date.now() - startedAt,
|
|
270
|
+
});
|
|
271
|
+
if (TERMINAL_STATUSES.includes(currentTask.status)) {
|
|
146
272
|
return detail;
|
|
147
273
|
}
|
|
148
274
|
}
|
|
149
|
-
|
|
275
|
+
catch (error) {
|
|
276
|
+
if (options.signal?.aborted) {
|
|
277
|
+
throw createAbortError();
|
|
278
|
+
}
|
|
279
|
+
if (pollSignal.didTimeout()) {
|
|
280
|
+
lastError = error;
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
lastError = error;
|
|
284
|
+
consecutiveErrors += 1;
|
|
285
|
+
if (error instanceof WiroApiError
|
|
286
|
+
&& error.status >= 400
|
|
287
|
+
&& error.status < 500
|
|
288
|
+
&& error.status !== 408
|
|
289
|
+
&& error.status !== 429) {
|
|
290
|
+
throw new TaskPollingError(`Task status request failed with HTTP ${error.status}`, lastDetail, error);
|
|
291
|
+
}
|
|
292
|
+
if (consecutiveErrors >= maxConsecutiveErrors) {
|
|
293
|
+
throw new TaskPollingError(`Task status check failed ${consecutiveErrors} times in a row`, lastDetail, error);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
finally {
|
|
297
|
+
pollSignal.cleanup();
|
|
298
|
+
}
|
|
299
|
+
const remainingAfterPoll = deadline - Date.now();
|
|
300
|
+
if (remainingAfterPoll <= 0)
|
|
301
|
+
break;
|
|
302
|
+
const interval = options.pollIntervalMs
|
|
303
|
+
?? getPollInterval(Date.now() - startedAt);
|
|
304
|
+
await sleep(Math.min(interval, remainingAfterPoll), options.signal);
|
|
150
305
|
}
|
|
151
|
-
throw new
|
|
306
|
+
throw new TaskWaitTimeoutError(timeoutMs, lastDetail, lastError);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
function normalizeTaskReference(task) {
|
|
310
|
+
return typeof task === 'string' ? { tasktoken: task } : task;
|
|
311
|
+
}
|
|
312
|
+
function getPollInterval(elapsedMs) {
|
|
313
|
+
if (elapsedMs < 15000)
|
|
314
|
+
return FAST_POLL_INTERVAL;
|
|
315
|
+
if (elapsedMs < 60000)
|
|
316
|
+
return NORMAL_POLL_INTERVAL;
|
|
317
|
+
return SLOW_POLL_INTERVAL;
|
|
318
|
+
}
|
|
319
|
+
function createAbortError() {
|
|
320
|
+
const error = new Error('Task wait aborted by client');
|
|
321
|
+
error.name = 'AbortError';
|
|
322
|
+
return error;
|
|
323
|
+
}
|
|
324
|
+
function throwIfAborted(signal) {
|
|
325
|
+
if (signal?.aborted)
|
|
326
|
+
throw createAbortError();
|
|
327
|
+
}
|
|
328
|
+
function sleep(ms, signal) {
|
|
329
|
+
if (ms <= 0)
|
|
330
|
+
return Promise.resolve();
|
|
331
|
+
return new Promise((resolve, reject) => {
|
|
332
|
+
let timer;
|
|
333
|
+
const onAbort = () => {
|
|
334
|
+
clearTimeout(timer);
|
|
335
|
+
reject(createAbortError());
|
|
336
|
+
};
|
|
337
|
+
timer = setTimeout(() => {
|
|
338
|
+
signal?.removeEventListener('abort', onAbort);
|
|
339
|
+
resolve();
|
|
340
|
+
}, ms);
|
|
341
|
+
if (signal?.aborted) {
|
|
342
|
+
onAbort();
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
function createDeadlineSignal(parentSignal, timeoutMs) {
|
|
349
|
+
const controller = new AbortController();
|
|
350
|
+
let timedOut = false;
|
|
351
|
+
const onParentAbort = () => controller.abort();
|
|
352
|
+
if (parentSignal?.aborted) {
|
|
353
|
+
controller.abort();
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
parentSignal?.addEventListener('abort', onParentAbort, { once: true });
|
|
152
357
|
}
|
|
358
|
+
const timer = setTimeout(() => {
|
|
359
|
+
timedOut = true;
|
|
360
|
+
controller.abort();
|
|
361
|
+
}, timeoutMs);
|
|
362
|
+
return {
|
|
363
|
+
signal: controller.signal,
|
|
364
|
+
didTimeout: () => timedOut,
|
|
365
|
+
cleanup: () => {
|
|
366
|
+
clearTimeout(timer);
|
|
367
|
+
parentSignal?.removeEventListener('abort', onParentAbort);
|
|
368
|
+
},
|
|
369
|
+
};
|
|
153
370
|
}
|
|
154
371
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-task.d.ts","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cancel-task.d.ts","sourceRoot":"","sources":["../../src/tools/cancel-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA4D9E"}
|