@ycodium-ai/plugin-im 0.2.2962 → 0.2.2966
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 +29 -8
- package/dist/index.js +2539 -361
- package/locales/en.json +168 -8
- package/locales/zh-CN.json +168 -8
- package/package.json +12 -4
package/locales/en.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"settings": {
|
|
3
3
|
"title": "Chat",
|
|
4
|
-
"description": "Connect chat bots to Ycodium. One row per bot: create the bot on its platform, paste its credentials, and list the people allowed to use it. For Lark, Connect a Lark bot above does all of that with one scan.
|
|
4
|
+
"description": "Connect chat bots to Ycodium. One row per bot: create the bot on its platform, paste its credentials, and pick an access mode (allowlist / open). In allowlist mode, list the people allowed to use it. For Lark, Connect a Lark bot above does all of that with one scan. Admitted people message the bot (or add it to a group), pick a project in the chat, and can start work.",
|
|
5
5
|
"bots": "Bots",
|
|
6
6
|
"language": {
|
|
7
7
|
"label": "Reply language",
|
|
@@ -19,12 +19,53 @@
|
|
|
19
19
|
"always": "Only when it is mentioned",
|
|
20
20
|
"never": "Every message",
|
|
21
21
|
"ambient": "Every message, except ones aimed at someone else"
|
|
22
|
+
},
|
|
23
|
+
"deliveryHttp": {
|
|
24
|
+
"enabled": {
|
|
25
|
+
"label": "Enable proactive delivery HTTP",
|
|
26
|
+
"description": "Off by default. When on, listens only on 127.0.0.1 so local scripts can POST botId+targetId text. Do not expose publicly; set a Bearer token when other local processes might call it."
|
|
27
|
+
},
|
|
28
|
+
"port": {
|
|
29
|
+
"label": "Delivery HTTP port",
|
|
30
|
+
"description": "Bound to 127.0.0.1 only. Default 3847."
|
|
31
|
+
},
|
|
32
|
+
"token": {
|
|
33
|
+
"label": "Delivery HTTP token",
|
|
34
|
+
"description": "Optional. When set, requests must send Authorization: Bearer <token>."
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"deliveryTargets": {
|
|
38
|
+
"label": "Delivery targets",
|
|
39
|
+
"description": "Callers store only botId (settings row id) and targetId. Keep platform chat ids here; do not send them on each request."
|
|
40
|
+
},
|
|
41
|
+
"deliveryKind": {
|
|
42
|
+
"chat": "Chat",
|
|
43
|
+
"user": "User / DM",
|
|
44
|
+
"group": "Group"
|
|
45
|
+
},
|
|
46
|
+
"queueMode": {
|
|
47
|
+
"queue": "Queue (default)",
|
|
48
|
+
"steer": "Steer (auto-join the running turn)"
|
|
49
|
+
},
|
|
50
|
+
"onOff": {
|
|
51
|
+
"on": "On",
|
|
52
|
+
"off": "Off"
|
|
53
|
+
},
|
|
54
|
+
"larkPanelMode": {
|
|
55
|
+
"default": "Default (all commands)",
|
|
56
|
+
"minimal": "Minimal"
|
|
57
|
+
},
|
|
58
|
+
"accessMode": {
|
|
59
|
+
"allowlist": "Allowlist only (default)",
|
|
60
|
+
"open": "Allow everyone"
|
|
22
61
|
}
|
|
23
62
|
},
|
|
24
63
|
"platform": {
|
|
25
64
|
"lark": "Lark",
|
|
26
65
|
"telegram": "Telegram",
|
|
27
|
-
"wecom": "WeCom"
|
|
66
|
+
"wecom": "WeCom",
|
|
67
|
+
"wecom-app": "WeCom App",
|
|
68
|
+
"wechat": "WeChat (experimental)"
|
|
28
69
|
},
|
|
29
70
|
"column": {
|
|
30
71
|
"displayName": {
|
|
@@ -52,7 +93,7 @@
|
|
|
52
93
|
},
|
|
53
94
|
"allowedSenders": {
|
|
54
95
|
"label": "Allowed people",
|
|
55
|
-
"description": "Comma-separated user ids from that platform.
|
|
96
|
+
"description": "Comma-separated user ids from that platform. Used only in allowlist mode; while the list is empty, nobody can. Message the bot and it tells you your own id."
|
|
56
97
|
},
|
|
57
98
|
"proxy": {
|
|
58
99
|
"label": "Proxy",
|
|
@@ -60,11 +101,86 @@
|
|
|
60
101
|
},
|
|
61
102
|
"runtimeMode": {
|
|
62
103
|
"label": "What a chat message may do",
|
|
63
|
-
"description": "
|
|
104
|
+
"description": "Admitted people start turns from chat, so this is deliberately not full access by default. Whichever mode asks, the request lands in the chat."
|
|
64
105
|
},
|
|
65
106
|
"groupMention": {
|
|
66
107
|
"label": "In groups, answer",
|
|
67
108
|
"description": "When the bot answers in a group (unset means only when it is mentioned); direct chats always count. WeCom only delivers messages that mention the bot, so this changes nothing there."
|
|
109
|
+
},
|
|
110
|
+
"deliveryBotId": {
|
|
111
|
+
"label": "Bot ID",
|
|
112
|
+
"description": "The settings-table row id for that bot (opaque).",
|
|
113
|
+
"placeholder": "bot row id"
|
|
114
|
+
},
|
|
115
|
+
"deliveryTargetId": {
|
|
116
|
+
"label": "Target ID",
|
|
117
|
+
"description": "Caller alias unique under that bot; immutable after save.",
|
|
118
|
+
"placeholder": "release-alerts"
|
|
119
|
+
},
|
|
120
|
+
"deliveryName": {
|
|
121
|
+
"label": "Display name",
|
|
122
|
+
"placeholder": "Release alerts"
|
|
123
|
+
},
|
|
124
|
+
"deliveryKind": {
|
|
125
|
+
"label": "Kind"
|
|
126
|
+
},
|
|
127
|
+
"deliveryPlatformChatId": {
|
|
128
|
+
"label": "Platform chat ID",
|
|
129
|
+
"description": "Lark open_id/chat_id, Telegram chat id, WeCom user/group id, etc.",
|
|
130
|
+
"placeholder": "oc_… / ou_… / -100…"
|
|
131
|
+
},
|
|
132
|
+
"queueMode": {
|
|
133
|
+
"label": "New messages while busy",
|
|
134
|
+
"description": "When a turn is already running, how to handle new plain-text messages. Queue waits for the current turn (Steer is still a button); Steer auto-joins the running turn."
|
|
135
|
+
},
|
|
136
|
+
"larkPanelMode": {
|
|
137
|
+
"label": "Command panel",
|
|
138
|
+
"description": "Which commands /panel (or typing /) lists. Minimal hides low-frequency system items; typing the same command still works."
|
|
139
|
+
},
|
|
140
|
+
"wecomNumberedHints": {
|
|
141
|
+
"label": "Numbered-reply hints",
|
|
142
|
+
"description": "WeCom has no buttons; approvals and questions use reply numbers. When on, include fuller usage hints."
|
|
143
|
+
},
|
|
144
|
+
"wecomAppCorpId": {
|
|
145
|
+
"label": "Corp ID",
|
|
146
|
+
"placeholder": "ww…"
|
|
147
|
+
},
|
|
148
|
+
"wecomAppAgentId": {
|
|
149
|
+
"label": "AgentId",
|
|
150
|
+
"placeholder": "1000002"
|
|
151
|
+
},
|
|
152
|
+
"wecomAppSecret": {
|
|
153
|
+
"label": "App Secret"
|
|
154
|
+
},
|
|
155
|
+
"wecomAppToken": {
|
|
156
|
+
"label": "Callback Token"
|
|
157
|
+
},
|
|
158
|
+
"wecomAppEncodingAESKey": {
|
|
159
|
+
"label": "EncodingAESKey",
|
|
160
|
+
"placeholder": "43 alphanumeric chars"
|
|
161
|
+
},
|
|
162
|
+
"wecomAppCallbackBaseUrl": {
|
|
163
|
+
"label": "Public callback base URL (optional)",
|
|
164
|
+
"description": "When set, logs print the full callback URL to paste into WeCom “Receive messages → API receive”. Default listener is 127.0.0.1; use a reverse proxy or tunnel.",
|
|
165
|
+
"placeholder": "https://im.example.com or http://IP:30987"
|
|
166
|
+
},
|
|
167
|
+
"wecomAppApiBaseUrl": {
|
|
168
|
+
"label": "API proxy base (optional)",
|
|
169
|
+
"description": "Base URL for gettoken / message/send. Leave empty for qyapi.weixin.qq.com. Outbound IP must be on the trusted IP list.",
|
|
170
|
+
"placeholder": "https://qyapi.weixin.qq.com"
|
|
171
|
+
},
|
|
172
|
+
"wecomAppListenPort": {
|
|
173
|
+
"label": "Local callback port (optional)",
|
|
174
|
+
"description": "Defaults to 30987 on 127.0.0.1. Shared across self-built apps.",
|
|
175
|
+
"placeholder": "30987"
|
|
176
|
+
},
|
|
177
|
+
"wechatBotToken": {
|
|
178
|
+
"label": "WeChat bot token",
|
|
179
|
+
"description": "bot_token from QR binding. Live iLink login is gated by proposal 0069; filling this in does not connect yet."
|
|
180
|
+
},
|
|
181
|
+
"accessMode": {
|
|
182
|
+
"label": "Access mode",
|
|
183
|
+
"description": "Allowlist admits only \"Allowed people\"; open admits any identifiable sender. New bots default to allowlist."
|
|
68
184
|
}
|
|
69
185
|
},
|
|
70
186
|
"reply": {
|
|
@@ -93,7 +209,8 @@
|
|
|
93
209
|
"allow": "Allow",
|
|
94
210
|
"deny": "Deny",
|
|
95
211
|
"alreadyHandled": "Already handled",
|
|
96
|
-
"replyHint": "Reply with the number."
|
|
212
|
+
"replyHint": "Reply with the number, or reply approve/deny.",
|
|
213
|
+
"replyHintFull": "Reply with the number. You can also reply approve/deny; for multi-select questions, comma-separate numbers."
|
|
97
214
|
},
|
|
98
215
|
"question": {
|
|
99
216
|
"title": "❓ Question",
|
|
@@ -186,7 +303,8 @@
|
|
|
186
303
|
"plan": "· /plan — toggle plan mode (the agent proposes a plan instead of acting); /plan on, /plan off set it",
|
|
187
304
|
"panel": "Send /panel to open the command panel with a button for every command.",
|
|
188
305
|
"repo": "· /repo — pick the project this chat works on; /repo number or /repo name picks directly",
|
|
189
|
-
"group": "· /group name — Lark only: the bot creates a group and adds you (bots on other platforms cannot)"
|
|
306
|
+
"group": "· /group name — Lark only: the bot creates a group and adds you (bots on other platforms cannot)",
|
|
307
|
+
"syncNote": "· After a private chat attaches a session, web user text and final assistant text sync here (groups never sync)."
|
|
190
308
|
},
|
|
191
309
|
"sessions": {
|
|
192
310
|
"title": "Sessions this bot opened for this chat's project ({{count}}):",
|
|
@@ -198,7 +316,8 @@
|
|
|
198
316
|
"badge": {
|
|
199
317
|
"current": "★ current",
|
|
200
318
|
"running": "● running",
|
|
201
|
-
"elsewhere": "in another chat"
|
|
319
|
+
"elsewhere": "in another chat",
|
|
320
|
+
"web": "web"
|
|
202
321
|
},
|
|
203
322
|
"age": {
|
|
204
323
|
"justNow": "just now",
|
|
@@ -213,7 +332,10 @@
|
|
|
213
332
|
"already": "This chat is already on that session.",
|
|
214
333
|
"gone": "That session was deleted or archived, so it cannot be resumed.",
|
|
215
334
|
"runningElsewhere": "That session is running a turn in another chat — stop it there first.",
|
|
216
|
-
"done": "Switched to \"{{title}}\". Send a message to keep going from there."
|
|
335
|
+
"done": "Switched to \"{{title}}\". Send a message to keep going from there.",
|
|
336
|
+
"confirmWeb": "\"{{title}}\" was opened on the web. Send /resume with the same number again (or /resume confirm) to attach; /resume cancel to abort.",
|
|
337
|
+
"cancelled": "Attach cancelled.",
|
|
338
|
+
"nothingPending": "No web session is waiting for confirm. Use /sessions to see the list."
|
|
217
339
|
},
|
|
218
340
|
"model": {
|
|
219
341
|
"current": "Model: {{model}}",
|
|
@@ -415,5 +537,43 @@
|
|
|
415
537
|
"unsupported": "Bots on this platform cannot create groups. Create the group in the app and add the bot to it.",
|
|
416
538
|
"noSender": "I cannot tell who you are on this platform, so I cannot add you to a new group.",
|
|
417
539
|
"failed": "Could not create the group. Check that the app is allowed to create groups and add members, then try again."
|
|
540
|
+
},
|
|
541
|
+
"sync": {
|
|
542
|
+
"webUser": "Web: {{text}}"
|
|
543
|
+
},
|
|
544
|
+
"rowAction": {
|
|
545
|
+
"checkConnection": {
|
|
546
|
+
"label": "Check connection",
|
|
547
|
+
"description": "Verify platform credentials still work; does not open a session or call a model.",
|
|
548
|
+
"running": "Checking {{rowId}}…",
|
|
549
|
+
"done": "Connection OK",
|
|
550
|
+
"failed": "Connection failed (ref {{ref}})",
|
|
551
|
+
"notSaved": "Save this row first (credentials are read from saved config only)."
|
|
552
|
+
},
|
|
553
|
+
"copyDiagnostics": {
|
|
554
|
+
"label": "Copy diagnostics",
|
|
555
|
+
"description": "Run a connection probe and produce copy-paste diagnostics (no secrets).",
|
|
556
|
+
"running": "Building diagnostics for {{rowId}}…",
|
|
557
|
+
"done": "Diagnostics ready — see details below",
|
|
558
|
+
"failed": "Diagnostics failed (ref {{ref}})",
|
|
559
|
+
"notSaved": "Save this row first before copying diagnostics."
|
|
560
|
+
},
|
|
561
|
+
"diagnostic": {
|
|
562
|
+
"ref": "Ref {{ref}}\n{{detail}}"
|
|
563
|
+
},
|
|
564
|
+
"larkRepair": {
|
|
565
|
+
"label": "Repair scopes",
|
|
566
|
+
"description": "Verify the Lark app can still mint a token and list scope / publish steps.",
|
|
567
|
+
"step": {
|
|
568
|
+
"scopes": "Confirm message / resource / panel scopes",
|
|
569
|
+
"events": "Confirm long connection and event subscriptions",
|
|
570
|
+
"publish": "Publish if scopes were added",
|
|
571
|
+
"verify": "Verify the app can still mint a tenant token"
|
|
572
|
+
},
|
|
573
|
+
"done": "Credentials work; add any missing scopes in the Feishu console and publish",
|
|
574
|
+
"hint": "Ref {{ref}}\n{{detail}}\nIf scopes are missing, request them on the Feishu open platform and publish; a chat /repair command will follow.",
|
|
575
|
+
"failed": "Could not verify the Lark app (ref {{ref}})",
|
|
576
|
+
"notLark": "This row is not a saved Lark bot."
|
|
577
|
+
}
|
|
418
578
|
}
|
|
419
579
|
}
|
package/locales/zh-CN.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"settings": {
|
|
3
3
|
"title": "聊天",
|
|
4
|
-
"description": "把聊天机器人接到 Ycodium
|
|
4
|
+
"description": "把聊天机器人接到 Ycodium。一行一个机器人:先在对应平台建好机器人、把凭据填进来,再选访问模式(仅白名单/允许所有人)。仅白名单时把允许使用它的人填进「允许的人」。飞书可以用上面的「连接飞书机器人」,扫一次码全部配好。获准的人私聊机器人(或把它拉进群)、在聊天里选好项目,就能派活。",
|
|
5
5
|
"bots": "机器人",
|
|
6
6
|
"language": {
|
|
7
7
|
"label": "回话语言",
|
|
@@ -19,12 +19,53 @@
|
|
|
19
19
|
"always": "被 @ 才理",
|
|
20
20
|
"never": "每句都理",
|
|
21
21
|
"ambient": "每句都理,明显对别人说的除外"
|
|
22
|
+
},
|
|
23
|
+
"deliveryHttp": {
|
|
24
|
+
"enabled": {
|
|
25
|
+
"label": "开启主动投递 HTTP",
|
|
26
|
+
"description": "默认关闭。开启后只在本机 127.0.0.1 监听,供脚本用 botId+targetId 推文字。不要暴露到公网;需要时可再配 Bearer token。"
|
|
27
|
+
},
|
|
28
|
+
"port": {
|
|
29
|
+
"label": "投递 HTTP 端口",
|
|
30
|
+
"description": "只听 127.0.0.1。默认 3847。"
|
|
31
|
+
},
|
|
32
|
+
"token": {
|
|
33
|
+
"label": "投递 HTTP Token",
|
|
34
|
+
"description": "可选。填了则请求必须带 Authorization: Bearer <token>。同机其它进程也能打 loopback,建议生产开启。"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"deliveryTargets": {
|
|
38
|
+
"label": "投递目标",
|
|
39
|
+
"description": "调用方只保存 botId(机器人行 id)与 targetId。平台原生聊天 id 写在这里,不要随每次请求提交。"
|
|
40
|
+
},
|
|
41
|
+
"deliveryKind": {
|
|
42
|
+
"chat": "聊天",
|
|
43
|
+
"user": "用户/私聊",
|
|
44
|
+
"group": "群"
|
|
45
|
+
},
|
|
46
|
+
"queueMode": {
|
|
47
|
+
"queue": "排队(默认)",
|
|
48
|
+
"steer": "插话(自动并入当前轮)"
|
|
49
|
+
},
|
|
50
|
+
"onOff": {
|
|
51
|
+
"on": "开",
|
|
52
|
+
"off": "关"
|
|
53
|
+
},
|
|
54
|
+
"larkPanelMode": {
|
|
55
|
+
"default": "默认(全部命令)",
|
|
56
|
+
"minimal": "精简"
|
|
57
|
+
},
|
|
58
|
+
"accessMode": {
|
|
59
|
+
"allowlist": "仅白名单(默认)",
|
|
60
|
+
"open": "允许所有人"
|
|
22
61
|
}
|
|
23
62
|
},
|
|
24
63
|
"platform": {
|
|
25
64
|
"lark": "飞书",
|
|
26
65
|
"telegram": "Telegram",
|
|
27
|
-
"wecom": "企业微信"
|
|
66
|
+
"wecom": "企业微信",
|
|
67
|
+
"wecom-app": "企业微信应用",
|
|
68
|
+
"wechat": "微信(实验)"
|
|
28
69
|
},
|
|
29
70
|
"column": {
|
|
30
71
|
"displayName": {
|
|
@@ -52,7 +93,7 @@
|
|
|
52
93
|
},
|
|
53
94
|
"allowedSenders": {
|
|
54
95
|
"label": "允许的人",
|
|
55
|
-
"description": "该平台的用户 id
|
|
96
|
+
"description": "该平台的用户 id,逗号分隔。仅在「仅白名单」模式下生效;留空则谁都不能。给机器人发一句话,它会告诉你自己的 id。"
|
|
56
97
|
},
|
|
57
98
|
"proxy": {
|
|
58
99
|
"label": "代理",
|
|
@@ -60,11 +101,86 @@
|
|
|
60
101
|
},
|
|
61
102
|
"runtimeMode": {
|
|
62
103
|
"label": "聊天消息能做什么",
|
|
63
|
-
"description": "
|
|
104
|
+
"description": "获准的人都能从聊天里开一轮,所以默认故意不给满权限。不论选哪一档,要拍板的事都会摆到聊天里。"
|
|
64
105
|
},
|
|
65
106
|
"groupMention": {
|
|
66
107
|
"label": "群里什么时候理它",
|
|
67
108
|
"description": "机器人在群里什么时候回应(不选就是被 @ 才理);单聊永远理。企业微信只把 @ 到机器人的群消息推过来,这一项对它没有效果。"
|
|
109
|
+
},
|
|
110
|
+
"deliveryBotId": {
|
|
111
|
+
"label": "Bot ID",
|
|
112
|
+
"description": "设置表里该机器人那一行的 id(不透明字符串)。",
|
|
113
|
+
"placeholder": "机器人行 id"
|
|
114
|
+
},
|
|
115
|
+
"deliveryTargetId": {
|
|
116
|
+
"label": "Target ID",
|
|
117
|
+
"description": "同一机器人下唯一的别名;保存后勿改。",
|
|
118
|
+
"placeholder": "release-alerts"
|
|
119
|
+
},
|
|
120
|
+
"deliveryName": {
|
|
121
|
+
"label": "显示名",
|
|
122
|
+
"placeholder": "发布告警群"
|
|
123
|
+
},
|
|
124
|
+
"deliveryKind": {
|
|
125
|
+
"label": "类型"
|
|
126
|
+
},
|
|
127
|
+
"deliveryPlatformChatId": {
|
|
128
|
+
"label": "平台聊天 ID",
|
|
129
|
+
"description": "飞书 open_id/chat_id、Telegram chat id、企微用户/群 id 等。",
|
|
130
|
+
"placeholder": "oc_… / ou_… / -100…"
|
|
131
|
+
},
|
|
132
|
+
"queueMode": {
|
|
133
|
+
"label": "忙时新消息",
|
|
134
|
+
"description": "当前任务还在跑时,新来的普通文字怎么处理。排队会等当前轮结束(可点插话);插话则自动并入当前轮,无需每次点按钮。"
|
|
135
|
+
},
|
|
136
|
+
"larkPanelMode": {
|
|
137
|
+
"label": "指令面板",
|
|
138
|
+
"description": "聊天里 /panel 或打 / 时列出的命令范围。精简隐藏低频系统项;手动输入同一命令仍可用。"
|
|
139
|
+
},
|
|
140
|
+
"wecomNumberedHints": {
|
|
141
|
+
"label": "编号应答提示",
|
|
142
|
+
"description": "企微没有按钮,审批与提问靠回编号。开启时附带更完整的用法说明。"
|
|
143
|
+
},
|
|
144
|
+
"wecomAppCorpId": {
|
|
145
|
+
"label": "企业 ID(CorpID)",
|
|
146
|
+
"placeholder": "ww…"
|
|
147
|
+
},
|
|
148
|
+
"wecomAppAgentId": {
|
|
149
|
+
"label": "应用 AgentId",
|
|
150
|
+
"placeholder": "1000002"
|
|
151
|
+
},
|
|
152
|
+
"wecomAppSecret": {
|
|
153
|
+
"label": "应用 Secret"
|
|
154
|
+
},
|
|
155
|
+
"wecomAppToken": {
|
|
156
|
+
"label": "回调 Token"
|
|
157
|
+
},
|
|
158
|
+
"wecomAppEncodingAESKey": {
|
|
159
|
+
"label": "EncodingAESKey",
|
|
160
|
+
"placeholder": "43 位字母或数字"
|
|
161
|
+
},
|
|
162
|
+
"wecomAppCallbackBaseUrl": {
|
|
163
|
+
"label": "公网回调基址(可选)",
|
|
164
|
+
"description": "填公网可达的 http(s) 基址后,日志会打印完整回调 URL,把它贴进企微「接收消息 → 设置 API 接收」。不填只显示本机路径。默认监听 127.0.0.1,需反代或隧道。",
|
|
165
|
+
"placeholder": "https://im.example.com 或 http://IP:30987"
|
|
166
|
+
},
|
|
167
|
+
"wecomAppApiBaseUrl": {
|
|
168
|
+
"label": "API 代理地址(可选)",
|
|
169
|
+
"description": "出站调用 gettoken / message/send 的基址。海外机器可填反代;留空直连 qyapi.weixin.qq.com。出站 IP 须在企业可信 IP 列表。",
|
|
170
|
+
"placeholder": "https://qyapi.weixin.qq.com"
|
|
171
|
+
},
|
|
172
|
+
"wecomAppListenPort": {
|
|
173
|
+
"label": "本机回调端口(可选)",
|
|
174
|
+
"description": "默认 30987,只听 127.0.0.1。多台自建应用共用一个端口。",
|
|
175
|
+
"placeholder": "30987"
|
|
176
|
+
},
|
|
177
|
+
"wechatBotToken": {
|
|
178
|
+
"label": "微信机器人令牌",
|
|
179
|
+
"description": "扫码绑定后得到的 bot_token。真登录尚未开放:填了也不会连上 iLink,见提案 0069 安全评审。"
|
|
180
|
+
},
|
|
181
|
+
"accessMode": {
|
|
182
|
+
"label": "访问模式",
|
|
183
|
+
"description": "仅白名单=只有「允许的人」能触发;允许所有人=平台能识别的发送者均可。新机器人默认仅白名单。"
|
|
68
184
|
}
|
|
69
185
|
},
|
|
70
186
|
"reply": {
|
|
@@ -93,7 +209,8 @@
|
|
|
93
209
|
"allow": "允许",
|
|
94
210
|
"deny": "拒绝",
|
|
95
211
|
"alreadyHandled": "已处理",
|
|
96
|
-
"replyHint": "
|
|
212
|
+
"replyHint": "回复编号,或回复「批准」/「拒绝」。",
|
|
213
|
+
"replyHintFull": "回复编号即可。也可回复「批准」/「拒绝」;多选提问用逗号分隔编号。"
|
|
97
214
|
},
|
|
98
215
|
"question": {
|
|
99
216
|
"title": "❓ 提问",
|
|
@@ -186,7 +303,8 @@
|
|
|
186
303
|
"plan": "· /plan —— 开关计划模式(agent 先出计划、不动手);/plan on、/plan off 明确设定",
|
|
187
304
|
"panel": "发 /panel 打开可点的命令面板。",
|
|
188
305
|
"repo": "· /repo —— 选这个聊天做哪个项目;/repo 编号 或 /repo 项目名 直接选",
|
|
189
|
-
"group": "· /group 群名 —— 仅飞书:机器人建一个群并把你拉进去(别的平台的机器人建不了群)"
|
|
306
|
+
"group": "· /group 群名 —— 仅飞书:机器人建一个群并把你拉进去(别的平台的机器人建不了群)",
|
|
307
|
+
"syncNote": "· 私聊附着会话后,网页上的用户文字与终态助手文字会同步到此(群聊不同步)。"
|
|
190
308
|
},
|
|
191
309
|
"sessions": {
|
|
192
310
|
"title": "本机器人为这个聊天的项目开过的会话({{count}} 条):",
|
|
@@ -198,7 +316,8 @@
|
|
|
198
316
|
"badge": {
|
|
199
317
|
"current": "★ 当前",
|
|
200
318
|
"running": "● 在跑",
|
|
201
|
-
"elsewhere": "接在别的聊天"
|
|
319
|
+
"elsewhere": "接在别的聊天",
|
|
320
|
+
"web": "网页"
|
|
202
321
|
},
|
|
203
322
|
"age": {
|
|
204
323
|
"justNow": "刚刚",
|
|
@@ -213,7 +332,10 @@
|
|
|
213
332
|
"already": "这个聊天已经在那条会话里了。",
|
|
214
333
|
"gone": "那条会话已被删除或归档,接不上了。",
|
|
215
334
|
"runningElsewhere": "那条会话正在别的聊天里跑着一轮——先到那边停掉它。",
|
|
216
|
-
"done": "已切到「{{title}}」。发一句话就从那里接着聊。"
|
|
335
|
+
"done": "已切到「{{title}}」。发一句话就从那里接着聊。",
|
|
336
|
+
"confirmWeb": "「{{title}}」是网页开的会话。再发一次 /resume 同一编号(或 /resume confirm)确认附着;/resume cancel 取消。",
|
|
337
|
+
"cancelled": "已取消附着。",
|
|
338
|
+
"nothingPending": "没有待确认的网页会话。用 /sessions 看看有哪些。"
|
|
217
339
|
},
|
|
218
340
|
"model": {
|
|
219
341
|
"current": "模型:{{model}}",
|
|
@@ -415,5 +537,43 @@
|
|
|
415
537
|
"unsupported": "这个平台的机器人建不了群。请在 App 里自己建群,再把机器人拉进去。",
|
|
416
538
|
"noSender": "我认不出你在这个平台上是谁,没法把你拉进新群。",
|
|
417
539
|
"failed": "没能建群。请确认这个应用有建群和拉人的权限,再试一次。"
|
|
540
|
+
},
|
|
541
|
+
"sync": {
|
|
542
|
+
"webUser": "网页:{{text}}"
|
|
543
|
+
},
|
|
544
|
+
"rowAction": {
|
|
545
|
+
"checkConnection": {
|
|
546
|
+
"label": "检查连接",
|
|
547
|
+
"description": "验证平台凭据是否仍可用;不会开会话,也不会调模型。",
|
|
548
|
+
"running": "正在检查 {{rowId}} …",
|
|
549
|
+
"done": "连接正常",
|
|
550
|
+
"failed": "连接失败(参考号 {{ref}})",
|
|
551
|
+
"notSaved": "请先保存这一行再检查连接(凭据只从已保存配置读取)。"
|
|
552
|
+
},
|
|
553
|
+
"copyDiagnostics": {
|
|
554
|
+
"label": "复制诊断",
|
|
555
|
+
"description": "跑一次连接探测,生成可复制的诊断文本(不含密钥)。",
|
|
556
|
+
"running": "正在生成诊断 {{rowId}} …",
|
|
557
|
+
"done": "诊断已生成,见下方详情",
|
|
558
|
+
"failed": "诊断失败(参考号 {{ref}})",
|
|
559
|
+
"notSaved": "请先保存这一行再复制诊断。"
|
|
560
|
+
},
|
|
561
|
+
"diagnostic": {
|
|
562
|
+
"ref": "参考号 {{ref}}\n{{detail}}"
|
|
563
|
+
},
|
|
564
|
+
"larkRepair": {
|
|
565
|
+
"label": "补全权限",
|
|
566
|
+
"description": "核对飞书应用仍能换 token,并提示需要补的权限与发布步骤。",
|
|
567
|
+
"step": {
|
|
568
|
+
"scopes": "确认消息 / 资源 / 面板等权限",
|
|
569
|
+
"events": "确认长连接与事件订阅",
|
|
570
|
+
"publish": "如有增量权限,完成发布审批",
|
|
571
|
+
"verify": "验证应用仍可换取 tenant token"
|
|
572
|
+
},
|
|
573
|
+
"done": "凭据可用;若权限不足请按飞书控制台补齐后发布",
|
|
574
|
+
"hint": "参考号 {{ref}}\n{{detail}}\n缺权限时可在飞书开放平台对该应用增量申请并发布;聊天侧 /repair 命令后续补齐。",
|
|
575
|
+
"failed": "无法验证飞书应用(参考号 {{ref}})",
|
|
576
|
+
"notLark": "这一行不是已保存的飞书机器人。"
|
|
577
|
+
}
|
|
418
578
|
}
|
|
419
579
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycodium-ai/plugin-im",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Talk to your agents from Telegram, WeCom or
|
|
3
|
+
"version": "0.2.2966",
|
|
4
|
+
"description": "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"im",
|
|
7
7
|
"lark",
|
|
8
8
|
"telegram",
|
|
9
|
+
"wechat",
|
|
9
10
|
"wecom",
|
|
11
|
+
"wecom-app",
|
|
10
12
|
"ycodium",
|
|
11
13
|
"ycodium-plugin"
|
|
12
14
|
],
|
|
@@ -27,14 +29,20 @@
|
|
|
27
29
|
"esbuild": "0.28.1",
|
|
28
30
|
"markdown-it": "^15.0.2",
|
|
29
31
|
"vite-plus": "0.2.2",
|
|
30
|
-
"@ycodium-ai/plugin-api": "0.2.
|
|
32
|
+
"@ycodium-ai/plugin-api": "0.2.2966"
|
|
31
33
|
},
|
|
32
34
|
"ycodium": {
|
|
33
35
|
"plugin": "./dist/index.js",
|
|
34
36
|
"displayName": "Chat bridge",
|
|
35
|
-
"description": "Talk to your agents from Telegram, WeCom or
|
|
37
|
+
"description": "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
36
38
|
"icon": "messageCircle",
|
|
37
39
|
"permissions": [
|
|
40
|
+
{
|
|
41
|
+
"kind": "sessionProjection"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"kind": "threads.user"
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
"kind": "workspace.read"
|
|
40
48
|
},
|