zapry-openclaw-plugin 0.0.4 → 0.1.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 CHANGED
@@ -6,10 +6,10 @@ Install this plugin to let your OpenClaw agent interact with Zapry through `chan
6
6
 
7
7
  ## Features
8
8
 
9
- - **Messaging** — Send text/media, delete messages, answer callback queries
9
+ - **Messaging** — Send text, link share cards, media, delete messages, answer callback queries
10
10
  - **Receive/Webhook** — Poll updates, manage webhooks, inspect inbound endpoint
11
11
  - **Skills** — Manage SOUL, skills, and derived profile
12
- - **Directory & Groups** — Query chats/groups/members and perform moderation actions
12
+ - **Directory & Groups** — Query chats/groups/members, create/dismiss groups, and perform moderation actions
13
13
  - **Agent Self** — Manage name/description/wallet/privacy and query contacts/friend requests
14
14
  - **Feed & Club** — Query/publish/engage posts and manage clubs
15
15
 
@@ -30,6 +30,34 @@ The npm package name is `zapry-openclaw-plugin`, while the OpenClaw plugin/chann
30
30
  git rm -r --cached node_modules
31
31
  ```
32
32
 
33
+ ## Release
34
+
35
+ 发版**只能手动触发**(`workflow_dispatch`),不会因为 push / tag 自动发版。
36
+
37
+ 1. 在 `main` 上 bump 版本并更新 CHANGELOG,然后推上去:
38
+
39
+ ```bash
40
+ # 编辑 package.json 的 "version" 字段,编辑 CHANGELOG.md
41
+ git add package.json CHANGELOG.md
42
+ git commit -m "chore(plugin): 准备 X.Y.Z 生产发版"
43
+ git push origin main
44
+ ```
45
+
46
+ 2. 打开 GitHub → Actions → **Release** workflow → **Run workflow**:
47
+
48
+ - **version**:填写 `X.Y.Z`(不要带 `v` 前缀,必须与 `package.json` 中的 `version` 完全一致)
49
+ - **dry_run**:勾选可干跑(只跑 build + `npm publish --dry-run`,不上 npm、不打 tag、不建 Release)
50
+
51
+ 3. workflow 会自动:
52
+ - 校验输入版本号与 `package.json` 一致
53
+ - 校验远程不存在同名 tag
54
+ - `npm ci && npm run build`
55
+ - `npm publish --provenance --access public`(OIDC Trusted Publishing)
56
+ - 由 workflow 内部创建并推送 `vX.Y.Z` tag
57
+ - 基于 commit 自动生成 GitHub Release
58
+
59
+ npm 发布走 npmjs.com 的 Trusted Publisher(OIDC),不需要配置 `NPM_TOKEN`。首次启用请在 npmjs.com 的包设置里把当前仓库配成 Trusted Publisher。
60
+
33
61
  ## Configure
34
62
 
35
63
  Get a bot token from Zapry BotMother, then add it to your config:
@@ -78,10 +106,10 @@ Agent: → zapry_post { content: "Good morning!" }
78
106
 
79
107
  ### Available Actions
80
108
 
81
- - Messaging: `send-message`, `send-photo`, `send-video`, `send-document`, `send-audio`, `send-voice`, `send-animation`, `generate-audio`, `delete-message`, `answer-callback-query`
109
+ - Messaging: `send-message`, `send-link-card`, `send-photo`, `send-video`, `send-document`, `send-audio`, `send-voice`, `send-animation`, `generate-audio`, `delete-message`, `answer-callback-query`
82
110
  - Receive/Webhook: `get-updates`, `get-file`, `set-webhook`, `get-webhook-info`, `delete-webhook`, `webhooks-token`
83
111
  - Skills: `set-my-soul`, `get-my-soul`, `set-my-skills`, `get-my-skills`, `get-my-profile`
84
- - Group Query & Moderation: `get-my-groups`, `get-my-chats`, `get-chat-member`, `get-chat-members`, `get-chat-member-count`, `get-chat-administrators`, `mute-chat-member`, `kick-chat-member`, `set-chat-title`, `set-chat-description`
112
+ - Group Query & Moderation: `get-my-groups`, `get-my-chats`, `get-chat-member`, `get-chat-members`, `get-chat-member-count`, `get-chat-administrators`, `create-group-chat`, `dismiss-group-chat`, `invite-chat-member`, `mute-chat-member`, `kick-chat-member`, `set-chat-title`, `set-chat-description`
85
113
  - Agent Self Management: `get-me`, `get-user-profile-photos`, `set-my-wallet-address`, `set-my-friend-verify`, `get-my-contacts`, `get-my-friend-requests`, `set-my-name`, `set-my-description`
86
114
  - Feed: `get-trending-posts`, `get-latest-posts`, `get-my-posts`, `search-posts`, `create-post`, `delete-post`, `comment-post`, `like-post`, `share-post`
87
115
  - Club: `get-my-clubs`, `create-club`, `update-club`
@@ -90,16 +118,25 @@ Agent: → zapry_post { content: "Good morning!" }
90
118
 
91
119
  This plugin follows the API reference 1:1. Prefer documented parameter names in `zapry_action` / `zapry_post` tool calls:
92
120
 
93
- - IDs: `chat_id`, `user_id`, `message_id`, `callback_query_id`, `file_id`, `dynamic_id`, `club_id`
94
- - Content: `text`, `photo`, `video`, `document`, `audio`, `voice`, `animation`, `content`
121
+ - IDs: `chat_id`, `user_id`, `user_ids`, `bot_ids`, `message_id`, `callback_query_id`, `file_id`, `dynamic_id`, `club_id`
122
+ - Content: `text`, `url`, `title`, `content`, `icon_url`, `image_url`, `fallback_text`, `photo`, `video`, `document`, `audio`, `voice`, `animation`
95
123
  - Paging: `page`, `page_size`
96
124
  - Bot/Privacy: `name`, `description`, `wallet_address`, `need_verify`, `pending_only`
97
125
  - Skills: `soulMd`, `skills`, `version`, `source`, `agentKey`
98
126
 
99
127
  Common camelCase aliases are still accepted (`chatId`, `userId`, `messageId`, `dynamicId`, `clubId`, `pageSize`, `languageCode`), but snake_case is canonical.
100
128
 
129
+ Link share card:
130
+
131
+ - Use `send-link-card` when an agent should actively share a URL as a structured chat card, not as plain text.
132
+ - Required params: `chat_id`, `url`, `title`; optional params: `content`, `text`, `icon_url`, `image_url`, `source`, `open_mode`, `fallback_text`, `extra`.
133
+ - The card URL must be HTTP(S). `open_mode` defaults to `dapp_browser` and `source` defaults to `agent`.
134
+
101
135
  Group moderation note:
102
136
 
137
+ - `create-group-chat` requires `title`; optional `description`, `avatar`, `user_ids`, `bot_ids`.
138
+ - `invite-chat-member` / `kick-chat-member` require `chat_id` and `user_id`.
139
+ - `dismiss-group-chat` requires `chat_id`; optional `reason`.
103
140
  - `mute-chat-member` only supports `mute` boolean (`true` mute / `false` unmute).
104
141
  - Duration fields like `until_date` / `duration` are not supported by current API contract.
105
142
 
package/dist/index.js CHANGED
@@ -48,16 +48,21 @@ try {
48
48
  catch { }
49
49
  import { zapryPlugin } from "./src/channel.js";
50
50
  import { buildZaprySkillRequestHeaders, getZaprySkillInvocationContext, resolveZaprySkillRequestHeaders, setZapryRuntime, } from "./src/runtime.js";
51
- import { resolveZapryAccount } from "./src/config.js";
51
+ import { resolveDefaultZapryAccountId, resolveZapryAccount } from "./src/config.js";
52
52
  import { handleZapryAction } from "./src/actions.js";
53
+ import { isOwnerInvocation, parseAgentIdFromSessionKey, } from "./src/internal.js";
54
+ import { readFile } from "node:fs/promises";
55
+ import { join as joinPath } from "node:path";
53
56
  const ZAPRY_ACTION_TOOL_ACTIONS = [
54
57
  "send", "send-message",
58
+ "send-link-card",
55
59
  "send-photo", "send-video", "send-document", "send-audio", "send-voice", "send-animation",
56
60
  "generate-audio",
57
61
  "delete-message", "answer-callback-query",
58
62
  "get-file", "get-my-profile", "get-me",
59
63
  "get-my-groups", "get-my-chats",
60
64
  "get-chat-member", "get-chat-members", "get-chat-member-count", "get-chat-administrators",
65
+ "create-group-chat", "dismiss-group-chat", "invite-chat-member",
61
66
  "mute-chat-member", "kick-chat-member", "set-chat-title", "set-chat-description",
62
67
  "get-user-profile-photos", "set-my-wallet-address", "set-my-friend-verify",
63
68
  "get-my-contacts", "get-my-friend-requests",
@@ -82,29 +87,35 @@ async function resolveRuntimeConfig(api) {
82
87
  }
83
88
  return runtimeConfig ?? {};
84
89
  }
85
- function sameUserIdentity(left, right) {
86
- const normalizedLeft = left.trim();
87
- const normalizedRight = right.trim();
88
- if (!normalizedLeft || !normalizedRight) {
89
- return false;
90
+ async function resolveSessionAccountId(api, cfg, sessionKey) {
91
+ const key = `${sessionKey || ""}`.trim();
92
+ if (!key)
93
+ return undefined;
94
+ const agentId = parseAgentIdFromSessionKey(key);
95
+ if (!agentId)
96
+ return undefined;
97
+ const stateDir = api?.runtime?.state?.resolveStateDir?.(process.env);
98
+ if (!stateDir)
99
+ return undefined;
100
+ const storePath = joinPath(stateDir, "agents", agentId, "sessions", "sessions.json");
101
+ try {
102
+ const raw = await readFile(storePath, "utf8");
103
+ const store = JSON.parse(raw);
104
+ const entry = store?.[key];
105
+ const accountId = (typeof entry?.deliveryContext?.accountId === "string" && entry.deliveryContext.accountId.trim()) ||
106
+ (typeof entry?.lastAccountId === "string" && entry.lastAccountId.trim()) ||
107
+ undefined;
108
+ if (accountId)
109
+ return accountId;
90
110
  }
91
- if (normalizedLeft === normalizedRight) {
92
- return true;
111
+ catch {
112
+ // fall back to config-based resolution below
93
113
  }
94
- const leftNum = Number(normalizedLeft);
95
- const rightNum = Number(normalizedRight);
96
- return Number.isFinite(leftNum) && Number.isFinite(rightNum) && leftNum === rightNum;
97
- }
98
- function resolveOwnerIdFromBotToken(botToken) {
99
- const trimmed = String(botToken ?? "").trim();
100
- const separatorIdx = trimmed.indexOf(":");
101
- if (separatorIdx <= 0) {
102
- return "";
103
- }
104
- return trimmed.slice(0, separatorIdx).trim();
114
+ const fallback = resolveDefaultZapryAccountId(cfg);
115
+ return fallback?.trim() ? fallback : undefined;
105
116
  }
106
117
  function resolveToolAccount(toolCtx, cfg, requestedAccountId) {
107
- return resolveZapryAccount(cfg, requestedAccountId ?? toolCtx?.agentAccountId);
118
+ return resolveZapryAccount(cfg, requestedAccountId ?? toolCtx?.agentAccountId ?? resolveDefaultZapryAccountId(cfg));
108
119
  }
109
120
  function resolveToolSenderId(toolCtx) {
110
121
  const senderIdFromToolCtx = String(toolCtx?.requesterSenderId ?? "").trim();
@@ -115,24 +126,21 @@ function resolveToolSenderId(toolCtx) {
115
126
  return String(invocationCtx?.senderId ?? "").trim();
116
127
  }
117
128
  function resolveToolSenderIsOwner(toolCtx, account) {
118
- if (toolCtx?.senderIsOwner === true) {
119
- return true;
120
- }
121
- if (toolCtx?.senderIsOwner === false) {
122
- return false;
123
- }
124
- const senderId = resolveToolSenderId(toolCtx);
125
- const ownerId = resolveOwnerIdFromBotToken(account.botToken);
126
- return sameUserIdentity(senderId, ownerId);
129
+ return isOwnerInvocation({
130
+ senderIsOwner: toolCtx?.senderIsOwner,
131
+ senderId: resolveToolSenderId(toolCtx),
132
+ botToken: account.botToken,
133
+ });
127
134
  }
128
- function shouldExposeZapryOwnerTools(toolCtx, account) {
129
- if (toolCtx?.messageChannel !== "zapry") {
130
- return true;
131
- }
132
- const senderId = resolveToolSenderId(toolCtx);
133
- if (!senderId) {
134
- return false;
135
- }
135
+ function shouldRegisterZapryOwnerTools(toolCtx, account) {
136
+ // Session/tool snapshots can be built before trusted sender context is attached,
137
+ // so register-time owner filtering can hide tools from the real owner. Always
138
+ // register Zapry tools here and rely on execute-time permission checks instead.
139
+ return true;
140
+ }
141
+ function shouldExecuteZapryOwnerTools(toolCtx, account) {
142
+ // Fail closed: owner-only Zapry tools require trusted sender context even when
143
+ // the invocation did not originate from a Zapry-tagged message channel.
136
144
  return resolveToolSenderIsOwner(toolCtx, account);
137
145
  }
138
146
  function resolveToolRequestHeaders(toolCtx) {
@@ -164,10 +172,29 @@ const plugin = {
164
172
  register(api) {
165
173
  setZapryRuntime(api.runtime);
166
174
  api.registerChannel({ plugin: zapryPlugin });
175
+ api.on("before_tool_call", async (event, ctx) => {
176
+ if (event?.toolName !== "zapry_post" && event?.toolName !== "zapry_action") {
177
+ return;
178
+ }
179
+ if (typeof event?.params?.accountId === "string" && event.params.accountId.trim()) {
180
+ return;
181
+ }
182
+ const cfg = await resolveRuntimeConfig(api);
183
+ const sessionAccountId = await resolveSessionAccountId(api, cfg, ctx?.sessionKey);
184
+ if (!sessionAccountId) {
185
+ return;
186
+ }
187
+ return {
188
+ params: {
189
+ ...(event?.params || {}),
190
+ accountId: sessionAccountId,
191
+ },
192
+ };
193
+ });
167
194
  api.registerTool((toolCtx) => {
168
195
  const toolCfg = toolCtx?.config ?? api?.runtime?.config ?? {};
169
196
  const account = resolveToolAccount(toolCtx, toolCfg);
170
- if (!shouldExposeZapryOwnerTools(toolCtx, account)) {
197
+ if (!shouldRegisterZapryOwnerTools(toolCtx, account)) {
171
198
  return null;
172
199
  }
173
200
  return {
@@ -178,6 +205,10 @@ const plugin = {
178
205
  parameters: {
179
206
  type: "object",
180
207
  properties: {
208
+ accountId: {
209
+ type: "string",
210
+ description: "Optional Zapry account id. If omitted and only one account is configured, that account is used.",
211
+ },
181
212
  content: {
182
213
  type: "string",
183
214
  description: "Post text content (required)",
@@ -193,8 +224,11 @@ const plugin = {
193
224
  execute: async (_toolCallId, args) => {
194
225
  try {
195
226
  const cfg = await resolveRuntimeConfig(api);
196
- const account = resolveToolAccount(toolCtx, cfg);
197
- if (!shouldExposeZapryOwnerTools(toolCtx, account)) {
227
+ const reqAccountId = typeof args?.accountId === "string" && args.accountId.trim()
228
+ ? args.accountId.trim()
229
+ : undefined;
230
+ const account = resolveToolAccount(toolCtx, cfg, reqAccountId);
231
+ if (!shouldExecuteZapryOwnerTools(toolCtx, account)) {
198
232
  return ownerDeniedToolResult();
199
233
  }
200
234
  const result = await handleZapryAction({
@@ -218,18 +252,18 @@ const plugin = {
218
252
  api.registerTool((toolCtx) => {
219
253
  const toolCfg = toolCtx?.config ?? api?.runtime?.config ?? {};
220
254
  const account = resolveToolAccount(toolCtx, toolCfg);
221
- if (!shouldExposeZapryOwnerTools(toolCtx, account)) {
255
+ if (!shouldRegisterZapryOwnerTools(toolCtx, account)) {
222
256
  return null;
223
257
  }
224
258
  return {
225
259
  name: "zapry_action",
226
260
  label: "Zapry Platform Action",
227
261
  description: "Execute a Zapry platform action. Use this for: " +
228
- "sending media (send-photo, send-video, send-audio, send-document, send-voice, send-animation) to any chat including groups. " +
262
+ "sending text, link share cards (send-link-card), and media (send-photo, send-video, send-audio, send-document, send-voice, send-animation) to any chat including groups. " +
229
263
  "IMPORTANT: For send-photo, if user asks for an image without providing one, use 'prompt' parameter (e.g. action='send-photo', prompt='bitcoin logo') — image is auto-generated, NO photo/URL needed. " +
230
264
  "profile queries (get-my-profile, get-me), friend operations " +
231
265
  "(get-my-friend-requests, accept-friend-request, add-friend, etc.), " +
232
- "group management (get-chat-members, mute-chat-member, kick-chat-member, etc.), " +
266
+ "group management (create-group-chat, invite-chat-member, kick-chat-member, dismiss-group-chat, get-chat-members, etc.), " +
233
267
  "feed reading (get-trending-posts, get-latest-posts, search-posts, etc.), " +
234
268
  "feed interactions (delete-post, comment-post, like-post, share-post), " +
235
269
  "bot settings (set-my-soul, set-my-skills, set-my-name, etc.), " +
@@ -244,14 +278,32 @@ const plugin = {
244
278
  description: "The Zapry action to execute",
245
279
  enum: [...ZAPRY_ACTION_TOOL_ACTIONS],
246
280
  },
281
+ accountId: {
282
+ type: "string",
283
+ description: "Optional Zapry account id. If omitted and only one account is configured, that account is used.",
284
+ },
247
285
  chat_id: {
248
286
  type: "string",
249
- description: "Chat/group ID (for group management actions like get-chat-members, mute-chat-member, etc.)",
287
+ description: "Chat/group ID (for group management actions like get-chat-members, invite-chat-member, kick-chat-member, dismiss-group-chat, etc.)",
288
+ },
289
+ url: {
290
+ type: "string",
291
+ description: "HTTP(S) URL (for send-link-card or webhook actions)",
250
292
  },
251
293
  user_id: {
252
294
  type: "string",
253
295
  description: "User ID (for friend actions, chat member actions, etc.)",
254
296
  },
297
+ user_ids: {
298
+ type: "array",
299
+ items: { type: "string" },
300
+ description: "Initial member user IDs (for create-group-chat)",
301
+ },
302
+ bot_ids: {
303
+ type: "array",
304
+ items: { type: "string" },
305
+ description: "Initial bot IDs (for create-group-chat)",
306
+ },
255
307
  file_id: {
256
308
  type: "string",
257
309
  description: "File ID (for get-file)",
@@ -294,7 +346,31 @@ const plugin = {
294
346
  },
295
347
  content: {
296
348
  type: "string",
297
- description: "Text content (for comment-post)",
349
+ description: "Text content (for comment-post or send-link-card card summary)",
350
+ },
351
+ title: {
352
+ type: "string",
353
+ description: "Card title (for send-link-card) or group title (for create-group-chat)",
354
+ },
355
+ description: {
356
+ type: "string",
357
+ description: "Group description (for create-group-chat or set-chat-description)",
358
+ },
359
+ reason: {
360
+ type: "string",
361
+ description: "Optional operation reason (for dismiss-group-chat)",
362
+ },
363
+ icon_url: {
364
+ type: "string",
365
+ description: "Card icon URL (for send-link-card)",
366
+ },
367
+ image_url: {
368
+ type: "string",
369
+ description: "Card cover image URL (for send-link-card)",
370
+ },
371
+ fallback_text: {
372
+ type: "string",
373
+ description: "Fallback text for older clients (for send-link-card)",
298
374
  },
299
375
  limit: {
300
376
  type: "number",
@@ -317,7 +393,7 @@ const plugin = {
317
393
  const { action, channel: _ch, accountId: reqAccountId, ...params } = args ?? {};
318
394
  const cfg = await resolveRuntimeConfig(api);
319
395
  const account = resolveToolAccount(toolCtx, cfg, reqAccountId);
320
- if (!shouldExposeZapryOwnerTools(toolCtx, account)) {
396
+ if (!shouldExecuteZapryOwnerTools(toolCtx, account)) {
321
397
  return ownerDeniedToolResult();
322
398
  }
323
399
  const result = await handleZapryAction({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;IAC/C,UAAkB,CAAC,SAAS,GAAG,MAAM,SAAS;QAC7C,CAAC,CAAS;QAAC,CAAC,CAAS;QAAC,CAAC,CAAS;QAAC,CAAC,CAAS;QAAC,CAAC,CAAS;QAAC,CAAC,CAAS;QACjE,GAAG,CAAS;QAAC,GAAG,CAAS;QAAC,GAAG,CAAS;QAAC,GAAG,CAAS;QAAC,GAAG,CAAS;QAAC,GAAG,CAAS;QAC7E,IAAI,GAAG,IAAI,CAAC;QAAC,UAAU,GAAG,KAAK,CAAC;QAChC,YAAY,IAAwB;YAClC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QACrC,QAAQ,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QACtC,KAAK,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QACnC,SAAS,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QACvC,cAAc,CAAC,CAAO,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAe,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,gBAAgB,CAAC,CAAe,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,IAAI,CAAC;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IACxE,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;QACxD,IAAI,KAAK,EAAE,mBAAmB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACvE,KAAK,CAAC,mBAAmB,CAAC,SAAS,GAAG,UAAU,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,yBAAyB,GAAG;IAChC,MAAM,EAAE,cAAc;IACtB,gBAAgB;IAChB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB;IACzF,gBAAgB;IAChB,gBAAgB,EAAE,uBAAuB;IACzC,UAAU,EAAE,gBAAgB,EAAE,QAAQ;IACtC,eAAe,EAAE,cAAc;IAC/B,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB;IACzF,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB;IAC/D,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,sBAAsB;IAChF,yBAAyB,EAAE,uBAAuB,EAAE,sBAAsB;IAC1E,iBAAiB,EAAE,wBAAwB;IAC3C,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe;IAC/E,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe;IAC9D,aAAa,EAAE,oBAAoB;IACnC,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc;IACxE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY;IACxD,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB;IACpF,kBAAkB;CACV,CAAC;AAEX,KAAK,UAAU,oBAAoB,CAAC,GAAQ;IAC1C,MAAM,aAAa,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;IAC3C,MAAM,UAAU,GAAG,aAAa,EAAE,UAAU,CAAC;IAC7C,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,GAAQ,EAAE,GAAQ,EAAE,UAA8B;IACvF,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACrF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GACb,CAAC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjG,CAAC,OAAO,KAAK,EAAE,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACxE,SAAS,CAAC;QACZ,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAY,EAAE,GAAQ,EAAE,kBAA2B;IAC7E,OAAO,mBAAmB,CACxB,GAAG,EACH,kBAAkB,IAAI,OAAO,EAAE,cAAc,IAAI,4BAA4B,CAAC,GAAG,CAAC,CACnF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAY;IACvC,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;IACvD,OAAO,MAAM,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAY,EAAE,OAA6B;IAC3E,OAAO,iBAAiB,CAAC;QACvB,aAAa,EAAE,OAAO,EAAE,aAAa;QACrC,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAY,EAAE,OAA6B;IAChF,iFAAiF;IACjF,8EAA8E;IAC9E,gFAAgF;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAY,EAAE,OAA6B;IAC/E,+EAA+E;IAC/E,wEAAwE;IACxE,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAY;IAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;QACvD,OAAO,6BAA6B,CAAC;YACnC,QAAQ;YACR,UAAU,EAAE,aAAa,EAAE,UAAU;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,+BAA+B,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,gGAAgG;IAC7G,YAAY,EAAE;QACZ,IAAI,EAAE,QAAiB;QACvB,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,CAAC,GAAQ;QACf,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAU,EAAE,GAAQ,EAAE,EAAE;YACxD,IAAI,KAAK,EAAE,QAAQ,KAAK,YAAY,IAAI,KAAK,EAAE,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClF,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAClF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,OAAO;gBACL,MAAM,EAAE;oBACN,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;oBACxB,SAAS,EAAE,gBAAgB;iBAC5B;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC,CAAC,OAAY,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EACT,8EAA8E;oBAC9E,kEAAkE;gBACpE,UAAU,EAAE;oBACV,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,iGAAiG;yBAC/G;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,8BAA8B;yBAC5C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAgB;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;4BAClC,WAAW,EACT,8FAA8F;yBACjG;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;gBACD,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,IAAyB,EAAE,EAAE;oBAChE,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;wBAC5C,MAAM,YAAY,GAChB,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;4BAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;4BACvB,CAAC,CAAC,SAAS,CAAC;wBAChB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;wBAC/D,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;4BACpD,OAAO,qBAAqB,EAAE,CAAC;wBACjC,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;4BACrC,MAAM,EAAE,aAAa;4BACrB,OAAO,EAAE,OAAO;4BAChB,OAAO;4BACP,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;4BACtD,cAAc,EAAE,yBAAyB,CAAC,OAAO,CAAC;yBACnD,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,EAAE,EAAE,KAAK;4BACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;yBACxD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC,CAAC,OAAY,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EACT,iDAAiD;oBACjD,2KAA2K;oBAC3K,uMAAuM;oBACvM,8DAA8D;oBAC9D,qEAAqE;oBACrE,0HAA0H;oBAC1H,2EAA2E;oBAC3E,wEAAwE;oBACxE,gEAAgE;oBAChE,mCAAmC;oBACnC,0EAA0E;oBAC1E,0EAA0E;gBAC5E,UAAU,EAAE;oBACV,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,6BAA6B;4BAC1C,IAAI,EAAE,CAAC,GAAG,yBAAyB,CAAC;yBACrC;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,iGAAiG;yBAC/G;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,oIAAoI;yBAClJ;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,qDAAqD;yBACnE;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,yDAAyD;yBACvE;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,OAAgB;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;4BAClC,WAAW,EAAE,iDAAiD;yBAC/D;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,OAAgB;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;4BAClC,WAAW,EAAE,yCAAyC;yBACvD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,wBAAwB;yBACtC;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,mCAAmC;yBACjD;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,wEAAwE;yBACtF;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,8KAA8K;yBAC5L;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,4KAA4K;yBAC1L;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,qCAAqC;yBACnD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,2CAA2C;yBACzD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,gEAAgE;yBAC9E;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,wEAAwE;yBACtF;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,mEAAmE;yBACjF;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,oDAAoD;yBAClE;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,oCAAoC;yBAClD;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,2CAA2C;yBACzD;wBACD,aAAa,EAAE;4BACb,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,sDAAsD;yBACpE;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,8DAA8D;yBAC5E;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,mCAAmC;yBACjD;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,iCAAiC;yBAC/C;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;oBACpB,oBAAoB,EAAE,IAAI;iBAC3B;gBACD,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,IAAyB,EAAE,EAAE;oBAChE,IAAI,CAAC;wBACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChF,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;wBAC5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;wBAC/D,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;4BACpD,OAAO,qBAAqB,EAAE,CAAC;wBACjC,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;4BACrC,MAAM;4BACN,OAAO,EAAE,OAAO;4BAChB,OAAO;4BACP,MAAM;4BACN,cAAc,EAAE,yBAAyB,CAAC,OAAO,CAAC;yBACnD,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,SAAS,CAAC;4BACpB,EAAE,EAAE,KAAK;4BACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;yBACxD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { ZapryApiClient } from "./api-client.js";
2
+ import { stripZapryTargetPrefix } from "./internal.js";
2
3
  import { spawn } from "node:child_process";
3
4
  import { createHash } from "node:crypto";
4
5
  import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
@@ -7,6 +8,9 @@ import { join as joinPath, resolve as resolvePath } from "node:path";
7
8
  const ACTION_ALIASES = {
8
9
  send: "send",
9
10
  sendmessage: "send-message",
11
+ sendlinkcard: "send-link-card",
12
+ sendlinksharecard: "send-link-card",
13
+ sendlinkshare: "send-link-card",
10
14
  sendphoto: "send-photo",
11
15
  sendvideo: "send-video",
12
16
  senddocument: "send-document",
@@ -32,6 +36,12 @@ const ACTION_ALIASES = {
32
36
  getchatmemberscount: "get-chat-member-count",
33
37
  getchatadministrators: "get-chat-administrators",
34
38
  getchatadmins: "get-chat-administrators",
39
+ creategroupchat: "create-group-chat",
40
+ createchatgroup: "create-group-chat",
41
+ newgroupchat: "create-group-chat",
42
+ dismissgroupchat: "dismiss-group-chat",
43
+ dissolvegroupchat: "dismiss-group-chat",
44
+ deletegroupchat: "dismiss-group-chat",
35
45
  mutechatmember: "mute-chat-member",
36
46
  kickchatmember: "kick-chat-member",
37
47
  invitechatmember: "invite-chat-member",
@@ -137,6 +147,23 @@ export async function handleZapryAction(ctx) {
137
147
  messageThreadId: normalized.message_thread_id,
138
148
  replyMarkup: normalized.reply_markup,
139
149
  }));
150
+ case "send-link-card":
151
+ return wrap(client.sendLinkCard({
152
+ chatId: normalized.chat_id,
153
+ url: normalized.url,
154
+ title: normalized.title,
155
+ content: normalized.content,
156
+ text: normalized.text,
157
+ iconUrl: normalized.icon_url,
158
+ imageUrl: normalized.image_url,
159
+ source: normalized.source,
160
+ openMode: normalized.open_mode,
161
+ fallbackText: normalized.fallback_text,
162
+ extra: normalized.extra,
163
+ replyToMessageId: normalized.reply_to_message_id,
164
+ messageThreadId: normalized.message_thread_id,
165
+ replyMarkup: normalized.reply_markup,
166
+ }));
140
167
  case "send-photo": {
141
168
  const photoSource = normalized.photo || normalized.media;
142
169
  if (!photoSource && isNonEmptyString(normalized.prompt)) {
@@ -234,6 +261,16 @@ export async function handleZapryAction(ctx) {
234
261
  return wrap(client.getChatMemberCount(normalized.chat_id));
235
262
  case "get-chat-administrators":
236
263
  return wrap(client.getChatAdministrators(normalized.chat_id));
264
+ case "create-group-chat":
265
+ return wrap(client.createGroupChat({
266
+ title: normalized.title,
267
+ description: normalized.description,
268
+ avatar: normalized.avatar,
269
+ userIds: normalized.user_ids,
270
+ botIds: normalized.bot_ids,
271
+ }));
272
+ case "dismiss-group-chat":
273
+ return wrap(client.dismissGroupChat(normalized.chat_id, normalized.reason));
237
274
  case "mute-chat-member":
238
275
  return wrap(client.muteChatMember(normalized.chat_id, normalized.user_id, normalized.mute));
239
276
  case "kick-chat-member":
@@ -953,6 +990,7 @@ function validateRequiredParams(action, params) {
953
990
  const requiredByAction = {
954
991
  // Messaging
955
992
  "send-message": ["chat_id", "text"],
993
+ "send-link-card": ["chat_id", "url", "title"],
956
994
  "send-photo": ["chat_id"],
957
995
  "send-video": ["chat_id", "video"],
958
996
  "send-document": ["chat_id", "document"],
@@ -973,6 +1011,8 @@ function validateRequiredParams(action, params) {
973
1011
  "get-chat-members": ["chat_id"],
974
1012
  "get-chat-member-count": ["chat_id"],
975
1013
  "get-chat-administrators": ["chat_id"],
1014
+ "create-group-chat": ["title"],
1015
+ "dismiss-group-chat": ["chat_id"],
976
1016
  "mute-chat-member": ["chat_id", "user_id", "mute"],
977
1017
  "kick-chat-member": ["chat_id", "user_id"],
978
1018
  "invite-chat-member": ["chat_id", "user_id"],
@@ -1151,6 +1191,10 @@ function normalizeActionParams(action, raw) {
1151
1191
  const audioFormat = pickFirst(params, ["audio_format", "audioFormat", "format"]);
1152
1192
  const durationSeconds = pickFirst(params, ["duration_seconds", "durationSeconds", "duration"]);
1153
1193
  const fallbackText = pickFirst(params, ["fallback_text", "fallbackText", "error_fallback_text"]);
1194
+ const iconUrl = pickFirst(params, ["icon_url", "iconUrl", "icon"]);
1195
+ const imageUrl = pickFirst(params, ["image_url", "imageUrl", "cover_url", "coverUrl"]);
1196
+ const openMode = pickFirst(params, ["open_mode", "openMode"]);
1197
+ const extra = pickFirst(params, ["extra"]);
1154
1198
  if (chatId !== undefined)
1155
1199
  params.chat_id = normalizeChatId(chatId);
1156
1200
  if (userId !== undefined)
@@ -1219,6 +1263,23 @@ function normalizeActionParams(action, raw) {
1219
1263
  const avatar = pickFirst(params, ["avatar"]);
1220
1264
  if (avatar !== undefined)
1221
1265
  params.avatar = String(avatar).trim();
1266
+ const reason = pickFirst(params, ["reason"]);
1267
+ if (reason !== undefined)
1268
+ params.reason = String(reason).trim();
1269
+ const userIds = pickFirst(params, ["user_ids", "userIds", "members", "member_ids", "memberIds"]);
1270
+ if (userIds !== undefined) {
1271
+ const normalizedUserIds = normalizeIdArray(userIds);
1272
+ if (normalizedUserIds) {
1273
+ params.user_ids = normalizedUserIds;
1274
+ }
1275
+ }
1276
+ const botIds = pickFirst(params, ["bot_ids", "botIds", "bots", "bot_ids"]);
1277
+ if (botIds !== undefined) {
1278
+ const normalizedBotIds = normalizeIdArray(botIds);
1279
+ if (normalizedBotIds) {
1280
+ params.bot_ids = normalizedBotIds;
1281
+ }
1282
+ }
1222
1283
  if (skills !== undefined) {
1223
1284
  if (Array.isArray(skills)) {
1224
1285
  params.skills = skills;
@@ -1253,6 +1314,25 @@ function normalizeActionParams(action, raw) {
1253
1314
  params.duration_seconds = toNumberIfPossible(durationSeconds);
1254
1315
  if (fallbackText !== undefined)
1255
1316
  params.fallback_text = String(fallbackText).trim();
1317
+ if (iconUrl !== undefined)
1318
+ params.icon_url = String(iconUrl).trim();
1319
+ if (imageUrl !== undefined)
1320
+ params.image_url = String(imageUrl).trim();
1321
+ if (openMode !== undefined)
1322
+ params.open_mode = String(openMode).trim();
1323
+ if (extra !== undefined) {
1324
+ if (typeof extra === "string") {
1325
+ try {
1326
+ params.extra = JSON.parse(extra);
1327
+ }
1328
+ catch {
1329
+ params.extra = extra;
1330
+ }
1331
+ }
1332
+ else {
1333
+ params.extra = extra;
1334
+ }
1335
+ }
1256
1336
  const offset = pickFirst(params, ["offset"]);
1257
1337
  if (offset !== undefined)
1258
1338
  params.offset = toNumberIfPossible(offset);
@@ -1310,9 +1390,7 @@ function pickFirst(obj, keys) {
1310
1390
  return undefined;
1311
1391
  }
1312
1392
  function normalizeChatId(value) {
1313
- return String(value ?? "")
1314
- .trim()
1315
- .replace(/^chat:/i, "");
1393
+ return stripZapryTargetPrefix(String(value ?? "").trim());
1316
1394
  }
1317
1395
  function toNumberIfPossible(value) {
1318
1396
  if (typeof value === "number") {
@@ -1382,6 +1460,30 @@ function normalizeStringArray(value) {
1382
1460
  }
1383
1461
  return null;
1384
1462
  }
1463
+ function normalizeIdArray(value) {
1464
+ if (Array.isArray(value)) {
1465
+ return value.map((item) => String(item).trim()).filter(Boolean);
1466
+ }
1467
+ if (typeof value === "string") {
1468
+ const trimmed = value.trim();
1469
+ if (!trimmed) {
1470
+ return [];
1471
+ }
1472
+ if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
1473
+ try {
1474
+ const parsed = JSON.parse(trimmed);
1475
+ if (Array.isArray(parsed)) {
1476
+ return parsed.map((item) => String(item).trim()).filter(Boolean);
1477
+ }
1478
+ }
1479
+ catch {
1480
+ // fall through to comma-separated handling
1481
+ }
1482
+ }
1483
+ return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
1484
+ }
1485
+ return null;
1486
+ }
1385
1487
  function toMediaSourceString(value) {
1386
1488
  if (typeof value === "string") {
1387
1489
  const trimmed = value.trim();
@@ -1573,14 +1675,7 @@ function resolveGroupRecord(payload, chatId) {
1573
1675
  return null;
1574
1676
  }
1575
1677
  function normalizeResultChatId(value) {
1576
- const normalized = String(value ?? "").trim();
1577
- if (!normalized) {
1578
- return "";
1579
- }
1580
- if (normalized.startsWith("g_")) {
1581
- return normalized;
1582
- }
1583
- return normalized.startsWith("chat:") ? normalized.slice(5) : normalized;
1678
+ return stripZapryTargetPrefix(String(value ?? "").trim());
1584
1679
  }
1585
1680
  function asObjectRecord(value) {
1586
1681
  if (!value || typeof value !== "object") {