openmausbot 0.1.85 → 0.1.87
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/README.md +2 -2
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/abnfDiagram-O67JEVCF-BTiuL79F.js +1 -0
- package/dist/assets/arc-C88Blc2v.js +1 -0
- package/dist/assets/architectureDiagram-NJMV4G6O-BZsJIZrb.js +36 -0
- package/dist/assets/blockDiagram-BEXU5L5S-CVeMe9Ah.js +140 -0
- package/dist/assets/c4Diagram-YGBWAQC7-Cedk3Bhx.js +38 -0
- package/dist/assets/channel-taCNRlUU.js +1 -0
- package/dist/assets/chunk-2Q5K7J3B-D-VRqzTB.js +1 -0
- package/dist/assets/chunk-3FUC2YCW-BChov01Y.js +2 -0
- package/dist/assets/chunk-5VM5RSS4-C-TfwvHy.js +15 -0
- package/dist/assets/chunk-GTNCS2PH-Db7CGj5Y.js +88 -0
- package/dist/assets/chunk-GWA4HPMP-CNvIfqKT.js +1 -0
- package/dist/assets/chunk-JWPE2WC7-C_bEp5tq.js +1 -0
- package/dist/assets/chunk-NETBCI7D-Coi4BOls.js +1 -0
- package/dist/assets/chunk-WEXAMYUT-CzylEuL3.js +1 -0
- package/dist/assets/chunk-XXDRQBXY-m7p7ztaD.js +1 -0
- package/dist/assets/classDiagram-v2-NBCMYWYE-BMy6o9x2.js +217 -0
- package/dist/assets/cose-bilkent-JH36ORCC-BDQ__0_J.js +1 -0
- package/dist/assets/cynefin-OW5HDTMX-Djv4ghUb.js +166 -0
- package/dist/assets/cynefinDiagram-VND7K2PF-BULrlGYH.js +62 -0
- package/dist/assets/cytoscape.esm-BB4DxJjf.js +321 -0
- package/dist/assets/dagre-6A5THRUB-D-jrT_hU.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-22UHCM2B-p2UhQmfL.js +200 -0
- package/dist/assets/diagram-3UASUU5V-DHvGWZ7q.js +24 -0
- package/dist/assets/diagram-ATOU4E4O-ChhKDot-.js +3 -0
- package/dist/assets/diagram-CDSNMT55-B-T7A43R.js +30 -0
- package/dist/assets/diagram-MLGK6HIB-CJm8ENNY.js +24 -0
- package/dist/assets/diagram-MPIPVDR6-510tlza8.js +41 -0
- package/dist/assets/ebnfDiagram-ZINNZB2B-PkvRPHel.js +1 -0
- package/dist/assets/elk-276RUBZZ-BVBVPoX3.js +27 -0
- package/dist/assets/erDiagram-OPXOYQCR-BgYMVm7L.js +99 -0
- package/dist/assets/flowDiagram-KWPJA3E3-BGqsnc_3.js +213 -0
- package/dist/assets/ganttDiagram-FUAMR5RP-D_-UeReH.js +292 -0
- package/dist/assets/gitGraphDiagram-X574FWY7-D0uooONx.js +106 -0
- package/dist/assets/graph-D8UmR1vK.js +1 -0
- package/dist/assets/index-BwdMAQ6p.css +1 -0
- package/dist/assets/index-ByJennr7.js +581 -0
- package/dist/assets/{index-CTNNoqSJ.js → index-zRsJERGJ.js} +1 -1
- package/dist/assets/infoDiagram-VRGFBTTK-B9e1z77f.js +2 -0
- package/dist/assets/init-Gi6I4Gst.js +1 -0
- package/dist/assets/ishikawaDiagram-OU5B5YK6-BB4vNwvD.js +70 -0
- package/dist/assets/journeyDiagram-ZHPQQLJL-DpkosOTB.js +139 -0
- package/dist/assets/kanban-definition-PNTS6WVX-DbDP4kUu.js +89 -0
- package/dist/assets/linear-DBJGPmjT.js +1 -0
- package/dist/assets/mermaid.core-DWPRi-ue.js +311 -0
- package/dist/assets/mindmap-definition-NLK3R4M7-nszBbJmx.js +96 -0
- package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/assets/pegDiagram-GJSIUBJH-CWykJWu_.js +1 -0
- package/dist/assets/pieDiagram-5QR66LMP-g3Da-Vnv.js +39 -0
- package/dist/assets/quadrantDiagram-O4NWA36T-Wzrlpzgh.js +7 -0
- package/dist/assets/railroadDiagram-XR7U4H2S-moHTFMC0.js +1 -0
- package/dist/assets/requirementDiagram-PLB6GJNP-CwfXdFH8.js +84 -0
- package/dist/assets/sankeyDiagram-IPEJSGJF-3ZROYvnq.js +40 -0
- package/dist/assets/sequenceDiagram-PO4LG4MO-E1TBebP8.js +169 -0
- package/dist/assets/sizeCapture-INFHLROL-DHKEU5pu.js +1 -0
- package/dist/assets/stateDiagram-v2-GCMORJYK-BguEj09D.js +291 -0
- package/dist/assets/swimlanes-2SLR337P-C7IDYnhd.js +1 -0
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BpEdoB2e.js +8 -0
- package/dist/assets/timeline-definition-EJHVYXUP-DCW-F5PW.js +120 -0
- package/dist/assets/usecaseDiagram-POWQR4AR-xBMFtWYV.js +370 -0
- package/dist/assets/vennDiagram-UO4OBE2U-B5nIkuH8.js +34 -0
- package/dist/assets/wardleyDiagram-VNRHLVJA-DYFAhdbr.js +78 -0
- package/dist/assets/xychartDiagram-PMCCYNJV-DeXwX6Cz.js +7 -0
- package/dist/index.html +2 -2
- package/dist-server/browser-proxy.js +2 -1
- package/dist-server/container-mcp.js +1047 -173
- package/dist-server/drivers/agents-proxy.js +16121 -1504
- package/dist-server/drivers/phone-proxy.js +33 -2
- package/dist-server/enterprise/LICENSE +32 -0
- package/dist-server/enterprise/server/index.js +5 -5
- package/dist-server/index.js +16134 -7446
- package/dist-server/local-computer-proxy.js +3 -3
- package/dist-server/local-computer.js +53 -17
- package/dist-server/mcp-server.js +3 -1
- package/dist-server/openmausbot.js +9353 -6124
- package/dist-server/pair-cli.js +9353 -6124
- package/dist-server/permission-proxy.js +29 -9
- package/dist-server/server/admin-activity.js +410 -0
- package/dist-server/server/attachments.js +55 -0
- package/dist-server/server/auto-approve.js +4 -3
- package/dist-server/server/auto-vm-claims.js +1 -0
- package/dist-server/server/bot-package.js +18 -292
- package/dist-server/server/bot-profile.js +5 -17
- package/dist-server/server/bot-visibility.js +462 -0
- package/dist-server/server/box-create-idempotency.js +3 -3
- package/dist-server/server/box.js +59 -56
- package/dist-server/server/browser-proxy.js +3 -2
- package/dist-server/server/browser-runtime.js +38 -2
- package/dist-server/server/channel-queue.js +2 -0
- package/dist-server/server/cli-prompts.js +24 -2
- package/dist-server/server/cli.js +81 -12
- package/dist-server/server/command-allowlist.js +154 -0
- package/dist-server/server/composio.js +49 -11
- package/dist-server/server/computer-wait.js +22 -9
- package/dist-server/server/config.js +133 -17
- package/dist-server/server/connector-verdict.js +141 -0
- package/dist-server/server/container-computer.js +1 -1
- package/dist-server/server/decision-log.js +209 -48
- package/dist-server/server/default-model-selection.js +29 -3
- package/dist-server/server/delegations.js +97 -44
- package/dist-server/server/drivers/acp/core.js +163 -33
- package/dist-server/server/drivers/acp/grok.js +4 -3
- package/dist-server/server/drivers/agents-call.js +1162 -0
- package/dist-server/server/drivers/agents-catalog.js +689 -0
- package/dist-server/server/drivers/agents-client.js +28 -0
- package/dist-server/server/drivers/agents-proxy.js +18 -1722
- package/dist-server/server/drivers/boxagent.js +174 -36
- package/dist-server/server/drivers/builtIn.js +2 -0
- package/dist-server/server/drivers/chat-box-tools.js +90 -0
- package/dist-server/server/drivers/chat-images.js +54 -0
- package/dist-server/server/drivers/chat-mcp-tools.js +55 -10
- package/dist-server/server/drivers/chat-tool-approval.js +70 -18
- package/dist-server/server/drivers/claude.js +28 -8
- package/dist-server/server/drivers/codex-instructions.js +48 -6
- package/dist-server/server/drivers/codex-mcp-names.js +44 -0
- package/dist-server/server/drivers/codex-tool-surface.js +20 -0
- package/dist-server/server/drivers/codex.js +121 -34
- package/dist-server/server/drivers/grok.js +2 -1
- package/dist-server/server/drivers/mistral.js +115 -0
- package/dist-server/server/drivers/openai-chat.js +155 -32
- package/dist-server/server/drivers/openai-compat.js +16 -8
- package/dist-server/server/drivers/permission-command.js +35 -0
- package/dist-server/server/drivers/phone-proxy.js +47 -2
- package/dist-server/server/drivers/pi.js +75 -4
- package/dist-server/server/drivers/prompt-split.js +87 -0
- package/dist-server/server/enterprise.js +97 -16
- package/dist-server/server/external-runtime.js +83 -0
- package/dist-server/server/fleet.js +1 -1
- package/dist-server/server/group-thread-usage.js +103 -0
- package/dist-server/server/guarded-requests.js +60 -0
- package/dist-server/server/harness/http.js +61 -0
- package/dist-server/server/harness/registry.js +1 -0
- package/dist-server/server/hosted-models.js +151 -0
- package/dist-server/server/hosted-slack.js +11 -0
- package/dist-server/server/index.js +3091 -658
- package/dist-server/server/local-computer.js +72 -23
- package/dist-server/server/managed-desktop.js +79 -14
- package/dist-server/server/managed-policy.js +153 -0
- package/dist-server/server/mcp-bridge.js +6 -6
- package/dist-server/server/message-db.js +28 -0
- package/dist-server/server/model-context-window.js +7 -0
- package/dist-server/server/model-prices.js +121 -0
- package/dist-server/server/new-bot-defaults.js +115 -0
- package/dist-server/server/notify.js +10 -1
- package/dist-server/server/org-library.js +1051 -0
- package/dist-server/server/package-export.js +627 -39
- package/dist-server/server/package-import.js +458 -0
- package/dist-server/server/package-parts.js +87 -0
- package/dist-server/server/peer-approval.js +16 -7
- package/dist-server/server/peer-roster.js +23 -2
- package/dist-server/server/presets.js +492 -0
- package/dist-server/server/provider-key-check.js +3 -2
- package/dist-server/server/published-teams.js +80 -0
- package/dist-server/server/recent-work.js +15 -0
- package/dist-server/server/request-auth.js +96 -0
- package/dist-server/server/room-handoffs.js +44 -14
- package/dist-server/server/routes/bot-presets.js +25 -0
- package/dist-server/server/routes/hosted-slack.js +20 -0
- package/dist-server/server/routes/table.js +14 -0
- package/dist-server/server/routine-requests.js +6 -3
- package/dist-server/server/routines.js +63 -1
- package/dist-server/server/section-context.js +10 -0
- package/dist-server/server/skills.js +34 -61
- package/dist-server/server/spend.js +111 -16
- package/dist-server/server/steer-queue.js +9 -3
- package/dist-server/server/store.js +550 -35
- package/dist-server/server/surface.js +10 -4
- package/dist-server/server/system-prompt.js +12 -4
- package/dist-server/server/team-backup.js +16 -3
- package/dist-server/server/team-computers.js +10 -0
- package/dist-server/server/team-library.js +6 -2
- package/dist-server/server/team-manifest.js +4 -3
- package/dist-server/server/team-setup-requests.js +16 -5
- package/dist-server/server/thread-events.js +17 -1
- package/dist-server/server/thread-starters.js +53 -0
- package/dist-server/server/turn-context.js +2 -0
- package/dist-server/server/turn-watchdog.js +12 -3
- package/dist-server/server/usage-ledger.js +43 -9
- package/dist-server/server/vps-computer.js +139 -51
- package/dist-server/server/vps-container-mcp.js +7 -0
- package/dist-server/server/vps-ssh.js +36 -7
- package/dist-server/server/workspace-backup-policy.js +21 -2
- package/dist-server/server/workspace-backup.js +7 -4
- package/dist-server/server/workspace.js +1 -1
- package/dist-server/shared/approval-mode.js +1 -1
- package/dist-server/shared/ask-question.js +188 -12
- package/dist-server/shared/bot-profile.js +15 -0
- package/dist-server/shared/command-allowlist.js +1 -0
- package/dist-server/shared/credential-request.js +1 -1
- package/dist-server/shared/mention-boundary.js +15 -0
- package/dist-server/shared/package-format.js +967 -0
- package/dist-server/shared/routines.js +7 -1
- package/dist-server/shared/skill-md.js +64 -0
- package/dist-server/shared/team-backup.js +9 -0
- package/dist-server/shared/wire.js +4 -0
- package/dist-server/src/lib/composer-attachments.js +16 -0
- package/dist-server/vps-container-mcp.js +1147 -179
- package/enterprise/README.md +33 -12
- package/enterprise/server/index.js +5 -5
- package/package.json +1 -1
- package/dist/assets/index-Ba9G44HI.js +0 -310
- package/dist/assets/index-CkRNp7wX.css +0 -1
|
@@ -260,11 +260,11 @@ function createToolListNormalizer() {
|
|
|
260
260
|
// server/mcp-bridge.ts
|
|
261
261
|
var BRIDGE_INACTIVITY_MS = 45e3;
|
|
262
262
|
var PROBE_TIMEOUT_MS = 1e4;
|
|
263
|
-
function runLivenessProbe(probe, timeoutMs = PROBE_TIMEOUT_MS) {
|
|
263
|
+
function runLivenessProbe(probe, timeoutMs = PROBE_TIMEOUT_MS, env) {
|
|
264
264
|
return new Promise((resolve) => {
|
|
265
265
|
const child = spawn(probe.command, probe.args, {
|
|
266
266
|
shell: false,
|
|
267
|
-
env: { ...process.env, PATH: augmentedPath() },
|
|
267
|
+
env: env ?? { ...process.env, PATH: augmentedPath() },
|
|
268
268
|
stdio: ["ignore", "ignore", "ignore"]
|
|
269
269
|
});
|
|
270
270
|
const timer = setTimeout(() => {
|
|
@@ -451,7 +451,7 @@ function runMcpBridge(options) {
|
|
|
451
451
|
const liveness = options.liveness;
|
|
452
452
|
watchdog = createInactivityWatchdog({
|
|
453
453
|
inactivityMs: BRIDGE_INACTIVITY_MS,
|
|
454
|
-
probe: () => runLivenessProbe(liveness),
|
|
454
|
+
probe: () => runLivenessProbe(liveness, PROBE_TIMEOUT_MS, options.env),
|
|
455
455
|
onDead: () => {
|
|
456
456
|
process.stderr.write(
|
|
457
457
|
`${options.label} transport went silent and stopped answering liveness probes; ending the bridge
|
|
@@ -91,16 +91,14 @@ function sameDriverFileIdentity(expected, actual) {
|
|
|
91
91
|
}
|
|
92
92
|
function decodeLegacyDescriptor(value, platform) {
|
|
93
93
|
const supportedPlatform = legacyPlatform(platform);
|
|
94
|
-
if (!supportedPlatform || !value || value.mode === "
|
|
94
|
+
if (!supportedPlatform || !value || !(value.mode === "embedded" || supportedPlatform === "darwin" && value.mode === "standalone") || Object.hasOwn(value, "status") && value.status !== "ready" || typeof value.socketPath !== "string" || !value.socketPath || typeof value.mcpCommand !== "string" || !value.mcpCommand.trim()) {
|
|
95
95
|
return null;
|
|
96
96
|
}
|
|
97
|
-
if (
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
const args = value.mcpArgs ?? ["mcp"];
|
|
97
|
+
if (!Array.isArray(value.mcpArgs) || value.mcpArgs[0] !== "mcp") return null;
|
|
98
|
+
if (!value.mcpEnv || typeof value.mcpEnv !== "object" || Array.isArray(value.mcpEnv)) return null;
|
|
99
|
+
const args = value.mcpArgs;
|
|
102
100
|
if (!args.every((arg) => typeof arg === "string")) return null;
|
|
103
|
-
const env = value.mcpEnv
|
|
101
|
+
const env = value.mcpEnv;
|
|
104
102
|
if (!Object.values(env).every((entry) => typeof entry === "string")) return null;
|
|
105
103
|
return {
|
|
106
104
|
command: value.mcpCommand,
|
|
@@ -219,6 +217,17 @@ function validateLegacyDescriptorRuntime(descriptorFile, platform, { uid = proce
|
|
|
219
217
|
return false;
|
|
220
218
|
}
|
|
221
219
|
}
|
|
220
|
+
function firstPresentCuaDescriptor(candidates) {
|
|
221
|
+
for (const file of new Set(candidates)) {
|
|
222
|
+
try {
|
|
223
|
+
lstatSync(file);
|
|
224
|
+
return file;
|
|
225
|
+
} catch (error) {
|
|
226
|
+
if (error.code !== "ENOENT") return file;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
222
231
|
function readCuaConnection({
|
|
223
232
|
platform = process.platform,
|
|
224
233
|
userData = process.env.OMB_USER_DATA,
|
|
@@ -227,23 +236,49 @@ function readCuaConnection({
|
|
|
227
236
|
validateLegacyRuntime = validateLegacyDescriptorRuntime
|
|
228
237
|
} = {}) {
|
|
229
238
|
const candidates = userData ? [join2(userData, "cua-connection.json")] : [];
|
|
230
|
-
if (platform === "darwin") {
|
|
239
|
+
if (platform === "darwin" && !userData) {
|
|
231
240
|
for (const directory of ["OpenMausBot", "openmausbot", "OpenGrokBot", "opengrokbot"]) {
|
|
232
241
|
candidates.push(join2(home, "Library", "Application Support", directory, "cua-connection.json"));
|
|
233
242
|
}
|
|
234
243
|
}
|
|
235
|
-
|
|
236
|
-
|
|
244
|
+
const file = firstPresentCuaDescriptor(candidates);
|
|
245
|
+
if (!file) return null;
|
|
246
|
+
try {
|
|
247
|
+
const raw = JSON.parse(readFileSync(file, "utf8"));
|
|
248
|
+
if (platform === "linux") {
|
|
249
|
+
const decoded = decodeLinuxDescriptor(raw);
|
|
250
|
+
if (decoded && validateLinuxRuntime(file, raw)) return decoded;
|
|
251
|
+
} else {
|
|
252
|
+
const decoded = decodeLegacyDescriptor(raw, platform);
|
|
253
|
+
if (decoded && validateLegacyRuntime(file, platform)) return decoded;
|
|
254
|
+
}
|
|
255
|
+
} catch {
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
function readCuaUnavailableReason({
|
|
260
|
+
platform = process.platform,
|
|
261
|
+
userData = process.env.OMB_USER_DATA,
|
|
262
|
+
home = homedir()
|
|
263
|
+
} = {}) {
|
|
264
|
+
if (!legacyPlatform(platform)) return null;
|
|
265
|
+
const candidates = userData ? [join2(userData, "cua-connection.json")] : [];
|
|
266
|
+
if (platform === "darwin" && !userData) {
|
|
267
|
+
for (const directory of ["OpenMausBot", "openmausbot", "OpenGrokBot", "opengrokbot"]) {
|
|
268
|
+
candidates.push(join2(home, "Library", "Application Support", directory, "cua-connection.json"));
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const file = firstPresentCuaDescriptor(candidates);
|
|
272
|
+
if (!file) return null;
|
|
273
|
+
try {
|
|
274
|
+
if (validateLegacyDescriptorRuntime(file, platform)) {
|
|
237
275
|
const raw = JSON.parse(readFileSync(file, "utf8"));
|
|
238
|
-
if (
|
|
239
|
-
const
|
|
240
|
-
if (
|
|
241
|
-
} else {
|
|
242
|
-
const decoded = decodeLegacyDescriptor(raw, platform);
|
|
243
|
-
if (decoded && validateLegacyRuntime(file, platform)) return decoded;
|
|
276
|
+
if (raw && typeof raw === "object" && !Array.isArray(raw) && Object.keys(raw).length === 2 && raw.mode === "unavailable") {
|
|
277
|
+
const reason = raw.reason;
|
|
278
|
+
if (typeof reason === "string" && reason.trim() && reason.length <= 2e3) return reason.trim();
|
|
244
279
|
}
|
|
245
|
-
} catch {
|
|
246
280
|
}
|
|
281
|
+
} catch {
|
|
247
282
|
}
|
|
248
283
|
return null;
|
|
249
284
|
}
|
|
@@ -253,5 +288,6 @@ export {
|
|
|
253
288
|
decodeLinuxDescriptor,
|
|
254
289
|
gatedLocalComputer,
|
|
255
290
|
readCuaConnection,
|
|
291
|
+
readCuaUnavailableReason,
|
|
256
292
|
validateLinuxDescriptorRuntime
|
|
257
293
|
};
|
|
@@ -519,6 +519,7 @@ function projectTask(task, activeThreadId) {
|
|
|
519
519
|
title: task.title,
|
|
520
520
|
createdAt: task.createdAt,
|
|
521
521
|
...typeof task.busy === "boolean" ? { busy: task.busy } : {},
|
|
522
|
+
...typeof task.waitingForTeammates === "boolean" ? { waitingForTeammates: task.waitingForTeammates } : {},
|
|
522
523
|
...task.activity ? { activity: task.activity } : {},
|
|
523
524
|
...task.modelSelection ? { modelSelection: task.modelSelection } : {},
|
|
524
525
|
...typeof activeThreadId === "string" ? { active: task.threadId === activeThreadId } : {},
|
|
@@ -540,6 +541,7 @@ function projectBot(bot) {
|
|
|
540
541
|
chiefOfStaff: Boolean(bot.chiefOfStaff),
|
|
541
542
|
modelSelection: bot.modelSelection,
|
|
542
543
|
busy: Boolean(bot.busy),
|
|
544
|
+
waitingForTeammates: Boolean(bot.waitingForTeammates),
|
|
543
545
|
activity: bot.activity,
|
|
544
546
|
unread: Boolean(bot.unread),
|
|
545
547
|
activeTaskId: bot.threadId,
|
|
@@ -978,7 +980,7 @@ async function handleToolCall(name, args, baseFetcher = request, signal) {
|
|
|
978
980
|
if (task.activity === "waiting-on-you") return terminal("needs-user");
|
|
979
981
|
if (task.activity === "dead") return terminal("failed");
|
|
980
982
|
if (task.activity === "no-signal") return terminal("stalled");
|
|
981
|
-
if (!task.busy) return terminal("settled");
|
|
983
|
+
if (!task.busy && !task.waitingForTeammates) return terminal("settled");
|
|
982
984
|
sawBusy = true;
|
|
983
985
|
} else {
|
|
984
986
|
if (target.threadId !== taskId) return terminal("settled");
|