@moxt-ai/mobius 0.0.312 → 0.0.314

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 (51) hide show
  1. package/dist/acp/adapter/claude/adapter.d.ts +2 -0
  2. package/dist/acp/adapter/claude/adapter.d.ts.map +1 -1
  3. package/dist/acp/adapter/claude/adapter.js +2 -0
  4. package/dist/acp/adapter/claude/adapter.js.map +1 -1
  5. package/dist/acp/adapter/codex/adapter.d.ts +2 -0
  6. package/dist/acp/adapter/codex/adapter.d.ts.map +1 -1
  7. package/dist/acp/adapter/codex/adapter.js +2 -0
  8. package/dist/acp/adapter/codex/adapter.js.map +1 -1
  9. package/dist/acp/adapter/live-sessions.d.ts +2 -0
  10. package/dist/acp/adapter/live-sessions.d.ts.map +1 -1
  11. package/dist/acp/adapter/live-sessions.js +40 -2
  12. package/dist/acp/adapter/live-sessions.js.map +1 -1
  13. package/dist/acp/adapter/pi/adapter.d.ts +2 -0
  14. package/dist/acp/adapter/pi/adapter.d.ts.map +1 -1
  15. package/dist/acp/adapter/pi/adapter.js +2 -0
  16. package/dist/acp/adapter/pi/adapter.js.map +1 -1
  17. package/dist/acp/native-history/preview-contract.d.ts +2 -0
  18. package/dist/acp/native-history/preview-contract.d.ts.map +1 -1
  19. package/dist/cli/handler/agents/index.d.ts.map +1 -1
  20. package/dist/cli/handler/agents/index.js +8 -1
  21. package/dist/cli/handler/agents/index.js.map +1 -1
  22. package/dist/cli/handler/agents/logic/agent-diagnostics.d.ts +2 -0
  23. package/dist/cli/handler/agents/logic/agent-diagnostics.d.ts.map +1 -1
  24. package/dist/cli/handler/agents/logic/agent-diagnostics.js +16 -0
  25. package/dist/cli/handler/agents/logic/agent-diagnostics.js.map +1 -1
  26. package/dist/cli.js +269 -168
  27. package/dist/cli.js.map +4 -4
  28. package/dist/daemon/lifecycle/worker.d.ts.map +1 -1
  29. package/dist/daemon/lifecycle/worker.js +22 -2
  30. package/dist/daemon/lifecycle/worker.js.map +1 -1
  31. package/dist/runtime/catalog/handle-agent-catalog-discovery.d.ts +1 -1
  32. package/dist/runtime/catalog/handle-agent-catalog-discovery.d.ts.map +1 -1
  33. package/dist/runtime/catalog/handle-agent-catalog-discovery.js +2 -5
  34. package/dist/runtime/catalog/handle-agent-catalog-discovery.js.map +1 -1
  35. package/dist/runtime/catalog/refresh-agent-catalog.d.ts +9 -0
  36. package/dist/runtime/catalog/refresh-agent-catalog.d.ts.map +1 -0
  37. package/dist/runtime/catalog/refresh-agent-catalog.js +13 -0
  38. package/dist/runtime/catalog/refresh-agent-catalog.js.map +1 -0
  39. package/dist/runtime/command/registry/interactions.js +2 -2
  40. package/dist/runtime/command/registry/interactions.js.map +1 -1
  41. package/dist/runtime.js +79 -32
  42. package/dist/runtime.js.map +4 -4
  43. package/dist/session/live/agent-session.d.ts +1 -1
  44. package/dist/session/live/agent-session.d.ts.map +1 -1
  45. package/dist/session/live/agent-session.js +14 -15
  46. package/dist/session/live/agent-session.js.map +1 -1
  47. package/dist/session/manager/session-manager.d.ts +1 -1
  48. package/dist/session/manager/session-manager.d.ts.map +1 -1
  49. package/dist/session/manager/session-manager.js +3 -3
  50. package/dist/session/manager/session-manager.js.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker.ts"],"names":[],"mappings":"AAuBA,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7F;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBnF"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker.ts"],"names":[],"mappings":"AAyBA,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7F;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBnF"}
@@ -1,4 +1,5 @@
1
1
  import { setTimeout } from "node:timers/promises";
2
+ import { refreshAgentCatalog } from "../../runtime/catalog/refresh-agent-catalog.js";
2
3
  import { MobiusRuntimeEngine } from "../../runtime/engine.js";
3
4
  import { RuntimeTurnActivity } from "../../session/turn/runtime-turn-activity.js";
4
5
  import { acquireManagerLock } from "../../storage/daemon/manager-lock.js";
@@ -116,7 +117,7 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
116
117
  }
117
118
  })
118
119
  .finally(() => active.delete(connection.connectionId));
119
- active.set(connection.connectionId, { controller, completion });
120
+ active.set(connection.connectionId, { config: paired.config, controller, completion });
120
121
  }
121
122
  catch (cause) {
122
123
  combined.throwIfAborted();
@@ -125,6 +126,22 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
125
126
  }
126
127
  }
127
128
  };
129
+ const refreshRunningCatalogs = async (connectionIds) => {
130
+ await Promise.all([...connectionIds].map(async (connectionId) => {
131
+ const config = active.get(connectionId)?.config;
132
+ if (config?.rediscoverAgents === undefined) {
133
+ return;
134
+ }
135
+ try {
136
+ await refreshAgentCatalog(config, config.rediscoverAgents, AbortSignal.any([combined, AbortSignal.timeout(90_000)]));
137
+ }
138
+ catch (cause) {
139
+ combined.throwIfAborted();
140
+ // The Runtime keeps serving its previous catalog; the reload itself still applies.
141
+ console.error(`Runtime ${connectionId} could not refresh its Agent catalog`, cause);
142
+ }
143
+ }));
144
+ };
128
145
  let reload = Promise.resolve();
129
146
  let upgrades = Promise.resolve();
130
147
  try {
@@ -136,7 +153,10 @@ async function runWorkerRuntime(version, combined, shutdown, rejectionGuard) {
136
153
  request.kind !== "reload") {
137
154
  return { kind: "error", code: "invalid_reload", message: "Expected a configuration reload" };
138
155
  }
139
- const pending = reload.then(reconcile);
156
+ // A reload, such as `mobius start` after the user installs or signs in to an Agent, also re-reads the
157
+ // Agent inventory of Runtimes that were already running; Runtimes it starts read it themselves.
158
+ const running = new Set(active.keys());
159
+ const pending = reload.then(reconcile).then(async () => await refreshRunningCatalogs(running));
140
160
  reload = pending.catch(() => undefined);
141
161
  await pending;
142
162
  return { kind: "reloaded" };
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/worker.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type AgentCatalogDiscoverCommand } from "@moxt-ai/mobius-sdk/protocol";
2
2
  import { WebSocket } from "undici";
3
3
  import type { CatalogAgent } from "../../agent/catalog.ts";
4
4
  import type { Timer } from "../../util/timer.ts";
5
- import { type RuntimeConfig } from "../config.ts";
5
+ import type { RuntimeConfig } from "../config.ts";
6
6
  import type { RelayConnectionDiagnostics } from "../relay/diagnostics.ts";
7
7
  interface CatalogDiscoveryDependencies {
8
8
  readonly config: RuntimeConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"handle-agent-catalog-discovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/catalog/handle-agent-catalog-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,2BAA2B,EAEnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG1E,UAAU,4BAA4B;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,4BAA4B;sBAMhE,2BAA2B,KAAG,IAAI;kBAoElC,OAAO,CAAC,IAAI,CAAC;EAKzC"}
1
+ {"version":3,"file":"handle-agent-catalog-discovery.d.ts","sourceRoot":"","sources":["../../../src/runtime/catalog/handle-agent-catalog-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,2BAA2B,EAEnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAG1E,UAAU,4BAA4B;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,4BAA4B;sBAMhE,2BAA2B,KAAG,IAAI;kBA8DlC,OAAO,CAAC,IAAI,CAAC;EAKzC"}
@@ -2,8 +2,7 @@ import { AGENT_CATALOG_DISCOVERY_FAILED_KIND, } from "@moxt-ai/mobius-sdk/protoc
2
2
  import { WebSocket } from "undici";
3
3
  import { operationErrorCode, operationErrorMessage } from "../../infra/operation-error.js";
4
4
  import { send } from "../command/transport.js";
5
- import { withRuntimeEnvironment } from "../config.js";
6
- import { publishAgentCatalog } from "./publish-agent-catalog.js";
5
+ import { refreshAgentCatalog } from "./refresh-agent-catalog.js";
7
6
  const CATALOG_DISCOVERY_TIMEOUT_MILLISECONDS = 90_000;
8
7
  function discoveredEvent(command, agents) {
9
8
  return {
@@ -47,11 +46,9 @@ export function createAgentCatalogDiscoveryHandler(dependencies) {
47
46
  const timeout = timer.schedule(() => controller?.abort(new Error("Agent catalog discovery timed out")), CATALOG_DISCOVERY_TIMEOUT_MILLISECONDS);
48
47
  completion = (async () => {
49
48
  try {
50
- const readyAgents = await discover(operationSignal);
51
- operationSignal.throwIfAborted();
52
49
  // The published snapshot answers the command: a concurrent resolver swap that
53
50
  // commits after this publication describes its own reply, not this one.
54
- const published = await config.catalog.replaceAndPublish(() => readyAgents.map((agent) => withRuntimeEnvironment(agent, config.localContext.environment)), (publishSignal) => publishAgentCatalog(config, publishSignal), operationSignal);
51
+ const published = await refreshAgentCatalog(config, discover, operationSignal);
55
52
  operationSignal.throwIfAborted();
56
53
  if (socket.readyState === WebSocket.OPEN) {
57
54
  send(socket, discoveredEvent(command, published.agents.map((agent) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"handle-agent-catalog-discovery.js","sourceRoot":"","sources":["../../../src/runtime/catalog/handle-agent-catalog-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-agent-catalog-discovery.js","sourceRoot":"","sources":["../../../src/runtime/catalog/handle-agent-catalog-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CatalogAgent } from "../../agent/catalog.ts";
2
+ import { type RuntimeConfig } from "../config.ts";
3
+ /**
4
+ * Re-reads the local Agent inventory and republishes the catalog, so Agents installed or signed in after the daemon
5
+ * started become available without restarting it. The transition and publication commit together; a failed
6
+ * publication keeps the previous catalog.
7
+ */
8
+ export declare function refreshAgentCatalog(config: RuntimeConfig, discover: (signal: AbortSignal) => Promise<readonly CatalogAgent[]>, signal: AbortSignal): Promise<import("../../agent/catalog.ts").LocalAgentCatalogSnapshot>;
9
+ //# sourceMappingURL=refresh-agent-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-agent-catalog.d.ts","sourceRoot":"","sources":["../../../src/runtime/catalog/refresh-agent-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,cAAc,CAAC;AAG1E;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,EACnE,MAAM,EAAE,WAAW,uEAStB"}
@@ -0,0 +1,13 @@
1
+ import { withRuntimeEnvironment } from "../config.js";
2
+ import { publishAgentCatalog } from "./publish-agent-catalog.js";
3
+ /**
4
+ * Re-reads the local Agent inventory and republishes the catalog, so Agents installed or signed in after the daemon
5
+ * started become available without restarting it. The transition and publication commit together; a failed
6
+ * publication keeps the previous catalog.
7
+ */
8
+ export async function refreshAgentCatalog(config, discover, signal) {
9
+ const readyAgents = await discover(signal);
10
+ signal.throwIfAborted();
11
+ return await config.catalog.replaceAndPublish(() => readyAgents.map((agent) => withRuntimeEnvironment(agent, config.localContext.environment)), (publishSignal) => publishAgentCatalog(config, publishSignal), signal);
12
+ }
13
+ //# sourceMappingURL=refresh-agent-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-agent-catalog.js","sourceRoot":"","sources":["../../../src/runtime/catalog/refresh-agent-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAqB,EACrB,QAAmE,EACnE,MAAmB;IAEnB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CACzC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAChG,CAAC,aAAa,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7D,MAAM,CACT,CAAC;AACN,CAAC"}
@@ -3,7 +3,7 @@ import { settleAbandonedTurn } from "../../../session/prompt/prompt-lifecycle.js
3
3
  import { reportOperationFailure, send } from "../transport.js";
4
4
  export const sessionCancelCommand = {
5
5
  kind: SESSION_CANCEL_KIND,
6
- handle: ({ eventProjection, operations, sessions, sessionTurns }, message) => {
6
+ handle: ({ eventProjection, operations, sessions, sessionTurns, signal }, message) => {
7
7
  if (message.kind !== SESSION_CANCEL_KIND) {
8
8
  throw new Error("Command kind mismatch");
9
9
  }
@@ -18,7 +18,7 @@ export const sessionCancelCommand = {
18
18
  if (cancellationState === "already-requested" || cancellationState === "pending") {
19
19
  return;
20
20
  }
21
- void sessions.cancelPrompt(message.sessionId).catch((error) => {
21
+ void sessions.cancelPrompt(message.sessionId, signal).catch((error) => {
22
22
  console.error("Mobius daemon could not cancel the agent turn", error);
23
23
  });
24
24
  },
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -23625,7 +23625,7 @@ var AcpLiveSessions = class {
23625
23625
  this.#sessions.add(session);
23626
23626
  return connection;
23627
23627
  };
23628
- #resolve = (target) => {
23628
+ #find = (target) => {
23629
23629
  const decoded = targetSchema.safeParse(target);
23630
23630
  if (!decoded.success) {
23631
23631
  throw new AcpExecutionError(
@@ -23643,12 +23643,52 @@ var AcpLiveSessions = class {
23643
23643
  if (matches.length > 1) {
23644
23644
  throw new AcpExecutionError("Another writer is using this native session", {}, "session_busy");
23645
23645
  }
23646
- const session = matches[0];
23646
+ return matches[0];
23647
+ };
23648
+ #resolve = (target) => {
23649
+ const session = this.#find(target);
23647
23650
  if (session === void 0) {
23648
23651
  throw new AcpExecutionError("The native session is not active", {}, "invalid_agent_session");
23649
23652
  }
23650
23653
  return session;
23651
23654
  };
23655
+ cancel = async (target, signal) => {
23656
+ const bounded = AbortSignal.any([signal, AbortSignal.timeout(3e4)]);
23657
+ bounded.throwIfAborted();
23658
+ const { connection } = this.#resolve(target);
23659
+ await connection.race(
23660
+ connection.connection.agent.notify(methods3.agent.session.cancel, {
23661
+ sessionId: connection.events.sessionId()
23662
+ }),
23663
+ "ACP agent exited while cancelling a prompt",
23664
+ bounded
23665
+ );
23666
+ };
23667
+ closeSession = async (target, signal) => {
23668
+ const session = this.#find(target);
23669
+ if (session === void 0) {
23670
+ signal.throwIfAborted();
23671
+ return;
23672
+ }
23673
+ const { connection, scope } = session;
23674
+ try {
23675
+ signal.throwIfAborted();
23676
+ if (scope.capabilities().closeSession) {
23677
+ try {
23678
+ await connection.connection.agent.request(
23679
+ methods3.agent.session.close,
23680
+ { sessionId: connection.events.sessionId() },
23681
+ { cancellationSignal: AbortSignal.any([signal, AbortSignal.timeout(1e3)]) }
23682
+ );
23683
+ } catch {
23684
+ signal.throwIfAborted();
23685
+ }
23686
+ }
23687
+ } finally {
23688
+ await connection.closeProcess();
23689
+ }
23690
+ signal.throwIfAborted();
23691
+ };
23652
23692
  prompt = async (target, content, signal) => {
23653
23693
  signal.throwIfAborted();
23654
23694
  const { connection, scope } = this.#resolve(target);
@@ -24882,6 +24922,8 @@ var ClaudeAdapter = class {
24882
24922
  }
24883
24923
  getCapabilities = async (query) => await this.#queryProcesses.capabilities(query);
24884
24924
  connectSession = (options) => this.#liveSessions.connectSession(options);
24925
+ cancel = (...args) => this.#liveSessions.cancel(...args);
24926
+ closeSession = (...args) => this.#liveSessions.closeSession(...args);
24885
24927
  prompt = (...args) => this.#liveSessions.prompt(...args);
24886
24928
  steer = (...args) => this.#liveSessions.steer(...args);
24887
24929
  renameSession = (...args) => this.#liveSessions.renameSession(...args);
@@ -32021,6 +32063,8 @@ var CodexAdapter = class {
32021
32063
  }
32022
32064
  getCapabilities = async (query) => await this.#queryProcesses.capabilities(query);
32023
32065
  connectSession = (options) => this.#liveSessions.connectSession(options);
32066
+ cancel = (...args) => this.#liveSessions.cancel(...args);
32067
+ closeSession = (...args) => this.#liveSessions.closeSession(...args);
32024
32068
  prompt = (...args) => this.#liveSessions.prompt(...args);
32025
32069
  steer = (...args) => this.#liveSessions.steer(...args);
32026
32070
  renameSession = (...args) => this.#liveSessions.renameSession(...args);
@@ -32117,6 +32161,8 @@ var PiAdapter = class {
32117
32161
  }
32118
32162
  getCapabilities = async (query) => await this.#queryProcesses.capabilities(query);
32119
32163
  connectSession = (options) => this.#liveSessions.connectSession(options);
32164
+ cancel = (...args) => this.#liveSessions.cancel(...args);
32165
+ closeSession = (...args) => this.#liveSessions.closeSession(...args);
32120
32166
  prompt = (...args) => this.#liveSessions.prompt(...args);
32121
32167
  steer = (...args) => this.#liveSessions.steer(...args);
32122
32168
  renameSession = (...args) => this.#liveSessions.renameSession(...args);
@@ -32407,7 +32453,7 @@ import { fetch as fetch3 } from "undici";
32407
32453
  // package.json
32408
32454
  var package_default = {
32409
32455
  name: "@moxt-ai/mobius",
32410
- version: "0.0.312",
32456
+ version: "0.0.314",
32411
32457
  description: "Mobius CLI for pairing and running local AI agent services.",
32412
32458
  type: "module",
32413
32459
  bin: {
@@ -84743,7 +84789,6 @@ async function restoreSession(session, signal, recovery, origin) {
84743
84789
  }
84744
84790
 
84745
84791
  // src/session/live/agent-session.ts
84746
- var PROCESS_STOP_TIMEOUT_MILLISECONDS = 1e3;
84747
84792
  var AgentSession = class _AgentSession {
84748
84793
  // The restore surface: AgentSessionRestore members expose private state to
84749
84794
  // session-restore.ts only. The class keeps the fields private.
@@ -85250,12 +85295,12 @@ var AgentSession = class _AgentSession {
85250
85295
  throw failure2;
85251
85296
  }
85252
85297
  };
85253
- cancel = async () => {
85298
+ cancel = async (signal) => {
85299
+ signal.throwIfAborted();
85254
85300
  await this.#interactions.cancelPendingInteractions();
85301
+ signal.throwIfAborted();
85255
85302
  if (this.#turn.running) {
85256
- await this.#connection.connection.agent.notify(methods14.agent.session.cancel, {
85257
- sessionId: this.#updates.sessionId()
85258
- });
85303
+ await this.#adapter.cancel(this.#target(), signal);
85259
85304
  }
85260
85305
  };
85261
85306
  respondPermission = async (options) => {
@@ -85342,21 +85387,18 @@ var AgentSession = class _AgentSession {
85342
85387
  close = async () => {
85343
85388
  try {
85344
85389
  await this.#interactions.cancelPendingInteractions();
85345
- if (this.#capabilities.closeSession && this.#updates.sessionId().length > 0) {
85346
- try {
85347
- await this.#connection.connection.agent.request(
85348
- methods14.agent.session.close,
85349
- { sessionId: this.#updates.sessionId() },
85350
- {
85351
- cancellationSignal: AbortSignal.timeout(PROCESS_STOP_TIMEOUT_MILLISECONDS)
85352
- }
85353
- );
85354
- } catch {
85355
- }
85390
+ } catch (error62) {
85391
+ try {
85392
+ throw error62;
85393
+ } finally {
85394
+ await this.closeProcess();
85356
85395
  }
85357
- } finally {
85396
+ }
85397
+ if (this.#updates.sessionId().length === 0) {
85358
85398
  await this.closeProcess();
85399
+ return;
85359
85400
  }
85401
+ await this.#adapter.closeSession(this.#target(), AbortSignal.timeout(3e4));
85360
85402
  };
85361
85403
  closeProcess = () => this.#connection.closeProcess();
85362
85404
  agentSettingsModelEffort = () => this.#connection.agentSettingsModelEffort();
@@ -85913,14 +85955,14 @@ var SessionManager2 = class {
85913
85955
  return { title: normalized, updatedAt };
85914
85956
  })
85915
85957
  );
85916
- cancelPrompt = async (sessionId) => {
85958
+ cancelPrompt = async (sessionId, signal = AbortSignal.timeout(3e4)) => this.#operations.run({ signal }, async ({ signal: signal2 }) => {
85917
85959
  await this.#executions.cancel(sessionId, async () => {
85918
85960
  const runtime = this.#executionProcesses.get(sessionId);
85919
85961
  if (runtime !== void 0) {
85920
- await runtime.cancel();
85962
+ await runtime.cancel(signal2);
85921
85963
  }
85922
85964
  });
85923
- };
85965
+ });
85924
85966
  steerPrompt = async (options) => this.#operations.run(options, async (options2) => {
85925
85967
  if (this.#executions.command(options2.sessionId) !== options2.targetCommandId) {
85926
85968
  throw new AcpExecutionError("The target turn is no longer active", {}, "steering_target_unavailable");
@@ -88469,6 +88511,17 @@ function reportOperationFailure(socket, requestId, sessionId, error62, runtimeTi
88469
88511
  });
88470
88512
  }
88471
88513
 
88514
+ // src/runtime/catalog/refresh-agent-catalog.ts
88515
+ async function refreshAgentCatalog(config2, discover, signal) {
88516
+ const readyAgents = await discover(signal);
88517
+ signal.throwIfAborted();
88518
+ return await config2.catalog.replaceAndPublish(
88519
+ () => readyAgents.map((agent) => withRuntimeEnvironment(agent, config2.localContext.environment)),
88520
+ (publishSignal) => publishAgentCatalog(config2, publishSignal),
88521
+ signal
88522
+ );
88523
+ }
88524
+
88472
88525
  // src/runtime/catalog/handle-agent-catalog-discovery.ts
88473
88526
  var CATALOG_DISCOVERY_TIMEOUT_MILLISECONDS = 9e4;
88474
88527
  function discoveredEvent(command, agents) {
@@ -88508,13 +88561,7 @@ function createAgentCatalogDiscoveryHandler(dependencies) {
88508
88561
  );
88509
88562
  completion = (async () => {
88510
88563
  try {
88511
- const readyAgents = await discover(operationSignal);
88512
- operationSignal.throwIfAborted();
88513
- const published = await config2.catalog.replaceAndPublish(
88514
- () => readyAgents.map((agent) => withRuntimeEnvironment(agent, config2.localContext.environment)),
88515
- (publishSignal) => publishAgentCatalog(config2, publishSignal),
88516
- operationSignal
88517
- );
88564
+ const published = await refreshAgentCatalog(config2, discover, operationSignal);
88518
88565
  operationSignal.throwIfAborted();
88519
88566
  if (socket.readyState === WebSocket3.OPEN) {
88520
88567
  send(
@@ -89414,7 +89461,7 @@ var previewHistoryPageLoadCommand = {
89414
89461
  // src/runtime/command/registry/interactions.ts
89415
89462
  var sessionCancelCommand = {
89416
89463
  kind: SESSION_CANCEL_KIND,
89417
- handle: ({ eventProjection, operations, sessions, sessionTurns }, message) => {
89464
+ handle: ({ eventProjection, operations, sessions, sessionTurns, signal }, message) => {
89418
89465
  if (message.kind !== SESSION_CANCEL_KIND) {
89419
89466
  throw new Error("Command kind mismatch");
89420
89467
  }
@@ -89429,7 +89476,7 @@ var sessionCancelCommand = {
89429
89476
  if (cancellationState === "already-requested" || cancellationState === "pending") {
89430
89477
  return;
89431
89478
  }
89432
- void sessions.cancelPrompt(message.sessionId).catch((error62) => {
89479
+ void sessions.cancelPrompt(message.sessionId, signal).catch((error62) => {
89433
89480
  console.error("Mobius daemon could not cancel the agent turn", error62);
89434
89481
  });
89435
89482
  }