botmux 2.106.0 → 2.107.0
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/dist/bot-registry.d.ts +25 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +6 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +5 -0
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +27 -1
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts +6 -0
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +25 -0
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/pending-response.d.ts +1 -0
- package/dist/core/pending-response.d.ts.map +1 -1
- package/dist/core/pending-response.js +1 -0
- package/dist/core/pending-response.js.map +1 -1
- package/dist/core/resource-monitor/attribution.d.ts +70 -0
- package/dist/core/resource-monitor/attribution.d.ts.map +1 -0
- package/dist/core/resource-monitor/attribution.js +222 -0
- package/dist/core/resource-monitor/attribution.js.map +1 -0
- package/dist/core/resource-monitor/procfs.d.ts +22 -0
- package/dist/core/resource-monitor/procfs.d.ts.map +1 -0
- package/dist/core/resource-monitor/procfs.js +134 -0
- package/dist/core/resource-monitor/procfs.js.map +1 -0
- package/dist/core/resource-monitor/ring-buffer.d.ts +15 -0
- package/dist/core/resource-monitor/ring-buffer.d.ts.map +1 -0
- package/dist/core/resource-monitor/ring-buffer.js +61 -0
- package/dist/core/resource-monitor/ring-buffer.js.map +1 -0
- package/dist/core/resource-monitor/runtime.d.ts +31 -0
- package/dist/core/resource-monitor/runtime.d.ts.map +1 -0
- package/dist/core/resource-monitor/runtime.js +92 -0
- package/dist/core/resource-monitor/runtime.js.map +1 -0
- package/dist/core/resource-monitor/top-selector.d.ts +18 -0
- package/dist/core/resource-monitor/top-selector.d.ts.map +1 -0
- package/dist/core/resource-monitor/top-selector.js +57 -0
- package/dist/core/resource-monitor/top-selector.js.map +1 -0
- package/dist/core/resource-monitor/types.d.ts +181 -0
- package/dist/core/resource-monitor/types.d.ts.map +1 -0
- package/dist/core/resource-monitor/types.js +2 -0
- package/dist/core/resource-monitor/types.js.map +1 -0
- package/dist/core/session-manager.d.ts +3 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +31 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +1 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/daemon.d.ts +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +44 -22
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +1 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +1 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/resource-monitor-service.d.ts +56 -0
- package/dist/dashboard/resource-monitor-service.d.ts.map +1 -0
- package/dist/dashboard/resource-monitor-service.js +446 -0
- package/dist/dashboard/resource-monitor-service.js.map +1 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +160 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
- package/dist/dashboard/web/dashboard-routes.js +18 -0
- package/dist/dashboard/web/dashboard-routes.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +274 -2
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/monitor-room-store.d.ts +20 -0
- package/dist/dashboard/web/monitor-room-store.d.ts.map +1 -0
- package/dist/dashboard/web/monitor-room-store.js +80 -0
- package/dist/dashboard/web/monitor-room-store.js.map +1 -0
- package/dist/dashboard/web/monitor-room.d.ts +31 -0
- package/dist/dashboard/web/monitor-room.d.ts.map +1 -0
- package/dist/dashboard/web/monitor-room.js +393 -0
- package/dist/dashboard/web/monitor-room.js.map +1 -0
- package/dist/dashboard/web/monitoring-page.d.ts +155 -0
- package/dist/dashboard/web/monitoring-page.d.ts.map +1 -0
- package/dist/dashboard/web/monitoring-page.js +189 -0
- package/dist/dashboard/web/monitoring-page.js.map +1 -0
- package/dist/dashboard/web/overview-page.d.ts.map +1 -1
- package/dist/dashboard/web/overview-page.js +108 -1
- package/dist/dashboard/web/overview-page.js.map +1 -1
- package/dist/dashboard/web/preferences.d.ts +3 -0
- package/dist/dashboard/web/preferences.d.ts.map +1 -1
- package/dist/dashboard/web/preferences.js +18 -0
- package/dist/dashboard/web/preferences.js.map +1 -1
- package/dist/dashboard/web/session-terminal.d.ts +7 -0
- package/dist/dashboard/web/session-terminal.d.ts.map +1 -0
- package/dist/dashboard/web/session-terminal.js +17 -0
- package/dist/dashboard/web/session-terminal.js.map +1 -0
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +2 -1
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts +4 -0
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +98 -17
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard/web/skills-page.js +1 -1
- package/dist/dashboard/web/skills-page.js.map +1 -1
- package/dist/dashboard/web/substitute-targets.d.ts +30 -0
- package/dist/dashboard/web/substitute-targets.d.ts.map +1 -0
- package/dist/dashboard/web/substitute-targets.js +99 -0
- package/dist/dashboard/web/substitute-targets.js.map +1 -0
- package/dist/dashboard/web/ui.d.ts +1 -1
- package/dist/dashboard/web/ui.d.ts.map +1 -1
- package/dist/dashboard/web/ui.js +4 -1
- package/dist/dashboard/web/ui.js.map +1 -1
- package/dist/dashboard-web/app.js +3 -3
- package/dist/dashboard-web/chunks/bot-defaults-page-OCIHPGEU.js +438 -0
- package/dist/dashboard-web/chunks/chunk-3N2PPQVD.js +1 -0
- package/dist/dashboard-web/chunks/chunk-3UJYRR2Q.js +37 -0
- package/dist/dashboard-web/chunks/{chunk-VFCACTRF.js → chunk-PE6W3C2C.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-QW54DWU3.js +325 -0
- package/dist/dashboard-web/chunks/{connectors-VDOAKUW3.js → connectors-IGETYWCP.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-CX5AN4XG.js → groups-page-MYBS4ZYJ.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-DOMRL4S6.js → insights-page-UPA32V2S.js} +1 -1
- package/dist/dashboard-web/chunks/monitor-room-RFX4HPS5.js +51 -0
- package/dist/dashboard-web/chunks/monitoring-page-7T3BESZ2.js +1 -0
- package/dist/dashboard-web/chunks/overview-page-LJSBCQW4.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-3FEAH6S4.js → roles-page-ESURTVQH.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-CTQEA7IE.js → schedules-LML2ISOT.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-YB73XOTU.js +1 -0
- package/dist/dashboard-web/chunks/sessions-page-MCO5QR7Z.js +1 -0
- package/dist/dashboard-web/chunks/{settings-page-R23I3IZG.js → settings-page-OSDKNVS3.js} +1 -1
- package/dist/dashboard-web/chunks/skills-page-PXBZJ6P6.js +2 -0
- package/dist/dashboard-web/chunks/{team-federation-page-ZKL3YMGN.js → team-federation-page-TTPVHFPX.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-4BYQQBFP.js → workflows-FCPM4S4D.js} +1 -1
- package/dist/dashboard-web/index.html +2 -1
- package/dist/dashboard-web/style.css +818 -8
- package/dist/dashboard.js +37 -0
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +8 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +8 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +18 -0
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +12 -2
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +3 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +59 -2
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts +35 -0
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +56 -0
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/im/lark/substitute-command.d.ts +2 -0
- package/dist/im/lark/substitute-command.d.ts.map +1 -0
- package/dist/im/lark/substitute-command.js +51 -0
- package/dist/im/lark/substitute-command.js.map +1 -0
- package/dist/services/substitute-chat-toggle-store.d.ts +3 -0
- package/dist/services/substitute-chat-toggle-store.d.ts.map +1 -0
- package/dist/services/substitute-chat-toggle-store.js +58 -0
- package/dist/services/substitute-chat-toggle-store.js.map +1 -0
- package/dist/services/substitute-mode-normalize.d.ts +22 -0
- package/dist/services/substitute-mode-normalize.d.ts.map +1 -0
- package/dist/services/substitute-mode-normalize.js +56 -0
- package/dist/services/substitute-mode-normalize.js.map +1 -0
- package/dist/services/substitute-mode-store.d.ts +50 -0
- package/dist/services/substitute-mode-store.d.ts.map +1 -0
- package/dist/services/substitute-mode-store.js +115 -0
- package/dist/services/substitute-mode-store.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +20 -1
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-3OIY7N76.js +0 -409
- package/dist/dashboard-web/chunks/chunk-BNEXMNQD.js +0 -31
- package/dist/dashboard-web/chunks/chunk-DKKOGZCG.js +0 -317
- package/dist/dashboard-web/chunks/overview-page-AZBAXVZ7.js +0 -1
- package/dist/dashboard-web/chunks/sessions-LVZCXO2Z.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-NHBJDSBC.js +0 -1
- package/dist/dashboard-web/chunks/skills-page-VUG3EPWX.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAI1C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAI1C,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AA0mGtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAM/E;AAED,wBAAgB,qBAAqB,CAAC,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,eAAe,CAMxF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CASpI;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAGrH"}
|
|
@@ -7,6 +7,7 @@ const zh = {
|
|
|
7
7
|
'time.minutesAgo': '{value} 分钟前',
|
|
8
8
|
'time.hoursAgo': '{value} 小时前',
|
|
9
9
|
'nav.overview': '总览',
|
|
10
|
+
'nav.monitoring': '监控',
|
|
10
11
|
'nav.sessions': '会话',
|
|
11
12
|
'nav.sidebarCollapse': '收起菜单栏',
|
|
12
13
|
'nav.sidebarExpand': '展开菜单栏',
|
|
@@ -113,14 +114,107 @@ const zh = {
|
|
|
113
114
|
'overview.nextSchedules': '即将执行',
|
|
114
115
|
'overview.noSessions': '暂无会话。',
|
|
115
116
|
'overview.noSchedules': '暂无定时任务。',
|
|
117
|
+
'monitoring.eyebrow': '运行资源',
|
|
118
|
+
'monitoring.title': '资源监控',
|
|
119
|
+
'monitoring.subtitle': '实时查看宿主机、botmux、机器人和会话的 CPU 与内存压力。',
|
|
120
|
+
'monitoring.runtimeTitle': '运行监控',
|
|
121
|
+
'monitoring.runtimeSubtitle': '实时查看 botmux 的运行健康、资源压力和会话压力。',
|
|
122
|
+
'monitoring.runtimeHealth': '运行健康',
|
|
123
|
+
'monitoring.runtimeHealthHint': '确认数据是否新鲜、daemon 是否在线、会话是否堆积。',
|
|
124
|
+
'monitoring.resourcePressure': '资源压力',
|
|
125
|
+
'monitoring.resourcePressureHint': '机器资源只保存在内存趋势中,重启后清空。',
|
|
126
|
+
'monitoring.sessionPressure': '会话压力',
|
|
127
|
+
'monitoring.sessionPressureHint': '定位长时间运行、等待处理和未关联进程的 live 会话。',
|
|
128
|
+
'monitoring.botRuntime': 'Bot 运行',
|
|
129
|
+
'monitoring.botRuntimeHint': '按 bot 聚合 daemon 状态、会话压力和资源占用。',
|
|
130
|
+
'monitoring.sampleHealth': '采样状态',
|
|
131
|
+
'monitoring.sampleAge': '数据年龄',
|
|
132
|
+
'monitoring.sample.fresh': '新鲜',
|
|
133
|
+
'monitoring.sample.stale': '过期',
|
|
134
|
+
'monitoring.sample.unsupported': '不支持',
|
|
135
|
+
'monitoring.sample.unknown': '未知',
|
|
136
|
+
'monitoring.health.ok': '健康',
|
|
137
|
+
'monitoring.health.warn': '警惕',
|
|
138
|
+
'monitoring.health.danger': '高压',
|
|
139
|
+
'monitoring.health.unknown': '未知',
|
|
140
|
+
'monitoring.daemonHealth': 'Daemon 在线',
|
|
141
|
+
'monitoring.sessionHealth': '会话健康',
|
|
142
|
+
'monitoring.offline': '离线',
|
|
143
|
+
'monitoring.working': '工作中',
|
|
144
|
+
'monitoring.starting': '启动中',
|
|
145
|
+
'monitoring.waiting': '等待中',
|
|
146
|
+
'monitoring.idle': '空闲',
|
|
147
|
+
'monitoring.unknown': '未知',
|
|
148
|
+
'monitoring.statusDistribution': '状态分布',
|
|
149
|
+
'monitoring.longestRunning': '最长运行',
|
|
150
|
+
'monitoring.longestWaiting': '最长等待',
|
|
151
|
+
'monitoring.unattributedSessions': '未关联进程',
|
|
152
|
+
'monitoring.unattributedHint': '这些 live 会话当前没有可靠 PID 关联,无法计算会话级资源。',
|
|
153
|
+
'monitoring.unsupported': '当前平台暂不支持资源采样。',
|
|
154
|
+
'monitoring.unsupportedKicker': 'Linux only',
|
|
155
|
+
'monitoring.unsupportedTitle': '资源采样仅支持 Linux',
|
|
156
|
+
'monitoring.unsupportedHint': '当前平台没有可读的 /proc 数据;运行健康仍可继续查看。',
|
|
157
|
+
'monitoring.unsupportedRuntimeOk': '运行健康可用',
|
|
158
|
+
'monitoring.unsupportedResourceOnly': 'CPU / Memory / RSS 暂停',
|
|
159
|
+
'monitoring.hostCpu': 'CPU',
|
|
160
|
+
'monitoring.hostMemory': 'Memory',
|
|
161
|
+
'monitoring.botmuxRss': 'Botmux 内存',
|
|
162
|
+
'monitoring.botmuxSelf': '本体',
|
|
163
|
+
'monitoring.botmuxDaemon': '守护',
|
|
164
|
+
'monitoring.botmuxWorker': 'worker',
|
|
165
|
+
'monitoring.botmuxCli': '外部 CLI',
|
|
166
|
+
'monitoring.rssHelpLabel': '内存口径说明',
|
|
167
|
+
'monitoring.rssHelp': '内存用 PSS(Proportional Set Size):共享内存页按共享它的进程数分摊,所以多进程相加不会像 RSS 那样把共享的 Node 运行时/库重复计数(读不到 smaps_rollup 时回退 RSS)。\n这是「Botmux 全家桶」总和,拆分:本体 = 守护进程 + 各会话的 botmux worker(自有代码);外部 CLI = Claude/Codex 等 CLI 及其工具子进程,通常占大头。\n适合判断内存热点、持续上涨趋势和异常占用。',
|
|
168
|
+
'monitoring.trackedSessions': '趋势会话',
|
|
169
|
+
'monitoring.currentSessions': '当前会话',
|
|
170
|
+
'monitoring.memoryOnly': '趋势仅保存在内存中,重启后清空',
|
|
171
|
+
'monitoring.trends': '趋势',
|
|
172
|
+
'monitoring.trendsHint': 'Host 与 Botmux 聚合保留 24h;会话历史只保留 Top 集合。',
|
|
173
|
+
'monitoring.trendHostCpu': 'Host CPU',
|
|
174
|
+
'monitoring.trendHostMemory': 'Host Memory',
|
|
175
|
+
'monitoring.trendBotmuxCpu': 'Botmux CPU',
|
|
176
|
+
'monitoring.chartNow': 'now',
|
|
177
|
+
'monitoring.chartNoData': 'no data',
|
|
178
|
+
'monitoring.chartMinutesAgo': '{value} 分钟前',
|
|
179
|
+
'monitoring.chartHoursAgo': '{value} 小时前',
|
|
180
|
+
'monitoring.chartDaysAgo': '{value} 天前',
|
|
181
|
+
'monitoring.bots': '机器人',
|
|
182
|
+
'monitoring.botsHint': '聚合包含 daemon 自身与该 bot 的全部当前会话。',
|
|
183
|
+
'monitoring.sessions': '会话',
|
|
184
|
+
'monitoring.sessionsHint': '所有 live 会话都有当前值,只有 Top 会话保留历史曲线。',
|
|
185
|
+
'monitoring.trackedSessionTrends': 'Top 会话趋势',
|
|
186
|
+
'monitoring.trackedSessionHint': '这是历史保留集合,不代表全量会话范围。',
|
|
187
|
+
'monitoring.noTrackedHistory': '暂无 Top 会话历史。',
|
|
188
|
+
'monitoring.noHotSession': '暂无热点会话',
|
|
189
|
+
'monitoring.hottest': '热点',
|
|
190
|
+
'monitoring.sort': '排序',
|
|
191
|
+
'monitoring.sort.cpu': 'CPU',
|
|
192
|
+
'monitoring.sort.rss': 'RSS',
|
|
193
|
+
'monitoring.sort.growth': '增长',
|
|
194
|
+
'monitoring.sort.bot': 'Bot',
|
|
195
|
+
'monitoring.sort.status': '状态',
|
|
196
|
+
'monitoring.bot': 'Bot',
|
|
197
|
+
'monitoring.cpu': 'CPU',
|
|
198
|
+
'monitoring.rss': 'RSS',
|
|
199
|
+
'monitoring.growth': '增长',
|
|
200
|
+
'monitoring.daemon': 'Daemon',
|
|
201
|
+
'monitoring.sessionsCount': '会话数',
|
|
202
|
+
'monitoring.session': '会话',
|
|
203
|
+
'monitoring.confidence': '归因',
|
|
204
|
+
'monitoring.rank': '入选原因',
|
|
116
205
|
'sessions.title': '会话控制',
|
|
117
206
|
'sessions.subtitle': '定位飞书话题、打开 Web Terminal、关闭或恢复 CLI 会话。',
|
|
118
|
-
'sessions.search': '
|
|
207
|
+
'sessions.search': '搜索群聊 / 工作目录 / 标题 / ID',
|
|
119
208
|
'sessions.anyStatus': '全部状态',
|
|
120
209
|
'sessions.adoptAny': 'adopt: 全部',
|
|
121
210
|
'sessions.adoptYes': 'adopt: 是',
|
|
122
211
|
'sessions.adoptNo': 'adopt: 否',
|
|
212
|
+
'sessions.chatAny': '所在聊天: 全部',
|
|
213
|
+
'sessions.showUnknownChats': '显示未知聊天',
|
|
123
214
|
'sessions.activeOnly': '仅活跃',
|
|
215
|
+
'sessions.monitorRoom': '监控室',
|
|
216
|
+
'sessions.addToMonitorRoom': '添加到监控室',
|
|
217
|
+
'sessions.monitorRoomAdded': '已添加 {added} 个,总计 {total} 个',
|
|
124
218
|
'sessions.closeSelected': '关闭选中',
|
|
125
219
|
'sessions.clearSelection': '取消选择',
|
|
126
220
|
'sessions.selectedCount': '已选 {count} 个会话',
|
|
@@ -141,6 +235,10 @@ const zh = {
|
|
|
141
235
|
'sessions.bot': 'bot',
|
|
142
236
|
'sessions.cli': 'CLI',
|
|
143
237
|
'sessions.chat': '群聊',
|
|
238
|
+
'sessions.location': '所在聊天',
|
|
239
|
+
'sessions.groupChat': '群聊',
|
|
240
|
+
'sessions.directChat': '单聊',
|
|
241
|
+
'sessions.chatUnknown': '未知聊天',
|
|
144
242
|
'sessions.openChat': '打开群聊',
|
|
145
243
|
'sessions.status': '状态',
|
|
146
244
|
'sessions.status.starting': '启动中',
|
|
@@ -200,6 +298,30 @@ const zh = {
|
|
|
200
298
|
'sessions.insightCapped': '仅显示前 {shown}/{total} 条',
|
|
201
299
|
'sessions.insightAsOf': '截至 {asOf}',
|
|
202
300
|
'sessions.insightPartial': '(可能不含进行中的最新一轮)',
|
|
301
|
+
'monitorRoom.eyebrow': '监控室',
|
|
302
|
+
'monitorRoom.title': '会话监控室',
|
|
303
|
+
'monitorRoom.subtitle': '把多个会话的 Web Terminal 放在同一个页面里,适合长时间观察多路任务进展。',
|
|
304
|
+
'monitorRoom.backToSessions': '返回会话',
|
|
305
|
+
'monitorRoom.clear': '清空',
|
|
306
|
+
'monitorRoom.clearConfirm': '清空监控室里的所有会话?',
|
|
307
|
+
'monitorRoom.summary': '共 {count} 个会话,{live} 个终端可用',
|
|
308
|
+
'monitorRoom.autoActive': '空列表显示活跃会话',
|
|
309
|
+
'monitorRoom.autoActiveHelp': '默认关闭;开启后,如果没有手动添加会话,监控室会自动显示会话页“仅活跃”筛选得到的所有会话。',
|
|
310
|
+
'monitorRoom.autoSummary': '未手动添加会话,自动显示 {count} 个活跃会话,{live} 个终端可用',
|
|
311
|
+
'monitorRoom.emptySummary': '监控室为空',
|
|
312
|
+
'monitorRoom.emptyTitle': '还没有添加会话',
|
|
313
|
+
'monitorRoom.emptyHelp': '回到会话页,选中会话后点击“添加到监控室”。',
|
|
314
|
+
'monitorRoom.autoEmptyTitle': '暂无活跃会话',
|
|
315
|
+
'monitorRoom.autoEmptyHelp': '自动显示已开启,但当前没有符合“仅活跃”条件的会话。',
|
|
316
|
+
'monitorRoom.openSessions': '打开会话页',
|
|
317
|
+
'monitorRoom.remove': '移除',
|
|
318
|
+
'monitorRoom.openTerminal': '打开单独终端',
|
|
319
|
+
'monitorRoom.closePopover': '关闭浮层',
|
|
320
|
+
'monitorRoom.missing': '当前列表中不存在',
|
|
321
|
+
'monitorRoom.missingHelp': '这个会话可能已经被清理,或当前 dashboard 快照还没有加载到它。',
|
|
322
|
+
'monitorRoom.terminalUnavailable': '暂无可用终端',
|
|
323
|
+
'monitorRoom.terminalUnavailableHelp': '会话可能已关闭、还未启动 Web Terminal,或当前访问方式下没有可用代理端口。',
|
|
324
|
+
'monitorRoom.updated': '更新 {time}',
|
|
203
325
|
'nav.insights': '洞察',
|
|
204
326
|
'insights.title': '工作流洞察',
|
|
205
327
|
'insights.subtitle': '只读分析本机 Claude Code / Codex 会话的动作轨迹、失败与摩擦,给出规则型优化建议。',
|
|
@@ -1180,6 +1302,20 @@ const zh = {
|
|
|
1180
1302
|
'botDefaults.docSubscribeModeMention': '仅评论 @ 我才触发',
|
|
1181
1303
|
'botDefaults.docSubscribeModeAll': '所有新评论都触发',
|
|
1182
1304
|
'botDefaults.docSubscribeModeHelp': '用 /subscribe-lark-doc 订阅飞书文档后,文档评论会喂进会话、bot 回复发回评论。这里设新订阅的默认触发范围:「仅评论 @ 我」最安全(防刷屏);「所有新评论」适合专用文档。',
|
|
1305
|
+
'botDefaults.sectionSubstitute': '替身模式',
|
|
1306
|
+
'botDefaults.substituteEnabled': '启用替身触发',
|
|
1307
|
+
'botDefaults.substituteHelp': '普通群里 @ 到配置的替身对象时,由本 bot 代答;发消息的人仍需具备 canTalk 权限。推荐与「Oncall 模式」一起使用,让群内成员都能自然 @ 替身触发代答。当前群可用 /substitute off 临时关闭。',
|
|
1308
|
+
'botDefaults.substituteDisclosure': '披露方式',
|
|
1309
|
+
'botDefaults.substituteDisclosurePrefix': '默认说明“我先代 TA 回复”',
|
|
1310
|
+
'botDefaults.substituteDisclosureNone': '不额外说明',
|
|
1311
|
+
'botDefaults.substituteTargetsPlaceholder': 'zhangsan@bytedance.com\nou_xxxx(也可直接填 open_id / union_id)',
|
|
1312
|
+
'botDefaults.substituteTargetsHelp': '一行一个替身对象:填邮箱最省事(保存时自动解析成 open_id 并显示姓名),也可直接填 ou_ 开头的 open_id 或 on_ 开头的 union_id。邮箱解析受本 bot 的通讯录可见范围限制,解析不到的会标红。',
|
|
1313
|
+
'botDefaults.substituteTargetsInvalid': '这些行无法识别(只能填邮箱 / ou_ / on_,纯姓名无法解析)',
|
|
1314
|
+
'botDefaults.substituteTargetsRequired': '开启替身触发至少需要一个能解析成 open_id 的对象',
|
|
1315
|
+
'botDefaults.substituteResolving': '解析中…',
|
|
1316
|
+
'botDefaults.substituteUnresolved': '未解析',
|
|
1317
|
+
'botDefaults.substituteSave': '保存替身模式',
|
|
1318
|
+
'botDefaults.substituteOff': '关闭全局替身配置',
|
|
1183
1319
|
'botDefaults.sectionGrant': '授权与额度',
|
|
1184
1320
|
'botDefaults.autoGrantCard': '未授权 @ 自动弹授权卡',
|
|
1185
1321
|
'botDefaults.autoGrantCardHelp': '开启后,群里有人或外部 bot 明确 @ 该 bot 但被对话权限闸挡住时,会自动给 owner 发 /grant 申请卡;关闭后保持权限拦截但静默丢弃。',
|
|
@@ -1457,6 +1593,7 @@ const en = {
|
|
|
1457
1593
|
'time.minutesAgo': '{value}m ago',
|
|
1458
1594
|
'time.hoursAgo': '{value}h ago',
|
|
1459
1595
|
'nav.overview': 'Overview',
|
|
1596
|
+
'nav.monitoring': 'Monitor',
|
|
1460
1597
|
'nav.sessions': 'Sessions',
|
|
1461
1598
|
'nav.sidebarCollapse': 'Collapse sidebar',
|
|
1462
1599
|
'nav.sidebarExpand': 'Expand sidebar',
|
|
@@ -1563,14 +1700,107 @@ const en = {
|
|
|
1563
1700
|
'overview.nextSchedules': 'Next Runs',
|
|
1564
1701
|
'overview.noSessions': 'No sessions yet.',
|
|
1565
1702
|
'overview.noSchedules': 'No schedules yet.',
|
|
1703
|
+
'monitoring.eyebrow': 'Runtime resources',
|
|
1704
|
+
'monitoring.title': 'Resource Monitor',
|
|
1705
|
+
'monitoring.subtitle': 'Watch host, botmux, bot, and session CPU and memory pressure in real time.',
|
|
1706
|
+
'monitoring.runtimeTitle': 'Runtime Monitor',
|
|
1707
|
+
'monitoring.runtimeSubtitle': 'Monitor botmux runtime health, resource pressure, and session pressure in real time.',
|
|
1708
|
+
'monitoring.runtimeHealth': 'Runtime Health',
|
|
1709
|
+
'monitoring.runtimeHealthHint': 'Check sample freshness, daemon availability, and session buildup.',
|
|
1710
|
+
'monitoring.resourcePressure': 'Resource Pressure',
|
|
1711
|
+
'monitoring.resourcePressureHint': 'Machine resource trends are memory-only and reset after restart.',
|
|
1712
|
+
'monitoring.sessionPressure': 'Session Pressure',
|
|
1713
|
+
'monitoring.sessionPressureHint': 'Find long-running, waiting, and process-unlinked live sessions.',
|
|
1714
|
+
'monitoring.botRuntime': 'Bot Runtime',
|
|
1715
|
+
'monitoring.botRuntimeHint': 'Aggregate daemon status, session pressure, and resource usage by bot.',
|
|
1716
|
+
'monitoring.sampleHealth': 'Sample Health',
|
|
1717
|
+
'monitoring.sampleAge': 'Data age',
|
|
1718
|
+
'monitoring.sample.fresh': 'Fresh',
|
|
1719
|
+
'monitoring.sample.stale': 'Stale',
|
|
1720
|
+
'monitoring.sample.unsupported': 'Unsupported',
|
|
1721
|
+
'monitoring.sample.unknown': 'Unknown',
|
|
1722
|
+
'monitoring.health.ok': 'Healthy',
|
|
1723
|
+
'monitoring.health.warn': 'Watch',
|
|
1724
|
+
'monitoring.health.danger': 'High Pressure',
|
|
1725
|
+
'monitoring.health.unknown': 'Unknown',
|
|
1726
|
+
'monitoring.daemonHealth': 'Daemon Online',
|
|
1727
|
+
'monitoring.sessionHealth': 'Session Health',
|
|
1728
|
+
'monitoring.offline': 'Offline',
|
|
1729
|
+
'monitoring.working': 'Working',
|
|
1730
|
+
'monitoring.starting': 'Starting',
|
|
1731
|
+
'monitoring.waiting': 'Waiting',
|
|
1732
|
+
'monitoring.idle': 'Idle',
|
|
1733
|
+
'monitoring.unknown': 'Unknown',
|
|
1734
|
+
'monitoring.statusDistribution': 'Status Distribution',
|
|
1735
|
+
'monitoring.longestRunning': 'Longest Running',
|
|
1736
|
+
'monitoring.longestWaiting': 'Longest Waiting',
|
|
1737
|
+
'monitoring.unattributedSessions': 'No Linked Process',
|
|
1738
|
+
'monitoring.unattributedHint': 'These live sessions have no reliable PID link, so session-level resource usage cannot be calculated.',
|
|
1739
|
+
'monitoring.unsupported': 'Resource sampling is unavailable on this platform.',
|
|
1740
|
+
'monitoring.unsupportedKicker': 'Linux only',
|
|
1741
|
+
'monitoring.unsupportedTitle': 'Resource sampling requires Linux',
|
|
1742
|
+
'monitoring.unsupportedHint': 'This platform has no readable /proc data; runtime health remains available.',
|
|
1743
|
+
'monitoring.unsupportedRuntimeOk': 'Runtime health available',
|
|
1744
|
+
'monitoring.unsupportedResourceOnly': 'CPU / Memory / RSS paused',
|
|
1745
|
+
'monitoring.hostCpu': 'CPU',
|
|
1746
|
+
'monitoring.hostMemory': 'Memory',
|
|
1747
|
+
'monitoring.botmuxRss': 'Botmux memory',
|
|
1748
|
+
'monitoring.botmuxSelf': 'Self',
|
|
1749
|
+
'monitoring.botmuxDaemon': 'daemon',
|
|
1750
|
+
'monitoring.botmuxWorker': 'worker',
|
|
1751
|
+
'monitoring.botmuxCli': 'External CLI',
|
|
1752
|
+
'monitoring.rssHelpLabel': 'About this memory number',
|
|
1753
|
+
'monitoring.rssHelp': 'Memory uses PSS (Proportional Set Size): shared pages are divided by the number of processes sharing them, so summing across processes does not double-count the shared Node runtime / libs the way RSS would (falls back to RSS when smaps_rollup is unavailable).\nThis is the whole-family total. Split: Self = the daemon + each session’s botmux worker (our own code); External CLI = Claude/Codex-style CLIs and their tool subprocesses, usually the bulk.\nBest for spotting memory hotspots, sustained growth, and abnormal usage.',
|
|
1754
|
+
'monitoring.trackedSessions': 'Trend sessions',
|
|
1755
|
+
'monitoring.currentSessions': 'Current sessions',
|
|
1756
|
+
'monitoring.memoryOnly': 'Trends are memory-only and reset after restart',
|
|
1757
|
+
'monitoring.trends': 'Trends',
|
|
1758
|
+
'monitoring.trendsHint': 'Host and Botmux aggregates keep 24h; session history is retained only for the Top set.',
|
|
1759
|
+
'monitoring.trendHostCpu': 'Host CPU',
|
|
1760
|
+
'monitoring.trendHostMemory': 'Host Memory',
|
|
1761
|
+
'monitoring.trendBotmuxCpu': 'Botmux CPU',
|
|
1762
|
+
'monitoring.chartNow': 'now',
|
|
1763
|
+
'monitoring.chartNoData': 'no data',
|
|
1764
|
+
'monitoring.chartMinutesAgo': '{value}m ago',
|
|
1765
|
+
'monitoring.chartHoursAgo': '{value}h ago',
|
|
1766
|
+
'monitoring.chartDaysAgo': '{value}d ago',
|
|
1767
|
+
'monitoring.bots': 'Bots',
|
|
1768
|
+
'monitoring.botsHint': 'Aggregates include daemon self resources and every current session for that bot.',
|
|
1769
|
+
'monitoring.sessions': 'Sessions',
|
|
1770
|
+
'monitoring.sessionsHint': 'Every live session has current values; only Top sessions keep trend history.',
|
|
1771
|
+
'monitoring.trackedSessionTrends': 'Top Session Trends',
|
|
1772
|
+
'monitoring.trackedSessionHint': 'This is the retained history subset, not the full current session set.',
|
|
1773
|
+
'monitoring.noTrackedHistory': 'No Top session history yet.',
|
|
1774
|
+
'monitoring.noHotSession': 'No hot session',
|
|
1775
|
+
'monitoring.hottest': 'Hottest',
|
|
1776
|
+
'monitoring.sort': 'Sort',
|
|
1777
|
+
'monitoring.sort.cpu': 'CPU',
|
|
1778
|
+
'monitoring.sort.rss': 'RSS',
|
|
1779
|
+
'monitoring.sort.growth': 'Growth',
|
|
1780
|
+
'monitoring.sort.bot': 'Bot',
|
|
1781
|
+
'monitoring.sort.status': 'Status',
|
|
1782
|
+
'monitoring.bot': 'Bot',
|
|
1783
|
+
'monitoring.cpu': 'CPU',
|
|
1784
|
+
'monitoring.rss': 'RSS',
|
|
1785
|
+
'monitoring.growth': 'Growth',
|
|
1786
|
+
'monitoring.daemon': 'Daemon',
|
|
1787
|
+
'monitoring.sessionsCount': 'Sessions',
|
|
1788
|
+
'monitoring.session': 'Session',
|
|
1789
|
+
'monitoring.confidence': 'Confidence',
|
|
1790
|
+
'monitoring.rank': 'Rank reason',
|
|
1566
1791
|
'sessions.title': 'Session Control',
|
|
1567
1792
|
'sessions.subtitle': 'Locate Feishu topics, open Web Terminal, close or resume CLI sessions.',
|
|
1568
|
-
'sessions.search': 'Search working dir / title / IDs',
|
|
1793
|
+
'sessions.search': 'Search chat / working dir / title / IDs',
|
|
1569
1794
|
'sessions.anyStatus': 'Any status',
|
|
1570
1795
|
'sessions.adoptAny': 'adopt: any',
|
|
1571
1796
|
'sessions.adoptYes': 'adopt: yes',
|
|
1572
1797
|
'sessions.adoptNo': 'adopt: no',
|
|
1798
|
+
'sessions.chatAny': 'Chat: all',
|
|
1799
|
+
'sessions.showUnknownChats': 'Show unknown chats',
|
|
1573
1800
|
'sessions.activeOnly': 'Active only',
|
|
1801
|
+
'sessions.monitorRoom': 'Monitor Room',
|
|
1802
|
+
'sessions.addToMonitorRoom': 'Add to monitor room',
|
|
1803
|
+
'sessions.monitorRoomAdded': 'Added {added}; total {total}',
|
|
1574
1804
|
'sessions.closeSelected': 'Close selected',
|
|
1575
1805
|
'sessions.clearSelection': 'Clear',
|
|
1576
1806
|
'sessions.selectedCount': '{count} sessions selected',
|
|
@@ -1591,6 +1821,10 @@ const en = {
|
|
|
1591
1821
|
'sessions.bot': 'Bot',
|
|
1592
1822
|
'sessions.cli': 'CLI',
|
|
1593
1823
|
'sessions.chat': 'Chat',
|
|
1824
|
+
'sessions.location': 'Chat',
|
|
1825
|
+
'sessions.groupChat': 'Group',
|
|
1826
|
+
'sessions.directChat': 'DM',
|
|
1827
|
+
'sessions.chatUnknown': 'Unknown chat',
|
|
1594
1828
|
'sessions.openChat': 'Open chat',
|
|
1595
1829
|
'sessions.status': 'Status',
|
|
1596
1830
|
'sessions.status.starting': 'Starting',
|
|
@@ -1650,6 +1884,30 @@ const en = {
|
|
|
1650
1884
|
'sessions.insightCapped': 'showing first {shown}/{total}',
|
|
1651
1885
|
'sessions.insightAsOf': 'as of {asOf}',
|
|
1652
1886
|
'sessions.insightPartial': '(may exclude the in-flight latest turn)',
|
|
1887
|
+
'monitorRoom.eyebrow': 'Monitor room',
|
|
1888
|
+
'monitorRoom.title': 'Session Monitor Room',
|
|
1889
|
+
'monitorRoom.subtitle': 'Watch multiple session Web Terminals on one page for long-running multi-session work.',
|
|
1890
|
+
'monitorRoom.backToSessions': 'Back to sessions',
|
|
1891
|
+
'monitorRoom.clear': 'Clear',
|
|
1892
|
+
'monitorRoom.clearConfirm': 'Clear all sessions from the monitor room?',
|
|
1893
|
+
'monitorRoom.summary': '{count} sessions, {live} terminals available',
|
|
1894
|
+
'monitorRoom.autoActive': 'Show active when empty',
|
|
1895
|
+
'monitorRoom.autoActiveHelp': 'Off by default. When enabled, an empty manual monitor list shows all sessions matching the Sessions page Active only filter.',
|
|
1896
|
+
'monitorRoom.autoSummary': 'No manual sessions; showing {count} active sessions, {live} terminals available',
|
|
1897
|
+
'monitorRoom.emptySummary': 'Monitor room is empty',
|
|
1898
|
+
'monitorRoom.emptyTitle': 'No sessions added yet',
|
|
1899
|
+
'monitorRoom.emptyHelp': 'Go back to Sessions, select sessions, then click "Add to monitor room".',
|
|
1900
|
+
'monitorRoom.autoEmptyTitle': 'No active sessions',
|
|
1901
|
+
'monitorRoom.autoEmptyHelp': 'Auto display is enabled, but there are no sessions matching the Active only filter.',
|
|
1902
|
+
'monitorRoom.openSessions': 'Open sessions',
|
|
1903
|
+
'monitorRoom.remove': 'Remove',
|
|
1904
|
+
'monitorRoom.openTerminal': 'Open standalone terminal',
|
|
1905
|
+
'monitorRoom.closePopover': 'Close popover',
|
|
1906
|
+
'monitorRoom.missing': 'Not in the current list',
|
|
1907
|
+
'monitorRoom.missingHelp': 'This session may have been cleaned up, or the current dashboard snapshot has not loaded it yet.',
|
|
1908
|
+
'monitorRoom.terminalUnavailable': 'Terminal unavailable',
|
|
1909
|
+
'monitorRoom.terminalUnavailableHelp': 'The session may be closed, not started with a Web Terminal yet, or missing a reachable proxy port for this access mode.',
|
|
1910
|
+
'monitorRoom.updated': 'Updated {time}',
|
|
1653
1911
|
'nav.insights': 'Insight',
|
|
1654
1912
|
'insights.title': 'Workflow Insight',
|
|
1655
1913
|
'insights.subtitle': 'Read-only analysis of local Claude Code / Codex sessions — action trace, failures, friction, with rule-based optimization tips.',
|
|
@@ -2630,6 +2888,20 @@ const en = {
|
|
|
2630
2888
|
'botDefaults.docSubscribeModeMention': 'Only when a comment @s me',
|
|
2631
2889
|
'botDefaults.docSubscribeModeAll': 'Every new comment',
|
|
2632
2890
|
'botDefaults.docSubscribeModeHelp': 'After subscribing to a Feishu doc with /subscribe-lark-doc, its comments feed into the session and the bot replies back into the comment. This sets the default trigger range for new subscriptions: "only when a comment @s me" is safest (avoids noise); "every new comment" suits dedicated docs.',
|
|
2891
|
+
'botDefaults.sectionSubstitute': 'Substitute mode',
|
|
2892
|
+
'botDefaults.substituteEnabled': 'Enable substitute trigger',
|
|
2893
|
+
'botDefaults.substituteHelp': 'In regular groups, when a configured substitute target is @mentioned, this bot answers on their behalf. The sender still needs canTalk. Recommended with Oncall mode so group members can naturally @ the substitute target. Use /substitute off to disable it for a specific group.',
|
|
2894
|
+
'botDefaults.substituteDisclosure': 'Disclosure',
|
|
2895
|
+
'botDefaults.substituteDisclosurePrefix': 'Default: say I am answering for them',
|
|
2896
|
+
'botDefaults.substituteDisclosureNone': 'No extra disclosure',
|
|
2897
|
+
'botDefaults.substituteTargetsPlaceholder': 'alice@example.com\nou_xxxx (open_id / union_id also accepted)',
|
|
2898
|
+
'botDefaults.substituteTargetsHelp': 'One substitute target per line. Email is easiest (resolved to an open_id with the person\'s name on save); you may also paste an ou_ open_id or on_ union_id. Email resolution is bounded by this bot\'s contact visibility — anything that can\'t resolve is flagged in red.',
|
|
2899
|
+
'botDefaults.substituteTargetsInvalid': 'These lines are not recognized (use an email / ou_ / on_; a bare name can\'t resolve)',
|
|
2900
|
+
'botDefaults.substituteTargetsRequired': 'Enabling the substitute trigger needs at least one target that resolves to an open_id',
|
|
2901
|
+
'botDefaults.substituteResolving': 'Resolving…',
|
|
2902
|
+
'botDefaults.substituteUnresolved': 'unresolved',
|
|
2903
|
+
'botDefaults.substituteSave': 'Save substitute mode',
|
|
2904
|
+
'botDefaults.substituteOff': 'Turn off global substitute config',
|
|
2633
2905
|
'botDefaults.sectionGrant': 'Authorization & Quota',
|
|
2634
2906
|
'botDefaults.autoGrantCard': 'Auto grant card for blocked @mentions',
|
|
2635
2907
|
'botDefaults.autoGrantCardHelp': 'When enabled, if a person or external bot explicitly @mentions this bot in a group but the talk gate blocks it, BotMux sends a /grant request card to the owner. When disabled, the gate still blocks but stays silent.',
|