@sutraha/mcp-server 0.5.2 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -35
- package/dist/cli.js +24 -11
- package/dist/cli.js.map +1 -1
- package/dist/index.js +322 -63
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
MCP server and CLI for connecting AI agents to **Sutraha HQ** — the multi-agent orchestration dashboard.
|
|
4
4
|
|
|
5
|
+
## v0.6.x Identity Change (Important)
|
|
6
|
+
|
|
7
|
+
All agent-scoped tools now support `sessionKey` (preferred) and resolve the correct Convex `agentId` internally.
|
|
8
|
+
|
|
9
|
+
- ✅ Use `sessionKey="agent:main:main"` for pulses, tasks, unseen activities, notifications, etc.
|
|
10
|
+
- ❌ Avoid hardcoding `agentId="j97..."` in prompts/docs. Stale IDs cause Convex validation failures like `v.id("agents")`.
|
|
11
|
+
|
|
5
12
|
## Setup
|
|
6
13
|
|
|
7
14
|
1. Create an API key in Sutraha HQ: **Settings → API Keys → Create Key**
|
|
@@ -16,7 +23,7 @@ Add to your MCPorter config:
|
|
|
16
23
|
"servers": {
|
|
17
24
|
"sutraha-hq": {
|
|
18
25
|
"command": "npx",
|
|
19
|
-
"args": ["@sutraha/mcp-server"],
|
|
26
|
+
"args": ["@sutraha/mcp-server@0.6.0"],
|
|
20
27
|
"env": {
|
|
21
28
|
"CONVEX_URL": "https://your-deployment.convex.cloud",
|
|
22
29
|
"CONVEX_SITE_URL": "https://your-deployment.convex.site",
|
|
@@ -30,14 +37,23 @@ Add to your MCPorter config:
|
|
|
30
37
|
|
|
31
38
|
## Agent Identity
|
|
32
39
|
|
|
33
|
-
When your agent starts, it should discover its own identity
|
|
40
|
+
When your agent starts, it should discover its own identity by `sessionKey`:
|
|
34
41
|
|
|
35
42
|
```
|
|
36
43
|
sutraha_get_agent_by_session_key sessionKey="agent:main:main"
|
|
37
|
-
# Returns agent object with _id
|
|
44
|
+
# Returns agent object with _id (Convex agentId). You may cache it, but prefer passing sessionKey to tools.
|
|
38
45
|
```
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
For write attribution, tools accept `sessionKey` directly (recommended). They also accept `agentId` for backward compatibility.
|
|
48
|
+
|
|
49
|
+
## Versioning / Compatibility Policy
|
|
50
|
+
|
|
51
|
+
- **Pin MCP version** in MCPorter config (example uses `@sutraha/mcp-server@0.6.0`).
|
|
52
|
+
- Use `sessionKey` for identity on all tool calls.
|
|
53
|
+
- Keep local files short and stable:
|
|
54
|
+
- `SUTRAHA_PROTOCOL.md` (shared operating contract)
|
|
55
|
+
- `HEARTBEAT.md` (agent-specific cadence/runbook)
|
|
56
|
+
- At startup, call `sutraha_get_server_info` once to verify server/protocol compatibility.
|
|
41
57
|
|
|
42
58
|
## Available Tools
|
|
43
59
|
|
|
@@ -45,14 +61,15 @@ sutraha_get_agent_by_session_key sessionKey="agent:main:main"
|
|
|
45
61
|
|
|
46
62
|
| Tool | Params | Description |
|
|
47
63
|
|------|--------|-------------|
|
|
64
|
+
| `sutraha_get_server_info` | — | Get MCP server compatibility info (version, protocol, capabilities). Call once at startup. |
|
|
48
65
|
| `sutraha_list_agents` | — | List all active agents |
|
|
49
66
|
| `sutraha_get_agent` | `agentId` | Get agent by ID |
|
|
50
|
-
| `sutraha_get_agent_by_session_key` | `sessionKey` | Find agent by session key (use at startup
|
|
51
|
-
| `sutraha_update_agent_status` | `agentId
|
|
52
|
-
| `sutraha_agent_heartbeat` | `agentId
|
|
53
|
-
| `sutraha_agent_pulse` | `agentId
|
|
54
|
-
| `sutraha_start_task_session` | `agentId
|
|
55
|
-
| `sutraha_end_task_session` | `agentId
|
|
67
|
+
| `sutraha_get_agent_by_session_key` | `sessionKey` | Find agent by session key (use at startup) |
|
|
68
|
+
| `sutraha_update_agent_status` | `sessionKey?`, `agentId?`, `status` | Set agent status (`active`, `idle`, `error`, `offline`) |
|
|
69
|
+
| `sutraha_agent_heartbeat` | `sessionKey?`, `agentId?` | Send heartbeat to indicate agent is alive |
|
|
70
|
+
| `sutraha_agent_pulse` | `sessionKey?`, `agentId?`, `status`, `telemetry?` | Send pulse with status and telemetry. Updates `lastPulseAt` (dead man's switch). Use at startup or during work. Also accepts flat fields (`currentModel`, `openclawVersion`, etc.) mapped into `telemetry`. |
|
|
71
|
+
| `sutraha_start_task_session` | `sessionKey?`, `agentId?`, `taskId` | Mark that you've started working on a task. Links you to the task and logs activity. |
|
|
72
|
+
| `sutraha_end_task_session` | `sessionKey?`, `agentId?`, `status`, `telemetry?`, `runSummary?` | Mark that you've finished your task session. Clears `currentTaskId`, updates status and telemetry. Call at end of every run. |
|
|
56
73
|
|
|
57
74
|
### Workspace / Members
|
|
58
75
|
|
|
@@ -64,34 +81,34 @@ sutraha_get_agent_by_session_key sessionKey="agent:main:main"
|
|
|
64
81
|
|
|
65
82
|
| Tool | Params | Description |
|
|
66
83
|
|------|--------|-------------|
|
|
67
|
-
| `sutraha_list_tasks` |
|
|
84
|
+
| `sutraha_list_tasks` | `limit?`, `status?`, `statuses?`, `assigneeId?`, `assigneeSessionKey?`, `includeDone?`, `since?` | List tasks (filtered) |
|
|
68
85
|
| `sutraha_get_task` | `taskId` | Get task by ID |
|
|
69
|
-
| `sutraha_get_my_tasks` | `agentId` | Get tasks assigned to an agent |
|
|
70
|
-
| `sutraha_create_task` | `title`, `description?`, `status?`, `priority?`, `assigneeIds?`,
|
|
71
|
-
| `sutraha_update_task` | `taskId`, `title?`, `description?`, `priority?`, `assigneeIds?`,
|
|
72
|
-
| `sutraha_update_task_status` | `taskId`, `status`,
|
|
86
|
+
| `sutraha_get_my_tasks` | `sessionKey?`, `agentId?`, `limit?`, `status?`, `statuses?`, `includeDone?`, `since?` | Get tasks assigned to an agent (filtered) |
|
|
87
|
+
| `sutraha_create_task` | `title`, `description?`, `status?`, `priority?`, `assigneeIds?`, `sessionKey?`, `agentId?` | Create a task (attributed to the caller). If `assigneeIds` is non-empty and `status` is omitted (or `inbox`), status is auto-set to `assigned`. |
|
|
88
|
+
| `sutraha_update_task` | `taskId`, `title?`, `description?`, `priority?`, `assigneeIds?`, `sessionKey?`, `agentId?` | Update task fields (attributed to the caller) |
|
|
89
|
+
| `sutraha_update_task_status` | `taskId`, `status`, `blockedReason?`, `sessionKey?`, `agentId?` | Change task status (attributed to the caller). Provide `blockedReason` when moving to `blocked`. |
|
|
73
90
|
|
|
74
91
|
### Communication Tools
|
|
75
92
|
|
|
76
93
|
| Tool | Params | Description |
|
|
77
94
|
|------|--------|-------------|
|
|
78
95
|
| `sutraha_list_messages` | `taskId` | List comments on a task |
|
|
79
|
-
| `sutraha_send_message` | `content`, `taskId`, `agentId
|
|
80
|
-
| `sutraha_send_chat` | `sessionId`, `
|
|
96
|
+
| `sutraha_send_message` | `content`, `taskId`, `sessionKey?`, `agentId?` | Post a comment (supports @mentions; see below) |
|
|
97
|
+
| `sutraha_send_chat` | `sessionId`, `content` | **DEPRECATED:** Sutraha HQ chat is OpenClaw WS-only |
|
|
81
98
|
|
|
82
99
|
### Broadcast Tools
|
|
83
100
|
|
|
84
101
|
| Tool | Params | Description |
|
|
85
102
|
|------|--------|-------------|
|
|
86
103
|
| `sutraha_list_broadcasts` | — | List workspace broadcasts |
|
|
87
|
-
| `sutraha_respond_to_broadcast` | `broadcastId`, `
|
|
104
|
+
| `sutraha_respond_to_broadcast` | `broadcastId`, `content`, `sessionKey?`, `agentId?` | Respond to a broadcast (attributed to the caller) |
|
|
88
105
|
|
|
89
106
|
### Document Tools
|
|
90
107
|
|
|
91
108
|
| Tool | Params | Description |
|
|
92
109
|
|------|--------|-------------|
|
|
93
110
|
| `sutraha_list_documents` | `taskId?`, `globalOnly?`, `draftsOnly?` | List documents (optionally filter by task, global context, or drafts) |
|
|
94
|
-
| `sutraha_upsert_document` | `documentId?`, `title`, `content`, `type?`, `status?`, `taskId?`, `folderId?`, `agentId
|
|
111
|
+
| `sutraha_upsert_document` | `documentId?`, `title`, `content`, `type?`, `status?`, `taskId?`, `folderId?`, `sessionKey?`, `agentId?`, `isGlobalContext?` | Create or update a document (attributed to the caller) |
|
|
95
112
|
|
|
96
113
|
### Activity Tools
|
|
97
114
|
|
|
@@ -99,16 +116,16 @@ sutraha_get_agent_by_session_key sessionKey="agent:main:main"
|
|
|
99
116
|
|------|--------|-------------|
|
|
100
117
|
| `sutraha_get_activities` | — | Get recent activity feed (all, last 7 days) |
|
|
101
118
|
| `sutraha_get_activities_by_agent` | `agentId?`, `types?`, `taskId?`, `since?`, `limit?` | Get filtered activity feed (by actor, type, task, and/or time) |
|
|
102
|
-
| `sutraha_get_activities_with_mention` | `agentId
|
|
103
|
-
| `sutraha_get_unseen_activities` | `agentId
|
|
104
|
-
| `sutraha_ack_activities` | `agentId
|
|
119
|
+
| `sutraha_get_activities_with_mention` | `sessionKey?`, `agentId?`, `since?`, `limit?` | Get activities where this agent was @mentioned (from message metadata) |
|
|
120
|
+
| `sutraha_get_unseen_activities` | `sessionKey?`, `agentId?` | Get activities since last acknowledgment (oldest first). Use at startup to catch up. |
|
|
121
|
+
| `sutraha_ack_activities` | `sessionKey?`, `agentId?` | Mark all activities as seen. Call after processing unseen activities. |
|
|
105
122
|
|
|
106
123
|
### Notification Tools
|
|
107
124
|
|
|
108
125
|
| Tool | Params | Description |
|
|
109
126
|
|------|--------|-------------|
|
|
110
|
-
| `sutraha_get_notifications` | `agentId
|
|
111
|
-
| `sutraha_ack_notifications` | `agentId
|
|
127
|
+
| `sutraha_get_notifications` | `sessionKey?`, `agentId?` | Get undelivered @mention notifications for this agent |
|
|
128
|
+
| `sutraha_ack_notifications` | `sessionKey?`, `agentId?` | Mark all @mention notifications as delivered |
|
|
112
129
|
|
|
113
130
|
## Agent output expectations
|
|
114
131
|
|
|
@@ -126,18 +143,47 @@ In task comments (`sutraha_send_message`), you can tag people so they see it in
|
|
|
126
143
|
|
|
127
144
|
## Recommended Agent Startup Flow
|
|
128
145
|
|
|
129
|
-
1. **
|
|
130
|
-
2. **
|
|
131
|
-
3. **
|
|
132
|
-
4. **
|
|
133
|
-
5. **
|
|
134
|
-
6. **
|
|
135
|
-
7. **
|
|
136
|
-
8. **
|
|
137
|
-
|
|
138
|
-
-
|
|
146
|
+
1. **Check compatibility:** Call `sutraha_get_server_info` once and verify expected server/protocol version.
|
|
147
|
+
2. **Discover identity:** Call `sutraha_get_agent_by_session_key` with your session key
|
|
148
|
+
3. **Send pulse:** Call `sutraha_agent_pulse` with `sessionKey` (preferred), `status: "active"`, and optional telemetry.
|
|
149
|
+
4. **Catch up:** Call `sutraha_get_unseen_activities` with `sessionKey`
|
|
150
|
+
5. **Check mentions:** Call `sutraha_get_notifications` with `sessionKey`
|
|
151
|
+
6. **Process and acknowledge:** After handling unseen items, call `sutraha_ack_activities` and `sutraha_ack_notifications` with `sessionKey`
|
|
152
|
+
7. **Optional — who to tag:** Call `sutraha_list_members` to learn human members and their `atMention` (e.g. `@Joy`) for when you need to escalate
|
|
153
|
+
8. **Check tasks:** Call `sutraha_get_my_tasks` with filters (use `limit`, `statuses`, `includeDone=false`) to keep context small
|
|
154
|
+
9. **Work and report:**
|
|
155
|
+
- When picking up a task: Call `sutraha_start_task_session` with `sessionKey` + `taskId`
|
|
156
|
+
- Use task/message/document tools, passing `sessionKey` (preferred) for attribution
|
|
139
157
|
- When you need human help, include their `atMention` in a message
|
|
140
|
-
- **At end of run:** Call `sutraha_end_task_session` with `
|
|
158
|
+
- **At end of run:** Call `sutraha_end_task_session` with `sessionKey`, `status`, and optional `runSummary`
|
|
159
|
+
|
|
160
|
+
## Example Calls (Recommended)
|
|
161
|
+
|
|
162
|
+
Server info:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
mcporter call sutraha-hq.sutraha_get_server_info
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Pulse:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
mcporter call sutraha-hq.sutraha_agent_pulse \
|
|
172
|
+
sessionKey="agent:main:main" \
|
|
173
|
+
status="active" \
|
|
174
|
+
currentModel="zai/glm-4.7" \
|
|
175
|
+
openclawVersion="2026.2.9"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
My tasks (filtered):
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
mcporter call sutraha-hq.sutraha_get_my_tasks \
|
|
182
|
+
sessionKey="agent:main:main" \
|
|
183
|
+
limit=10 \
|
|
184
|
+
statuses='["assigned","in_progress","review","blocked"]' \
|
|
185
|
+
includeDone=false
|
|
186
|
+
```
|
|
141
187
|
|
|
142
188
|
## CLI
|
|
143
189
|
|
|
@@ -150,4 +196,5 @@ export SUTRAHA_WORKSPACE_ID=your_workspace_id
|
|
|
150
196
|
npx @sutraha/mcp-server cli agents list
|
|
151
197
|
npx @sutraha/mcp-server cli tasks create --title "Fix bug" --priority high
|
|
152
198
|
npx @sutraha/mcp-server cli tasks update-status --id <taskId> --status done
|
|
199
|
+
npx @sutraha/mcp-server cli tasks update-status --id <taskId> --status blocked --blocked-reason "Waiting on env keys"
|
|
153
200
|
```
|
package/dist/cli.js
CHANGED
|
@@ -13,7 +13,7 @@ import { api } from "./api.js";
|
|
|
13
13
|
* sutraha-cli agents list
|
|
14
14
|
* sutraha-cli tasks list
|
|
15
15
|
* sutraha-cli tasks create --title "Fix bug" --priority high
|
|
16
|
-
* sutraha-cli tasks update-status --id <id> --status
|
|
16
|
+
* sutraha-cli tasks update-status --id <id> --status blocked --blocked-reason "Waiting on API key"
|
|
17
17
|
* sutraha-cli chat send --session-id chat:key --message "Hello"
|
|
18
18
|
*/
|
|
19
19
|
import { createClientFromEnv } from "./convex-client.js";
|
|
@@ -25,8 +25,8 @@ Sutraha HQ CLI
|
|
|
25
25
|
Usage: sutraha-cli <resource> <action> [options]
|
|
26
26
|
|
|
27
27
|
Resources:
|
|
28
|
-
agents list | get --id <id> | heartbeat --id <id> | status --id <id> --status <active|idle|error|offline>
|
|
29
|
-
tasks list | get --id <id> | create --title <t> | update-status --id <id> --status <s>
|
|
28
|
+
agents list | get --id <id> | create --name <n> --role <r> [--emoji <e>] [--session-key <sk>] [--external-agent-id <id>] | heartbeat --id <id> | status --id <id> --status <active|idle|error|offline>
|
|
29
|
+
tasks list | get --id <id> | create --title <t> | update-status --id <id> --status <s> [--blocked-reason <text>]
|
|
30
30
|
messages list --task-id <id> | send --task-id <id> --agent-id <id> --content <msg>
|
|
31
31
|
chat send --session-id <sid> --message <msg>
|
|
32
32
|
broadcasts list
|
|
@@ -74,6 +74,22 @@ async function main() {
|
|
|
74
74
|
id: requireArg(rest, "--id", "agentId"),
|
|
75
75
|
});
|
|
76
76
|
break;
|
|
77
|
+
case "create": {
|
|
78
|
+
const name = requireArg(rest, "--name", "name");
|
|
79
|
+
const role = requireArg(rest, "--role", "role");
|
|
80
|
+
const emoji = getArg(rest, "--emoji") ?? "🤖";
|
|
81
|
+
const sessionKey = getArg(rest, "--session-key") ??
|
|
82
|
+
`agent:${name.toLowerCase().replace(/\s+/g, "-")}:main`;
|
|
83
|
+
const externalAgentId = getArg(rest, "--external-agent-id");
|
|
84
|
+
result = await client.mutation(api.agents.create, {
|
|
85
|
+
name: name.trim(),
|
|
86
|
+
role: role.trim(),
|
|
87
|
+
emoji,
|
|
88
|
+
sessionKey,
|
|
89
|
+
externalAgentId: sessionKey.trim(),
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
77
93
|
case "heartbeat":
|
|
78
94
|
await client.mutation(api.agents.updateHeartbeat, {
|
|
79
95
|
id: requireArg(rest, "--id", "agentId"),
|
|
@@ -115,6 +131,7 @@ async function main() {
|
|
|
115
131
|
await client.mutation(api.tasks.updateStatus, {
|
|
116
132
|
id: requireArg(rest, "--id", "taskId"),
|
|
117
133
|
status: requireArg(rest, "--status", "status"),
|
|
134
|
+
blockedReason: getArg(rest, "--blocked-reason"),
|
|
118
135
|
});
|
|
119
136
|
result = { ok: true };
|
|
120
137
|
break;
|
|
@@ -146,14 +163,10 @@ async function main() {
|
|
|
146
163
|
case "chat":
|
|
147
164
|
switch (action) {
|
|
148
165
|
case "send":
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
role: "assistant",
|
|
154
|
-
state: "completed",
|
|
155
|
-
});
|
|
156
|
-
result = { ok: true };
|
|
166
|
+
result = {
|
|
167
|
+
ok: false,
|
|
168
|
+
error: "chat is OpenClaw WS-only; CLI chat send is deprecated",
|
|
169
|
+
};
|
|
157
170
|
break;
|
|
158
171
|
default:
|
|
159
172
|
console.error(`Unknown chat action: ${action}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,14 +13,58 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
import { api } from "./api.js";
|
|
15
15
|
import { createClientFromEnv } from "./convex-client.js";
|
|
16
|
+
const MCP_SERVER_VERSION = "0.6.0";
|
|
17
|
+
const MCP_PROTOCOL_VERSION = "0.1.0";
|
|
18
|
+
const MCP_SESSION_KEY_MODE = "sessionKey_preferred";
|
|
16
19
|
const client = createClientFromEnv();
|
|
20
|
+
async function resolveAgentId(input) {
|
|
21
|
+
const { agentId, sessionKey } = input;
|
|
22
|
+
if (sessionKey) {
|
|
23
|
+
const agent = await client.query(api.agents.getBySessionKey, { sessionKey });
|
|
24
|
+
if (!agent?._id) {
|
|
25
|
+
throw new Error(`Agent not found for sessionKey=${sessionKey}. Register the agent in Sutraha HQ first.`);
|
|
26
|
+
}
|
|
27
|
+
return agent._id;
|
|
28
|
+
}
|
|
29
|
+
if (agentId) {
|
|
30
|
+
const agent = await client.query(api.agents.getById, { id: agentId });
|
|
31
|
+
if (!agent?._id) {
|
|
32
|
+
throw new Error(`Agent not found for agentId=${agentId}. This usually means you're using a stale ID or pointing at the wrong Convex deployment.`);
|
|
33
|
+
}
|
|
34
|
+
return agent._id;
|
|
35
|
+
}
|
|
36
|
+
throw new Error("Missing agent identity. Provide sessionKey (preferred).");
|
|
37
|
+
}
|
|
17
38
|
const server = new McpServer({
|
|
18
39
|
name: "sutraha-hq",
|
|
19
|
-
version:
|
|
40
|
+
version: MCP_SERVER_VERSION,
|
|
20
41
|
});
|
|
21
42
|
// ═══════════════════════════════════════════════════════════
|
|
22
43
|
// Agent Tools
|
|
23
44
|
// ═══════════════════════════════════════════════════════════
|
|
45
|
+
server.tool("sutraha_get_server_info", "Get Sutraha MCP server compatibility info (version, protocol, and feature flags). Call this once at startup to detect mismatches.", {}, async () => {
|
|
46
|
+
const info = {
|
|
47
|
+
serverName: "sutraha-hq",
|
|
48
|
+
mcpServerVersion: MCP_SERVER_VERSION,
|
|
49
|
+
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
50
|
+
identityMode: MCP_SESSION_KEY_MODE,
|
|
51
|
+
deprecatedInputFields: ["agentId"],
|
|
52
|
+
capabilities: {
|
|
53
|
+
supportsSessionKey: true,
|
|
54
|
+
supportsAgentPulse: true,
|
|
55
|
+
supportsHeartbeat: true,
|
|
56
|
+
supportsStartEndTaskSession: true,
|
|
57
|
+
},
|
|
58
|
+
recommendations: {
|
|
59
|
+
pinNpxVersion: true,
|
|
60
|
+
preferSessionKey: true,
|
|
61
|
+
keepLocalFiles: ["SUTRAHA_PROTOCOL.md", "HEARTBEAT.md"],
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
content: [{ type: "text", text: JSON.stringify(info, null, 2) }],
|
|
66
|
+
};
|
|
67
|
+
});
|
|
24
68
|
server.tool("sutraha_list_agents", "List all active agents in the workspace", {}, async () => {
|
|
25
69
|
const agents = await client.query(api.agents.list);
|
|
26
70
|
return {
|
|
@@ -41,23 +85,77 @@ server.tool("sutraha_get_agent_by_session_key", "Find an agent by its session ke
|
|
|
41
85
|
content: [{ type: "text", text: JSON.stringify(agent, null, 2) }],
|
|
42
86
|
};
|
|
43
87
|
});
|
|
88
|
+
server.tool("sutraha_create_agent", "Create a new agent in the workspace. Requires workspace owner. Use this to register an agent so it can identify via sessionKey (e.g. agent:main:main) and send heartbeats/pulses.", {
|
|
89
|
+
name: z.string().describe("Display name for the agent"),
|
|
90
|
+
role: z.string().describe("Short role description (e.g. 'Backend engineer', 'Code reviewer')"),
|
|
91
|
+
emoji: z
|
|
92
|
+
.string()
|
|
93
|
+
.optional()
|
|
94
|
+
.describe("Emoji for the agent (default: 🤖)"),
|
|
95
|
+
sessionKey: z
|
|
96
|
+
.string()
|
|
97
|
+
.optional()
|
|
98
|
+
.describe("Unique session key (e.g. agent:main:main). Defaults to agent:<slug(name)>:main"),
|
|
99
|
+
externalAgentId: z
|
|
100
|
+
.string()
|
|
101
|
+
.optional()
|
|
102
|
+
.describe("External system agent ID for linking"),
|
|
103
|
+
}, async ({ name, role, emoji, sessionKey, externalAgentId }) => {
|
|
104
|
+
const trimmedName = name.trim();
|
|
105
|
+
const trimmedRole = role.trim();
|
|
106
|
+
const defaultSessionKey = `agent:${trimmedName.toLowerCase().replace(/\s+/g, "-")}:main`;
|
|
107
|
+
const id = await client.mutation(api.agents.create, {
|
|
108
|
+
name: trimmedName,
|
|
109
|
+
role: trimmedRole,
|
|
110
|
+
emoji: emoji ?? "🤖",
|
|
111
|
+
sessionKey: sessionKey ?? defaultSessionKey,
|
|
112
|
+
...(externalAgentId ? { externalAgentId: externalAgentId.trim() } : {}),
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
content: [
|
|
116
|
+
{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: `Agent created with ID: ${id}. Use sessionKey "${sessionKey ?? defaultSessionKey}" to identify this agent in other tools.`,
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
};
|
|
122
|
+
});
|
|
44
123
|
server.tool("sutraha_update_agent_status", "Update an agent's status", {
|
|
45
|
-
agentId: z
|
|
124
|
+
agentId: z
|
|
125
|
+
.string()
|
|
126
|
+
.optional()
|
|
127
|
+
.describe("Deprecated: prefer sessionKey"),
|
|
128
|
+
sessionKey: z
|
|
129
|
+
.string()
|
|
130
|
+
.optional()
|
|
131
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
46
132
|
status: z
|
|
47
133
|
.enum(["active", "idle", "error", "offline"])
|
|
48
134
|
.describe("New status"),
|
|
49
|
-
}, async ({ agentId, status }) => {
|
|
50
|
-
await
|
|
135
|
+
}, async ({ agentId, sessionKey, status }) => {
|
|
136
|
+
const id = await resolveAgentId({ agentId, sessionKey });
|
|
137
|
+
await client.mutation(api.agents.updateStatus, { id, status });
|
|
51
138
|
return {
|
|
52
139
|
content: [{ type: "text", text: `Agent status updated to ${status}` }],
|
|
53
140
|
};
|
|
54
141
|
});
|
|
55
|
-
server.tool("sutraha_agent_heartbeat", "Send a heartbeat for an agent to indicate it's alive", {
|
|
56
|
-
|
|
142
|
+
server.tool("sutraha_agent_heartbeat", "Send a heartbeat for an agent to indicate it's alive", {
|
|
143
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
144
|
+
sessionKey: z
|
|
145
|
+
.string()
|
|
146
|
+
.optional()
|
|
147
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
148
|
+
}, async ({ agentId, sessionKey }) => {
|
|
149
|
+
const id = await resolveAgentId({ agentId, sessionKey });
|
|
150
|
+
await client.rawMutation(api.agents.updateHeartbeat, { id });
|
|
57
151
|
return { content: [{ type: "text", text: "Heartbeat sent" }] };
|
|
58
152
|
});
|
|
59
153
|
server.tool("sutraha_agent_pulse", "Send a pulse with status and optional telemetry. Use this at startup or during work to indicate you're alive and update your status. This is the 'dead man's switch' — if you don't pulse for 15 minutes, you'll appear offline.", {
|
|
60
|
-
agentId: z.string().describe("
|
|
154
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
155
|
+
sessionKey: z
|
|
156
|
+
.string()
|
|
157
|
+
.optional()
|
|
158
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
61
159
|
status: z
|
|
62
160
|
.enum(["idle", "active", "error", "offline"])
|
|
63
161
|
.describe("Current status"),
|
|
@@ -102,7 +200,7 @@ server.tool("sutraha_agent_pulse", "Send a pulse with status and optional teleme
|
|
|
102
200
|
})
|
|
103
201
|
.optional()
|
|
104
202
|
.describe("Optional telemetry data"),
|
|
105
|
-
}, async ({ agentId, status, telemetry, currentModel, openclawVersion, totalTokensUsed, lastRunDurationMs, lastRunCost }) => {
|
|
203
|
+
}, async ({ agentId, sessionKey, status, telemetry, currentModel, openclawVersion, totalTokensUsed, lastRunDurationMs, lastRunCost, }) => {
|
|
106
204
|
const mergedTelemetry = telemetry || currentModel || openclawVersion || totalTokensUsed || lastRunDurationMs || lastRunCost
|
|
107
205
|
? {
|
|
108
206
|
...(telemetry ?? {}),
|
|
@@ -113,8 +211,9 @@ server.tool("sutraha_agent_pulse", "Send a pulse with status and optional teleme
|
|
|
113
211
|
...(lastRunCost ? { lastRunCost } : {}),
|
|
114
212
|
}
|
|
115
213
|
: undefined;
|
|
214
|
+
const id = await resolveAgentId({ agentId, sessionKey });
|
|
116
215
|
await client.rawMutation(api.agents.agentPulse, {
|
|
117
|
-
id
|
|
216
|
+
id,
|
|
118
217
|
status,
|
|
119
218
|
telemetry: mergedTelemetry,
|
|
120
219
|
});
|
|
@@ -128,11 +227,16 @@ server.tool("sutraha_agent_pulse", "Send a pulse with status and optional teleme
|
|
|
128
227
|
};
|
|
129
228
|
});
|
|
130
229
|
server.tool("sutraha_start_task_session", "Mark that you've started actively working on a task. This links you to the task and logs an activity. Call this when you pick up a task.", {
|
|
131
|
-
agentId: z.string().describe("
|
|
230
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
231
|
+
sessionKey: z
|
|
232
|
+
.string()
|
|
233
|
+
.optional()
|
|
234
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
132
235
|
taskId: z.string().describe("Task ID you're starting work on"),
|
|
133
|
-
}, async ({ agentId, taskId }) => {
|
|
236
|
+
}, async ({ agentId, sessionKey, taskId }) => {
|
|
237
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
134
238
|
await client.rawMutation(api.agents.startTaskSession, {
|
|
135
|
-
agentId,
|
|
239
|
+
agentId: resolvedAgentId,
|
|
136
240
|
taskId,
|
|
137
241
|
});
|
|
138
242
|
return {
|
|
@@ -145,7 +249,11 @@ server.tool("sutraha_start_task_session", "Mark that you've started actively wor
|
|
|
145
249
|
};
|
|
146
250
|
});
|
|
147
251
|
server.tool("sutraha_end_task_session", "Mark that you've finished your current task session. Clears your currentTaskId and updates status. Call this at the end of every run (success or error).", {
|
|
148
|
-
agentId: z.string().describe("
|
|
252
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
253
|
+
sessionKey: z
|
|
254
|
+
.string()
|
|
255
|
+
.optional()
|
|
256
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
149
257
|
status: z
|
|
150
258
|
.enum(["idle", "error"])
|
|
151
259
|
.describe("Final status (idle = success, error = failed)"),
|
|
@@ -169,9 +277,10 @@ server.tool("sutraha_end_task_session", "Mark that you've finished your current
|
|
|
169
277
|
.string()
|
|
170
278
|
.optional()
|
|
171
279
|
.describe("Short human-readable summary of what was done"),
|
|
172
|
-
}, async ({ agentId, status, telemetry, runSummary }) => {
|
|
280
|
+
}, async ({ agentId, sessionKey, status, telemetry, runSummary }) => {
|
|
281
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
173
282
|
await client.rawMutation(api.agents.endTaskSession, {
|
|
174
|
-
agentId,
|
|
283
|
+
agentId: resolvedAgentId,
|
|
175
284
|
status,
|
|
176
285
|
telemetry,
|
|
177
286
|
runSummary,
|
|
@@ -203,8 +312,56 @@ server.tool("sutraha_list_members", "List workspace members (human users). Use t
|
|
|
203
312
|
// ═══════════════════════════════════════════════════════════
|
|
204
313
|
// Task Tools
|
|
205
314
|
// ═══════════════════════════════════════════════════════════
|
|
206
|
-
server.tool("sutraha_list_tasks", "List
|
|
207
|
-
|
|
315
|
+
server.tool("sutraha_list_tasks", "List tasks in the workspace (use filters to keep context small).", {
|
|
316
|
+
limit: z
|
|
317
|
+
.number()
|
|
318
|
+
.int()
|
|
319
|
+
.positive()
|
|
320
|
+
.optional()
|
|
321
|
+
.describe("Max number of tasks to return (recommended: 20-50)"),
|
|
322
|
+
status: z
|
|
323
|
+
.enum(["inbox", "assigned", "in_progress", "review", "done", "blocked"])
|
|
324
|
+
.optional()
|
|
325
|
+
.describe("Filter by a single status"),
|
|
326
|
+
statuses: z
|
|
327
|
+
.array(z.enum([
|
|
328
|
+
"inbox",
|
|
329
|
+
"assigned",
|
|
330
|
+
"in_progress",
|
|
331
|
+
"review",
|
|
332
|
+
"done",
|
|
333
|
+
"blocked",
|
|
334
|
+
]))
|
|
335
|
+
.optional()
|
|
336
|
+
.describe("Filter by multiple statuses"),
|
|
337
|
+
assigneeId: z
|
|
338
|
+
.string()
|
|
339
|
+
.optional()
|
|
340
|
+
.describe("Filter tasks assigned to this Convex agentId"),
|
|
341
|
+
assigneeSessionKey: z
|
|
342
|
+
.string()
|
|
343
|
+
.optional()
|
|
344
|
+
.describe("Preferred: filter tasks assigned to this agent sessionKey"),
|
|
345
|
+
includeDone: z
|
|
346
|
+
.boolean()
|
|
347
|
+
.optional()
|
|
348
|
+
.describe("If false, exclude done tasks (default: true)"),
|
|
349
|
+
since: z
|
|
350
|
+
.number()
|
|
351
|
+
.optional()
|
|
352
|
+
.describe("Only include tasks updated after this unix ms timestamp"),
|
|
353
|
+
}, async ({ limit, status, statuses, assigneeId, assigneeSessionKey, includeDone, since, }) => {
|
|
354
|
+
const resolvedAssigneeId = assigneeSessionKey
|
|
355
|
+
? await resolveAgentId({ sessionKey: assigneeSessionKey })
|
|
356
|
+
: assigneeId;
|
|
357
|
+
const tasks = await client.query(api.tasks.list, {
|
|
358
|
+
limit,
|
|
359
|
+
status,
|
|
360
|
+
statuses,
|
|
361
|
+
assigneeId: resolvedAssigneeId,
|
|
362
|
+
includeDone,
|
|
363
|
+
since,
|
|
364
|
+
});
|
|
208
365
|
return {
|
|
209
366
|
content: [{ type: "text", text: JSON.stringify(tasks, null, 2) }],
|
|
210
367
|
};
|
|
@@ -213,8 +370,38 @@ server.tool("sutraha_get_task", "Get a task by ID with full details", { taskId:
|
|
|
213
370
|
const task = await client.query(api.tasks.getById, { id: taskId });
|
|
214
371
|
return { content: [{ type: "text", text: JSON.stringify(task, null, 2) }] };
|
|
215
372
|
});
|
|
216
|
-
server.tool("sutraha_get_my_tasks", "Get tasks assigned to a specific agent", {
|
|
217
|
-
|
|
373
|
+
server.tool("sutraha_get_my_tasks", "Get tasks assigned to a specific agent", {
|
|
374
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
375
|
+
sessionKey: z
|
|
376
|
+
.string()
|
|
377
|
+
.optional()
|
|
378
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
379
|
+
limit: z.number().int().positive().optional().describe("Max tasks to return"),
|
|
380
|
+
status: z
|
|
381
|
+
.enum(["inbox", "assigned", "in_progress", "review", "done", "blocked"])
|
|
382
|
+
.optional(),
|
|
383
|
+
statuses: z
|
|
384
|
+
.array(z.enum([
|
|
385
|
+
"inbox",
|
|
386
|
+
"assigned",
|
|
387
|
+
"in_progress",
|
|
388
|
+
"review",
|
|
389
|
+
"done",
|
|
390
|
+
"blocked",
|
|
391
|
+
]))
|
|
392
|
+
.optional(),
|
|
393
|
+
includeDone: z.boolean().optional(),
|
|
394
|
+
since: z.number().optional(),
|
|
395
|
+
}, async ({ agentId, sessionKey, limit, status, statuses, includeDone, since }) => {
|
|
396
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
397
|
+
const tasks = await client.query(api.tasks.getByAssignee, {
|
|
398
|
+
agentId: resolvedAgentId,
|
|
399
|
+
limit,
|
|
400
|
+
status,
|
|
401
|
+
statuses,
|
|
402
|
+
includeDone,
|
|
403
|
+
since,
|
|
404
|
+
});
|
|
218
405
|
return {
|
|
219
406
|
content: [{ type: "text", text: JSON.stringify(tasks, null, 2) }],
|
|
220
407
|
};
|
|
@@ -231,8 +418,13 @@ server.tool("sutraha_create_task", "Create a new task in the workspace. Pass you
|
|
|
231
418
|
.optional()
|
|
232
419
|
.describe("Priority level (default: medium)"),
|
|
233
420
|
assigneeIds: z.array(z.string()).optional().describe("Agent IDs to assign"),
|
|
234
|
-
agentId: z.string().describe("
|
|
235
|
-
|
|
421
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
422
|
+
sessionKey: z
|
|
423
|
+
.string()
|
|
424
|
+
.optional()
|
|
425
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
426
|
+
}, async ({ title, description, status, priority, assigneeIds, agentId, sessionKey }) => {
|
|
427
|
+
const actingAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
236
428
|
const normalizedAssigneeIds = assigneeIds ?? [];
|
|
237
429
|
const normalizedStatus = normalizedAssigneeIds.length > 0 &&
|
|
238
430
|
(status === undefined || status === "inbox")
|
|
@@ -245,7 +437,7 @@ server.tool("sutraha_create_task", "Create a new task in the workspace. Pass you
|
|
|
245
437
|
priority: priority ?? "medium",
|
|
246
438
|
assigneeIds: normalizedAssigneeIds,
|
|
247
439
|
dueAt: null,
|
|
248
|
-
actingAgentId
|
|
440
|
+
actingAgentId,
|
|
249
441
|
});
|
|
250
442
|
return { content: [{ type: "text", text: `Task created with ID: ${id}` }] };
|
|
251
443
|
});
|
|
@@ -258,12 +450,17 @@ server.tool("sutraha_update_task", "Update a task's fields. Pass your agentId so
|
|
|
258
450
|
.optional()
|
|
259
451
|
.describe("New priority"),
|
|
260
452
|
assigneeIds: z.array(z.string()).optional().describe("New assignee IDs"),
|
|
261
|
-
agentId: z.string().describe("
|
|
262
|
-
|
|
453
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
454
|
+
sessionKey: z
|
|
455
|
+
.string()
|
|
456
|
+
.optional()
|
|
457
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
458
|
+
}, async ({ taskId, agentId, sessionKey, ...updates }) => {
|
|
459
|
+
const actingAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
263
460
|
await client.mutation(api.tasks.update, {
|
|
264
461
|
id: taskId,
|
|
265
462
|
...updates,
|
|
266
|
-
actingAgentId
|
|
463
|
+
actingAgentId,
|
|
267
464
|
});
|
|
268
465
|
return { content: [{ type: "text", text: `Task ${taskId} updated` }] };
|
|
269
466
|
});
|
|
@@ -272,12 +469,22 @@ server.tool("sutraha_update_task_status", "Change a task's status. Pass your age
|
|
|
272
469
|
status: z
|
|
273
470
|
.enum(["inbox", "assigned", "in_progress", "review", "done", "blocked"])
|
|
274
471
|
.describe("New status"),
|
|
275
|
-
|
|
276
|
-
|
|
472
|
+
blockedReason: z
|
|
473
|
+
.string()
|
|
474
|
+
.optional()
|
|
475
|
+
.describe("Optional blocker reason. Used when status is blocked."),
|
|
476
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
477
|
+
sessionKey: z
|
|
478
|
+
.string()
|
|
479
|
+
.optional()
|
|
480
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
481
|
+
}, async ({ taskId, status, blockedReason, agentId, sessionKey }) => {
|
|
482
|
+
const actingAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
277
483
|
await client.mutation(api.tasks.updateStatus, {
|
|
278
484
|
id: taskId,
|
|
279
485
|
status,
|
|
280
|
-
|
|
486
|
+
blockedReason,
|
|
487
|
+
actingAgentId,
|
|
281
488
|
});
|
|
282
489
|
return {
|
|
283
490
|
content: [{ type: "text", text: `Task status updated to ${status}` }],
|
|
@@ -292,30 +499,37 @@ server.tool("sutraha_list_messages", "List comments/messages on a task", { taskI
|
|
|
292
499
|
content: [{ type: "text", text: JSON.stringify(messages, null, 2) }],
|
|
293
500
|
};
|
|
294
501
|
});
|
|
295
|
-
server.tool("sutraha_send_message", "Post a comment on a task (supports @mentions)", {
|
|
502
|
+
server.tool("sutraha_send_message", "Post a comment on a task (supports @mentions like @Joy or @Jarvis).", {
|
|
296
503
|
content: z
|
|
297
504
|
.string()
|
|
298
|
-
.describe("Message content (use @
|
|
505
|
+
.describe("Message content (use @FirstName or @AgentName for mentions)"),
|
|
299
506
|
taskId: z.string().describe("Task ID to comment on"),
|
|
300
|
-
agentId: z.string().describe("
|
|
301
|
-
|
|
302
|
-
await client.mutation(api.messages.create, { content, taskId, agentId });
|
|
303
|
-
return { content: [{ type: "text", text: "Message sent" }] };
|
|
304
|
-
});
|
|
305
|
-
server.tool("sutraha_send_chat", "Send a chat message as an agent", {
|
|
306
|
-
sessionId: z
|
|
507
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
508
|
+
sessionKey: z
|
|
307
509
|
.string()
|
|
308
|
-
.
|
|
309
|
-
|
|
310
|
-
}, async ({
|
|
311
|
-
await
|
|
312
|
-
|
|
510
|
+
.optional()
|
|
511
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
512
|
+
}, async ({ content, taskId, agentId, sessionKey }) => {
|
|
513
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
514
|
+
await client.mutation(api.messages.create, {
|
|
313
515
|
content,
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
state: "completed",
|
|
516
|
+
taskId,
|
|
517
|
+
agentId: resolvedAgentId,
|
|
317
518
|
});
|
|
318
|
-
return { content: [{ type: "text", text: "
|
|
519
|
+
return { content: [{ type: "text", text: "Message sent" }] };
|
|
520
|
+
});
|
|
521
|
+
server.tool("sutraha_send_chat", "DEPRECATED: Sutraha HQ chat is now OpenClaw WS-only. Use OpenClaw chat APIs instead.", {
|
|
522
|
+
sessionId: z.string().describe("Unused. Kept for compatibility."),
|
|
523
|
+
content: z.string().describe("Unused. Kept for compatibility."),
|
|
524
|
+
}, async () => {
|
|
525
|
+
return {
|
|
526
|
+
content: [
|
|
527
|
+
{
|
|
528
|
+
type: "text",
|
|
529
|
+
text: "sutraha_send_chat is deprecated (chat is OpenClaw WS-only).",
|
|
530
|
+
},
|
|
531
|
+
],
|
|
532
|
+
};
|
|
319
533
|
});
|
|
320
534
|
// ═══════════════════════════════════════════════════════════
|
|
321
535
|
// Broadcast Tools
|
|
@@ -328,13 +542,18 @@ server.tool("sutraha_list_broadcasts", "List workspace broadcasts", {}, async ()
|
|
|
328
542
|
});
|
|
329
543
|
server.tool("sutraha_respond_to_broadcast", "Respond to a workspace broadcast. Creates a message and links it as a broadcast response.", {
|
|
330
544
|
broadcastId: z.string().describe("Broadcast ID"),
|
|
331
|
-
agentId: z.string().describe("
|
|
545
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
546
|
+
sessionKey: z
|
|
547
|
+
.string()
|
|
548
|
+
.optional()
|
|
549
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
332
550
|
content: z.string().describe("Response content"),
|
|
333
|
-
}, async ({ broadcastId, agentId, content }) => {
|
|
551
|
+
}, async ({ broadcastId, agentId, sessionKey, content }) => {
|
|
552
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
334
553
|
// First create a message attributed to the agent
|
|
335
554
|
const messageId = await client.mutation(api.messages.create, {
|
|
336
555
|
taskId: null,
|
|
337
|
-
agentId,
|
|
556
|
+
agentId: resolvedAgentId,
|
|
338
557
|
content,
|
|
339
558
|
});
|
|
340
559
|
// Then link it to the broadcast
|
|
@@ -383,12 +602,17 @@ server.tool("sutraha_upsert_document", "Create or update a document in the works
|
|
|
383
602
|
.describe("Document status (default: draft)"),
|
|
384
603
|
taskId: z.string().optional().describe("Link to a task"),
|
|
385
604
|
folderId: z.string().optional().describe("Folder ID"),
|
|
386
|
-
agentId: z.string().describe("
|
|
605
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
606
|
+
sessionKey: z
|
|
607
|
+
.string()
|
|
608
|
+
.optional()
|
|
609
|
+
.describe("Preferred: agent session key (for attribution)"),
|
|
387
610
|
isGlobalContext: z
|
|
388
611
|
.boolean()
|
|
389
612
|
.optional()
|
|
390
613
|
.describe("Whether this doc should be injected for all runs"),
|
|
391
|
-
}, async ({ documentId, title, content, type, status, taskId, folderId, agentId, isGlobalContext, }) => {
|
|
614
|
+
}, async ({ documentId, title, content, type, status, taskId, folderId, agentId, sessionKey, isGlobalContext, }) => {
|
|
615
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
392
616
|
const id = await client.mutation(api.documents.upsertDocument, {
|
|
393
617
|
...(documentId ? { id: documentId } : {}),
|
|
394
618
|
title,
|
|
@@ -397,7 +621,7 @@ server.tool("sutraha_upsert_document", "Create or update a document in the works
|
|
|
397
621
|
status: status ?? "draft",
|
|
398
622
|
taskId: taskId ?? null,
|
|
399
623
|
folderId,
|
|
400
|
-
agentId,
|
|
624
|
+
agentId: resolvedAgentId,
|
|
401
625
|
isGlobalContext,
|
|
402
626
|
});
|
|
403
627
|
return {
|
|
@@ -453,15 +677,20 @@ server.tool("sutraha_get_activities_by_agent", "Get activities with optional fil
|
|
|
453
677
|
};
|
|
454
678
|
});
|
|
455
679
|
server.tool("sutraha_get_activities_with_mention", "Get activities where the provided agent was @mentioned in message activity metadata", {
|
|
456
|
-
agentId: z.string().describe("
|
|
680
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
681
|
+
sessionKey: z
|
|
682
|
+
.string()
|
|
683
|
+
.optional()
|
|
684
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
457
685
|
since: z
|
|
458
686
|
.number()
|
|
459
687
|
.optional()
|
|
460
688
|
.describe("Only include activities at or after this timestamp (ms)"),
|
|
461
689
|
limit: z.number().optional().describe("Max results (default 50)"),
|
|
462
|
-
}, async ({ agentId, since, limit }) => {
|
|
690
|
+
}, async ({ agentId, sessionKey, since, limit }) => {
|
|
691
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
463
692
|
const activities = await client.query(api.activities.getWithMention, {
|
|
464
|
-
agentId,
|
|
693
|
+
agentId: resolvedAgentId,
|
|
465
694
|
...(since !== undefined ? { since } : {}),
|
|
466
695
|
...(limit !== undefined ? { limit } : {}),
|
|
467
696
|
});
|
|
@@ -469,9 +698,16 @@ server.tool("sutraha_get_activities_with_mention", "Get activities where the pro
|
|
|
469
698
|
content: [{ type: "text", text: JSON.stringify(activities, null, 2) }],
|
|
470
699
|
};
|
|
471
700
|
});
|
|
472
|
-
server.tool("sutraha_get_unseen_activities", "Get activities that happened since this agent last acknowledged. Use at startup to catch up on what happened while offline.", {
|
|
701
|
+
server.tool("sutraha_get_unseen_activities", "Get activities that happened since this agent last acknowledged. Use at startup to catch up on what happened while offline.", {
|
|
702
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
703
|
+
sessionKey: z
|
|
704
|
+
.string()
|
|
705
|
+
.optional()
|
|
706
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
707
|
+
}, async ({ agentId, sessionKey }) => {
|
|
708
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
473
709
|
const activities = await client.query(api.activities.getUnseen, {
|
|
474
|
-
agentId,
|
|
710
|
+
agentId: resolvedAgentId,
|
|
475
711
|
});
|
|
476
712
|
return {
|
|
477
713
|
content: [
|
|
@@ -484,8 +720,15 @@ server.tool("sutraha_get_unseen_activities", "Get activities that happened since
|
|
|
484
720
|
],
|
|
485
721
|
};
|
|
486
722
|
});
|
|
487
|
-
server.tool("sutraha_ack_activities", "Acknowledge activities as seen. Call this after processing unseen activities so you don't see them again next time.", {
|
|
488
|
-
|
|
723
|
+
server.tool("sutraha_ack_activities", "Acknowledge activities as seen. Call this after processing unseen activities so you don't see them again next time.", {
|
|
724
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
725
|
+
sessionKey: z
|
|
726
|
+
.string()
|
|
727
|
+
.optional()
|
|
728
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
729
|
+
}, async ({ agentId, sessionKey }) => {
|
|
730
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
731
|
+
await client.mutation(api.agents.ackActivities, { agentId: resolvedAgentId });
|
|
489
732
|
return {
|
|
490
733
|
content: [
|
|
491
734
|
{ type: "text", text: "Activities acknowledged. Watermark updated." },
|
|
@@ -495,9 +738,16 @@ server.tool("sutraha_ack_activities", "Acknowledge activities as seen. Call this
|
|
|
495
738
|
// ═══════════════════════════════════════════════════════════
|
|
496
739
|
// Notification Tools
|
|
497
740
|
// ═══════════════════════════════════════════════════════════
|
|
498
|
-
server.tool("sutraha_get_notifications", "Get undelivered @mention notifications for this agent.", {
|
|
741
|
+
server.tool("sutraha_get_notifications", "Get undelivered @mention notifications for this agent.", {
|
|
742
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
743
|
+
sessionKey: z
|
|
744
|
+
.string()
|
|
745
|
+
.optional()
|
|
746
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
747
|
+
}, async ({ agentId, sessionKey }) => {
|
|
748
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
499
749
|
const notifications = await client.query(api.notifications.getUndelivered, {
|
|
500
|
-
agentId,
|
|
750
|
+
agentId: resolvedAgentId,
|
|
501
751
|
});
|
|
502
752
|
return {
|
|
503
753
|
content: [
|
|
@@ -510,8 +760,17 @@ server.tool("sutraha_get_notifications", "Get undelivered @mention notifications
|
|
|
510
760
|
],
|
|
511
761
|
};
|
|
512
762
|
});
|
|
513
|
-
server.tool("sutraha_ack_notifications", "Mark all @mention notifications as delivered for this agent.", {
|
|
514
|
-
|
|
763
|
+
server.tool("sutraha_ack_notifications", "Mark all @mention notifications as delivered for this agent.", {
|
|
764
|
+
agentId: z.string().optional().describe("Deprecated: prefer sessionKey"),
|
|
765
|
+
sessionKey: z
|
|
766
|
+
.string()
|
|
767
|
+
.optional()
|
|
768
|
+
.describe("Preferred: agent session key (e.g. agent:main:main)"),
|
|
769
|
+
}, async ({ agentId, sessionKey }) => {
|
|
770
|
+
const resolvedAgentId = await resolveAgentId({ agentId, sessionKey });
|
|
771
|
+
await client.mutation(api.notifications.markAllDelivered, {
|
|
772
|
+
agentId: resolvedAgentId,
|
|
773
|
+
});
|
|
515
774
|
return {
|
|
516
775
|
content: [
|
|
517
776
|
{ type: "text", text: "All notifications marked as delivered." },
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;AAErC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,8DAA8D;AAC9D,eAAe;AACf,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,yCAAyC,EACzC,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oBAAoB,EACpB,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,kCAAkC,EAClC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EACxD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;QAC3D,UAAU;KACX,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,0BAA0B,EAC1B;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACxC,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC5C,QAAQ,CAAC,YAAY,CAAC;CAC1B,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5B,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,MAAM,EAAE,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,sDAAsD,EACtD,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,kOAAkO,EAClO;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC7C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC5C,QAAQ,CAAC,gBAAgB,CAAC;IAC7B,+EAA+E;IAC/E,oDAAoD;IACpD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACtE,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACvE,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,yBAAyB,CAAC;CACvC,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,EAAE;IACvH,MAAM,eAAe,GACnB,SAAS,IAAI,YAAY,IAAI,eAAe,IAAI,eAAe,IAAI,iBAAiB,IAAI,WAAW;QACjG,CAAC,CAAC;YACE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;QAC9C,EAAE,EAAE,OAAO;QACX,MAAM;QACN,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,sBAAsB,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;aACpF;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,0IAA0I,EAC1I;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC/D,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5B,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACpD,OAAO;QACP,MAAM;KACP,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,8DAA8D,MAAM,EAAE;aAC7E;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,0JAA0J,EAC1J;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC7C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACvB,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC1D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACnE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wBAAwB,CAAC;QACrC,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACvE,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,yBAAyB,CAAC;IACtC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;IACnD,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE;QAClD,OAAO;QACP,MAAM;QACN,SAAS;QACT,UAAU;KACX,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,8BAA8B,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;aAC5F;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,sDAAsD;AACtD,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,0MAA0M,EAC1M,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAC5B,CAAC,CAAkD,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;QAChD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC,CACF,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,cAAc;AACd,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,iCAAiC,EACjC,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,oCAAoC,EACpC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,wCAAwC,EACxC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,6FAA6F,EAC7F;IACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/D,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACvE,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACzE,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IACvE,MAAM,qBAAqB,GAAG,WAAW,IAAI,EAAE,CAAC;IAChD,MAAM,gBAAgB,GACpB,qBAAqB,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,CAAC;QAC1C,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAE1B,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;QACjD,KAAK;QACL,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,QAAQ,IAAI,QAAQ;QAC9B,WAAW,EAAE,qBAAqB;QAClC,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,iFAAiF,EACjF;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9D,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,cAAc,CAAC;IAC3B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACzE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;IACxC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;QACtC,EAAE,EAAE,MAAM;QACV,GAAG,OAAO;QACV,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,iFAAiF,EACjF;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IACtC,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACvE,QAAQ,CAAC,YAAY,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACzE,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;QAC5C,EAAE,EAAE,MAAM;QACV,MAAM;QACN,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,uBAAuB;AACvB,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,kCAAkC,EAClC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,+CAA+C,EAC/C;IACE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC7D,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,iCAAiC,EACjC;IACE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAChD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/B,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;QAC3C,SAAS;QACT,OAAO;QACP,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,mBAAmB;AACnB,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,2BAA2B,EAC3B,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,2FAA2F,EAC3F;IACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACjD,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1C,iDAAiD;IACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC3D,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IACH,gCAAgC;IAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;QAChD,WAAW;QACX,SAAS;KACV,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,kBAAkB;AAClB,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,iCAAiC,EACjC;IACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3D,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;CACrD,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM;QACjB,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;YACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;IACP,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,8CAA8C,EAC9C;IACE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC3D,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SAChE,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,eAAe,EAAE,CAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;CAChE,EACD,KAAK,EAAE,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE;QAC7D,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK;QACL,OAAO;QACP,IAAI,EAAE,IAAI,IAAI,MAAM;QACpB,MAAM,EAAE,MAAM,IAAI,OAAO;QACzB,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,QAAQ;QACR,OAAO;QACP,eAAe;KAChB,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,aAAa,EAAE,EAAE;aAC/E;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,kBAAkB;AAClB,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,4CAA4C,EAC5C,EAAE,EACF,KAAK,IAAI,EAAE;IACT,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,2EAA2E,EAC3E;IACE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;QACL,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,eAAe;KAChB,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC5D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAClE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACjD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE;QAC/D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,qFAAqF,EACrF;IACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC3D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAClE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE;QACnE,OAAO;QACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,6HAA6H,EAC7H,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;QAC9D,OAAO;KACR,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,UAAU,CAAC,MAAM,KAAK,CAAC;oBACrB,CAAC,CAAC,8CAA8C;oBAChD,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,wBAAwB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACxF;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,qHAAqH,EACrH,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6CAA6C,EAAE;SACtE;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,sBAAsB;AACtB,8DAA8D;AAE9D,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,wDAAwD,EACxD,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,EAAE;QACzE,OAAO;KACR,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,aAAa,CAAC,MAAM,KAAK,CAAC;oBACxB,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,oBAAoB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aAC1F;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,8DAA8D,EAC9D,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpB,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wCAAwC,EAAE;SACjE;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,8DAA8D;AAC9D,gBAAgB;AAChB,8DAA8D;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|