opencode-bridge 2.9.0-beta
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/.env.example +131 -0
- package/LICENSE +674 -0
- package/README.md +1195 -0
- package/bin/opencode-bridge.js +31 -0
- package/dist/commands/effort.d.ts +9 -0
- package/dist/commands/effort.d.ts.map +1 -0
- package/dist/commands/effort.js +56 -0
- package/dist/commands/effort.js.map +1 -0
- package/dist/commands/parser.d.ts +37 -0
- package/dist/commands/parser.d.ts.map +1 -0
- package/dist/commands/parser.js +355 -0
- package/dist/commands/parser.js.map +1 -0
- package/dist/config.d.ts +91 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +340 -0
- package/dist/config.js.map +1 -0
- package/dist/feishu/cards-stream.d.ts +65 -0
- package/dist/feishu/cards-stream.d.ts.map +1 -0
- package/dist/feishu/cards-stream.js +448 -0
- package/dist/feishu/cards-stream.js.map +1 -0
- package/dist/feishu/cards.d.ts +81 -0
- package/dist/feishu/cards.d.ts.map +1 -0
- package/dist/feishu/cards.js +560 -0
- package/dist/feishu/cards.js.map +1 -0
- package/dist/feishu/client.d.ts +132 -0
- package/dist/feishu/client.d.ts.map +1 -0
- package/dist/feishu/client.js +952 -0
- package/dist/feishu/client.js.map +1 -0
- package/dist/feishu/streamer.d.ts +30 -0
- package/dist/feishu/streamer.d.ts.map +1 -0
- package/dist/feishu/streamer.js +95 -0
- package/dist/feishu/streamer.js.map +1 -0
- package/dist/handlers/card-action.d.ts +12 -0
- package/dist/handlers/card-action.d.ts.map +1 -0
- package/dist/handlers/card-action.js +154 -0
- package/dist/handlers/card-action.js.map +1 -0
- package/dist/handlers/command.d.ts +76 -0
- package/dist/handlers/command.d.ts.map +1 -0
- package/dist/handlers/command.js +1773 -0
- package/dist/handlers/command.js.map +1 -0
- package/dist/handlers/discord.d.ts +78 -0
- package/dist/handlers/discord.d.ts.map +1 -0
- package/dist/handlers/discord.js +1832 -0
- package/dist/handlers/discord.js.map +1 -0
- package/dist/handlers/file-sender.d.ts +22 -0
- package/dist/handlers/file-sender.d.ts.map +1 -0
- package/dist/handlers/file-sender.js +183 -0
- package/dist/handlers/file-sender.js.map +1 -0
- package/dist/handlers/group.d.ts +21 -0
- package/dist/handlers/group.d.ts.map +1 -0
- package/dist/handlers/group.js +414 -0
- package/dist/handlers/group.js.map +1 -0
- package/dist/handlers/lifecycle.d.ts +17 -0
- package/dist/handlers/lifecycle.d.ts.map +1 -0
- package/dist/handlers/lifecycle.js +129 -0
- package/dist/handlers/lifecycle.js.map +1 -0
- package/dist/handlers/p2p.d.ts +44 -0
- package/dist/handlers/p2p.d.ts.map +1 -0
- package/dist/handlers/p2p.js +625 -0
- package/dist/handlers/p2p.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1562 -0
- package/dist/index.js.map +1 -0
- package/dist/opencode/client.d.ts +176 -0
- package/dist/opencode/client.d.ts.map +1 -0
- package/dist/opencode/client.js +1126 -0
- package/dist/opencode/client.js.map +1 -0
- package/dist/opencode/delayed-handler.d.ts +33 -0
- package/dist/opencode/delayed-handler.d.ts.map +1 -0
- package/dist/opencode/delayed-handler.js +74 -0
- package/dist/opencode/delayed-handler.js.map +1 -0
- package/dist/opencode/output-buffer.d.ts +56 -0
- package/dist/opencode/output-buffer.d.ts.map +1 -0
- package/dist/opencode/output-buffer.js +202 -0
- package/dist/opencode/output-buffer.js.map +1 -0
- package/dist/opencode/question-handler.d.ts +61 -0
- package/dist/opencode/question-handler.d.ts.map +1 -0
- package/dist/opencode/question-handler.js +183 -0
- package/dist/opencode/question-handler.js.map +1 -0
- package/dist/opencode/question-parser.d.ts +9 -0
- package/dist/opencode/question-parser.d.ts.map +1 -0
- package/dist/opencode/question-parser.js +69 -0
- package/dist/opencode/question-parser.js.map +1 -0
- package/dist/opencode/session-queue.d.ts +16 -0
- package/dist/opencode/session-queue.d.ts.map +1 -0
- package/dist/opencode/session-queue.js +41 -0
- package/dist/opencode/session-queue.js.map +1 -0
- package/dist/permissions/handler.d.ts +36 -0
- package/dist/permissions/handler.d.ts.map +1 -0
- package/dist/permissions/handler.js +141 -0
- package/dist/permissions/handler.js.map +1 -0
- package/dist/platform/adapters/discord-adapter.d.ts +45 -0
- package/dist/platform/adapters/discord-adapter.d.ts.map +1 -0
- package/dist/platform/adapters/discord-adapter.js +497 -0
- package/dist/platform/adapters/discord-adapter.js.map +1 -0
- package/dist/platform/adapters/feishu-adapter.d.ts +29 -0
- package/dist/platform/adapters/feishu-adapter.d.ts.map +1 -0
- package/dist/platform/adapters/feishu-adapter.js +150 -0
- package/dist/platform/adapters/feishu-adapter.js.map +1 -0
- package/dist/platform/registry.d.ts +41 -0
- package/dist/platform/registry.d.ts.map +1 -0
- package/dist/platform/registry.js +87 -0
- package/dist/platform/registry.js.map +1 -0
- package/dist/platform/types.d.ts +92 -0
- package/dist/platform/types.d.ts.map +1 -0
- package/dist/platform/types.js +4 -0
- package/dist/platform/types.js.map +1 -0
- package/dist/reliability/audit-log.d.ts +93 -0
- package/dist/reliability/audit-log.d.ts.map +1 -0
- package/dist/reliability/audit-log.js +248 -0
- package/dist/reliability/audit-log.js.map +1 -0
- package/dist/reliability/config-guard.d.ts +42 -0
- package/dist/reliability/config-guard.d.ts.map +1 -0
- package/dist/reliability/config-guard.js +264 -0
- package/dist/reliability/config-guard.js.map +1 -0
- package/dist/reliability/conversation-heartbeat.d.ts +37 -0
- package/dist/reliability/conversation-heartbeat.d.ts.map +1 -0
- package/dist/reliability/conversation-heartbeat.js +179 -0
- package/dist/reliability/conversation-heartbeat.js.map +1 -0
- package/dist/reliability/cron-api-server.d.ts +13 -0
- package/dist/reliability/cron-api-server.d.ts.map +1 -0
- package/dist/reliability/cron-api-server.js +247 -0
- package/dist/reliability/cron-api-server.js.map +1 -0
- package/dist/reliability/cron-control.d.ts +34 -0
- package/dist/reliability/cron-control.d.ts.map +1 -0
- package/dist/reliability/cron-control.js +864 -0
- package/dist/reliability/cron-control.js.map +1 -0
- package/dist/reliability/cron-semantic.d.ts +9 -0
- package/dist/reliability/cron-semantic.d.ts.map +1 -0
- package/dist/reliability/cron-semantic.js +208 -0
- package/dist/reliability/cron-semantic.js.map +1 -0
- package/dist/reliability/environment-doctor.d.ts +56 -0
- package/dist/reliability/environment-doctor.d.ts.map +1 -0
- package/dist/reliability/environment-doctor.js +213 -0
- package/dist/reliability/environment-doctor.js.map +1 -0
- package/dist/reliability/job-registry.d.ts +26 -0
- package/dist/reliability/job-registry.d.ts.map +1 -0
- package/dist/reliability/job-registry.js +77 -0
- package/dist/reliability/job-registry.js.map +1 -0
- package/dist/reliability/opencode-probe.d.ts +37 -0
- package/dist/reliability/opencode-probe.d.ts.map +1 -0
- package/dist/reliability/opencode-probe.js +195 -0
- package/dist/reliability/opencode-probe.js.map +1 -0
- package/dist/reliability/opencode-restart.d.ts +42 -0
- package/dist/reliability/opencode-restart.d.ts.map +1 -0
- package/dist/reliability/opencode-restart.js +155 -0
- package/dist/reliability/opencode-restart.js.map +1 -0
- package/dist/reliability/proactive-heartbeat.d.ts +39 -0
- package/dist/reliability/proactive-heartbeat.d.ts.map +1 -0
- package/dist/reliability/proactive-heartbeat.js +147 -0
- package/dist/reliability/proactive-heartbeat.js.map +1 -0
- package/dist/reliability/process-check-job.d.ts +73 -0
- package/dist/reliability/process-check-job.d.ts.map +1 -0
- package/dist/reliability/process-check-job.js +254 -0
- package/dist/reliability/process-check-job.js.map +1 -0
- package/dist/reliability/process-guard.d.ts +53 -0
- package/dist/reliability/process-guard.d.ts.map +1 -0
- package/dist/reliability/process-guard.js +344 -0
- package/dist/reliability/process-guard.js.map +1 -0
- package/dist/reliability/recovery-reporter.d.ts +37 -0
- package/dist/reliability/recovery-reporter.d.ts.map +1 -0
- package/dist/reliability/recovery-reporter.js +161 -0
- package/dist/reliability/recovery-reporter.js.map +1 -0
- package/dist/reliability/rescue-executor.d.ts +52 -0
- package/dist/reliability/rescue-executor.d.ts.map +1 -0
- package/dist/reliability/rescue-executor.js +244 -0
- package/dist/reliability/rescue-executor.js.map +1 -0
- package/dist/reliability/rescue-policy.d.ts +39 -0
- package/dist/reliability/rescue-policy.d.ts.map +1 -0
- package/dist/reliability/rescue-policy.js +85 -0
- package/dist/reliability/rescue-policy.js.map +1 -0
- package/dist/reliability/runtime-cron-dispatcher.d.ts +30 -0
- package/dist/reliability/runtime-cron-dispatcher.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-dispatcher.js +100 -0
- package/dist/reliability/runtime-cron-dispatcher.js.map +1 -0
- package/dist/reliability/runtime-cron-orphan.d.ts +18 -0
- package/dist/reliability/runtime-cron-orphan.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-orphan.js +87 -0
- package/dist/reliability/runtime-cron-orphan.js.map +1 -0
- package/dist/reliability/runtime-cron-registry.d.ts +4 -0
- package/dist/reliability/runtime-cron-registry.d.ts.map +1 -0
- package/dist/reliability/runtime-cron-registry.js +8 -0
- package/dist/reliability/runtime-cron-registry.js.map +1 -0
- package/dist/reliability/runtime-cron.d.ts +75 -0
- package/dist/reliability/runtime-cron.d.ts.map +1 -0
- package/dist/reliability/runtime-cron.js +309 -0
- package/dist/reliability/runtime-cron.js.map +1 -0
- package/dist/reliability/scheduler.d.ts +38 -0
- package/dist/reliability/scheduler.d.ts.map +1 -0
- package/dist/reliability/scheduler.js +174 -0
- package/dist/reliability/scheduler.js.map +1 -0
- package/dist/reliability/types.d.ts +151 -0
- package/dist/reliability/types.d.ts.map +1 -0
- package/dist/reliability/types.js +178 -0
- package/dist/reliability/types.js.map +1 -0
- package/dist/router/action-handlers.d.ts +27 -0
- package/dist/router/action-handlers.d.ts.map +1 -0
- package/dist/router/action-handlers.js +226 -0
- package/dist/router/action-handlers.js.map +1 -0
- package/dist/router/opencode-event-hub.d.ts +159 -0
- package/dist/router/opencode-event-hub.d.ts.map +1 -0
- package/dist/router/opencode-event-hub.js +589 -0
- package/dist/router/opencode-event-hub.js.map +1 -0
- package/dist/router/root-router.d.ts +94 -0
- package/dist/router/root-router.d.ts.map +1 -0
- package/dist/router/root-router.js +214 -0
- package/dist/router/root-router.js.map +1 -0
- package/dist/store/chat-session.d.ts +150 -0
- package/dist/store/chat-session.d.ts.map +1 -0
- package/dist/store/chat-session.js +640 -0
- package/dist/store/chat-session.js.map +1 -0
- package/dist/store/session-directory.d.ts +12 -0
- package/dist/store/session-directory.d.ts.map +1 -0
- package/dist/store/session-directory.js +47 -0
- package/dist/store/session-directory.js.map +1 -0
- package/dist/store/session-group.d.ts +19 -0
- package/dist/store/session-group.d.ts.map +1 -0
- package/dist/store/session-group.js +92 -0
- package/dist/store/session-group.js.map +1 -0
- package/dist/store/user-session.d.ts +19 -0
- package/dist/store/user-session.d.ts.map +1 -0
- package/dist/store/user-session.js +112 -0
- package/dist/store/user-session.js.map +1 -0
- package/dist/utils/async-queue.d.ts +12 -0
- package/dist/utils/async-queue.d.ts.map +1 -0
- package/dist/utils/async-queue.js +51 -0
- package/dist/utils/async-queue.js.map +1 -0
- package/dist/utils/directory-policy.d.ts +50 -0
- package/dist/utils/directory-policy.d.ts.map +1 -0
- package/dist/utils/directory-policy.js +379 -0
- package/dist/utils/directory-policy.js.map +1 -0
- package/dist/utils/session-title.d.ts +2 -0
- package/dist/utils/session-title.d.ts.map +1 -0
- package/dist/utils/session-title.js +10 -0
- package/dist/utils/session-title.js.map +1 -0
- package/package.json +73 -0
package/.env.example
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# 飞书应用配置(从开发者后台获取)
|
|
2
|
+
FEISHU_APP_ID=cli_xxxxxxxxxxxxx
|
|
3
|
+
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxx
|
|
4
|
+
|
|
5
|
+
# npm CLI 默认优先读取当前工作目录下的 .env;若不存在,则读取 ~/.config/opencode-bridge/.env
|
|
6
|
+
# 也可以通过命令行覆盖:opencode-bridge --config-dir /path/to/config
|
|
7
|
+
|
|
8
|
+
# 用户白名单(你的飞书 open_id)
|
|
9
|
+
# ALLOWED_USERS=ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
10
|
+
|
|
11
|
+
# 平台启用过滤(可选,逗号分隔)
|
|
12
|
+
# ENABLED_PLATFORMS=feishu,discord
|
|
13
|
+
|
|
14
|
+
# Discord 适配器(可选)
|
|
15
|
+
# DISCORD_ENABLED=true
|
|
16
|
+
# 兼容两种 token 命名:DISCORD_TOKEN / DISCORD_BOT_TOKEN
|
|
17
|
+
# DISCORD_TOKEN=your-discord-bot-token
|
|
18
|
+
# DISCORD_BOT_TOKEN=your-discord-bot-token
|
|
19
|
+
# DISCORD_CLIENT_ID=your-discord-client-id
|
|
20
|
+
# 需要在 Discord Developer Portal 开启 Message Content Intent
|
|
21
|
+
# 并给机器人授予发送/读取频道消息权限
|
|
22
|
+
|
|
23
|
+
# OpenCode 服务地址
|
|
24
|
+
# OPENCODE_HOST=localhost
|
|
25
|
+
# OPENCODE_PORT=4096
|
|
26
|
+
|
|
27
|
+
# OpenCode Server Basic Auth(可选)
|
|
28
|
+
# 当 OpenCode 设置 OPENCODE_SERVER_PASSWORD 后,桥接端需要配置同一组凭据
|
|
29
|
+
# OPENCODE_SERVER_USERNAME 默认为 opencode
|
|
30
|
+
# OPENCODE_SERVER_USERNAME=opencode
|
|
31
|
+
# OPENCODE_SERVER_PASSWORD=your-strong-password
|
|
32
|
+
|
|
33
|
+
# 可靠性(心跳 + Cron + 宕机救援)
|
|
34
|
+
# 是否启用可靠性 Cron 调度
|
|
35
|
+
# RELIABILITY_CRON_ENABLED=true
|
|
36
|
+
# 是否启用运行时 Cron API(支持 /cron/add|remove|update|list)
|
|
37
|
+
# RELIABILITY_CRON_API_ENABLED=false
|
|
38
|
+
# Cron API 监听地址和端口
|
|
39
|
+
# RELIABILITY_CRON_API_HOST=127.0.0.1
|
|
40
|
+
# RELIABILITY_CRON_API_PORT=4097
|
|
41
|
+
# Cron API Bearer Token(可选)
|
|
42
|
+
# RELIABILITY_CRON_API_TOKEN=your-token
|
|
43
|
+
# Cron 动态任务持久化文件(默认 ~/cron/jobs.json)
|
|
44
|
+
# RELIABILITY_CRON_JOBS_FILE=/absolute/path/jobs.json
|
|
45
|
+
# 是否自动清理僵尸 Cron(启动扫描 / 群解散或频道删除联动 / stale cleanup)
|
|
46
|
+
# RELIABILITY_CRON_ORPHAN_AUTO_CLEANUP=false
|
|
47
|
+
# 原聊天窗口失效时,是否允许转发到私聊/备用窗口
|
|
48
|
+
# RELIABILITY_CRON_FORWARD_TO_PRIVATE=false
|
|
49
|
+
# Feishu 备用接收 chat_id(可选)
|
|
50
|
+
# RELIABILITY_CRON_FALLBACK_FEISHU_CHAT_ID=oc_xxx
|
|
51
|
+
# Discord 备用接收频道/私聊 conversationId(可选)
|
|
52
|
+
# RELIABILITY_CRON_FALLBACK_DISCORD_CONVERSATION_ID=1234567890
|
|
53
|
+
# 主动心跳开关(Bridge 定时器,默认关闭)
|
|
54
|
+
# RELIABILITY_PROACTIVE_HEARTBEAT_ENABLED=false
|
|
55
|
+
# 入站消息触发心跳开关(兼容模式,默认关闭)
|
|
56
|
+
# RELIABILITY_INBOUND_HEARTBEAT_ENABLED=false
|
|
57
|
+
# 主动心跳轮询间隔(毫秒)
|
|
58
|
+
# RELIABILITY_HEARTBEAT_INTERVAL_MS=1800000
|
|
59
|
+
# 主动心跳使用的 Agent(可选)
|
|
60
|
+
# RELIABILITY_HEARTBEAT_AGENT=companion
|
|
61
|
+
# 主动心跳提示词(可选,建议包含 HEARTBEAT_OK)
|
|
62
|
+
# RELIABILITY_HEARTBEAT_PROMPT=Read HEARTBEAT.md if it exists... reply HEARTBEAT_OK
|
|
63
|
+
# 心跳告警推送目标飞书 chat_id(逗号分隔,可选)
|
|
64
|
+
# RELIABILITY_HEARTBEAT_ALERT_CHATS=oc_xxx,oc_yyy
|
|
65
|
+
# 无限重连场景:连续失败阈值与时间窗口
|
|
66
|
+
# RELIABILITY_FAILURE_THRESHOLD=3
|
|
67
|
+
# RELIABILITY_WINDOW_MS=90000
|
|
68
|
+
# 两次自动救援之间的冷却时间(毫秒)
|
|
69
|
+
# RELIABILITY_COOLDOWN_MS=300000
|
|
70
|
+
# 自动救援预算(耗尽后转人工介入)
|
|
71
|
+
# RELIABILITY_REPAIR_BUDGET=3
|
|
72
|
+
# 可靠性模式预留字段:observe | shadow | active
|
|
73
|
+
# RELIABILITY_MODE=observe
|
|
74
|
+
# 仅允许本地 loopback(localhost/127.0.0.1/::1)自动救援
|
|
75
|
+
# RELIABILITY_LOOPBACK_ONLY=true
|
|
76
|
+
# 宕机救援用于备份/回退的 OpenCode 配置文件路径
|
|
77
|
+
# OPENCODE_CONFIG_FILE=./opencode.json
|
|
78
|
+
|
|
79
|
+
# 群聊是否仅在明确 @ 机器人时才响应(true/false)
|
|
80
|
+
# false: 兼容旧行为,群聊普通消息也会响应
|
|
81
|
+
# true: 仅在群聊中被 @ 才响应
|
|
82
|
+
# GROUP_REQUIRE_MENTION=false
|
|
83
|
+
|
|
84
|
+
# 输出显示配置(可选)
|
|
85
|
+
# 思维链和工具链显示控制
|
|
86
|
+
# 全局开关:默认 true,设为 false 可隐藏对应内容
|
|
87
|
+
# SHOW_THINKING_CHAIN=true
|
|
88
|
+
# SHOW_TOOL_CHAIN=true
|
|
89
|
+
|
|
90
|
+
# 飞书特定开关(优先级高于全局:平台键覆盖全局键)
|
|
91
|
+
# FEISHU_SHOW_THINKING_CHAIN=true
|
|
92
|
+
# FEISHU_SHOW_TOOL_CHAIN=true
|
|
93
|
+
#
|
|
94
|
+
# Discord 特定开关(优先级高于全局:平台键覆盖全局键)
|
|
95
|
+
# DISCORD_SHOW_THINKING_CHAIN=true
|
|
96
|
+
# DISCORD_SHOW_TOOL_CHAIN=true
|
|
97
|
+
|
|
98
|
+
# 工作目录配置(可选)
|
|
99
|
+
# 允许的工作目录根列表(逗号分隔绝对路径)
|
|
100
|
+
# 未配置时用户不能自定义路径,只能使用默认目录或从已知项目选择
|
|
101
|
+
# ALLOWED_DIRECTORIES=/home/user/projects,/opt/repos
|
|
102
|
+
# 全局默认工作目录(最低优先级兜底,不配置则跟随 OpenCode 服务端)
|
|
103
|
+
# DEFAULT_WORK_DIRECTORY=/home/user/projects/main-project
|
|
104
|
+
# 项目别名映射(JSON 格式,短名 → 绝对路径)
|
|
105
|
+
# PROJECT_ALIASES={"frontend":"/home/user/frontend","backend":"/home/user/backend"}
|
|
106
|
+
# 是否自动将目录归一到 Git 仓库根目录(默认 true)
|
|
107
|
+
# GIT_ROOT_NORMALIZATION=true
|
|
108
|
+
|
|
109
|
+
# 自动允许的工具(不需要确认)
|
|
110
|
+
TOOL_WHITELIST=Read,Glob,Grep,Task,Write
|
|
111
|
+
|
|
112
|
+
# 权限请求在桥接侧的保留时长(毫秒)
|
|
113
|
+
# <= 0 表示不超时(默认),会一直等待用户回复
|
|
114
|
+
# PERMISSION_REQUEST_TIMEOUT_MS=0
|
|
115
|
+
|
|
116
|
+
# 输出配置
|
|
117
|
+
OUTPUT_UPDATE_INTERVAL=3000
|
|
118
|
+
|
|
119
|
+
# 延迟响应最大等待时间(毫秒)
|
|
120
|
+
MAX_DELAYED_RESPONSE_WAIT_MS=120000
|
|
121
|
+
|
|
122
|
+
# 是否允许手动绑定已有 OpenCode 会话(true/false)
|
|
123
|
+
# true: 开启 /session <sessionId> 与建群下拉中的“绑定已有会话”
|
|
124
|
+
# false: 仅允许新建会话,不展示/不允许绑定已有会话
|
|
125
|
+
ENABLE_MANUAL_SESSION_BIND=true
|
|
126
|
+
|
|
127
|
+
# 路由模式(legacy | dual | router)
|
|
128
|
+
# legacy: 默认稳定模式
|
|
129
|
+
# dual: 双轨对比日志模式
|
|
130
|
+
# router: 新路由模式
|
|
131
|
+
# ROUTER_MODE=legacy
|