mercury-agent 0.4.12 → 0.4.13

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.
@@ -44,7 +44,7 @@ type MercuryExt = {
44
44
  ): void;
45
45
  };
46
46
 
47
- import manifest from "../../../resources/connection-env-vars.json";
47
+ import manifest from "mercury-agent/resources/connection-env-vars.json";
48
48
 
49
49
  const gwsEnv = manifest.gws;
50
50
 
@@ -30,7 +30,7 @@ type MercuryExt = {
30
30
  }): void;
31
31
  };
32
32
 
33
- import manifest from "../../../resources/connection-env-vars.json";
33
+ import manifest from "mercury-agent/resources/connection-env-vars.json";
34
34
 
35
35
  const yahooEnv = manifest["yahoo-mail"];
36
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mercury-agent",
3
- "version": "0.4.12",
3
+ "version": "0.4.13",
4
4
  "description": "Personal AI assistant for chat platforms (WhatsApp, Slack, Discord, Telegram)",
5
5
  "license": "MIT",
6
6
  "author": "Avishai Tsabari",
@@ -385,6 +385,22 @@ const PACKAGE_ROOT = path.join(__dirname, "../..");
385
385
  /** Exit code 137 = SIGKILL (128 + 9), typically from OOM killer */
386
386
  const OOM_EXIT_CODE = 137;
387
387
 
388
+ let _isDockerDesktop: boolean | undefined;
389
+ function isDockerDesktop(): boolean {
390
+ if (_isDockerDesktop !== undefined) return _isDockerDesktop;
391
+ try {
392
+ const info = execFileSync("docker", ["info", "--format", "{{.Name}}"], {
393
+ encoding: "utf8",
394
+ timeout: 10_000,
395
+ stdio: ["pipe", "pipe", "pipe"],
396
+ }).trim();
397
+ _isDockerDesktop = info === "docker-desktop";
398
+ } catch {
399
+ _isDockerDesktop = false;
400
+ }
401
+ return _isDockerDesktop;
402
+ }
403
+
388
404
  export class AgentContainerRunner {
389
405
  // Inner containers now run detached (no long-lived `docker` child process to
390
406
  // hold a handle to), so we track only the container name — termination is by
@@ -934,7 +950,7 @@ export class AgentContainerRunner {
934
950
  "-e",
935
951
  "CONTAINER_RUNTIME=runsc",
936
952
  );
937
- } else if (this.config.containerBwrapDockerCompat) {
953
+ } else if (this.config.containerBwrapDockerCompat || isDockerDesktop()) {
938
954
  // runc + bwrap: bubblewrap needs extra namespace syscalls that Docker's default
939
955
  // seccomp/caps/AppArmor block. seccomp=unconfined allows unshare; apparmor=unconfined
940
956
  // allows mount(MS_SLAVE); SYS_ADMIN grants the mount capability. Bwrap remains active