openmausbot 0.1.91 → 0.1.92

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.
Files changed (150) hide show
  1. package/dist/assets/DesktopViewer-Do6lBa4C.js +5 -0
  2. package/dist/assets/{abnfDiagram-O67JEVCF-yP-w8pRq.js → abnfDiagram-O67JEVCF-Cd3X7Hxc.js} +1 -1
  3. package/dist/assets/{arc-DsivfZEh.js → arc-DIYc7Ymx.js} +1 -1
  4. package/dist/assets/{architectureDiagram-NJMV4G6O-CILw7lzT.js → architectureDiagram-NJMV4G6O-DBmRGVyP.js} +1 -1
  5. package/dist/assets/{blockDiagram-BEXU5L5S-DEQUV3HF.js → blockDiagram-BEXU5L5S-CPFePSEE.js} +1 -1
  6. package/dist/assets/{c4Diagram-YGBWAQC7-lSXCZoKA.js → c4Diagram-YGBWAQC7-DD_DO1qy.js} +1 -1
  7. package/dist/assets/channel-Dtk5Mtic.js +1 -0
  8. package/dist/assets/{chunk-2Q5K7J3B-QCD5bgWP.js → chunk-2Q5K7J3B-BNEeNSjX.js} +1 -1
  9. package/dist/assets/{chunk-3FUC2YCW-C5-iZJuL.js → chunk-3FUC2YCW-BbinLaqH.js} +2 -2
  10. package/dist/assets/{chunk-5VM5RSS4-cxsawMpY.js → chunk-5VM5RSS4-BBgYrgDR.js} +1 -1
  11. package/dist/assets/{chunk-GTNCS2PH-DV8tV8H7.js → chunk-GTNCS2PH-ezXj-kA-.js} +1 -1
  12. package/dist/assets/{chunk-GWA4HPMP-CJFZyfbW.js → chunk-GWA4HPMP-9FxZ3diV.js} +1 -1
  13. package/dist/assets/{chunk-JWPE2WC7-BigbMXco.js → chunk-JWPE2WC7-CO-40JpI.js} +1 -1
  14. package/dist/assets/{chunk-NETBCI7D-oVxTfpDy.js → chunk-NETBCI7D-BEhjslYE.js} +1 -1
  15. package/dist/assets/{chunk-WEXAMYUT-CH4BiroW.js → chunk-WEXAMYUT-CNeq4n7_.js} +1 -1
  16. package/dist/assets/{chunk-XXDRQBXY-KEDa6gax.js → chunk-XXDRQBXY-OsCY7KSi.js} +1 -1
  17. package/dist/assets/{classDiagram-v2-NBCMYWYE-BiPjfqVv.js → classDiagram-v2-NBCMYWYE-CloRUEtk.js} +1 -1
  18. package/dist/assets/{cose-bilkent-JH36ORCC-Caxew3OY.js → cose-bilkent-JH36ORCC-D1BGZhp4.js} +1 -1
  19. package/dist/assets/{cynefin-OW5HDTMX-B_Pui369.js → cynefin-OW5HDTMX-CUf4T2CN.js} +1 -1
  20. package/dist/assets/{cynefinDiagram-VND7K2PF-X64ydIhP.js → cynefinDiagram-VND7K2PF-DPEZrFGA.js} +1 -1
  21. package/dist/assets/{dagre-6A5THRUB-TqYCI1E1.js → dagre-6A5THRUB-bDe6GIv5.js} +1 -1
  22. package/dist/assets/{diagram-22UHCM2B-TeOt3rAQ.js → diagram-22UHCM2B-CdcUQz55.js} +1 -1
  23. package/dist/assets/{diagram-3UASUU5V-D70BLhDA.js → diagram-3UASUU5V-BZpqGg7c.js} +1 -1
  24. package/dist/assets/{diagram-ATOU4E4O-BbQDLwUC.js → diagram-ATOU4E4O-DvGM6ugp.js} +1 -1
  25. package/dist/assets/{diagram-CDSNMT55-ChNJZ1u-.js → diagram-CDSNMT55-DSTmMm0s.js} +1 -1
  26. package/dist/assets/{diagram-MLGK6HIB-DMBl2APa.js → diagram-MLGK6HIB-15cucnMn.js} +1 -1
  27. package/dist/assets/{diagram-MPIPVDR6-CEqDchOp.js → diagram-MPIPVDR6-tMbuaE6n.js} +1 -1
  28. package/dist/assets/{ebnfDiagram-ZINNZB2B-BVDKRp_-.js → ebnfDiagram-ZINNZB2B-BYxYzjHI.js} +1 -1
  29. package/dist/assets/{elk-276RUBZZ-CRkofO9B.js → elk-276RUBZZ-v6bj852W.js} +1 -1
  30. package/dist/assets/{erDiagram-OPXOYQCR-DruOMh5e.js → erDiagram-OPXOYQCR-5lBBlnd2.js} +1 -1
  31. package/dist/assets/{flowDiagram-KWPJA3E3-8GMQeB7t.js → flowDiagram-KWPJA3E3-CZyl1zIj.js} +1 -1
  32. package/dist/assets/{ganttDiagram-FUAMR5RP-ORE9jcsM.js → ganttDiagram-FUAMR5RP-BiAI-ltZ.js} +1 -1
  33. package/dist/assets/{gitGraphDiagram-X574FWY7-BmsedsWh.js → gitGraphDiagram-X574FWY7-BAZISkj3.js} +1 -1
  34. package/dist/assets/index-Cdmjrl28.css +1 -0
  35. package/dist/assets/{index-DKNEM8Q6.js → index-DGBaEXrM.js} +1 -1
  36. package/dist/assets/index-DR7YPMkW.js +597 -0
  37. package/dist/assets/{infoDiagram-VRGFBTTK-E_p7AooJ.js → infoDiagram-VRGFBTTK-B6ooOy-Z.js} +1 -1
  38. package/dist/assets/{ishikawaDiagram-OU5B5YK6-Y-B2mKda.js → ishikawaDiagram-OU5B5YK6-BZ9ksi-B.js} +1 -1
  39. package/dist/assets/{journeyDiagram-ZHPQQLJL-eA8RELcK.js → journeyDiagram-ZHPQQLJL-DWqlzIEe.js} +1 -1
  40. package/dist/assets/{kanban-definition-PNTS6WVX-DqIL2e8e.js → kanban-definition-PNTS6WVX-JX6piDwL.js} +1 -1
  41. package/dist/assets/{linear-yC_29R6e.js → linear-CmOWzX0P.js} +1 -1
  42. package/dist/assets/{mermaid.core-VhEMkSND.js → mermaid.core-CF1zwoQ-.js} +5 -5
  43. package/dist/assets/{mindmap-definition-NLK3R4M7-oJ7kyQZy.js → mindmap-definition-NLK3R4M7-CGh2K4fW.js} +1 -1
  44. package/dist/assets/{pegDiagram-GJSIUBJH-BmfYcY0O.js → pegDiagram-GJSIUBJH-CDwYN0s7.js} +1 -1
  45. package/dist/assets/{pieDiagram-5QR66LMP-DKvgP7w9.js → pieDiagram-5QR66LMP-1rfjJocB.js} +1 -1
  46. package/dist/assets/{quadrantDiagram-O4NWA36T-BEKL3W0L.js → quadrantDiagram-O4NWA36T-tKPvPiok.js} +1 -1
  47. package/dist/assets/{railroadDiagram-XR7U4H2S-BEsiqR5s.js → railroadDiagram-XR7U4H2S-BHLm5vXR.js} +1 -1
  48. package/dist/assets/{requirementDiagram-PLB6GJNP-DWBcWvAP.js → requirementDiagram-PLB6GJNP-CB45STp7.js} +1 -1
  49. package/dist/assets/{sankeyDiagram-IPEJSGJF-rpZ2_O4s.js → sankeyDiagram-IPEJSGJF-55QA_huC.js} +1 -1
  50. package/dist/assets/{sequenceDiagram-PO4LG4MO-B99HQdJR.js → sequenceDiagram-PO4LG4MO-BckFmQHn.js} +1 -1
  51. package/dist/assets/{sizeCapture-INFHLROL-BjN0qT5T.js → sizeCapture-INFHLROL-BFCOJF11.js} +1 -1
  52. package/dist/assets/{stateDiagram-v2-GCMORJYK-BbsVgGsC.js → stateDiagram-v2-GCMORJYK-CZvmiVVN.js} +1 -1
  53. package/dist/assets/{swimlanes-2SLR337P-DG3gKkeR.js → swimlanes-2SLR337P-BpDUCEKy.js} +1 -1
  54. package/dist/assets/swimlanesDiagram-TC7HE7FX-M0GYW9Y3.js +8 -0
  55. package/dist/assets/{timeline-definition-EJHVYXUP-BTHOdtF_.js → timeline-definition-EJHVYXUP-BpxHq6IK.js} +1 -1
  56. package/dist/assets/{usecaseDiagram-POWQR4AR-acLSLFwc.js → usecaseDiagram-POWQR4AR-Cj66vm02.js} +1 -1
  57. package/dist/assets/{vennDiagram-UO4OBE2U-C5JzNX9G.js → vennDiagram-UO4OBE2U-C9nRkWE_.js} +1 -1
  58. package/dist/assets/{wardleyDiagram-VNRHLVJA-DL1-PrR_.js → wardleyDiagram-VNRHLVJA-D-me_nWj.js} +1 -1
  59. package/dist/assets/{xychartDiagram-PMCCYNJV-Bvr1477p.js → xychartDiagram-PMCCYNJV-Dc_fL4mk.js} +1 -1
  60. package/dist/index.html +2 -2
  61. package/dist/novnc-NOTICE.txt +118 -0
  62. package/dist-server/cloud-home-start.js +112 -14
  63. package/dist-server/container-mcp.js +195 -15
  64. package/dist-server/drivers/agents-proxy.js +5 -4
  65. package/dist-server/enterprise/server/index.js +5 -1
  66. package/dist-server/index.js +9300 -4155
  67. package/dist-server/local-computer-proxy.js +128 -7
  68. package/dist-server/mcp-gate.js +11 -5
  69. package/dist-server/model-catalog/models-dev.snapshot.json +7299 -0
  70. package/dist-server/openmausbot.js +3910 -1182
  71. package/dist-server/pair-cli.js +3910 -1182
  72. package/dist-server/server/boat.js +2 -2
  73. package/dist-server/server/browser-engine.js +10 -1
  74. package/dist-server/server/browser-live.js +46 -2
  75. package/dist-server/server/browser-runtime.js +74 -8
  76. package/dist-server/server/browser-tool-shape.js +6 -4
  77. package/dist-server/server/chief-of-staff.js +1 -1
  78. package/dist-server/server/cloud-home-start.js +118 -26
  79. package/dist-server/server/cloud-home.js +39 -3
  80. package/dist-server/server/cloud-lending.js +74 -10
  81. package/dist-server/server/cloud-owner.js +196 -0
  82. package/dist-server/server/cloud-secrets-boot.js +6 -0
  83. package/dist-server/server/cloud-secrets.js +65 -0
  84. package/dist-server/server/config.js +174 -14
  85. package/dist-server/server/container-computer.js +3 -2
  86. package/dist-server/server/desktop-viewer-targets.js +26 -0
  87. package/dist-server/server/drivers/acp/core.js +167 -21
  88. package/dist-server/server/drivers/acp/opencode-go.js +614 -85
  89. package/dist-server/server/drivers/agents-catalog.js +6 -6
  90. package/dist-server/server/drivers/antigravity-acp.js +69 -11
  91. package/dist-server/server/drivers/antigravity-temp.js +360 -0
  92. package/dist-server/server/drivers/antigravity.js +21 -0
  93. package/dist-server/server/drivers/chatgpt-plan-auth.js +481 -0
  94. package/dist-server/server/drivers/claude.js +312 -34
  95. package/dist-server/server/drivers/codex.js +228 -18
  96. package/dist-server/server/drivers/grok.js +2 -2
  97. package/dist-server/server/drivers/mistral.js +4 -3
  98. package/dist-server/server/drivers/openai-chat-protocol.js +4 -3
  99. package/dist-server/server/drivers/openai-chat.js +41 -3
  100. package/dist-server/server/drivers/openai-compat.js +73 -23
  101. package/dist-server/server/engine-install.js +46 -12
  102. package/dist-server/server/env-path.js +15 -3
  103. package/dist-server/server/harness/registry.js +2 -2
  104. package/dist-server/server/index.js +1338 -184
  105. package/dist-server/server/lending-memory.js +479 -0
  106. package/dist-server/server/local-vm-idle.js +24 -6
  107. package/dist-server/server/managed-desktop.js +3 -0
  108. package/dist-server/server/mcp-bridge.js +5 -3
  109. package/dist-server/server/mcp-http.js +6 -3
  110. package/dist-server/server/mcp-oauth-discovery.js +133 -0
  111. package/dist-server/server/mcp-oauth-store.js +70 -0
  112. package/dist-server/server/mcp-oauth.js +550 -0
  113. package/dist-server/server/mcp-probe.js +14 -1
  114. package/dist-server/server/mcp-registry.js +43 -0
  115. package/dist-server/server/memory-upkeep.js +94 -84
  116. package/dist-server/server/model-catalog/catalog.js +374 -0
  117. package/dist-server/server/model-catalog/presets.js +176 -0
  118. package/dist-server/server/model-catalog/trim.js +219 -0
  119. package/dist-server/server/provider-key-check.js +4 -2
  120. package/dist-server/server/recent-work.js +1 -1
  121. package/dist-server/server/request-auth.js +23 -0
  122. package/dist-server/server/routes/antigravity-leftovers.js +45 -0
  123. package/dist-server/server/routes/bot-memory.js +31 -6
  124. package/dist-server/server/routes/desktop-viewer.js +194 -0
  125. package/dist-server/server/routine-requests.js +1 -1
  126. package/dist-server/server/routines.js +1 -1
  127. package/dist-server/server/sessions.js +56 -9
  128. package/dist-server/server/skills.js +25 -10
  129. package/dist-server/server/store.js +62 -122
  130. package/dist-server/server/thread-events.js +2 -0
  131. package/dist-server/server/thread-starters.js +33 -0
  132. package/dist-server/server/thread-title.js +46 -0
  133. package/dist-server/server/tts/fish.js +4 -5
  134. package/dist-server/server/tts/index.js +5 -3
  135. package/dist-server/server/vps-computer.js +79 -12
  136. package/dist-server/server/webhooks.js +18 -1
  137. package/dist-server/server/workspace-backup-policy.js +3 -0
  138. package/dist-server/server/workspace-backup.js +3 -0
  139. package/dist-server/server/workspace.js +65 -15
  140. package/dist-server/shared/workspace-backup-client.js +1 -0
  141. package/dist-server/src/lib/citations.js +177 -0
  142. package/dist-server/src/lib/composer-attachments.js +7 -1
  143. package/dist-server/vps-container-mcp.js +196 -15
  144. package/dist-server/workspace-backup.worker.js +73 -9
  145. package/enterprise/server/index.js +5 -1
  146. package/package.json +1 -1
  147. package/dist/assets/channel-DrfGMu7X.js +0 -1
  148. package/dist/assets/index-BlnCEcU6.js +0 -588
  149. package/dist/assets/index-DVxjOvID.css +0 -1
  150. package/dist/assets/swimlanesDiagram-TC7HE7FX-BCZhxl7e.js +0 -8
@@ -84,6 +84,9 @@ function nvmBinDirs() {
84
84
  return [];
85
85
  }
86
86
  }
87
+ function sealedFixture() {
88
+ return process.env.OMB_TEST_SEALED_PATH === "1";
89
+ }
87
90
  function knownDirs() {
88
91
  const home = homedir();
89
92
  return [
@@ -99,10 +102,13 @@ function knownDirs() {
99
102
  // opencode installer
100
103
  join(home, ".claude", "local"),
101
104
  // claude "local install"
102
- "/opt/homebrew/bin",
103
- // brew, Apple silicon
104
- "/usr/local/bin",
105
- // brew Intel / classic installs
105
+ // Machine-wide rather than under the (possibly temporary) home.
106
+ ...sealedFixture() ? [] : [
107
+ "/opt/homebrew/bin",
108
+ // brew, Apple silicon
109
+ "/usr/local/bin"
110
+ // brew Intel / classic installs
111
+ ],
106
112
  join(home, ".volta", "bin"),
107
113
  join(home, ".bun", "bin"),
108
114
  join(home, ".asdf", "shims"),
@@ -154,7 +160,7 @@ function augmentedPath() {
154
160
  ...(process.platform === "win32" ? windowsKnownDirs() : knownDirs()).filter((d) => existsSync(d))
155
161
  ]);
156
162
  }
157
- if (!probed && !process.env.VITEST && process.platform !== "win32") {
163
+ if (!probed && !process.env.VITEST && !sealedFixture() && process.platform !== "win32") {
158
164
  probed = true;
159
165
  probeLoginShellPath();
160
166
  }
@@ -178,6 +184,119 @@ function probeLoginShellPath() {
178
184
  }
179
185
  );
180
186
  }
187
+ function splitCliString(cli) {
188
+ const out = [];
189
+ let cur = "";
190
+ let quote = null;
191
+ for (const ch of cli.trim()) {
192
+ if (quote) {
193
+ if (ch === quote) quote = null;
194
+ else cur += ch;
195
+ } else if (ch === '"' || ch === "'") {
196
+ quote = ch;
197
+ } else if (/\s/.test(ch)) {
198
+ if (cur) out.push(cur);
199
+ cur = "";
200
+ } else {
201
+ cur += ch;
202
+ }
203
+ }
204
+ if (cur) out.push(cur);
205
+ return out;
206
+ }
207
+ function isFile(p) {
208
+ try {
209
+ return statSync(p, { throwIfNoEntry: false })?.isFile() ?? false;
210
+ } catch {
211
+ return false;
212
+ }
213
+ }
214
+ function whichWin(cli, env) {
215
+ const exts = ((env ?? process.env).PATHEXT ?? ".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);
216
+ const probe = (base) => {
217
+ const order = extname(base) ? [base, ...exts.map((e) => base + e)] : [...exts.map((e) => base + e), base];
218
+ return order.find(isFile) ?? null;
219
+ };
220
+ if (/[\\/]/.test(cli) || /^[a-zA-Z]:/.test(cli)) return probe(cli);
221
+ const path = env ? env.PATH ?? env.Path ?? "" : augmentedPath();
222
+ for (const dir of path.split(delimiter)) {
223
+ if (!dir) continue;
224
+ const hit = probe(join(dir, cli));
225
+ if (hit) return hit;
226
+ }
227
+ return null;
228
+ }
229
+ function nodeExe(near, env) {
230
+ const local = join(near, "node.exe");
231
+ if (isFile(local)) return local;
232
+ const onPath = whichWin("node.exe", env);
233
+ if (onPath && extname(onPath).toLowerCase() === ".exe") return onPath;
234
+ return process.versions.electron ? null : process.execPath;
235
+ }
236
+ function parseCmdShim(shim, env) {
237
+ let text;
238
+ try {
239
+ text = readFileSync(shim, "utf8");
240
+ } catch {
241
+ return null;
242
+ }
243
+ const dir = dirname(shim);
244
+ const npmEntry = /^SET "NP[MX]_CLI_JS=%~dp0\\([^"]+)"/im.exec(text);
245
+ const targets = [...npmEntry ? [npmEntry] : [], ...text.matchAll(/"%~?dp0%?\\?([^"]+)"/g)].map((m) => join(dir, m[1])).filter((p) => isFile(p) && basename(p).toLowerCase() !== "node.exe");
246
+ const script = targets.find((p) => /\.[cm]?js$/i.test(p));
247
+ if (script) {
248
+ const node = nodeExe(dir, env);
249
+ if (node) return { command: node, args: [script] };
250
+ }
251
+ const exe = targets.find((p) => extname(p).toLowerCase() === ".exe");
252
+ return exe ? { command: exe, args: [] } : null;
253
+ }
254
+ function parseNodeShebang(file, env) {
255
+ let head = "";
256
+ let fd = null;
257
+ try {
258
+ fd = openSync(file, "r");
259
+ const buf = Buffer.alloc(128);
260
+ const n = readSync(fd, buf, 0, buf.length, 0);
261
+ head = buf.subarray(0, n).toString("utf8").split("\n", 1)[0];
262
+ } catch {
263
+ return null;
264
+ } finally {
265
+ if (fd !== null) {
266
+ try {
267
+ closeSync(fd);
268
+ } catch {
269
+ }
270
+ }
271
+ }
272
+ if (!/^#!.*\bnode(\.exe)?\b/.test(head)) return null;
273
+ const node = nodeExe(dirname(file), env);
274
+ return node ? { command: node, args: [file] } : null;
275
+ }
276
+ function resolveWord(cli, args2, env) {
277
+ if (process.platform !== "win32") return { command: cli, args: args2 };
278
+ const file = whichWin(cli, env);
279
+ if (!file) return { command: cli, args: args2 };
280
+ const ext = extname(file).toLowerCase();
281
+ if (ext === ".cmd" || ext === ".bat") {
282
+ const direct = parseCmdShim(file, env);
283
+ return direct ? { command: direct.command, args: [...direct.args, ...args2] } : { command: file, args: args2 };
284
+ }
285
+ if (ext === ".exe" || ext === ".com") return { command: file, args: args2 };
286
+ const viaNode = parseNodeShebang(file, env);
287
+ return viaNode ? { command: viaNode.command, args: [...viaNode.args, ...args2] } : { command: file, args: args2 };
288
+ }
289
+ function resolveCliSpawn(cli, args2, env) {
290
+ const trimmed = cli.trim();
291
+ if (trimmed.includes(" ") && existsSync(trimmed)) return resolveWord(trimmed, args2, env);
292
+ const split = splitCliString(cli);
293
+ if (split.length > 1 || split[0] !== trimmed) {
294
+ const [head, ...fixed] = split;
295
+ if (!head) return { command: cli, args: args2 };
296
+ return resolveWord(head, [...fixed, ...args2], env);
297
+ }
298
+ return resolveWord(cli, args2, env);
299
+ }
181
300
 
182
301
  // server/mcp-tool-schema.ts
183
302
  var ROOT_COMBINATORS = ["anyOf", "oneOf", "allOf", "not"];
@@ -401,9 +520,11 @@ function createMcpBridgeInterceptor(options) {
401
520
  };
402
521
  }
403
522
  function runMcpBridge(options) {
404
- const child = spawn(options.command, options.args, {
523
+ const env = options.env ?? { ...process.env, PATH: augmentedPath() };
524
+ const { command: command2, args: args2 } = resolveCliSpawn(options.command, options.args, env);
525
+ const child = spawn(command2, args2, {
405
526
  shell: false,
406
- env: options.env ?? { ...process.env, PATH: augmentedPath() },
527
+ env,
407
528
  stdio: ["pipe", "pipe", "pipe"]
408
529
  });
409
530
  child.stdin.on("error", () => {
@@ -17,6 +17,9 @@ function nvmBinDirs() {
17
17
  return [];
18
18
  }
19
19
  }
20
+ function sealedFixture() {
21
+ return process.env.OMB_TEST_SEALED_PATH === "1";
22
+ }
20
23
  function knownDirs() {
21
24
  const home = homedir();
22
25
  return [
@@ -32,10 +35,13 @@ function knownDirs() {
32
35
  // opencode installer
33
36
  join(home, ".claude", "local"),
34
37
  // claude "local install"
35
- "/opt/homebrew/bin",
36
- // brew, Apple silicon
37
- "/usr/local/bin",
38
- // brew Intel / classic installs
38
+ // Machine-wide rather than under the (possibly temporary) home.
39
+ ...sealedFixture() ? [] : [
40
+ "/opt/homebrew/bin",
41
+ // brew, Apple silicon
42
+ "/usr/local/bin"
43
+ // brew Intel / classic installs
44
+ ],
39
45
  join(home, ".volta", "bin"),
40
46
  join(home, ".bun", "bin"),
41
47
  join(home, ".asdf", "shims"),
@@ -87,7 +93,7 @@ function augmentedPath() {
87
93
  ...(process.platform === "win32" ? windowsKnownDirs() : knownDirs()).filter((d) => existsSync(d))
88
94
  ]);
89
95
  }
90
- if (!probed && !process.env.VITEST && process.platform !== "win32") {
96
+ if (!probed && !process.env.VITEST && !sealedFixture() && process.platform !== "win32") {
91
97
  probed = true;
92
98
  probeLoginShellPath();
93
99
  }