@moxt-ai/mobius 0.0.362 → 0.0.364

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 (66) hide show
  1. package/dist/{chunk-VEKN5WO7.js → chunk-3VRXAUZT.js} +2 -2
  2. package/dist/{chunk-SLYCSIGQ.js → chunk-N5IP6R6A.js} +2 -4
  3. package/dist/{chunk-SLYCSIGQ.js.map → chunk-N5IP6R6A.js.map} +2 -2
  4. package/dist/{chunk-A4WEXBMJ.js → chunk-OKNGQWMR.js} +313 -44
  5. package/dist/{chunk-A4WEXBMJ.js.map → chunk-OKNGQWMR.js.map} +4 -4
  6. package/dist/cli/handler/daemon/index.d.ts.map +1 -1
  7. package/dist/cli/handler/daemon/index.js +2 -0
  8. package/dist/cli/handler/daemon/index.js.map +1 -1
  9. package/dist/cli/handler/daemon/release.d.ts +4 -0
  10. package/dist/cli/handler/daemon/release.d.ts.map +1 -0
  11. package/dist/cli/handler/daemon/release.js +13 -0
  12. package/dist/cli/handler/daemon/release.js.map +1 -0
  13. package/dist/{cli-YIG5H66E.js → cli-TY5NMPLG.js} +48 -4
  14. package/dist/{cli-YIG5H66E.js.map → cli-TY5NMPLG.js.map} +4 -4
  15. package/dist/cli.js +3 -3
  16. package/dist/daemon/lifecycle/worker.d.ts +2 -0
  17. package/dist/daemon/lifecycle/worker.d.ts.map +1 -1
  18. package/dist/daemon/lifecycle/worker.js +26 -0
  19. package/dist/daemon/lifecycle/worker.js.map +1 -1
  20. package/dist/engine/acp/adapter/claude/adapter.d.ts +1 -0
  21. package/dist/engine/acp/adapter/claude/adapter.d.ts.map +1 -1
  22. package/dist/engine/acp/adapter/claude/adapter.js +1 -0
  23. package/dist/engine/acp/adapter/claude/adapter.js.map +1 -1
  24. package/dist/engine/acp/adapter/codex/adapter.d.ts +1 -0
  25. package/dist/engine/acp/adapter/codex/adapter.d.ts.map +1 -1
  26. package/dist/engine/acp/adapter/codex/adapter.js +5 -0
  27. package/dist/engine/acp/adapter/codex/adapter.js.map +1 -1
  28. package/dist/engine/acp/adapter/execution-connections.d.ts +2 -0
  29. package/dist/engine/acp/adapter/execution-connections.d.ts.map +1 -1
  30. package/dist/engine/acp/adapter/execution-connections.js +25 -1
  31. package/dist/engine/acp/adapter/execution-connections.js.map +1 -1
  32. package/dist/engine/acp/adapter/pi/adapter.d.ts +1 -0
  33. package/dist/engine/acp/adapter/pi/adapter.d.ts.map +1 -1
  34. package/dist/engine/acp/adapter/pi/adapter.js +1 -0
  35. package/dist/engine/acp/adapter/pi/adapter.js.map +1 -1
  36. package/dist/engine/acp/harness/pi/endpoint.d.ts.map +1 -1
  37. package/dist/engine/acp/harness/pi/endpoint.js +1 -0
  38. package/dist/engine/acp/harness/pi/endpoint.js.map +1 -1
  39. package/dist/engine/acp/native-history/preview-contract.d.ts +13 -0
  40. package/dist/engine/acp/native-history/preview-contract.d.ts.map +1 -1
  41. package/dist/engine/runtime/run.d.ts +3 -0
  42. package/dist/engine/runtime/run.d.ts.map +1 -1
  43. package/dist/engine/runtime/run.js +2 -0
  44. package/dist/engine/runtime/run.js.map +1 -1
  45. package/dist/engine/runtime/runtime-loop.d.ts +2 -0
  46. package/dist/engine/runtime/runtime-loop.d.ts.map +1 -1
  47. package/dist/engine/runtime/runtime-loop.js +1 -0
  48. package/dist/engine/runtime/runtime-loop.js.map +1 -1
  49. package/dist/engine/session/live/agent-session.d.ts +6 -0
  50. package/dist/engine/session/live/agent-session.d.ts.map +1 -1
  51. package/dist/engine/session/live/agent-session.js +99 -6
  52. package/dist/engine/session/live/agent-session.js.map +1 -1
  53. package/dist/engine/session/manager/session-manager.d.ts.map +1 -1
  54. package/dist/engine/session/manager/session-manager.js +42 -10
  55. package/dist/engine/session/manager/session-manager.js.map +1 -1
  56. package/dist/engine/session/process/agent-process-pool.d.ts +5 -0
  57. package/dist/engine/session/process/agent-process-pool.d.ts.map +1 -1
  58. package/dist/engine/session/process/agent-process-pool.js +27 -10
  59. package/dist/engine/session/process/agent-process-pool.js.map +1 -1
  60. package/dist/engine/session/process/runtime-agent-processes.d.ts +9 -0
  61. package/dist/engine/session/process/runtime-agent-processes.d.ts.map +1 -0
  62. package/dist/engine/session/process/runtime-agent-processes.js +15 -0
  63. package/dist/engine/session/process/runtime-agent-processes.js.map +1 -0
  64. package/dist/engine.js +2 -2
  65. package/package.json +1 -3
  66. /package/dist/{chunk-VEKN5WO7.js.map → chunk-3VRXAUZT.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAG3F;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAIlG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAG3F;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAKlG"}
@@ -1,5 +1,6 @@
1
1
  import { registerManagerCommand } from "./manager.js";
2
2
  import { registerQuitCommand } from "./quit.js";
3
+ import { registerReleaseCommand } from "./release.js";
3
4
  import { registerStartCommand } from "./start.js";
4
5
  import { registerUpgradeCommand } from "./upgrade.js";
5
6
  import { registerWorkerCommand } from "./worker.js";
@@ -10,6 +11,7 @@ export function registerInternalRuntimeHandlers(program, context) {
10
11
  export function registerDaemonProcessLifecycleHandlers(program, context) {
11
12
  registerStartCommand(program, context);
12
13
  registerQuitCommand(program, context);
14
+ registerReleaseCommand(program, context);
13
15
  registerUpgradeCommand(program, context);
14
16
  }
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,UAAU,+BAA+B,CAAC,OAAgB,EAAE,OAAmB;IACjF,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,OAAgB,EAAE,OAAmB;IACxF,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,UAAU,+BAA+B,CAAC,OAAgB,EAAE,OAAmB;IACjF,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,OAAgB,EAAE,OAAmB;IACxF,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import type { CliContext } from "../../context.ts";
3
+ export declare function registerReleaseCommand(program: Command, context: CliContext): void;
4
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CASlF"}
@@ -0,0 +1,13 @@
1
+ import { releaseIdleAgentProcesses } from "../../../daemon/lifecycle/worker.js";
2
+ import { openMobiusControlInstallation } from "../../../daemon/pairing/pair-local-machine.js";
3
+ export function registerReleaseCommand(program, context) {
4
+ program
5
+ .command("release")
6
+ .description("release idle Agent sessions so the Agent's own app can continue them")
7
+ .action(async () => {
8
+ const control = await openMobiusControlInstallation(context.shutdownSignal, process.env);
9
+ await releaseIdleAgentProcesses(control.stateDirectory, context.shutdownSignal);
10
+ process.stdout.write("Idle Agent sessions were released. Continuing them in Morty reopens them.\n");
11
+ });
12
+ }
13
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../../src/cli/handler/daemon/release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAG9F,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAAmB;IACxE,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,yBAAyB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_semver
3
- } from "./chunk-VEKN5WO7.js";
3
+ } from "./chunk-3VRXAUZT.js";
4
4
  import {
5
5
  BoundedLineLog,
6
6
  MissingAdapter,
@@ -35,13 +35,13 @@ import {
35
35
  unhandledRejectionLogFilename,
36
36
  validateLocalPath,
37
37
  validatePairingId
38
- } from "./chunk-A4WEXBMJ.js";
38
+ } from "./chunk-OKNGQWMR.js";
39
39
  import {
40
40
  __callDispose,
41
41
  __toESM,
42
42
  __using,
43
43
  package_default
44
- } from "./chunk-SLYCSIGQ.js";
44
+ } from "./chunk-N5IP6R6A.js";
45
45
 
46
46
  // ../../node_modules/.pnpm/commander@15.0.0/node_modules/commander/lib/error.js
47
47
  var CommanderError = class extends Error {
@@ -5010,6 +5010,21 @@ function registerQuitCommand(program2, context) {
5010
5010
  // src/daemon/lifecycle/worker.ts
5011
5011
  import { setTimeout as setTimeout4 } from "node:timers/promises";
5012
5012
 
5013
+ // src/engine/session/process/runtime-agent-processes.ts
5014
+ var RuntimeAgentProcesses = class {
5015
+ #pools = /* @__PURE__ */ new Set();
5016
+ /** Tracks a Runtime's pool until the returned function removes it. */
5017
+ add = (pool) => {
5018
+ this.#pools.add(pool);
5019
+ return () => {
5020
+ this.#pools.delete(pool);
5021
+ };
5022
+ };
5023
+ retireIdleProcesses = async () => {
5024
+ await Promise.all([...this.#pools].map(async (pool) => await pool.retireIdleProcesses()));
5025
+ };
5026
+ };
5027
+
5013
5028
  // src/daemon/upgrades/upgrade.ts
5014
5029
  import { randomUUID as randomUUID2 } from "node:crypto";
5015
5030
  import { setInterval, setTimeout as setTimeout3 } from "node:timers/promises";
@@ -5189,6 +5204,19 @@ async function reloadDaemon(stateDirectory, signal) {
5189
5204
  }
5190
5205
  }
5191
5206
  }
5207
+ async function releaseIdleAgentProcesses(stateDirectory, signal) {
5208
+ try {
5209
+ const response = await sendLocalRequest(stateDirectory, "worker", { kind: "release" }, signal);
5210
+ if (typeof response === "object" && response !== null && "kind" in response && response.kind === "released") {
5211
+ return;
5212
+ }
5213
+ throw new Error("The running daemon cannot release Agent sessions. Run `mobius start` to update it first.");
5214
+ } catch (cause) {
5215
+ if (!isNodeError(cause, "ENOENT") && !isNodeError(cause, "ECONNREFUSED")) {
5216
+ throw cause;
5217
+ }
5218
+ }
5219
+ }
5192
5220
  async function runWorker(version, signal) {
5193
5221
  if (!process.connected) {
5194
5222
  throw new Error("The daemon must be started by its manager");
@@ -5225,6 +5253,7 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
5225
5253
  }
5226
5254
  rejectionGuard.bindStateDirectory(control.stateDirectory);
5227
5255
  const turnActivity = new RuntimeTurnActivity();
5256
+ const agentProcesses = new RuntimeAgentProcesses();
5228
5257
  const active = /* @__PURE__ */ new Map();
5229
5258
  const fail = (connectionId, cause) => {
5230
5259
  console.error(`Runtime ${connectionId} failed; stopping the daemon`, cause);
@@ -5259,6 +5288,7 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
5259
5288
  const loop = new RuntimeLoop(async () => config, {
5260
5289
  processLogsDirectory: control.stateDirectory,
5261
5290
  turnActivity,
5291
+ agentProcesses,
5262
5292
  reportUpgradeAvailability: reportDaemonUpgradeAvailability
5263
5293
  });
5264
5294
  const completion = loop.run(AbortSignal.any([combined, controller.signal])).then(
@@ -5310,6 +5340,10 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
5310
5340
  "worker",
5311
5341
  combined,
5312
5342
  async (request) => {
5343
+ if (typeof request === "object" && request !== null && "kind" in request && request.kind === "release") {
5344
+ await agentProcesses.retireIdleProcesses();
5345
+ return { kind: "released" };
5346
+ }
5313
5347
  if (typeof request !== "object" || request === null || !("kind" in request) || request.kind !== "reload") {
5314
5348
  return { kind: "error", code: "invalid_reload", message: "Expected a configuration reload" };
5315
5349
  }
@@ -5340,6 +5374,15 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
5340
5374
  }
5341
5375
  }
5342
5376
 
5377
+ // src/cli/handler/daemon/release.ts
5378
+ function registerReleaseCommand(program2, context) {
5379
+ program2.command("release").description("release idle Agent sessions so the Agent's own app can continue them").action(async () => {
5380
+ const control = await openMobiusControlInstallation(context.shutdownSignal, process.env);
5381
+ await releaseIdleAgentProcesses(control.stateDirectory, context.shutdownSignal);
5382
+ process.stdout.write("Idle Agent sessions were released. Continuing them in Morty reopens them.\n");
5383
+ });
5384
+ }
5385
+
5343
5386
  // src/cli/handler/daemon/start.ts
5344
5387
  function registerStartCommand(program2, context) {
5345
5388
  program2.command("start").description("ensure the daemon is running and optionally activate a saved connection").addOption(valueOption("--connection <connection-id>", "saved Runtime connection identifier")).action(async (options) => {
@@ -5397,6 +5440,7 @@ function registerInternalRuntimeHandlers(program2, context) {
5397
5440
  function registerDaemonProcessLifecycleHandlers(program2, context) {
5398
5441
  registerStartCommand(program2, context);
5399
5442
  registerQuitCommand(program2, context);
5443
+ registerReleaseCommand(program2, context);
5400
5444
  registerUpgradeCommand(program2, context);
5401
5445
  }
5402
5446
 
@@ -5812,4 +5856,4 @@ async function runCLI() {
5812
5856
  export {
5813
5857
  runCLI
5814
5858
  };
5815
- //# sourceMappingURL=cli-YIG5H66E.js.map
5859
+ //# sourceMappingURL=cli-TY5NMPLG.js.map