@ycodium-ai/plugin-im 0.2.3230 → 0.2.3232

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/locales/en.json CHANGED
@@ -199,6 +199,7 @@
199
199
  }
200
200
  },
201
201
  "reply": {
202
+ "deliveryFailed": "The reply could not be delivered. Check this bot's connection and permissions, then try again.",
202
203
  "wecomDeliveryFailed": "This reply didn't reach {{recipient}} in WeCom: they are outside this app's visible range. Add them to the app's visible range in the WeCom admin console, then ask the agent to send it again.",
203
204
  "conclusionRecovered": "(Finished while restarting; delivered now)",
204
205
  "notAllowed": "You are not on this bot's allow list, so this tap had no effect.",
@@ -206,7 +207,8 @@
206
207
  "projectArchived": "Project \"{{title}}\" is archived. Restore it, or send /repo to pick another project, then message again.",
207
208
  "projectMissing": "The project this chat was working on is no longer on this machine (it may have been deleted), so a thread cannot be started. Send /repo to pick another one.",
208
209
  "threadGone": "The earlier session was deleted or archived, so this chat now starts a new one.",
209
- "turnFailedToStart": "This message couldn't be dispatched. Please send it again later. Reference {{ref}}.",
210
+ "dispatchFailed": "This message couldn't be dispatched. Please send it again later.",
211
+ "turnFailedToStart": "{{message}} Reference {{ref}}.",
210
212
  "turnFailedToStartQuoted": "This message (starting with \"{{excerpt}}\") couldn't be dispatched. Please send it again later. Reference {{ref}}.",
211
213
  "turnFailedToStartAttachment": "This message (with the attachment \"{{excerpt}}\") couldn't be dispatched. Please send it again later. Reference {{ref}}.",
212
214
  "turnRetrying": "Couldn't dispatch this message yet. Retrying automatically in the background, so there's no need to send it again. You'll get another message if it still fails. Reference {{ref}}.",
@@ -453,12 +455,29 @@
453
455
  "picked": "{{title}}\nSend /repo to change it."
454
456
  }
455
457
  },
458
+ "wecomSetup": {
459
+ "action": {
460
+ "label": "Scan to create a WeCom smart bot",
461
+ "description": "Scan with WeCom to create a smart bot. Ycodium saves its Bot ID and Secret in the bot list on this machine."
462
+ },
463
+ "status": {
464
+ "waiting": "Scan the QR code with WeCom, then confirm in WeCom to create the smart bot."
465
+ },
466
+ "done": "The WeCom smart bot was created and saved. Message it in WeCom to try it, then pick a project in the chat.",
467
+ "doneNeedsAllowList": "The WeCom smart bot was created and saved. Three steps to start using it:",
468
+ "nextSteps": "1. Message it in WeCom; it replies with your WeCom user id (the QR result doesn't include it).\n2. Put that id in “Allowed people” on the bot's row and save.\n3. Pick a project in the chat.",
469
+ "failure": {
470
+ "expired": "This QR code expired before the bot was created. Click “Try again” to get a new one.",
471
+ "failed": "Could not create the WeCom smart bot. Click “Try again” to start over.",
472
+ "saveFailed": "The smart bot was created, but it could not be saved on this machine. Find the bot in WeCom, copy its Bot ID and Secret, and add it with “Add a bot”. If WeCom doesn't show the Secret, click “Try again” to create a new bot instead; the bot from this attempt stays in WeCom, and you can delete it there."
473
+ }
474
+ },
456
475
  "setup": {
457
476
  "action": {
458
477
  "label": "Connect a Lark bot",
459
478
  "description": "Scan once with the Lark app. Ycodium creates a bot app under your account, publishes it for you only, and adds the bot to the list with its credentials saved. Nothing to fill in.",
460
479
  "badge": "Beta",
461
- "warning": "This relies on Lark developer console interfaces that are not public, so it may stop working. If it does, set the app up by hand in the developer console."
480
+ "warning": "Lark QR setup relies on Lark developer console interfaces that are not public, so it may stop working. If it does, set the app up by hand in the developer console."
462
481
  },
463
482
  "manual": {
464
483
  "createApp": {
@@ -634,6 +653,32 @@
634
653
  "diagnostic": {
635
654
  "ref": "Reference: {{ref}}\n{{detail}}"
636
655
  },
656
+ "larkCallbackProbe": {
657
+ "label": "Verify card buttons",
658
+ "description": "Send a private test card to the first person in this bot's allowlist (usually you) and wait up to {{seconds}} seconds for your click.",
659
+ "step": "Send a private test card and wait for the click",
660
+ "waiting": "Test card sent privately to the first person in the allowlist ({{id}}, usually you). Click its button in Lark within {{seconds}} seconds.",
661
+ "notConnected": "Skipped: this bot is not connected on this machine. Use “Reconnect” on this row to connect it, then verify again.",
662
+ "noRecipient": "Skipped: nobody to send the test card to. Set this bot up with “Connect a Lark bot” (the QR scan) first; it adds you to the allowlist for you.",
663
+ "sendFailed": "Could not send the test card. Use “Repair scopes” on this row to check the messaging permissions, make sure the bot is connected, then verify again.",
664
+ "timeout": "No test-card callback arrived within {{seconds}} seconds. If you didn't click the card in time, just click “Verify card buttons” again. If you did, open Events & Callbacks in the developer console, set callback subscriptions to Long connection, and add {{callbacks}}, then verify again.\nDeveloper console URL:\n{{url}}",
665
+ "toast": "Click received. Card buttons are working.",
666
+ "staleToast": "This test card's check has ended; the result is in the settings panel and your private message. To check again, click “Verify card buttons” in settings.",
667
+ "notYoursToast": "This test card was sent to the first person in the bot's allowlist; your click doesn't count toward the check. You can ignore it.",
668
+ "verified": "Received card.action.trigger from the test card. Card buttons are working.",
669
+ "aborted": "Verification was interrupted because the bot disconnected. Wait for it to reconnect, or use “Reconnect” on this row, then verify again.",
670
+ "card": {
671
+ "title": "🧪 Verify card buttons",
672
+ "body": "Click the button below within {{seconds}} seconds. Verification passes only after the machine running this bot confirms it received your click.",
673
+ "button": "Complete verification"
674
+ },
675
+ "notice": {
676
+ "verified": "✅ Verification passed: your click on the test card arrived as card.action.trigger. Card buttons are working.",
677
+ "timeout": "⚠️ Verification timed out: no card.action.trigger arrived from the test card, so buttons are still unverified. If you didn't click in time, click “Verify card buttons” again. If you did, open Events & Callbacks in the developer console, set callback subscriptions to Long connection, add card.action.trigger, then click “Verify card buttons” again.\nDeveloper console URL:\n{{url}}",
678
+ "sendFailed": "⚠️ Verification failed: the test card could not be sent, so card.action.trigger is still unverified. Use “Repair scopes” on the bot's row in settings to check messaging permissions, then click “Verify card buttons” again.",
679
+ "aborted": "⚠️ Verification interrupted: the bot disconnected before card.action.trigger was confirmed. Wait for the bot to reconnect, or use “Reconnect” on its row in settings, then click “Verify card buttons” again."
680
+ }
681
+ },
637
682
  "larkRepair": {
638
683
  "label": "Repair scopes",
639
684
  "description": "List missing required scopes and a link to request them on the Feishu open platform; an app administrator then publishes the app version manually.",
@@ -672,6 +717,12 @@
672
717
  "help": "Show all commands"
673
718
  },
674
719
  "settingsSection": {
720
+ "lastMessageError": {
721
+ "title": "Last message failed",
722
+ "separator": ": ",
723
+ "code": "Error code {{code}}",
724
+ "reference": "Reference {{referenceId}}"
725
+ },
675
726
  "empty": "No bots yet",
676
727
  "unavailable": "This machine doesn't have the chat bridge right now.",
677
728
  "loadFailed": "Couldn't load the chat-bridge settings.",
@@ -696,7 +747,10 @@
696
747
  "connected": "Connected",
697
748
  "notConnected": "Not connected"
698
749
  },
750
+ "online": "{{connected}} / {{configured}} online",
751
+ "onlineLabel": "{{configured}} configured bots, {{connected}} online",
699
752
  "connection": {
753
+ "since": "Since {{time}}",
700
754
  "failed": "The last connection attempt failed.",
701
755
  "details": "Details: {{error}}",
702
756
  "reconnect": "You can try again with Reconnect below.",
@@ -199,6 +199,7 @@
199
199
  }
200
200
  },
201
201
  "reply": {
202
+ "deliveryFailed": "回复未能送达。请检查这个机器人的连接与权限,然后重试。",
202
203
  "wecomDeliveryFailed": "这条回复没送到企业微信里的 {{recipient}}:对方不在这个应用的可见范围。到企业微信管理后台把他们加进应用的可见范围,再让 agent 重发一次。",
203
204
  "conclusionRecovered": "(重启期间完成,现在补发)",
204
205
  "notAllowed": "你不在这个机器人的允许名单里,这次点击没有生效。",
@@ -206,7 +207,8 @@
206
207
  "projectArchived": "项目「{{title}}」已归档。恢复它,或发 /repo 换个项目,再发消息。",
207
208
  "projectMissing": "这个聊天原来做的项目已经不在这台机器上了(可能被删了),开不了会话。发 /repo 重新选一个。",
208
209
  "threadGone": "之前那条会话已被删除或归档,这个聊天改为开一条新会话。",
209
- "turnFailedToStart": "这条消息没能派出去,请稍后重发。参考号 {{ref}}。",
210
+ "dispatchFailed": "这条消息没能派出去,请稍后重发。",
211
+ "turnFailedToStart": "{{message}}参考号 {{ref}}。",
210
212
  "turnFailedToStartQuoted": "这条消息(开头是「{{excerpt}}」)没能派出去,请稍后重发。参考号 {{ref}}。",
211
213
  "turnFailedToStartAttachment": "这条消息(带附件「{{excerpt}}」)没能派出去,请稍后重发。参考号 {{ref}}。",
212
214
  "turnRetrying": "这条消息暂时没能派出去,会在后台自动重试,不用再发一次;还是不行会再告诉你。参考号 {{ref}}。",
@@ -453,12 +455,29 @@
453
455
  "picked": "{{title}}\n发 /repo 可以更换。"
454
456
  }
455
457
  },
458
+ "wecomSetup": {
459
+ "action": {
460
+ "label": "扫码创建企业微信智能机器人",
461
+ "description": "用企业微信扫码创建智能机器人。Ycodium 会把 Bot ID 和 Secret 存进这台机器的机器人列表。"
462
+ },
463
+ "status": {
464
+ "waiting": "用企业微信扫描二维码,再在企业微信里确认创建智能机器人。"
465
+ },
466
+ "done": "企业微信智能机器人已创建并保存。去企业微信给它发一条消息试试,再在聊天里选项目。",
467
+ "doneNeedsAllowList": "企业微信智能机器人已创建并保存。按下面三步就能开始用:",
468
+ "nextSteps": "1. 去企业微信给它发一条消息,它会回你的企业微信用户 id(扫码结果里没有这个 id)。\n2. 把 id 填进这个机器人那一行的「允许的人」,保存。\n3. 在聊天里选项目。",
469
+ "failure": {
470
+ "expired": "二维码在创建完成前过期了。点「再试一次」换一个新二维码。",
471
+ "failed": "没能创建企业微信智能机器人。点「再试一次」重新来一遍。",
472
+ "saveFailed": "智能机器人已创建,但没能存到这台机器上。请到企业微信里找到这个智能机器人,复制它的 Bot ID 和 Secret,点「添加机器人」手动补上。企业微信里看不到 Secret 的话,点「再试一次」重新创建一个;这次建出的机器人会留在企业微信里,可以到企业微信里删掉。"
473
+ }
474
+ },
456
475
  "setup": {
457
476
  "action": {
458
477
  "label": "连接飞书机器人",
459
478
  "description": "用飞书 App 扫一次码。Ycodium 会在你的账号下建好机器人应用,发布为仅自己可见,并把这个机器人连同凭据直接存进机器人列表,不用手填。",
460
479
  "badge": "测试版",
461
- "warning": "这个功能依赖飞书开发者后台的非公开接口,可能会失效。失效时请到开发者后台手动配置应用。"
480
+ "warning": "飞书扫码依赖飞书开发者后台的非公开接口,可能会失效。失效时请到开发者后台手动配置应用。"
462
481
  },
463
482
  "manual": {
464
483
  "createApp": {
@@ -634,6 +653,32 @@
634
653
  "diagnostic": {
635
654
  "ref": "参考号:{{ref}}\n{{detail}}"
636
655
  },
656
+ "larkCallbackProbe": {
657
+ "label": "验证卡片按钮",
658
+ "description": "私发测试卡给这一行允许名单里的第一个人(通常就是你),等你在 {{seconds}} 秒内点击卡上的按钮。",
659
+ "step": "私发测试卡并等待点击",
660
+ "waiting": "测试卡已私发给允许名单里的第一个人({{id}},通常就是你)。请在 {{seconds}} 秒内到飞书里点卡上的按钮。",
661
+ "notConnected": "跳过:这个机器人还没在这台机器上连上。请先用这一行的「重新连接」连上,再验证。",
662
+ "noRecipient": "跳过:没有可接收测试卡的人。请先用「连接飞书机器人」扫码配置,扫码会自动把你加进这一行的允许名单。",
663
+ "sendFailed": "发不出测试卡。请用这一行的「补全权限」核对消息权限,确认机器人连着,再验证。",
664
+ "timeout": "{{seconds}} 秒内没收到测试卡的按钮回调。要是没来得及点,直接再点「验证卡片按钮」;要是点了还超时,请到开发者后台的「事件与回调」,把回调订阅设为「使用长连接」,添加 {{callbacks}} 后再验证。\n开发者后台地址:\n{{url}}",
665
+ "toast": "已收到点击,卡片按钮可用。",
666
+ "staleToast": "这张测试卡的验证已经结束,结果以设置面板和私信为准。要再验证,请在设置里点「验证卡片按钮」。",
667
+ "notYoursToast": "这张测试卡是发给允许名单里第一个人的,你的点击不算在验证里,忽略就好。",
668
+ "verified": "已收到测试卡的 card.action.trigger,卡片按钮可用。",
669
+ "aborted": "机器人断开,验证中断。请等它恢复连接,或用这一行的「重新连接」,再验证。",
670
+ "card": {
671
+ "title": "🧪 验证卡片按钮",
672
+ "body": "请在 {{seconds}} 秒内点击下方按钮;机器人所在的机器确认收到这次点击后,验证才算通过。",
673
+ "button": "完成验证"
674
+ },
675
+ "notice": {
676
+ "verified": "✅ 验证通过:已收到你点击测试卡发来的 card.action.trigger,卡片按钮可用。",
677
+ "timeout": "⚠️ 验证超时:没收到测试卡的 card.action.trigger,还不能确认按钮可用。要是没来得及点,再点一次「验证卡片按钮」就行;要是点了还超时,请先到开发者后台的「事件与回调」,把回调订阅设为「使用长连接」并添加 card.action.trigger,再点一次「验证卡片按钮」。\n开发者后台地址:\n{{url}}",
678
+ "sendFailed": "⚠️ 验证失败:发不出测试卡,还不能确认 card.action.trigger 可用。请在设置里用这个机器人那一行的「补全权限」核对消息权限,再点「验证卡片按钮」。",
679
+ "aborted": "⚠️ 验证中断:机器人在确认 card.action.trigger 之前断开了。请等它恢复连接,或在设置里用这个机器人那一行的「重新连接」,再点「验证卡片按钮」。"
680
+ }
681
+ },
637
682
  "larkRepair": {
638
683
  "label": "补全权限",
639
684
  "description": "列出缺少的必需权限和飞书开放平台申请链接,再由管理员手动发布应用版本。",
@@ -672,6 +717,12 @@
672
717
  "help": "列出全部命令"
673
718
  },
674
719
  "settingsSection": {
720
+ "lastMessageError": {
721
+ "title": "最近一条消息处理失败",
722
+ "separator": ":",
723
+ "code": "错误码 {{code}}",
724
+ "reference": "参考号 {{referenceId}}"
725
+ },
675
726
  "empty": "还没有机器人",
676
727
  "unavailable": "这台机器现在没有聊天桥。",
677
728
  "loadFailed": "聊天桥的设置没能读出来。",
@@ -696,7 +747,10 @@
696
747
  "connected": "已连接",
697
748
  "notConnected": "未连接"
698
749
  },
750
+ "online": "{{connected}} / {{configured}} 在线",
751
+ "onlineLabel": "已配齐 {{configured}} 个机器人,其中 {{connected}} 个在线",
699
752
  "connection": {
753
+ "since": "状态自 {{time}} 起",
700
754
  "failed": "上次连接没有成功。",
701
755
  "details": "详情:{{error}}",
702
756
  "reconnect": "可以点下方的「重新连接」再试。",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ycodium-ai/plugin-im",
3
- "version": "0.2.3230",
3
+ "version": "0.2.3232",
4
4
  "description": "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
5
5
  "keywords": [
6
6
  "im",
@@ -32,7 +32,7 @@
32
32
  "markdown-it": "^15.0.2",
33
33
  "react": "19.2.6",
34
34
  "vite-plus": "0.2.2",
35
- "@ycodium-ai/plugin-api": "0.2.3230",
35
+ "@ycodium-ai/plugin-api": "0.2.3232",
36
36
  "ycodium-react-test-harness": "0.0.0"
37
37
  },
38
38
  "ycodium": {