@wiro-ai/wiro-mcp 1.5.2 → 1.5.4
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 +68 -4
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/playbooks.js +1 -1
- package/dist/tools/run-model.d.ts +17 -1
- package/dist/tools/run-model.d.ts.map +1 -1
- package/dist/tools/run-model.js +260 -144
- package/dist/tools/run-model.js.map +1 -1
- package/dist/tools/schemas.d.ts +1 -0
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +2 -0
- package/dist/tools/schemas.js.map +1 -1
- package/dist/utils/run-ledger.d.ts +66 -0
- package/dist/utils/run-ledger.d.ts.map +1 -0
- package/dist/utils/run-ledger.js +129 -0
- package/dist/utils/run-ledger.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Official MCP server for Wiro AI: run image, video, audio and LLM models, build a
|
|
|
14
14
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
|
-
`@wiro-ai/wiro-mcp` is a TypeScript [Model Context Protocol](https://modelcontextprotocol.io/) server that runs locally over stdio with `npx
|
|
17
|
+
`@wiro-ai/wiro-mcp` is a TypeScript [Model Context Protocol](https://modelcontextprotocol.io/) server that runs locally over stdio, with `npx` or [Docker](#docker). Its tools are grouped in three sets:
|
|
18
18
|
|
|
19
19
|
- **Models**: search the Wiro AI model catalog, read a model's parameters and price, run it and wait for the result, upload input files and browse past tasks.
|
|
20
20
|
- **Workflows**: build multi-step workflows that chain models, run them, resume failed runs, browse the public gallery, and design workflows together with the Workflow Agent.
|
|
@@ -25,7 +25,8 @@ Playbooks explain each job step by step, so the assistant knows the order of cal
|
|
|
25
25
|
## Quick Start
|
|
26
26
|
|
|
27
27
|
Local `npx` and library usage require Node.js 20 or later. The hosted MCP
|
|
28
|
-
endpoint
|
|
28
|
+
endpoint and the [Docker image](#docker) do not require a local Node.js
|
|
29
|
+
installation.
|
|
29
30
|
|
|
30
31
|
### 1. Get API Keys
|
|
31
32
|
|
|
@@ -159,6 +160,54 @@ Ask your AI assistant:
|
|
|
159
160
|
- *"Deploy the Instagram manager agent on the Starter plan and tell me what it still needs"*
|
|
160
161
|
- *"Tell my support agent to summarise today's tickets"*
|
|
161
162
|
|
|
163
|
+
## Docker
|
|
164
|
+
|
|
165
|
+
Every release is also published on Docker Hub as
|
|
166
|
+
[`wiroai/wiro-mcp`](https://hub.docker.com/r/wiroai/wiro-mcp), for
|
|
167
|
+
`linux/amd64` and `linux/arm64`. The image runs the same stdio server, so you
|
|
168
|
+
need Docker but not Node.js:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
docker run -i --rm -e WIRO_API_KEY wiroai/wiro-mcp
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`-e WIRO_API_KEY` hands the variable from your environment to the container.
|
|
175
|
+
For a project with signature-based auth, add `-e WIRO_API_SECRET` as well.
|
|
176
|
+
`WIRO_TOOLSETS` passes through the same way. Keep `-i`, since the server reads
|
|
177
|
+
its requests from stdin, and leave out `-t`.
|
|
178
|
+
|
|
179
|
+
In a client config, `docker` is the command and the credentials go in `env`.
|
|
180
|
+
This works in Cursor, Claude Desktop and Windsurf:
|
|
181
|
+
|
|
182
|
+
```json
|
|
183
|
+
{
|
|
184
|
+
"mcpServers": {
|
|
185
|
+
"wiro": {
|
|
186
|
+
"command": "docker",
|
|
187
|
+
"args": ["run", "-i", "--rm", "-e", "WIRO_API_KEY", "-e", "WIRO_API_SECRET", "wiroai/wiro-mcp"],
|
|
188
|
+
"env": {
|
|
189
|
+
"WIRO_API_KEY": "your-api-key",
|
|
190
|
+
"WIRO_API_SECRET": "your-api-secret"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Claude Code:**
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
claude mcp add wiro -e WIRO_API_KEY=your-api-key -e WIRO_API_SECRET=your-api-secret -- docker run -i --rm -e WIRO_API_KEY -e WIRO_API_SECRET wiroai/wiro-mcp
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
For an API Key Only project, leave out the `WIRO_API_SECRET` value. Docker only
|
|
204
|
+
passes variables that are set, so the `-e WIRO_API_SECRET` argument can stay.
|
|
205
|
+
|
|
206
|
+
Image tags follow the npm versions: `wiroai/wiro-mcp:<version>` pins a release
|
|
207
|
+
and `latest` is the newest one. A client does not fetch a newer `latest` by
|
|
208
|
+
itself, so run `docker pull wiroai/wiro-mcp` to update. Pulling once before the
|
|
209
|
+
first start also means the client does not wait for the download.
|
|
210
|
+
|
|
162
211
|
## Authentication
|
|
163
212
|
|
|
164
213
|
Wiro AI supports two authentication types, chosen when you create a project:
|
|
@@ -194,7 +243,7 @@ The hosted server takes the same credentials as a bearer token:
|
|
|
194
243
|
| `get_model_schema` | Get full parameter schema and pricing for any model, or the parameters and output ports of a workflow utility |
|
|
195
244
|
| `recommend_model` | Find models for a goal from two or three key words, best matches first |
|
|
196
245
|
| `explore` | Browse curated models grouped by category, no parameters needed |
|
|
197
|
-
| `run_model` | Run any model, waiting
|
|
246
|
+
| `run_model` | Run any model, waiting at most 45s from the start of the call before it returns a recoverable task token |
|
|
198
247
|
| `wait_for_task` | Continue waiting for an existing task without submitting or billing a duplicate run |
|
|
199
248
|
| `get_task` | Check task status immediately or wait up to 45s with `wait_seconds` |
|
|
200
249
|
| `list_tasks` | Browse authenticated task history across conversations, then continue with `get_task` |
|
|
@@ -519,7 +568,11 @@ registerTools(myServer, client, { toolsets: ['models'] });
|
|
|
519
568
|
|
|
520
569
|
| Repository | What it is |
|
|
521
570
|
| --- | --- |
|
|
522
|
-
| [Wiro-Plugin](https://github.com/wiroai/Wiro-Plugin) | Wiro AI plugin for Cursor, Claude Code, Gemini CLI and
|
|
571
|
+
| [Wiro-Plugin](https://github.com/wiroai/Wiro-Plugin) | Wiro AI plugin for Cursor, Claude Code, Gemini CLI, Devin, Antigravity and Kiro |
|
|
572
|
+
| [Wiro-LLM](https://github.com/wiroai/Wiro-LLM) | Vercel AI SDK provider for chat, images, speech, transcription and video, [`@wiro-ai/wiro-llm` on npm](https://www.npmjs.com/package/@wiro-ai/wiro-llm) |
|
|
573
|
+
| [Wiro-Chromium-Extension](https://github.com/wiroai/Wiro-Chromium-Extension) | Wiro AI extension for Chrome, Edge, Opera and Brave |
|
|
574
|
+
| [Wiro-Firefox-Extension](https://github.com/wiroai/Wiro-Firefox-Extension) | Wiro AI add-on for Firefox |
|
|
575
|
+
| [Wiro-Safari-Extension](https://github.com/wiroai/Wiro-Safari-Extension) | Wiro AI extension for Safari on the Mac |
|
|
523
576
|
| [Swift-QuickStart](https://github.com/wiroai/Swift-QuickStart) | WiroKit, the Wiro AI SDK for iOS |
|
|
524
577
|
| [Kotlin-QuickStart](https://github.com/wiroai/Kotlin-QuickStart) | WiroKit, the Wiro AI SDK for Android |
|
|
525
578
|
| [Dart-QuickStart](https://github.com/wiroai/Dart-QuickStart) | Wiro AI SDK for Dart and Flutter, [`wiro` on pub.dev](https://pub.dev/packages/wiro) |
|
|
@@ -529,6 +582,17 @@ registerTools(myServer, client, { toolsets: ['models'] });
|
|
|
529
582
|
| [Dart-Realtime](https://github.com/wiroai/Dart-Realtime) | Realtime voice AI example for Flutter |
|
|
530
583
|
| [ReactNative-Realtime](https://github.com/wiroai/ReactNative-Realtime) | Realtime voice AI example for React Native |
|
|
531
584
|
| [n8n-nodes-wiroai](https://github.com/wiroai/n8n-nodes-wiroai) | Wiro AI nodes for n8n, [`@wiro-ai/n8n-nodes-wiroai` on npm](https://www.npmjs.com/package/@wiro-ai/n8n-nodes-wiroai) |
|
|
585
|
+
| [Wiro-Dify-Plugin](https://github.com/wiroai/Wiro-Dify-Plugin) | Wiro AI plugins for Dify: the LLM gateway as a model provider, plus image, video, speech and music tools |
|
|
586
|
+
| [Wiro-ComfyUI](https://github.com/wiroai/Wiro-ComfyUI) | Wiro AI nodes for ComfyUI |
|
|
587
|
+
| [Wiro-Hermes](https://github.com/wiroai/Wiro-Hermes) | Wiro AI plugins for Hermes Agent: image, video, audio and 3D tools, plus the LLM gateway as a model provider |
|
|
588
|
+
| [Wiro-Zed](https://github.com/wiroai/Wiro-Zed) | Wiro AI MCP server extension for Zed |
|
|
589
|
+
| [Wiro-Action](https://github.com/wiroai/Wiro-Action) | GitHub Action for Wiro AI models and the LLM gateway, [on the GitHub Marketplace](https://github.com/marketplace/actions/wiro-ai-action) |
|
|
590
|
+
| [Wiro-Raycast](https://github.com/wiroai/Wiro-Raycast) | Wiro AI extension for Raycast: image and video generation, LLM chat and model search |
|
|
591
|
+
| [Wiro-WordPress](https://github.com/wiroai/Wiro-WordPress) | Wiro AI plugin for WordPress: featured images, image edits, alt text, narration and SEO suggestions |
|
|
592
|
+
| [Wiro-Obsidian](https://github.com/wiroai/Wiro-Obsidian) | Wiro AI plugin for Obsidian: images, video, speech, music, transcription and text tools |
|
|
593
|
+
| [Wiro-Blender](https://github.com/wiroai/Wiro-Blender) | Wiro AI add-on for Blender: text to 3D, image to 3D and textures |
|
|
594
|
+
| [Wiro-Figma](https://github.com/wiroai/Wiro-Figma) | Wiro AI plugin for Figma: images, vectors, image edits and text |
|
|
595
|
+
| [Wiro-Next-Starter](https://github.com/wiroai/Wiro-Next-Starter) | Next.js starter for Wiro AI: Playground, image, video and audio tools, and LLM chat, ready for Vercel and Railway |
|
|
532
596
|
| [Wiro-Docs](https://github.com/wiroai/Wiro-Docs) | Source of the Wiro AI API docs |
|
|
533
597
|
|
|
534
598
|
[Website](https://wiro.ai) · [Models](https://wiro.ai/models) · [Docs](https://wiro.ai/docs) · [X](https://x.com/wiroai)
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,11 @@ const client = new WiroClient(apiKey, apiSecret, baseUrl, {
|
|
|
24
24
|
});
|
|
25
25
|
const server = createMcpServer(client, { toolsets });
|
|
26
26
|
const transport = new StdioServerTransport();
|
|
27
|
+
// In a container the server is PID 1, which ignores SIGINT and SIGTERM unless
|
|
28
|
+
// it handles them, so `docker stop` would wait out its timeout.
|
|
29
|
+
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
30
|
+
process.on(signal, () => process.exit(0));
|
|
31
|
+
}
|
|
27
32
|
await server.connect(transport);
|
|
28
33
|
console.error(`Wiro MCP server running on stdio (auth: ${client.authType}, tools: ${(toolsets ?? ['all']).join(', ')})`);
|
|
29
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CACX,2DAA2D;QAC3D,uCAAuC;QACvC,cAAc;QACd,uCAAuC;QACvC,4CAA4C;QAC5C,SAAS;QACT,4DAA4D;QAC5D,8FAA8F,CAC/F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IACxD,iBAAiB,EAAE,0CAA0C;UACzD,6EAA6E;CAClF,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,QAAQ,YAAY,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CACX,2DAA2D;QAC3D,uCAAuC;QACvC,cAAc;QACd,uCAAuC;QACvC,4CAA4C;QAC5C,SAAS;QACT,4DAA4D;QAC5D,8FAA8F,CAC/F,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IACxD,iBAAiB,EAAE,0CAA0C;UACzD,6EAA6E;CAClF,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE7C,8EAA8E;AAC9E,gEAAgE;AAChE,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,QAAQ,YAAY,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/playbooks.js
CHANGED
|
@@ -118,7 +118,7 @@ Wiro hosts image, video, audio, speech, 3D and LLM models from many providers. E
|
|
|
118
118
|
|
|
119
119
|
## Run and wait
|
|
120
120
|
|
|
121
|
-
1. Call \`run_model\` with \`model\` and \`params\`. It waits
|
|
121
|
+
1. Call \`run_model\` with \`model\` and \`params\`. It waits at most 45 seconds, counted from the start of the call; \`timeout_seconds\` can make that shorter.
|
|
122
122
|
2. If the task is still running, follow the \`nextAction\` for \`wait_for_task\`, and repeat. Video and long audio often take several minutes.
|
|
123
123
|
3. Never call \`run_model\` again for the same request: that starts a second task, billed again.
|
|
124
124
|
4. A task is \`submitted\` or \`running\` until it ends as \`completed\`, \`failed\` or \`cancelled\`.
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { type WiroClient } from '../client.js';
|
|
3
|
-
|
|
3
|
+
import { type RunReuseTiming } from '../utils/run-ledger.js';
|
|
4
|
+
/** How long run_model waits, and when an identical call continues an earlier run. */
|
|
5
|
+
export interface RunModelTiming extends RunReuseTiming {
|
|
6
|
+
/** The longest one call waits, counted from its start, the run request included. */
|
|
7
|
+
maxWaitMs: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A call answers within 45 seconds of its start, so it ends before a 60-second
|
|
11
|
+
* client tool timeout. An identical call (same API key, model and parameters)
|
|
12
|
+
* continues the earlier call's task instead of starting a new one when it
|
|
13
|
+
* comes within 10 minutes of that call ending without its answer reaching the
|
|
14
|
+
* client (cancelled, connection lost, or no task confirmed yet), or while that
|
|
15
|
+
* call is still waiting and at least 10 seconds after it started: a retry after
|
|
16
|
+
* the client gave up without telling the server.
|
|
17
|
+
*/
|
|
18
|
+
export declare const RUN_MODEL_TIMING: Readonly<RunModelTiming>;
|
|
19
|
+
export declare function registerRunModel(server: McpServer, client: WiroClient, timing?: RunModelTiming): void;
|
|
4
20
|
//# sourceMappingURL=run-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-model.d.ts","sourceRoot":"","sources":["../../src/tools/run-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-model.d.ts","sourceRoot":"","sources":["../../src/tools/run-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAStB,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAWhC,qFAAqF;AACrF,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAIpD,CAAC;AA4MH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,cAAiC,GACxC,IAAI,CAyHN"}
|
package/dist/tools/run-model.js
CHANGED
|
@@ -1,10 +1,197 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
import { TaskPollingError, TaskWaitTimeoutError, } from '../client.js';
|
|
3
4
|
import { errorText, isOutcomeUnknown } from '../utils/api.js';
|
|
4
5
|
import { formatTaskPending, formatTaskResult, formatTaskSubmitted, } from '../utils/format.js';
|
|
5
|
-
import {
|
|
6
|
+
import { runKey, runLedger, submittedTask, } from '../utils/run-ledger.js';
|
|
7
|
+
import { createTaskContent, getTaskState, toPendingTaskResult, toStructuredTaskResult, } from '../utils/structured.js';
|
|
6
8
|
import { strictInput, taskResultOutputSchema } from './schemas.js';
|
|
7
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A call answers within 45 seconds of its start, so it ends before a 60-second
|
|
11
|
+
* client tool timeout. An identical call (same API key, model and parameters)
|
|
12
|
+
* continues the earlier call's task instead of starting a new one when it
|
|
13
|
+
* comes within 10 minutes of that call ending without its answer reaching the
|
|
14
|
+
* client (cancelled, connection lost, or no task confirmed yet), or while that
|
|
15
|
+
* call is still waiting and at least 10 seconds after it started: a retry after
|
|
16
|
+
* the client gave up without telling the server.
|
|
17
|
+
*/
|
|
18
|
+
export const RUN_MODEL_TIMING = Object.freeze({
|
|
19
|
+
maxWaitMs: 45_000,
|
|
20
|
+
retryAfterMs: 10_000,
|
|
21
|
+
unansweredWindowMs: 10 * 60_000,
|
|
22
|
+
});
|
|
23
|
+
const TIMED_OUT = Symbol('timed out');
|
|
24
|
+
function abortError() {
|
|
25
|
+
const error = new Error('Task wait aborted by client');
|
|
26
|
+
error.name = 'AbortError';
|
|
27
|
+
return error;
|
|
28
|
+
}
|
|
29
|
+
/** The run request's answer, or TIMED_OUT once the deadline passes first. */
|
|
30
|
+
function settleBy(submission, deadline, signal) {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
if (signal.aborted) {
|
|
33
|
+
reject(abortError());
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const finish = () => {
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
signal.removeEventListener('abort', onAbort);
|
|
39
|
+
};
|
|
40
|
+
const onAbort = () => {
|
|
41
|
+
finish();
|
|
42
|
+
reject(abortError());
|
|
43
|
+
};
|
|
44
|
+
const timer = setTimeout(() => {
|
|
45
|
+
finish();
|
|
46
|
+
resolve(TIMED_OUT);
|
|
47
|
+
}, Math.max(0, deadline - Date.now()));
|
|
48
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
49
|
+
void submission.then(settled => {
|
|
50
|
+
finish();
|
|
51
|
+
resolve(settled);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function errorResult(text) {
|
|
56
|
+
return { content: [{ type: 'text', text: `## Error\n\n${text}` }], isError: true };
|
|
57
|
+
}
|
|
58
|
+
/** What a call answers when Wiro created no task it can follow. */
|
|
59
|
+
function runFailure(settled, model, project) {
|
|
60
|
+
if (!settled.ok) {
|
|
61
|
+
const { error } = settled;
|
|
62
|
+
// The request was sent, and no clear answer says whether Wiro created a task.
|
|
63
|
+
if (isOutcomeUnknown(error)) {
|
|
64
|
+
return errorResult(`The run request was sent but no clear answer came back (${errorText(error)}). `
|
|
65
|
+
+ 'The task may have started and may be charged. Before running it again, call list_tasks with model '
|
|
66
|
+
+ `"${project}" and look for a task of ${model} that is queued or running, or that started in the last few minutes.`);
|
|
67
|
+
}
|
|
68
|
+
return errorResult(error instanceof Error ? error.message : String(error));
|
|
69
|
+
}
|
|
70
|
+
const runResult = settled.result;
|
|
71
|
+
if (!runResult.result) {
|
|
72
|
+
const errors = runResult.errors?.map(e => e.message).join(', ') || 'Unknown error';
|
|
73
|
+
return errorResult(`Failed to run model: ${errors}`);
|
|
74
|
+
}
|
|
75
|
+
// Wiro created the task, so it runs and can be charged; only this call
|
|
76
|
+
// cannot follow it.
|
|
77
|
+
const taskid = runResult.taskid ? String(runResult.taskid) : '';
|
|
78
|
+
return errorResult(taskid
|
|
79
|
+
? `The task was created (task ID ${taskid}), but its task token did not come back, so this call cannot wait for it. `
|
|
80
|
+
+ `Do not run the model again: read the task with get_task and taskid "${taskid}", or find it with list_tasks.`
|
|
81
|
+
: 'The task was created, but its task ID and token did not come back, so this call cannot wait for it. '
|
|
82
|
+
+ `Do not run the model again: find the task with list_tasks with model "${project}", then read it with get_task.`);
|
|
83
|
+
}
|
|
84
|
+
/** What a call answers when Wiro has not confirmed the run before the deadline. */
|
|
85
|
+
function notConfirmed(model, project, sentSecondsAgo) {
|
|
86
|
+
return errorResult(`Wiro had not confirmed the run request ${sentSecondsAgo} seconds after it was sent, so this call stopped `
|
|
87
|
+
+ 'waiting to answer within the client\'s time limit. The task may still start and may be charged. '
|
|
88
|
+
+ `Do not run the model again now: in a minute, call list_tasks with model "${project}" and look for a task of `
|
|
89
|
+
+ `${model} that started in the last few minutes, then follow it with wait_for_task.`);
|
|
90
|
+
}
|
|
91
|
+
function ageText(ms) {
|
|
92
|
+
const seconds = Math.max(1, Math.round(ms / 1000));
|
|
93
|
+
if (seconds < 90)
|
|
94
|
+
return `${seconds} second${seconds === 1 ? '' : 's'}`;
|
|
95
|
+
const minutes = Math.round(seconds / 60);
|
|
96
|
+
return `${minutes} minute${minutes === 1 ? '' : 's'}`;
|
|
97
|
+
}
|
|
98
|
+
/** Marks a result as the task of an earlier identical call. */
|
|
99
|
+
function withReuseNote(result, ageMs) {
|
|
100
|
+
const note = `This call continued the task of an identical run_model call made ${ageText(ageMs)} ago, whose answer `
|
|
101
|
+
+ 'did not reach you, instead of starting and billing a new task. If the user wants a separate second run, '
|
|
102
|
+
+ 'change a parameter such as the seed.';
|
|
103
|
+
const [first, ...rest] = result.content;
|
|
104
|
+
const content = first?.type === 'text'
|
|
105
|
+
? [{ ...first, text: `${note}\n\n${first.text}` }, ...rest]
|
|
106
|
+
: [{ type: 'text', text: note }, ...result.content];
|
|
107
|
+
return {
|
|
108
|
+
...result,
|
|
109
|
+
content,
|
|
110
|
+
...(result.structuredContent ? { structuredContent: { ...result.structuredContent, reused: true } } : {}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/** Polls the task until it ends or the deadline passes. */
|
|
114
|
+
async function followTask(client, tasktoken, deadline, startedAt, extra) {
|
|
115
|
+
const remainingMs = deadline - Date.now();
|
|
116
|
+
if (remainingMs <= 0)
|
|
117
|
+
return { kind: 'waiting', timedOut: true };
|
|
118
|
+
try {
|
|
119
|
+
const detail = await client.waitForTask(tasktoken, remainingMs, {
|
|
120
|
+
signal: extra.signal,
|
|
121
|
+
onPoll: async (task) => {
|
|
122
|
+
const progressToken = extra._meta?.progressToken;
|
|
123
|
+
if (progressToken === undefined)
|
|
124
|
+
return;
|
|
125
|
+
try {
|
|
126
|
+
await extra.sendNotification({
|
|
127
|
+
method: 'notifications/progress',
|
|
128
|
+
params: {
|
|
129
|
+
progressToken,
|
|
130
|
+
progress: (Date.now() - startedAt) / 1000,
|
|
131
|
+
message: `Task status: ${task.status}`,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Progress is best-effort and must never interrupt task polling.
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
const task = detail.tasklist?.[0];
|
|
141
|
+
return task ? { kind: 'done', task } : { kind: 'missing' };
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
const lastDetail = error instanceof TaskWaitTimeoutError || error instanceof TaskPollingError
|
|
145
|
+
? error.lastDetail
|
|
146
|
+
: undefined;
|
|
147
|
+
const timedOut = error instanceof TaskWaitTimeoutError;
|
|
148
|
+
return {
|
|
149
|
+
kind: 'waiting',
|
|
150
|
+
lastTask: lastDetail?.tasklist?.[0],
|
|
151
|
+
reason: timedOut ? undefined : 'Task submission succeeded, but status monitoring was interrupted.',
|
|
152
|
+
timedOut,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function followedResult(followed, task, model, waitedSeconds) {
|
|
157
|
+
const reference = { taskid: task.taskid, tasktoken: task.tasktoken, model };
|
|
158
|
+
if (followed.kind === 'done') {
|
|
159
|
+
return {
|
|
160
|
+
content: createTaskContent(formatTaskResult(followed.task), followed.task),
|
|
161
|
+
structuredContent: toStructuredTaskResult(followed.task, reference),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
if (followed.kind === 'missing') {
|
|
165
|
+
const reason = 'The status endpoint returned no task data.';
|
|
166
|
+
return {
|
|
167
|
+
content: [{
|
|
168
|
+
type: 'text',
|
|
169
|
+
text: formatTaskPending({ ...reference, timeoutSeconds: waitedSeconds, reason }),
|
|
170
|
+
}],
|
|
171
|
+
structuredContent: toPendingTaskResult({ ...reference, reason }),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const { lastTask, reason } = followed;
|
|
175
|
+
const structured = lastTask
|
|
176
|
+
? toStructuredTaskResult(lastTask, reference)
|
|
177
|
+
: toPendingTaskResult({ ...reference, reason });
|
|
178
|
+
if (reason)
|
|
179
|
+
structured.error = reason;
|
|
180
|
+
return {
|
|
181
|
+
content: [{
|
|
182
|
+
type: 'text',
|
|
183
|
+
text: formatTaskPending({
|
|
184
|
+
...reference,
|
|
185
|
+
status: lastTask?.status,
|
|
186
|
+
timeoutSeconds: followed.timedOut ? waitedSeconds : undefined,
|
|
187
|
+
reason,
|
|
188
|
+
}),
|
|
189
|
+
}],
|
|
190
|
+
structuredContent: structured,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
export function registerRunModel(server, client, timing = RUN_MODEL_TIMING) {
|
|
194
|
+
const maxWaitSeconds = Math.round(timing.maxWaitMs / 1000);
|
|
8
195
|
server.registerTool('run_model', {
|
|
9
196
|
title: 'Run a Wiro model',
|
|
10
197
|
description: 'Run any AI model on Wiro. Supports image, video, text, audio, '
|
|
@@ -20,7 +207,7 @@ export function registerRunModel(server, client) {
|
|
|
20
207
|
model: z.string().describe('Model slug in "owner/model" format, e.g. "google/veo3-1", "google/nano-banana-pro"'),
|
|
21
208
|
params: z.record(z.string(), z.unknown()).describe('Model-specific parameters as key-value pairs. Use get_model_schema to discover available parameters. Pass json and json-array parameters as structured JSON values in this same object. File parameters take public URLs, no upload needed: one URL for fileinput, an array of URLs for combinefileinput, and for multifileinput the URLs comma-separated in its matching ...UrlMultiple field. A parameter you leave out gets the default get_model_schema shows for it. A run fills nothing for the ones it marks as samples (file fields, ids that contain "input", the prompt and the LLM chat fields), picks a random seed, and refuses a required parameter that is missing. To continue a chat, send the same session_id with the next prompt, without previousTaskToken. A turn that ended with tool calls is continued with previousTaskToken, toolOutputs rows (call_id and output) and the same session_id, as its nextAction shows.'),
|
|
22
209
|
wait: z.boolean().default(true).describe('If true, poll until completion and return the result. If false, return the task identifiers immediately.'),
|
|
23
|
-
timeout_seconds: z.number().int().min(10).max(600).default(45).describe(
|
|
210
|
+
timeout_seconds: z.number().int().min(10).max(600).default(45).describe(`Maximum seconds this call waits, counted from its start. A value above ${maxWaitSeconds} is treated as ${maxWaitSeconds}, so the call answers before a 60-second client tool timeout. A longer task continues with wait_for_task.`),
|
|
24
211
|
}, 'Model parameters go inside `params`.'),
|
|
25
212
|
outputSchema: taskResultOutputSchema,
|
|
26
213
|
annotations: {
|
|
@@ -30,6 +217,7 @@ export function registerRunModel(server, client) {
|
|
|
30
217
|
openWorldHint: true,
|
|
31
218
|
},
|
|
32
219
|
}, async ({ model, params, wait, timeout_seconds }, extra) => {
|
|
220
|
+
const startedAt = Date.now();
|
|
33
221
|
// The slug is checked before anything is sent, so any error the run call
|
|
34
222
|
// throws afterwards came once the request had gone out.
|
|
35
223
|
const [owner, ...rest] = model.split('/');
|
|
@@ -40,152 +228,80 @@ export function registerRunModel(server, client) {
|
|
|
40
228
|
isError: true,
|
|
41
229
|
};
|
|
42
230
|
}
|
|
43
|
-
|
|
231
|
+
// A call the client cancelled before it began sends nothing.
|
|
232
|
+
if (extra.signal.aborted)
|
|
233
|
+
return errorResult('The call was cancelled before the run request was sent.');
|
|
234
|
+
// Every wait below ends by this deadline, the run request included.
|
|
235
|
+
const deadline = startedAt + Math.min(timeout_seconds * 1000, timing.maxWaitMs);
|
|
236
|
+
const waitedSeconds = () => Math.round((Date.now() - startedAt) / 1000);
|
|
237
|
+
// A client without an identity, such as a stand-in in a test, gets a key
|
|
238
|
+
// no other call shares.
|
|
239
|
+
const identity = typeof client.identity === 'string' ? client.identity : undefined;
|
|
240
|
+
const key = identity ? runKey(identity, model, params) : `call:${crypto.randomUUID()}`;
|
|
241
|
+
let match = identity ? runLedger.find(key, timing, startedAt) : undefined;
|
|
242
|
+
let record;
|
|
243
|
+
let outcome = 'failed';
|
|
244
|
+
// A cancel or a closed connection means this call's answer will never
|
|
245
|
+
// arrive, so an identical call right after it continues its task.
|
|
246
|
+
const onAbort = () => {
|
|
247
|
+
if (record)
|
|
248
|
+
runLedger.markUnanswered(record);
|
|
249
|
+
};
|
|
250
|
+
extra.signal.addEventListener('abort', onAbort);
|
|
44
251
|
try {
|
|
45
|
-
|
|
46
|
-
if
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// call
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (!wait) {
|
|
70
|
-
return {
|
|
71
|
-
content: [{
|
|
72
|
-
type: 'text',
|
|
73
|
-
text: formatTaskSubmitted(runResult.taskid, runResult.socketaccesstoken),
|
|
74
|
-
}],
|
|
75
|
-
structuredContent: toPendingTaskResult({
|
|
76
|
-
taskid: runResult.taskid,
|
|
77
|
-
tasktoken: runResult.socketaccesstoken,
|
|
78
|
-
model,
|
|
79
|
-
}),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const detail = await client.waitForTask(runResult.socketaccesstoken, timeout_seconds * 1000, {
|
|
83
|
-
signal: extra.signal,
|
|
84
|
-
onPoll: async (task, context) => {
|
|
85
|
-
const progressToken = extra._meta?.progressToken;
|
|
86
|
-
if (progressToken === undefined)
|
|
87
|
-
return;
|
|
88
|
-
try {
|
|
89
|
-
await extra.sendNotification({
|
|
90
|
-
method: 'notifications/progress',
|
|
91
|
-
params: {
|
|
92
|
-
progressToken,
|
|
93
|
-
progress: context.elapsedMs / 1000,
|
|
94
|
-
message: `Task status: ${task.status}`,
|
|
95
|
-
},
|
|
96
|
-
});
|
|
252
|
+
// Twice at most: a continued run whose request or task failed is
|
|
253
|
+
// replaced by a new run, as if no earlier call had been made.
|
|
254
|
+
for (;;) {
|
|
255
|
+
const reused = match;
|
|
256
|
+
match = undefined;
|
|
257
|
+
record = reused ?? runLedger.start(key, () => client.runModel(model, params));
|
|
258
|
+
runLedger.attach(record);
|
|
259
|
+
const finish = (result) => (reused
|
|
260
|
+
? withReuseNote(result, startedAt - reused.startedAt)
|
|
261
|
+
: result);
|
|
262
|
+
// The run request is not tied to this call's signal: once it is sent,
|
|
263
|
+
// Wiro may create the task whether or not this call is still waiting,
|
|
264
|
+
// and the ledger needs its answer for an identical call that follows.
|
|
265
|
+
const settled = record.settled ?? await settleBy(record.submission, deadline, extra.signal);
|
|
266
|
+
if (settled === TIMED_OUT) {
|
|
267
|
+
outcome = 'unanswered';
|
|
268
|
+
return notConfirmed(model, project, Math.round((Date.now() - record.startedAt) / 1000));
|
|
269
|
+
}
|
|
270
|
+
const task = submittedTask(settled);
|
|
271
|
+
if (!task) {
|
|
272
|
+
if (reused) {
|
|
273
|
+
runLedger.release(record, 'failed');
|
|
274
|
+
record = undefined;
|
|
275
|
+
continue;
|
|
97
276
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
structuredContent: toPendingTaskResult({
|
|
117
|
-
taskid: runResult.taskid,
|
|
118
|
-
tasktoken: runResult.socketaccesstoken,
|
|
119
|
-
model,
|
|
120
|
-
reason,
|
|
121
|
-
}),
|
|
122
|
-
};
|
|
277
|
+
outcome = 'failed';
|
|
278
|
+
return runFailure(settled, model, project);
|
|
279
|
+
}
|
|
280
|
+
if (!wait) {
|
|
281
|
+
outcome = 'answered';
|
|
282
|
+
return finish({
|
|
283
|
+
content: [{ type: 'text', text: formatTaskSubmitted(task.taskid ?? '', task.tasktoken) }],
|
|
284
|
+
structuredContent: toPendingTaskResult({ ...task, model }),
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
const followed = await followTask(client, task.tasktoken, deadline, startedAt, extra);
|
|
288
|
+
if (reused && followed.kind === 'done' && ['failed', 'cancelled'].includes(getTaskState(followed.task))) {
|
|
289
|
+
runLedger.release(record, 'failed');
|
|
290
|
+
record = undefined;
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
outcome = 'answered';
|
|
294
|
+
return finish(followedResult(followed, task, model, waitedSeconds()));
|
|
123
295
|
}
|
|
124
|
-
return {
|
|
125
|
-
content: createTaskContent(formatTaskResult(task), task),
|
|
126
|
-
structuredContent: toStructuredTaskResult(task, {
|
|
127
|
-
taskid: runResult.taskid,
|
|
128
|
-
tasktoken: runResult.socketaccesstoken,
|
|
129
|
-
model,
|
|
130
|
-
}),
|
|
131
|
-
};
|
|
132
296
|
}
|
|
133
297
|
catch (error) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
? undefined
|
|
142
|
-
: 'Task submission succeeded, but status monitoring was interrupted.';
|
|
143
|
-
const structured = lastTask
|
|
144
|
-
? toStructuredTaskResult(lastTask, {
|
|
145
|
-
taskid: runResult.taskid,
|
|
146
|
-
tasktoken: runResult.socketaccesstoken,
|
|
147
|
-
model,
|
|
148
|
-
})
|
|
149
|
-
: toPendingTaskResult({
|
|
150
|
-
taskid: runResult.taskid,
|
|
151
|
-
tasktoken: runResult.socketaccesstoken,
|
|
152
|
-
model,
|
|
153
|
-
reason,
|
|
154
|
-
});
|
|
155
|
-
if (reason)
|
|
156
|
-
structured.error = reason;
|
|
157
|
-
return {
|
|
158
|
-
content: [{
|
|
159
|
-
type: 'text',
|
|
160
|
-
text: formatTaskPending({
|
|
161
|
-
taskid: runResult.taskid,
|
|
162
|
-
tasktoken: runResult.socketaccesstoken,
|
|
163
|
-
status: lastTask?.status,
|
|
164
|
-
timeoutSeconds: error instanceof TaskWaitTimeoutError
|
|
165
|
-
? timeout_seconds
|
|
166
|
-
: undefined,
|
|
167
|
-
reason,
|
|
168
|
-
}),
|
|
169
|
-
}],
|
|
170
|
-
structuredContent: structured,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
// The request was sent, and no clear answer says whether Wiro created a task.
|
|
174
|
-
if (!runResult && isOutcomeUnknown(error)) {
|
|
175
|
-
return {
|
|
176
|
-
content: [{
|
|
177
|
-
type: 'text',
|
|
178
|
-
text: `## Error\n\nThe run request was sent but no clear answer came back (${errorText(error)}). `
|
|
179
|
-
+ 'The task may have started and may be charged. Before running it again, call list_tasks with model '
|
|
180
|
-
+ `"${project}" and look for a task of ${model} that is queued or running, or that started in the last few minutes.`,
|
|
181
|
-
}],
|
|
182
|
-
isError: true,
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
return {
|
|
186
|
-
content: [{ type: 'text', text: `## Error\n\n${error instanceof Error ? error.message : String(error)}` }],
|
|
187
|
-
isError: true,
|
|
188
|
-
};
|
|
298
|
+
// Only an abort ends up here; the SDK sends no answer for a cancelled call.
|
|
299
|
+
return errorResult(error instanceof Error ? error.message : String(error));
|
|
300
|
+
}
|
|
301
|
+
finally {
|
|
302
|
+
extra.signal.removeEventListener('abort', onAbort);
|
|
303
|
+
if (record)
|
|
304
|
+
runLedger.release(record, extra.signal.aborted ? 'unanswered' : outcome);
|
|
189
305
|
}
|
|
190
306
|
});
|
|
191
307
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-model.js","sourceRoot":"","sources":["../../src/tools/run-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-model.js","sourceRoot":"","sources":["../../src/tools/run-model.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,MAAM,EACN,SAAS,EACT,aAAa,GAId,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAQnE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B,MAAM,CAAC,MAAM,CAAC;IACtE,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,MAAM;IACpB,kBAAkB,EAAE,EAAE,GAAG,MAAM;CAChC,CAAC,CAAC;AASH,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEtC,SAAS,UAAU;IACjB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,SAAS,QAAQ,CACf,UAAkC,EAClC,QAAgB,EAChB,MAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,mEAAmE;AACnE,SAAS,UAAU,CAAC,OAAsB,EAAE,KAAa,EAAE,OAAe;IACxE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,8EAA8E;QAC9E,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,WAAW,CAAC,2DAA2D,SAAS,CAAC,KAAK,CAAC,KAAK;kBAC/F,oGAAoG;kBACpG,IAAI,OAAO,4BAA4B,KAAK,sEAAsE,CAAC,CAAC;QAC1H,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;QACnF,OAAO,WAAW,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,uEAAuE;IACvE,oBAAoB;IACpB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,WAAW,CAAC,MAAM;QACvB,CAAC,CAAC,iCAAiC,MAAM,4EAA4E;cACjH,uEAAuE,MAAM,gCAAgC;QACjH,CAAC,CAAC,sGAAsG;cACpG,yEAAyE,OAAO,gCAAgC,CAAC,CAAC;AAC1H,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,KAAa,EAAE,OAAe,EAAE,cAAsB;IAC1E,OAAO,WAAW,CAAC,0CAA0C,cAAc,mDAAmD;UAC1H,kGAAkG;UAClG,4EAA4E,OAAO,2BAA2B;UAC9G,GAAG,KAAK,2EAA2E,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,OAAO,CAAC,EAAU;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC;AAED,+DAA+D;AAC/D,SAAS,aAAa,CAAC,MAAkB,EAAE,KAAa;IACtD,MAAM,IAAI,GAAG,oEAAoE,OAAO,CAAC,KAAK,CAAC,qBAAqB;UAChH,0GAA0G;UAC1G,sCAAsC,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACxC,MAAM,OAAO,GAAuB,KAAK,EAAE,IAAI,KAAK,MAAM;QACxD,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAC3D,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO;QACL,GAAG,MAAM;QACT,OAAO;QACP,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1G,CAAC;AACJ,CAAC;AAOD,2DAA2D;AAC3D,KAAK,UAAU,UAAU,CACvB,MAAkB,EAClB,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,KAAsB;IAEtB,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE;YAC9D,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBACnB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;gBACjD,IAAI,aAAa,KAAK,SAAS;oBAAE,OAAO;gBACxC,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,gBAAgB,CAAC;wBAC3B,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE;4BACN,aAAa;4BACb,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI;4BACzC,OAAO,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE;yBACvC;qBACF,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,iEAAiE;gBACnE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAY,gBAAgB;YAC3F,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,KAAK,YAAY,oBAAoB,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mEAAmE;YAClG,QAAQ;SACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,QAAkB,EAClB,IAA4C,EAC5C,KAAa,EACb,aAAqB;IAErB,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5E,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC1E,iBAAiB,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;SACpE,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,4CAA4C,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;iBACjF,CAAC;YACF,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,UAAU,GAAG,QAAQ;QACzB,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC7C,CAAC,CAAC,mBAAmB,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM;QAAE,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;IACtC,OAAO;QACL,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,iBAAiB,CAAC;oBACtB,GAAG,SAAS;oBACZ,MAAM,EAAE,QAAQ,EAAE,MAAM;oBACxB,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBAC7D,MAAM;iBACP,CAAC;aACH,CAAC;QACF,iBAAiB,EAAE,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,MAAkB,EAClB,SAAyB,gBAAgB;IAEzC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,gEAAgE;cACzE,qEAAqE;cACrE,sDAAsD;cACtD,qEAAqE;cACrE,wEAAwE;cACxE,sEAAsE;cACtE,iEAAiE;cACjE,wEAAwE;cACxE,+DAA+D;QACnE,WAAW,EAAE,WAAW,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;YAChH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,i5BAAi5B,CAAC;YACr8B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0GAA0G,CAAC;YACpJ,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0EAA0E,cAAc,kBAAkB,cAAc,2GAA2G,CAAC;SAC7S,EAAE,sCAAsC,CAAC;QAC1C,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yEAAyE,EAAE,CAAC;gBACrH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,WAAW,CAAC,yDAAyD,CAAC,CAAC;QAExG,oEAAoE;QACpE,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAChF,yEAAyE;QACzE,wBAAwB;QACxB,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QAEvF,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,MAA6B,CAAC;QAClC,IAAI,OAAO,GAAyC,QAAQ,CAAC;QAC7D,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,MAAM;gBAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,iEAAiE;YACjE,8DAA8D;YAC9D,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,KAAK,CAAC;gBACrB,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC9E,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAc,EAAE,CAAC,CAAC,MAAM;oBACxD,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;oBACrD,CAAC,CAAC,MAAM,CAAC,CAAC;gBAEZ,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,OAAO,GAAG,YAAY,CAAC;oBACvB,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC1F,CAAC;gBAED,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,MAAM,EAAE,CAAC;wBACX,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACpC,MAAM,GAAG,SAAS,CAAC;wBACnB,SAAS;oBACX,CAAC;oBACD,OAAO,GAAG,QAAQ,CAAC;oBACnB,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;gBAED,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,GAAG,UAAU,CAAC;oBACrB,OAAO,MAAM,CAAC;wBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBACzF,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;qBAC3D,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACtF,IAAI,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACxG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACpC,MAAM,GAAG,SAAS,CAAC;oBACnB,SAAS;gBACX,CAAC;gBACD,OAAO,GAAG,UAAU,CAAC;gBACrB,OAAO,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4EAA4E;YAC5E,OAAO,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM;gBAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/schemas.d.ts
CHANGED
|
@@ -295,6 +295,7 @@ export declare const taskResultOutputSchema: {
|
|
|
295
295
|
arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
296
296
|
reason: z.ZodString;
|
|
297
297
|
}, z.core.$strip>>;
|
|
298
|
+
reused: z.ZodOptional<z.ZodBoolean>;
|
|
298
299
|
};
|
|
299
300
|
export declare const taskListOutputSchema: {
|
|
300
301
|
tasks: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4CxB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,SAAK,oEAsBvE;AAED,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAW9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;EAInC,CAAC;AAOH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqB5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW3B,CAAC;AAEH,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4CxB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,SAAK,oEAsBvE;AAED,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAW9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;EAInC,CAAC;AAOH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqB5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW3B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASlC,CAAC;AAQF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWhC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;iBAU7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAOjC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAO/B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;CAOjC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAQlC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;CAQpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAOlC,CAAC"}
|
package/dist/tools/schemas.js
CHANGED
|
@@ -180,6 +180,8 @@ export const taskResultOutputSchema = {
|
|
|
180
180
|
response: z.string().optional(),
|
|
181
181
|
error: z.string().optional(),
|
|
182
182
|
nextAction: nextActionSchema.optional(),
|
|
183
|
+
reused: z.boolean().optional()
|
|
184
|
+
.describe('True when run_model continued the task of an identical earlier call whose answer did not reach the client, instead of starting and billing a new task.'),
|
|
183
185
|
};
|
|
184
186
|
const taskListItemOutputSchema = taskOutputSchema.omit({
|
|
185
187
|
text: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { RunModelResult } from '../types.js';
|
|
2
|
+
/** What Wiro answered to a run request. It never rejects. */
|
|
3
|
+
export type RunSubmission = {
|
|
4
|
+
ok: true;
|
|
5
|
+
result: RunModelResult;
|
|
6
|
+
} | {
|
|
7
|
+
ok: false;
|
|
8
|
+
error: unknown;
|
|
9
|
+
};
|
|
10
|
+
export interface RunRecord {
|
|
11
|
+
readonly key: string;
|
|
12
|
+
readonly startedAt: number;
|
|
13
|
+
readonly submission: Promise<RunSubmission>;
|
|
14
|
+
/** The answer, once it came. */
|
|
15
|
+
settled?: RunSubmission;
|
|
16
|
+
/** run_model calls serving this run right now. */
|
|
17
|
+
active: number;
|
|
18
|
+
/** When a call serving this run last ended without its answer reaching the client. */
|
|
19
|
+
unansweredAt?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface RunReuseTiming {
|
|
22
|
+
/** How long after a call ended unanswered an identical call continues its run. */
|
|
23
|
+
unansweredWindowMs: number;
|
|
24
|
+
/**
|
|
25
|
+
* How long after an identical call started, while it is still waiting, a new
|
|
26
|
+
* call counts as its retry. Calls an agent sends side by side arrive together
|
|
27
|
+
* and each start their own task; a retry comes after the client gave up.
|
|
28
|
+
*/
|
|
29
|
+
retryAfterMs: number;
|
|
30
|
+
}
|
|
31
|
+
/** The task a run request created, when it created one this call can follow. */
|
|
32
|
+
export declare function submittedTask(submission: RunSubmission | undefined): {
|
|
33
|
+
taskid?: string;
|
|
34
|
+
tasktoken: string;
|
|
35
|
+
} | undefined;
|
|
36
|
+
/** The ledger key of one run: the caller, the model and the parameters. */
|
|
37
|
+
export declare function runKey(identity: string, model: string, params: Record<string, unknown>): string;
|
|
38
|
+
export declare class RunLedger {
|
|
39
|
+
private readonly records;
|
|
40
|
+
/**
|
|
41
|
+
* The run an identical call should continue: one whose last call ended
|
|
42
|
+
* without its answer reaching the client, within the window, or one an
|
|
43
|
+
* identical call is still waiting for after `retryAfterMs`.
|
|
44
|
+
*/
|
|
45
|
+
find(key: string, timing: RunReuseTiming, now?: number): RunRecord | undefined;
|
|
46
|
+
/** Sends a new run request and remembers it under `key`. */
|
|
47
|
+
start(key: string, submit: () => Promise<RunModelResult>, now?: number): RunRecord;
|
|
48
|
+
/** A call starts serving the run. */
|
|
49
|
+
attach(record: RunRecord): void;
|
|
50
|
+
/** A call serving the run lost its client, so its answer will not arrive. */
|
|
51
|
+
markUnanswered(record: RunRecord, now?: number): void;
|
|
52
|
+
/**
|
|
53
|
+
* A call stops serving the run. `answered`: its client got the task, so an
|
|
54
|
+
* identical call after this one is a new run. `unanswered`: its client did
|
|
55
|
+
* not, so an identical call soon after continues this run. `failed`: there
|
|
56
|
+
* is no task to continue.
|
|
57
|
+
*/
|
|
58
|
+
release(record: RunRecord, outcome: 'answered' | 'unanswered' | 'failed', now?: number): void;
|
|
59
|
+
/** Drops the run, unless a newer run already took its key. */
|
|
60
|
+
forget(record: RunRecord): void;
|
|
61
|
+
private prune;
|
|
62
|
+
private trim;
|
|
63
|
+
}
|
|
64
|
+
/** The ledger every run_model tool in this process shares. */
|
|
65
|
+
export declare const runLedger: RunLedger;
|
|
66
|
+
//# sourceMappingURL=run-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-ledger.d.ts","sourceRoot":"","sources":["../../src/utils/run-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAalD,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAElC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,gCAAgC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,gFAAgF;AAChF,wBAAgB,aAAa,CAC3B,UAAU,EAAE,aAAa,GAAG,SAAS,GACpC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAMpD;AAcD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAQ/F;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,SAAS,GAAG,SAAS;IAWlF,4DAA4D;IAC5D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,SAAa,GAAG,SAAS;IAuBtF,qCAAqC;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI/B,6EAA6E;IAC7E,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAa,GAAG,IAAI;IAIzD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,EAAE,GAAG,SAAa,GAAG,IAAI;IAWjG,8DAA8D;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAI/B,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,IAAI;CAOb;AAED,8DAA8D;AAC9D,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
const MAX_RECORDS = 1000;
|
|
3
|
+
/** The task a run request created, when it created one this call can follow. */
|
|
4
|
+
export function submittedTask(submission) {
|
|
5
|
+
if (!submission?.ok || !submission.result.result)
|
|
6
|
+
return undefined;
|
|
7
|
+
const tasktoken = submission.result.socketaccesstoken ?? '';
|
|
8
|
+
if (!/^[A-Za-z0-9_.:-]{1,256}$/.test(tasktoken))
|
|
9
|
+
return undefined;
|
|
10
|
+
const taskid = submission.result.taskid ? String(submission.result.taskid) : undefined;
|
|
11
|
+
return { taskid, tasktoken };
|
|
12
|
+
}
|
|
13
|
+
/** JSON with object keys sorted at every level, so key order does not tell two calls apart. */
|
|
14
|
+
function canonicalJson(value) {
|
|
15
|
+
if (Array.isArray(value))
|
|
16
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
17
|
+
if (value !== null && typeof value === 'object') {
|
|
18
|
+
const object = value;
|
|
19
|
+
return `{${Object.keys(object).sort()
|
|
20
|
+
.map(name => `${JSON.stringify(name)}:${canonicalJson(object[name])}`)
|
|
21
|
+
.join(',')}}`;
|
|
22
|
+
}
|
|
23
|
+
return JSON.stringify(value) ?? 'null';
|
|
24
|
+
}
|
|
25
|
+
/** The ledger key of one run: the caller, the model and the parameters. */
|
|
26
|
+
export function runKey(identity, model, params) {
|
|
27
|
+
return crypto.createHash('sha256')
|
|
28
|
+
.update(identity)
|
|
29
|
+
.update('\0')
|
|
30
|
+
.update(model.trim().toLowerCase())
|
|
31
|
+
.update('\0')
|
|
32
|
+
.update(canonicalJson(params))
|
|
33
|
+
.digest('hex');
|
|
34
|
+
}
|
|
35
|
+
export class RunLedger {
|
|
36
|
+
records = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* The run an identical call should continue: one whose last call ended
|
|
39
|
+
* without its answer reaching the client, within the window, or one an
|
|
40
|
+
* identical call is still waiting for after `retryAfterMs`.
|
|
41
|
+
*/
|
|
42
|
+
find(key, timing, now = Date.now()) {
|
|
43
|
+
this.prune(timing, now);
|
|
44
|
+
const record = this.records.get(key);
|
|
45
|
+
if (!record)
|
|
46
|
+
return undefined;
|
|
47
|
+
if (record.unansweredAt !== undefined && now - record.unansweredAt <= timing.unansweredWindowMs) {
|
|
48
|
+
return record;
|
|
49
|
+
}
|
|
50
|
+
if (record.active > 0 && now - record.startedAt >= timing.retryAfterMs)
|
|
51
|
+
return record;
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
/** Sends a new run request and remembers it under `key`. */
|
|
55
|
+
start(key, submit, now = Date.now()) {
|
|
56
|
+
let submission;
|
|
57
|
+
try {
|
|
58
|
+
submission = submit().then(result => ({ ok: true, result }), error => ({ ok: false, error }));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
submission = Promise.resolve({ ok: false, error });
|
|
62
|
+
}
|
|
63
|
+
const record = { key, startedAt: now, submission, active: 0 };
|
|
64
|
+
void submission.then(settled => {
|
|
65
|
+
record.settled = settled;
|
|
66
|
+
// An answer that came after every call left: without a task nothing is
|
|
67
|
+
// left to continue.
|
|
68
|
+
if (record.active === 0 && !submittedTask(settled))
|
|
69
|
+
this.forget(record);
|
|
70
|
+
});
|
|
71
|
+
this.records.delete(key);
|
|
72
|
+
this.records.set(key, record);
|
|
73
|
+
this.trim();
|
|
74
|
+
return record;
|
|
75
|
+
}
|
|
76
|
+
/** A call starts serving the run. */
|
|
77
|
+
attach(record) {
|
|
78
|
+
record.active += 1;
|
|
79
|
+
}
|
|
80
|
+
/** A call serving the run lost its client, so its answer will not arrive. */
|
|
81
|
+
markUnanswered(record, now = Date.now()) {
|
|
82
|
+
record.unansweredAt = now;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A call stops serving the run. `answered`: its client got the task, so an
|
|
86
|
+
* identical call after this one is a new run. `unanswered`: its client did
|
|
87
|
+
* not, so an identical call soon after continues this run. `failed`: there
|
|
88
|
+
* is no task to continue.
|
|
89
|
+
*/
|
|
90
|
+
release(record, outcome, now = Date.now()) {
|
|
91
|
+
record.active = Math.max(0, record.active - 1);
|
|
92
|
+
if (outcome === 'failed') {
|
|
93
|
+
this.forget(record);
|
|
94
|
+
}
|
|
95
|
+
else if (outcome === 'unanswered') {
|
|
96
|
+
record.unansweredAt = now;
|
|
97
|
+
}
|
|
98
|
+
else if (record.active === 0) {
|
|
99
|
+
this.forget(record);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Drops the run, unless a newer run already took its key. */
|
|
103
|
+
forget(record) {
|
|
104
|
+
if (this.records.get(record.key) === record)
|
|
105
|
+
this.records.delete(record.key);
|
|
106
|
+
}
|
|
107
|
+
prune(timing, now) {
|
|
108
|
+
for (const record of this.records.values()) {
|
|
109
|
+
if (record.active > 0)
|
|
110
|
+
continue;
|
|
111
|
+
const unanswered = record.unansweredAt !== undefined
|
|
112
|
+
&& now - record.unansweredAt <= timing.unansweredWindowMs;
|
|
113
|
+
// A run request still on its way stays until it answers or its window ends.
|
|
114
|
+
if (!unanswered)
|
|
115
|
+
this.records.delete(record.key);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
trim() {
|
|
119
|
+
while (this.records.size > MAX_RECORDS) {
|
|
120
|
+
const oldest = this.records.keys().next().value;
|
|
121
|
+
if (oldest === undefined)
|
|
122
|
+
break;
|
|
123
|
+
this.records.delete(oldest);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** The ledger every run_model tool in this process shares. */
|
|
128
|
+
export const runLedger = new RunLedger();
|
|
129
|
+
//# sourceMappingURL=run-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-ledger.js","sourceRoot":"","sources":["../../src/utils/run-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AA0CjC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAC3B,UAAqC;IAErC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED,+FAA+F;AAC/F,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;aAClC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;aACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CAAC,QAAgB,EAAE,KAAa,EAAE,MAA+B;IACrF,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC/B,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,SAAS;IACH,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExD;;;;OAIG;IACH,IAAI,CAAC,GAAW,EAAE,MAAsB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACxD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAChG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC;QACtF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,GAAW,EAAE,MAAqC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACxE,IAAI,UAAkC,CAAC;QACvC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,MAAM,EAAE,CAAC,EACzC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,CAAC,CACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAc,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACzE,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,uEAAuE;YACvE,oBAAoB;YACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,MAAiB;QACtB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,6EAA6E;IAC7E,cAAc,CAAC,MAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAChD,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,MAAiB,EAAE,OAA6C,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACxF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,MAAiB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,MAAsB,EAAE,GAAW;QAC/C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAChC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS;mBAC/C,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,kBAAkB,CAAC;YAC5D,4EAA4E;YAC5E,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wiro-ai/wiro-mcp",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"mcpName": "ai.wiro/mcp",
|
|
5
5
|
"description": "Official MCP server for Wiro AI. Run Wiro AI models, build and run workflows, and talk to Studio and your Wiro agents from Cursor, Claude, Windsurf and any MCP-compatible AI assistant",
|
|
6
6
|
"type": "module",
|