diff --git a/apps/electron/src/renderer/components/settings/FeishuSettings.tsx b/apps/electron/src/renderer/components/settings/FeishuSettings.tsx
index a76fa06..9a81116 100644
--- a/apps/electron/src/renderer/components/settings/FeishuSettings.tsx
+++ b/apps/electron/src/renderer/components/settings/FeishuSettings.tsx
@@ -9,7 +9,7 @@
import * as React from 'react'
import { useAtomValue, useSetAtom } from 'jotai'
import { toast } from 'sonner'
-import { Loader2, CheckCircle2, XCircle, ExternalLink, Users, User, Trash2, RefreshCw, Copy, Check, Power, PowerOff, Plus } from 'lucide-react'
+import { Loader2, CheckCircle2, XCircle, ExternalLink, Users, User, Trash2, RefreshCw, Copy, Check, Power, PowerOff, Plus, ChevronRight } from 'lucide-react'
import { Button } from '@/components/ui/button'
import {
Select,
@@ -101,6 +101,7 @@ function Link({ href, children }: { href: string; children: React.ReactNode }):
/** 权限列表展示 + 一键复制批量权限 JSON */
function PermissionsStep(): React.ReactElement {
const [copied, setCopied] = React.useState(false)
+ const [expanded, setExpanded] = React.useState(false)
const handleCopy = React.useCallback(() => {
navigator.clipboard.writeText(FEISHU_SCOPES_JSON).then(() => {
@@ -123,6 +124,27 @@ function PermissionsStep(): React.ReactElement {
进入「权限管理」页面,点击下方按钮复制权限配置 JSON,
然后在飞书开放平台通过「批量开通」粘贴即可一键添加所有权限:
+
+ {expanded && (
+
+
im:message — 获取与发送单聊、群组消息
+
im:message:send_as_bot — 以机器人身份发送消息
+
im:message.p2p_msg:readonly — 接收用户发给机器人的单聊消息
+
im:message.group_at_msg:readonly — 接收群聊中 @机器人 的消息
+
im:message.group_msg — 读取群聊历史消息(群聊上下文)
+
im:chat:readonly — 获取群组信息
+
im:chat.members:read — 获取群成员列表(支持 @某人)
+
im:resource — 获取消息中的资源文件(图片、文档等)
+
contact:contact.base:readonly — 获取用户基本信息(群聊发送者名称)
+
+ )}
: }
{copied ? '已复制' : '复制批量权限配置'}
-
-
im:message — 获取与发送单聊、群组消息
-
im:message:send_as_bot — 以机器人身份发送消息
-
im:message.p2p_msg:readonly — 接收用户发给机器人的单聊消息
-
im:message.group_at_msg:readonly — 接收群聊中 @机器人 的消息
-
im:message.group_msg — 读取群聊历史消息(群聊上下文)
-
im:chat:readonly — 获取群组信息
-
im:chat.members:read — 获取群成员列表(支持 @某人)
-
im:resource — 获取消息中的资源文件(图片、文档等)
-
contact:contact.base:readonly — 获取用户基本信息(群聊发送者名称)
-
)
}
+// ===== 飞书 CLI 预置 Prompt =====
+
+const FEISHU_CLI_PROMPT = `请帮我配置飞书 CLI 开发环境,按以下步骤执行:
+
+1. 安装飞书 CLI 到全局
+npm install -g @larksuite/cli
+
+2. 将 SKILL 配置到本工作区(不要安装在全局)
+npx skills add https://github.com/larksuite/cli -y -g
+
+3. 初始化 CLI 配置
+lark-cli config init --new
+
+到最后一步配置环节需要特别提醒用户:已有Bot应用则选择已有应用,没有再选择新建飞书CLI应用。`
+
+/** 飞书 CLI 配置引导 */
+function FeishuCliSection(): React.ReactElement {
+ const [expanded, setExpanded] = React.useState(false)
+ const [copied, setCopied] = React.useState(false)
+
+ const handleSendToAgent = React.useCallback(() => {
+ navigator.clipboard.writeText(FEISHU_CLI_PROMPT).then(() => {
+ setCopied(true)
+ toast.success('配置指令已复制,请在 Agent 对话中粘贴发送')
+ setTimeout(() => setCopied(false), 2000)
+ }).catch(() => {
+ toast.error('复制失败')
+ })
+ }, [])
+
+ return (
+
+
+
+
复制配置提示词,并前往飞书Bot日常绑定的默认工作区,发送即可让 Proma 协助完成配置。
+
+
+ {expanded && (
+
+
步骤 1 — 安装飞书 CLI 到全局
+
npm install -g @larksuite/cli
+
步骤 2 — 将 SKILL 配置到本工作区(默认配置本工作区,但请提醒用户是否需要额外安装到全局,会使得预置上下文增加,造成不必要的Token消耗)
+
npx skills add https://github.com/larksuite/cli -y -g
+
步骤 3 — 初始化 CLI 配置
+
lark-cli config init --new
+
+ )}
+
+
+
+
+
+ )
+}
+
// ===== 绑定卡片组件 =====
interface FeishuBindingCardProps {
@@ -730,7 +814,7 @@ function FeishuConfigTab(): React.ReactElement {
飞书开放平台
{' '}(海外版:
Lark 开放平台
- ),点击「创建自建应用」,填写应用名称和描述。
+ ),点击「创建自建应用」并填写名称描述。
@@ -741,10 +825,10 @@ function FeishuConfigTab(): React.ReactElement {
获取凭证
- 进入应用详情页,在「凭证与基础信息」中找到{' '}
+ 进入详情页,在「凭证与基础信息」中找到{' '}
App ID 和{' '}
App Secret,
- 复制到上方的配置表单中。
+ 复制到上方的配置表单。
@@ -811,6 +895,9 @@ function FeishuConfigTab(): React.ReactElement {
+ {/* 飞书 CLI 配置引导 */}
+
+
)
}