botmux 3.18.6 → 3.18.7
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/.runtime-build-id +1 -1
- package/dist/adapters/backend/riff-backend.d.ts +158 -0
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +330 -7
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts +42 -0
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +95 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +2 -1
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/dsh.d.ts.map +1 -1
- package/dist/adapters/cli/dsh.js +2 -1
- package/dist/adapters/cli/dsh.js.map +1 -1
- package/dist/adapters/cli/mir.d.ts.map +1 -1
- package/dist/adapters/cli/mir.js +2 -1
- package/dist/adapters/cli/mir.js.map +1 -1
- package/dist/adapters/cli/mira.d.ts.map +1 -1
- package/dist/adapters/cli/mira.js +2 -1
- package/dist/adapters/cli/mira.js.map +1 -1
- package/dist/adapters/hook-command.d.ts +3 -5
- package/dist/adapters/hook-command.d.ts.map +1 -1
- package/dist/adapters/hook-command.js +59 -13
- package/dist/adapters/hook-command.js.map +1 -1
- package/dist/autostart.d.ts +76 -0
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +105 -28
- package/dist/autostart.js.map +1 -1
- package/dist/bot-registry.d.ts +12 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +43 -3
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-command.d.ts +142 -0
- package/dist/cli/dashboard-command.d.ts.map +1 -1
- package/dist/cli/dashboard-command.js +160 -0
- package/dist/cli/dashboard-command.js.map +1 -1
- package/dist/cli/dashboard-endpoint.d.ts +66 -0
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +144 -30
- package/dist/cli/dashboard-endpoint.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +2 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +8 -2
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +270 -38
- package/dist/cli.js.map +1 -1
- package/dist/core/binary-self-update.d.ts +7 -0
- package/dist/core/binary-self-update.d.ts.map +1 -1
- package/dist/core/binary-self-update.js +17 -0
- package/dist/core/binary-self-update.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +52 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts +9 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +5 -0
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/self-spawn.d.ts +46 -1
- package/dist/core/self-spawn.d.ts.map +1 -1
- package/dist/core/self-spawn.js +57 -0
- package/dist/core/self-spawn.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +81 -5
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +93 -0
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/autostart-api.d.ts.map +1 -1
- package/dist/dashboard/autostart-api.js +16 -3
- package/dist/dashboard/autostart-api.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +2 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +22 -6
- package/dist/dashboard/bot-onboarding.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 +3 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +28 -0
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/trigger-api.d.ts.map +1 -1
- package/dist/dashboard/trigger-api.js +33 -21
- package/dist/dashboard/trigger-api.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +12 -2
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +2 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts +40 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +52 -2
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +2 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +272 -30
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-dock-page-XHJUYFGN.js → agent-workbench-dock-page-6LC422N6.js} +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-page-FLKTLIRM.js → agent-workbench-page-RSAWY7O2.js} +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-XMGLZZ2E.js → bot-defaults-page-67RAWCSQ.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-TLG45URB.js → chunk-IA5KMD5O.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-BU3Q6XC6.js → chunk-K232GT3M.js} +2 -2
- package/dist/dashboard-web/chunks/chunk-MMLTCXHP.js +10 -0
- package/dist/dashboard-web/chunks/{chunk-ECFC7UG2.js → chunk-R3LJUCEO.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-Z67OSM5P.js → chunk-YJA3KY3J.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-WDM4CEAU.js → connectors-page-DJCTHSFB.js} +1 -1
- package/dist/dashboard-web/chunks/{feedback-page-GMJ4FLJ4.js → feedback-page-O7SZRKNM.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-L4ZJNWVR.js → groups-page-7PONUYHE.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-7LUJU2CX.js → insights-page-J6DAAJ6D.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-7LZUJQPF.js → monitor-room-F3QNEW7N.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-AUSXMPYO.js → monitoring-page-JHDD2VS2.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-6ZU6MAZN.js → office-page-MMTN4IKD.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-QBC5CIYH.js → overview-page-IQ2UJAJP.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-QO3YCA7D.js → roles-page-FNI4MGX6.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-YNGSKDQW.js → schedules-page-6PUU63KS.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-BWR4UB6X.js → sessions-page-O4N72EXT.js} +4 -4
- package/dist/dashboard-web/chunks/{settings-page-2IRIS3FP.js → settings-page-G7B3STUF.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-5RZPM6HJ.js → skills-page-CEWKQOIG.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-KERG6LKC.js → team-federation-page-NUP4VK4H.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-766CBD7H.js → v3-page-M4XF6D5Z.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-2M6XZD5C.js → whiteboards-page-L755NZX6.js} +1 -1
- package/dist/dashboard-web/style.css +13 -0
- package/dist/dashboard.js +3 -0
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +3 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +10 -3
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +19 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +19 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/api-gate.d.ts +53 -0
- package/dist/im/lark/api-gate.d.ts.map +1 -0
- package/dist/im/lark/api-gate.js +322 -0
- package/dist/im/lark/api-gate.js.map +1 -0
- package/dist/im/lark/audio-transcribe.d.ts +23 -0
- package/dist/im/lark/audio-transcribe.d.ts.map +1 -0
- package/dist/im/lark/audio-transcribe.js +126 -0
- package/dist/im/lark/audio-transcribe.js.map +1 -0
- package/dist/im/lark/card-builder.d.ts +6 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +53 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +10 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +68 -1
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +247 -224
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +34 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts +16 -0
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +31 -0
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/services/budget-tracker.d.ts +61 -0
- package/dist/services/budget-tracker.d.ts.map +1 -0
- package/dist/services/budget-tracker.js +306 -0
- package/dist/services/budget-tracker.js.map +1 -0
- package/dist/services/connector-store.d.ts +16 -0
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/failed-turn-retry.d.ts +43 -0
- package/dist/services/failed-turn-retry.d.ts.map +1 -0
- package/dist/services/failed-turn-retry.js +50 -0
- package/dist/services/failed-turn-retry.js.map +1 -0
- package/dist/services/model-pricing.d.ts +80 -0
- package/dist/services/model-pricing.d.ts.map +1 -0
- package/dist/services/model-pricing.js +182 -0
- package/dist/services/model-pricing.js.map +1 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +13 -3
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +10 -0
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/usage-ledger.d.ts +10 -0
- package/dist/services/usage-ledger.d.ts.map +1 -1
- package/dist/services/usage-ledger.js +36 -0
- package/dist/services/usage-ledger.js.map +1 -1
- package/dist/services/voice/asr.d.ts +17 -0
- package/dist/services/voice/asr.d.ts.map +1 -0
- package/dist/services/voice/asr.js +64 -0
- package/dist/services/voice/asr.js.map +1 -0
- package/dist/services/voice/index.d.ts +17 -2
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +43 -0
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/types.d.ts +15 -0
- package/dist/services/voice/types.d.ts.map +1 -1
- package/dist/services/webhook-idempotency.d.ts +134 -0
- package/dist/services/webhook-idempotency.d.ts.map +1 -0
- package/dist/services/webhook-idempotency.js +265 -0
- package/dist/services/webhook-idempotency.js.map +1 -0
- package/dist/setup/app-name.d.ts +1 -0
- package/dist/setup/app-name.d.ts.map +1 -1
- package/dist/setup/app-name.js +7 -0
- package/dist/setup/app-name.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +28 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +73 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +26 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +90 -1
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/setup/open-platform-outcome.d.ts.map +1 -1
- package/dist/setup/open-platform-outcome.js +8 -2
- package/dist/setup/open-platform-outcome.js.map +1 -1
- package/dist/types.d.ts +20 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.d.ts +29 -9
- package/dist/utils/usage-limit-tracker.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.js +122 -14
- package/dist/utils/usage-limit-tracker.js.map +1 -1
- package/dist/worker.js +27 -6
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +56 -56
- package/dist/workflows/events/payloads.d.ts +2 -2
- package/dist/workflows/events/schema.d.ts +430 -430
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
- package/dist/workflows/v3/run-envelope.d.ts +56 -56
- package/package.json +9 -8
- package/scripts/postinstall-bin.mjs +25 -0
- package/dist/dashboard-web/chunks/chunk-NJCJR3U2.js +0 -10
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Ke}from"./chunk-OWUXOKFE.js";import{a as Be}from"./chunk-ZJVTGU5X.js";import{f as he,h as De,i as Oe,w as Fe,x as h}from"./chunk-
|
|
1
|
+
import{a as Ke}from"./chunk-OWUXOKFE.js";import{a as Be}from"./chunk-ZJVTGU5X.js";import{f as he,h as De,i as Oe,w as Fe,x as h}from"./chunk-K232GT3M.js";import{c as D,d as pe,e as j}from"./chunk-3YZFAHNK.js";var $e="#/agent-workbench",Ue="#/agent-workbench-dock";var ke=[{value:"status",label:"\u72B6\u6001"},{value:"bot",label:"\u673A\u5668\u4EBA"},{value:"chat",label:"\u4F1A\u8BDD\u4F4D\u7F6E"},{value:"kind",label:"\u7C7B\u578B"},{value:"cli",label:"CLI"},{value:"time",label:"\u6D3B\u8DC3\u65F6\u95F4"}];function K(e){return typeof e=="string"&&ke.some(n=>n.value===e)}var Kn=new Set(["starting","working","analyzing","active","idle","limited"]),Bn=512;function Y(e){return typeof e=="string"&&e.length>0&&e.length<=Bn&&!/[\u0000-\u001f\u007f]/.test(e)}function fe(e,n){let t=e==="dock"?Ue:$e;return Y(n)?`${t}/${encodeURIComponent(n)}`:t}function Ot(e){let n=String(e||"").split("?")[0].replace(/\/+$/,"");for(let[t,r]of[["dock",Ue],["main",$e]]){if(n===r)return{surface:t,sessionId:null};if(!n.startsWith(`${r}/`))continue;let o=n.slice(r.length+1),s;try{s=decodeURIComponent(o)}catch{return null}return Y(s)?{surface:t,sessionId:s}:null}return null}function z(e){return Number.isFinite(e)?Math.min(460,Math.max(176,Math.round(e))):300}function Gn(e){return Number.isFinite(e)?Math.min(.72,Math.max(.28,Math.round(e*1e3)/1e3)):.5}function H(){return{version:1,railWidth:300,railCollapsed:!1,focus:"terminal",paneMode:"focus",splitAxis:"horizontal",splitRatio:.5,chatRequested:!1}}function me(e){let n=H();if(!e||typeof e!="object"||Array.isArray(e))return n;let t=e;return{version:1,railWidth:z(Number(t.railWidth)),railCollapsed:t.railCollapsed===!0,focus:t.focus==="web"?"web":"terminal",paneMode:t.paneMode==="split"?"split":"focus",splitAxis:t.splitAxis==="vertical"?"vertical":"horizontal",splitRatio:Gn(Number(t.splitRatio)),chatRequested:t.chatRequested===!0}}function Ft(e,n){return e<620?{mode:"mobile",step:"mobile-stack",railCollapsed:!0,paneMode:"focus",chatMode:"jump"}:e<960?{mode:"desktop",step:"chat-jump",railCollapsed:n.railCollapsed,paneMode:"focus",chatMode:"jump"}:e<1120?{mode:"desktop",step:"focus",railCollapsed:n.railCollapsed,paneMode:"focus",chatMode:"native-split"}:e<1280?{mode:"desktop",step:"rail-collapsed",railCollapsed:n.railCollapsed,paneMode:n.paneMode,chatMode:"native-split"}:{mode:"desktop",step:"full",railCollapsed:n.railCollapsed,paneMode:n.paneMode,chatMode:"native-split"}}function q(e){if(e.status==="closed")return null;let n=String(e.agentAttention?.reason??"").trim();return n||(e.agentAttention?"Agent \u8BF7\u6C42\u534F\u52A9":e.pendingRepo?"\u9700\u8981\u9009\u62E9\u4ED3\u5E93":e.tuiPromptActive?"\u7EC8\u7AEF\u6709\u5F85\u786E\u8BA4\u7684\u63D0\u793A":e.queued?"\u5F85\u542F\u52A8":e.status==="limited"?"\u7528\u91CF\u5DF2\u8FBE\u4E0A\u9650":null)}function ge(e){return e.chatType==="p2p"?"p2p":e.scope==="thread"?"thread":e.scope==="chat"?"group":null}function X(e,n=!1){return q(e)||n&&e.status!=="closed"?"needs-you":e.status!=="closed"&&e.status!=="dormant"&&Kn.has(e.status)||e.status!=="closed"&&e.status!=="dormant"?"active":"recent"}function L(e){let n=Number(e.agentAttention?.at??e.lastMessageAt??e.closedAt??e.spawnedAt??0);return Number.isFinite(n)?n:0}function ye(e){return String(e.title??"").trim()||String(e.chatDisplayName??"").trim()||e.sessionId}function Je(e){return[ye(e),e.sessionId,e.botName,e.cliId,e.repoName,e.workingDir,e.gitBranch,e.chatDisplayName,q(e)].filter(Boolean).join(`
|
|
2
2
|
`).toLocaleLowerCase()}function Kt(e,n=""){let t=n.trim().toLocaleLowerCase(),r={"needs-you":[],active:[],recent:[]};for(let o of e)Y(o.sessionId)&&(t&&!Je(o).includes(t)||r[X(o)].push(o));for(let o of Object.values(r))o.sort((s,l)=>L(l)-L(s)||s.sessionId.localeCompare(l.sessionId));return r}var je="\u5F85\u4F60\u5904\u7406",Ve={"needs-you":je,active:"\u8FDB\u884C\u4E2D",recent:"\u6700\u8FD1"},Hn={thread:"\u8BDD\u9898",group:"\u7FA4",p2p:"\u5355\u804A"},$n=["\u8BDD\u9898","\u7FA4","\u5355\u804A","\u5176\u4ED6"],Un=["\u4ECA\u5929","\u6628\u5929","\u672C\u5468","\u66F4\u65E9"],Jn={status:["active","recent"],kind:$n.map(e=>`kind:${e}`),time:Un.map(e=>`time:${e}`)};function V(e){return typeof e=="string"?e.trim():""}function be(e){let n=new Date(e);return n.setHours(0,0,0,0),n}function jn(e){let n=be(e),t=be(e);t.setDate(t.getDate()-1);let r=be(e);return r.setDate(r.getDate()-6),{today:n.getTime(),yesterday:t.getTime(),week:r.getTime()}}function Vn(e,n){return e>0?e>=n.today?"\u4ECA\u5929":e>=n.yesterday?"\u6628\u5929":e>=n.week?"\u672C\u5468":"\u66F4\u65E9":"\u66F4\u65E9"}function Yn(e,n,t){switch(n){case"bot":{let r=V(e.botName)||"\u672A\u77E5\u673A\u5668\u4EBA";return{key:`bot:${r}`,label:r}}case"chat":{let r=V(e.chatDisplayName)||V(e.chatId)||"\u672A\u77E5\u4F1A\u8BDD";return{key:`chat:${r}`,label:r}}case"kind":{let r=ge(e),o=r?Hn[r]:"\u5176\u4ED6";return{key:`kind:${o}`,label:o}}case"cli":{let r=V(e.cliId)||"unknown";return{key:`cli:${r}`,label:r}}case"time":{let r=Vn(L(e),t);return{key:`time:${r}`,label:r}}default:{let r=X(e)==="recent"?"recent":"active";return{key:r,label:Ve[r]}}}}function Ge(e,n){return L(n)-L(e)||e.sessionId.localeCompare(n.sessionId)}function Ye(e,n){let t=String(n.query??"").trim().toLocaleLowerCase(),r=n.unreadIds,o=Number.isFinite(n.now)?Number(n.now):Date.now(),s=jn(o),l=K(n.dimension)?n.dimension:"status",p=[],A=new Map;for(let b of e){if(!Y(b.sessionId)||t&&!Je(b).includes(t))continue;let m=r?.has(b.sessionId)===!0;if(X(b,m)==="needs-you"){p.push(b);continue}let g=Yn(b,l,s),E=A.get(g.key);E?E.sessions.push(b):A.set(g.key,{key:g.key,label:g.label,kind:"plain",sessions:[b]})}let y=Jn[l],S=[...A.values()];if(y)S.sort((b,m)=>{let g=y.indexOf(b.key),E=y.indexOf(m.key);return(g<0?y.length:g)-(E<0?y.length:E)||b.label.localeCompare(m.label)});else{let b=new Map(S.map(m=>[m.key,m.sessions.reduce((g,E)=>Math.max(g,L(E)),0)]));S.sort((m,g)=>(b.get(g.key)??0)-(b.get(m.key)??0)||m.label.localeCompare(g.label))}for(let b of S)b.sessions.sort(Ge);let k=[];return p.length>0&&(p.sort(Ge),k.push({key:"needs-you",label:je,kind:"needs-you",sessions:p})),k.push(...S),k}function zn(e){return["needs-you","active","recent"].map(n=>({key:n,label:Ve[n],kind:n==="needs-you"?"needs-you":"plain",sessions:e[n]}))}function He(e,n){return e.kind==="needs-you"?"needs-you":n?X(n):e.key==="recent"?"recent":"active"}function ze(e,n){let t=Array.isArray(e)?e:zn(e),r=[];for(let o of t){let s=o.kind==="needs-you",l=n?.has(o.key)===!0;if(r.push({kind:"header",key:`header-${o.key}`,group:He(o),groupKey:o.key,label:o.label,count:o.sessions.length,isNeedsYou:s,collapsed:l}),!l)for(let p of o.sessions)r.push({kind:"session",key:`${o.key}-${p.sessionId}`,group:He(o,p),groupKey:o.key,label:o.label,isNeedsYou:s,session:p})}return r}function Q(e,n=!1){return e.kind==="header"?30:n?60:54}function qe(e,n,t,r=240,o=!1){let s=new Array(e.length+1);s[0]=0;for(let k=0;k<e.length;k+=1)s[k+1]=s[k]+Q(e[k],o);let l=s[e.length]??0,p=Math.max(0,Number.isFinite(n)?n-r:0),A=Math.min(l,Math.max(0,n)+Math.max(0,t)+r),y=0;for(;y<e.length&&s[y+1]<p;)y+=1;let S=y;for(;S<e.length&&s[S]<=A;)S+=1;return{start:y,end:S,offsetTop:s[y]??0,totalHeight:l,positions:s}}function Xe(e,n=Date.now(),t="en"){if(!Number.isFinite(e)||e<=0)return"\u2014";let r=Math.round((e-n)/1e3),o=Math.abs(r);if(o<45)return t.toLowerCase().startsWith("zh")?"\u521A\u521A":"just now";let s=[["year",365*24*60*60],["month",720*60*60],["day",1440*60],["hour",3600],["minute",60]],[l,p]=s.find(([,A])=>o>=A)??["minute",60];return new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"short"}).format(Math.round(r/p),l)}function Bt(e,n){let t=qn(e);return t||(!e.webPort||!e.proxyPort||!n?null:`${n.origin}/s/${encodeURIComponent(e.sessionId)}`)}function qn(e){if(typeof e.riffAccessUrl!="string"||e.riffAccessUrl.length>2048)return null;try{let n=new URL(e.riffAccessUrl);return n.protocol!=="http:"&&n.protocol!=="https:"||n.username||n.password?null:n.toString()}catch{return null}}function Gt(e){let n=e.preview?.path;if(typeof n!="string"||n.length>2048)return null;let t=`/preview/${encodeURIComponent(e.sessionId)}/`;return n===t?n:null}function Qe(e){return e==="lark"?"https://applink.larksuite.com":"https://applink.feishu.cn"}function Ze(e,n="feishu"){let t=new URL("/client/chat/open",Qe(n));return t.searchParams.set("openChatId",e),t.toString()}function Ut(e){if(!e.appId.trim()||!/^https?:\/\//.test(e.targetOrigin))return null;try{let n=new URL("/client/web_app/open",Qe(e.brand??"feishu")),t=fe(e.surface,e.sessionId),r=new URL("/",e.targetOrigin);return r.protocol!=="http:"&&r.protocol!=="https:"?null:(r.hash=t,n.searchParams.set("appId",e.appId),n.searchParams.set("mode",e.surface==="dock"?"sidebar":"appCenter"),e.surface==="dock"&&(n.searchParams.set("min_width","350"),n.searchParams.set("max_width","520")),n.searchParams.set("lk_target_url",r.toString()),n.toString())}catch{return null}}function Jt(e,n,t){return`${/^\/[A-Za-z0-9/_-]+$/.test(e)?e:"/auth/feishu"}?returnTo=${encodeURIComponent(`/${fe(n,t)}`)}`}function Yt(){let e=globalThis.crypto;try{if(typeof e?.randomUUID=="function")return`a${e.randomUUID().replaceAll("-","")}`;if(typeof e?.getRandomValues=="function")return`a${[...e.getRandomValues(new Uint8Array(16))].map(t=>t.toString(16).padStart(2,"0")).join("")}`}catch{}return`a${Date.now().toString(36)}${Math.random().toString(36).slice(2,12)}`}var v=class extends Error{constructor(t,r,o){super(r);this.status=t;this.code=r;this.retryAfterSeconds=o;this.name="WorkbenchApiError"}status;code;retryAfterSeconds};function Xn(e,n){if(e.status!==429)return;let t=Number(e.headers?.get?.("retry-after"));if(Number.isFinite(t)&&t>0)return Math.ceil(t);let r=Number(n?.retryAfterMs);if(Number.isFinite(r)&&r>0)return Math.ceil(r/1e3)}async function T(e,n,t={}){let o=String(t.method??"GET").toUpperCase()==="GET"?t.headers:{...Ke(),...t.headers},s=await e(n,{cache:"no-store",...t,headers:o}),l=await s.json().catch(()=>null);if(!s.ok||!l||l.ok===!1)throw new v(s.status,String(l?.error??`http_${s.status}`),Xn(s,l));return l}function B(e,n){if(!e||typeof e!="object"||Array.isArray(e))throw new v(502,n);return e}function en(e,n){if(e!==void 0){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new v(502,n);return e}}function we(e,n){let t=B(e,"invalid_control_response");if(t.mode!=="readonly"&&t.mode!=="controlled")throw new v(502,"invalid_control_response");let r=typeof t.owned=="boolean"?t.owned:n;if(typeof r!="boolean")throw new v(502,"invalid_control_response");let o=en(t.expiresAt,"invalid_control_response"),s=t.fixed===void 0?void 0:t.fixed;if(s!==void 0&&typeof s!="boolean")throw new v(502,"invalid_control_response");if(t.mode==="readonly"&&(r||o!==void 0)||t.mode==="controlled"&&o===void 0&&s!==!0)throw new v(502,"invalid_control_response");let l=t.reused===void 0?void 0:t.reused;if(l!==void 0&&typeof l!="boolean")throw new v(502,"invalid_control_response");let p=t.acquisition===void 0?void 0:t.acquisition;if(p!==void 0&&(typeof p!="string"||!p||p.length>256))throw new v(502,"invalid_control_response");if(s===!0&&(t.mode!=="controlled"||!r||o!==void 0))throw new v(502,"invalid_control_response");return{mode:t.mode,owned:r,...o===void 0?{}:{expiresAt:o},...l===void 0?{}:{reused:l},...s===void 0?{}:{fixed:s},...p===void 0?{}:{acquisition:p}}}function Z(e){let n=B(e,"invalid_preview_interaction_response");if(n.mode!=="preview"&&n.mode!=="interactive")throw new v(502,"invalid_preview_interaction_response");if(typeof n.label!="string"||!n.label||n.label.length>256||typeof n.securityNotice!="string"||!n.securityNotice||n.securityNotice.length>1024)throw new v(502,"invalid_preview_interaction_response");let t=en(n.idleExpiresAt,"invalid_preview_interaction_response");if(n.mode==="preview"&&t!==void 0||n.mode==="interactive"&&t===void 0)throw new v(502,"invalid_preview_interaction_response");return{mode:n.mode,label:n.label,securityNotice:n.securityNotice,...t===void 0?{}:{idleExpiresAt:t}}}function Qn(){let e=globalThis.window?.location?.origin;return typeof e=="string"&&e?e:null}function Zn(e){let n=Qn();if(!n)return e;try{let t=new URL(e,n);return t.protocol!=="http:"&&t.protocol!=="https:"?e:t.toString()}catch{return e}}function Se(e,n,t){let r=`/api/sessions/${encodeURIComponent(e)}/control${n?`/${n}`:""}`;return t?`${r}?${t.param}=${encodeURIComponent(t.value)}`:r}function ee(e,n){return`/api/sessions/${encodeURIComponent(e)}/preview-interaction${n?`/${n}`:""}`}function nn(e=fetch){return{getTerminalControl:async(n,t)=>we(await T(e,Se(n),{signal:t})),takeoverTerminal:async(n,t,r)=>we(await T(e,Se(n,"takeover",r?{param:"acq",value:r}:void 0),{method:"POST",signal:t}),!0),releaseTerminal:async(n,t,r)=>we(await T(e,Se(n,"release",r?{param:"expect",value:r}:void 0),{method:"POST",signal:t}),!1),getPreviewInteraction:async(n,t)=>Z(await T(e,ee(n),{signal:t})),unlockPreview:async(n,t)=>Z(await T(e,ee(n,"unlock"),{method:"POST",signal:t})),touchPreview:async(n,t)=>Z(await T(e,ee(n,"activity"),{method:"POST",signal:t})),lockPreview:async(n,t)=>Z(await T(e,ee(n,"lock"),{method:"POST",signal:t})),async locateSession(n,t){await T(e,`/api/sessions/${encodeURIComponent(n)}/locate`,{method:"POST",signal:t})},async getTerminalViewLink(n,t){try{let r=B(await T(e,`/api/sessions/${encodeURIComponent(n)}/view-link`,{signal:t}),"invalid_view_link_response");if(typeof r.url!="string"||r.url.length>2048||!/^\/s\/[^/\\]/.test(r.url))return null;let o=typeof r.expiresAt=="number"&&Number.isSafeInteger(r.expiresAt)&&r.expiresAt>0?r.expiresAt:null;return{url:Zn(r.url),expiresAt:o}}catch{return null}},async getStandingLink(n){try{let t=B(await T(e,"/api/workbench/standing-link",{signal:n}),"invalid_standing_link_response");if(typeof t.url!="string"||!t.url||t.url.length>2048)return null;let r=new URL(t.url);return r.protocol!=="http:"&&r.protocol!=="https:"?null:{url:t.url}}catch{return null}},async getH5Context(n){try{let t=B(await T(e,"/api/workbench/h5-context",{signal:n}),"invalid_h5_context_response"),r=B(t.h5,"invalid_h5_context_response");if(typeof r.enabled!="boolean"||typeof r.appId!="string"||r.appId.length>256||r.brand!=="feishu"&&r.brand!=="lark"||typeof r.entryPath!="string"||!/^\/[A-Za-z0-9/_-]{1,127}$/.test(r.entryPath))throw new v(502,"invalid_h5_context_response");return{enabled:r.enabled,appId:r.appId,brand:r.brand,entryPath:r.entryPath}}catch{return null}}}}var w=D(pe(),1);var ve="botmux.agent-workbench.appearance.v1",Ae=["ink","slate-blue","warm-graphite","light-frost"];var et={"orca-ink":"ink"},nt={orca:"reader"};function tt(e){return it(e)?e:typeof e=="string"?et[e]??null:null}function rt(e){return st(e)?e:typeof e=="string"?nt[e]??null:null}var ne="light-frost",on="slate-blue",ot="classic";function it(e){return typeof e=="string"&&Ae.includes(e)}function st(e){return e==="reader"||e==="classic"}function at(e){return e===ne?"light":"dark"}function G(e="dark"){return{skin:on,mode:he(e)??"dark",termStyle:ot}}function xe(e,n="dark"){let t=G(n);if(!e||typeof e!="object"||Array.isArray(e))return t;let r=e;return{skin:tt(r.skin)??t.skin,mode:he(r.mode)??t.mode,termStyle:rt(r.termStyle)??t.termStyle}}function tn(e,n="dark"){if(!e)return G(n);try{let t=e.getItem(ve);return t?xe(JSON.parse(t),n):G(n)}catch{return G(n)}}function ct(e,n){if(!e)return!1;try{return e.setItem(ve,JSON.stringify(xe(n))),!0}catch{return!1}}function lt(e,n){return De(e.mode,n)==="light"?ne:e.skin===ne?on:e.skin}function sn(e,n){if(n===ne)return e.mode==="light"?e:{...e,mode:"light"};let t=e.mode==="light"?"dark":e.mode;return{...e,skin:n,mode:t}}function an(e,n){return e.mode===n?e:{...e,mode:n}}function cn(e,n){return e.termStyle===n?e:{...e,termStyle:n}}function Xt(e){return e==="reader"?"wb-term-reader":"wb-term-classic"}var ln={ink:{bg:"#212121",raise:"#3C3C3C",accent:"#FF8B63"},"slate-blue":{bg:"#19212C",raise:"#333F4E",accent:"#6FCBF7"},"warm-graphite":{bg:"#24211A",raise:"#443E34",accent:"#F2A33C"},"light-frost":{bg:"#F3F6F9",raise:"#C9D7E8",accent:"#0B5F8F"}},ut={background:"#1a1b26",foreground:"#a9b1d6",cursor:"#c0caf5",selectionBackground:"#33467c",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6"},dt={ink:{background:"#030303",foreground:"#EDEDED",cursor:"#FF8B63",selectionBackground:"#3C3C3C",black:"#181818",red:"#FF8C8F",green:"#3ED598",yellow:"#EFC260",blue:"#FF8B63",magenta:"#D8A0FF",cyan:"#7FD8D0",white:"#A6A6A6"},"slate-blue":{background:"#030407",foreground:"#E4EBF2",cursor:"#6FCBF7",selectionBackground:"#333F4E",black:"#141922",red:"#F58A94",green:"#63D6A0",yellow:"#EDB95C",blue:"#6FCBF7",magenta:"#C0A6F5",cyan:"#7FD8D0",white:"#A2B2C3"},"warm-graphite":{background:"#040402",foreground:"#F0EBE1",cursor:"#F2A33C",selectionBackground:"#443E34",black:"#1B1912",red:"#FF9186",green:"#5FCE9B",yellow:"#EAC14F",blue:"#F2A33C",magenta:"#D9A7DA",cyan:"#7FD8D0",white:"#B3AA9C"},"light-frost":{background:"#16202B",foreground:"#E8EEF5",cursor:"#6FCBF7",selectionBackground:"#33465C",black:"#16202B",red:"#F58A94",green:"#63D6A0",yellow:"#EDB95C",blue:"#6FCBF7",magenta:"#C0A6F5",cyan:"#7FD8D0",white:"#A7B6C6"}};function un(e,n){return e==="reader"?dt[n]:ut}var pt="--term-canvas-bg";function Qt(e,n){return{[pt]:un(e,n).background}}var ht="botmux:wb-appearance";function bt(e,n){return{type:ht,termStyle:e,skin:n,theme:un(e,n)}}function Zt(e,n,t,r,o){let s=e?.contentWindow;if(!s||!n)return!1;let l;try{l=new URL(n,o).origin}catch{return!1}if(!l||l==="null")return!1;try{return s.postMessage(bt(t,r),l),!0}catch{return!1}}function rn(e,n){if(!e)return{};let t={skin:e.dataset.skin,theme:e.dataset.theme};return e.dataset.skin=n.skin,e.dataset.theme=n.theme,t}function kt(e,n){e&&(n.skin===void 0?delete e.dataset.skin:e.dataset.skin=n.skin,n.theme===void 0?delete e.dataset.theme:e.dataset.theme=n.theme)}function ft(){if(typeof window>"u")return null;let e=null;try{e=window.localStorage}catch{e=null}let n=window.matchMedia?.("(prefers-color-scheme: dark)")??null;return{storage:e,root:typeof document>"u"?null:document.documentElement,inheritedMode:Oe(e??void 0),prefersDark:()=>!!n?.matches,onSystemThemeChange:t=>(n?.addEventListener("change",t),()=>n?.removeEventListener("change",t)),onStorageChange:t=>{let r=o=>t(o.key,o.newValue);return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}}}var We=class{env=null;envResolved=!1;value=G();snapshot=this.buildSnapshot(!1);listeners=new Set;mounted=0;disposers=[];rootSnapshot=null;configure(n){this.envResolved||(this.envResolved=!0,this.env=n,n&&(this.value=tn(n.storage,n.inheritedMode),this.snapshot=this.buildSnapshot(n.prefersDark())))}getSnapshot(){return this.ensureEnv(),this.snapshot}subscribe(n){return this.ensureEnv(),this.listeners.add(n),()=>{this.listeners.delete(n)}}set(n){this.ensureEnv(),n!==this.value&&(this.value=n,ct(this.env?.storage,n),this.refresh())}mount(){this.ensureEnv(),this.mounted+=1,this.mounted===1&&this.bind();let n=!1;return()=>{n||(n=!0,this.mounted-=1,this.mounted===0&&this.unbind())}}reset(){this.unbind(),this.mounted=0,this.env=null,this.envResolved=!1,this.value=G(),this.snapshot=this.buildSnapshot(!1),this.listeners.clear()}ensureEnv(){this.envResolved||this.configure(ft())}bind(){let n=this.env;n&&(this.rootSnapshot=rn(n.root,{skin:this.snapshot.skin,theme:this.snapshot.theme}),n.onSystemThemeChange&&this.disposers.push(n.onSystemThemeChange(()=>this.refresh())),n.onStorageChange&&this.disposers.push(n.onStorageChange((t,r)=>{if(t!==null&&t!==ve)return;let o=null;if(r)try{o=JSON.parse(r)}catch{o=null}this.value=r?xe(o,n.inheritedMode):tn(n.storage,n.inheritedMode),this.refresh()})))}unbind(){for(let n of this.disposers.splice(0))n();this.rootSnapshot&&(kt(this.env?.root,this.rootSnapshot),this.rootSnapshot=null)}reapply(){this.refresh()}refresh(){let n=this.buildSnapshot(this.env?.prefersDark()??!1),t=this.snapshot,r=t.skin===n.skin&&t.theme===n.theme&&t.appearance.skin===n.appearance.skin&&t.appearance.mode===n.appearance.mode&&t.appearance.termStyle===n.appearance.termStyle;if(r?this.value=t.appearance:this.snapshot=n,this.rootSnapshot&&rn(this.env?.root,{skin:this.snapshot.skin,theme:this.snapshot.theme}),!r)for(let o of this.listeners)o()}buildSnapshot(n){let t=lt(this.value,n);return{appearance:this.value,skin:t,theme:at(t)}}},I=new We;var a=D(j(),1),dn={ink:"workbench.appearance.skin.ink","slate-blue":"workbench.appearance.skin.slateBlue","warm-graphite":"workbench.appearance.skin.warmGraphite","light-frost":"workbench.appearance.skin.lightFrost"},mt=[{value:"system",labelKey:"workbench.appearance.mode.system"},{value:"light",labelKey:"workbench.appearance.mode.light"},{value:"dark",labelKey:"workbench.appearance.mode.dark"}],gt=[{value:"reader",labelKey:"workbench.appearance.term.reader"},{value:"classic",labelKey:"workbench.appearance.term.classic"}],yt=null;function bn(){return yt??=nn()}function wt(e){return I.subscribe(e)}function pn(){return I.getSnapshot()}function kn(){return(0,w.useSyncExternalStore)(wt,pn,pn)}function ir(){return(0,w.useEffect)(()=>I.mount(),[]),(0,w.useEffect)(()=>Fe.on(()=>I.reapply()),[]),kn()}function St(e){I.set(sn(I.getSnapshot().appearance,e))}function Wt(e){I.set(an(I.getSnapshot().appearance,e))}function vt(e){I.set(cn(I.getSnapshot().appearance,e))}function hn(e,n){let r=[...e.currentTarget.querySelectorAll('button[role="radio"]')];if(r.length===0)return;let o=r.indexOf(e.target),s=r[((o<0?0:o)+n+r.length)%r.length];e.preventDefault(),s.focus(),s.click()}function Re(e){e.key==="ArrowRight"||e.key==="ArrowDown"?hn(e,1):(e.key==="ArrowLeft"||e.key==="ArrowUp")&&hn(e,-1)}function At(e){return(0,a.jsx)("span",{className:"wb-seg wb-term-style-seg",role:"radiogroup","aria-label":h("workbench.appearance.termStyleLabel"),onKeyDown:Re,children:gt.map(n=>(0,a.jsx)("button",{type:"button",role:"radio",className:`wb-seg-item${e.termStyle===n.value?" is-on":""}`,"aria-checked":e.termStyle===n.value,tabIndex:e.termStyle===n.value?0:-1,onClick:()=>vt(n.value),children:h(n.labelKey)},n.value))})}function fn(){let{appearance:e,skin:n}=kn();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"wb-appearance-group",children:[(0,a.jsx)("span",{className:"wb-appearance-group-label",id:"wb-appearance-theme-label",children:h("workbench.appearance.themeGroup")}),(0,a.jsx)("span",{className:"wb-skin-swatches",role:"radiogroup","aria-labelledby":"wb-appearance-theme-label",onKeyDown:Re,children:Ae.map(t=>{let r=ln[t],o=n===t;return(0,a.jsxs)("button",{type:"button",role:"radio",className:`wb-skin-swatch${o?" is-active":""}`,"aria-checked":o,tabIndex:o?0:-1,title:h(dn[t]),onClick:()=>St(t),children:[(0,a.jsx)("span",{className:"wb-skin-swatch-chip","aria-hidden":"true",style:{"--sw-bg":r.bg,"--sw-raise":r.raise,"--sw-accent":r.accent}}),(0,a.jsx)("span",{className:"wb-skin-swatch-name",children:h(dn[t])})]},t)})}),(0,a.jsx)("span",{className:"wb-seg wb-appearance-mode-seg",role:"radiogroup","aria-label":h("workbench.appearance.modeLabel"),onKeyDown:Re,children:mt.map(t=>(0,a.jsx)("button",{type:"button",role:"radio",className:`wb-seg-item${e.mode===t.value?" is-on":""}`,"aria-checked":e.mode===t.value,tabIndex:e.mode===t.value?0:-1,onClick:()=>Wt(t.value),children:h(t.labelKey)},t.value))})]}),(0,a.jsxs)("div",{className:"wb-appearance-group",children:[(0,a.jsx)("span",{className:"wb-appearance-group-label",children:h("workbench.appearance.termGroup")}),(0,a.jsx)(At,{termStyle:e.termStyle}),(0,a.jsx)("p",{className:"wb-appearance-note",children:h("workbench.appearance.termNote")})]})]})}function mn(e){let[n,t]=(0,w.useState)(null),[r,o]=(0,w.useState)(!0),[s,l]=(0,w.useState)("idle"),p=(0,w.useRef)(null),{api:A}=e;(0,w.useEffect)(()=>{let k=typeof AbortController=="function"?new AbortController:null,b=!0;return A.getStandingLink(k?.signal).then(m=>{b&&(t(m?.url??null),o(!1))}),()=>{b=!1,k?.abort()}},[A]);let y=e.copy??Be,S=async()=>{n&&l(await y(n)?"copied":"failed")};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("header",{className:"wb-appearance-head",children:[(0,a.jsx)("strong",{children:h("workbench.standingLink.title")}),(0,a.jsx)("button",{type:"button","aria-label":h("workbench.appearance.close"),onClick:e.onClose,children:"\u2715"})]}),r?(0,a.jsx)("p",{className:"wb-standing-link-status",role:"status",children:h("workbench.standingLink.loading")}):n?(0,a.jsxs)("div",{className:"wb-standing-link-body",children:[(0,a.jsx)("textarea",{ref:p,className:"wb-standing-link-url",readOnly:!0,rows:3,value:n,"aria-label":h("workbench.standingLink.fieldLabel"),onFocus:k=>k.currentTarget.select(),onClick:k=>k.currentTarget.select()}),(0,a.jsx)("button",{type:"button",className:"wb-standing-link-copy",onClick:()=>{S()},children:s==="copied"?h("workbench.standingLink.copied"):s==="failed"?h("workbench.standingLink.copyFailed"):h("workbench.standingLink.copy")})]}):(0,a.jsx)("p",{className:"wb-standing-link-status",role:"status",children:h("workbench.standingLink.error")}),(0,a.jsx)("p",{className:"wb-standing-link-note wb-appearance-note",children:h("workbench.standingLink.note")})]})}function gn(e,n,t){(0,w.useEffect)(()=>{if(!e||typeof document>"u")return;let r=s=>{s.key==="Escape"&&n()},o=s=>{let l=s.target;l instanceof Node&&t.current&&!t.current.contains(l)&&n()};return document.addEventListener("keydown",r),document.addEventListener("mousedown",o),()=>{document.removeEventListener("keydown",r),document.removeEventListener("mousedown",o)}},[n,e,t])}function sr(e){let n=(0,w.useRef)(null),[t,r]=(0,w.useState)(!1),o=e.api??bn();return gn(e.open,e.onClose,n),(0,w.useEffect)(()=>{e.open||r(!1)},[e.open]),e.open?(0,a.jsx)("div",{className:"wb-appearance-backdrop",children:(0,a.jsx)("div",{ref:n,className:"wb-appearance-sheet",role:"dialog","aria-label":h("workbench.appearance.title"),children:t?(0,a.jsx)(mn,{api:o,onClose:e.onClose}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("header",{className:"wb-appearance-head",children:[(0,a.jsx)("strong",{children:h("workbench.appearance.title")}),(0,a.jsx)("button",{type:"button","aria-label":h("workbench.appearance.close"),onClick:e.onClose,children:"\u2715"})]}),(0,a.jsx)(fn,{}),e.standingLink?(0,a.jsx)("div",{className:"wb-appearance-group",children:(0,a.jsx)("button",{type:"button",className:"wb-standing-link-open",onClick:()=>r(!0),children:h("workbench.standingLink.title")})}):null]})})}):null}function ar(e={}){let[n,t]=(0,w.useState)(null),r=(0,w.useRef)(null),o=(0,w.useRef)(null),s=e.api??bn(),l=(0,w.useCallback)(()=>{t(p=>(p!==null&&o.current?.focus(),null))},[]);return gn(n!==null,l,r),(0,a.jsxs)("div",{className:"wb-more",ref:r,children:[(0,a.jsx)("button",{ref:o,type:"button",className:"wb-more-btn","aria-haspopup":"menu","aria-expanded":n!==null,"aria-label":h("workbench.appearance.more"),title:h("workbench.appearance.more"),onClick:()=>t(p=>p===null?"menu":null),children:"\u22EF"}),n==="menu"?(0,a.jsxs)("div",{className:"wb-more-menu",role:"menu",children:[(0,a.jsx)("button",{type:"button",role:"menuitem",className:"wb-more-item",autoFocus:!0,onClick:()=>t("panel"),children:h("workbench.appearance.title")}),e.standingLink?(0,a.jsx)("button",{type:"button",role:"menuitem",className:"wb-more-item",onClick:()=>t("standing"),children:h("workbench.standingLink.title")}):null]}):null,n==="panel"?(0,a.jsxs)("div",{className:"wb-appearance-pop",role:"dialog","aria-label":h("workbench.appearance.title"),children:[(0,a.jsxs)("header",{className:"wb-appearance-head",children:[(0,a.jsx)("strong",{children:h("workbench.appearance.title")}),(0,a.jsx)("button",{type:"button","aria-label":h("workbench.appearance.close"),onClick:l,children:"\u2715"})]}),(0,a.jsx)(fn,{})]}):null,n==="standing"?(0,a.jsx)("div",{className:"wb-appearance-pop wb-standing-link-pop",role:"dialog","aria-label":h("workbench.standingLink.title"),children:(0,a.jsx)(mn,{api:s,onClose:l})}):null]})}var xt="botmux.agent-workbench.layout.v1:",wn="botmux.agent-workbench.rail.v1",Sn="botmux.agent-workbench.seen.v1",Wn="botmux.agent-workbench.group-dim.v1",vn="botmux.agent-workbench.collapsed.v1",Rt=500,Tt=200;function An(e){return`${xt}${encodeURIComponent(e)}`}function ur(e,n){if(!n)return H();try{let t=n.getItem(An(e));return t?me(JSON.parse(t)):H()}catch{return H()}}function dr(e,n,t){if(!t)return!1;try{return t.setItem(An(e),JSON.stringify(me(n))),!0}catch{return!1}}function pr(e){if(!e)return null;try{let n=e.getItem(wn);if(!n)return null;let t=JSON.parse(n);if(!t||typeof t!="object"||Array.isArray(t))return null;let r=t;return{railWidth:z(Number(r.railWidth)),railCollapsed:r.railCollapsed===!0}}catch{return null}}function hr(e,n){if(!e)return!1;try{return e.setItem(wn,JSON.stringify({railWidth:z(Number(n.railWidth)),railCollapsed:n.railCollapsed===!0})),!0}catch{return!1}}function te(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function yn(e,n){if(!te(e))return{};let t=[];for(let[r,o]of Object.entries(e)){let s=Number(o);!r||!Number.isFinite(s)||s<=0||t.push([r,s])}return t.length>n&&(t.sort((r,o)=>o[1]-r[1]),t.length=n),Object.fromEntries(t)}function xn(e,n=Rt){return{seen:yn(e.seen,n),unread:yn(e.unread,n)}}function br(e){if(!e)return null;try{let n=e.getItem(Sn);if(!n)return null;let t=JSON.parse(n);return!te(t)||!te(t.seen)&&!te(t.unread)?null:xn({seen:t.seen??{},unread:t.unread??{}})}catch{return null}}function kr(e,n){if(!e)return!1;try{return e.setItem(Sn,JSON.stringify(xn(n))),!0}catch{return!1}}function fr(e){if(!e)return null;try{let n=e.getItem(Wn);return K(n)?n:null}catch{return null}}function mr(e,n){if(!e||!K(n))return!1;try{return e.setItem(Wn,n),!0}catch{return!1}}function Rn(e,n=Tt){let t=e.filter(o=>typeof o=="string"&&o.length>0),r=[...new Set(t)];return r.length>n?r.slice(r.length-n):r}function Tn(e){if(!e)return null;try{let n=e.getItem(vn);if(!n)return null;let t=JSON.parse(n);return Array.isArray(t)?Rn(t):null}catch{return null}}function In(e,n){if(!e)return!1;try{return e.setItem(vn,JSON.stringify(Rn([...n]))),!0}catch{return!1}}var f=D(pe(),1);var c=D(j(),1),re=3e4,It=2e3;function Ct(e){let n=Number(e?.retryAfterSeconds);return Number.isFinite(n)&&n>0?Math.min(n*1e3,re):null}function Et(e){return(e instanceof Error?e.message:String(e??"")).trim()||"\u672A\u77E5\u9519\u8BEF"}var Cn={thread:{label:"\u8BDD\u9898",title:"\u8BDD\u9898\u4F1A\u8BDD"},group:{label:"\u7FA4",title:"\u7FA4\u4F1A\u8BDD"},p2p:{label:"\u5355\u804A",title:"\u5355\u804A\u4F1A\u8BDD"}},oe={"needs-you":"!",active:"\u25CF",recent:"\u21BA"},En="\u6709\u65B0\u56DE\u590D",Lt=new Set;function Ln(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function Nt(e){let n=e;return typeof n?.closest=="function"&&n.closest(".wb-session-group-toggle")!==null}function _t(e){return e.isNeedsYou?oe["needs-you"]:e.groupKey==="active"?oe.active:e.groupKey==="recent"?oe.recent:"\xB7"}function Pt(e){return e.isNeedsYou?"wb-session-group wb-session-group-needs-you":e.groupKey==="active"?"wb-session-group wb-session-group-active":e.groupKey==="recent"?"wb-session-group wb-session-group-recent":"wb-session-group"}function Te(e){return(0,c.jsx)("a",{className:e.className,href:e.href,target:"_blank",rel:"noopener",title:e.title,"aria-label":e.ariaLabel,onClick:n=>{n.stopPropagation(),e.onActivate?.()},children:e.children})}function Mt(e){let[n,t]=(0,f.useState)(560);return(0,f.useEffect)(()=>{let r=e.current;if(!r)return;let o=()=>t(Math.max(120,r.clientHeight||560));if(o(),typeof ResizeObserver>"u")return;let s=new ResizeObserver(o);return s.observe(r),()=>s.disconnect()},[e]),n}function Ie(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return`wb-session-${(n>>>0).toString(36)}`}function Nn(e){return[e.botName,e.cliId,e.repoName].filter(Boolean).join(" \xB7 ")||e.sessionId}function Dt(){let[e,n]=(0,f.useState)(!1);return(0,f.useEffect)(()=>{if(typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia("(max-width: 620px)"),r=()=>n(t.matches);return r(),t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[]),e}function vr(e){let n=Dt(),[t,r]=(0,f.useState)(""),[o,s]=(0,f.useState)(0),l=(0,f.useRef)(null),p=(0,f.useRef)(e.selectedSessionId??null),A=Mt(l),[y,S]=(0,f.useState)(()=>new Map),[k,b]=(0,f.useState)(()=>new Map),[,m]=(0,f.useState)(0),[g,E]=(0,f.useState)(()=>new Set(Tn(Ln())??[])),ie=e.unreadIds??Lt,se=e.dimension??"status",Ce=Math.floor((e.now??Date.now())/6e4)*6e4,O=(0,f.useMemo)(()=>Ye(e.sessions,{query:t,dimension:se,unreadIds:ie,now:Ce}),[Ce,se,e.sessions,t,ie]),N=(0,f.useMemo)(()=>ze(O,g),[g,O]),P=(0,f.useMemo)(()=>qe(N,o,A,240,n),[N,o,n,A]),M=(0,f.useMemo)(()=>N.filter(i=>i.kind==="session"),[N]),_n=(0,f.useMemo)(()=>O.reduce((i,d)=>i+d.sessions.length,0),[O]),Ee=(0,f.useMemo)(()=>O.find(i=>i.kind==="needs-you")?.sessions.length??0,[O]);(0,f.useEffect)(()=>{if(!e.selectedSessionId){p.current=null;return}if(p.current===e.selectedSessionId||!M.some(u=>u.session.sessionId===e.selectedSessionId))return;p.current=e.selectedSessionId;let i=N.findIndex(u=>u.kind==="session"&&u.session.sessionId===e.selectedSessionId),d=P.positions[i]??0,x=d+Q(N[i],n),W=l.current;!W||d>=W.scrollTop&&x<=W.scrollTop+W.clientHeight||(W.scrollTop=Math.max(0,d-Math.round(W.clientHeight/3)))},[N,e.selectedSessionId,M,P.positions]),(0,f.useEffect)(()=>{if(y.size===0)return;let i=setInterval(()=>{S(d=>{let x=Date.now(),W=new Map([...d].filter(([,u])=>x-u<re));return W.size===d.size?d:W}),m(d=>d+1)},500);return()=>clearInterval(i)},[y]);let ae=e.onLocate,Pn=i=>{ae&&(S(d=>new Map(d).set(i,Date.now())),b(d=>{if(!d.has(i))return d;let x=new Map(d);return x.delete(i),x}),ae(i).then(()=>{S(d=>new Map(d).set(i,Date.now()))},d=>{b(W=>new Map(W).set(i,Et(d)));let x=Ct(d);S(W=>{let u=new Map(W);return x===null?u.delete(i):u.set(i,Date.now()-(re-x)),u})}))},Mn=i=>{let d=new Set(g);d.delete(i)||d.add(i),E(d),In(Ln(),d)},ce=i=>{if(M.length===0)return;let d=M.findIndex(W=>W.session.sessionId===e.selectedSessionId),x=d<0?i>0?0:M.length-1:Math.max(0,Math.min(M.length-1,d+i));e.onSelect(M[x].session.sessionId)},Le=i=>{r(i),s(0),l.current&&(l.current.scrollTop=0)},Dn=i=>{i.altKey||i.ctrlKey||i.metaKey||(i.key==="Enter"||i.key===" ")&&Nt(i.target)||(i.key==="j"||i.key==="ArrowDown"?(i.preventDefault(),ce(1)):i.key==="k"||i.key==="ArrowUp"?(i.preventDefault(),ce(-1)):i.key==="Enter"&&e.selectedSessionId&&(i.preventDefault(),e.onSelect(e.selectedSessionId),e.chatFollowNavigates&&typeof document<"u"&&document.getElementById(Ie(e.selectedSessionId))?.querySelector("a.wb-session-copy-link")?.focus()))};if(e.collapsed){let i=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{"aria-hidden":"true",children:"\xBB"}),(0,c.jsx)("span",{className:"wb-rail-vertical-label",children:"\u4F1A\u8BDD"})]});return(0,c.jsxs)("aside",{className:"wb-session-rail is-collapsed","aria-label":"\u4F1A\u8BDD\u5217\u8868\uFF08\u5DF2\u6536\u8D77\uFF09",children:[e.onToggleCollapsed?(0,c.jsx)("button",{type:"button",className:"wb-rail-expand","aria-label":"\u5C55\u5F00\u4F1A\u8BDD\u5217\u8868",title:"\u5C55\u5F00\u4F1A\u8BDD\u5217\u8868",onClick:e.onToggleCollapsed,children:i}):(0,c.jsx)("div",{className:"wb-rail-expand","aria-label":"\u4F1A\u8BDD\u5217\u8868\uFF08\u5DF2\u6536\u8D77\uFF09",children:i}),(0,c.jsx)("span",{className:"wb-rail-count","aria-label":`${Ee} \u4E2A\u4F1A\u8BDD\u9700\u8981\u5904\u7406`,children:Ee})]})}return(0,c.jsxs)("aside",{className:"wb-session-rail","aria-label":"\u4F1A\u8BDD\u5217\u8868",children:[(0,c.jsxs)("div",{className:"wb-rail-heading",children:[(0,c.jsxs)("div",{children:[(0,c.jsx)("span",{className:e.online?"is-online":"is-offline",title:e.online?"\u5B9E\u65F6\u8FDE\u63A5\u6B63\u5E38":"\u5DF2\u79BB\u7EBF\uFF0C\u663E\u793A\u6700\u540E\u5FEB\u7167","aria-hidden":"true",children:e.online?"\u25CF":"\u25CB"}),(0,c.jsx)("strong",{children:"\u4F1A\u8BDD"}),(0,c.jsx)("span",{children:e.sessions.length})]}),e.onDimensionChange?(0,c.jsx)("select",{className:"wb-group-dim","aria-label":"\u5206\u7EC4\u7EF4\u5EA6",value:se,onChange:i=>{let d=i.currentTarget.value;K(d)&&e.onDimensionChange?.(d)},children:ke.map(i=>(0,c.jsx)("option",{value:i.value,children:i.label},i.value))}):null,e.onOpenAppearance?(0,c.jsx)("button",{type:"button",className:"wb-appearance-btn","aria-haspopup":"dialog","aria-label":h("workbench.appearance.title"),title:h("workbench.appearance.title"),onClick:e.onOpenAppearance,children:"\u25D0"}):null,e.onToggleCollapsed?(0,c.jsx)("button",{type:"button","aria-label":"\u6536\u8D77\u4F1A\u8BDD\u5217\u8868",title:"\u6536\u8D77\u4F1A\u8BDD\u5217\u8868",onClick:e.onToggleCollapsed,children:"\xAB"}):null]}),(0,c.jsxs)("label",{className:"wb-session-search",children:[(0,c.jsx)("span",{className:"wb-visually-hidden",children:"\u641C\u7D22\u4F1A\u8BDD"}),(0,c.jsx)("span",{"aria-hidden":"true",children:"\u2315"}),(0,c.jsx)("input",{type:"search",placeholder:"\u641C\u7D22\u2026",value:t,onChange:i=>Le(i.currentTarget.value),onKeyDown:i=>{i.key==="ArrowDown"&&(i.preventDefault(),l.current?.focus(),ce(1))}}),t?(0,c.jsx)("button",{type:"button","aria-label":"\u6E05\u9664\u641C\u7D22",onClick:()=>Le(""),children:"\xD7"}):null]}),(0,c.jsxs)("div",{ref:l,className:"wb-session-list",role:"listbox",tabIndex:0,"aria-label":"\u5DE5\u4F5C\u53F0\u4F1A\u8BDD","aria-activedescendant":e.selectedSessionId?Ie(e.selectedSessionId):void 0,onScroll:i=>s(i.currentTarget.scrollTop),onKeyDown:Dn,children:[(0,c.jsx)("div",{className:"wb-session-list-space",style:{height:P.totalHeight},children:N.slice(P.start,P.end).map((i,d)=>{let x=P.start+d,W={top:P.positions[x],height:Q(i,n)};if(i.kind==="header"){let R=i.collapsed===!0;return(0,c.jsxs)("button",{type:"button",className:`${Pt(i)} wb-session-group-toggle`,style:W,"aria-expanded":!R,title:R?`\u5C55\u5F00\u300C${i.label}\u300D`:`\u6298\u53E0\u300C${i.label}\u300D`,onClick:()=>Mn(i.groupKey),children:[(0,c.jsx)("span",{className:"wb-session-group-caret","aria-hidden":"true",children:R?"\u25B8":"\u25BE"}),(0,c.jsx)("span",{"aria-hidden":"true",children:_t(i)}),(0,c.jsx)("strong",{children:i.label}),(0,c.jsx)("span",{children:i.count})]},i.key)}let u=i.session,_=ye(u),le=ie.has(u.sessionId),$=q(u)??(le?En:null),Ne=u.sessionId===e.selectedSessionId,On=i.group==="needs-you"?"\u5F85\u4F60\u5904\u7406":i.group==="active"?u.status:"\u6700\u8FD1",_e=e.onOpenTerminal,U=u.feishuChatLink||(u.chatId?Ze(u.chatId):null),F=ge(u);return(0,c.jsxs)("div",{id:Ie(u.sessionId),className:`wb-session-row wb-session-row-${i.group}${Ne?" is-selected":""}${le?" is-unread":""}`,role:"option",tabIndex:-1,"aria-selected":Ne,"aria-label":`${_}. ${On}${$?`. ${$}`:""}`,style:W,onClick:()=>e.onSelect(u.sessionId),children:[(0,c.jsx)("span",{className:"wb-session-state-mark","aria-hidden":"true",children:oe[i.group]}),(()=>{let R=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"wb-session-title",title:_,children:_}),(0,c.jsxs)("span",{className:"wb-session-meta",title:Nn(u),children:[F?(0,c.jsx)("span",{className:`wb-session-kind is-${F}`,title:Cn[F].title,children:Cn[F].label}):null,$?(0,c.jsx)("span",{className:"wb-session-reason",children:$}):(0,c.jsx)("span",{children:Nn(u)}),le?(0,c.jsx)("span",{className:"wb-unread-dot",role:"img","aria-label":En}):null,(0,c.jsx)("time",{dateTime:new Date(L(u)).toISOString(),children:Xe(L(u),e.now,e.locale)})]})]});return!e.chatFollowNavigates||!U?(0,c.jsx)("span",{className:"wb-session-copy",children:R}):(0,c.jsx)(Te,{className:"wb-session-copy wb-session-copy-link",href:U,ariaLabel:`\u9009\u4E2D\u5E76\u6253\u5F00\u98DE\u4E66\u804A\u5929 \u2014 ${_}`,onActivate:()=>e.onSelect(u.sessionId),children:R})})(),_e?(0,c.jsxs)("span",{className:"wb-session-row-actions",children:[U?(0,c.jsx)(Te,{className:"wb-session-row-action is-chat",href:U,title:"\u6253\u5F00\u98DE\u4E66\u804A\u5929",ariaLabel:`\u6253\u5F00\u98DE\u4E66\u804A\u5929 \u2014 ${_}`,onActivate:()=>e.onSeen?.(u.sessionId),children:"\u804A\u5929"}):null,F==="thread"&&ae?(()=>{let R=y.get(u.sessionId)??0,J=Date.now()-R,ue=R>0&&J<re,de=k.get(u.sessionId),Pe=ue&&!de&&J<It,Me=ue?"\u5B9A\u4F4D\u5DF2\u53D1\u9001\uFF0C30 \u79D2\u540E\u53EF\u518D\u6B21\u4F7F\u7528":de?`\u5B9A\u4F4D\u5931\u8D25\uFF1A${de}`:"\u5728\u8BDD\u9898\u91CC @ \u6211\u5B9A\u4F4D";return(0,c.jsx)("button",{type:"button",className:`wb-session-row-action is-locate${Pe?" is-located":""}`,title:Me,"aria-label":`${Me} \u2014 ${_}`,disabled:ue,onClick:Fn=>{Fn.stopPropagation(),e.onSeen?.(u.sessionId),Pn(u.sessionId)},children:Pe?"\u5DF2\u53D1\u9001":"\u5B9A\u4F4D"})})():null,F==="thread"&&u.feishuThreadLink?(0,c.jsx)(Te,{className:"wb-session-row-action is-jump",href:u.feishuThreadLink,title:"\u8DF3\u8F6C\u5230\u539F\u8BDD\u9898",ariaLabel:`\u8DF3\u8F6C\u5230\u539F\u8BDD\u9898 \u2014 ${_}`,onActivate:()=>e.onSeen?.(u.sessionId),children:"\u8DF3\u8F6C"}):null,(()=>{let R=e.fixedTerminal?"\u6253\u5F00\u7EC8\u7AEF\uFF08\u5F53\u524D\u8EAB\u4EFD\u53EF\u76F4\u63A5\u8F93\u5165\uFF09":"\u6253\u5F00\u53EA\u8BFB\u7EC8\u7AEF";return(0,c.jsx)("button",{type:"button",className:"wb-session-row-action is-terminal",title:R,"aria-label":`${R} \u2014 ${_}`,disabled:e.terminalBusySessionId===u.sessionId,onClick:J=>{J.stopPropagation(),_e(u.sessionId)},children:"\u7EC8\u7AEF"})})()]}):null]},i.key)})}),_n===0?(0,c.jsx)("p",{className:"wb-session-empty",children:"\u6CA1\u6709\u5339\u914D\u7684\u4F1A\u8BDD"}):null]})]})}var C=D(pe(),1);function xr(){let[e,n]=(0,C.useState)(!1);return(0,C.useEffect)(()=>{if(typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia("(hover: none)"),r=()=>n(typeof navigator<"u"&&navigator.maxTouchPoints>0||t.matches);return r(),t.addEventListener?.("change",r),()=>t.removeEventListener?.("change",r)},[]),e}function Rr(e){let{api:n,enabled:t,sessionId:r}=e,[o,s]=(0,C.useState)(null),[l,p]=(0,C.useState)("idle"),[A,y]=(0,C.useState)(0);(0,C.useEffect)(()=>{if(!t)return;let k=new AbortController,b;return s(m=>m?.sessionId===r?m:null),p("loading"),n.getTerminalViewLink(r,k.signal).then(m=>{if(!k.signal.aborted){if(m){s({sessionId:r,url:m.url,expiresAt:m.expiresAt}),p("ready");return}p("failed"),s(g=>g?.sessionId===r&&g.expiresAt!==null&&g.expiresAt<=Date.now()?null:g),b=setTimeout(()=>y(g=>g+1),8e3)}}),()=>{k.abort(),b!==void 0&&clearTimeout(b)}},[n,A,t,r]),(0,C.useEffect)(()=>{if(l!=="ready"||o?.expiresAt==null)return;let k=o.expiresAt-Date.now()-3e4,b=setTimeout(()=>y(m=>m+1),Math.max(5e3,k));return()=>clearTimeout(b)},[o,l]);let S=(0,C.useCallback)(()=>{p("loading"),y(k=>k+1)},[]);return{link:o,phase:l,retry:S}}export{Y as a,fe as b,Ot as c,z as d,Gn as e,Ft as f,L as g,ye as h,Kt as i,Xe as j,Bt as k,qn as l,Gt as m,Ze as n,Ut as o,Jt as p,Yt as q,v as r,nn as s,Xt as t,Qt as u,Zt as v,kn as w,ir as x,At as y,sr as z,ar as A,ur as B,dr as C,pr as D,hr as E,xn as F,br as G,kr as H,fr as I,mr as J,vr as K,xr as L,Rr as M};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ge={chats:[],bots:[]},_=ge,T=0,h=null,he=0,E=0;function me(e){return{chats:Array.isArray(e?.chats)?e.chats:[],bots:Array.isArray(e?.bots)?e.bots:[]}}function be(e){_=e,T=Date.now()}async function F(e={}){let t=e.cacheMs??3e3,s=Date.now();if(!e.force&&T>0&&s-T<=t)return _;if(!e.force&&h)return h;let o=++he;E=o;let i=(async()=>{let n=await fetch(e.force?"/api/groups?refresh=1":"/api/groups"),a=await n.json().catch(()=>({}));if(!n.ok)throw new Error(`HTTP ${n.status}`);let l=me(a);return o===E&&be(l),l})();return e.force?i:(h=i.finally(()=>{h=null}),h)}var x="botmux.dashboard.locale",fe={"app.name":"botmux","app.subtitle":"\u98DE\u4E66 AI CLI \u63A7\u5236\u53F0","nav.docs":"\u6587\u6863","time.secondsAgo":"{value} \u79D2\u524D","time.minutesAgo":"{value} \u5206\u949F\u524D","time.hoursAgo":"{value} \u5C0F\u65F6\u524D","nav.overview":"\u5DE5\u4F5C\u53F0","nav.monitoring":"\u76D1\u63A7\u770B\u677F","nav.sessions":"\u4F1A\u8BDD\u63A7\u5236","nav.groups":"\u7FA4\u7EC4\u7BA1\u7406","nav.schedules":"\u5B9A\u65F6\u4EFB\u52A1","nav.settings":"\u5168\u5C40\u8BBE\u7F6E","nav.botDefaults":"Bot \u914D\u7F6E","nav.skills":"Skill \u7BA1\u7406","nav.customization":"\u81EA\u5B9A\u4E49","nav.whiteboards":"\u767D\u677F","nav.team":"\u56E2\u961F\u534F\u4F5C","nav.connectors":"Webhook","nav.webhookLogs":"\u8C03\u7528\u65E5\u5FD7","nav.feedback":"\u53CD\u9988\u5206\u6790","nav.workbench":"\u9A7E\u9A76\u8231","nav.group.overview":"\u6982\u89C8","nav.group.collab":"\u534F\u4F5C","nav.group.workforce":"\u6570\u5B57\u5458\u5DE5","nav.group.analytics":"\u5206\u6790","nav.group.manage":"\u7BA1\u7406","feedback.title":"\u53CD\u9988\u5206\u6790","feedback.subtitle":"\u67E5\u770B\u5DF2\u6295\u9012\u56DE\u7B54\u7684\u8986\u76D6\u7387\u3001\u6700\u65B0\u8BC4\u4EF7\u3001\u5931\u8D25\u548C\u8131\u654F\u660E\u7EC6\u3002","feedback.delivered":"\u5DF2\u6295\u9012","feedback.rated":"\u5DF2\u8BC4\u4EF7\u56DE\u7B54","feedback.coverage":"\u8BC4\u4EF7\u8986\u76D6\u7387","feedback.positiveRate":"\u6B63\u5411\u7387","feedback.deliveryFailures":"\u6295\u9012\u5931\u8D25","feedback.outboxFailures":"Webhook \u5931\u8D25","feedback.trend":"\u8BED\u4E49\u8D8B\u52BF","feedback.reasons":"\u8D1F\u5411\u539F\u56E0","feedback.deliveries":"\u8131\u654F\u6295\u9012\u660E\u7EC6","feedback.loadMore":"\u52A0\u8F7D\u66F4\u591A","nav.office":"\u529E\u516C\u5BA4","nav.createSession":"\u521B\u5EFA\u4F1A\u8BDD","nav.createBot":"\u521B\u5EFA\u673A\u5668\u4EBA","status.live":"\u5B9E\u65F6\u94FE\u63A5","status.disconnected":"\u94FE\u63A5\u65AD\u5F00","status.system":"\u7CFB\u7EDF","status.light":"\u6D45\u8272","status.dark":"\u6697\u9ED1","status.language":"\u8BED\u8A00","status.theme":"\u4E3B\u9898","theme.base":"\u57FA\u7840","theme.skins":"\u4E3B\u9898\u76AE\u80A4","skin.cyber":"2077","skin.fallout":"Fallout","botOnboarding.add":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.title":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.intro":"\u8BBE\u7F6E\u5B83\u5982\u4F55\u5DE5\u4F5C\u3002\u9996\u6B21\u626B\u7801\u767B\u5F55\u540E\uFF0C\u540E\u7EED\u53EF\u590D\u7528\u5F53\u524D\u8D26\u53F7\u514D\u626B\u7801\u6DFB\u52A0\u3002","botOnboarding.sessionChecking":"\u6B63\u5728\u68C0\u67E5\u98DE\u4E66\u767B\u5F55\u72B6\u6001\u2026","botOnboarding.sessionReady":"\u5C06\u4F7F\u7528 {user} \xB7 {tenant}","botOnboarding.switchAccount":"\u66F4\u6362\u8D26\u53F7","botOnboarding.reuseCurrentAccount":"\u7EE7\u7EED\u4F7F\u7528\u5F53\u524D\u8D26\u53F7","botOnboarding.sessionSwitching":"\u5C06\u91CD\u65B0\u626B\u7801\u9009\u62E9\u8D26\u53F7","botOnboarding.sessionSwitchingHint":"\u65B0\u767B\u5F55\u6210\u529F\u540E\u4F1A\u8986\u76D6\u672C\u673A\u7F13\u5B58\u3002","botOnboarding.sessionScanRequired":"\u9700\u8981\u626B\u7801\u767B\u5F55","botOnboarding.sessionScanRequiredHint":"\u9996\u6B21\u6DFB\u52A0\u6216\u767B\u5F55\u6001\u8FC7\u671F\u65F6\u626B\u7801\uFF1B\u767B\u5F55\u6001\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u540E\u7EED\u6709\u6548\u671F\u5185\u514D\u626B\u3002","botOnboarding.confirmReuse":"\u786E\u8BA4\u8D26\u53F7\u5E76\u514D\u626B\u7801\u6DFB\u52A0","botOnboarding.appNameLabel":"\u673A\u5668\u4EBA\u540D\u79F0\uFF08\u53EF\u9009\uFF09","botOnboarding.appNamePlaceholder":"\u4F8B\u5982\uFF1A\u7814\u53D1\u52A9\u624B","botOnboarding.appNameHint":"\u7559\u7A7A\u5C06\u4F7F\u7528 {name}","botOnboarding.cliLabel":"AI CLI","botOnboarding.cliMissingOption":"{label}\uFF08\u672A\u5B89\u88C5\uFF1A{command}\uFF09","botOnboarding.cliMissingHint":"\u5F53\u524D\u673A\u5668\u627E\u4E0D\u5230 {command}\uFF0C\u8BF7\u5148\u5B89\u88C5\u6216\u4FEE\u6B63 daemon \u7684 PATH\uFF1B\u672A\u5C31\u7EEA\u524D\u4E0D\u80FD\u521B\u5EFA Bot\u3002","botOnboarding.dirModeLabel":"\u65B0\u8BDD\u9898\u4ECE\u54EA\u91CC\u5F00\u59CB","botOnboarding.dirModeFixed":"\u56FA\u5B9A\u76EE\u5F55\uFF08\u63A8\u8350\uFF09","botOnboarding.dirModeCard":"\u6BCF\u6B21\u9009\u62E9\u4ED3\u5E93","botOnboarding.dirLabelFixed":"\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","botOnboarding.dirLabelCard":"\u4ED3\u5E93\u626B\u63CF\u6839\u76EE\u5F55","botOnboarding.dirPlaceholderFixed":"\u9ED8\u8BA4 ~\uFF08\u5BB6\u76EE\u5F55\uFF09\uFF0C\u9700\u4E3A daemon \u4E3B\u673A\u4E0A\u5DF2\u5B58\u5728\u7684\u76EE\u5F55","botOnboarding.dirPlaceholderCard":"\u5982 ~/projects\uFF0C\u5361\u7247\u5217\u51FA\u5176\u4E0B\u7684 git \u4ED3\u5E93\uFF1B\u9700\u5728 daemon \u4E3B\u673A\u4E0A\u5B58\u5728","botOnboarding.modelLabel":"\u6A21\u578B\uFF08\u53EF\u9009\uFF09","botOnboarding.modelPlaceholder":"\u7559\u7A7A\u4F7F\u7528\u8BE5 CLI \u7684\u9ED8\u8BA4\u6A21\u578B","botOnboarding.modelTtadkPlaceholder":"ttadk \u7F51\u5173\u6A21\u578B\uFF0C\u9ED8\u8BA4 {model}\uFF0C\u53EF\u6539\uFF08\u968F\u65F6\u5728\u6B64\u8C03\u6574\uFF09","botOnboarding.modelTtadkCocoPlaceholder":"CoCo \u65E0\u9700\u6307\u5B9A\u6A21\u578B","botOnboarding.startScan":"\u626B\u7801\u5E76\u6DFB\u52A0","botOnboarding.cancel":"\u53D6\u6D88","botOnboarding.starting":"\u6B63\u5728\u51C6\u5907\u5B89\u5168\u767B\u5F55\u2026","botOnboarding.waiting":"\u4F7F\u7528\u98DE\u4E66\u626B\u7801\u3002\u4E00\u6B21\u626B\u7801\u5373\u53EF\u521B\u5EFA\u5E76\u914D\u7F6E\u300C{name}\u300D\u3002","botOnboarding.waitingCompat":"\u4F7F\u7528\u98DE\u4E66\u626B\u7801\u8FDB\u5165\u517C\u5BB9\u6A21\u5F0F\uFF1B\u6B64\u8DEF\u5F84\u53EF\u80FD\u9700\u8981\u989D\u5916\u626B\u7801\uFF0C\u5E94\u7528\u540D\u79F0\u7531\u5E73\u53F0\u51B3\u5B9A\u3002","botOnboarding.verifying":"\u5E94\u7528\u5DF2\u521B\u5EFA\uFF0C\u6B63\u5728\u786E\u8BA4\u8D26\u53F7\u2026","botOnboarding.configuringPermissions":"\u6B63\u5728\u914D\u7F6E\u6743\u9650\u4E0E\u4E8B\u4EF6\u5E76\u53D1\u5E03\u673A\u5668\u4EBA\u2026","botOnboarding.platformScanHint":"\u517C\u5BB9\u6A21\u5F0F\u9700\u8981\u989D\u5916\u767B\u5F55\u5F00\u653E\u5E73\u53F0\uFF1B\u626B\u7801\u540E\u4F1A\u7EE7\u7EED\u914D\u7F6E\u3002","botOnboarding.platformQrAlt":"\u5F00\u653E\u5E73\u53F0\u767B\u5F55\u4E8C\u7EF4\u7801","botOnboarding.completed":"\u300C{name}\u300D\u5DF2\u53EF\u4F7F\u7528","botOnboarding.botFallback":"\u673A\u5668\u4EBA","botOnboarding.permissionOk":"\u5DF2\u81EA\u52A8\u5BFC\u5165 {count} \u9879\u6743\u9650\u3002","botOnboarding.permissionSkipped":"\uFF08\u8DF3\u8FC7 {count} \u9879\u5F53\u524D\u79DF\u6237\u76EE\u5F55\u4E2D\u6CA1\u6709\u7684\u6743\u9650\uFF09","botOnboarding.permissionVersion":"\u5DF2\u63D0\u4EA4\u53D1\u5E03\u7248\u672C {version}\u3002","botOnboarding.permissionManual":"\u6743\u9650\u672A\u80FD\u81EA\u52A8\u914D\u7F6E\uFF0C\u8BF7\u624B\u52A8\u5B8C\u6210\u4EE5\u4E0B\u6B65\u9AA4\uFF1A","botOnboarding.permissionRedirectWarn":"\u56DE\u8C03\u5730\u5740\uFF08\u91CD\u5B9A\u5411 URL\uFF09\u672A\u81EA\u52A8\u914D\u7F6E\u6210\u529F\uFF1A{reason}\u3002\u8BF7\u5230\u5F00\u653E\u5E73\u53F0\u300C\u5B89\u5168\u8BBE\u7F6E \u2192 \u91CD\u5B9A\u5411 URL\u300D\u8865\u4E0A\uFF0C\u5426\u5219\u7FA4\u804A\u6A21\u5F0F / \u4F1A\u8BDD\u7FA4\u6807\u7B7E / `/login` \u70B9\u6388\u6743\u4F1A\u62A5 20029\u3002","botOnboarding.permissionRedirectWarnNoReason":"\u56DE\u8C03\u5730\u5740\uFF08\u91CD\u5B9A\u5411 URL\uFF09\u672A\u81EA\u52A8\u914D\u7F6E\u6210\u529F\u3002\u8BF7\u5230\u5F00\u653E\u5E73\u53F0\u300C\u5B89\u5168\u8BBE\u7F6E \u2192 \u91CD\u5B9A\u5411 URL\u300D\u8865\u4E0A\uFF0C\u5426\u5219\u7FA4\u804A\u6A21\u5F0F / \u4F1A\u8BDD\u7FA4\u6807\u7B7E / `/login` \u70B9\u6388\u6743\u4F1A\u62A5 20029\u3002","botOnboarding.metaDir":"\u76EE\u5F55","botOnboarding.createFailedTitle":"\u6682\u65F6\u65E0\u6CD5\u521B\u5EFA\u5E94\u7528","botOnboarding.createFailedDescription":"\u8868\u5355\u5185\u5BB9\u5DF2\u4FDD\u7559\u3002\u53EF\u4EE5\u91CD\u8BD5\uFF0C\u6216\u660E\u786E\u9009\u62E9\u517C\u5BB9\u6A21\u5F0F\u3002","botOnboarding.qrExpiredTitle":"\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F","botOnboarding.qrExpiredDescription":"\u8868\u5355\u5185\u5BB9\u5DF2\u4FDD\u7559\uFF0C\u8BF7\u751F\u6210\u65B0\u4E8C\u7EF4\u7801\u3002","botOnboarding.authIncompleteTitle":"\u672A\u5B8C\u6210\u6388\u6743","botOnboarding.authIncompleteDescription":"\u6CA1\u6709\u521B\u5EFA\u5E94\u7528\uFF0C\u53EF\u4EE5\u91CD\u65B0\u626B\u7801\u3002","botOnboarding.partialFailureTitle":"\u5E94\u7528\u5DF2\u521B\u5EFA\uFF0C\u4F46\u914D\u7F6E\u5C1A\u672A\u5B8C\u6210","botOnboarding.partialFailureDescription":"\u5DF2\u4FDD\u7559 App ID\uFF0C\u7CFB\u7EDF\u4E0D\u4F1A\u518D\u6B21\u521B\u5EFA\u5E94\u7528\u3002\u8BF7\u6309\u6280\u672F\u8BE6\u60C5\u4E2D\u7684\u7EE7\u7EED\u547D\u4EE4\u6062\u590D\u3002","botOnboarding.technicalDetails":"\u6280\u672F\u8BE6\u60C5","botOnboarding.retry":"\u91CD\u8BD5","botOnboarding.generateQr":"\u751F\u6210\u65B0\u4E8C\u7EF4\u7801","botOnboarding.scanAgain":"\u91CD\u65B0\u626B\u7801","botOnboarding.compatibilityMode":"\u4F7F\u7528\u517C\u5BB9\u6A21\u5F0F","botOnboarding.compatibilityConfirm":"\u517C\u5BB9\u6A21\u5F0F\u53EF\u80FD\u9700\u8981\u989D\u5916\u626B\u7801\uFF0C\u4E14\u65E0\u6CD5\u5E94\u7528\u81EA\u5B9A\u4E49\u673A\u5668\u4EBA\u540D\u79F0\u3002\u662F\u5426\u7EE7\u7EED\uFF1F","botOnboarding.openLink":"\u6253\u4E0D\u5F00\u626B\u7801\uFF1F\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","botOnboarding.close":"\u5173\u95ED","botOnboarding.restartHint":"\u5DF2\u5199\u5165 bots.json\u3002\u81EA\u52A8\u4E0A\u7EBF\u672A\u6210\u529F\uFF0C\u6267\u884C botmux restart \u540E\u65B0\u673A\u5668\u4EBA\u751F\u6548\u3002","botOnboarding.liveOk":"\u673A\u5668\u4EBA\u5DF2\u81EA\u52A8\u4E0A\u7EBF\uFF0C\u65E0\u9700\u91CD\u542F\uFF0C\u76F4\u63A5\u5728\u98DE\u4E66\u91CC @ \u5B83\u5373\u53EF\u4F7F\u7528\u3002","botOnboarding.needsOwnerTitle":"\u8FD8\u5DEE\u4E00\u6B65\uFF1A\u786E\u8BA4\u7BA1\u7406\u5458","botOnboarding.needsOwnerDescription":"\u65E0\u6CD5\u4ECE\u626B\u7801\u8D26\u53F7\u786E\u8BA4\u7BA1\u7406\u5458\u8EAB\u4EFD\u3002\u586B\u5199\u4F01\u4E1A\u90AE\u7BB1\u6216\u624B\u673A\u53F7\u540E\u5373\u53EF\u5B8C\u6210\uFF1B\u786E\u8BA4\u524D\u673A\u5668\u4EBA\u4E0D\u4F1A\u542F\u52A8\u3002","botOnboarding.ownerLabel":"\u7BA1\u7406\u5458\u90AE\u7BB1\u6216\u624B\u673A\u53F7","botOnboarding.ownerPlaceholder":"name@company.com \u6216 13011112222","botOnboarding.ownerUseId":"\u4F7F\u7528 ID","botOnboarding.ownerIdLabel":"union_id / open_id","botOnboarding.ownerIdPlaceholder":"on_xxx \u6216 ou_xxx","botOnboarding.ownerSubmit":"\u786E\u8BA4\u5E76\u5B8C\u6210","botOnboarding.ownerEmpty":"\u8BF7\u586B\u5199\u7BA1\u7406\u5458\u90AE\u7BB1\u3001\u624B\u673A\u53F7\u6216 ID\u3002","botOnboarding.ownerInvalid":"\u7BA1\u7406\u5458\u8EAB\u4EFD\u6821\u9A8C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5\u3002","botOnboarding.qrAlt":"\u98DE\u4E66\u626B\u7801\u6DFB\u52A0\u673A\u5668\u4EBA\u4E8C\u7EF4\u7801","overview.title":"\u5DE5\u4F5C\u53F0","overview.team":"AI \u56E2\u961F","overview.teamHint":"\u6BCF\u4F4D\u6570\u5B57\u5458\u5DE5\u7684\u5B9E\u65F6\u72B6\u6001","overview.attention":"\u9700\u8981\u4F60\u5904\u7406","overview.activeSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.sessionOverview":"\u4F1A\u8BDD\u6982\u89C8","overview.viewAll":"\u67E5\u770B\u5168\u90E8 \u2192","overview.viewAllPlain":"\u67E5\u770B\u5168\u90E8","overview.sort":"\u6392\u5E8F","overview.sortByTime":"\u6309\u65F6\u95F4","overview.sortAttentionFirst":"\u9700\u8981\u4F60\u5904\u7406\u4F18\u5148","overview.botIdle":"\u5F85\u547D\u4E2D\uFF0C\u968F\u65F6\u53EF\u63A5\u65B0\u4EFB\u52A1","overview.botOffline":"\u79BB\u7EBF \u2014 daemon \u672A\u4E0A\u7EBF","overview.botBusy":"\u6267\u884C\u4E2D \xB7 {count} \u4F1A\u8BDD","overview.botNeedsYou":"\u7B49\u4F60\u56DE\u590D","overview.botReady":"\u5C31\u7EEA","overview.botOff":"\u79BB\u7EBF","overview.botConsole":"\u98DE\u4E66\u540E\u53F0","overview.sessionsCount":"{count} \u4F1A\u8BDD","overview.lastActive":"{time}\u524D\u6D3B\u8DC3","overview.teamCount":"{count} \u4F4D","overview.teamExpand":"\u5C55\u5F00\u5168\u90E8","overview.teamCollapse":"\u6536\u8D77","strip.pending":"{count} \u4EF6\u5F85\u5904\u7406","strip.longestCompact":"\u6700\u4E45 {time} \xB7 {bot} \xB7 {reason}","strip.handle":"\u7ACB\u5373\u5904\u7406","overview.openSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.workingSessions":"\u5DE5\u4F5C\u4E2D","overview.idleSessions":"\u7A7A\u95F2\u4E2D","overview.onlineBots":"\u5728\u7EBF Bot","overview.schedules":"\u5B9A\u65F6\u4EFB\u52A1","overview.groups":"\u7FA4\u804A\u8986\u76D6","overview.enabledSchedules":"\u5DF2\u542F\u7528","overview.total":"\u603B\u8BA1","overview.active":"\u6D3B\u8DC3","overview.daemonRegistry":"daemon \u6CE8\u518C\u8868","overview.chatMatrix":"\u7FA4\u804A\u77E9\u9635","overview.recentSessions":"\u6700\u8FD1\u4F1A\u8BDD","overview.nextSchedules":"\u5B9A\u65F6\u4EFB\u52A1","overview.noSessions":"\u6682\u65E0\u4F1A\u8BDD\u3002","overview.noSchedules":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\u3002","overview.allClear":"\u6240\u6709\u4F1A\u8BDD\u90FD\u5728\u6B63\u5E38\u8FD0\u884C","overview.waitingFor":"\u5DF2\u7B49\u5F85 {time}","overview.headingSubtitle":"{bots} \u4F4D Bot \u5728\u7EBF \xB7 {needs} \u9879\u5F85\u5904\u7406","overview.liveSync":"\u5B9E\u65F6\u540C\u6B65","overview.syncOffline":"\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u91CD\u8BD5\u4E2D","overview.upcomingSchedules":"\u5373\u5C06\u6267\u884C\u7684\u5B9A\u65F6\u4EFB\u52A1","monitoring.eyebrow":"\u8FD0\u884C\u8D44\u6E90","monitoring.title":"\u76D1\u63A7\u770B\u677F","monitoring.subtitle":"\u5B9E\u65F6\u67E5\u770B\u5BBF\u4E3B\u673A\u3001botmux\u3001\u673A\u5668\u4EBA\u548C\u4F1A\u8BDD\u7684 CPU \u4E0E\u5185\u5B58\u538B\u529B\u3002","monitoring.runtimeTitle":"\u76D1\u63A7\u770B\u677F","monitoring.runtimeSubtitle":"\u5B9E\u65F6\u67E5\u770B botmux \u7684\u8FD0\u884C\u5065\u5EB7\u3001\u8D44\u6E90\u538B\u529B\u548C\u4F1A\u8BDD\u538B\u529B\u3002","monitoring.runtimeHealth":"\u8FD0\u884C\u5065\u5EB7","monitoring.runtimeHealthHint":"\u786E\u8BA4\u6570\u636E\u662F\u5426\u65B0\u9C9C\u3001daemon \u662F\u5426\u5728\u7EBF\u3001\u4F1A\u8BDD\u662F\u5426\u5806\u79EF\u3002","monitoring.resourcePressure":"\u8D44\u6E90\u538B\u529B","monitoring.resourcePressureHint":"\u673A\u5668\u8D44\u6E90\u53EA\u4FDD\u5B58\u5728\u5185\u5B58\u8D8B\u52BF\u4E2D\uFF0C\u91CD\u542F\u540E\u6E05\u7A7A\u3002","monitoring.sessionPressure":"\u4F1A\u8BDD\u538B\u529B","monitoring.sessionPressureHint":"\u5B9A\u4F4D\u957F\u65F6\u95F4\u8FD0\u884C\u3001\u7B49\u5F85\u5904\u7406\u548C\u672A\u5173\u8054\u8FDB\u7A0B\u7684 live \u4F1A\u8BDD\u3002","monitoring.botRuntime":"Bot \u8FD0\u884C","monitoring.botRuntimeHint":"\u6309 bot \u805A\u5408 daemon \u72B6\u6001\u3001\u4F1A\u8BDD\u538B\u529B\u548C\u8D44\u6E90\u5360\u7528\u3002","monitoring.sampleHealth":"\u91C7\u6837\u72B6\u6001","monitoring.sampleAge":"\u6570\u636E\u5E74\u9F84","monitoring.sample.fresh":"\u65B0\u9C9C","monitoring.sample.stale":"\u8FC7\u671F","monitoring.sample.unsupported":"\u4E0D\u652F\u6301","monitoring.sample.unknown":"\u672A\u77E5","monitoring.health.ok":"\u5065\u5EB7","monitoring.health.warn":"\u8B66\u60D5","monitoring.health.danger":"\u9AD8\u538B","monitoring.health.unknown":"\u672A\u77E5","monitoring.daemonHealth":"Daemon \u5728\u7EBF","monitoring.sessionHealth":"\u4F1A\u8BDD\u5065\u5EB7","monitoring.offline":"\u79BB\u7EBF","monitoring.working":"\u5DE5\u4F5C\u4E2D","monitoring.starting":"\u542F\u52A8\u4E2D","monitoring.waiting":"\u7B49\u5F85\u4E2D","monitoring.idle":"\u7A7A\u95F2","monitoring.unknown":"\u672A\u77E5","monitoring.statusDistribution":"\u72B6\u6001\u5206\u5E03","monitoring.longestRunning":"\u6700\u957F\u8FD0\u884C","monitoring.longestWaiting":"\u6700\u957F\u7B49\u5F85","monitoring.unattributedSessions":"\u672A\u5173\u8054\u8FDB\u7A0B","monitoring.unattributedHint":"\u8FD9\u4E9B live \u4F1A\u8BDD\u5F53\u524D\u6CA1\u6709\u53EF\u9760 PID \u5173\u8054\uFF0C\u65E0\u6CD5\u8BA1\u7B97\u4F1A\u8BDD\u7EA7\u8D44\u6E90\u3002","monitoring.unsupported":"\u5F53\u524D\u5E73\u53F0\u6682\u4E0D\u652F\u6301\u8D44\u6E90\u91C7\u6837\u3002","monitoring.unsupportedKicker":"Linux / macOS only","monitoring.unsupportedTitle":"\u8D44\u6E90\u91C7\u6837\u4EC5\u652F\u6301 Linux / macOS","monitoring.unsupportedHint":"\u5F53\u524D\u5E73\u53F0\u65E2\u6CA1\u6709\u53EF\u8BFB\u7684 /proc \u6570\u636E\uFF0C\u4E5F\u6CA1\u6709 macOS \u7684 ps/vm_stat \u91C7\u6837\u901A\u9053\uFF1B\u8FD0\u884C\u5065\u5EB7\u4ECD\u53EF\u7EE7\u7EED\u67E5\u770B\u3002","monitoring.unsupportedRuntimeOk":"\u8FD0\u884C\u5065\u5EB7\u53EF\u7528","monitoring.unsupportedResourceOnly":"CPU / Memory / RSS \u6682\u505C","monitoring.hostCpu":"CPU","monitoring.hostMemory":"Memory","monitoring.botmuxRss":"Botmux \u5185\u5B58","monitoring.botmuxSelf":"\u672C\u4F53","monitoring.botmuxDaemon":"\u5B88\u62A4","monitoring.botmuxWorker":"worker","monitoring.botmuxCli":"\u5916\u90E8 CLI","monitoring.rssHelpLabel":"\u5185\u5B58\u53E3\u5F84\u8BF4\u660E","monitoring.rssHelp":`\u5185\u5B58\u7528 PSS\uFF08Proportional Set Size\uFF09\uFF1A\u5171\u4EAB\u5185\u5B58\u9875\u6309\u5171\u4EAB\u5B83\u7684\u8FDB\u7A0B\u6570\u5206\u644A\uFF0C\u6240\u4EE5\u591A\u8FDB\u7A0B\u76F8\u52A0\u4E0D\u4F1A\u50CF RSS \u90A3\u6837\u628A\u5171\u4EAB\u7684 Node \u8FD0\u884C\u65F6/\u5E93\u91CD\u590D\u8BA1\u6570\uFF08\u8BFB\u4E0D\u5230 smaps_rollup \u65F6\u56DE\u9000 RSS\uFF09\uFF1BmacOS \u4E0A\u7528\u7B49\u4EF7\u8BED\u4E49\u7684 phys_footprint\uFF08\u5373\u6D3B\u52A8\u76D1\u89C6\u5668\u7684\u300C\u5185\u5B58\u300D\uFF0C\u8BFB\u4E0D\u5230\u65F6\u56DE\u9000 RSS\uFF09\u3002
|
|
1
|
+
var ge={chats:[],bots:[]},_=ge,T=0,h=null,he=0,E=0;function me(e){return{chats:Array.isArray(e?.chats)?e.chats:[],bots:Array.isArray(e?.bots)?e.bots:[]}}function be(e){_=e,T=Date.now()}async function F(e={}){let t=e.cacheMs??3e3,s=Date.now();if(!e.force&&T>0&&s-T<=t)return _;if(!e.force&&h)return h;let o=++he;E=o;let i=(async()=>{let n=await fetch(e.force?"/api/groups?refresh=1":"/api/groups"),a=await n.json().catch(()=>({}));if(!n.ok)throw new Error(`HTTP ${n.status}`);let l=me(a);return o===E&&be(l),l})();return e.force?i:(h=i.finally(()=>{h=null}),h)}var x="botmux.dashboard.locale",fe={"app.name":"botmux","app.subtitle":"\u98DE\u4E66 AI CLI \u63A7\u5236\u53F0","nav.docs":"\u6587\u6863","time.secondsAgo":"{value} \u79D2\u524D","time.minutesAgo":"{value} \u5206\u949F\u524D","time.hoursAgo":"{value} \u5C0F\u65F6\u524D","nav.overview":"\u5DE5\u4F5C\u53F0","nav.monitoring":"\u76D1\u63A7\u770B\u677F","nav.sessions":"\u4F1A\u8BDD\u63A7\u5236","nav.groups":"\u7FA4\u7EC4\u7BA1\u7406","nav.schedules":"\u5B9A\u65F6\u4EFB\u52A1","nav.settings":"\u5168\u5C40\u8BBE\u7F6E","nav.botDefaults":"Bot \u914D\u7F6E","nav.skills":"Skill \u7BA1\u7406","nav.customization":"\u81EA\u5B9A\u4E49","nav.whiteboards":"\u767D\u677F","nav.team":"\u56E2\u961F\u534F\u4F5C","nav.connectors":"Webhook","nav.webhookLogs":"\u8C03\u7528\u65E5\u5FD7","nav.feedback":"\u53CD\u9988\u5206\u6790","nav.workbench":"\u9A7E\u9A76\u8231","nav.group.overview":"\u6982\u89C8","nav.group.collab":"\u534F\u4F5C","nav.group.workforce":"\u6570\u5B57\u5458\u5DE5","nav.group.analytics":"\u5206\u6790","nav.group.manage":"\u7BA1\u7406","feedback.title":"\u53CD\u9988\u5206\u6790","feedback.subtitle":"\u67E5\u770B\u5DF2\u6295\u9012\u56DE\u7B54\u7684\u8986\u76D6\u7387\u3001\u6700\u65B0\u8BC4\u4EF7\u3001\u5931\u8D25\u548C\u8131\u654F\u660E\u7EC6\u3002","feedback.delivered":"\u5DF2\u6295\u9012","feedback.rated":"\u5DF2\u8BC4\u4EF7\u56DE\u7B54","feedback.coverage":"\u8BC4\u4EF7\u8986\u76D6\u7387","feedback.positiveRate":"\u6B63\u5411\u7387","feedback.deliveryFailures":"\u6295\u9012\u5931\u8D25","feedback.outboxFailures":"Webhook \u5931\u8D25","feedback.trend":"\u8BED\u4E49\u8D8B\u52BF","feedback.reasons":"\u8D1F\u5411\u539F\u56E0","feedback.deliveries":"\u8131\u654F\u6295\u9012\u660E\u7EC6","feedback.loadMore":"\u52A0\u8F7D\u66F4\u591A","nav.office":"\u529E\u516C\u5BA4","nav.createSession":"\u521B\u5EFA\u4F1A\u8BDD","nav.createBot":"\u521B\u5EFA\u673A\u5668\u4EBA","status.live":"\u5B9E\u65F6\u94FE\u63A5","status.disconnected":"\u94FE\u63A5\u65AD\u5F00","status.system":"\u7CFB\u7EDF","status.light":"\u6D45\u8272","status.dark":"\u6697\u9ED1","status.language":"\u8BED\u8A00","status.theme":"\u4E3B\u9898","theme.base":"\u57FA\u7840","theme.skins":"\u4E3B\u9898\u76AE\u80A4","skin.cyber":"2077","skin.fallout":"Fallout","botOnboarding.add":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.clone":"\u514B\u9686\u673A\u5668\u4EBA","botOnboarding.title":"\u6DFB\u52A0\u673A\u5668\u4EBA","botOnboarding.intro":"\u8BBE\u7F6E\u5B83\u5982\u4F55\u5DE5\u4F5C\u3002\u9996\u6B21\u626B\u7801\u767B\u5F55\u540E\uFF0C\u540E\u7EED\u53EF\u590D\u7528\u5F53\u524D\u8D26\u53F7\u514D\u626B\u7801\u6DFB\u52A0\u3002","botOnboarding.sessionChecking":"\u6B63\u5728\u68C0\u67E5\u98DE\u4E66\u767B\u5F55\u72B6\u6001\u2026","botOnboarding.sessionReady":"\u5C06\u4F7F\u7528 {user} \xB7 {tenant}","botOnboarding.switchAccount":"\u66F4\u6362\u8D26\u53F7","botOnboarding.reuseCurrentAccount":"\u7EE7\u7EED\u4F7F\u7528\u5F53\u524D\u8D26\u53F7","botOnboarding.sessionSwitching":"\u5C06\u91CD\u65B0\u626B\u7801\u9009\u62E9\u8D26\u53F7","botOnboarding.sessionSwitchingHint":"\u65B0\u767B\u5F55\u6210\u529F\u540E\u4F1A\u8986\u76D6\u672C\u673A\u7F13\u5B58\u3002","botOnboarding.sessionScanRequired":"\u9700\u8981\u626B\u7801\u767B\u5F55","botOnboarding.sessionScanRequiredHint":"\u9996\u6B21\u6DFB\u52A0\u6216\u767B\u5F55\u6001\u8FC7\u671F\u65F6\u626B\u7801\uFF1B\u767B\u5F55\u6001\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u540E\u7EED\u6709\u6548\u671F\u5185\u514D\u626B\u3002","botOnboarding.confirmReuse":"\u786E\u8BA4\u8D26\u53F7\u5E76\u514D\u626B\u7801\u6DFB\u52A0","botOnboarding.appNameLabel":"\u673A\u5668\u4EBA\u540D\u79F0\uFF08\u53EF\u9009\uFF09","botOnboarding.appNamePlaceholder":"\u4F8B\u5982\uFF1A\u7814\u53D1\u52A9\u624B","botOnboarding.appNameHint":"\u7559\u7A7A\u5C06\u4F7F\u7528 {name}","botOnboarding.cliLabel":"AI CLI","botOnboarding.cliMissingOption":"{label}\uFF08\u672A\u5B89\u88C5\uFF1A{command}\uFF09","botOnboarding.cliMissingHint":"\u5F53\u524D\u673A\u5668\u627E\u4E0D\u5230 {command}\uFF0C\u8BF7\u5148\u5B89\u88C5\u6216\u4FEE\u6B63 daemon \u7684 PATH\uFF1B\u672A\u5C31\u7EEA\u524D\u4E0D\u80FD\u521B\u5EFA Bot\u3002","botOnboarding.dirModeLabel":"\u65B0\u8BDD\u9898\u4ECE\u54EA\u91CC\u5F00\u59CB","botOnboarding.dirModeFixed":"\u56FA\u5B9A\u76EE\u5F55\uFF08\u63A8\u8350\uFF09","botOnboarding.dirModeCard":"\u6BCF\u6B21\u9009\u62E9\u4ED3\u5E93","botOnboarding.dirLabelFixed":"\u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","botOnboarding.dirLabelCard":"\u4ED3\u5E93\u626B\u63CF\u6839\u76EE\u5F55","botOnboarding.dirPlaceholderFixed":"\u9ED8\u8BA4 ~\uFF08\u5BB6\u76EE\u5F55\uFF09\uFF0C\u9700\u4E3A daemon \u4E3B\u673A\u4E0A\u5DF2\u5B58\u5728\u7684\u76EE\u5F55","botOnboarding.dirPlaceholderCard":"\u5982 ~/projects\uFF0C\u5361\u7247\u5217\u51FA\u5176\u4E0B\u7684 git \u4ED3\u5E93\uFF1B\u9700\u5728 daemon \u4E3B\u673A\u4E0A\u5B58\u5728","botOnboarding.modelLabel":"\u6A21\u578B\uFF08\u53EF\u9009\uFF09","botOnboarding.modelPlaceholder":"\u7559\u7A7A\u4F7F\u7528\u8BE5 CLI \u7684\u9ED8\u8BA4\u6A21\u578B","botOnboarding.modelTtadkPlaceholder":"ttadk \u7F51\u5173\u6A21\u578B\uFF0C\u9ED8\u8BA4 {model}\uFF0C\u53EF\u6539\uFF08\u968F\u65F6\u5728\u6B64\u8C03\u6574\uFF09","botOnboarding.modelTtadkCocoPlaceholder":"CoCo \u65E0\u9700\u6307\u5B9A\u6A21\u578B","botOnboarding.startScan":"\u626B\u7801\u5E76\u6DFB\u52A0","botOnboarding.cancel":"\u53D6\u6D88","botOnboarding.starting":"\u6B63\u5728\u51C6\u5907\u5B89\u5168\u767B\u5F55\u2026","botOnboarding.waiting":"\u4F7F\u7528\u98DE\u4E66\u626B\u7801\u3002\u4E00\u6B21\u626B\u7801\u5373\u53EF\u521B\u5EFA\u5E76\u914D\u7F6E\u300C{name}\u300D\u3002","botOnboarding.waitingCompat":"\u4F7F\u7528\u98DE\u4E66\u626B\u7801\u8FDB\u5165\u517C\u5BB9\u6A21\u5F0F\uFF1B\u6B64\u8DEF\u5F84\u53EF\u80FD\u9700\u8981\u989D\u5916\u626B\u7801\uFF0C\u5E94\u7528\u540D\u79F0\u7531\u5E73\u53F0\u51B3\u5B9A\u3002","botOnboarding.verifying":"\u5E94\u7528\u5DF2\u521B\u5EFA\uFF0C\u6B63\u5728\u786E\u8BA4\u8D26\u53F7\u2026","botOnboarding.configuringPermissions":"\u6B63\u5728\u914D\u7F6E\u6743\u9650\u4E0E\u4E8B\u4EF6\u5E76\u53D1\u5E03\u673A\u5668\u4EBA\u2026","botOnboarding.platformScanHint":"\u517C\u5BB9\u6A21\u5F0F\u9700\u8981\u989D\u5916\u767B\u5F55\u5F00\u653E\u5E73\u53F0\uFF1B\u626B\u7801\u540E\u4F1A\u7EE7\u7EED\u914D\u7F6E\u3002","botOnboarding.platformQrAlt":"\u5F00\u653E\u5E73\u53F0\u767B\u5F55\u4E8C\u7EF4\u7801","botOnboarding.completed":"\u300C{name}\u300D\u5DF2\u53EF\u4F7F\u7528","botOnboarding.botFallback":"\u673A\u5668\u4EBA","botOnboarding.permissionOk":"\u5DF2\u81EA\u52A8\u5BFC\u5165 {count} \u9879\u6743\u9650\u3002","botOnboarding.permissionSkipped":"\uFF08\u8DF3\u8FC7 {count} \u9879\u5F53\u524D\u79DF\u6237\u76EE\u5F55\u4E2D\u6CA1\u6709\u7684\u6743\u9650\uFF09","botOnboarding.permissionVersion":"\u5DF2\u63D0\u4EA4\u53D1\u5E03\u7248\u672C {version}\u3002","botOnboarding.permissionManual":"\u6743\u9650\u672A\u80FD\u81EA\u52A8\u914D\u7F6E\uFF0C\u8BF7\u624B\u52A8\u5B8C\u6210\u4EE5\u4E0B\u6B65\u9AA4\uFF1A","botOnboarding.permissionRedirectWarn":"\u56DE\u8C03\u5730\u5740\uFF08\u91CD\u5B9A\u5411 URL\uFF09\u672A\u81EA\u52A8\u914D\u7F6E\u6210\u529F\uFF1A{reason}\u3002\u8BF7\u5230\u5F00\u653E\u5E73\u53F0\u300C\u5B89\u5168\u8BBE\u7F6E \u2192 \u91CD\u5B9A\u5411 URL\u300D\u8865\u4E0A\uFF0C\u5426\u5219\u7FA4\u804A\u6A21\u5F0F / \u4F1A\u8BDD\u7FA4\u6807\u7B7E / `/login` \u70B9\u6388\u6743\u4F1A\u62A5 20029\u3002","botOnboarding.permissionRedirectWarnNoReason":"\u56DE\u8C03\u5730\u5740\uFF08\u91CD\u5B9A\u5411 URL\uFF09\u672A\u81EA\u52A8\u914D\u7F6E\u6210\u529F\u3002\u8BF7\u5230\u5F00\u653E\u5E73\u53F0\u300C\u5B89\u5168\u8BBE\u7F6E \u2192 \u91CD\u5B9A\u5411 URL\u300D\u8865\u4E0A\uFF0C\u5426\u5219\u7FA4\u804A\u6A21\u5F0F / \u4F1A\u8BDD\u7FA4\u6807\u7B7E / `/login` \u70B9\u6388\u6743\u4F1A\u62A5 20029\u3002","botOnboarding.metaDir":"\u76EE\u5F55","botOnboarding.createFailedTitle":"\u6682\u65F6\u65E0\u6CD5\u521B\u5EFA\u5E94\u7528","botOnboarding.createFailedDescription":"\u8868\u5355\u5185\u5BB9\u5DF2\u4FDD\u7559\u3002\u53EF\u4EE5\u91CD\u8BD5\uFF0C\u6216\u660E\u786E\u9009\u62E9\u517C\u5BB9\u6A21\u5F0F\u3002","botOnboarding.qrExpiredTitle":"\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F","botOnboarding.qrExpiredDescription":"\u8868\u5355\u5185\u5BB9\u5DF2\u4FDD\u7559\uFF0C\u8BF7\u751F\u6210\u65B0\u4E8C\u7EF4\u7801\u3002","botOnboarding.authIncompleteTitle":"\u672A\u5B8C\u6210\u6388\u6743","botOnboarding.authIncompleteDescription":"\u6CA1\u6709\u521B\u5EFA\u5E94\u7528\uFF0C\u53EF\u4EE5\u91CD\u65B0\u626B\u7801\u3002","botOnboarding.partialFailureTitle":"\u5E94\u7528\u5DF2\u521B\u5EFA\uFF0C\u4F46\u914D\u7F6E\u5C1A\u672A\u5B8C\u6210","botOnboarding.partialFailureDescription":"\u5DF2\u4FDD\u7559 App ID\uFF0C\u7CFB\u7EDF\u4E0D\u4F1A\u518D\u6B21\u521B\u5EFA\u5E94\u7528\u3002\u8BF7\u6309\u6280\u672F\u8BE6\u60C5\u4E2D\u7684\u7EE7\u7EED\u547D\u4EE4\u6062\u590D\u3002","botOnboarding.technicalDetails":"\u6280\u672F\u8BE6\u60C5","botOnboarding.retry":"\u91CD\u8BD5","botOnboarding.generateQr":"\u751F\u6210\u65B0\u4E8C\u7EF4\u7801","botOnboarding.scanAgain":"\u91CD\u65B0\u626B\u7801","botOnboarding.compatibilityMode":"\u4F7F\u7528\u517C\u5BB9\u6A21\u5F0F","botOnboarding.compatibilityConfirm":"\u517C\u5BB9\u6A21\u5F0F\u53EF\u80FD\u9700\u8981\u989D\u5916\u626B\u7801\uFF0C\u4E14\u65E0\u6CD5\u5E94\u7528\u81EA\u5B9A\u4E49\u673A\u5668\u4EBA\u540D\u79F0\u3002\u662F\u5426\u7EE7\u7EED\uFF1F","botOnboarding.openLink":"\u6253\u4E0D\u5F00\u626B\u7801\uFF1F\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00","botOnboarding.close":"\u5173\u95ED","botOnboarding.restartHint":"\u5DF2\u5199\u5165 bots.json\u3002\u81EA\u52A8\u4E0A\u7EBF\u672A\u6210\u529F\uFF0C\u6267\u884C botmux restart \u540E\u65B0\u673A\u5668\u4EBA\u751F\u6548\u3002","botOnboarding.liveOk":"\u673A\u5668\u4EBA\u5DF2\u81EA\u52A8\u4E0A\u7EBF\uFF0C\u65E0\u9700\u91CD\u542F\uFF0C\u76F4\u63A5\u5728\u98DE\u4E66\u91CC @ \u5B83\u5373\u53EF\u4F7F\u7528\u3002","botOnboarding.needsOwnerTitle":"\u8FD8\u5DEE\u4E00\u6B65\uFF1A\u786E\u8BA4\u7BA1\u7406\u5458","botOnboarding.needsOwnerDescription":"\u65E0\u6CD5\u4ECE\u626B\u7801\u8D26\u53F7\u786E\u8BA4\u7BA1\u7406\u5458\u8EAB\u4EFD\u3002\u586B\u5199\u4F01\u4E1A\u90AE\u7BB1\u6216\u624B\u673A\u53F7\u540E\u5373\u53EF\u5B8C\u6210\uFF1B\u786E\u8BA4\u524D\u673A\u5668\u4EBA\u4E0D\u4F1A\u542F\u52A8\u3002","botOnboarding.ownerLabel":"\u7BA1\u7406\u5458\u90AE\u7BB1\u6216\u624B\u673A\u53F7","botOnboarding.ownerPlaceholder":"name@company.com \u6216 13011112222","botOnboarding.ownerUseId":"\u4F7F\u7528 ID","botOnboarding.ownerIdLabel":"union_id / open_id","botOnboarding.ownerIdPlaceholder":"on_xxx \u6216 ou_xxx","botOnboarding.ownerSubmit":"\u786E\u8BA4\u5E76\u5B8C\u6210","botOnboarding.ownerEmpty":"\u8BF7\u586B\u5199\u7BA1\u7406\u5458\u90AE\u7BB1\u3001\u624B\u673A\u53F7\u6216 ID\u3002","botOnboarding.ownerInvalid":"\u7BA1\u7406\u5458\u8EAB\u4EFD\u6821\u9A8C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5\u3002","botOnboarding.qrAlt":"\u98DE\u4E66\u626B\u7801\u6DFB\u52A0\u673A\u5668\u4EBA\u4E8C\u7EF4\u7801","overview.title":"\u5DE5\u4F5C\u53F0","overview.team":"AI \u56E2\u961F","overview.teamHint":"\u6BCF\u4F4D\u6570\u5B57\u5458\u5DE5\u7684\u5B9E\u65F6\u72B6\u6001","overview.attention":"\u9700\u8981\u4F60\u5904\u7406","overview.activeSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.sessionOverview":"\u4F1A\u8BDD\u6982\u89C8","overview.viewAll":"\u67E5\u770B\u5168\u90E8 \u2192","overview.viewAllPlain":"\u67E5\u770B\u5168\u90E8","overview.sort":"\u6392\u5E8F","overview.sortByTime":"\u6309\u65F6\u95F4","overview.sortAttentionFirst":"\u9700\u8981\u4F60\u5904\u7406\u4F18\u5148","overview.botIdle":"\u5F85\u547D\u4E2D\uFF0C\u968F\u65F6\u53EF\u63A5\u65B0\u4EFB\u52A1","overview.botOffline":"\u79BB\u7EBF \u2014 daemon \u672A\u4E0A\u7EBF","overview.botBusy":"\u6267\u884C\u4E2D \xB7 {count} \u4F1A\u8BDD","overview.botNeedsYou":"\u7B49\u4F60\u56DE\u590D","overview.botReady":"\u5C31\u7EEA","overview.botOff":"\u79BB\u7EBF","overview.botConsole":"\u98DE\u4E66\u540E\u53F0","overview.sessionsCount":"{count} \u4F1A\u8BDD","overview.lastActive":"{time}\u524D\u6D3B\u8DC3","overview.teamCount":"{count} \u4F4D","overview.teamExpand":"\u5C55\u5F00\u5168\u90E8","overview.teamCollapse":"\u6536\u8D77","strip.pending":"{count} \u4EF6\u5F85\u5904\u7406","strip.longestCompact":"\u6700\u4E45 {time} \xB7 {bot} \xB7 {reason}","strip.handle":"\u7ACB\u5373\u5904\u7406","overview.openSessions":"\u6D3B\u8DC3\u4F1A\u8BDD","overview.workingSessions":"\u5DE5\u4F5C\u4E2D","overview.idleSessions":"\u7A7A\u95F2\u4E2D","overview.onlineBots":"\u5728\u7EBF Bot","overview.schedules":"\u5B9A\u65F6\u4EFB\u52A1","overview.groups":"\u7FA4\u804A\u8986\u76D6","overview.enabledSchedules":"\u5DF2\u542F\u7528","overview.total":"\u603B\u8BA1","overview.active":"\u6D3B\u8DC3","overview.daemonRegistry":"daemon \u6CE8\u518C\u8868","overview.chatMatrix":"\u7FA4\u804A\u77E9\u9635","overview.recentSessions":"\u6700\u8FD1\u4F1A\u8BDD","overview.nextSchedules":"\u5B9A\u65F6\u4EFB\u52A1","overview.noSessions":"\u6682\u65E0\u4F1A\u8BDD\u3002","overview.noSchedules":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\u3002","overview.allClear":"\u6240\u6709\u4F1A\u8BDD\u90FD\u5728\u6B63\u5E38\u8FD0\u884C","overview.waitingFor":"\u5DF2\u7B49\u5F85 {time}","overview.headingSubtitle":"{bots} \u4F4D Bot \u5728\u7EBF \xB7 {needs} \u9879\u5F85\u5904\u7406","overview.liveSync":"\u5B9E\u65F6\u540C\u6B65","overview.syncOffline":"\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u91CD\u8BD5\u4E2D","overview.upcomingSchedules":"\u5373\u5C06\u6267\u884C\u7684\u5B9A\u65F6\u4EFB\u52A1","monitoring.eyebrow":"\u8FD0\u884C\u8D44\u6E90","monitoring.title":"\u76D1\u63A7\u770B\u677F","monitoring.subtitle":"\u5B9E\u65F6\u67E5\u770B\u5BBF\u4E3B\u673A\u3001botmux\u3001\u673A\u5668\u4EBA\u548C\u4F1A\u8BDD\u7684 CPU \u4E0E\u5185\u5B58\u538B\u529B\u3002","monitoring.runtimeTitle":"\u76D1\u63A7\u770B\u677F","monitoring.runtimeSubtitle":"\u5B9E\u65F6\u67E5\u770B botmux \u7684\u8FD0\u884C\u5065\u5EB7\u3001\u8D44\u6E90\u538B\u529B\u548C\u4F1A\u8BDD\u538B\u529B\u3002","monitoring.runtimeHealth":"\u8FD0\u884C\u5065\u5EB7","monitoring.runtimeHealthHint":"\u786E\u8BA4\u6570\u636E\u662F\u5426\u65B0\u9C9C\u3001daemon \u662F\u5426\u5728\u7EBF\u3001\u4F1A\u8BDD\u662F\u5426\u5806\u79EF\u3002","monitoring.resourcePressure":"\u8D44\u6E90\u538B\u529B","monitoring.resourcePressureHint":"\u673A\u5668\u8D44\u6E90\u53EA\u4FDD\u5B58\u5728\u5185\u5B58\u8D8B\u52BF\u4E2D\uFF0C\u91CD\u542F\u540E\u6E05\u7A7A\u3002","monitoring.sessionPressure":"\u4F1A\u8BDD\u538B\u529B","monitoring.sessionPressureHint":"\u5B9A\u4F4D\u957F\u65F6\u95F4\u8FD0\u884C\u3001\u7B49\u5F85\u5904\u7406\u548C\u672A\u5173\u8054\u8FDB\u7A0B\u7684 live \u4F1A\u8BDD\u3002","monitoring.botRuntime":"Bot \u8FD0\u884C","monitoring.botRuntimeHint":"\u6309 bot \u805A\u5408 daemon \u72B6\u6001\u3001\u4F1A\u8BDD\u538B\u529B\u548C\u8D44\u6E90\u5360\u7528\u3002","monitoring.sampleHealth":"\u91C7\u6837\u72B6\u6001","monitoring.sampleAge":"\u6570\u636E\u5E74\u9F84","monitoring.sample.fresh":"\u65B0\u9C9C","monitoring.sample.stale":"\u8FC7\u671F","monitoring.sample.unsupported":"\u4E0D\u652F\u6301","monitoring.sample.unknown":"\u672A\u77E5","monitoring.health.ok":"\u5065\u5EB7","monitoring.health.warn":"\u8B66\u60D5","monitoring.health.danger":"\u9AD8\u538B","monitoring.health.unknown":"\u672A\u77E5","monitoring.daemonHealth":"Daemon \u5728\u7EBF","monitoring.sessionHealth":"\u4F1A\u8BDD\u5065\u5EB7","monitoring.offline":"\u79BB\u7EBF","monitoring.working":"\u5DE5\u4F5C\u4E2D","monitoring.starting":"\u542F\u52A8\u4E2D","monitoring.waiting":"\u7B49\u5F85\u4E2D","monitoring.idle":"\u7A7A\u95F2","monitoring.unknown":"\u672A\u77E5","monitoring.statusDistribution":"\u72B6\u6001\u5206\u5E03","monitoring.longestRunning":"\u6700\u957F\u8FD0\u884C","monitoring.longestWaiting":"\u6700\u957F\u7B49\u5F85","monitoring.unattributedSessions":"\u672A\u5173\u8054\u8FDB\u7A0B","monitoring.unattributedHint":"\u8FD9\u4E9B live \u4F1A\u8BDD\u5F53\u524D\u6CA1\u6709\u53EF\u9760 PID \u5173\u8054\uFF0C\u65E0\u6CD5\u8BA1\u7B97\u4F1A\u8BDD\u7EA7\u8D44\u6E90\u3002","monitoring.unsupported":"\u5F53\u524D\u5E73\u53F0\u6682\u4E0D\u652F\u6301\u8D44\u6E90\u91C7\u6837\u3002","monitoring.unsupportedKicker":"Linux / macOS only","monitoring.unsupportedTitle":"\u8D44\u6E90\u91C7\u6837\u4EC5\u652F\u6301 Linux / macOS","monitoring.unsupportedHint":"\u5F53\u524D\u5E73\u53F0\u65E2\u6CA1\u6709\u53EF\u8BFB\u7684 /proc \u6570\u636E\uFF0C\u4E5F\u6CA1\u6709 macOS \u7684 ps/vm_stat \u91C7\u6837\u901A\u9053\uFF1B\u8FD0\u884C\u5065\u5EB7\u4ECD\u53EF\u7EE7\u7EED\u67E5\u770B\u3002","monitoring.unsupportedRuntimeOk":"\u8FD0\u884C\u5065\u5EB7\u53EF\u7528","monitoring.unsupportedResourceOnly":"CPU / Memory / RSS \u6682\u505C","monitoring.hostCpu":"CPU","monitoring.hostMemory":"Memory","monitoring.botmuxRss":"Botmux \u5185\u5B58","monitoring.botmuxSelf":"\u672C\u4F53","monitoring.botmuxDaemon":"\u5B88\u62A4","monitoring.botmuxWorker":"worker","monitoring.botmuxCli":"\u5916\u90E8 CLI","monitoring.rssHelpLabel":"\u5185\u5B58\u53E3\u5F84\u8BF4\u660E","monitoring.rssHelp":`\u5185\u5B58\u7528 PSS\uFF08Proportional Set Size\uFF09\uFF1A\u5171\u4EAB\u5185\u5B58\u9875\u6309\u5171\u4EAB\u5B83\u7684\u8FDB\u7A0B\u6570\u5206\u644A\uFF0C\u6240\u4EE5\u591A\u8FDB\u7A0B\u76F8\u52A0\u4E0D\u4F1A\u50CF RSS \u90A3\u6837\u628A\u5171\u4EAB\u7684 Node \u8FD0\u884C\u65F6/\u5E93\u91CD\u590D\u8BA1\u6570\uFF08\u8BFB\u4E0D\u5230 smaps_rollup \u65F6\u56DE\u9000 RSS\uFF09\uFF1BmacOS \u4E0A\u7528\u7B49\u4EF7\u8BED\u4E49\u7684 phys_footprint\uFF08\u5373\u6D3B\u52A8\u76D1\u89C6\u5668\u7684\u300C\u5185\u5B58\u300D\uFF0C\u8BFB\u4E0D\u5230\u65F6\u56DE\u9000 RSS\uFF09\u3002
|
|
2
2
|
\u8FD9\u662F\u300CBotmux \u5168\u5BB6\u6876\u300D\u603B\u548C\uFF0C\u62C6\u5206\uFF1A\u672C\u4F53 = \u5B88\u62A4\u8FDB\u7A0B + \u5404\u4F1A\u8BDD\u7684 botmux worker\uFF08\u81EA\u6709\u4EE3\u7801\uFF09\uFF1B\u5916\u90E8 CLI = Claude/Codex \u7B49 CLI \u53CA\u5176\u5DE5\u5177\u5B50\u8FDB\u7A0B\uFF0C\u901A\u5E38\u5360\u5927\u5934\u3002
|
|
3
3
|
\u9002\u5408\u5224\u65AD\u5185\u5B58\u70ED\u70B9\u3001\u6301\u7EED\u4E0A\u6DA8\u8D8B\u52BF\u548C\u5F02\u5E38\u5360\u7528\u3002`,"monitoring.trackedSessions":"\u8D8B\u52BF\u4F1A\u8BDD","monitoring.currentSessions":"\u5F53\u524D\u4F1A\u8BDD","monitoring.memoryOnly":"\u8D8B\u52BF\u4EC5\u4FDD\u5B58\u5728\u5185\u5B58\u4E2D\uFF0C\u91CD\u542F\u540E\u6E05\u7A7A","monitoring.trends":"\u8D8B\u52BF","monitoring.trendsHint":"Host \u4E0E Botmux \u805A\u5408\u4FDD\u7559 24h\uFF1B\u4F1A\u8BDD\u5386\u53F2\u53EA\u4FDD\u7559 Top \u96C6\u5408\u3002","monitoring.trendHostCpu":"Host CPU","monitoring.trendHostMemory":"Host Memory","monitoring.trendBotmuxCpu":"Botmux CPU","monitoring.chartNow":"now","monitoring.chartNoData":"no data","monitoring.chartMinutesAgo":"{value} \u5206\u949F\u524D","monitoring.chartHoursAgo":"{value} \u5C0F\u65F6\u524D","monitoring.chartDaysAgo":"{value} \u5929\u524D","monitoring.bots":"\u673A\u5668\u4EBA","monitoring.botsHint":"\u805A\u5408\u5305\u542B daemon \u81EA\u8EAB\u4E0E\u8BE5 bot \u7684\u5168\u90E8\u5F53\u524D\u4F1A\u8BDD\u3002","monitoring.sessions":"\u4F1A\u8BDD","monitoring.sessionsHint":"\u6240\u6709 live \u4F1A\u8BDD\u90FD\u6709\u5F53\u524D\u503C\uFF0C\u53EA\u6709 Top \u4F1A\u8BDD\u4FDD\u7559\u5386\u53F2\u66F2\u7EBF\u3002","monitoring.trackedSessionTrends":"Top \u4F1A\u8BDD\u8D8B\u52BF","monitoring.trackedSessionHint":"\u8FD9\u662F\u5386\u53F2\u4FDD\u7559\u96C6\u5408\uFF0C\u4E0D\u4EE3\u8868\u5168\u91CF\u4F1A\u8BDD\u8303\u56F4\u3002","monitoring.modalClose":"\u5173\u95ED","monitoring.noTrackedHistory":"\u6682\u65E0 Top \u4F1A\u8BDD\u5386\u53F2\u3002","monitoring.noHotSession":"\u6682\u65E0\u70ED\u70B9\u4F1A\u8BDD","monitoring.hottest":"\u70ED\u70B9","monitoring.sort":"\u6392\u5E8F","monitoring.sort.cpu":"CPU","monitoring.sort.rss":"RSS","monitoring.sort.growth":"\u589E\u957F","monitoring.sort.bot":"Bot","monitoring.sort.status":"\u72B6\u6001","monitoring.bot":"Bot","monitoring.cpu":"CPU","monitoring.rss":"RSS","monitoring.growth":"\u589E\u957F","monitoring.daemon":"Daemon","monitoring.sessionsCount":"\u4F1A\u8BDD\u6570","monitoring.session":"\u4F1A\u8BDD","monitoring.confidence":"\u5F52\u56E0","monitoring.rank":"\u5165\u9009\u539F\u56E0","sessions.title":"\u4F1A\u8BDD\u63A7\u5236","sessions.search":"\u641C\u7D22\u7FA4\u804A / \u5DE5\u4F5C\u76EE\u5F55 / \u6807\u9898 / ID","sessions.anyStatus":"\u5168\u90E8\u72B6\u6001","sessions.filters.title":"\u7B5B\u9009","sessions.filters.clear":"\u6E05\u9664\u7B5B\u9009","sessions.filters.done":"\u5B8C\u6210","sessions.more":"\u66F4\u591A","sessions.terminal":"\u7EC8\u7AEF","sessions.cardMenu":"\u66F4\u591A\u64CD\u4F5C","sessions.view.need":"\u5F85\u5904\u7406","sessions.view.work":"\u8FDB\u884C\u4E2D","sessions.view.all":"\u5168\u90E8","sessions.sort":"\u6392\u5E8F","sessions.sort.lastMessageAt":"\u6700\u8FD1\u6D88\u606F","sessions.sort.spawnedAt":"\u521B\u5EFA\u65F6\u95F4","sessions.sort.title":"\u6807\u9898","sessions.sort.status":"\u72B6\u6001","sessions.takeoverTerminal":"\u63A5\u7BA1\u7EC8\u7AEF","sessions.loadingSessions":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u2026","sessions.adoptAny":"\u6765\u6E90\uFF1A\u5168\u90E8","sessions.adoptYes":"\u6765\u6E90\uFF1A\u5916\u90E8\u63A5\u5165 (/adopt)","sessions.adoptNo":"\u6765\u6E90\uFF1A\u98DE\u4E66\u539F\u751F","sessions.chatAny":"\u6240\u5728\u804A\u5929\uFF1A\u5168\u90E8","sessions.chatSearch":"\u641C\u7D22\u804A\u5929\u2026","sessions.chatNoMatch":"\u65E0\u5339\u914D\u7684\u804A\u5929","sessions.cliSearch":"\u641C\u7D22 CLI\u2026","sessions.cliSelectAll":"\u5168\u9009","sessions.cliClear":"\u6E05\u7A7A","sessions.cliNoMatch":"\u65E0\u5339\u914D\u7684 CLI","sessions.multiBotTopics":"\u591A Bot \u8BDD\u9898","sessions.botTriggeredTopics":"Bot \u5524\u9192\u8BDD\u9898\uFF08\u63A8\u65AD\uFF09","sessions.showUnknownChats":"\u663E\u793A\u672A\u77E5\u804A\u5929","sessions.activeOnly":"\u4EC5\u6D3B\u8DC3","sessions.runtime.logical":"\u53EF\u7EE7\u7EED\u4F1A\u8BDD","sessions.runtime.resident":"\u5E38\u9A7B\u4F1A\u8BDD","sessions.runtime.dormant":"\u4F11\u7720\u4F1A\u8BDD","sessions.monitorRoom":"\u76D1\u63A7\u5BA4","sessions.addToMonitorRoom":"\u6DFB\u52A0\u5230\u76D1\u63A7\u5BA4","sessions.monitorRoomAdded":"\u5DF2\u6DFB\u52A0 {added} \u4E2A\uFF0C\u603B\u8BA1 {total} \u4E2A","sessions.closeSelected":"\u5173\u95ED\u9009\u4E2D","sessions.clearSelection":"\u53D6\u6D88\u9009\u62E9","sessions.selectedCount":"\u5DF2\u9009 {count} \u4E2A\u4F1A\u8BDD","sessions.idleCleanupOlderThan":"\u7A7A\u95F2\u8D85\u8FC7","sessions.idleCleanupThreshold":"\u7A7A\u95F2\u6E05\u7406\u9608\u503C","sessions.idleCleanupRun":"\u6E05\u7406\u7A7A\u95F2","sessions.idleCleanupCount":"\u53EF\u6E05\u7406 {count} \u4E2A","sessions.idleCleanupCancel":"\u53D6\u6D88","sessions.idleCleanupApply":"\u786E\u5B9A","sessions.idleCleanupRunning":"\u6E05\u7406\u4E2D\u2026","sessions.idleCleanupDone":"\u5DF2\u5173\u95ED {closed} \u4E2A\uFF0C\u5931\u8D25 {failed} \u4E2A","sessions.idleCleanupFailed":"\u6E05\u7406\u5931\u8D25","sessions.lock":"\u9501\u5B9A\u4F1A\u8BDD","sessions.unlock":"\u89E3\u9501\u4F1A\u8BDD","sessions.locked":"\u9501\u5B9A","sessions.lockSelected":"\u9501\u5B9A\u9009\u4E2D","sessions.unlockSelected":"\u89E3\u9501\u9009\u4E2D","sessions.lockFailed":"\u9501\u5B9A\u72B6\u6001\u66F4\u65B0\u5931\u8D25","sessions.columnsReset":"\u91CD\u7F6E","sessions.columnsMenu":"\u663E\u793A\u5217","sessions.columns":"\u5217","sessions.bot":"bot","sessions.cli":"CLI","sessions.chat":"\u7FA4\u804A","sessions.location":"\u6240\u5728\u804A\u5929","sessions.groupChat":"\u7FA4\u804A","sessions.directChat":"\u5355\u804A","sessions.chatUnknown":"\u672A\u77E5\u804A\u5929","sessions.openChat":"\u6253\u5F00\u7FA4\u804A","sessions.status":"\u72B6\u6001","sessions.status.starting":"\u542F\u52A8\u4E2D","sessions.status.working":"\u5DE5\u4F5C\u4E2D","sessions.status.idle":"\u7A7A\u95F2","sessions.status.dormant":"\u4F11\u7720","sessions.status.analyzing":"\u5206\u6790\u4E2D","sessions.status.stalled":"\u957F\u65F6\u95F4\u65E0\u8FDB\u5C55","sessions.status.active":"\u6D3B\u52A8\u4E2D","sessions.status.limited":"\u9650\u989D\u5DF2\u8FBE","sessions.status.closed":"\u5DF2\u5173\u95ED","sessions.status.unknown":"\u672A\u77E5","sessions.tokenIn":"Token In","sessions.tokenOut":"Token Out","sessions.titleCol":"\u6807\u9898","sessions.workingDir":"\u5DE5\u4F5C\u76EE\u5F55","sessions.created":"\u521B\u5EFA","sessions.last":"\u6700\u8FD1","sessions.preview.latestExchange":"\u6700\u8FD1\u95EE\u7B54","sessions.preview.showFull":"\u67E5\u770B\u5B8C\u6574\u95EE\u7B54","sessions.adopt":"\u63A5\u5165","sessions.actions":"\u64CD\u4F5C","sessions.details":"\u8BE6\u60C5","sessions.copy":"\u590D\u5236","sessions.copied":"\u5DF2\u590D\u5236","sessions.locate":"\u5B9A\u4F4D\u8BDD\u9898","sessions.locating":"\u53D1\u9001\u4E2D...","sessions.cooldown":"\u51B7\u5374 {seconds}s","sessions.openTerminal":"\u7EC8\u7AEF","sessions.openReadonlyTerminal":"\u6253\u5F00\u53EA\u8BFB\u7EC8\u7AEF","sessions.openWritableTerminal":"\u6253\u5F00\u53EF\u64CD\u4F5C Web \u7EC8\u7AEF","sessions.writeLink":"\u64CD\u4F5C\u94FE\u63A5","sessions.writeLinkHint":"\u83B7\u53D6\u53EF\u64CD\u4F5C\u7EC8\u7AEF\u94FE\u63A5\uFF08\u5E26\u5199\u6743\u9650 token\uFF0C\u65B0\u6807\u7B7E\u6253\u5F00\uFF09","sessions.writeLinkFail":"\u83B7\u53D6\u64CD\u4F5C\u94FE\u63A5\u5931\u8D25","sessions.copyCommand":"\u590D\u5236\u590D\u73B0\u547D\u4EE4","sessions.copyCommandHint":"\u590D\u5236\u8BE5\u4F1A\u8BDD\u51B7\u542F\u52A8\u7684\u8FD1\u4F3C\u590D\u73B0\u547D\u4EE4\uFF08bin+\u53C2\u6570+\u5173\u952Eenv\uFF0C\u7701\u7565\u6C99\u7BB1\u5305\u88C5\uFF09\uFF0C\u7C98\u5230\u8C03\u8BD5\u7EC8\u7AEF\u6539\u53C2\u6570\u590D\u73B0\u3002\u542B token/\u51ED\u8BC1\uFF0C\u6CE8\u610F\u4FDD\u5BC6","sessions.copyCommandDone":"\u5DF2\u590D\u5236","sessions.copyCommandFail":"\u83B7\u53D6\u590D\u73B0\u547D\u4EE4\u5931\u8D25","sessions.debugTerminal":"\u8C03\u8BD5\u7EC8\u7AEF","sessions.debugTerminalHint":"\u6253\u5F00\u4E00\u4E2A\u4E0D\u7ED1\u8BDD\u9898\u7684\u4E34\u65F6\u7EC8\u7AEF\uFF0C\u7C98\u8D34\u590D\u73B0\u547D\u4EE4\u6392\u67E5\u95EE\u9898\uFF08\u4EC5\u7BA1\u7406\u5458\uFF09","sessions.debugTerminalPrompt":"\u8C03\u8BD5\u7EC8\u7AEF\u7684\u5DE5\u4F5C\u76EE\u5F55\uFF08\u7559\u7A7A\u5219\u7528\u4F1A\u8BDD\u9ED8\u8BA4\u76EE\u5F55\uFF09\uFF1A","sessions.debugTerminalFail":"\u6253\u5F00\u8C03\u8BD5\u7EC8\u7AEF\u5931\u8D25","sessions.close":"\u5173\u95ED\u4F1A\u8BDD","sessions.restart":"\u91CD\u542F CLI","sessions.restartConfirmIntro":"\u51C6\u5907\u91CD\u542F\u5F53\u524D CLI\u3002","sessions.restartConfirmStatus":"\u5F53\u524D\u72B6\u6001","sessions.restartConfirmCli":"CLI","sessions.restartConfirmQuestion":"\u786E\u8BA4\u91CD\u542F\u8FD9\u4E2A CLI\uFF1F","sessions.restartFailed":"\u91CD\u542F\u5931\u8D25","sessions.resume":"\u6062\u590D\u4F1A\u8BDD","sessions.dismiss":"\u5173\u95ED","sessions.closeConfirm":"\u5173\u95ED\u8FD9\u4E2A\u4F1A\u8BDD\uFF1F","sessions.resumeFailed":"\u6062\u590D\u5931\u8D25","sessions.insight":"\u6D1E\u5BDF","sessions.insightLoading":"\u5206\u6790\u4E2D\u2026","sessions.insightUnavailable":"\u65E0\u6CD5\u5206\u6790","sessions.insightEmpty":"\u672C\u4F1A\u8BDD\u8FD8\u6CA1\u6709\u53EF\u5206\u6790\u7684\u5DE5\u5177 span\u3002","sessions.insightMetrics":"span {total} \xB7 \u5931\u8D25 {failed} \xB7 \u6162 {slow} \xB7 \u8BFB\u6539\u6BD4 {rw} \xB7 \u538B\u7F29 {compactions}","sessions.insightSuggestions":"\u5EFA\u8BAE","sessions.insightSpans":"\u52A8\u4F5C span","sessions.insightCapped":"\u4EC5\u663E\u793A\u524D {shown}/{total} \u6761","sessions.insightAsOf":"\u622A\u81F3 {asOf}","sessions.insightPartial":"\uFF08\u53EF\u80FD\u4E0D\u542B\u8FDB\u884C\u4E2D\u7684\u6700\u65B0\u4E00\u8F6E\uFF09","monitorRoom.eyebrow":"\u76D1\u63A7\u5BA4","monitorRoom.title":"\u4F1A\u8BDD\u76D1\u63A7\u5BA4","monitorRoom.subtitle":"\u628A\u591A\u4E2A\u4F1A\u8BDD\u7684 Web Terminal \u653E\u5728\u540C\u4E00\u4E2A\u9875\u9762\u91CC\uFF0C\u9002\u5408\u957F\u65F6\u95F4\u89C2\u5BDF\u591A\u8DEF\u4EFB\u52A1\u8FDB\u5C55\u3002","monitorRoom.backToSessions":"\u8FD4\u56DE\u4F1A\u8BDD","monitorRoom.clear":"\u6E05\u7A7A","monitorRoom.clearConfirm":"\u6E05\u7A7A\u76D1\u63A7\u5BA4\u91CC\u7684\u6240\u6709\u4F1A\u8BDD\uFF1F","monitorRoom.summary":"\u5171 {count} \u4E2A\u4F1A\u8BDD\uFF0C{live} \u4E2A\u7EC8\u7AEF\u53EF\u7528","monitorRoom.autoActive":"\u7A7A\u5217\u8868\u663E\u793A\u6D3B\u8DC3\u4F1A\u8BDD","monitorRoom.autoActiveHelp":"\u9ED8\u8BA4\u5173\u95ED\uFF1B\u5F00\u542F\u540E\uFF0C\u5982\u679C\u6CA1\u6709\u624B\u52A8\u6DFB\u52A0\u4F1A\u8BDD\uFF0C\u76D1\u63A7\u5BA4\u4F1A\u81EA\u52A8\u663E\u793A\u4F1A\u8BDD\u9875\u201C\u4EC5\u6D3B\u8DC3\u201D\u7B5B\u9009\u5F97\u5230\u7684\u6240\u6709\u4F1A\u8BDD\u3002","monitorRoom.autoSummary":"\u672A\u624B\u52A8\u6DFB\u52A0\u4F1A\u8BDD\uFF0C\u81EA\u52A8\u663E\u793A {count} \u4E2A\u6D3B\u8DC3\u4F1A\u8BDD\uFF0C{live} \u4E2A\u7EC8\u7AEF\u53EF\u7528","monitorRoom.emptySummary":"\u76D1\u63A7\u5BA4\u4E3A\u7A7A","monitorRoom.emptyTitle":"\u8FD8\u6CA1\u6709\u6DFB\u52A0\u4F1A\u8BDD","monitorRoom.emptyHelp":"\u56DE\u5230\u4F1A\u8BDD\u9875\uFF0C\u9009\u4E2D\u4F1A\u8BDD\u540E\u70B9\u51FB\u201C\u6DFB\u52A0\u5230\u76D1\u63A7\u5BA4\u201D\u3002","monitorRoom.autoEmptyTitle":"\u6682\u65E0\u6D3B\u8DC3\u4F1A\u8BDD","monitorRoom.autoEmptyHelp":"\u81EA\u52A8\u663E\u793A\u5DF2\u5F00\u542F\uFF0C\u4F46\u5F53\u524D\u6CA1\u6709\u7B26\u5408\u201C\u4EC5\u6D3B\u8DC3\u201D\u6761\u4EF6\u7684\u4F1A\u8BDD\u3002","monitorRoom.openSessions":"\u6253\u5F00\u4F1A\u8BDD\u9875","monitorRoom.remove":"\u79FB\u9664","monitorRoom.openTerminal":"\u6253\u5F00\u5355\u72EC\u7EC8\u7AEF","monitorRoom.closePopover":"\u5173\u95ED\u6D6E\u5C42","monitorRoom.missing":"\u5F53\u524D\u5217\u8868\u4E2D\u4E0D\u5B58\u5728","monitorRoom.missingHelp":"\u8FD9\u4E2A\u4F1A\u8BDD\u53EF\u80FD\u5DF2\u7ECF\u88AB\u6E05\u7406\uFF0C\u6216\u5F53\u524D dashboard \u5FEB\u7167\u8FD8\u6CA1\u6709\u52A0\u8F7D\u5230\u5B83\u3002","monitorRoom.terminalUnavailable":"\u6682\u65E0\u53EF\u7528\u7EC8\u7AEF","monitorRoom.terminalUnavailableHelp":"\u4F1A\u8BDD\u53EF\u80FD\u5DF2\u5173\u95ED\u3001\u8FD8\u672A\u542F\u52A8 Web Terminal\uFF0C\u6216\u5F53\u524D\u8BBF\u95EE\u65B9\u5F0F\u4E0B\u6CA1\u6709\u53EF\u7528\u4EE3\u7406\u7AEF\u53E3\u3002","monitorRoom.updated":"\u66F4\u65B0 {time}","nav.insights":"\u6570\u636E\u6D1E\u5BDF","insights.title":"\u6570\u636E\u6D1E\u5BDF","insights.refresh":"\u5237\u65B0","insights.search":"\u641C\u7D22\u4F1A\u8BDD / bot / \u76EE\u5F55\u2026","insights.filter":"\u7B5B\u9009","insights.filterAll":"\u5168\u90E8","insights.filterAllSessions":"\u5168\u90E8\u4F1A\u8BDD","insights.filterAllCli":"\u5168\u90E8 CLI","insights.filterReview":"\u503C\u5F97\u590D\u76D8","insights.filterFailed":"\u6709\u5931\u8D25","insights.filterSlow":"\u6709\u6162 span","insights.loading":"\u5206\u6790\u4E2D\u2026","insights.loaded":"\u5DF2\u52A0\u8F7D {count} \u4E2A\u4F1A\u8BDD","insights.unavailable":"\u52A0\u8F7D\u5931\u8D25","insights.listCount":"\u663E\u793A {shown}/{total}","insights.tabOverview":"\u603B\u89C8","insights.tabSessions":"\u4F1A\u8BDD","insights.tabDist":"\u5206\u5E03","insights.tabHot":"\u70ED\u70B9","insights.projectAll":"\u5168\u90E8\u9879\u76EE","insights.timeAll":"\u5168\u90E8\u65F6\u95F4","insights.time1d":"\u8FD1 1 \u5929","insights.time7d":"\u8FD1 7 \u5929","insights.time30d":"\u8FD1 30 \u5929","insights.clear":"\u6E05\u9664","insights.emptyAnalyzableHint":"\u52FE\u9009\u300C\u542B\u672A\u5206\u6790\u300D\u53EF\u67E5\u770B\u5176\u4F59\u4F1A\u8BDD","insights.showAll":"\u542B\u672A\u5206\u6790","insights.distHint":"\u5F53\u524D\u7B5B\u9009\u4E0B\u5404\u4F1A\u8BDD\u7684\u6307\u6807\u5206\u5E03\u2014\u2014\u770B\u8D70\u52BF\u3001\u770B\u5178\u578B\u503C\u843D\u5728\u54EA\u3002","insights.distSpans":"\u6BCF\u4F1A\u8BDD span \u6570","insights.distFailed":"\u6BCF\u4F1A\u8BDD\u5931\u8D25\u6570","insights.distSlow":"\u6BCF\u4F1A\u8BDD\u6162 span","insights.distAgentTime":"agent \u5DE5\u4F5C\u65F6\u957F","insights.distRw":"\u8BFB\u6539\u6BD4","insights.distChurn":"\u4EE3\u7801\u6539\u52A8\u884C\u6570","insights.distTrend":"\u6309\u5929\u8D8B\u52BF\uFF08\u8FD1 4 \u5468\uFF09","insights.distTrendSub":"\u6BCF\u65E5\u4F1A\u8BDD\u6570","insights.distMedian":"\u4E2D\u4F4D {v}","insights.distEmpty":"\u5F53\u524D\u7B5B\u9009\u4E0B\u6CA1\u6709\u53EF\u5206\u6790\u7684\u4F1A\u8BDD\u3002","insights.disclosure":`\u53E3\u5F84\uFF1A\u8017\u65F6\u53EA\u7B97\u5DE5\u5177\u6267\u884C\u65F6\u95F4\uFF0C\u5DF2\u5254\u9664\u7B49\u7528\u6237\u56DE\u590D\uFF08\u95EE\u7B54/\u8BA1\u5212\u786E\u8BA4\uFF09\u7684\u6302\u673A\u65F6\u957F\uFF0C\u6545\u4E0D\u53CD\u6620\u5899\u949F\u65F6\u957F\uFF1B
|
|
4
4
|
Codex \u4F1A\u8BDD\u7684\u300C\u8BFB\u300D\u591A\u8D70 shell\uFF08exec_command\uFF09\uFF0C\u4E0D\u8BA1\u5165\u300C\u8BFB\u300D\u76F8\uFF0C\u6545\u5176\u8BFB\u6539\u6BD4\u4F1A\u504F\u4F4E\u751A\u81F3\u4E3A 0\uFF1B
|
|
@@ -24,7 +24,7 @@ ou_xxxx\uFF08\u4E5F\u53EF\u76F4\u63A5\u586B open_id / union_id\uFF09`,"botDefaul
|
|
|
24
24
|
}`,"botDefaults.envSave":"\u4FDD\u5B58\u73AF\u5883\u53D8\u91CF","botDefaults.sectionRiff":"Riff \u540E\u7AEF\u914D\u7F6E","botDefaults.riffHelp":"\u914D\u7F6E riff \u670D\u52A1\u7684\u8FDE\u63A5\u53C2\u6570\uFF0C\u4E0B\u4E2A\u65B0\u4F1A\u8BDD\u751F\u6548\u3002agent \u56FA\u5B9A\u4E3A codex\uFF08riff \u670D\u52A1\u7AEF\u5DF2\u4E0B\u7EBF\u5176\u5B83 runner\uFF09\u3002\u8BA4\u8BC1\uFF1A\u9ED8\u8BA4\u81EA\u52A8\u8BFB\u53D6\u672C\u673A ByteCloud keychain \u7684 JWT\uFF08\u767B\u5F55\u8FC7 kaboo-cli / aiden-cli / cjadk / bytedcli \u4EFB\u4E00\u5373\u53EF\uFF0C\u8DE8\u5E73\u53F0\u81EA\u52A8\u63A2\u6D4B\u5404\u5DE5\u5177\u5B58\u50A8\u76EE\u5F55\uFF09\uFF0C\u65B0\u673A\u5668\u53EA\u9700\u767B\u5F55\u4E00\u6B21\uFF1B\u4E5F\u53EF\u7528\u300CJWT \u73AF\u5883\u53D8\u91CF\u300D\u6307\u5B9A\u3002\u4ED3\u5E93\uFF1A\u81EA\u52A8\u590D\u7528\u4F1A\u8BDD\u5DE5\u4F5C\u76EE\u5F55\uFF08\u542B\u4ED3\u5E93\u9009\u62E9\u5361 / \u4EC5\u9ED8\u8BA4\u76EE\u5F55 / Oncall \u76EE\u5F55\uFF09\u7684 git \u4ED3\u5E93\u4E0E\u5F53\u524D\u5206\u652F\uFF0C\u65E0\u9700\u5355\u72EC\u914D\u7F6E\u3002","botDefaults.riffBaseUrl":"Base URL","botDefaults.riffBaseUrlPlaceholder":"https://riff.example.com","botDefaults.riffSandboxCluster":"\u8FD0\u884C\u73AF\u5883","botDefaults.riffSandboxClusterHelp":"\u9009\u62E9\u65B0\u4EFB\u52A1\u4F7F\u7528\u7684\u6C99\u7BB1\u8D44\u6E90\u6C60\uFF1ABOE \u652F\u6301\u8BBF\u95EE\u5185\u7F51\uFF0C\u9002\u5408\u5F00\u53D1\u3001\u8054\u8C03\u548C\u6392\u969C\uFF1BCN \u4F7F\u7528 CN \u8D44\u6E90\u7EC4\u3002\u8BE5\u9009\u9879\u4E0E Base URL\uFF08Riff \u670D\u52A1\u73AF\u5883\uFF09\u76F8\u4E92\u72EC\u7ACB\uFF1B\u672A\u914D\u7F6E\u65F6\u670D\u52A1\u7AEF\u9ED8\u8BA4 BOE\u3002","botDefaults.riffReasoningEffort":"\u601D\u8003\u7B49\u7EA7","botDefaults.riffReasoningEffortDefault":"\u9ED8\u8BA4\uFF08medium\uFF09","botDefaults.riffReasoningEffortHelp":"codex \u7684\u63A8\u7406\u5F3A\u5EA6\uFF08model_reasoning_effort\uFF09\uFF0C\u5199\u5165\u6C99\u7BB1\u914D\u7F6E\u3002\u7559\u7A7A\u8DDF\u968F riff \u9ED8\u8BA4 medium\uFF1Bxhigh \u6700\u5F3A\u4F46\u66F4\u6162\u66F4\u8D35\u3002","botDefaults.riffModel":"\u6A21\u578B","botDefaults.riffModelPlaceholder":"\uFF08\u53EF\u9009\uFF09\u7559\u7A7A\u4F7F\u7528 riff \u9ED8\u8BA4\u6A21\u578B\uFF08\u63A8\u8350\uFF09","botDefaults.riffModelHelp":"riff \u4EFB\u52A1\u7684\u6A21\u578B\u540D\u3002\u7559\u7A7A\u4F7F\u7528 riff \u9ED8\u8BA4\uFF08gpt-5.5\uFF09\uFF1B\u4EC5\u63A5\u53D7 riff \u652F\u6301\u6E05\u5355\u5185\u7684\u503C\uFF0C\u975E\u6CD5\u540D\u5B57\u4F1A\u521B\u5EFA\u5931\u8D25\u5E76\u56DE\u663E\u5B8C\u6574\u6E05\u5355\u3002","botDefaults.riffJwtEnv":"JWT \u73AF\u5883\u53D8\u91CF","botDefaults.riffJwtEnvPlaceholder":"RIFF_JWT","botDefaults.riffSystemPrompt":"System Prompt","botDefaults.riffSystemPromptPlaceholder":"\uFF08\u53EF\u9009\uFF09\u6CE8\u5165\u5230 riff \u4EFB\u52A1\u7684\u7CFB\u7EDF\u63D0\u793A\u8BCD\uFF1B\u4E0D\u586B\u5219\u4F7F\u7528\u5185\u7F6E\u9ED8\u8BA4\u503C","botDefaults.riffSetupCommands":"\u989D\u5916\u521D\u59CB\u5316\u547D\u4EE4","botDefaults.riffSetupCommandsPlaceholder":"\uFF08\u53EF\u9009\uFF09\u6BCF\u884C\u4E00\u6761 shell \u547D\u4EE4\uFF0C\u5728 agent \u5F00\u59CB\u5DE5\u4F5C\u524D\u6267\u884C\u3002botmux \u4F1A\u81EA\u52A8\u5B89\u88C5\uFF0C\u65E0\u9700\u624B\u52A8\u6DFB\u52A0\u3002","botDefaults.riffJwtEnvHelp":"\u5B58\u653E JWT \u4EE4\u724C\u7684\u73AF\u5883\u53D8\u91CF\u540D\u3002botmux \u542F\u52A8\u65F6\u4ECE\u8BE5\u53D8\u91CF\u8BFB\u53D6\u4EE4\u724C\u7528\u4E8E\u8C03\u7528 riff API\uFF1B\u4E5F\u53EF\u7559\u7A7A\u4F7F\u7528 ByteCloud keychain \u81EA\u52A8\u83B7\u53D6\u3002","botDefaults.riffCliPersistFailed":"\u5207\u6362\u5230 Riff \u672A\u80FD\u4FDD\u5B58\uFF08CLI \u9009\u62E9\u6301\u4E45\u5316\u5931\u8D25\uFF09\uFF0C\u8BF7\u91CD\u8BD5","botDefaults.riffSave":"\u4FDD\u5B58 Riff \u914D\u7F6E","nav.roles":"\u89D2\u8272\u7BA1\u7406","nav.groupRoles":"\u7FA4\u89D2\u8272","nav.roleProfiles":"Profiles","roles.title":"\u89D2\u8272\u7BA1\u7406","roleProfiles.title":"Profiles","roles.search":"\u641C\u7D22\u7FA4\u540D/Bot/ID","roles.refresh":"\u5237\u65B0","roles.selectHint":"\u2190 \u5C55\u5F00\u7FA4\u7EC4\uFF0C\u9009\u62E9\u4E00\u4E2A Bot \u6765\u7F16\u8F91\u89D2\u8272","roles.editorPlaceholder":`\u8F93\u5165\u89D2\u8272\u63CF\u8FF0\uFF0C\u4F8B\u5982\uFF1A
|
|
25
25
|
\u4F60\u662F\u672C\u7FA4\u7684\u6280\u672F\u987E\u95EE\uFF0C\u8D1F\u8D23\u56DE\u7B54\u6240\u6709\u6280\u672F\u95EE\u9898...`,"roles.injectModeLabel":"\u6CE8\u5165\u65B9\u5F0F","roles.injectModeEvery":"\u6BCF\u8F6E\u6CE8\u5165\uFF08\u9ED8\u8BA4\uFF09","roles.injectModeOnce":"\u4EC5\u9996\u8F6E\u6CE8\u5165\u4E00\u6B21","roles.injectModeHint":"\u300C\u4EC5\u4E00\u6B21\u300D\u53EA\u5728\u4F1A\u8BDD\u5F00\u59CB/\u91CD\u5EFA\u65F6\u6CE8\u5165\u89D2\u8272\uFF0C\u4E4B\u540E\u4E0D\u518D\u91CD\u590D\uFF0C\u7701 token\uFF1B\u6539\u52A8\u5373\u65F6\u4FDD\u5B58","roles.dispatchCompletionLabel":"\u8BDD\u9898\u4EFB\u52A1\u56DE\u62A5\u65B9\u5F0F","roles.dispatchCompletionEnabled":"\u989D\u5916\u4F7F\u7528 botmux send \u539F\u8BDD\u9898\u7559\u6863","roles.dispatchCompletionHint":"\u9ED8\u8BA4\u5173\u95ED\uFF1B\u5F00\u542F\u540E\uFF0C\u672C Bot \u5728\u6B64\u7FA4\u6D3E\u53D1\u7684\u4EFB\u52A1\u4ECD\u4F7F\u7528 botmux report \u56DE\u6CE8\u4E3B\u7F16\u6392\u4F1A\u8BDD\uFF0C\u540C\u65F6\u989D\u5916\u5728\u6536\u5230\u4EFB\u52A1\u7684\u539F\u8BDD\u9898\u7528 botmux send \u7559\u4E00\u4EFD\u6700\u7EC8\u4EA4\u4ED8\uFF1B\u6539\u52A8\u5373\u65F6\u4FDD\u5B58","roles.configured":"\u5DF2\u914D\u7F6E","roles.unconfigured":"\u672A\u914D\u7F6E","roles.noChats":"\u6682\u65E0\u7FA4\u7EC4","roles.preview":"\u9884\u89C8","roles.previewEmpty":"\uFF08\u7A7A\u5185\u5BB9\uFF09","roles.saved":"\u5DF2\u4FDD\u5B58","roles.delete":"\u5220\u9664","roles.save":"\u4FDD\u5B58","roles.confirmDelete":"\u786E\u8BA4\u5220\u9664\u8BE5 Bot \u5728\u6B64\u7FA4\u7684\u89D2\u8272\u914D\u7F6E\uFF1F","roles.botsWithRoles":"\u4E2A Bot \u5DF2\u914D\u7F6E\u89D2\u8272","roles.emptyError":"\u89D2\u8272\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u5148\u8F93\u5165\u5185\u5BB9","roles.saveFailed":"\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","roles.tabGroups":"\u6309\u7FA4\u7EC4","roles.tabProfiles":"Profiles","roles.editorTabs":"\u89D2\u8272\u914D\u7F6E","roles.roleTab":"\u89D2\u8272\u63D0\u793A\u8BCD","roles.listenerTab":"\u6D88\u606F\u76D1\u542C","roles.listenerBadge":"\u76D1\u542C","roles.listenerEnabled":"\u542F\u7528\u7FA4\u6D88\u606F\u76D1\u542C","roles.listenerName":"\u76D1\u542C\u540D\u79F0","roles.listenerNamePlaceholder":"\u4F8B\u5982\uFF1A\u544A\u8B66\u76D1\u542C","roles.listenerReplyCardTitle":"\u56DE\u590D\u5361\u7247\u6807\u9898","roles.listenerReplyCardTitlePlaceholder":"\u7559\u7A7A\u4F7F\u7528\u9ED8\u8BA4\u6807\u9898","roles.listenerWorkingDir":"\u5DE5\u4F5C\u76EE\u5F55","roles.listenerWorkingDirPlaceholder":"\u7559\u7A7A\u4F7F\u7528 Bot \u9ED8\u8BA4\u5DE5\u4F5C\u76EE\u5F55","roles.listenerSenderTypes":"\u53D1\u9001\u8005\u7C7B\u578B","roles.listenerSenderUser":"\u7528\u6237","roles.listenerSenderBot":"\u673A\u5668\u4EBA","roles.listenerMessageTypes":"\u6D88\u606F\u7C7B\u578B","roles.listenerExcludeSelf":"\u6392\u9664\u5F53\u524D\u673A\u5668\u4EBA","roles.listenerContentPolicy":"\u5185\u5BB9\u8FC7\u6EE4\uFF08\u53EF\u9009\uFF09","roles.listenerKeywords":"\u5173\u952E\u8BCD","roles.listenerKeywordsPlaceholder":"\u9017\u53F7\u6216\u6362\u884C\u5206\u9694\uFF0C\u5982\uFF1A\u62A5\u9519,500","roles.listenerMatchMode":"\u5339\u914D\u65B9\u5F0F","roles.listenerMatchModeAny":"\u4EFB\u4E00\u547D\u4E2D","roles.listenerMatchModeAll":"\u5168\u90E8\u547D\u4E2D","roles.listenerContentPolicyHelp":"\u7559\u7A7A = \u5339\u914D\u6240\u6709\u6D88\u606F\uFF1B\u914D\u7F6E\u540E\u4EC5\u547D\u4E2D\u7684\u6D88\u606F\u624D\u5524\u9192 Agent\u3002\u5173\u952E\u8BCD\u4E3A\u5927\u5C0F\u5199\u4E0D\u654F\u611F\u5B50\u4E32\u5339\u914D\u3002","roles.listenerPrompt":"\u76D1\u542C\u63D0\u793A\u8BCD","roles.listenerPromptPlaceholder":"\u63CF\u8FF0\u54EA\u4E9B\u7FA4\u6D88\u606F\u9700\u8981\u5904\u7406\uFF0C\u4EE5\u53CA\u5982\u4F55\u56DE\u590D\u3002\u547D\u4E2D\u7684\u6D88\u606F\u4F1A\u5728\u539F\u6D88\u606F\u4E0B\u65B9\u65B0\u5EFA\u8BDD\u9898\u56DE\u590D\u3002","roles.listenerPromptRequired":"\u542F\u7528\u76D1\u542C\u65F6\u63D0\u793A\u8BCD\u4E0D\u80FD\u4E3A\u7A7A","roles.listenerSenderRequired":"\u542F\u7528\u76D1\u542C\u65F6\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u53D1\u9001\u8005","roles.listenerSenderMode":"\u5339\u914D\u6A21\u5F0F","roles.listenerSenderModeInclude":"\u4EC5\u76D1\u542C\u6240\u9009","roles.listenerSenderModeAllExcept":"\u76D1\u542C\u5168\u90E8\uFF08\u9664\u6392\u9664\u9879\uFF09","roles.listenerSenderModeIncludeHelp":"\u767D\u540D\u5355\uFF1A\u53EA\u5904\u7406\u4E0B\u65B9\u52FE\u9009\u201C\u76D1\u542C\u201D\u7684\u53D1\u9001\u8005\uFF08\u6309 open_id \u5339\u914D\uFF09\u3002\u7B2C\u4E09\u65B9\u673A\u5668\u4EBA\u5728\u5386\u53F2/\u8F6E\u8BE2\u63A5\u53E3\u6309 app_id \u4E0A\u62A5\u3001\u89E3\u6790\u4E0D\u51FA open_id\uFF0C\u6B64\u6A21\u5F0F\u65E0\u6CD5\u547D\u4E2D\u5B83\u4EEC\u3002","roles.listenerSenderModeAllExceptHelp":"\u9ED1\u540D\u5355\uFF1A\u5904\u7406\u6240\u6709\u5339\u914D\u53D1\u9001\u8005\u7C7B\u578B\u7684\u6D88\u606F\uFF0C\u4EC5\u6392\u9664\u4E0B\u65B9\u6807\u4E3A\u201C\u4E0D\u76D1\u542C\u201D\u7684\u9879\uFF08\u5F53\u524D\u673A\u5668\u4EBA\u59CB\u7EC8\u6392\u9664\uFF09\u3002\u60F3\u76D1\u542C\u7FA4\u91CC\u7B2C\u4E09\u65B9\u544A\u8B66\u673A\u5668\u4EBA\uFF08Argos \u7B49\uFF09\u8BF7\u7528\u6B64\u6A21\u5F0F\u3002","roles.listenerFilters":"\u53D1\u9001\u8005\u8FC7\u6EE4","roles.listenerMembers":"\u6210\u5458\u8FC7\u6EE4","roles.listenerBots":"\u673A\u5668\u4EBA\u8FC7\u6EE4","roles.listenerMembersHint":"\u663E\u793A\u540D\u4EC5\u7528\u4E8E\u9009\u62E9\uFF0C\u914D\u7F6E\u4FDD\u5B58 open_id","roles.listenerMembersEmpty":"\u6682\u65E0\u6210\u5458\u6570\u636E","roles.listenerBotsEmpty":"\u6682\u65E0\u673A\u5668\u4EBA\u6570\u636E","roles.listenerSearchPlaceholder":"\u6309\u540D\u79F0\u6216 open_id \u641C\u7D22","roles.listenerClearSearch":"\u6E05\u7A7A\u641C\u7D22","roles.listenerSelectVisible":"\u5168\u9009 {count} \u9879","roles.listenerClearVisible":"\u53D6\u6D88\u5168\u9009 {count} \u9879","roles.listenerSelectedCount":"\u5DF2\u9009\u62E9 {count} \u9879","roles.listenerFilteredCount":"\u5F53\u524D\u7B5B\u9009 {count} \u9879","roles.listenerMixedMode":"\u6DF7\u5408\u72B6\u6001","roles.listenerBulkActions":"\u6279\u91CF\u8BBE\u7F6E\u76D1\u542C\u72B6\u6001","roles.listenerTargetListen":"\u76D1\u542C","roles.listenerTargetIgnore":"\u4E0D\u76D1\u542C","roles.listenerConfirmDelete":"\u786E\u8BA4\u5220\u9664\u8BE5 Bot \u5728\u6B64\u7FA4\u7684\u6D88\u606F\u76D1\u542C\u914D\u7F6E\uFF1F","roles.listenerScopeHelp":"\u76D1\u542C\u53EA\u5904\u7406\u7FA4\u804A\u9876\u5C42\u6D88\u606F\uFF1B\u663E\u5F0F @ \u5F53\u524D Bot \u7684\u6D88\u606F\u4ECD\u8D70\u666E\u901A @ \u8DEF\u7531\uFF1B\u9ED8\u8BA4\u4E0D\u5904\u7406\u5DF2\u6709\u7EBF\u7A0B\u91CC\u7684\u666E\u901A\u56DE\u590D\u3002","roles.listenerPreviewTitle":"\u9884\u89C8\u4E0E\u8BD5\u8FD0\u884C","roles.listenerPreviewHint":"\u9884\u89C8\u6700\u8FD1 24 \u5C0F\u65F6\u5185\u7B26\u5408\u5F53\u524D\u6761\u4EF6\u7684\u7FA4\u6D88\u606F\uFF1B\u8BD5\u8FD0\u884C\u4F1A\u6309\u771F\u5B9E\u94FE\u8DEF\u521B\u5EFA\u4F1A\u8BDD\u5E76\u56DE\u590D\u3002","roles.listenerPreviewCount":"\u6570\u91CF","roles.listenerPreviewButton":"\u9884\u89C8","roles.listenerRunPreviewButton":"\u8BD5\u8FD0\u884C","roles.listenerPreviewEmpty":"\u5C1A\u672A\u9884\u89C8\u3002","roles.listenerPreviewNoMatches":"\u6700\u8FD1 24 \u5C0F\u65F6\u5185\u6CA1\u6709\u7B26\u5408\u6761\u4EF6\u7684\u5185\u5BB9\u3002","roles.listenerPreviewSummary":"\u547D\u4E2D {count} \u6761\u6D88\u606F","roles.listenerRunPreviewSummary":"\u8BD5\u8FD0\u884C {count} \u6761\uFF1A\u5DF2\u89E6\u53D1 {triggered} \u6761\uFF0C\u6267\u884C\u4E2D {running} \u6761\uFF0C\u5DF2\u56DE\u590D {replied} \u6761\uFF0C\u56DE\u590D\u5931\u8D25 {failed} \u6761","roles.listenerPreviewFailed":"\u9884\u89C8\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5","roles.listenerPreviewSender":"\u53D1\u9001\u8005","roles.listenerPreviewTime":"\u53D1\u9001\u65F6\u95F4","roles.listenerPreviewMessageTitle":"\u6D88\u606F\u6807\u9898","roles.listenerPreviewContent":"\u6D88\u606F\u5185\u5BB9","roles.listenerRunPreviewState.triggered":"\u5DF2\u89E6\u53D1","roles.listenerRunPreviewState.running":"\u6267\u884C\u4E2D","roles.listenerRunPreviewState.replied":"\u5DF2\u56DE\u590D","roles.listenerRunPreviewState.failed":"\u56DE\u590D\u5931\u8D25","roles.profileIdPlaceholder":"profile id\uFF0C\u5982 collab-main","roles.profileIdInvalid":"Profile id \u53EA\u80FD\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u3001\u77ED\u6A2A\u7EBF\uFF0C\u6700\u957F 64\uFF0C\u4E14\u4E0D\u80FD\u662F . \u6216 ..","roles.openProfile":"\u6253\u5F00","roles.profileSearch":"\u641C\u7D22 profile","roles.profileSelectHint":"\u2190 \u9009\u62E9\u6216\u8F93\u5165\u4E00\u4E2A profile \u6765\u7F16\u8F91","roles.profileEmpty":"\u6682\u65E0 Profiles","roles.profileEntries":"\u4E2A entry","roles.profileMissing":"\u7F3A\u5931","roles.profileRuntimeHint":"Profile \u53EA\u662F\u53EF\u590D\u7528\u5957\u88C5\uFF1BApply \u540E\u5199\u6210\u672C\u7FA4 Role\uFF0C\u4E0D\u589E\u52A0\u8FD0\u884C\u65F6\u5C42\u7EA7\u3002","roles.profileBots":"Bot Entries","roles.profileEditorPlaceholder":"\u8F93\u5165\u5F53\u524D bot \u5728\u8BE5 profile \u4E0B\u7684 Markdown role...","roles.saveEntry":"\u4FDD\u5B58 Entry","roles.profileBotSelectHint":"\u9009\u62E9\u4E00\u4E2A Bot \u6765\u7F16\u8F91\u5B83\u5728\u8BE5 profile \u91CC\u7684 entry","roles.applyToGroup":"Apply \u5230\u7FA4\u7EC4","roles.applyForce":"\u8986\u76D6\u5DF2\u6709\u672C\u7FA4 Role","roles.previewApply":"\u9884\u89C8 Apply","roles.applyProfile":"Apply Profile","roles.applyPickBots":"\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A Bot","roles.applyWouldRefuse":"\u4F1A\u62D2\u7EDD\uFF08\u5DF2\u6709\u672C\u7FA4 Role\uFF09","roles.applyPreviewOk":"\u53EF\u5E94\u7528","roles.applyOk":"\u5DF2\u5E94\u7528","roles.applyFailed":"\u5931\u8D25","roles.confirmDeleteProfileEntry":"\u786E\u8BA4\u5220\u9664\u8BE5 Bot \u5728\u6B64 profile \u91CC\u7684 entry\uFF1F","common.none":"\u65E0","common.loading":"\u52A0\u8F7D\u4E2D\u2026","common.unknown":"\u672A\u77E5","common.now":"\u521A\u521A","common.never":"\u4ECE\u672A","common.all":"\u5168\u90E8","common.dropdownSearch":"\u641C\u7D22\u2026","common.dropdownSearchEmpty":"\u65E0\u5339\u914D\u9879","nav.workflows":"\u5DE5\u4F5C\u6D41","workflow.v3.cancel":"\u53D6\u6D88\u8FD0\u884C","workflow.v3.cancelTitle":"\u53D6\u6D88\u8FD9\u4E2A v3 \u5DE5\u4F5C\u6D41\u8FD0\u884C","workflow.v3.cancelTerminal":"\u8FD0\u884C\u5DF2\u7ED3\u675F","workflow.v3.cancelling":"\u53D6\u6D88\u4E2D\u2026","workflow.v3.cancelConfirm":`\u786E\u8BA4\u53D6\u6D88 v3 \u5DE5\u4F5C\u6D41\u8FD0\u884C {runId}\uFF1F
|
|
26
26
|
|
|
27
|
-
\u5DF2\u5B8C\u6210\u7684\u8282\u70B9\u4F1A\u4FDD\u7559\uFF0C\u8FD0\u884C\u4E2D\u7684\u8282\u70B9\u4F1A\u88AB\u4E2D\u65AD\u3002`,"workflow.v3.cancelPending":"\u53D6\u6D88\u8BF7\u6C42\u5DF2\u6301\u4E45\u5316\uFF1B\u6B63\u5728\u7B49\u5F85\u8FD0\u884C\u4E2D\u7684\u8282\u70B9\u6536\u655B\u3002","workflow.v3.cancelled":"\u8FD0\u884C\u5DF2\u53D6\u6D88\u3002","workflow.v3.cancelAlreadyTerminal":"\u8FD0\u884C\u5DF2\u5148\u4E00\u6B65\u8FDB\u5165\u7EC8\u6001\uFF0C\u672A\u518D\u63D0\u4EA4\u53D6\u6D88\u3002","workflow.v3.cancelAuthRequired":"\u9700\u8981 Dashboard \u5199\u6743\u9650\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u8FD0\u884C `botmux dashboard` \u83B7\u53D6\u5F53\u524D\u767B\u5F55\u94FE\u63A5\u540E\u91CD\u8BD5\u3002","workflow.v3.cancelFailed":"\u53D6\u6D88\u5931\u8D25\uFF1A{error}","workbench.appearance.title":"\u5916\u89C2","workbench.appearance.more":"\u66F4\u591A","workbench.appearance.close":"\u5173\u95ED","workbench.appearance.themeGroup":"\u4E3B\u9898","workbench.appearance.modeLabel":"\u660E\u6697\u6A21\u5F0F","workbench.appearance.skin.ink":"\u58A8\u9ED1","workbench.appearance.skin.slateBlue":"\u84DD\u7070","workbench.appearance.skin.warmGraphite":"\u77F3\u58A8","workbench.appearance.skin.lightFrost":"\u51B7\u767D","workbench.appearance.mode.system":"\u8DDF\u968F\u7CFB\u7EDF","workbench.appearance.mode.light":"\u6D45\u8272","workbench.appearance.mode.dark":"\u6DF1\u8272","workbench.appearance.termGroup":"\u7EC8\u7AEF\u6E32\u67D3","workbench.appearance.termStyleLabel":"\u7EC8\u7AEF\u6E32\u67D3\u98CE\u683C","workbench.appearance.term.reader":"\u9605\u8BFB","workbench.appearance.term.classic":"\u7ECF\u5178","workbench.appearance.termNote":"\u9605\u8BFB\uFF1A\u4F4E\u9971\u548C\u5927\u884C\u8DDD\uFF0C\u4E45\u770B\u4E0D\u7D2F \xB7 \u7ECF\u5178\uFF1A\u539F\u6C41\u539F\u5473\u7EC8\u7AEF\u6E32\u67D3","workbench.standingLink.title":"\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.loading":"\u6B63\u5728\u83B7\u53D6\u2026","workbench.standingLink.error":"\u6682\u65F6\u53D6\u4E0D\u5230\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.fieldLabel":"\u5DE5\u4F5C\u53F0\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.copy":"\u590D\u5236","workbench.standingLink.copied":"\u5DF2\u590D\u5236","workbench.standingLink.copyFailed":"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D","workbench.standingLink.note":"\u6536\u85CF\u5230\u6D4F\u89C8\u5668\u4E66\u7B7E\u957F\u671F\u4F7F\u7528\uFF1B\u6000\u7591\u6CC4\u6F0F\u65F6 rotate \u53EF\u7ACB\u5373\u4F5C\u5E9F\u3002"},ke={"app.name":"botmux","app.subtitle":"Feishu AI CLI Control","nav.docs":"Docs","time.secondsAgo":"{value}s ago","time.minutesAgo":"{value}m ago","time.hoursAgo":"{value}h ago","nav.overview":"Workbench","nav.monitoring":"Monitoring Board","nav.sessions":"Session Control","nav.groups":"Group Management","nav.schedules":"Scheduled Tasks","nav.settings":"Global Settings","nav.botDefaults":"Bot Config","nav.skills":"Skill Management","nav.customization":"Customization","nav.whiteboards":"Whiteboards","nav.team":"Team Collaboration","nav.connectors":"Webhook","nav.webhookLogs":"Invocation Logs","nav.feedback":"Feedback","nav.workbench":"Cockpit","nav.group.overview":"Overview","nav.group.collab":"Collaboration","nav.group.workforce":"Digital Workforce","nav.group.analytics":"Analytics","nav.group.manage":"Management","feedback.title":"Feedback analytics","feedback.subtitle":"Review delivery coverage, latest ratings, failures, and redacted drill-down data.","feedback.delivered":"Delivered","feedback.rated":"Rated deliveries","feedback.coverage":"Rating coverage","feedback.positiveRate":"Positive rate","feedback.deliveryFailures":"Delivery failures","feedback.outboxFailures":"Webhook failures","feedback.trend":"Semantic trend","feedback.reasons":"Negative reasons","feedback.deliveries":"Redacted deliveries","feedback.loadMore":"Load more","nav.office":"Office","nav.createSession":"Create session","nav.createBot":"Create bot","status.live":"Live link","status.disconnected":"Disconnected","status.system":"System","status.light":"Light","status.dark":"Dark","status.language":"Language","status.theme":"Theme","theme.base":"Basic","theme.skins":"Skins","skin.cyber":"2077","skin.fallout":"Fallout","botOnboarding.add":"Add Bot","botOnboarding.title":"Add Bot","botOnboarding.intro":"Choose how it works. Scan once to sign in, then reuse that account for future additions without scanning.","botOnboarding.sessionChecking":"Checking your Feishu sign-in\u2026","botOnboarding.sessionReady":"Will use {user} \xB7 {tenant}","botOnboarding.switchAccount":"Switch account","botOnboarding.reuseCurrentAccount":"Use current account","botOnboarding.sessionSwitching":"A new scan will choose another account","botOnboarding.sessionSwitchingHint":"The new sign-in will replace the cache on this machine.","botOnboarding.sessionScanRequired":"Scan to sign in","botOnboarding.sessionScanRequiredHint":"Scan on first use or after expiry. The sign-in stays on this machine so later additions can skip it.","botOnboarding.confirmReuse":"Confirm account and add","botOnboarding.appNameLabel":"Bot name (optional)","botOnboarding.appNamePlaceholder":"e.g. Engineering Assistant","botOnboarding.appNameHint":"Leave blank to use {name}","botOnboarding.cliLabel":"AI CLI","botOnboarding.cliMissingOption":"{label} (not installed: {command})","botOnboarding.cliMissingHint":"{command} is not available on this machine. Install it or fix the daemon PATH before creating the Bot.","botOnboarding.dirModeLabel":"Where new topics start","botOnboarding.dirModeFixed":"Fixed folder (recommended)","botOnboarding.dirModeCard":"Choose a repository each time","botOnboarding.dirLabelFixed":"Default working directory","botOnboarding.dirLabelCard":"Repo scan root","botOnboarding.dirPlaceholderFixed":"Default ~ (home); must exist on the daemon host","botOnboarding.dirPlaceholderCard":"e.g. ~/projects \u2014 the card lists git repos under it; must exist on the daemon host","botOnboarding.modelLabel":"Model (optional)","botOnboarding.modelPlaceholder":"Leave empty for the CLI default model","botOnboarding.modelTtadkPlaceholder":"ttadk gateway model, default {model}, editable anytime","botOnboarding.modelTtadkCocoPlaceholder":"CoCo needs no model","botOnboarding.startScan":"Scan to add","botOnboarding.cancel":"Cancel","botOnboarding.starting":"Preparing secure sign-in\u2026","botOnboarding.waiting":"Scan with Feishu. One scan creates and configures \u201C{name}\u201D.","botOnboarding.waitingCompat":"Scan with Feishu for compatibility mode. An additional scan may be required, and the platform chooses the app name.","botOnboarding.verifying":"App created. Confirming your account\u2026","botOnboarding.configuringPermissions":"Configuring permissions and events, then publishing the bot\u2026","botOnboarding.platformScanHint":"Compatibility mode needs an additional Open Platform sign-in. Scan to continue.","botOnboarding.platformQrAlt":"Open Platform login QR code","botOnboarding.completed":"\u201C{name}\u201D is ready","botOnboarding.botFallback":"Bot","botOnboarding.permissionOk":"Auto-imported {count} permissions.","botOnboarding.permissionSkipped":"({count} skipped \u2014 not in the tenant catalog)","botOnboarding.permissionVersion":"Submitted version {version}.","botOnboarding.permissionManual":"Permissions could not be auto-configured. Complete these steps manually:","botOnboarding.permissionRedirectWarn":"The callback (redirect) URL was not configured automatically: {reason}. Add it under Security Settings \u2192 Redirect URL on the Open Platform, otherwise group session mode, session-group tags and `/login` will fail authorization with error 20029.","botOnboarding.permissionRedirectWarnNoReason":"The callback (redirect) URL was not configured automatically. Add it under Security Settings \u2192 Redirect URL on the Open Platform, otherwise group session mode, session-group tags and `/login` will fail authorization with error 20029.","botOnboarding.metaDir":"Dir","botOnboarding.createFailedTitle":"Couldn\u2019t create the app","botOnboarding.createFailedDescription":"Your form values are preserved. Retry or explicitly choose compatibility mode.","botOnboarding.qrExpiredTitle":"QR code expired","botOnboarding.qrExpiredDescription":"Your form values are preserved. Generate a new code.","botOnboarding.authIncompleteTitle":"Authorization wasn\u2019t completed","botOnboarding.authIncompleteDescription":"No app was created. You can scan again.","botOnboarding.partialFailureTitle":"The app was created, but setup is incomplete","botOnboarding.partialFailureDescription":"The App ID is preserved and no new app will be created. Use the recovery command in Technical details.","botOnboarding.technicalDetails":"Technical details","botOnboarding.retry":"Retry","botOnboarding.generateQr":"Generate a new code","botOnboarding.scanAgain":"Scan again","botOnboarding.compatibilityMode":"Use compatibility mode","botOnboarding.compatibilityConfirm":"Compatibility mode may require an additional scan and cannot apply a custom bot name. Continue?","botOnboarding.openLink":"Open scan link in browser","botOnboarding.close":"Close","botOnboarding.restartHint":"bots.json has been updated. Auto-start did not succeed; run botmux restart for the new bot to take effect.","botOnboarding.liveOk":"The bot is live \u2014 no restart needed. Just @mention it in Feishu to use it.","botOnboarding.needsOwnerTitle":"One more step: confirm an administrator","botOnboarding.needsOwnerDescription":"We could not confirm an administrator from the scanned account. Enter a company email or mobile number to finish; the bot will not start before confirmation.","botOnboarding.ownerLabel":"Administrator email or mobile","botOnboarding.ownerPlaceholder":"name@company.com or +14155550123","botOnboarding.ownerUseId":"Use an ID","botOnboarding.ownerIdLabel":"union_id / open_id","botOnboarding.ownerIdPlaceholder":"on_xxx or ou_xxx","botOnboarding.ownerSubmit":"Confirm and finish","botOnboarding.ownerEmpty":"Enter an administrator email, mobile, or ID.","botOnboarding.ownerInvalid":"Administrator validation failed. Check the value and retry.","botOnboarding.qrAlt":"Feishu bot onboarding QR code","overview.title":"Workbench","overview.team":"AI Team","overview.teamHint":"Live status of every digital teammate","overview.attention":"Needs You","overview.activeSessions":"Active Sessions","overview.sessionOverview":"Session Overview","overview.viewAll":"View all \u2192","overview.viewAllPlain":"View all","overview.sort":"Sort","overview.sortByTime":"By time","overview.sortAttentionFirst":"Needs you first","overview.botIdle":"Standing by, ready for new tasks","overview.botOffline":"Offline \u2014 daemon not running","overview.botBusy":"Working \xB7 {count} sessions","overview.botNeedsYou":"Waiting on you","overview.botReady":"Ready","overview.botOff":"Offline","overview.botConsole":"Open Console","overview.sessionsCount":"{count} sessions","overview.lastActive":"active {time} ago","overview.teamCount":"{count} bots","overview.teamExpand":"Show all","overview.teamCollapse":"Collapse","strip.pending":"{count} pending","strip.longestCompact":"longest {time} \xB7 {bot} \xB7 {reason}","strip.handle":"Handle now","overview.openSessions":"Active Sessions","overview.workingSessions":"Working","overview.idleSessions":"Idle","overview.onlineBots":"Online Bots","overview.schedules":"Schedules","overview.groups":"Groups Seen","overview.enabledSchedules":"Enabled","overview.total":"total","overview.active":"active","overview.daemonRegistry":"daemon registry","overview.chatMatrix":"chat matrix","overview.recentSessions":"Recent Sessions","overview.nextSchedules":"Schedules","overview.noSessions":"No sessions yet.","overview.noSchedules":"No schedules yet.","overview.allClear":"All sessions are running smoothly","overview.waitingFor":"Waiting {time}","overview.headingSubtitle":"{bots} bots online \xB7 {needs} pending","overview.liveSync":"Live sync","overview.syncOffline":"Reconnecting","overview.upcomingSchedules":"Upcoming Schedules","monitoring.eyebrow":"Runtime resources","monitoring.title":"Monitoring Board","monitoring.subtitle":"Watch host, botmux, bot, and session CPU and memory pressure in real time.","monitoring.runtimeTitle":"Monitoring Board","monitoring.runtimeSubtitle":"Monitor botmux runtime health, resource pressure, and session pressure in real time.","monitoring.runtimeHealth":"Runtime Health","monitoring.runtimeHealthHint":"Check sample freshness, daemon availability, and session buildup.","monitoring.resourcePressure":"Resource Pressure","monitoring.resourcePressureHint":"Machine resource trends are memory-only and reset after restart.","monitoring.sessionPressure":"Session Pressure","monitoring.sessionPressureHint":"Find long-running, waiting, and process-unlinked live sessions.","monitoring.botRuntime":"Bot Runtime","monitoring.botRuntimeHint":"Aggregate daemon status, session pressure, and resource usage by bot.","monitoring.sampleHealth":"Sample Health","monitoring.sampleAge":"Data age","monitoring.sample.fresh":"Fresh","monitoring.sample.stale":"Stale","monitoring.sample.unsupported":"Unsupported","monitoring.sample.unknown":"Unknown","monitoring.health.ok":"Healthy","monitoring.health.warn":"Watch","monitoring.health.danger":"High Pressure","monitoring.health.unknown":"Unknown","monitoring.daemonHealth":"Daemon Online","monitoring.sessionHealth":"Session Health","monitoring.offline":"Offline","monitoring.working":"Working","monitoring.starting":"Starting","monitoring.waiting":"Waiting","monitoring.idle":"Idle","monitoring.unknown":"Unknown","monitoring.statusDistribution":"Status Distribution","monitoring.longestRunning":"Longest Running","monitoring.longestWaiting":"Longest Waiting","monitoring.unattributedSessions":"No Linked Process","monitoring.unattributedHint":"These live sessions have no reliable PID link, so session-level resource usage cannot be calculated.","monitoring.unsupported":"Resource sampling is unavailable on this platform.","monitoring.unsupportedKicker":"Linux / macOS only","monitoring.unsupportedTitle":"Resource sampling requires Linux or macOS","monitoring.unsupportedHint":"This platform has neither readable /proc data nor the macOS ps/vm_stat sampling path; runtime health remains available.","monitoring.unsupportedRuntimeOk":"Runtime health available","monitoring.unsupportedResourceOnly":"CPU / Memory / RSS paused","monitoring.hostCpu":"CPU","monitoring.hostMemory":"Memory","monitoring.botmuxRss":"Botmux memory","monitoring.botmuxSelf":"Self","monitoring.botmuxDaemon":"daemon","monitoring.botmuxWorker":"worker","monitoring.botmuxCli":"External CLI","monitoring.rssHelpLabel":"About this memory number","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). macOS uses the equivalent phys_footprint (what Activity Monitor calls "Memory"), falling back to RSS.
|
|
27
|
+
\u5DF2\u5B8C\u6210\u7684\u8282\u70B9\u4F1A\u4FDD\u7559\uFF0C\u8FD0\u884C\u4E2D\u7684\u8282\u70B9\u4F1A\u88AB\u4E2D\u65AD\u3002`,"workflow.v3.cancelPending":"\u53D6\u6D88\u8BF7\u6C42\u5DF2\u6301\u4E45\u5316\uFF1B\u6B63\u5728\u7B49\u5F85\u8FD0\u884C\u4E2D\u7684\u8282\u70B9\u6536\u655B\u3002","workflow.v3.cancelled":"\u8FD0\u884C\u5DF2\u53D6\u6D88\u3002","workflow.v3.cancelAlreadyTerminal":"\u8FD0\u884C\u5DF2\u5148\u4E00\u6B65\u8FDB\u5165\u7EC8\u6001\uFF0C\u672A\u518D\u63D0\u4EA4\u53D6\u6D88\u3002","workflow.v3.cancelAuthRequired":"\u9700\u8981 Dashboard \u5199\u6743\u9650\uFF1A\u8BF7\u5728\u7EC8\u7AEF\u8FD0\u884C `botmux dashboard` \u83B7\u53D6\u5F53\u524D\u767B\u5F55\u94FE\u63A5\u540E\u91CD\u8BD5\u3002","workflow.v3.cancelFailed":"\u53D6\u6D88\u5931\u8D25\uFF1A{error}","workbench.appearance.title":"\u5916\u89C2","workbench.appearance.more":"\u66F4\u591A","workbench.appearance.close":"\u5173\u95ED","workbench.appearance.themeGroup":"\u4E3B\u9898","workbench.appearance.modeLabel":"\u660E\u6697\u6A21\u5F0F","workbench.appearance.skin.ink":"\u58A8\u9ED1","workbench.appearance.skin.slateBlue":"\u84DD\u7070","workbench.appearance.skin.warmGraphite":"\u77F3\u58A8","workbench.appearance.skin.lightFrost":"\u51B7\u767D","workbench.appearance.mode.system":"\u8DDF\u968F\u7CFB\u7EDF","workbench.appearance.mode.light":"\u6D45\u8272","workbench.appearance.mode.dark":"\u6DF1\u8272","workbench.appearance.termGroup":"\u7EC8\u7AEF\u6E32\u67D3","workbench.appearance.termStyleLabel":"\u7EC8\u7AEF\u6E32\u67D3\u98CE\u683C","workbench.appearance.term.reader":"\u9605\u8BFB","workbench.appearance.term.classic":"\u7ECF\u5178","workbench.appearance.termNote":"\u9605\u8BFB\uFF1A\u4F4E\u9971\u548C\u5927\u884C\u8DDD\uFF0C\u4E45\u770B\u4E0D\u7D2F \xB7 \u7ECF\u5178\uFF1A\u539F\u6C41\u539F\u5473\u7EC8\u7AEF\u6E32\u67D3","workbench.standingLink.title":"\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.loading":"\u6B63\u5728\u83B7\u53D6\u2026","workbench.standingLink.error":"\u6682\u65F6\u53D6\u4E0D\u5230\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.fieldLabel":"\u5DE5\u4F5C\u53F0\u5E38\u9A7B\u94FE\u63A5","workbench.standingLink.copy":"\u590D\u5236","workbench.standingLink.copied":"\u5DF2\u590D\u5236","workbench.standingLink.copyFailed":"\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u9009\u4E2D","workbench.standingLink.note":"\u6536\u85CF\u5230\u6D4F\u89C8\u5668\u4E66\u7B7E\u957F\u671F\u4F7F\u7528\uFF1B\u6000\u7591\u6CC4\u6F0F\u65F6 rotate \u53EF\u7ACB\u5373\u4F5C\u5E9F\u3002"},ke={"app.name":"botmux","app.subtitle":"Feishu AI CLI Control","nav.docs":"Docs","time.secondsAgo":"{value}s ago","time.minutesAgo":"{value}m ago","time.hoursAgo":"{value}h ago","nav.overview":"Workbench","nav.monitoring":"Monitoring Board","nav.sessions":"Session Control","nav.groups":"Group Management","nav.schedules":"Scheduled Tasks","nav.settings":"Global Settings","nav.botDefaults":"Bot Config","nav.skills":"Skill Management","nav.customization":"Customization","nav.whiteboards":"Whiteboards","nav.team":"Team Collaboration","nav.connectors":"Webhook","nav.webhookLogs":"Invocation Logs","nav.feedback":"Feedback","nav.workbench":"Cockpit","nav.group.overview":"Overview","nav.group.collab":"Collaboration","nav.group.workforce":"Digital Workforce","nav.group.analytics":"Analytics","nav.group.manage":"Management","feedback.title":"Feedback analytics","feedback.subtitle":"Review delivery coverage, latest ratings, failures, and redacted drill-down data.","feedback.delivered":"Delivered","feedback.rated":"Rated deliveries","feedback.coverage":"Rating coverage","feedback.positiveRate":"Positive rate","feedback.deliveryFailures":"Delivery failures","feedback.outboxFailures":"Webhook failures","feedback.trend":"Semantic trend","feedback.reasons":"Negative reasons","feedback.deliveries":"Redacted deliveries","feedback.loadMore":"Load more","nav.office":"Office","nav.createSession":"Create session","nav.createBot":"Create bot","status.live":"Live link","status.disconnected":"Disconnected","status.system":"System","status.light":"Light","status.dark":"Dark","status.language":"Language","status.theme":"Theme","theme.base":"Basic","theme.skins":"Skins","skin.cyber":"2077","skin.fallout":"Fallout","botOnboarding.add":"Add Bot","botOnboarding.clone":"Clone Bot","botOnboarding.title":"Add Bot","botOnboarding.intro":"Choose how it works. Scan once to sign in, then reuse that account for future additions without scanning.","botOnboarding.sessionChecking":"Checking your Feishu sign-in\u2026","botOnboarding.sessionReady":"Will use {user} \xB7 {tenant}","botOnboarding.switchAccount":"Switch account","botOnboarding.reuseCurrentAccount":"Use current account","botOnboarding.sessionSwitching":"A new scan will choose another account","botOnboarding.sessionSwitchingHint":"The new sign-in will replace the cache on this machine.","botOnboarding.sessionScanRequired":"Scan to sign in","botOnboarding.sessionScanRequiredHint":"Scan on first use or after expiry. The sign-in stays on this machine so later additions can skip it.","botOnboarding.confirmReuse":"Confirm account and add","botOnboarding.appNameLabel":"Bot name (optional)","botOnboarding.appNamePlaceholder":"e.g. Engineering Assistant","botOnboarding.appNameHint":"Leave blank to use {name}","botOnboarding.cliLabel":"AI CLI","botOnboarding.cliMissingOption":"{label} (not installed: {command})","botOnboarding.cliMissingHint":"{command} is not available on this machine. Install it or fix the daemon PATH before creating the Bot.","botOnboarding.dirModeLabel":"Where new topics start","botOnboarding.dirModeFixed":"Fixed folder (recommended)","botOnboarding.dirModeCard":"Choose a repository each time","botOnboarding.dirLabelFixed":"Default working directory","botOnboarding.dirLabelCard":"Repo scan root","botOnboarding.dirPlaceholderFixed":"Default ~ (home); must exist on the daemon host","botOnboarding.dirPlaceholderCard":"e.g. ~/projects \u2014 the card lists git repos under it; must exist on the daemon host","botOnboarding.modelLabel":"Model (optional)","botOnboarding.modelPlaceholder":"Leave empty for the CLI default model","botOnboarding.modelTtadkPlaceholder":"ttadk gateway model, default {model}, editable anytime","botOnboarding.modelTtadkCocoPlaceholder":"CoCo needs no model","botOnboarding.startScan":"Scan to add","botOnboarding.cancel":"Cancel","botOnboarding.starting":"Preparing secure sign-in\u2026","botOnboarding.waiting":"Scan with Feishu. One scan creates and configures \u201C{name}\u201D.","botOnboarding.waitingCompat":"Scan with Feishu for compatibility mode. An additional scan may be required, and the platform chooses the app name.","botOnboarding.verifying":"App created. Confirming your account\u2026","botOnboarding.configuringPermissions":"Configuring permissions and events, then publishing the bot\u2026","botOnboarding.platformScanHint":"Compatibility mode needs an additional Open Platform sign-in. Scan to continue.","botOnboarding.platformQrAlt":"Open Platform login QR code","botOnboarding.completed":"\u201C{name}\u201D is ready","botOnboarding.botFallback":"Bot","botOnboarding.permissionOk":"Auto-imported {count} permissions.","botOnboarding.permissionSkipped":"({count} skipped \u2014 not in the tenant catalog)","botOnboarding.permissionVersion":"Submitted version {version}.","botOnboarding.permissionManual":"Permissions could not be auto-configured. Complete these steps manually:","botOnboarding.permissionRedirectWarn":"The callback (redirect) URL was not configured automatically: {reason}. Add it under Security Settings \u2192 Redirect URL on the Open Platform, otherwise group session mode, session-group tags and `/login` will fail authorization with error 20029.","botOnboarding.permissionRedirectWarnNoReason":"The callback (redirect) URL was not configured automatically. Add it under Security Settings \u2192 Redirect URL on the Open Platform, otherwise group session mode, session-group tags and `/login` will fail authorization with error 20029.","botOnboarding.metaDir":"Dir","botOnboarding.createFailedTitle":"Couldn\u2019t create the app","botOnboarding.createFailedDescription":"Your form values are preserved. Retry or explicitly choose compatibility mode.","botOnboarding.qrExpiredTitle":"QR code expired","botOnboarding.qrExpiredDescription":"Your form values are preserved. Generate a new code.","botOnboarding.authIncompleteTitle":"Authorization wasn\u2019t completed","botOnboarding.authIncompleteDescription":"No app was created. You can scan again.","botOnboarding.partialFailureTitle":"The app was created, but setup is incomplete","botOnboarding.partialFailureDescription":"The App ID is preserved and no new app will be created. Use the recovery command in Technical details.","botOnboarding.technicalDetails":"Technical details","botOnboarding.retry":"Retry","botOnboarding.generateQr":"Generate a new code","botOnboarding.scanAgain":"Scan again","botOnboarding.compatibilityMode":"Use compatibility mode","botOnboarding.compatibilityConfirm":"Compatibility mode may require an additional scan and cannot apply a custom bot name. Continue?","botOnboarding.openLink":"Open scan link in browser","botOnboarding.close":"Close","botOnboarding.restartHint":"bots.json has been updated. Auto-start did not succeed; run botmux restart for the new bot to take effect.","botOnboarding.liveOk":"The bot is live \u2014 no restart needed. Just @mention it in Feishu to use it.","botOnboarding.needsOwnerTitle":"One more step: confirm an administrator","botOnboarding.needsOwnerDescription":"We could not confirm an administrator from the scanned account. Enter a company email or mobile number to finish; the bot will not start before confirmation.","botOnboarding.ownerLabel":"Administrator email or mobile","botOnboarding.ownerPlaceholder":"name@company.com or +14155550123","botOnboarding.ownerUseId":"Use an ID","botOnboarding.ownerIdLabel":"union_id / open_id","botOnboarding.ownerIdPlaceholder":"on_xxx or ou_xxx","botOnboarding.ownerSubmit":"Confirm and finish","botOnboarding.ownerEmpty":"Enter an administrator email, mobile, or ID.","botOnboarding.ownerInvalid":"Administrator validation failed. Check the value and retry.","botOnboarding.qrAlt":"Feishu bot onboarding QR code","overview.title":"Workbench","overview.team":"AI Team","overview.teamHint":"Live status of every digital teammate","overview.attention":"Needs You","overview.activeSessions":"Active Sessions","overview.sessionOverview":"Session Overview","overview.viewAll":"View all \u2192","overview.viewAllPlain":"View all","overview.sort":"Sort","overview.sortByTime":"By time","overview.sortAttentionFirst":"Needs you first","overview.botIdle":"Standing by, ready for new tasks","overview.botOffline":"Offline \u2014 daemon not running","overview.botBusy":"Working \xB7 {count} sessions","overview.botNeedsYou":"Waiting on you","overview.botReady":"Ready","overview.botOff":"Offline","overview.botConsole":"Open Console","overview.sessionsCount":"{count} sessions","overview.lastActive":"active {time} ago","overview.teamCount":"{count} bots","overview.teamExpand":"Show all","overview.teamCollapse":"Collapse","strip.pending":"{count} pending","strip.longestCompact":"longest {time} \xB7 {bot} \xB7 {reason}","strip.handle":"Handle now","overview.openSessions":"Active Sessions","overview.workingSessions":"Working","overview.idleSessions":"Idle","overview.onlineBots":"Online Bots","overview.schedules":"Schedules","overview.groups":"Groups Seen","overview.enabledSchedules":"Enabled","overview.total":"total","overview.active":"active","overview.daemonRegistry":"daemon registry","overview.chatMatrix":"chat matrix","overview.recentSessions":"Recent Sessions","overview.nextSchedules":"Schedules","overview.noSessions":"No sessions yet.","overview.noSchedules":"No schedules yet.","overview.allClear":"All sessions are running smoothly","overview.waitingFor":"Waiting {time}","overview.headingSubtitle":"{bots} bots online \xB7 {needs} pending","overview.liveSync":"Live sync","overview.syncOffline":"Reconnecting","overview.upcomingSchedules":"Upcoming Schedules","monitoring.eyebrow":"Runtime resources","monitoring.title":"Monitoring Board","monitoring.subtitle":"Watch host, botmux, bot, and session CPU and memory pressure in real time.","monitoring.runtimeTitle":"Monitoring Board","monitoring.runtimeSubtitle":"Monitor botmux runtime health, resource pressure, and session pressure in real time.","monitoring.runtimeHealth":"Runtime Health","monitoring.runtimeHealthHint":"Check sample freshness, daemon availability, and session buildup.","monitoring.resourcePressure":"Resource Pressure","monitoring.resourcePressureHint":"Machine resource trends are memory-only and reset after restart.","monitoring.sessionPressure":"Session Pressure","monitoring.sessionPressureHint":"Find long-running, waiting, and process-unlinked live sessions.","monitoring.botRuntime":"Bot Runtime","monitoring.botRuntimeHint":"Aggregate daemon status, session pressure, and resource usage by bot.","monitoring.sampleHealth":"Sample Health","monitoring.sampleAge":"Data age","monitoring.sample.fresh":"Fresh","monitoring.sample.stale":"Stale","monitoring.sample.unsupported":"Unsupported","monitoring.sample.unknown":"Unknown","monitoring.health.ok":"Healthy","monitoring.health.warn":"Watch","monitoring.health.danger":"High Pressure","monitoring.health.unknown":"Unknown","monitoring.daemonHealth":"Daemon Online","monitoring.sessionHealth":"Session Health","monitoring.offline":"Offline","monitoring.working":"Working","monitoring.starting":"Starting","monitoring.waiting":"Waiting","monitoring.idle":"Idle","monitoring.unknown":"Unknown","monitoring.statusDistribution":"Status Distribution","monitoring.longestRunning":"Longest Running","monitoring.longestWaiting":"Longest Waiting","monitoring.unattributedSessions":"No Linked Process","monitoring.unattributedHint":"These live sessions have no reliable PID link, so session-level resource usage cannot be calculated.","monitoring.unsupported":"Resource sampling is unavailable on this platform.","monitoring.unsupportedKicker":"Linux / macOS only","monitoring.unsupportedTitle":"Resource sampling requires Linux or macOS","monitoring.unsupportedHint":"This platform has neither readable /proc data nor the macOS ps/vm_stat sampling path; runtime health remains available.","monitoring.unsupportedRuntimeOk":"Runtime health available","monitoring.unsupportedResourceOnly":"CPU / Memory / RSS paused","monitoring.hostCpu":"CPU","monitoring.hostMemory":"Memory","monitoring.botmuxRss":"Botmux memory","monitoring.botmuxSelf":"Self","monitoring.botmuxDaemon":"daemon","monitoring.botmuxWorker":"worker","monitoring.botmuxCli":"External CLI","monitoring.rssHelpLabel":"About this memory number","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). macOS uses the equivalent phys_footprint (what Activity Monitor calls "Memory"), falling back to RSS.
|
|
28
28
|
This is the whole-family total. Split: Self = the daemon + each session\u2019s botmux worker (our own code); External CLI = Claude/Codex-style CLIs and their tool subprocesses, usually the bulk.
|
|
29
29
|
Best for spotting memory hotspots, sustained growth, and abnormal usage.`,"monitoring.trackedSessions":"Trend sessions","monitoring.currentSessions":"Current sessions","monitoring.memoryOnly":"Trends are memory-only and reset after restart","monitoring.trends":"Trends","monitoring.trendsHint":"Host and Botmux aggregates keep 24h; session history is retained only for the Top set.","monitoring.trendHostCpu":"Host CPU","monitoring.trendHostMemory":"Host Memory","monitoring.trendBotmuxCpu":"Botmux CPU","monitoring.chartNow":"now","monitoring.chartNoData":"no data","monitoring.chartMinutesAgo":"{value}m ago","monitoring.chartHoursAgo":"{value}h ago","monitoring.chartDaysAgo":"{value}d ago","monitoring.bots":"Bots","monitoring.botsHint":"Aggregates include daemon self resources and every current session for that bot.","monitoring.sessions":"Sessions","monitoring.sessionsHint":"Every live session has current values; only Top sessions keep trend history.","monitoring.trackedSessionTrends":"Top Session Trends","monitoring.trackedSessionHint":"This is the retained history subset, not the full current session set.","monitoring.modalClose":"Close","monitoring.noTrackedHistory":"No Top session history yet.","monitoring.noHotSession":"No hot session","monitoring.hottest":"Hottest","monitoring.sort":"Sort","monitoring.sort.cpu":"CPU","monitoring.sort.rss":"RSS","monitoring.sort.growth":"Growth","monitoring.sort.bot":"Bot","monitoring.sort.status":"Status","monitoring.bot":"Bot","monitoring.cpu":"CPU","monitoring.rss":"RSS","monitoring.growth":"Growth","monitoring.daemon":"Daemon","monitoring.sessionsCount":"Sessions","monitoring.session":"Session","monitoring.confidence":"Confidence","monitoring.rank":"Rank reason","sessions.title":"Session Control","sessions.search":"Search chat / working dir / title / IDs","sessions.anyStatus":"Any status","sessions.filters.title":"Filters","sessions.filters.clear":"Clear filters","sessions.filters.done":"Done","sessions.more":"More","sessions.terminal":"Terminal","sessions.cardMenu":"More actions","sessions.view.need":"Needs attention","sessions.view.work":"In progress","sessions.view.all":"All","sessions.sort":"Sort","sessions.sort.lastMessageAt":"Recent activity","sessions.sort.spawnedAt":"Created","sessions.sort.title":"Title","sessions.sort.status":"Status","sessions.takeoverTerminal":"Take over terminal","sessions.loadingSessions":"Loading sessions\u2026","sessions.adoptAny":"Source: all","sessions.adoptYes":"Source: external (/adopt)","sessions.adoptNo":"Source: Feishu-native","sessions.chatAny":"Chat: all","sessions.chatSearch":"Search chat\u2026","sessions.chatNoMatch":"No matching chat","sessions.cliSearch":"Search CLI\u2026","sessions.cliSelectAll":"Select all","sessions.cliClear":"Clear","sessions.cliNoMatch":"No matching CLI","sessions.multiBotTopics":"Multi-Bot topics","sessions.botTriggeredTopics":"Bot-woken topics (inferred)","sessions.showUnknownChats":"Show unknown chats","sessions.activeOnly":"Active only","sessions.runtime.logical":"Open sessions","sessions.runtime.resident":"Resident sessions","sessions.runtime.dormant":"Dormant sessions","sessions.monitorRoom":"Monitor Room","sessions.addToMonitorRoom":"Add to monitor room","sessions.monitorRoomAdded":"Added {added}; total {total}","sessions.closeSelected":"Close selected","sessions.clearSelection":"Clear","sessions.selectedCount":"{count} sessions selected","sessions.idleCleanupOlderThan":"Idle over","sessions.idleCleanupThreshold":"Idle cleanup threshold","sessions.idleCleanupRun":"Clean idle","sessions.idleCleanupCount":"{count} cleanable","sessions.idleCleanupCancel":"Cancel","sessions.idleCleanupApply":"Confirm","sessions.idleCleanupRunning":"Cleaning\u2026","sessions.idleCleanupDone":"Closed {closed}, failed {failed}","sessions.idleCleanupFailed":"Cleanup failed","sessions.lock":"Lock session","sessions.unlock":"Unlock session","sessions.locked":"Locked","sessions.lockSelected":"Lock selected","sessions.unlockSelected":"Unlock selected","sessions.lockFailed":"Failed to update lock state","sessions.columnsReset":"Reset","sessions.columnsMenu":"Show columns","sessions.columns":"Columns","sessions.bot":"Bot","sessions.cli":"CLI","sessions.chat":"Chat","sessions.location":"Chat","sessions.groupChat":"Group","sessions.directChat":"DM","sessions.chatUnknown":"Unknown chat","sessions.openChat":"Open chat","sessions.status":"Status","sessions.status.starting":"Starting","sessions.status.working":"Working","sessions.status.idle":"Idle","sessions.status.dormant":"Dormant","sessions.status.analyzing":"Analyzing","sessions.status.stalled":"No recent progress","sessions.status.active":"Active","sessions.status.limited":"Limit reached","sessions.status.closed":"Closed","sessions.status.unknown":"Unknown","sessions.tokenIn":"Token In","sessions.tokenOut":"Token Out","sessions.titleCol":"Title","sessions.workingDir":"Working Dir","sessions.created":"Created","sessions.last":"Last","sessions.preview.latestExchange":"Latest exchange","sessions.preview.showFull":"Show full exchange","sessions.adopt":"Adopt","sessions.actions":"Actions","sessions.details":"Details","sessions.copy":"Copy","sessions.copied":"Copied","sessions.locate":"Locate Topic","sessions.locating":"Sending...","sessions.cooldown":"Cooldown {seconds}s","sessions.openTerminal":"Terminal","sessions.openReadonlyTerminal":"Open read-only terminal","sessions.openWritableTerminal":"Open interactive web terminal","sessions.writeLink":"Write Link","sessions.writeLinkHint":"Get a writable terminal link (carries a write-access token; opens in a new tab)","sessions.writeLinkFail":"Failed to get write link","sessions.copyCommand":"Copy reproduce command","sessions.copyCommandHint":"Copy an approximate cold-start reproduce command (bin+args+key env, sandbox wrapping omitted) to paste into the debug terminal. Contains tokens/credentials \u2014 keep private","sessions.copyCommandDone":"Copied","sessions.copyCommandFail":"Failed to get reproduce command","sessions.debugTerminal":"Debug Terminal","sessions.debugTerminalHint":"Open a throwaway terminal (no Feishu thread) to paste a reproduce command (admin only)","sessions.debugTerminalPrompt":"Working directory for the debug terminal (blank = session default):","sessions.debugTerminalFail":"Failed to open debug terminal","sessions.close":"Close Session","sessions.restart":"Restart CLI","sessions.restartConfirmIntro":"You are about to restart this CLI.","sessions.restartConfirmStatus":"Current status","sessions.restartConfirmCli":"CLI","sessions.restartConfirmQuestion":"Restart this CLI?","sessions.restartFailed":"Restart failed","sessions.resume":"Resume Session","sessions.dismiss":"Close","sessions.closeConfirm":"Close this session?","sessions.resumeFailed":"Resume failed","sessions.insight":"Insight","sessions.insightLoading":"Analyzing\u2026","sessions.insightUnavailable":"Insight unavailable","sessions.insightEmpty":"No analyzable tool spans in this session yet.","sessions.insightMetrics":"spans {total} \xB7 failed {failed} \xB7 slow {slow} \xB7 read/write {rw} \xB7 compactions {compactions}","sessions.insightSuggestions":"Suggestions","sessions.insightSpans":"Action spans","sessions.insightCapped":"showing first {shown}/{total}","sessions.insightAsOf":"as of {asOf}","sessions.insightPartial":"(may exclude the in-flight latest turn)","monitorRoom.eyebrow":"Monitor room","monitorRoom.title":"Session Monitor Room","monitorRoom.subtitle":"Watch multiple session Web Terminals on one page for long-running multi-session work.","monitorRoom.backToSessions":"Back to sessions","monitorRoom.clear":"Clear","monitorRoom.clearConfirm":"Clear all sessions from the monitor room?","monitorRoom.summary":"{count} sessions, {live} terminals available","monitorRoom.autoActive":"Show active when empty","monitorRoom.autoActiveHelp":"Off by default. When enabled, an empty manual monitor list shows all sessions matching the Sessions page Active only filter.","monitorRoom.autoSummary":"No manual sessions; showing {count} active sessions, {live} terminals available","monitorRoom.emptySummary":"Monitor room is empty","monitorRoom.emptyTitle":"No sessions added yet","monitorRoom.emptyHelp":'Go back to Sessions, select sessions, then click "Add to monitor room".',"monitorRoom.autoEmptyTitle":"No active sessions","monitorRoom.autoEmptyHelp":"Auto display is enabled, but there are no sessions matching the Active only filter.","monitorRoom.openSessions":"Open sessions","monitorRoom.remove":"Remove","monitorRoom.openTerminal":"Open standalone terminal","monitorRoom.closePopover":"Close popover","monitorRoom.missing":"Not in the current list","monitorRoom.missingHelp":"This session may have been cleaned up, or the current dashboard snapshot has not loaded it yet.","monitorRoom.terminalUnavailable":"Terminal unavailable","monitorRoom.terminalUnavailableHelp":"The session may be closed, not started with a Web Terminal yet, or missing a reachable proxy port for this access mode.","monitorRoom.updated":"Updated {time}","nav.insights":"Data Insights","insights.title":"Data Insights","insights.refresh":"Refresh","insights.search":"Search session / bot / dir\u2026","insights.filter":"Filter","insights.filterAll":"All","insights.filterAllSessions":"All sessions","insights.filterAllCli":"All CLI","insights.filterReview":"Worth review","insights.filterFailed":"Has failures","insights.filterSlow":"Has slow spans","insights.loading":"Analyzing\u2026","insights.loaded":"Loaded {count} sessions","insights.unavailable":"Load failed","insights.listCount":"showing {shown}/{total}","insights.tabOverview":"Overview","insights.tabSessions":"Sessions","insights.tabDist":"Distribution","insights.tabHot":"Hotspots","insights.projectAll":"All projects","insights.timeAll":"All time","insights.time1d":"Last 1d","insights.time7d":"Last 7d","insights.time30d":"Last 30d","insights.clear":"Clear","insights.emptyAnalyzableHint":"Check \u201CIncl. unanalyzed\u201D to see the remaining sessions.","insights.showAll":"Incl. unanalyzed","insights.distHint":"Metric distribution across the currently filtered sessions \u2014 see the shape and where typical values land.","insights.distSpans":"Spans per session","insights.distFailed":"Failures per session","insights.distSlow":"Slow spans per session","insights.distAgentTime":"Agent working time","insights.distRw":"Read/write ratio","insights.distChurn":"Code churn (lines)","insights.distTrend":"Trend by day (last 4 weeks)","insights.distTrendSub":"sessions / day","insights.distMedian":"median {v}","insights.distEmpty":"No analyzable sessions under the current filter.","insights.disclosure":`Measurement note: durations count tool-execution time only and exclude time spent waiting for a user reply (question / plan approval), so they do not reflect wall-clock;
|
|
30
30
|
Codex reads files mostly via shell (exec_command), not counted as "read", so its read/write ratio runs low or 0;
|