pinto-app-openclaw 1.3.18 → 1.3.19

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
@@ -29,7 +29,7 @@ flow การทำงาน:
29
29
  - OpenClaw ที่รันได้แล้ว
30
30
  - Node.js 20+ และ npm
31
31
  - Pinto bot ที่สร้างไว้แล้ว
32
- - Bot UUID จริงของ Pinto
32
+ - Bot ID จริงของ Pinto
33
33
  - Pinto API base URL ที่ถูกต้อง เช่น `https://api.pinto-app.com`
34
34
  - URL ที่ Pinto เข้าถึง OpenClaw ได้จริง เช่น domain, reverse proxy, Tailscale, tunnel
35
35
 
@@ -82,8 +82,8 @@ openclaw plugins install .
82
82
  - ใส่ได้ทั้งแบบมี `/` ท้ายหรือไม่มี `/` ท้าย
83
83
  - ตัวอย่าง `https://api.pinto-app.com`
84
84
  - `Bot Id`
85
- - ต้องเป็น Bot UUID จริงของ Pinto
86
- - ไม่ใช่ `bot_id` แบบ slug
85
+ - ต้องเป็น Bot ID จริงของ Pinto
86
+ - ต้องตรงกับค่า `bot_id` ที่ Pinto ส่งมา
87
87
  - `Enabled`
88
88
  - เปิดหรือปิด channel
89
89
  - `Agent Id`
@@ -96,6 +96,7 @@ openclaw plugins install .
96
96
  - observer จะไม่ตอบกลับ Pinto โดยตรง
97
97
  - `Webhook Secret`
98
98
  - secret ที่ใช้ร่วมกับ header `X-Pinto-Secret`
99
+ - ระบบไม่ generate ค่านี้ให้อัตโนมัติ
99
100
  - ถ้าไม่ได้ตั้งค่าไว้ ระบบจะไม่บังคับตรวจ secret ขาเข้า
100
101
  - `Webhook Path`
101
102
  - path ของ webhook endpoint บน OpenClaw
@@ -109,9 +110,10 @@ openclaw plugins install .
109
110
  - ระบบจะเติม `botId` เป็นสตริงว่าง `""`
110
111
  - ระบบจะเติม `agentId` เป็นสตริงว่าง `""`
111
112
  - ระบบจะไม่เติม `observerAgentIds` ถ้ายังไม่ได้ใช้
112
- - ระบบจะ generate `webhookSecret` ให้ 1 ค่าอัตโนมัติ
113
+ - ระบบจะเติม `webhookSecret` เป็นสตริงว่าง `""`
113
114
  - ระบบจะเติม `webhookPath` เป็น `/plugins/pinto/webhook`
114
115
  - ผู้ใช้ยังต้องกรอก `botId` เองจาก Pinto bot จริง
116
+ - ถ้าต้องการตรวจ secret ผู้ใช้ต้องกรอก `webhookSecret` เอง และตั้งค่าเดียวกันใน Pinto
115
117
 
116
118
  ตัวอย่าง config:
117
119
 
@@ -123,7 +125,7 @@ openclaw plugins install .
123
125
  "apiUrl": "https://api.pinto-app.com",
124
126
  "botId": "",
125
127
  "agentId": "",
126
- "webhookSecret": "pinto-oc-9f3a1b7c5d2e8k4m",
128
+ "webhookSecret": "",
127
129
  "webhookPath": "/plugins/pinto/webhook"
128
130
  }
129
131
  }
@@ -145,7 +147,7 @@ openclaw plugins install .
145
147
  "sales": {
146
148
  "enabled": true,
147
149
  "apiUrl": "https://api.pinto-app.com",
148
- "botId": "20387880-7934-40c3-b7d4-9fa6557697cf",
150
+ "botId": "bot-sales",
149
151
  "agentId": "sales-agent",
150
152
  "observerAgentIds": ["audit-agent", "memory-agent"],
151
153
  "webhookSecret": "pinto-oc-sales-secret",
@@ -154,7 +156,7 @@ openclaw plugins install .
154
156
  "support": {
155
157
  "enabled": true,
156
158
  "apiUrl": "https://api.pinto-app.com",
157
- "botId": "d03cb2fd-6fd6-4d93-8f30-111111111111",
159
+ "botId": "bot-support",
158
160
  "agentId": "support-agent",
159
161
  "webhookSecret": "pinto-oc-support-secret",
160
162
  "webhookPath": "/plugins/pinto/support"
@@ -267,6 +269,8 @@ openclaw plugins install .
267
269
  ```md
268
270
  You are the sales assistant for Pinto.
269
271
  Focus on product guidance, pricing, promotions, and converting leads.
272
+ When a message comes from Pinto, answer with normal user-facing text.
273
+ Do not call the Pinto API or include bot_id/chat_id JSON in the reply.
270
274
  Be concise and helpful.
271
275
  ```
272
276
 
@@ -284,7 +288,7 @@ Be concise and helpful.
284
288
  "pinto": {
285
289
  "enabled": true,
286
290
  "apiUrl": "https://api.pinto-app.com",
287
- "botId": "20387880-7934-40c3-b7d4-9fa6557697cf",
291
+ "botId": "bot-sales",
288
292
  "agentId": "sales-agent",
289
293
  "webhookSecret": "pinto-oc-9f3a1b7c5d2e8k4m",
290
294
  "webhookPath": "/plugins/pinto/webhook"
@@ -387,8 +391,8 @@ Pinto bot ต้องมีข้อมูลต่อไปนี้:
387
391
  - `webhook_url = <public-openclaw-base-url> + <Webhook Path>`
388
392
  - ตัวอย่างเช่น ถ้า OpenClaw เปิดผ่าน `https://bot.example.com` และ `Webhook Path` เป็น `/plugins/pinto/custom-webhook`
389
393
  - ให้ใส่ `https://bot.example.com/plugins/pinto/custom-webhook`
390
- - Bot UUID
391
- - ใช้ค่า `_id` ของ bot เป็นค่า `Bot Id` ใน OpenClaw
394
+ - Bot ID
395
+ - ใช้ค่า `bot_id` ของ bot เป็นค่า `Bot Id` ใน OpenClaw
392
396
  - ถ้ามีการเปิดใช้ secret
393
397
  - Pinto ต้องส่ง header `X-Pinto-Secret` เข้ามา
394
398
  - ค่า secret ต้องตรงกับ `Webhook Secret` ใน OpenClaw
@@ -441,7 +445,7 @@ POST /plugins/pinto/webhook
441
445
 
442
446
  ```json
443
447
  {
444
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
448
+ "bot_id": "bot-sales",
445
449
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
446
450
  "message": "hello",
447
451
  "user_id": "a7c3fe36-cf41-42b5-a290-ca98e6129fac",
@@ -461,7 +465,7 @@ POST <apiUrl>/v1/bots/webhook/receive
461
465
 
462
466
  ```json
463
467
  {
464
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
468
+ "bot_id": "bot-sales",
465
469
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
466
470
  "reply_message": "สวัสดีจาก OpenClaw"
467
471
  }
@@ -471,7 +475,7 @@ POST <apiUrl>/v1/bots/webhook/receive
471
475
 
472
476
  ```json
473
477
  {
474
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
478
+ "bot_id": "bot-sales",
475
479
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
476
480
  "reply_message": "ดูรูปนี้",
477
481
  "media_url": "https://example.com/image.png"
@@ -504,7 +508,7 @@ curl -i -X POST http://127.0.0.1:18789/plugins/pinto/webhook \
504
508
  -H 'Content-Type: application/json' \
505
509
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
506
510
  -d '{
507
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
511
+ "bot_id":"bot-sales",
508
512
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
509
513
  "message":"hello",
510
514
  "user_id":"a7c3fe36-cf41-42b5-a290-ca98e6129fac"
@@ -524,7 +528,7 @@ curl -i -X POST https://your-host.example.com/plugins/pinto/webhook \
524
528
  -H 'Content-Type: application/json' \
525
529
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
526
530
  -d '{
527
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
531
+ "bot_id":"bot-sales",
528
532
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
529
533
  "message":"hello",
530
534
  "user_id":"a7c3fe36-cf41-42b5-a290-ca98e6129fac"
@@ -538,7 +542,7 @@ curl -i -X POST https://api.pinto-app.com/v1/bots/webhook/receive \
538
542
  -H 'Content-Type: application/json' \
539
543
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
540
544
  -d '{
541
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
545
+ "bot_id":"bot-sales",
542
546
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
543
547
  "reply_message":"OpenClaw outbound test"
544
548
  }'
@@ -566,7 +570,7 @@ curl -i -X POST https://api.pinto-app.com/v1/bots/webhook/receive \
566
570
 
567
571
  สาเหตุที่พบบ่อย:
568
572
 
569
- - `Bot Id` ไม่ใช่ UUID จริง
573
+ - `Bot Id` ไม่ตรงกับค่า `bot_id` จริงของ Pinto
570
574
  - `chat_id` อยู่คนละ environment
571
575
  - payload ที่ส่งไป `POST /v1/bots/webhook/receive` ไม่ตรงกับ backend Pinto
572
576
 
@@ -613,7 +617,7 @@ Main features:
613
617
  - A working OpenClaw instance
614
618
  - Node.js 20+ and npm
615
619
  - An existing Pinto bot
616
- - The real Pinto bot UUID
620
+ - The real Pinto bot ID
617
621
  - A valid Pinto API base URL such as `https://api.pinto-app.com`
618
622
  - A public or reachable URL that Pinto can call
619
623
 
@@ -665,8 +669,8 @@ Fields:
665
669
  - Pinto API base URL
666
670
  - With or without a trailing slash is supported
667
671
  - `Bot Id`
668
- - Must be the real Pinto bot UUID
669
- - Do not use the human-readable bot slug
672
+ - Must be the real Pinto bot ID
673
+ - Must match the `bot_id` value Pinto sends
670
674
  - `Enabled`
671
675
  - Enables or disables the channel
672
676
  - `Agent Id`
@@ -679,6 +683,7 @@ Fields:
679
683
  - Observer agents do not reply back to Pinto
680
684
  - `Webhook Secret`
681
685
  - Shared secret used with `X-Pinto-Secret`
686
+ - The plugin does not generate this value by default
682
687
  - If empty, inbound secret validation is not enforced
683
688
 
684
689
  Example config:
@@ -691,7 +696,7 @@ Example config:
691
696
  "apiUrl": "https://api.pinto-app.com",
692
697
  "botId": "",
693
698
  "agentId": "",
694
- "webhookSecret": "pinto-oc-9f3a1b7c5d2e8k4m",
699
+ "webhookSecret": "",
695
700
  "webhookPath": "/plugins/pinto/webhook"
696
701
  }
697
702
  }
@@ -709,7 +714,7 @@ Multi-account example:
709
714
  "sales": {
710
715
  "enabled": true,
711
716
  "apiUrl": "https://api.pinto-app.com",
712
- "botId": "20387880-7934-40c3-b7d4-9fa6557697cf",
717
+ "botId": "bot-sales",
713
718
  "agentId": "sales-agent",
714
719
  "observerAgentIds": ["audit-agent", "memory-agent"],
715
720
  "webhookSecret": "pinto-oc-sales-secret",
@@ -718,7 +723,7 @@ Multi-account example:
718
723
  "support": {
719
724
  "enabled": true,
720
725
  "apiUrl": "https://api.pinto-app.com",
721
- "botId": "d03cb2fd-6fd6-4d93-8f30-111111111111",
726
+ "botId": "bot-support",
722
727
  "agentId": "support-agent",
723
728
  "webhookSecret": "pinto-oc-support-secret",
724
729
  "webhookPath": "/plugins/pinto/support"
@@ -825,6 +830,8 @@ Example `AGENTS.md`:
825
830
  ```md
826
831
  You are the sales assistant for Pinto.
827
832
  Focus on product guidance, pricing, promotions, and converting leads.
833
+ When a message comes from Pinto, answer with normal user-facing text.
834
+ Do not call the Pinto API or include bot_id/chat_id JSON in the reply.
828
835
  Be concise and helpful.
829
836
  ```
830
837
 
@@ -842,7 +849,7 @@ Single-account example:
842
849
  "pinto": {
843
850
  "enabled": true,
844
851
  "apiUrl": "https://api.pinto-app.com",
845
- "botId": "20387880-7934-40c3-b7d4-9fa6557697cf",
852
+ "botId": "bot-sales",
846
853
  "agentId": "sales-agent",
847
854
  "observerAgentIds": ["audit-agent", "memory-agent"],
848
855
  "webhookSecret": "pinto-oc-9f3a1b7c5d2e8k4m",
@@ -944,8 +951,8 @@ Your Pinto bot must have:
944
951
  - The URL Pinto calls
945
952
  - Example:
946
953
  - `https://your-host.example.com/plugins/pinto/webhook`
947
- - Bot UUID
948
- - Use the bot `_id` as `Bot Id` in OpenClaw
954
+ - Bot ID
955
+ - Use the bot `bot_id` as `Bot Id` in OpenClaw
949
956
  - If webhook security is enabled
950
957
  - Pinto must send `X-Pinto-Secret`
951
958
  - The value must match the OpenClaw `Webhook Secret`
@@ -1000,7 +1007,7 @@ Example request body:
1000
1007
 
1001
1008
  ```json
1002
1009
  {
1003
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
1010
+ "bot_id": "bot-sales",
1004
1011
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1005
1012
  "message": "hello",
1006
1013
  "user_id": "a7c3fe36-cf41-42b5-a290-ca98e6129fac",
@@ -1020,7 +1027,7 @@ Example body:
1020
1027
 
1021
1028
  ```json
1022
1029
  {
1023
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
1030
+ "bot_id": "bot-sales",
1024
1031
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1025
1032
  "reply_message": "Hello from OpenClaw"
1026
1033
  }
@@ -1030,7 +1037,7 @@ Media example:
1030
1037
 
1031
1038
  ```json
1032
1039
  {
1033
- "bot_id": "20387880-7934-40c3-b7d4-9fa6557697cf",
1040
+ "bot_id": "bot-sales",
1034
1041
  "chat_id": "5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1035
1042
  "reply_message": "See this image",
1036
1043
  "media_url": "https://example.com/image.png"
@@ -1063,7 +1070,7 @@ curl -i -X POST http://127.0.0.1:18789/plugins/pinto/webhook \
1063
1070
  -H 'Content-Type: application/json' \
1064
1071
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
1065
1072
  -d '{
1066
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
1073
+ "bot_id":"bot-sales",
1067
1074
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1068
1075
  "message":"hello",
1069
1076
  "user_id":"a7c3fe36-cf41-42b5-a290-ca98e6129fac"
@@ -1083,7 +1090,7 @@ curl -i -X POST https://your-host.example.com/plugins/pinto/webhook \
1083
1090
  -H 'Content-Type: application/json' \
1084
1091
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
1085
1092
  -d '{
1086
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
1093
+ "bot_id":"bot-sales",
1087
1094
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1088
1095
  "message":"hello",
1089
1096
  "user_id":"a7c3fe36-cf41-42b5-a290-ca98e6129fac"
@@ -1097,7 +1104,7 @@ curl -i -X POST https://api.pinto-app.com/v1/bots/webhook/receive \
1097
1104
  -H 'Content-Type: application/json' \
1098
1105
  -H 'X-Pinto-Secret: pinto-oc-9f3a1b7c5d2e8k4m' \
1099
1106
  -d '{
1100
- "bot_id":"20387880-7934-40c3-b7d4-9fa6557697cf",
1107
+ "bot_id":"bot-sales",
1101
1108
  "chat_id":"5f315d4e-cf22-4054-bbb0-2fe074bd3892",
1102
1109
  "reply_message":"OpenClaw outbound test"
1103
1110
  }'
@@ -1125,7 +1132,7 @@ Common causes:
1125
1132
 
1126
1133
  Common causes:
1127
1134
 
1128
- - `Bot Id` is not a real UUID
1135
+ - `Bot Id` does not match the real Pinto `bot_id`
1129
1136
  - `chat_id` belongs to a different environment
1130
1137
  - The payload sent to `POST /v1/bots/webhook/receive` does not match Pinto backend expectations
1131
1138
 
package/dist/channel.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ChannelPlugin, RuntimeEnv } from "openclaw/plugin-sdk/mattermost";
1
+ import type { ChannelPlugin, PluginRuntime as RuntimeEnv } from "openclaw/plugin-sdk/core";
2
2
  export declare const setPintoRuntime: (r: RuntimeEnv) => void;
3
3
  export declare const buildDefaultPintoChannelConfig: () => {
4
4
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACX,MAAM,gCAAgC,CAAC;AAkBxC,eAAO,MAAM,eAAe,GAAI,GAAG,UAAU,SAE5C,CAAC;AAgEF,eAAO,MAAM,8BAA8B;;;;;;;CAOzC,CAAC;AAwLH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,GAAG,CAAA;CA6XvE,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,IAAI,UAAU,EAC5B,MAAM,0BAA0B,CAAC;AAiBlC,eAAO,MAAM,eAAe,GAAI,GAAG,UAAU,SAE5C,CAAC;AA6DF,eAAO,MAAM,8BAA8B;;;;;;;CAOzC,CAAC;AA6WH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,GAAG,CAAA;CAgYvE,CAAC"}
package/dist/channel.js CHANGED
@@ -1,5 +1,5 @@
1
- import { randomBytes } from "node:crypto";
2
- import { DEFAULT_ACCOUNT_ID, applySetupAccountConfigPatch, buildChannelConfigSchema, registerPluginHttpRoute, setAccountEnabledInConfigSection, } from "openclaw/plugin-sdk/mattermost";
1
+ import { DEFAULT_ACCOUNT_ID, buildChannelConfigSchema, registerPluginHttpRoute, setAccountEnabledInConfigSection, } from "openclaw/plugin-sdk";
2
+ import { applySetupAccountConfigPatch } from "openclaw/plugin-sdk/mattermost";
3
3
  import { z } from "zod";
4
4
  const stripTrailingSlash = (url) => url.replace(/\/+$/, "");
5
5
  const PINTO_SECRET_HEADER = "x-pinto-secret";
@@ -46,7 +46,6 @@ const PintoChannelConfigSchema = z.preprocess((raw) => {
46
46
  accounts: z.record(z.string(), PintoAccountConfigSchema.optional()).optional(),
47
47
  defaultAccount: z.string().trim().min(1).optional(),
48
48
  }));
49
- const generatePintoWebhookSecret = () => `pinto-oc-${randomBytes(12).toString("hex")}`;
50
49
  const normalizeWebhookSecret = (value) => {
51
50
  if (typeof value === "string") {
52
51
  const trimmed = value.trim();
@@ -66,7 +65,7 @@ export const buildDefaultPintoChannelConfig = () => ({
66
65
  apiUrl: DEFAULT_PINTO_API_URL,
67
66
  botId: "",
68
67
  agentId: "",
69
- webhookSecret: generatePintoWebhookSecret(),
68
+ webhookSecret: "",
70
69
  webhookPath: DEFAULT_PINTO_WEBHOOK_PATH,
71
70
  });
72
71
  const getRawPintoChannelConfig = (cfg) => cfg?.channels?.pinto ?? {};
@@ -119,6 +118,20 @@ const getPintoChannelConfig = (cfg, accountId) => {
119
118
  ...merged,
120
119
  };
121
120
  };
121
+ const findPintoAccountByBotId = (cfg, botId) => {
122
+ const targetBotId = botId.trim();
123
+ if (!targetBotId)
124
+ return null;
125
+ for (const accountId of listPintoAccountIds(cfg)) {
126
+ const account = getPintoChannelConfig(cfg, accountId);
127
+ if (account?.enabled === false)
128
+ continue;
129
+ if (account?.botId?.trim() === targetBotId) {
130
+ return { accountId, account };
131
+ }
132
+ }
133
+ return null;
134
+ };
122
135
  const buildPintoHeaders = (webhookSecret) => {
123
136
  const headers = {
124
137
  "Content-Type": "application/json",
@@ -152,6 +165,86 @@ const normalizeObserverAgentIds = (value) => {
152
165
  .filter(Boolean);
153
166
  return normalized.length ? Array.from(new Set(normalized)) : undefined;
154
167
  };
168
+ const normalizePintoImageUrl = (value) => {
169
+ if (typeof value !== "string") {
170
+ return undefined;
171
+ }
172
+ const trimmed = value.trim();
173
+ return trimmed || undefined;
174
+ };
175
+ const inferPintoImageMimeType = (imageUrl) => {
176
+ let pathname = imageUrl;
177
+ try {
178
+ pathname = new URL(imageUrl).pathname;
179
+ }
180
+ catch {
181
+ pathname = imageUrl.split(/[?#]/, 1)[0] ?? imageUrl;
182
+ }
183
+ const extension = pathname.toLowerCase().match(/\.([a-z0-9]+)$/)?.[1];
184
+ switch (extension) {
185
+ case "jpg":
186
+ case "jpeg":
187
+ return "image/jpeg";
188
+ case "png":
189
+ return "image/png";
190
+ case "webp":
191
+ return "image/webp";
192
+ case "gif":
193
+ return "image/gif";
194
+ case "heic":
195
+ return "image/heic";
196
+ case "heif":
197
+ return "image/heif";
198
+ case "bmp":
199
+ return "image/bmp";
200
+ case "tif":
201
+ case "tiff":
202
+ return "image/tiff";
203
+ default:
204
+ return undefined;
205
+ }
206
+ };
207
+ const buildPintoImageMediaContext = (imageUrlValue) => {
208
+ const imageUrl = normalizePintoImageUrl(imageUrlValue);
209
+ if (!imageUrl) {
210
+ return {};
211
+ }
212
+ const mediaType = inferPintoImageMimeType(imageUrl) ?? "image/*";
213
+ return {
214
+ MediaUrl: imageUrl,
215
+ MediaUrls: [imageUrl],
216
+ MediaType: mediaType,
217
+ MediaTypes: [mediaType],
218
+ };
219
+ };
220
+ const stripPintoPrefix = (id) => id.replace(/^pinto:/, "");
221
+ const buildPintoApiError = async (res) => {
222
+ const detail = await res
223
+ .text()
224
+ .then((body) => body.trim())
225
+ .catch(() => "");
226
+ const detailSuffix = detail ? `: ${detail}` : "";
227
+ return `Pinto API error: ${res.status} ${res.statusText}${detailSuffix}`;
228
+ };
229
+ const resolvePintoReplyText = (payload) => {
230
+ const text = typeof payload.text === "string"
231
+ ? payload.text
232
+ : typeof payload.body === "string"
233
+ ? payload.body
234
+ : "";
235
+ const trimmed = text.trim();
236
+ return trimmed || undefined;
237
+ };
238
+ const resolvePintoReplyMediaUrls = (payload) => {
239
+ const mediaUrls = Array.isArray(payload.mediaUrls)
240
+ ? payload.mediaUrls
241
+ : payload.mediaUrl
242
+ ? [payload.mediaUrl]
243
+ : [];
244
+ return mediaUrls
245
+ .map((mediaUrl) => (typeof mediaUrl === "string" ? mediaUrl.trim() : ""))
246
+ .filter(Boolean);
247
+ };
155
248
  async function sendPintoText(params) {
156
249
  const account = getPintoChannelConfig(params.cfg, params.accountId);
157
250
  const apiUrl = stripTrailingSlash(account?.apiUrl ?? "https://api-dev.pinto-app.com");
@@ -162,7 +255,7 @@ async function sendPintoText(params) {
162
255
  }
163
256
  const payload = {
164
257
  bot_id: botId,
165
- chat_id: params.to,
258
+ chat_id: stripPintoPrefix(params.to),
166
259
  reply_message: params.text,
167
260
  };
168
261
  const res = await fetch(`${apiUrl}/v1/bots/webhook/receive`, {
@@ -171,10 +264,59 @@ async function sendPintoText(params) {
171
264
  body: JSON.stringify(payload),
172
265
  });
173
266
  if (!res.ok) {
174
- throw new Error(`Pinto API error: ${res.status} ${res.statusText}`);
267
+ throw new Error(await buildPintoApiError(res));
268
+ }
269
+ return { channel: "pinto", messageId: Date.now().toString() };
270
+ }
271
+ async function sendPintoMedia(params) {
272
+ const account = getPintoChannelConfig(params.cfg, params.accountId);
273
+ const apiUrl = stripTrailingSlash(account?.apiUrl ?? "https://api-dev.pinto-app.com");
274
+ const botId = account?.botId?.trim();
275
+ const webhookSecret = normalizeWebhookSecret(account?.webhookSecret);
276
+ if (!botId) {
277
+ throw new Error("Pinto botId is not configured");
278
+ }
279
+ const payload = {
280
+ bot_id: botId,
281
+ chat_id: stripPintoPrefix(params.to),
282
+ reply_message: params.text ?? "",
283
+ media_url: params.mediaUrl,
284
+ };
285
+ const res = await fetch(`${apiUrl}/v1/bots/webhook/receive`, {
286
+ method: "POST",
287
+ headers: buildPintoHeaders(webhookSecret),
288
+ body: JSON.stringify(payload),
289
+ });
290
+ if (!res.ok) {
291
+ throw new Error(await buildPintoApiError(res));
175
292
  }
176
293
  return { channel: "pinto", messageId: Date.now().toString() };
177
294
  }
295
+ async function deliverPintoReplyPayload(params) {
296
+ const text = resolvePintoReplyText(params.payload);
297
+ const mediaUrls = resolvePintoReplyMediaUrls(params.payload);
298
+ if (mediaUrls.length > 0) {
299
+ for (const [index, mediaUrl] of mediaUrls.entries()) {
300
+ await sendPintoMedia({
301
+ cfg: params.cfg,
302
+ accountId: params.accountId,
303
+ to: params.to,
304
+ text: index === 0 ? text : undefined,
305
+ mediaUrl,
306
+ });
307
+ }
308
+ return;
309
+ }
310
+ if (!text) {
311
+ return;
312
+ }
313
+ await sendPintoText({
314
+ cfg: params.cfg,
315
+ accountId: params.accountId,
316
+ to: params.to,
317
+ text,
318
+ });
319
+ }
178
320
  const waitUntilAbort = (signal, onAbort) => new Promise((resolve) => {
179
321
  const complete = () => {
180
322
  onAbort?.();
@@ -218,10 +360,10 @@ export const pintoPlugin = {
218
360
  const warnings = [];
219
361
  const webhookPath = normalizeWebhookPath(account?.config?.webhookPath);
220
362
  if (!account?.config?.botId?.trim()) {
221
- warnings.push("Pinto botId is not configured. Set channels.pinto.botId to your real Pinto bot UUID.");
363
+ warnings.push("Pinto botId is not configured. Set channels.pinto.botId to the real Pinto bot id.");
222
364
  }
223
365
  if (!normalizeWebhookSecret(account?.config?.webhookSecret)) {
224
- warnings.push("Pinto webhookSecret is empty. Set channels.pinto.webhookSecret or let setup generate one.");
366
+ warnings.push("Pinto webhookSecret is empty. Set channels.pinto.webhookSecret if you want webhook secret validation.");
225
367
  }
226
368
  if (webhookPath !== (account?.config?.webhookPath?.trim() || webhookPath)) {
227
369
  warnings.push(`Pinto webhookPath should start with '/'. Use ${webhookPath} as channels.pinto.webhookPath.`);
@@ -261,7 +403,7 @@ export const pintoPlugin = {
261
403
  : {}),
262
404
  webhookSecret: (inputWebhookSecret ? input.webhookSecret : undefined) ||
263
405
  (resolvedWebhookSecret ? resolved.webhookSecret : undefined) ||
264
- generatePintoWebhookSecret(),
406
+ "",
265
407
  webhookPath: nextWebhookPath,
266
408
  },
267
409
  });
@@ -274,6 +416,15 @@ export const pintoPlugin = {
274
416
  reactions: false,
275
417
  threads: false,
276
418
  },
419
+ agentPrompt: {
420
+ messageToolHints: () => [
421
+ "",
422
+ "### Pinto Reply Behavior",
423
+ "- For an inbound Pinto chat, reply with normal assistant text. The Pinto plugin automatically sends your final reply back to the current Pinto chat.",
424
+ "- Do not call the Pinto API, include `bot_id`/`chat_id` JSON, or explain webhook delivery unless the user asks about integration details.",
425
+ "- Keep Pinto replies concise and conversational. If you include media, use a public `mediaUrl`/`mediaUrls` payload when the channel tooling supports it.",
426
+ ],
427
+ },
277
428
  config: {
278
429
  listAccountIds: (cfg) => listPintoAccountIds(cfg),
279
430
  defaultAccountId: (cfg) => resolveDefaultPintoAccountId(cfg),
@@ -320,28 +471,10 @@ export const pintoPlugin = {
320
471
  deliveryMode: "direct",
321
472
  sendText: async ({ to, text, accountId, cfg }) => sendPintoText({ cfg, accountId, to, text }),
322
473
  sendMedia: async ({ to, text, mediaUrl, accountId, cfg }) => {
323
- const account = getPintoChannelConfig(cfg, accountId);
324
- const apiUrl = stripTrailingSlash(account?.apiUrl ?? "https://api-dev.pinto-app.com");
325
- const botId = account?.botId?.trim();
326
- const webhookSecret = normalizeWebhookSecret(account?.webhookSecret);
327
- if (!botId) {
328
- throw new Error("Pinto botId is not configured");
329
- }
330
- const payload = {
331
- bot_id: botId,
332
- chat_id: to,
333
- reply_message: text,
334
- media_url: mediaUrl,
335
- };
336
- const res = await fetch(`${apiUrl}/v1/bots/webhook/receive`, {
337
- method: "POST",
338
- headers: buildPintoHeaders(webhookSecret),
339
- body: JSON.stringify(payload),
340
- });
341
- if (!res.ok) {
342
- throw new Error(`Pinto API error: ${res.status} ${res.statusText}`);
474
+ if (!mediaUrl) {
475
+ throw new Error("Pinto mediaUrl is not configured");
343
476
  }
344
- return { channel: "pinto", messageId: Date.now().toString() };
477
+ return sendPintoMedia({ cfg, accountId, to, text, mediaUrl });
345
478
  },
346
479
  },
347
480
  gateway: {
@@ -374,11 +507,10 @@ export const pintoPlugin = {
374
507
  res.end(JSON.stringify({ ok: true, channel: "pinto" }));
375
508
  return true;
376
509
  }
377
- const configuredSecret = normalizeWebhookSecret(account?.webhookSecret);
378
- const inboundSecret = getRequestHeader(req, PINTO_SECRET_HEADER);
379
- if (configuredSecret && inboundSecret !== configuredSecret) {
380
- res.statusCode = 401;
381
- res.end(JSON.stringify({ error: "Invalid webhook secret" }));
510
+ if (req.method !== "POST") {
511
+ res.statusCode = 405;
512
+ res.setHeader?.("Content-Type", "application/json");
513
+ res.end(JSON.stringify({ error: "Method Not Allowed" }));
382
514
  return true;
383
515
  }
384
516
  const payload = await readJsonBody(req);
@@ -387,46 +519,63 @@ export const pintoPlugin = {
387
519
  res.end(JSON.stringify({ error: "Missing required fields" }));
388
520
  return true;
389
521
  }
390
- if (payload.bot_id !== configuredBotId) {
522
+ const matched = findPintoAccountByBotId(ctx.cfg, payload.bot_id);
523
+ if (!matched) {
391
524
  res.statusCode = 403;
392
- res.end(JSON.stringify({ error: "Invalid bot_id for this account" }));
525
+ res.end(JSON.stringify({ error: "Invalid bot_id for configured Pinto accounts" }));
526
+ return true;
527
+ }
528
+ const targetAccountId = matched.accountId;
529
+ const targetAccount = matched.account;
530
+ const targetBotId = targetAccount?.botId?.trim();
531
+ const targetAgentId = targetAccount?.agentId?.trim();
532
+ const targetObserverAgentIds = normalizeObserverAgentIds(targetAccount?.observerAgentIds)?.filter((agentId) => agentId !== targetAgentId) || [];
533
+ const configuredSecret = normalizeWebhookSecret(targetAccount?.webhookSecret);
534
+ const inboundSecret = getRequestHeader(req, PINTO_SECRET_HEADER);
535
+ if (configuredSecret && inboundSecret !== configuredSecret) {
536
+ res.statusCode = 401;
537
+ res.end(JSON.stringify({ error: "Invalid webhook secret" }));
393
538
  return true;
394
539
  }
395
540
  ctx.setStatus?.({
396
- accountId: ctx.accountId,
397
- configuredBotId,
398
- configuredAgentId: configuredAgentId || null,
399
- configuredObserverAgentIds: observerAgentIds,
541
+ accountId: targetAccountId,
542
+ configuredBotId: targetBotId,
543
+ configuredAgentId: targetAgentId || null,
544
+ configuredObserverAgentIds: targetObserverAgentIds,
400
545
  webhookPath,
401
546
  lastInboundAt: Date.now(),
402
547
  });
403
548
  const peer = { kind: "direct", id: payload.chat_id };
404
- const route = configuredAgentId
549
+ const route = targetAgentId
405
550
  ? {
406
- accountId: ctx.accountId,
551
+ accountId: targetAccountId,
407
552
  sessionKey: ctx.channelRuntime.routing.buildAgentSessionKey({
408
- agentId: configuredAgentId,
553
+ agentId: targetAgentId,
409
554
  channel: "pinto",
410
- accountId: ctx.accountId,
555
+ accountId: targetAccountId,
411
556
  peer,
412
557
  }),
413
558
  }
414
559
  : ctx.channelRuntime.routing.resolveAgentRoute({
415
560
  cfg: ctx.cfg,
416
561
  channel: "pinto",
417
- accountId: ctx.accountId,
562
+ accountId: targetAccountId,
418
563
  peer,
419
564
  });
420
565
  const buildMsgCtx = (sessionKey, accountId) => ctx.channelRuntime.reply.finalizeInboundContext({
421
566
  Body: payload.message ?? "",
567
+ BodyForAgent: payload.message ?? "",
422
568
  RawBody: payload.message ?? "",
423
569
  CommandBody: payload.message ?? "",
570
+ BodyForCommands: payload.message ?? "",
571
+ ...buildPintoImageMediaContext(payload.image_url),
424
572
  From: `pinto:${payload.user_id ?? payload.chat_id}`,
425
573
  To: `pinto:${payload.chat_id}`,
426
574
  SessionKey: sessionKey,
427
575
  AccountId: accountId,
428
576
  OriginatingChannel: "pinto",
429
577
  OriginatingTo: `pinto:${payload.chat_id}`,
578
+ ExplicitDeliverRoute: true,
430
579
  ChatType: "direct",
431
580
  SenderName: payload.username ?? payload.user_id ?? payload.chat_id,
432
581
  SenderId: payload.user_id ?? payload.chat_id,
@@ -437,14 +586,14 @@ export const pintoPlugin = {
437
586
  CommandAuthorized: true,
438
587
  });
439
588
  const msgCtx = buildMsgCtx(route.sessionKey, route.accountId);
440
- for (const observerAgentId of observerAgentIds) {
589
+ for (const observerAgentId of targetObserverAgentIds) {
441
590
  const observerSessionKey = ctx.channelRuntime.routing.buildAgentSessionKey({
442
591
  agentId: observerAgentId,
443
592
  channel: "pinto",
444
- accountId: ctx.accountId,
593
+ accountId: targetAccountId,
445
594
  peer,
446
595
  });
447
- const observerCtx = buildMsgCtx(observerSessionKey, ctx.accountId);
596
+ const observerCtx = buildMsgCtx(observerSessionKey, targetAccountId);
448
597
  // Observer agents share the inbound context but never reply back to Pinto.
449
598
  void ctx.channelRuntime.reply
450
599
  .dispatchReplyWithBufferedBlockDispatcher({
@@ -463,14 +612,11 @@ export const pintoPlugin = {
463
612
  cfg: ctx.cfg,
464
613
  dispatcherOptions: {
465
614
  deliver: async (replyPayload) => {
466
- const text = replyPayload?.text ?? replyPayload?.body;
467
- if (!text)
468
- return;
469
- await sendPintoText({
615
+ await deliverPintoReplyPayload({
470
616
  cfg: ctx.cfg,
471
- accountId: ctx.accountId,
617
+ accountId: targetAccountId,
472
618
  to: payload.chat_id,
473
- text,
619
+ payload: replyPayload,
474
620
  });
475
621
  },
476
622
  },
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpE,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAC1D,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAE5D,IAAI,OAAmB,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAa,EAAE,EAAE;IAC/C,OAAO,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC;KAC7B,KAAK,CAAC;IACL,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,MAAM,wBAAwB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACrC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9D,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;CAC1E,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;IACpD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,GAAI,GAA+B,EAAE,CAAC;IACtD,IACE,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,KAAK,CAAC,kBAAkB,KAAK,SAAS,EACtC,CAAC;QACD,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,kBAAkB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC,EACD,wBAAwB,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC,CAAC;AAEJ,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,YAAY,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAEhD,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,IAAI,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAI,KAA6B,CAAC,KAAK,CAAC;QACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,OAAO,IAAI,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,0BAA0B,EAAE;IAC3C,WAAW,EAAE,0BAA0B;CACxC,CAAC,CAAC;AAYH,MAAM,wBAAwB,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;AAE1E,MAAM,sBAAsB,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC1C,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,OAAO,CACZ,aAAa;QACX,OAAO,aAAa,KAAK,QAAQ;QACjC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7B,CACE,aAAa,CAAC,KAAK,KAAK,SAAS;YACjC,aAAa,CAAC,OAAO,KAAK,SAAS;YACnC,aAAa,CAAC,gBAAgB,KAAK,SAAS;YAC5C,aAAa,CAAC,aAAa,KAAK,SAAS;YACzC,aAAa,CAAC,kBAAkB,KAAK,SAAS;YAC9C,aAAa,CAAC,MAAM,KAAK,SAAS;YAClC,aAAa,CAAC,WAAW,KAAK,SAAS;YACvC,aAAa,CAAC,OAAO,KAAK,SAAS,CACpC,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAY,EAAE;IACjD,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,GAAQ,EAAU,EAAE;IACxD,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAChE,IACE,iBAAiB;QACjB,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACpD,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAAE,SAAyB,EAAE,EAAE;IACpE,MAAM,iBAAiB,GAAG,SAAS,IAAI,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,qBAAqB;QAC7B,WAAW,EAAE,0BAA0B;QACvC,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC;KACpC,CAAC;IAEF,IACE,MAAM,CAAC,aAAa,KAAK,SAAS;QAClC,MAAM,CAAC,kBAAkB,KAAK,SAAS,EACvC,CAAC;QACD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACnD,CAAC;IAED,OAAO;QACL,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,EAAE;IACnD,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACrD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,GAAoB,EACpB,UAAkB,EACE,EAAE;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAU,EAAE;IACtD,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAwB,EAAE;IACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5D,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC,CAAC;AAEF,KAAK,UAAU,aAAa,CAAC,MAK5B;IACC,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,EAAE,MAAM,IAAI,+BAA+B,CACnD,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,GAA+B;QAC1C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,MAAM,CAAC,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC,IAAI;KAC3B,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,0BAA0B,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC;QACzC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAoB,EACpB,OAAoB,EACL,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,YAAY,CACzB,GAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAwB,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAqD;IAC3E,EAAE,EAAE,OAAO;IACX,IAAI,EAAE;QACJ,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,YAAY;QACnB,cAAc,EAAE,kBAAkB;QAClC,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,iCAAiC;KACxC;IACR,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAC9C,YAAY,EAAE,wBAAwB,CAAC,wBAAwB,CAAC;IAChE,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,EAAE,OAAO,EAAoB,EAAE,EAAE;YACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,sFAAsF,CACvF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CACX,2FAA2F,CAC5F,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;gBAC1E,QAAQ,CAAC,IAAI,CACX,gDAAgD,WAAW,iCAAiC,CAC7F,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,kBAAkB;QAC5E,kBAAkB,EAAE,CAAC,EACnB,GAAG,EACH,SAAS,EACT,KAAK,GAKN,EAAE,EAAE;YACH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,qBAAqB,GAAG,sBAAsB,CAClD,QAAQ,CAAC,aAAa,CACvB,CAAC;YACF,MAAM,SAAS,GACb,KAAK,CAAC,KAAK,KAAK,SAAS;gBACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS;gBACjC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;YAC1C,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,KAAK,SAAS;gBACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS;gBACnC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;YAC5C,MAAM,oBAAoB,GACxB,KAAK,CAAC,gBAAgB,KAAK,SAAS;gBAClC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACnD,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC3D,MAAM,eAAe,GACnB,KAAK,CAAC,WAAW,KAAK,SAAS;gBAC7B,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACjD,OAAO,4BAA4B,CAAC;gBAClC,GAAG;gBACH,UAAU,EAAE,OAAO;gBACnB,SAAS;gBACT,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EACJ,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,MAAM,IAAI,qBAAqB;oBAClE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,oBAAoB;wBACtB,CAAC,CAAC,EAAE,gBAAgB,EAAE,oBAAoB,EAAE;wBAC5C,CAAC,CAAC,EAAE,CAAC;oBACP,aAAa,EACX,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;wBACtD,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC5D,0BAA0B,EAAE;oBAC9B,WAAW,EAAE,eAAe;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC;KACF;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,KAAK;QACrB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;KACf;IAED,MAAM,EAAE;QACN,cAAc,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC;QACtD,gBAAgB,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC;QACjE,iBAAiB,EAAE,CAAC,EAClB,GAAG,EACH,SAAS,EACT,OAAO,GAKR,EAAE,EAAE,CACH,gCAAgC,CAAC;YAC/B,GAAG;YACH,UAAU,EAAE,OAAO;YACnB,SAAS;YACT,OAAO;YACP,aAAa,EAAE,IAAI;SACpB,CAAC;QACJ,cAAc,EAAE,CAAC,GAAQ,EAAE,SAAiB,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO;gBACL,EAAE,EAAE,SAAS,IAAI,SAAS;gBAC1B,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI;aAC9B,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,CAAC,GAAQ,EAAE,SAAiB,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtC,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC;QACD,YAAY,EAAE,CAAC,OAAY,EAAE,EAAE;YAC7B,OAAO,OAAO,CACZ,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAChE,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,mBAAmB;YAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CACjB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAChE;YACD,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI;YAC5C,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI;YAChD,gBAAgB,EACd,yBAAyB,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,EAAE;YACnE,WAAW,EACT,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,0BAA0B;SACpE,CAAC;KACI;IAER,QAAQ,EAAE;QACR,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/C,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAE7C,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,EAAE,MAAM,IAAI,+BAA+B,CACnD,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAErE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,OAAO,GAA+B;gBAC1C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,QAAQ;aACpB,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,0BAA0B,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC;gBACzC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChE,CAAC;KACF;IAED,OAAO,EAAE;QACP,YAAY,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/C,MAAM,iBAAiB,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACnD,MAAM,gBAAgB,GACpB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAC1D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAC3C,IAAI,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/D,IACE,OAAO,EAAE,OAAO,KAAK,KAAK;gBAC1B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;gBACxB,CAAC,eAAe,EAChB,CAAC;gBACD,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CACb,6DAA6D,CAC9D,CAAC;gBACF,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,UAAU,GAAG,uBAAuB,CAAC;gBACzC,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,IAAI;gBACrB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC1B,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;4BACzB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;4BACrB,GAAG,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;4BACpD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;4BACxD,OAAO,IAAI,CAAC;wBACd,CAAC;wBAED,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,OAAO,EAAE,aAAa,CACvB,CAAC;wBACF,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;wBACjE,IAAI,gBAAgB,IAAI,aAAa,KAAK,gBAAgB,EAAE,CAAC;4BAC3D,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;4BACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;4BAC7D,OAAO,IAAI,CAAC;wBACd,CAAC;wBAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;wBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;4BACxC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;4BACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;4BAC9D,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;4BACvC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;4BACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;4BACtE,OAAO,IAAI,CAAC;wBACd,CAAC;wBAED,GAAG,CAAC,SAAS,EAAE,CAAC;4BACd,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,eAAe;4BACf,iBAAiB,EAAE,iBAAiB,IAAI,IAAI;4BAC5C,0BAA0B,EAAE,gBAAgB;4BAC5C,WAAW;4BACX,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;yBAC1B,CAAC,CAAC;wBAEH,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;wBACrD,MAAM,KAAK,GAAG,iBAAiB;4BAC7B,CAAC,CAAC;gCACE,SAAS,EAAE,GAAG,CAAC,SAAS;gCACxB,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC;oCAC1D,OAAO,EAAE,iBAAiB;oCAC1B,OAAO,EAAE,OAAO;oCAChB,SAAS,EAAE,GAAG,CAAC,SAAS;oCACxB,IAAI;iCACL,CAAC;6BACH;4BACH,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC;gCAC3C,GAAG,EAAE,GAAG,CAAC,GAAG;gCACZ,OAAO,EAAE,OAAO;gCAChB,SAAS,EAAE,GAAG,CAAC,SAAS;gCACxB,IAAI;6BACL,CAAC,CAAC;wBAEP,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAE,SAAiB,EAAE,EAAE,CAC5D,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC;4BAChD,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;4BAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;4BAC9B,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;4BAClC,IAAI,EAAE,SAAS,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;4BACnD,EAAE,EAAE,SAAS,OAAO,CAAC,OAAO,EAAE;4BAC9B,UAAU,EAAE,UAAU;4BACtB,SAAS,EAAE,SAAS;4BACpB,kBAAkB,EAAE,OAAO;4BAC3B,aAAa,EAAE,SAAS,OAAO,CAAC,OAAO,EAAE;4BACzC,QAAQ,EAAE,QAAQ;4BAClB,UAAU,EACR,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;4BACxD,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;4BAC5C,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,OAAO;4BAChB,iBAAiB,EAAE,UAAU,OAAO,CAAC,OAAO,EAAE;4BAC9C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;4BACrB,iBAAiB,EAAE,IAAI;yBACxB,CAAC,CAAC;wBAEH,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;wBAE9D,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;4BAC/C,MAAM,kBAAkB,GACtB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC;gCAC9C,OAAO,EAAE,eAAe;gCACxB,OAAO,EAAE,OAAO;gCAChB,SAAS,EAAE,GAAG,CAAC,SAAS;gCACxB,IAAI;6BACL,CAAC,CAAC;4BACL,MAAM,WAAW,GAAG,WAAW,CAC7B,kBAAkB,EAClB,GAAG,CAAC,SAAS,CACd,CAAC;4BAEF,2EAA2E;4BAC3E,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK;iCAC1B,wCAAwC,CAAC;gCACxC,GAAG,EAAE,WAAW;gCAChB,GAAG,EAAE,GAAG,CAAC,GAAG;gCACZ,iBAAiB,EAAE;oCACjB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;iCAC/B;6BACF,CAAC;iCACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;gCACpB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CACb,gCAAgC,eAAe,YAC7C,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAChC,EAAE,CACH,CAAC;4BACJ,CAAC,CAAC,CAAC;wBACP,CAAC;wBAED,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,wCAAwC,CACrE;4BACE,GAAG,EAAE,MAAM;4BACX,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,iBAAiB,EAAE;gCACjB,OAAO,EAAE,KAAK,EAAE,YAGf,EAAE,EAAE;oCACH,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,IAAI,YAAY,EAAE,IAAI,CAAC;oCACtD,IAAI,CAAC,IAAI;wCAAE,OAAO;oCAClB,MAAM,aAAa,CAAC;wCAClB,GAAG,EAAE,GAAG,CAAC,GAAG;wCACZ,SAAS,EAAE,GAAG,CAAC,SAAS;wCACxB,EAAE,EAAE,OAAO,CAAC,OAAO;wCACnB,IAAI;qCACL,CAAC,CAAC;gCACL,CAAC;6BACF;yBACF,CACF,CAAC;wBAEF,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;wBACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;wBACnE,OAAO,IAAI,CAAC;oBACd,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CACd,gCAAgC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAClE,CAAC;wBACF,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;wBACrB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,KAAK,EAAE,uBAAuB;4BAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;yBACxC,CAAC,CACH,CAAC;wBACF,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { OpenClawPluginApi } from "openclaw/plugin-sdk/mattermost";
1
+ import type { OpenClawPluginApi } from "openclaw/plugin-sdk/core";
2
2
  declare const plugin: {
3
3
  id: string;
4
4
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAOxE,QAAA,MAAM,MAAM;;;;kBAKI,iBAAiB;CA6ChC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,QAAA,MAAM,MAAM;;;;kBAKI,iBAAiB;CA6ChC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,14 +1,88 @@
1
1
  {
2
- "id": "pinto-app-openclaw",
3
- "name": "Pinto Chat",
4
- "description": "Integration with Pinto Chat API",
5
- "version": "1.3.18",
6
- "channels": [
7
- "pinto"
8
- ],
9
- "configSchema": {
2
+ "id": "pinto-app-openclaw",
3
+ "name": "Pinto Chat",
4
+ "description": "Integration with Pinto Chat API",
5
+ "version": "1.3.18",
6
+ "channels": [
7
+ "pinto"
8
+ ],
9
+ "channelConfigs": {
10
+ "pinto": {
11
+ "label": "Pinto Chat",
12
+ "selectionLabel": "Pinto (Chat Bot)",
13
+ "blurb": "Pinto App Thailand",
14
+ "schema": {
15
+ "$schema": "http://json-schema.org/draft-07/schema#",
10
16
  "type": "object",
11
17
  "additionalProperties": false,
12
- "properties": {}
18
+ "properties": {
19
+ "enabled": { "type": "boolean" },
20
+ "apiUrl": { "type": "string" },
21
+ "botId": { "type": "string" },
22
+ "agentId": { "type": "string" },
23
+ "observerAgentIds": {
24
+ "type": "array",
25
+ "items": { "type": "string" }
26
+ },
27
+ "webhookSecret": {
28
+ "anyOf": [
29
+ { "type": "string" },
30
+ {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "source": { "type": "string" },
35
+ "provider": { "type": "string" },
36
+ "id": { "type": "string" },
37
+ "value": { "type": "string" }
38
+ }
39
+ }
40
+ ]
41
+ },
42
+ "webhookHeaderValue": { "type": "string" },
43
+ "webhookPath": { "type": "string" },
44
+ "defaultAccount": { "type": "string" },
45
+ "accounts": {
46
+ "type": "object",
47
+ "additionalProperties": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "properties": {
51
+ "enabled": { "type": "boolean" },
52
+ "apiUrl": { "type": "string" },
53
+ "botId": { "type": "string" },
54
+ "agentId": { "type": "string" },
55
+ "observerAgentIds": {
56
+ "type": "array",
57
+ "items": { "type": "string" }
58
+ },
59
+ "webhookSecret": {
60
+ "anyOf": [
61
+ { "type": "string" },
62
+ {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "properties": {
66
+ "source": { "type": "string" },
67
+ "provider": { "type": "string" },
68
+ "id": { "type": "string" },
69
+ "value": { "type": "string" }
70
+ }
71
+ }
72
+ ]
73
+ },
74
+ "webhookHeaderValue": { "type": "string" },
75
+ "webhookPath": { "type": "string" }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
13
81
  }
14
- }
82
+ },
83
+ "configSchema": {
84
+ "type": "object",
85
+ "additionalProperties": false,
86
+ "properties": {}
87
+ }
88
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinto-app-openclaw",
3
- "version": "1.3.18",
3
+ "version": "1.3.19",
4
4
  "description": "OpenClaw Channel Plugin for Pinto Chat",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",