@moxt-ai/mobius 0.0.388 → 0.0.389

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 (44) hide show
  1. package/dist/{chunk-7BSIM5AK.js → chunk-77O2RBRQ.js} +122 -87
  2. package/dist/{chunk-7BSIM5AK.js.map → chunk-77O2RBRQ.js.map} +3 -3
  3. package/dist/{chunk-Z4WUPVBL.js → chunk-Z6ERJZ2H.js} +2 -2
  4. package/dist/{chunk-Z4WUPVBL.js.map → chunk-Z6ERJZ2H.js.map} +1 -1
  5. package/dist/{cli-O57WJIFN.js → cli-I4NLPVNV.js} +3 -3
  6. package/dist/cli.js +2 -2
  7. package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
  8. package/dist/engine/runtime/command/registry/prompt.js +0 -1
  9. package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
  10. package/dist/engine/session/live/agent-session.d.ts +13 -3
  11. package/dist/engine/session/live/agent-session.d.ts.map +1 -1
  12. package/dist/engine/session/live/agent-session.js +23 -20
  13. package/dist/engine/session/live/agent-session.js.map +1 -1
  14. package/dist/engine/session/manager/session-manager.d.ts +2 -0
  15. package/dist/engine/session/manager/session-manager.d.ts.map +1 -1
  16. package/dist/engine/session/manager/session-manager.js +27 -28
  17. package/dist/engine/session/manager/session-manager.js.map +1 -1
  18. package/dist/engine/session/prompt/execute-prompt.d.ts +1 -2
  19. package/dist/engine/session/prompt/execute-prompt.d.ts.map +1 -1
  20. package/dist/engine/session/prompt/execute-prompt.js +7 -4
  21. package/dist/engine/session/prompt/execute-prompt.js.map +1 -1
  22. package/dist/engine/session/turn/active-executions.d.ts +27 -10
  23. package/dist/engine/session/turn/active-executions.d.ts.map +1 -1
  24. package/dist/engine/session/turn/active-executions.js +78 -22
  25. package/dist/engine/session/turn/active-executions.js.map +1 -1
  26. package/dist/engine/session/turn/active-turn.d.ts +0 -2
  27. package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
  28. package/dist/engine/session/turn/active-turn.js +0 -2
  29. package/dist/engine/session/turn/active-turn.js.map +1 -1
  30. package/dist/engine/session/turn/session-execution.d.ts +0 -2
  31. package/dist/engine/session/turn/session-execution.d.ts.map +1 -1
  32. package/dist/engine/session/turn/session-execution.js +0 -2
  33. package/dist/engine/session/turn/session-execution.js.map +1 -1
  34. package/dist/engine/session/turn/session-turns.d.ts +0 -1
  35. package/dist/engine/session/turn/session-turns.d.ts.map +1 -1
  36. package/dist/engine/session/turn/session-turns.js +0 -1
  37. package/dist/engine/session/turn/session-turns.js.map +1 -1
  38. package/dist/engine.js +2 -2
  39. package/package.json +1 -1
  40. package/dist/engine/session/live/agent-turn.d.ts +0 -14
  41. package/dist/engine/session/live/agent-turn.d.ts.map +0 -1
  42. package/dist/engine/session/live/agent-turn.js +0 -16
  43. package/dist/engine/session/live/agent-turn.js.map +0 -1
  44. /package/dist/{cli-O57WJIFN.js.map → cli-I4NLPVNV.js.map} +0 -0
@@ -21,7 +21,7 @@ export class SessionManager {
21
21
  touch: (runtime) => this.#processes.touch(runtime),
22
22
  changed: () => this.#processes.notifyChanged(),
23
23
  });
24
- #executions = new ActiveExecutions();
24
+ #executions;
25
25
  #agentSettingsObserver = new NullSessionObserver();
26
26
  #nativeOperations = new Set();
27
27
  #sessionClosures = new Map();
@@ -30,7 +30,6 @@ export class SessionManager {
30
30
  #closedSessions = new Set();
31
31
  #store;
32
32
  #sessionIdentity;
33
- #onSessionStatusChanged;
34
33
  #onSessionClosed;
35
34
  #timer;
36
35
  #observer;
@@ -39,7 +38,7 @@ export class SessionManager {
39
38
  this.#processes = processes;
40
39
  this.#store = store;
41
40
  this.#sessionIdentity = sessionIdentity;
42
- this.#onSessionStatusChanged = onSessionStatusChanged;
41
+ this.#executions = new ActiveExecutions((sessionId, status) => onSessionStatusChanged({ kind: "session.status.changed", sessionId, status }));
43
42
  this.#onSessionClosed = onSessionClosed;
44
43
  this.#timer = timer;
45
44
  }
@@ -149,14 +148,14 @@ export class SessionManager {
149
148
  this.#store.read(options.sessionId) instanceof MissingStoredSession
150
149
  ? { ...options, origin: { kind: "import", nativeSessionId: options.sessionId, title: "" } }
151
150
  : options;
152
- return await this.#startRetainedSessionProcess(effectiveOptions, async (capabilities) => await AgentSession.start(effectiveOptions, recovery, () => this.#observer, this.#store, metrics, options.adapter, capabilities));
151
+ return await this.#startRetainedSessionProcess(effectiveOptions, async (capabilities) => await AgentSession.start(effectiveOptions, recovery, () => this.#observer, this.#executions.agentCommand, this.#store, metrics, options.adapter, capabilities));
153
152
  });
154
153
  }
155
154
  async #replacePreparation(existing, options, recovery, metrics) {
156
155
  return await this.#executionProcesses.prepare(options.sessionId, async () => {
157
156
  await this.#retireSessionProcess(options.sessionId, existing, async () => await metrics.measure("runtime-replacement-close", async () => await existing.close()));
158
157
  this.#store.remove(options.sessionId);
159
- return await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#store, metrics, options.adapter, capabilities));
158
+ return await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#executions.agentCommand, this.#store, metrics, options.adapter, capabilities));
160
159
  });
161
160
  }
162
161
  async #replaceExecutionPreparation(existing, options) {
@@ -164,7 +163,7 @@ export class SessionManager {
164
163
  const recovery = options.recovery ?? { kind: "interactive-only" };
165
164
  return await this.#executionProcesses.prepare(options.sessionId, async () => {
166
165
  await this.#retireSessionProcess(options.sessionId, existing, async () => await existing.close());
167
- const runtime = await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#store, unmeasuredOperationMetrics, options.adapter, capabilities));
166
+ const runtime = await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#executions.agentCommand, this.#store, unmeasuredOperationMetrics, options.adapter, capabilities));
168
167
  try {
169
168
  for (const desired of desiredConfigOptions) {
170
169
  const current = runtime.prepared().configOptions.find((option) => option.id === desired.id);
@@ -228,7 +227,7 @@ export class SessionManager {
228
227
  }
229
228
  return await this.#executionProcesses.prepare(options.sessionId, async () => {
230
229
  await this.#stopSessionProcess(options.sessionId, existing);
231
- return await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#store, unmeasuredOperationMetrics, options.adapter, capabilities));
230
+ return await this.#startRetainedSessionProcess(options, async (capabilities) => await AgentSession.start(options, recovery, () => this.#observer, this.#executions.agentCommand, this.#store, unmeasuredOperationMetrics, options.adapter, capabilities));
232
231
  });
233
232
  }
234
233
  async #prepareSession(options, recovery, closed, metrics = unmeasuredOperationMetrics) {
@@ -269,7 +268,8 @@ export class SessionManager {
269
268
  }
270
269
  return runtime.prepared();
271
270
  }
272
- if (!existing.canRebind()) {
271
+ // A process that served a prompt, or is preparing one, keeps its agent and workspace.
272
+ if (existing.prepared().prompted || this.#executions.isBusy(options.sessionId)) {
273
273
  throw new AcpExecutionError("The agent or workspace cannot change after a conversation has started", {}, "session_identity_mismatch");
274
274
  }
275
275
  const runtime = await this.#replacePreparation(existing, options, recovery, metrics);
@@ -290,7 +290,7 @@ export class SessionManager {
290
290
  return await this.#processes.runTransient(options.signal, async () => await AgentSession.start({
291
291
  ...options,
292
292
  sessionId: `agent-settings-${crypto.randomUUID()}`,
293
- }, { kind: "interactive-only" }, () => this.#agentSettingsObserver, new MemorySessionStore(), unmeasuredOperationMetrics, options.adapter), async (runtime) => {
293
+ }, { kind: "interactive-only" }, () => this.#agentSettingsObserver, () => undefined, new MemorySessionStore(), unmeasuredOperationMetrics, options.adapter), async (runtime) => {
294
294
  const prepared = runtime.prepared();
295
295
  const discoveredModelEffort = runtime.agentSettingsModelEffort();
296
296
  const model = options.model;
@@ -364,7 +364,7 @@ export class SessionManager {
364
364
  this.#executionProcesses.touch(options.sessionId, runtime);
365
365
  return runtime.prepared();
366
366
  }
367
- if (existing.hasRunningTurn()) {
367
+ if (this.#executions.isBusy(options.sessionId)) {
368
368
  throw new AcpExecutionError("The execution environment cannot change while a conversation turn is running", {}, "session_busy");
369
369
  }
370
370
  return (await this.#replaceExecutionPreparation(existing, options)).prepared();
@@ -414,15 +414,18 @@ export class SessionManager {
414
414
  }
415
415
  });
416
416
  });
417
+ /** Whether a steering prompt can join the named execution: the one rule every steering check asks. */
418
+ acceptsSteering = (sessionId, targetCommandId) => this.#executions.acceptsSteering(sessionId, targetCommandId);
417
419
  steerPrompt = async (options) => this.#operations.run(options, async (options) => {
418
- if (this.#executions.command(options.sessionId) !== options.targetCommandId) {
420
+ if (!this.acceptsSteering(options.sessionId, options.targetCommandId)) {
419
421
  throw new AcpExecutionError("The target turn is no longer active", {}, "steering_target_unavailable");
420
422
  }
421
423
  const pending = this.#executionProcesses.pending(options.sessionId);
422
424
  if (pending !== undefined) {
423
425
  await waitForSharedOperation(pending, options.signal);
424
426
  }
425
- if (this.#executions.command(options.sessionId) !== options.targetCommandId) {
427
+ // Nothing below awaits before the Agent receives the steer, so this check holds at the handoff.
428
+ if (!this.acceptsSteering(options.sessionId, options.targetCommandId)) {
426
429
  throw new AcpExecutionError("The target turn is no longer active", {}, "steering_target_unavailable");
427
430
  }
428
431
  const runtime = this.#executionProcesses.get(options.sessionId);
@@ -458,13 +461,8 @@ export class SessionManager {
458
461
  this.#executions.begin(options.sessionId, options.commandId);
459
462
  // The command's own turn records a cancellation that arrives before its execution begins.
460
463
  const cancelled = () => options.cancellationRequested?.() === true ||
461
- this.#executions.cancellation(options.sessionId) !== undefined;
464
+ this.#executions.cancellationRequested(options.sessionId, options.commandId);
462
465
  try {
463
- this.#onSessionStatusChanged({
464
- kind: "session.status.changed",
465
- sessionId: options.sessionId,
466
- status: { commandId: options.commandId, kind: "working" },
467
- });
468
466
  if (cancelled()) {
469
467
  return { stopReason: "cancelled" };
470
468
  }
@@ -476,6 +474,12 @@ export class SessionManager {
476
474
  return { stopReason: "cancelled" };
477
475
  }
478
476
  try {
477
+ await runtime.preparePrompt(options.signal);
478
+ // Nothing awaits between this check and the Agent receiving the prompt.
479
+ if (cancelled()) {
480
+ return { stopReason: "cancelled" };
481
+ }
482
+ this.#executions.start(options.sessionId, options.commandId);
479
483
  const result = await runtime.prompt({
480
484
  ...options,
481
485
  cancellationRequested: cancelled,
@@ -489,6 +493,9 @@ export class SessionManager {
489
493
  }
490
494
  throw error;
491
495
  }
496
+ finally {
497
+ this.#executions.settle(options.sessionId, options.commandId);
498
+ }
492
499
  }
493
500
  catch (error) {
494
501
  const failedRuntime = this.#executionProcesses.get(options.sessionId);
@@ -511,11 +518,6 @@ export class SessionManager {
511
518
  }
512
519
  finally {
513
520
  this.#executions.finish(options.sessionId, options.commandId);
514
- this.#onSessionStatusChanged({
515
- kind: "session.status.changed",
516
- sessionId: options.sessionId,
517
- status: { kind: "idle" },
518
- });
519
521
  this.#executionProcesses.touch(options.sessionId);
520
522
  this.#processes.notifyChanged();
521
523
  }
@@ -583,10 +585,7 @@ export class SessionManager {
583
585
  const stored = this.#store.read(sessionId);
584
586
  return stored instanceof FoundStoredSession ? [stored.session] : [];
585
587
  });
586
- sessionStatus = (sessionId) => {
587
- const commandId = this.#executions.command(sessionId);
588
- return commandId === undefined ? { kind: "idle" } : { commandId, kind: "working" };
589
- };
588
+ sessionStatus = (sessionId) => this.#executions.status(sessionId);
590
589
  listSessions = (limit) => this.#store
591
590
  .list()
592
591
  .filter((session) => session.prompted)
@@ -724,7 +723,7 @@ export class SessionManager {
724
723
  });
725
724
  }
726
725
  // A fork or a first import reads the native session, which a running turn may still be writing.
727
- if (linked.some((entry) => this.#executions.command(entry.sessionId) !== undefined ||
726
+ if (linked.some((entry) => this.#executions.isBusy(entry.sessionId) ||
728
727
  this.#executionProcesses.pending(entry.sessionId) !== undefined)) {
729
728
  throw new AcpExecutionError("Wait for the native session's running operation to finish", {}, "session_busy");
730
729
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../../src/engine/session/manager/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../../src/engine/session/manager/session-manager.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,6 @@ export interface ExecutePromptOptions {
23
23
  readonly kind: "queue-target-unavailable";
24
24
  }>;
25
25
  readonly signal: AbortSignal;
26
- readonly steerTargetStarted: () => boolean;
27
26
  readonly cancellationRequested: () => boolean;
28
27
  }
29
28
  /**
@@ -31,5 +30,5 @@ export interface ExecutePromptOptions {
31
30
  * immediately before handing the work to the Agent; until then a cancellation withdraws it and a failure settles it
32
31
  * as failed before start.
33
32
  */
34
- export declare function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch, waitForSessionAvailability, signal, steerTargetStarted, cancellationRequested, }: ExecutePromptOptions): Promise<void>;
33
+ export declare function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch, waitForSessionAvailability, signal, cancellationRequested, }: ExecutePromptOptions): Promise<void>;
35
34
  //# sourceMappingURL=execute-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-prompt.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,oBAAoB,EAE5B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EAAuB,KAAK,kBAAkB,EAA0B,MAAM,uBAAuB,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,0BAA0B,EAAE,CACjC,MAAM,EAAE,WAAW,KAClB,OAAO,CACN;QAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAC5D;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACzB;QAAE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAA;KAAE,CAClD,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAChC,eAAe,EACf,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,0BAA0B,EAC1B,MAAM,EACN,kBAAkB,EAClB,qBAAqB,GACxB,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKtC"}
1
+ {"version":3,"file":"execute-prompt.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,oBAAoB,EAE5B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EAAuB,KAAK,kBAAkB,EAA0B,MAAM,uBAAuB,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,0BAA0B,EAAE,CACjC,MAAM,EAAE,WAAW,KAClB,OAAO,CACN;QAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAC5D;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACzB;QAAE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAA;KAAE,CAClD,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAChC,eAAe,EACf,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,0BAA0B,EAC1B,MAAM,EACN,qBAAqB,GACxB,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsKtC"}
@@ -9,7 +9,7 @@ import { PromptArtifactError, resolvePromptArtifacts } from "./prompt-artifacts.
9
9
  * immediately before handing the work to the Agent; until then a cancellation withdraws it and a failure settles it
10
10
  * as failed before start.
11
11
  */
12
- export async function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch, waitForSessionAvailability, signal, steerTargetStarted, cancellationRequested, }) {
12
+ export async function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch, waitForSessionAvailability, signal, cancellationRequested, }) {
13
13
  try {
14
14
  const resolved = await resolveSessionDirectories(directories, command.bindingId, command.directoryId, command.additionalDirectoryIds, signal);
15
15
  const { agent, adapter, externalizeSessionUpdate } = await resolveAgent(command.agentId, signal, command.sessionId);
@@ -20,6 +20,12 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
20
20
  if (availability.kind === "queue-target-unavailable") {
21
21
  throw new AcpExecutionError("The queued prompt target is unavailable", {}, "prompt_queue_target_unavailable");
22
22
  }
23
+ // A steering prompt joins an execution the Agent already holds. Check before preparing, so a steer can never
24
+ // replace or reconfigure the process an admitted prompt is still preparing.
25
+ if (availability.disposition === SessionPromptDisposition.Steer &&
26
+ !sessions.acceptsSteering(command.sessionId, command.targetCommandId)) {
27
+ throw new AcpExecutionError("The steering target is unavailable", {}, "prompt_queue_target_unavailable");
28
+ }
23
29
  const appliedSettings = command.sessionConfigurations === undefined
24
30
  ? undefined
25
31
  : agentForSessionConfiguration(agent, command.sessionConfigurations);
@@ -49,9 +55,6 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
49
55
  prepared = await sessions.prepareExecutionSession(preparation);
50
56
  }
51
57
  signal.throwIfAborted();
52
- if (availability.disposition === SessionPromptDisposition.Steer && !steerTargetStarted()) {
53
- throw new AcpExecutionError("The steering target is unavailable", {}, "prompt_queue_target_unavailable");
54
- }
55
58
  const lifecycle = eventProjection.lifecycle(command.sessionId, command.commandId, attemptId, epoch, availability.disposition);
56
59
  const attachments = await resolvePromptArtifacts(readArtifact, command.attachments, signal);
57
60
  const skipped = command.attachments.length - attachments.images.length - attachments.resources.length;
@@ -1 +1 @@
1
- {"version":3,"file":"execute-prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,33 @@
1
+ import type { SessionStatus } from "@moxt-ai/mobius-sdk/protocol";
1
2
  /**
2
- * The prompt each Session's Agent process is driving, and the cancellation sent to it. Session admission is the only
3
- * owner of whether a Session is busy and admits one execution at a time, so this records that execution without
4
- * deciding it again. Cancellation names the command it stops and never outlives that command's execution; a command
5
- * cancelled before its execution begins is withdrawn by its own turn instead.
3
+ * The single authority for which command each Session is executing and in what phase. Every reader asks it: steering
4
+ * joins only a started execution, the Agent process may change only while no execution holds the Session, a
5
+ * cancellation stops only the execution it names, and the Session's working/idle status is derived from it.
6
+ *
7
+ * Contract: admission is the only owner of whether a Session is busy, so `begin` requires an idle Session. Each
8
+ * transition names its command and is ignored for any other. All operations are synchronous, so a check and the
9
+ * transition that relies on it cannot be separated by another caller.
6
10
  */
7
11
  export declare class ActiveExecutions {
8
12
  #private;
9
- readonly command: (id: string) => string | undefined;
10
- readonly cancellation: (id: string) => Promise<void> | undefined;
11
- readonly isBusy: (id: string) => boolean;
12
- readonly begin: (id: string, commandId: string) => void;
13
- readonly cancel: (id: string, commandId: string, stop: () => Promise<void>) => Promise<void>;
14
- readonly finish: (id: string, commandId: string) => void;
13
+ constructor(statusChanged: (sessionId: string, status: SessionStatus) => void);
14
+ readonly status: (sessionId: string) => SessionStatus;
15
+ readonly isBusy: (sessionId: string) => boolean;
16
+ /** A steering prompt can join only the named execution while the Agent holds it and no one is stopping it. */
17
+ readonly acceptsSteering: (sessionId: string, targetCommandId: string) => boolean;
18
+ /** The command whose prompt the Session's Agent holds, if any. */
19
+ readonly agentCommand: (sessionId: string) => string | undefined;
20
+ readonly cancellationRequested: (sessionId: string, commandId: string) => boolean;
21
+ readonly cancellation: (sessionId: string) => Promise<void> | undefined;
22
+ readonly begin: (sessionId: string, commandId: string) => void;
23
+ /** The Agent receives the prompt. A cancelled execution must not start. */
24
+ readonly start: (sessionId: string, commandId: string) => void;
25
+ readonly settle: (sessionId: string, commandId: string) => void;
26
+ /**
27
+ * Records a cancellation of the named execution and asks `stop` to end it once. Another command's cancellation,
28
+ * or one for an idle Session, has nothing to stop. A cancelled execution that has not started never starts.
29
+ */
30
+ readonly cancel: (sessionId: string, commandId: string, stop: () => Promise<void>) => Promise<void>;
31
+ readonly finish: (sessionId: string, commandId: string) => void;
15
32
  }
16
33
  //# sourceMappingURL=active-executions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"active-executions.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-executions.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,qBAAa,gBAAgB;;IAEzB,QAAQ,CAAC,OAAO,OAAQ,MAAM,KAAG,MAAM,GAAG,SAAS,CAAqC;IACxF,QAAQ,CAAC,YAAY,OAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAG7D;IACF,QAAQ,CAAC,MAAM,OAAQ,MAAM,KAAG,OAAO,CAA0B;IACjE,QAAQ,CAAC,KAAK,OAAQ,MAAM,aAAa,MAAM,KAAG,IAAI,CAEpD;IACF,QAAQ,CAAC,MAAM,OAAQ,MAAM,aAAa,MAAM,QAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAYzF;IACF,QAAQ,CAAC,MAAM,OAAQ,MAAM,aAAa,MAAM,KAAG,IAAI,CAIrD;CACL"}
1
+ {"version":3,"file":"active-executions.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-executions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAiBlE;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;;IAIzB,YAAY,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,EAE5E;IAED,QAAQ,CAAC,MAAM,cAAe,MAAM,KAAG,aAAa,CAGlD;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,KAAG,OAAO,CAAiC;IAE/E,8GAA8G;IAC9G,QAAQ,CAAC,eAAe,cAAe,MAAM,mBAAmB,MAAM,KAAG,OAAO,CAO9E;IAEF,kEAAkE;IAClE,QAAQ,CAAC,YAAY,cAAe,MAAM,KAAG,MAAM,GAAG,SAAS,CAG7D;IAEF,QAAQ,CAAC,qBAAqB,cAAe,MAAM,aAAa,MAAM,KAAG,OAAO,CAG9E;IAEF,QAAQ,CAAC,YAAY,cAAe,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAGpE;IAEF,QAAQ,CAAC,KAAK,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAM3D;IAEF,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAS3D;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAK5D;IAEF;;;OAGG;IACH,QAAQ,CAAC,MAAM,cAAe,MAAM,aAAa,MAAM,QAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAehG;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAM5D;CACL"}
@@ -1,37 +1,93 @@
1
1
  /**
2
- * The prompt each Session's Agent process is driving, and the cancellation sent to it. Session admission is the only
3
- * owner of whether a Session is busy and admits one execution at a time, so this records that execution without
4
- * deciding it again. Cancellation names the command it stops and never outlives that command's execution; a command
5
- * cancelled before its execution begins is withdrawn by its own turn instead.
2
+ * The single authority for which command each Session is executing and in what phase. Every reader asks it: steering
3
+ * joins only a started execution, the Agent process may change only while no execution holds the Session, a
4
+ * cancellation stops only the execution it names, and the Session's working/idle status is derived from it.
5
+ *
6
+ * Contract: admission is the only owner of whether a Session is busy, so `begin` requires an idle Session. Each
7
+ * transition names its command and is ignored for any other. All operations are synchronous, so a check and the
8
+ * transition that relies on it cannot be separated by another caller.
6
9
  */
7
10
  export class ActiveExecutions {
8
11
  #entries = new Map();
9
- command = (id) => this.#entries.get(id)?.commandId;
10
- cancellation = (id) => {
11
- const state = this.#entries.get(id);
12
- return state?.kind === "cancelling" ? state.completion : undefined;
13
- };
14
- isBusy = (id) => this.#entries.has(id);
15
- begin = (id, commandId) => {
16
- this.#entries.set(id, { kind: "running", commandId });
17
- };
18
- cancel = (id, commandId, stop) => {
19
- const state = this.#entries.get(id);
20
- if (state?.commandId !== commandId) {
12
+ #statusChanged;
13
+ constructor(statusChanged) {
14
+ this.#statusChanged = statusChanged;
15
+ }
16
+ status = (sessionId) => {
17
+ const execution = this.#entries.get(sessionId);
18
+ return execution === undefined ? { kind: "idle" } : { commandId: execution.commandId, kind: "working" };
19
+ };
20
+ isBusy = (sessionId) => this.#entries.has(sessionId);
21
+ /** A steering prompt can join only the named execution while the Agent holds it and no one is stopping it. */
22
+ acceptsSteering = (sessionId, targetCommandId) => {
23
+ const execution = this.#entries.get(sessionId);
24
+ return (execution?.commandId === targetCommandId &&
25
+ execution.phase === "started" &&
26
+ execution.cancellation.kind === "none");
27
+ };
28
+ /** The command whose prompt the Session's Agent holds, if any. */
29
+ agentCommand = (sessionId) => {
30
+ const execution = this.#entries.get(sessionId);
31
+ return execution?.phase === "started" ? execution.commandId : undefined;
32
+ };
33
+ cancellationRequested = (sessionId, commandId) => {
34
+ const execution = this.#entries.get(sessionId);
35
+ return execution?.commandId === commandId && execution.cancellation.kind === "requested";
36
+ };
37
+ cancellation = (sessionId) => {
38
+ const cancellation = this.#entries.get(sessionId)?.cancellation;
39
+ return cancellation?.kind === "requested" ? cancellation.completion : undefined;
40
+ };
41
+ begin = (sessionId, commandId) => {
42
+ if (this.#entries.has(sessionId)) {
43
+ throw new Error("A Session executes one command at a time");
44
+ }
45
+ this.#entries.set(sessionId, { commandId, phase: "preparing", cancellation: { kind: "none" } });
46
+ this.#statusChanged(sessionId, this.status(sessionId));
47
+ };
48
+ /** The Agent receives the prompt. A cancelled execution must not start. */
49
+ start = (sessionId, commandId) => {
50
+ const execution = this.#entries.get(sessionId);
51
+ if (execution?.commandId !== commandId || execution.phase !== "preparing") {
52
+ throw new Error("Only the Session's preparing execution can start");
53
+ }
54
+ if (execution.cancellation.kind !== "none") {
55
+ throw new Error("A cancelled execution cannot start");
56
+ }
57
+ this.#entries.set(sessionId, { ...execution, phase: "started" });
58
+ };
59
+ settle = (sessionId, commandId) => {
60
+ const execution = this.#entries.get(sessionId);
61
+ if (execution?.commandId === commandId) {
62
+ this.#entries.set(sessionId, { ...execution, phase: "settled" });
63
+ }
64
+ };
65
+ /**
66
+ * Records a cancellation of the named execution and asks `stop` to end it once. Another command's cancellation,
67
+ * or one for an idle Session, has nothing to stop. A cancelled execution that has not started never starts.
68
+ */
69
+ cancel = (sessionId, commandId, stop) => {
70
+ const execution = this.#entries.get(sessionId);
71
+ if (execution?.commandId !== commandId) {
21
72
  return Promise.resolve();
22
73
  }
23
- if (state.kind === "cancelling") {
24
- return state.completion;
74
+ if (execution.cancellation.kind === "requested") {
75
+ return execution.cancellation.completion;
25
76
  }
26
77
  const completion = Promise.withResolvers();
27
- this.#entries.set(id, { kind: "cancelling", commandId, completion: completion.promise });
78
+ this.#entries.set(sessionId, {
79
+ ...execution,
80
+ cancellation: { kind: "requested", completion: completion.promise },
81
+ });
28
82
  void (async () => await stop())().then(completion.resolve, completion.reject);
29
83
  return completion.promise;
30
84
  };
31
- finish = (id, commandId) => {
32
- if (this.command(id) === commandId) {
33
- this.#entries.delete(id);
85
+ finish = (sessionId, commandId) => {
86
+ if (this.#entries.get(sessionId)?.commandId !== commandId) {
87
+ return;
34
88
  }
89
+ this.#entries.delete(sessionId);
90
+ this.#statusChanged(sessionId, this.status(sessionId));
35
91
  };
36
92
  }
37
93
  //# sourceMappingURL=active-executions.js.map