@moxt-ai/mobius 0.0.386 → 0.0.387

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 (110) hide show
  1. package/dist/{chunk-FVYSQLQL.js → chunk-A62FEGIN.js} +11 -24
  2. package/dist/{chunk-FVYSQLQL.js.map → chunk-A62FEGIN.js.map} +3 -3
  3. package/dist/{chunk-Z6JG65YI.js → chunk-S7PKNDIS.js} +2 -2
  4. package/dist/{chunk-Z6JG65YI.js.map → chunk-S7PKNDIS.js.map} +1 -1
  5. package/dist/cli/handler/daemon/index.d.ts.map +1 -1
  6. package/dist/cli/handler/daemon/index.js +9 -4
  7. package/dist/cli/handler/daemon/index.js.map +1 -1
  8. package/dist/cli/handler/daemon/quit.d.ts.map +1 -1
  9. package/dist/cli/handler/daemon/quit.js +5 -4
  10. package/dist/cli/handler/daemon/quit.js.map +1 -1
  11. package/dist/cli/handler/daemon/release.js +1 -1
  12. package/dist/cli/handler/daemon/start.d.ts.map +1 -1
  13. package/dist/cli/handler/daemon/start.js +3 -3
  14. package/dist/cli/handler/daemon/start.js.map +1 -1
  15. package/dist/cli/handler/daemon/upgrade.d.ts.map +1 -1
  16. package/dist/cli/handler/daemon/upgrade.js +8 -24
  17. package/dist/cli/handler/daemon/upgrade.js.map +1 -1
  18. package/dist/cli/handler/pair/pair.js +3 -3
  19. package/dist/cli/handler/pair/pair.js.map +1 -1
  20. package/dist/cli/handler/pair/remove.js +1 -1
  21. package/dist/cli/handler/pair/stop.js +1 -1
  22. package/dist/cli/handler/version/index.d.ts.map +1 -1
  23. package/dist/cli/handler/version/index.js +6 -2
  24. package/dist/cli/handler/version/index.js.map +1 -1
  25. package/dist/{cli-NLIGRBEL.js → cli-43LPJ5ID.js} +412 -1143
  26. package/dist/cli-43LPJ5ID.js.map +7 -0
  27. package/dist/cli.js +1998 -6
  28. package/dist/cli.js.map +4 -4
  29. package/dist/daemon/control/protocol.d.ts +1 -133
  30. package/dist/daemon/control/protocol.d.ts.map +1 -1
  31. package/dist/daemon/control/protocol.js +4 -63
  32. package/dist/daemon/control/protocol.js.map +1 -1
  33. package/dist/daemon/lifecycle/daemon-client.d.ts +8 -0
  34. package/dist/daemon/lifecycle/daemon-client.d.ts.map +1 -0
  35. package/dist/daemon/lifecycle/daemon-client.js +154 -0
  36. package/dist/daemon/lifecycle/daemon-client.js.map +1 -0
  37. package/dist/daemon/lifecycle/{worker.d.ts → daemon.d.ts} +2 -2
  38. package/dist/daemon/lifecycle/daemon.d.ts.map +1 -0
  39. package/dist/daemon/lifecycle/daemon.js +266 -0
  40. package/dist/daemon/lifecycle/daemon.js.map +1 -0
  41. package/dist/daemon/lifecycle/unhandled-rejection.d.ts +1 -2
  42. package/dist/daemon/lifecycle/unhandled-rejection.d.ts.map +1 -1
  43. package/dist/daemon/lifecycle/unhandled-rejection.js +4 -7
  44. package/dist/daemon/lifecycle/unhandled-rejection.js.map +1 -1
  45. package/dist/daemon/upgrades/data.d.ts +0 -1
  46. package/dist/daemon/upgrades/data.d.ts.map +1 -1
  47. package/dist/daemon/upgrades/data.js +0 -5
  48. package/dist/daemon/upgrades/data.js.map +1 -1
  49. package/dist/engine/util/process/platform/windows.d.ts.map +1 -1
  50. package/dist/engine/util/process/platform/windows.js +7 -4
  51. package/dist/engine/util/process/platform/windows.js.map +1 -1
  52. package/dist/engine.js +2 -2
  53. package/dist/storage/daemon/daemon-lock.d.ts +9 -0
  54. package/dist/storage/daemon/daemon-lock.d.ts.map +1 -0
  55. package/dist/storage/daemon/{manager-lock.js → daemon-lock.js} +22 -7
  56. package/dist/storage/daemon/daemon-lock.js.map +1 -0
  57. package/dist/storage/state-root-layout.d.ts +0 -2
  58. package/dist/storage/state-root-layout.d.ts.map +1 -1
  59. package/dist/storage/state-root-layout.js +0 -2
  60. package/dist/storage/state-root-layout.js.map +1 -1
  61. package/package.json +1 -1
  62. package/dist/chunk-T2GPD4RK.js +0 -2002
  63. package/dist/chunk-T2GPD4RK.js.map +0 -7
  64. package/dist/cli/handler/daemon/manager.d.ts +0 -4
  65. package/dist/cli/handler/daemon/manager.d.ts.map +0 -1
  66. package/dist/cli/handler/daemon/manager.js +0 -9
  67. package/dist/cli/handler/daemon/manager.js.map +0 -1
  68. package/dist/cli/handler/daemon/worker.d.ts +0 -4
  69. package/dist/cli/handler/daemon/worker.d.ts.map +0 -1
  70. package/dist/cli/handler/daemon/worker.js +0 -7
  71. package/dist/cli/handler/daemon/worker.js.map +0 -1
  72. package/dist/cli-NLIGRBEL.js.map +0 -7
  73. package/dist/daemon/control/switch-status.d.ts +0 -4
  74. package/dist/daemon/control/switch-status.d.ts.map +0 -1
  75. package/dist/daemon/control/switch-status.js +0 -10
  76. package/dist/daemon/control/switch-status.js.map +0 -1
  77. package/dist/daemon/lifecycle/manager-client.d.ts +0 -8
  78. package/dist/daemon/lifecycle/manager-client.d.ts.map +0 -1
  79. package/dist/daemon/lifecycle/manager-client.js +0 -130
  80. package/dist/daemon/lifecycle/manager-client.js.map +0 -1
  81. package/dist/daemon/lifecycle/manager.d.ts +0 -3
  82. package/dist/daemon/lifecycle/manager.d.ts.map +0 -1
  83. package/dist/daemon/lifecycle/manager.js +0 -215
  84. package/dist/daemon/lifecycle/manager.js.map +0 -1
  85. package/dist/daemon/lifecycle/worker-lifecycle-log.d.ts +0 -14
  86. package/dist/daemon/lifecycle/worker-lifecycle-log.d.ts.map +0 -1
  87. package/dist/daemon/lifecycle/worker-lifecycle-log.js +0 -63
  88. package/dist/daemon/lifecycle/worker-lifecycle-log.js.map +0 -1
  89. package/dist/daemon/lifecycle/worker-process.d.ts +0 -26
  90. package/dist/daemon/lifecycle/worker-process.d.ts.map +0 -1
  91. package/dist/daemon/lifecycle/worker-process.js +0 -145
  92. package/dist/daemon/lifecycle/worker-process.js.map +0 -1
  93. package/dist/daemon/lifecycle/worker.d.ts.map +0 -1
  94. package/dist/daemon/lifecycle/worker.js +0 -213
  95. package/dist/daemon/lifecycle/worker.js.map +0 -1
  96. package/dist/daemon/upgrades/package.d.ts +0 -9
  97. package/dist/daemon/upgrades/package.d.ts.map +0 -1
  98. package/dist/daemon/upgrades/package.js +0 -157
  99. package/dist/daemon/upgrades/package.js.map +0 -1
  100. package/dist/daemon/upgrades/upgrade.d.ts +0 -21
  101. package/dist/daemon/upgrades/upgrade.d.ts.map +0 -1
  102. package/dist/daemon/upgrades/upgrade.js +0 -242
  103. package/dist/daemon/upgrades/upgrade.js.map +0 -1
  104. package/dist/storage/daemon/manager-lock.d.ts +0 -9
  105. package/dist/storage/daemon/manager-lock.d.ts.map +0 -1
  106. package/dist/storage/daemon/manager-lock.js.map +0 -1
  107. package/dist/storage/daemon/release-files.d.ts +0 -9
  108. package/dist/storage/daemon/release-files.d.ts.map +0 -1
  109. package/dist/storage/daemon/release-files.js +0 -14
  110. package/dist/storage/daemon/release-files.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import type { InstallationDirectory } from "../../engine/storage/installation/installation-files.ts";
2
+ /**
3
+ * Takes the lock file that makes this process the only daemon. A lock left by a
4
+ * process that is gone is replaced. Returns the release function, or null when a live process holds it.
5
+ */
6
+ export declare function acquireDaemonLock(stateDirectory: InstallationDirectory, filename?: "manager.lock" | "worker.lock"): Promise<(() => Promise<void>) | null>;
7
+ /** Keep the released lock filename; a dead owner does not keep the daemon alive. */
8
+ export declare function daemonLockExists(stateDirectory: InstallationDirectory, filename?: "manager.lock" | "worker.lock"): Promise<boolean>;
9
+ //# sourceMappingURL=daemon-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-lock.d.ts","sourceRoot":"","sources":["../../../src/storage/daemon/daemon-lock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAGrG;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,cAAc,EAAE,qBAAqB,EACrC,QAAQ,GAAE,cAAc,GAAG,aAA8B,GAC1D,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CA0BvC;AAED,oFAAoF;AACpF,wBAAsB,gBAAgB,CAClC,cAAc,EAAE,qBAAqB,EACrC,QAAQ,GAAE,cAAc,GAAG,aAA8B,GAC1D,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
@@ -2,11 +2,11 @@ import { readFile, unlink, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { isNodeError } from "../../engine/util/node-error.js";
4
4
  /**
5
- * Takes the lock file that makes this process the only holder of a daemon role. A lock left by a
5
+ * Takes the lock file that makes this process the only daemon. A lock left by a
6
6
  * process that is gone is replaced. Returns the release function, or null when a live process holds it.
7
7
  */
8
- export async function acquireManagerLock(stateDirectory, name = "manager.lock") {
9
- const path = join(stateDirectory, name);
8
+ export async function acquireDaemonLock(stateDirectory, filename = "manager.lock") {
9
+ const path = join(stateDirectory, filename);
10
10
  for (let attempt = 0; attempt < 2; attempt += 1) {
11
11
  try {
12
12
  await writeFile(path, `${process.pid.toString()}\n`, { flag: "wx", mode: 0o600 });
@@ -34,10 +34,25 @@ export async function acquireManagerLock(stateDirectory, name = "manager.lock")
34
34
  }
35
35
  return null;
36
36
  }
37
- /** True while the manager lock file exists. */
38
- export async function managerLockExists(stateDirectory) {
37
+ /** Keep the released lock filename; a dead owner does not keep the daemon alive. */
38
+ export async function daemonLockExists(stateDirectory, filename = "manager.lock") {
39
39
  try {
40
- await readFile(join(stateDirectory, "manager.lock"), "utf8");
40
+ const pid = Number((await readFile(join(stateDirectory, filename), "utf8")).trim());
41
+ // The exclusive file can be observed before its owner finishes writing the PID.
42
+ if (!Number.isSafeInteger(pid) || pid <= 1) {
43
+ return true;
44
+ }
45
+ try {
46
+ process.kill(pid, 0);
47
+ }
48
+ catch (cause) {
49
+ if (isNodeError(cause, "ESRCH")) {
50
+ return false;
51
+ }
52
+ if (!isNodeError(cause, "EPERM")) {
53
+ throw cause;
54
+ }
55
+ }
41
56
  return true;
42
57
  }
43
58
  catch (cause) {
@@ -47,4 +62,4 @@ export async function managerLockExists(stateDirectory) {
47
62
  throw cause;
48
63
  }
49
64
  }
50
- //# sourceMappingURL=manager-lock.js.map
65
+ //# sourceMappingURL=daemon-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-lock.js","sourceRoot":"","sources":["../../../src/storage/daemon/daemon-lock.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,6 @@ export declare const STATE_ROOT_LAYOUT: Readonly<{
4
4
  currentData: "current-data.txt";
5
5
  /** Applications' installations: `installations/<application>/<installation>`. */
6
6
  installations: "installations";
7
- /** Managed CLI releases: `npm/<version>`. */
8
- releases: "npm";
9
7
  /** Each CLI version's data: `versions/<version>`. */
10
8
  versions: "versions";
11
9
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"state-root-layout.d.ts","sourceRoot":"","sources":["../../src/storage/state-root-layout.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB;IAC1B,+CAA+C;;IAE/C,iFAAiF;;IAEjF,6CAA6C;;IAE7C,qDAAqD;;EAEvD,CAAC"}
1
+ {"version":3,"file":"state-root-layout.d.ts","sourceRoot":"","sources":["../../src/storage/state-root-layout.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB;IAC1B,+CAA+C;;IAE/C,iFAAiF;;IAEjF,qDAAqD;;EAEvD,CAAC"}
@@ -4,8 +4,6 @@ export const STATE_ROOT_LAYOUT = Object.freeze({
4
4
  currentData: "current-data.txt",
5
5
  /** Applications' installations: `installations/<application>/<installation>`. */
6
6
  installations: "installations",
7
- /** Managed CLI releases: `npm/<version>`. */
8
- releases: "npm",
9
7
  /** Each CLI version's data: `versions/<version>`. */
10
8
  versions: "versions",
11
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"state-root-layout.js","sourceRoot":"","sources":["../../src/storage/state-root-layout.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,+CAA+C;IAC/C,WAAW,EAAE,kBAAkB;IAC/B,iFAAiF;IACjF,aAAa,EAAE,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,EAAE,KAAK;IACf,qDAAqD;IACrD,QAAQ,EAAE,UAAU;CACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"state-root-layout.js","sourceRoot":"","sources":["../../src/storage/state-root-layout.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,+CAA+C;IAC/C,WAAW,EAAE,kBAAkB;IAC/B,iFAAiF;IACjF,aAAa,EAAE,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,UAAU;CACvB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moxt-ai/mobius",
3
- "version": "0.0.386",
3
+ "version": "0.0.387",
4
4
  "description": "Mobius CLI for pairing and running local AI agent services.",
5
5
  "type": "module",
6
6
  "bin": {