pinto-app-openclaw 1.3.18 → 1.3.21
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 +40 -33
- package/dist/channel.d.ts +1 -1
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +358 -57
- package/dist/channel.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/openclaw.plugin.json +84 -10
- package/package.json +4 -6
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ flow การทำงาน:
|
|
|
29
29
|
- OpenClaw ที่รันได้แล้ว
|
|
30
30
|
- Node.js 20+ และ npm
|
|
31
31
|
- Pinto bot ที่สร้างไว้แล้ว
|
|
32
|
-
- Bot
|
|
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
|
|
86
|
-
-
|
|
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
|
-
-
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
|
391
|
-
- ใช้ค่า `
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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`
|
|
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
|
|
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
|
|
669
|
-
-
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
|
948
|
-
- Use the bot `
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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`
|
|
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/
|
|
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;
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"
|
|
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;AAiEF,eAAO,MAAM,8BAA8B;;;;;;;CAOzC,CAAC;AAkkBH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,GAAG,CAAA;CAyYvE,CAAC"}
|
package/dist/channel.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { DEFAULT_ACCOUNT_ID, buildChannelConfigSchema, setAccountEnabledInConfigSection, } from "openclaw/plugin-sdk/core";
|
|
2
|
+
import { applySetupAccountConfigPatch } from "openclaw/plugin-sdk/setup";
|
|
3
|
+
import { registerPluginHttpRoute } from "openclaw/plugin-sdk/webhook-ingress";
|
|
4
|
+
import { z } from "openclaw/plugin-sdk/zod";
|
|
4
5
|
const stripTrailingSlash = (url) => url.replace(/\/+$/, "");
|
|
5
6
|
const PINTO_SECRET_HEADER = "x-pinto-secret";
|
|
6
7
|
const DEFAULT_PINTO_API_URL = "https://api.pinto-app.com";
|
|
@@ -43,10 +44,11 @@ const PintoChannelConfigSchema = z.preprocess((raw) => {
|
|
|
43
44
|
delete value.webhookHeaderValue;
|
|
44
45
|
return value;
|
|
45
46
|
}, PintoAccountConfigSchema.extend({
|
|
46
|
-
accounts: z
|
|
47
|
+
accounts: z
|
|
48
|
+
.record(z.string(), PintoAccountConfigSchema.optional())
|
|
49
|
+
.optional(),
|
|
47
50
|
defaultAccount: z.string().trim().min(1).optional(),
|
|
48
51
|
}));
|
|
49
|
-
const generatePintoWebhookSecret = () => `pinto-oc-${randomBytes(12).toString("hex")}`;
|
|
50
52
|
const normalizeWebhookSecret = (value) => {
|
|
51
53
|
if (typeof value === "string") {
|
|
52
54
|
const trimmed = value.trim();
|
|
@@ -66,7 +68,7 @@ export const buildDefaultPintoChannelConfig = () => ({
|
|
|
66
68
|
apiUrl: DEFAULT_PINTO_API_URL,
|
|
67
69
|
botId: "",
|
|
68
70
|
agentId: "",
|
|
69
|
-
webhookSecret:
|
|
71
|
+
webhookSecret: "",
|
|
70
72
|
webhookPath: DEFAULT_PINTO_WEBHOOK_PATH,
|
|
71
73
|
});
|
|
72
74
|
const getRawPintoChannelConfig = (cfg) => cfg?.channels?.pinto ?? {};
|
|
@@ -119,6 +121,20 @@ const getPintoChannelConfig = (cfg, accountId) => {
|
|
|
119
121
|
...merged,
|
|
120
122
|
};
|
|
121
123
|
};
|
|
124
|
+
const findPintoAccountByBotId = (cfg, botId) => {
|
|
125
|
+
const targetBotId = botId.trim();
|
|
126
|
+
if (!targetBotId)
|
|
127
|
+
return null;
|
|
128
|
+
for (const accountId of listPintoAccountIds(cfg)) {
|
|
129
|
+
const account = getPintoChannelConfig(cfg, accountId);
|
|
130
|
+
if (account?.enabled === false)
|
|
131
|
+
continue;
|
|
132
|
+
if (account?.botId?.trim() === targetBotId) {
|
|
133
|
+
return { accountId, account };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
};
|
|
122
138
|
const buildPintoHeaders = (webhookSecret) => {
|
|
123
139
|
const headers = {
|
|
124
140
|
"Content-Type": "application/json",
|
|
@@ -152,6 +168,234 @@ const normalizeObserverAgentIds = (value) => {
|
|
|
152
168
|
.filter(Boolean);
|
|
153
169
|
return normalized.length ? Array.from(new Set(normalized)) : undefined;
|
|
154
170
|
};
|
|
171
|
+
const normalizePintoImageUrl = (value) => {
|
|
172
|
+
if (typeof value !== "string") {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const trimmed = value.trim();
|
|
176
|
+
return trimmed || undefined;
|
|
177
|
+
};
|
|
178
|
+
const PINTO_DIRECT_IMAGE_URL_KEYS = [
|
|
179
|
+
"image_url",
|
|
180
|
+
"imageUrl",
|
|
181
|
+
"media_url",
|
|
182
|
+
"mediaUrl",
|
|
183
|
+
"MediaUrl",
|
|
184
|
+
"url",
|
|
185
|
+
];
|
|
186
|
+
const PINTO_NESTED_IMAGE_URL_KEYS = [
|
|
187
|
+
...PINTO_DIRECT_IMAGE_URL_KEYS,
|
|
188
|
+
"file_url",
|
|
189
|
+
"fileUrl",
|
|
190
|
+
"download_url",
|
|
191
|
+
"downloadUrl",
|
|
192
|
+
"href",
|
|
193
|
+
"src",
|
|
194
|
+
];
|
|
195
|
+
const PINTO_MEDIA_CONTAINER_KEYS = [
|
|
196
|
+
"attachment",
|
|
197
|
+
"attachments",
|
|
198
|
+
"file",
|
|
199
|
+
"files",
|
|
200
|
+
"image",
|
|
201
|
+
"images",
|
|
202
|
+
"media",
|
|
203
|
+
"medias",
|
|
204
|
+
];
|
|
205
|
+
const PINTO_SENSITIVE_LOG_KEY_PATTERN = /(authorization|credential|password|secret|signature|token|webhook_secret|api[-_]?key)/i;
|
|
206
|
+
const PINTO_URL_LOG_KEY_PATTERN = /(href|src|uri|url)$/i;
|
|
207
|
+
const sanitizePintoLogString = (value, key) => {
|
|
208
|
+
const trimmed = value.length > 500 ? `${value.slice(0, 500)}...` : value;
|
|
209
|
+
if (!key || !PINTO_URL_LOG_KEY_PATTERN.test(key)) {
|
|
210
|
+
return trimmed;
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const parsed = new URL(value);
|
|
214
|
+
const query = parsed.search ? "?[redacted-query]" : "";
|
|
215
|
+
const hash = parsed.hash ? "#[redacted-fragment]" : "";
|
|
216
|
+
return `${parsed.origin}${parsed.pathname}${query}${hash}`;
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
return trimmed;
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
const resolvePintoImageUrlFromValue = (value, source, depth = 0) => {
|
|
223
|
+
if (depth > 5) {
|
|
224
|
+
return undefined;
|
|
225
|
+
}
|
|
226
|
+
const stringUrl = normalizePintoImageUrl(value);
|
|
227
|
+
if (stringUrl) {
|
|
228
|
+
return { url: stringUrl, source };
|
|
229
|
+
}
|
|
230
|
+
if (Array.isArray(value)) {
|
|
231
|
+
for (const [index, item] of value.entries()) {
|
|
232
|
+
const resolved = resolvePintoImageUrlFromValue(item, `${source}[${index}]`, depth + 1);
|
|
233
|
+
if (resolved) {
|
|
234
|
+
return resolved;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
if (!value || typeof value !== "object") {
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
const record = value;
|
|
243
|
+
for (const key of PINTO_NESTED_IMAGE_URL_KEYS) {
|
|
244
|
+
const resolved = resolvePintoImageUrlFromValue(record[key], `${source}.${key}`, depth + 1);
|
|
245
|
+
if (resolved) {
|
|
246
|
+
return resolved;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
for (const key of PINTO_MEDIA_CONTAINER_KEYS) {
|
|
250
|
+
const resolved = resolvePintoImageUrlFromValue(record[key], `${source}.${key}`, depth + 1);
|
|
251
|
+
if (resolved) {
|
|
252
|
+
return resolved;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return undefined;
|
|
256
|
+
};
|
|
257
|
+
const resolvePintoInboundImageUrl = (payload) => {
|
|
258
|
+
const record = payload;
|
|
259
|
+
for (const key of PINTO_DIRECT_IMAGE_URL_KEYS) {
|
|
260
|
+
const resolved = resolvePintoImageUrlFromValue(record[key], key);
|
|
261
|
+
if (resolved) {
|
|
262
|
+
return resolved;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
for (const key of PINTO_MEDIA_CONTAINER_KEYS) {
|
|
266
|
+
const resolved = resolvePintoImageUrlFromValue(record[key], key);
|
|
267
|
+
if (resolved) {
|
|
268
|
+
return resolved;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return undefined;
|
|
272
|
+
};
|
|
273
|
+
const sanitizePintoWebhookPayloadForLog = (value, depth = 0, key) => {
|
|
274
|
+
if (depth > 5) {
|
|
275
|
+
return "[max-depth]";
|
|
276
|
+
}
|
|
277
|
+
if (typeof value === "string") {
|
|
278
|
+
return sanitizePintoLogString(value, key);
|
|
279
|
+
}
|
|
280
|
+
if (Array.isArray(value)) {
|
|
281
|
+
const sanitized = value
|
|
282
|
+
.slice(0, 20)
|
|
283
|
+
.map((item) => sanitizePintoWebhookPayloadForLog(item, depth + 1, key));
|
|
284
|
+
return value.length > 20
|
|
285
|
+
? [...sanitized, `[${value.length - 20} more items]`]
|
|
286
|
+
: sanitized;
|
|
287
|
+
}
|
|
288
|
+
if (!value || typeof value !== "object") {
|
|
289
|
+
return value;
|
|
290
|
+
}
|
|
291
|
+
const sanitized = {};
|
|
292
|
+
for (const [key, item] of Object.entries(value)) {
|
|
293
|
+
sanitized[key] = PINTO_SENSITIVE_LOG_KEY_PATTERN.test(key)
|
|
294
|
+
? "[redacted]"
|
|
295
|
+
: sanitizePintoWebhookPayloadForLog(item, depth + 1, key);
|
|
296
|
+
}
|
|
297
|
+
return sanitized;
|
|
298
|
+
};
|
|
299
|
+
const logPintoWebhookPayload = (log, payload, imageUrl) => {
|
|
300
|
+
const record = payload;
|
|
301
|
+
const keys = Object.keys(record).sort();
|
|
302
|
+
const isImageEvent = payload.message === "chat.sentImage" ||
|
|
303
|
+
payload.image_url !== undefined ||
|
|
304
|
+
payload.imageUrl !== undefined ||
|
|
305
|
+
payload.media_url !== undefined ||
|
|
306
|
+
payload.mediaUrl !== undefined ||
|
|
307
|
+
payload.attachment !== undefined ||
|
|
308
|
+
payload.attachments !== undefined ||
|
|
309
|
+
payload.file !== undefined ||
|
|
310
|
+
payload.files !== undefined ||
|
|
311
|
+
payload.image !== undefined ||
|
|
312
|
+
payload.images !== undefined ||
|
|
313
|
+
payload.media !== undefined ||
|
|
314
|
+
payload.medias !== undefined;
|
|
315
|
+
log?.debug?.(`[PintoPlugin] Webhook payload keys: ${keys.join(", ") || "(none)"}`);
|
|
316
|
+
if (!isImageEvent) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
const sanitizedPayload = JSON.stringify(sanitizePintoWebhookPayloadForLog(payload));
|
|
320
|
+
if (imageUrl) {
|
|
321
|
+
log?.info?.(`[PintoPlugin] Inbound image URL resolved from ${imageUrl.source}. Payload: ${sanitizedPayload}`);
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
log?.warn?.(`[PintoPlugin] Inbound image payload has no supported media URL. Payload keys: ${keys.join(", ") || "(none)"}. Payload: ${sanitizedPayload}`);
|
|
325
|
+
};
|
|
326
|
+
const inferPintoImageMimeType = (imageUrl) => {
|
|
327
|
+
let pathname = imageUrl;
|
|
328
|
+
try {
|
|
329
|
+
pathname = new URL(imageUrl).pathname;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
pathname = imageUrl.split(/[?#]/, 1)[0] ?? imageUrl;
|
|
333
|
+
}
|
|
334
|
+
const extension = pathname.toLowerCase().match(/\.([a-z0-9]+)$/)?.[1];
|
|
335
|
+
switch (extension) {
|
|
336
|
+
case "jpg":
|
|
337
|
+
case "jpeg":
|
|
338
|
+
return "image/jpeg";
|
|
339
|
+
case "png":
|
|
340
|
+
return "image/png";
|
|
341
|
+
case "webp":
|
|
342
|
+
return "image/webp";
|
|
343
|
+
case "gif":
|
|
344
|
+
return "image/gif";
|
|
345
|
+
case "heic":
|
|
346
|
+
return "image/heic";
|
|
347
|
+
case "heif":
|
|
348
|
+
return "image/heif";
|
|
349
|
+
case "bmp":
|
|
350
|
+
return "image/bmp";
|
|
351
|
+
case "tif":
|
|
352
|
+
case "tiff":
|
|
353
|
+
return "image/tiff";
|
|
354
|
+
default:
|
|
355
|
+
return undefined;
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
const buildPintoImageMediaContext = (imageUrlValue) => {
|
|
359
|
+
const imageUrl = normalizePintoImageUrl(imageUrlValue);
|
|
360
|
+
if (!imageUrl) {
|
|
361
|
+
return {};
|
|
362
|
+
}
|
|
363
|
+
const mediaType = inferPintoImageMimeType(imageUrl) ?? "image/*";
|
|
364
|
+
return {
|
|
365
|
+
MediaUrl: imageUrl,
|
|
366
|
+
MediaUrls: [imageUrl],
|
|
367
|
+
MediaType: mediaType,
|
|
368
|
+
MediaTypes: [mediaType],
|
|
369
|
+
};
|
|
370
|
+
};
|
|
371
|
+
const stripPintoPrefix = (id) => id.replace(/^pinto:/, "");
|
|
372
|
+
const buildPintoApiError = async (res) => {
|
|
373
|
+
const detail = await res
|
|
374
|
+
.text()
|
|
375
|
+
.then((body) => body.trim())
|
|
376
|
+
.catch(() => "");
|
|
377
|
+
const detailSuffix = detail ? `: ${detail}` : "";
|
|
378
|
+
return `Pinto API error: ${res.status} ${res.statusText}${detailSuffix}`;
|
|
379
|
+
};
|
|
380
|
+
const resolvePintoReplyText = (payload) => {
|
|
381
|
+
const text = typeof payload.text === "string"
|
|
382
|
+
? payload.text
|
|
383
|
+
: typeof payload.body === "string"
|
|
384
|
+
? payload.body
|
|
385
|
+
: "";
|
|
386
|
+
const trimmed = text.trim();
|
|
387
|
+
return trimmed || undefined;
|
|
388
|
+
};
|
|
389
|
+
const resolvePintoReplyMediaUrls = (payload) => {
|
|
390
|
+
const mediaUrls = Array.isArray(payload.mediaUrls)
|
|
391
|
+
? payload.mediaUrls
|
|
392
|
+
: payload.mediaUrl
|
|
393
|
+
? [payload.mediaUrl]
|
|
394
|
+
: [];
|
|
395
|
+
return mediaUrls
|
|
396
|
+
.map((mediaUrl) => (typeof mediaUrl === "string" ? mediaUrl.trim() : ""))
|
|
397
|
+
.filter(Boolean);
|
|
398
|
+
};
|
|
155
399
|
async function sendPintoText(params) {
|
|
156
400
|
const account = getPintoChannelConfig(params.cfg, params.accountId);
|
|
157
401
|
const apiUrl = stripTrailingSlash(account?.apiUrl ?? "https://api-dev.pinto-app.com");
|
|
@@ -162,7 +406,7 @@ async function sendPintoText(params) {
|
|
|
162
406
|
}
|
|
163
407
|
const payload = {
|
|
164
408
|
bot_id: botId,
|
|
165
|
-
chat_id: params.to,
|
|
409
|
+
chat_id: stripPintoPrefix(params.to),
|
|
166
410
|
reply_message: params.text,
|
|
167
411
|
};
|
|
168
412
|
const res = await fetch(`${apiUrl}/v1/bots/webhook/receive`, {
|
|
@@ -171,10 +415,59 @@ async function sendPintoText(params) {
|
|
|
171
415
|
body: JSON.stringify(payload),
|
|
172
416
|
});
|
|
173
417
|
if (!res.ok) {
|
|
174
|
-
throw new Error(
|
|
418
|
+
throw new Error(await buildPintoApiError(res));
|
|
175
419
|
}
|
|
176
420
|
return { channel: "pinto", messageId: Date.now().toString() };
|
|
177
421
|
}
|
|
422
|
+
async function sendPintoMedia(params) {
|
|
423
|
+
const account = getPintoChannelConfig(params.cfg, params.accountId);
|
|
424
|
+
const apiUrl = stripTrailingSlash(account?.apiUrl ?? "https://api-dev.pinto-app.com");
|
|
425
|
+
const botId = account?.botId?.trim();
|
|
426
|
+
const webhookSecret = normalizeWebhookSecret(account?.webhookSecret);
|
|
427
|
+
if (!botId) {
|
|
428
|
+
throw new Error("Pinto botId is not configured");
|
|
429
|
+
}
|
|
430
|
+
const payload = {
|
|
431
|
+
bot_id: botId,
|
|
432
|
+
chat_id: stripPintoPrefix(params.to),
|
|
433
|
+
reply_message: params.text ?? "",
|
|
434
|
+
media_url: params.mediaUrl,
|
|
435
|
+
};
|
|
436
|
+
const res = await fetch(`${apiUrl}/v1/bots/webhook/receive`, {
|
|
437
|
+
method: "POST",
|
|
438
|
+
headers: buildPintoHeaders(webhookSecret),
|
|
439
|
+
body: JSON.stringify(payload),
|
|
440
|
+
});
|
|
441
|
+
if (!res.ok) {
|
|
442
|
+
throw new Error(await buildPintoApiError(res));
|
|
443
|
+
}
|
|
444
|
+
return { channel: "pinto", messageId: Date.now().toString() };
|
|
445
|
+
}
|
|
446
|
+
async function deliverPintoReplyPayload(params) {
|
|
447
|
+
const text = resolvePintoReplyText(params.payload);
|
|
448
|
+
const mediaUrls = resolvePintoReplyMediaUrls(params.payload);
|
|
449
|
+
if (mediaUrls.length > 0) {
|
|
450
|
+
for (const [index, mediaUrl] of mediaUrls.entries()) {
|
|
451
|
+
await sendPintoMedia({
|
|
452
|
+
cfg: params.cfg,
|
|
453
|
+
accountId: params.accountId,
|
|
454
|
+
to: params.to,
|
|
455
|
+
text: index === 0 ? text : undefined,
|
|
456
|
+
mediaUrl,
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
if (!text) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
await sendPintoText({
|
|
465
|
+
cfg: params.cfg,
|
|
466
|
+
accountId: params.accountId,
|
|
467
|
+
to: params.to,
|
|
468
|
+
text,
|
|
469
|
+
});
|
|
470
|
+
}
|
|
178
471
|
const waitUntilAbort = (signal, onAbort) => new Promise((resolve) => {
|
|
179
472
|
const complete = () => {
|
|
180
473
|
onAbort?.();
|
|
@@ -218,10 +511,10 @@ export const pintoPlugin = {
|
|
|
218
511
|
const warnings = [];
|
|
219
512
|
const webhookPath = normalizeWebhookPath(account?.config?.webhookPath);
|
|
220
513
|
if (!account?.config?.botId?.trim()) {
|
|
221
|
-
warnings.push("Pinto botId is not configured. Set channels.pinto.botId to
|
|
514
|
+
warnings.push("Pinto botId is not configured. Set channels.pinto.botId to the real Pinto bot id.");
|
|
222
515
|
}
|
|
223
516
|
if (!normalizeWebhookSecret(account?.config?.webhookSecret)) {
|
|
224
|
-
warnings.push("Pinto webhookSecret is empty. Set channels.pinto.webhookSecret
|
|
517
|
+
warnings.push("Pinto webhookSecret is empty. Set channels.pinto.webhookSecret if you want webhook secret validation.");
|
|
225
518
|
}
|
|
226
519
|
if (webhookPath !== (account?.config?.webhookPath?.trim() || webhookPath)) {
|
|
227
520
|
warnings.push(`Pinto webhookPath should start with '/'. Use ${webhookPath} as channels.pinto.webhookPath.`);
|
|
@@ -261,7 +554,7 @@ export const pintoPlugin = {
|
|
|
261
554
|
: {}),
|
|
262
555
|
webhookSecret: (inputWebhookSecret ? input.webhookSecret : undefined) ||
|
|
263
556
|
(resolvedWebhookSecret ? resolved.webhookSecret : undefined) ||
|
|
264
|
-
|
|
557
|
+
"",
|
|
265
558
|
webhookPath: nextWebhookPath,
|
|
266
559
|
},
|
|
267
560
|
});
|
|
@@ -274,6 +567,15 @@ export const pintoPlugin = {
|
|
|
274
567
|
reactions: false,
|
|
275
568
|
threads: false,
|
|
276
569
|
},
|
|
570
|
+
agentPrompt: {
|
|
571
|
+
messageToolHints: () => [
|
|
572
|
+
"",
|
|
573
|
+
"### Pinto Reply Behavior",
|
|
574
|
+
"- For an inbound Pinto chat, reply with normal assistant text. The Pinto plugin automatically sends your final reply back to the current Pinto chat.",
|
|
575
|
+
"- Do not call the Pinto API, include `bot_id`/`chat_id` JSON, or explain webhook delivery unless the user asks about integration details.",
|
|
576
|
+
"- Keep Pinto replies concise and conversational. If you include media, use a public `mediaUrl`/`mediaUrls` payload when the channel tooling supports it.",
|
|
577
|
+
],
|
|
578
|
+
},
|
|
277
579
|
config: {
|
|
278
580
|
listAccountIds: (cfg) => listPintoAccountIds(cfg),
|
|
279
581
|
defaultAccountId: (cfg) => resolveDefaultPintoAccountId(cfg),
|
|
@@ -320,28 +622,10 @@ export const pintoPlugin = {
|
|
|
320
622
|
deliveryMode: "direct",
|
|
321
623
|
sendText: async ({ to, text, accountId, cfg }) => sendPintoText({ cfg, accountId, to, text }),
|
|
322
624
|
sendMedia: async ({ to, text, mediaUrl, accountId, cfg }) => {
|
|
323
|
-
|
|
324
|
-
|
|
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}`);
|
|
625
|
+
if (!mediaUrl) {
|
|
626
|
+
throw new Error("Pinto mediaUrl is not configured");
|
|
343
627
|
}
|
|
344
|
-
return {
|
|
628
|
+
return sendPintoMedia({ cfg, accountId, to, text, mediaUrl });
|
|
345
629
|
},
|
|
346
630
|
},
|
|
347
631
|
gateway: {
|
|
@@ -374,11 +658,10 @@ export const pintoPlugin = {
|
|
|
374
658
|
res.end(JSON.stringify({ ok: true, channel: "pinto" }));
|
|
375
659
|
return true;
|
|
376
660
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
res.
|
|
381
|
-
res.end(JSON.stringify({ error: "Invalid webhook secret" }));
|
|
661
|
+
if (req.method !== "POST") {
|
|
662
|
+
res.statusCode = 405;
|
|
663
|
+
res.setHeader?.("Content-Type", "application/json");
|
|
664
|
+
res.end(JSON.stringify({ error: "Method Not Allowed" }));
|
|
382
665
|
return true;
|
|
383
666
|
}
|
|
384
667
|
const payload = await readJsonBody(req);
|
|
@@ -387,46 +670,67 @@ export const pintoPlugin = {
|
|
|
387
670
|
res.end(JSON.stringify({ error: "Missing required fields" }));
|
|
388
671
|
return true;
|
|
389
672
|
}
|
|
390
|
-
|
|
673
|
+
const matched = findPintoAccountByBotId(ctx.cfg, payload.bot_id);
|
|
674
|
+
if (!matched) {
|
|
391
675
|
res.statusCode = 403;
|
|
392
|
-
res.end(JSON.stringify({
|
|
676
|
+
res.end(JSON.stringify({
|
|
677
|
+
error: "Invalid bot_id for configured Pinto accounts",
|
|
678
|
+
}));
|
|
679
|
+
return true;
|
|
680
|
+
}
|
|
681
|
+
const targetAccountId = matched.accountId;
|
|
682
|
+
const targetAccount = matched.account;
|
|
683
|
+
const targetBotId = targetAccount?.botId?.trim();
|
|
684
|
+
const targetAgentId = targetAccount?.agentId?.trim();
|
|
685
|
+
const targetObserverAgentIds = normalizeObserverAgentIds(targetAccount?.observerAgentIds)?.filter((agentId) => agentId !== targetAgentId) || [];
|
|
686
|
+
const configuredSecret = normalizeWebhookSecret(targetAccount?.webhookSecret);
|
|
687
|
+
const inboundSecret = getRequestHeader(req, PINTO_SECRET_HEADER);
|
|
688
|
+
if (configuredSecret && inboundSecret !== configuredSecret) {
|
|
689
|
+
res.statusCode = 401;
|
|
690
|
+
res.end(JSON.stringify({ error: "Invalid webhook secret" }));
|
|
393
691
|
return true;
|
|
394
692
|
}
|
|
395
693
|
ctx.setStatus?.({
|
|
396
|
-
accountId:
|
|
397
|
-
configuredBotId,
|
|
398
|
-
configuredAgentId:
|
|
399
|
-
configuredObserverAgentIds:
|
|
694
|
+
accountId: targetAccountId,
|
|
695
|
+
configuredBotId: targetBotId,
|
|
696
|
+
configuredAgentId: targetAgentId || null,
|
|
697
|
+
configuredObserverAgentIds: targetObserverAgentIds,
|
|
400
698
|
webhookPath,
|
|
401
699
|
lastInboundAt: Date.now(),
|
|
402
700
|
});
|
|
701
|
+
const inboundImageUrl = resolvePintoInboundImageUrl(payload);
|
|
702
|
+
logPintoWebhookPayload(ctx.log, payload, inboundImageUrl);
|
|
403
703
|
const peer = { kind: "direct", id: payload.chat_id };
|
|
404
|
-
const route =
|
|
704
|
+
const route = targetAgentId
|
|
405
705
|
? {
|
|
406
|
-
accountId:
|
|
706
|
+
accountId: targetAccountId,
|
|
407
707
|
sessionKey: ctx.channelRuntime.routing.buildAgentSessionKey({
|
|
408
|
-
agentId:
|
|
708
|
+
agentId: targetAgentId,
|
|
409
709
|
channel: "pinto",
|
|
410
|
-
accountId:
|
|
710
|
+
accountId: targetAccountId,
|
|
411
711
|
peer,
|
|
412
712
|
}),
|
|
413
713
|
}
|
|
414
714
|
: ctx.channelRuntime.routing.resolveAgentRoute({
|
|
415
715
|
cfg: ctx.cfg,
|
|
416
716
|
channel: "pinto",
|
|
417
|
-
accountId:
|
|
717
|
+
accountId: targetAccountId,
|
|
418
718
|
peer,
|
|
419
719
|
});
|
|
420
720
|
const buildMsgCtx = (sessionKey, accountId) => ctx.channelRuntime.reply.finalizeInboundContext({
|
|
421
721
|
Body: payload.message ?? "",
|
|
722
|
+
BodyForAgent: payload.message ?? "",
|
|
422
723
|
RawBody: payload.message ?? "",
|
|
423
724
|
CommandBody: payload.message ?? "",
|
|
725
|
+
BodyForCommands: payload.message ?? "",
|
|
726
|
+
...buildPintoImageMediaContext(inboundImageUrl?.url),
|
|
424
727
|
From: `pinto:${payload.user_id ?? payload.chat_id}`,
|
|
425
728
|
To: `pinto:${payload.chat_id}`,
|
|
426
729
|
SessionKey: sessionKey,
|
|
427
730
|
AccountId: accountId,
|
|
428
731
|
OriginatingChannel: "pinto",
|
|
429
732
|
OriginatingTo: `pinto:${payload.chat_id}`,
|
|
733
|
+
ExplicitDeliverRoute: true,
|
|
430
734
|
ChatType: "direct",
|
|
431
735
|
SenderName: payload.username ?? payload.user_id ?? payload.chat_id,
|
|
432
736
|
SenderId: payload.user_id ?? payload.chat_id,
|
|
@@ -437,14 +741,14 @@ export const pintoPlugin = {
|
|
|
437
741
|
CommandAuthorized: true,
|
|
438
742
|
});
|
|
439
743
|
const msgCtx = buildMsgCtx(route.sessionKey, route.accountId);
|
|
440
|
-
for (const observerAgentId of
|
|
744
|
+
for (const observerAgentId of targetObserverAgentIds) {
|
|
441
745
|
const observerSessionKey = ctx.channelRuntime.routing.buildAgentSessionKey({
|
|
442
746
|
agentId: observerAgentId,
|
|
443
747
|
channel: "pinto",
|
|
444
|
-
accountId:
|
|
748
|
+
accountId: targetAccountId,
|
|
445
749
|
peer,
|
|
446
750
|
});
|
|
447
|
-
const observerCtx = buildMsgCtx(observerSessionKey,
|
|
751
|
+
const observerCtx = buildMsgCtx(observerSessionKey, targetAccountId);
|
|
448
752
|
// Observer agents share the inbound context but never reply back to Pinto.
|
|
449
753
|
void ctx.channelRuntime.reply
|
|
450
754
|
.dispatchReplyWithBufferedBlockDispatcher({
|
|
@@ -463,14 +767,11 @@ export const pintoPlugin = {
|
|
|
463
767
|
cfg: ctx.cfg,
|
|
464
768
|
dispatcherOptions: {
|
|
465
769
|
deliver: async (replyPayload) => {
|
|
466
|
-
|
|
467
|
-
if (!text)
|
|
468
|
-
return;
|
|
469
|
-
await sendPintoText({
|
|
770
|
+
await deliverPintoReplyPayload({
|
|
470
771
|
cfg: ctx.cfg,
|
|
471
|
-
accountId:
|
|
772
|
+
accountId: targetAccountId,
|
|
472
773
|
to: payload.chat_id,
|
|
473
|
-
|
|
774
|
+
payload: replyPayload,
|
|
474
775
|
});
|
|
475
776
|
},
|
|
476
777
|
},
|
package/dist/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,6 +6,18 @@ export interface PintoWebhookPayload {
|
|
|
6
6
|
username?: string;
|
|
7
7
|
message: string;
|
|
8
8
|
image_url?: string;
|
|
9
|
+
imageUrl?: string;
|
|
10
|
+
media_url?: string;
|
|
11
|
+
mediaUrl?: string;
|
|
12
|
+
url?: string;
|
|
13
|
+
attachment?: unknown;
|
|
14
|
+
attachments?: unknown;
|
|
15
|
+
file?: unknown;
|
|
16
|
+
files?: unknown;
|
|
17
|
+
image?: unknown;
|
|
18
|
+
images?: unknown;
|
|
19
|
+
media?: unknown;
|
|
20
|
+
medias?: unknown;
|
|
9
21
|
chat_id: string;
|
|
10
22
|
bot_id: string;
|
|
11
23
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,14 +1,88 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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.
|
|
3
|
+
"version": "1.3.21",
|
|
4
4
|
"description": "OpenClaw Channel Plugin for Pinto Chat",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -50,12 +50,10 @@
|
|
|
50
50
|
"test:watch": "vitest",
|
|
51
51
|
"prepare": "npm run build"
|
|
52
52
|
},
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"zod": "^4.3.6"
|
|
55
|
-
},
|
|
53
|
+
"dependencies": {},
|
|
56
54
|
"devDependencies": {
|
|
57
55
|
"@types/node": "^20.11.0",
|
|
58
|
-
"openclaw": "2026.
|
|
56
|
+
"openclaw": "^2026.6.5",
|
|
59
57
|
"tsx": "^4.7.0",
|
|
60
58
|
"typescript": "^5.4.0",
|
|
61
59
|
"vitest": "^1.6.0"
|
|
@@ -63,4 +61,4 @@
|
|
|
63
61
|
"peerDependencies": {
|
|
64
62
|
"openclaw": ">=2026.0.0"
|
|
65
63
|
}
|
|
66
|
-
}
|
|
64
|
+
}
|