@moxt-ai/mobius 0.0.176 → 0.0.177

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 (55) hide show
  1. package/dist/acp/agent-runtime-manager.d.ts +2 -1
  2. package/dist/acp/agent-runtime-manager.d.ts.map +1 -1
  3. package/dist/acp/agent-runtime-manager.js +11 -1
  4. package/dist/acp/agent-runtime-manager.js.map +1 -1
  5. package/dist/acp/agent-session.d.ts +3 -1
  6. package/dist/acp/agent-session.d.ts.map +1 -1
  7. package/dist/acp/agent-session.js +48 -20
  8. package/dist/acp/agent-session.js.map +1 -1
  9. package/dist/acp/codex/agent.d.ts.map +1 -1
  10. package/dist/acp/codex/agent.js +0 -12
  11. package/dist/acp/codex/agent.js.map +1 -1
  12. package/dist/acp/session-contracts.d.ts +3 -1
  13. package/dist/acp/session-contracts.d.ts.map +1 -1
  14. package/dist/acp/session-contracts.js.map +1 -1
  15. package/dist/cli.js +197 -610
  16. package/dist/cli.js.map +4 -4
  17. package/dist/daemon-command-handler.d.ts +1 -3
  18. package/dist/daemon-command-handler.d.ts.map +1 -1
  19. package/dist/daemon-command-handler.js +11 -9
  20. package/dist/daemon-command-handler.js.map +1 -1
  21. package/dist/daemon-command-results.d.ts +2 -3
  22. package/dist/daemon-command-results.d.ts.map +1 -1
  23. package/dist/daemon-command-results.js +4 -12
  24. package/dist/daemon-command-results.js.map +1 -1
  25. package/dist/daemon-prompt-executor.d.ts +2 -6
  26. package/dist/daemon-prompt-executor.d.ts.map +1 -1
  27. package/dist/daemon-prompt-executor.js +20 -73
  28. package/dist/daemon-prompt-executor.js.map +1 -1
  29. package/dist/daemon-session-commands.d.ts +2 -3
  30. package/dist/daemon-session-commands.d.ts.map +1 -1
  31. package/dist/daemon-session-commands.js +3 -15
  32. package/dist/daemon-session-commands.js.map +1 -1
  33. package/dist/index.js +196 -609
  34. package/dist/index.js.map +4 -4
  35. package/dist/relay-connection/run-relay-connection.d.ts.map +1 -1
  36. package/dist/relay-connection/run-relay-connection.js +0 -1
  37. package/dist/relay-connection/run-relay-connection.js.map +1 -1
  38. package/dist/relay-connection/session-event-publisher.d.ts +2 -3
  39. package/dist/relay-connection/session-event-publisher.d.ts.map +1 -1
  40. package/dist/relay-connection/session-event-publisher.js +8 -46
  41. package/dist/relay-connection/session-event-publisher.js.map +1 -1
  42. package/dist/run-daemon.d.ts.map +1 -1
  43. package/dist/run-daemon.js +4 -5
  44. package/dist/run-daemon.js.map +1 -1
  45. package/dist/runtime.js +196 -609
  46. package/dist/runtime.js.map +4 -4
  47. package/dist/session-event-log-v2.d.ts +7 -5
  48. package/dist/session-event-log-v2.d.ts.map +1 -1
  49. package/dist/session-event-log-v2.js +83 -12
  50. package/dist/session-event-log-v2.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/relay-connection/coalescing-agent-event-publisher.d.ts +0 -32
  53. package/dist/relay-connection/coalescing-agent-event-publisher.d.ts.map +0 -1
  54. package/dist/relay-connection/coalescing-agent-event-publisher.js +0 -116
  55. package/dist/relay-connection/coalescing-agent-event-publisher.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { ContentBlockV2, QueuedPromptRequestEventLogV2, SessionEventPayloadV2, SessionEventV2, SessionPromptCommand } from "@moxt-ai/mobius-protocol";
1
+ import type { ContentBlockV2, PromptExecutionContextV2, QueuedPromptRequestEventLogV2, SessionEventPayloadV2, SessionEventV2, SessionPromptCommand } from "@moxt-ai/mobius-protocol";
2
2
  import type { DaemonSessionEventPublisher } from "./relay-connection/session-event-publisher.ts";
3
3
  export interface PromptRequestRecoveryV2 {
4
4
  readonly queuedPromptRequests: readonly QueuedPromptRequestEventLogV2[];
@@ -7,18 +7,20 @@ export declare function sessionEventV2(daemonGenerationId: string, sessionId: st
7
7
  export declare class DaemonSessionEventLogV2 {
8
8
  #private;
9
9
  readonly daemonGenerationId: string;
10
- constructor(publisher: DaemonSessionEventPublisher, daemonGenerationId?: string);
10
+ constructor(publisher: DaemonSessionEventPublisher, recordLifecycle: (sessionId: string, event: SessionEventPayloadV2) => Promise<boolean>, daemonGenerationId?: string);
11
11
  readonly requested: (command: SessionPromptCommand) => void;
12
12
  readonly started: (sessionId: string, commandId: string, attemptId: string, epoch: string) => {
13
13
  readonly attemptId: string;
14
14
  readonly content: readonly ContentBlockV2[];
15
15
  readonly epoch: string;
16
+ readonly context: PromptExecutionContextV2;
16
17
  };
17
18
  readonly record: (sessionId: string, event: SessionEventPayloadV2, position: number) => void;
19
+ readonly publishTerminal: (sessionId: string, commandId: string) => void;
18
20
  readonly event: (sessionId: string, position: number, event: SessionEventPayloadV2, recordedAt: string) => SessionEventV2;
19
- readonly queueChanged: (_sessionId: string) => void;
20
- readonly completed: (sessionId: string, commandId: string, _stopReason: string) => void;
21
- readonly failed: (sessionId: string, commandId: string, _code: string, _message: string) => void;
21
+ readonly queueChanged: (sessionId: string) => Promise<void>;
22
+ readonly completed: (sessionId: string, commandId: string, stopReason: string) => Promise<void>;
23
+ readonly failed: (sessionId: string, commandId: string, code: string, message: string) => Promise<void>;
22
24
  readonly promptRequestRecovery: (sessionId: string) => PromptRequestRecoveryV2;
23
25
  }
24
26
  //# sourceMappingURL=session-event-log-v2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-event-log-v2.d.ts","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,cAAc,EACd,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAQjG,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC3E;AA4BD,wBAAgB,cAAc,CAC1B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,MAAM,GACnB,cAAc,CAUhB;AAED,qBAAa,uBAAuB;;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAIpC,YAAY,SAAS,EAAE,2BAA2B,EAAE,kBAAkB,GAAE,MAAqB,EAG5F;IAED,QAAQ,CAAC,SAAS,YAAa,oBAAoB,KAAG,IAAI,CAMxD;IAEF,QAAQ,CAAC,OAAO,cACD,MAAM,aACN,MAAM,aACN,MAAM,SACV,MAAM,KACd;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAOpG;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,SAAS,qBAAqB,YAAY,MAAM,KAAG,IAAI,CAEzF;IAEF,QAAQ,CAAC,KAAK,cACC,MAAM,YACP,MAAM,SACT,qBAAqB,cAChB,MAAM,KACnB,cAAc,CAAoF;IAErG,QAAQ,CAAC,YAAY,eAAgB,MAAM,KAAG,IAAI,CAAc;IAEhE,QAAQ,CAAC,SAAS,cAAe,MAAM,aAAa,MAAM,eAAe,MAAM,KAAG,IAAI,CAKpF;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,aAAa,MAAM,SAAS,MAAM,YAAY,MAAM,KAAG,IAAI,CAK7F;IAEF,QAAQ,CAAC,qBAAqB,cAAe,MAAM,KAAG,uBAAuB,CAI1E;CACN"}
1
+ {"version":3,"file":"session-event-log-v2.d.ts","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,cAAc,EACd,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAcjG,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC3E;AA4BD,wBAAgB,cAAc,CAC1B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,MAAM,GACnB,cAAc,CAUhB;AAED,qBAAa,uBAAuB;;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAOpC,YACI,SAAS,EAAE,2BAA2B,EACtC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,EACtF,kBAAkB,GAAE,MAAqB,EAK5C;IAED,QAAQ,CAAC,SAAS,YAAa,oBAAoB,KAAG,IAAI,CAYxD;IAEF,QAAQ,CAAC,OAAO,cACD,MAAM,aACN,MAAM,aACN,MAAM,SACV,MAAM,KACd;QACC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;QAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;KAC9C,CAOC;IAEF,QAAQ,CAAC,MAAM,cAAe,MAAM,SAAS,qBAAqB,YAAY,MAAM,KAAG,IAAI,CAqBzF;IAEF,QAAQ,CAAC,eAAe,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAyBrE;IAEF,QAAQ,CAAC,KAAK,cACC,MAAM,YACP,MAAM,SACT,qBAAqB,cAChB,MAAM,KACnB,cAAc,CAAoF;IAErG,QAAQ,CAAC,YAAY,cAAqB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAK9D;IAEF,QAAQ,CAAC,SAAS,cAAqB,MAAM,aAAa,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAiBlG;IAEF,QAAQ,CAAC,MAAM,cAAqB,MAAM,aAAa,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAY1G;IAEF,QAAQ,CAAC,qBAAqB,cAAe,MAAM,KAAG,uBAAuB,CAI1E;CACN"}
@@ -36,8 +36,12 @@ export function sessionEventV2(daemonGenerationId, sessionId, position, event, r
36
36
  export class DaemonSessionEventLogV2 {
37
37
  daemonGenerationId;
38
38
  #publisher;
39
+ #terminal = new Map();
40
+ #publications = new Map();
39
41
  #queued = new Map();
40
- constructor(publisher, daemonGenerationId = randomUUID()) {
42
+ #recordLifecycle;
43
+ constructor(publisher, recordLifecycle, daemonGenerationId = randomUUID()) {
44
+ this.#recordLifecycle = recordLifecycle;
41
45
  this.#publisher = publisher;
42
46
  this.daemonGenerationId = daemonGenerationId;
43
47
  }
@@ -45,37 +49,104 @@ export class DaemonSessionEventLogV2 {
45
49
  this.#queued.set(command.commandId, {
46
50
  commandId: command.commandId,
47
51
  content: promptContent(command),
52
+ context: {
53
+ agentId: command.agentId,
54
+ directoryId: command.directoryId,
55
+ additionalDirectoryIds: command.additionalDirectoryIds,
56
+ },
57
+ phase: "queued",
48
58
  sessionId: command.sessionId,
49
59
  });
50
60
  };
51
61
  started = (sessionId, commandId, attemptId, epoch) => {
52
62
  const request = this.#queued.get(commandId);
53
63
  if (request?.sessionId === sessionId) {
54
- this.#queued.delete(commandId);
55
- return { attemptId, content: request.content, epoch };
64
+ this.#queued.set(commandId, { ...request, phase: "running" });
65
+ return { attemptId, content: request.content, epoch, context: request.context };
56
66
  }
57
67
  throw new Error("The executing prompt was not registered in the V2 queue");
58
68
  };
59
69
  record = (sessionId, event, position) => {
60
- this.#publisher.publishV2(this.event(sessionId, position, event, new Date().toISOString()));
70
+ const recorded = this.event(sessionId, position, event, new Date().toISOString());
71
+ if (event.type === "lifecycle-metadata" &&
72
+ (event.payload.kind === "prompt.completed" ||
73
+ event.payload.kind === "prompt.failed" ||
74
+ event.payload.kind === "prompt.failed-before-start")) {
75
+ // Publish termination after prompt admission and execution state are settled.
76
+ this.#terminal.set(event.payload.commandId, recorded);
77
+ const pending = this.#publications.get(sessionId) ?? [];
78
+ pending.push(recorded);
79
+ this.#publications.set(sessionId, pending);
80
+ return;
81
+ }
82
+ const pending = this.#publications.get(sessionId);
83
+ if (pending !== undefined) {
84
+ pending.push(recorded);
85
+ }
86
+ else {
87
+ this.#publisher.publishV2(recorded);
88
+ }
89
+ };
90
+ publishTerminal = (sessionId, commandId) => {
91
+ const event = this.#terminal.get(commandId);
92
+ if (event?.sessionId === sessionId) {
93
+ this.#terminal.delete(commandId);
94
+ const pending = this.#publications.get(sessionId) ?? [];
95
+ while (pending.length > 0) {
96
+ const next = pending[0];
97
+ if (next === undefined) {
98
+ break;
99
+ }
100
+ if (next.type === "lifecycle-metadata" &&
101
+ "commandId" in next.payload &&
102
+ this.#terminal.has(next.payload.commandId)) {
103
+ break;
104
+ }
105
+ pending.shift();
106
+ this.#publisher.publishV2(next);
107
+ }
108
+ if (pending.length === 0) {
109
+ this.#publications.delete(sessionId);
110
+ }
111
+ }
112
+ this.#queued.delete(commandId);
61
113
  };
62
114
  event = (sessionId, position, event, recordedAt) => sessionEventV2(this.daemonGenerationId, sessionId, position, event, recordedAt);
63
- queueChanged = (_sessionId) => undefined;
64
- completed = (sessionId, commandId, _stopReason) => {
115
+ queueChanged = async (sessionId) => {
116
+ await this.#recordLifecycle(sessionId, {
117
+ type: "lifecycle-metadata",
118
+ payload: { kind: "session.queue.changed" },
119
+ });
120
+ };
121
+ completed = async (sessionId, commandId, stopReason) => {
65
122
  const request = this.#queued.get(commandId);
66
- if (request?.sessionId === sessionId) {
67
- this.#queued.delete(commandId);
123
+ if (request?.sessionId !== sessionId || this.#terminal.has(commandId)) {
124
+ return;
125
+ }
126
+ const recorded = await this.#recordLifecycle(sessionId, {
127
+ type: "lifecycle-metadata",
128
+ payload: { kind: "prompt.completed", commandId, stopReason },
129
+ });
130
+ if (!recorded) {
131
+ this.#publisher.publishOperationFailure(sessionId, commandId, "cancelled", "The prompt was cancelled before execution");
68
132
  }
69
133
  };
70
- failed = (sessionId, commandId, _code, _message) => {
134
+ failed = async (sessionId, commandId, code, message) => {
71
135
  const request = this.#queued.get(commandId);
72
- if (request?.sessionId === sessionId) {
73
- this.#queued.delete(commandId);
136
+ if (request?.sessionId !== sessionId || this.#terminal.has(commandId)) {
137
+ return;
138
+ }
139
+ const recorded = await this.#recordLifecycle(sessionId, {
140
+ type: "lifecycle-metadata",
141
+ payload: { kind: "prompt.failed-before-start", commandId, code, message },
142
+ });
143
+ if (!recorded) {
144
+ this.#publisher.publishOperationFailure(sessionId, commandId, code, message);
74
145
  }
75
146
  };
76
147
  promptRequestRecovery = (sessionId) => ({
77
148
  queuedPromptRequests: [...this.#queued.values()]
78
- .filter((request) => request.sessionId === sessionId)
149
+ .filter((request) => request.sessionId === sessionId && request.phase === "queued")
79
150
  .map(({ commandId, content }) => ({ commandId, content })),
80
151
  });
81
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-event-log-v2.js","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBrD,SAAS,aAAa,CAAC,OAA6B;IAChD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,OAAO;SAChB,CAAC,CAAC;IACP,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CACR,QAAQ,CAAC,IAAI,KAAK,UAAU;YACxB,CAAC,CAAC;gBACI,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;gBACjF,IAAI,EAAE,UAAU;aACnB;YACH,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CACvG,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,kBAA0B,EAC1B,SAAiB,EACjB,QAAgB,EAChB,KAA4B,EAC5B,UAAkB;IAElB,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,OAAO;QACH,OAAO,EAAE,SAAS,kBAAkB,IAAI,aAAa,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE;QAChG,GAAG,KAAK;QACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;QAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAChC,UAAU;QACV,SAAS;KACZ,CAAC;AACN,CAAC;AAED,MAAM,OAAO,uBAAuB;IACvB,kBAAkB,CAAS;IAC3B,UAAU,CAA8B;IACxC,OAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE5D,YAAY,SAAsC,EAAE,kBAAkB,GAAW,UAAU,EAAE;QACzF,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACjD,CAAC;IAEQ,SAAS,GAAG,CAAC,OAA6B,EAAQ,EAAE;QACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;YAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;IACP,CAAC,CAAC;IAEO,OAAO,GAAG,CACf,SAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,KAAa,EACsF,EAAE;QACrG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEO,MAAM,GAAG,CAAC,SAAiB,EAAE,KAA4B,EAAE,QAAgB,EAAQ,EAAE;QAC1F,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IAEO,KAAK,GAAG,CACb,SAAiB,EACjB,QAAgB,EAChB,KAA4B,EAC5B,UAAkB,EACJ,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE5F,YAAY,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC,SAAS,CAAC;IAEvD,SAAS,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,WAAmB,EAAQ,EAAE;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC;IAEO,MAAM,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,KAAa,EAAE,QAAgB,EAAQ,EAAE;QAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC;IAEO,qBAAqB,GAAG,CAAC,SAAiB,EAA2B,EAAE,CAAC,CAAC;QAC9E,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aAC3C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;aACpD,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;KACjE,CAAC,CAAC;CACN"}
1
+ {"version":3,"file":"session-event-log-v2.js","sourceRoot":"","sources":["../src/session-event-log-v2.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moxt-ai/mobius",
3
- "version": "0.0.176",
3
+ "version": "0.0.177",
4
4
  "description": "Mobius CLI for pairing and running local AI agent services.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,32 +0,0 @@
1
- import type { AcpActivity, AcpActivityNarration } from "../acp/activity.ts";
2
- import type { DaemonTimer } from "./timer.ts";
3
- export declare const AGENT_EVENT_COALESCING_MILLISECONDS = 100;
4
- export declare const AGENT_EVENT_TEXT_MAXIMUM_LENGTH = 100000;
5
- export type BufferedAgentEvent = {
6
- readonly kind: "activity";
7
- readonly activity: AcpActivity;
8
- } | {
9
- readonly kind: "narration";
10
- readonly increment: AcpActivityNarration;
11
- } | {
12
- readonly kind: "text";
13
- readonly messageId: string;
14
- readonly text: string;
15
- };
16
- /**
17
- * Coalesces the Agent callback stream without splitting it into independently
18
- * timed channels. Entries stay in callback order, and only compatible adjacent
19
- * entries are combined. Activity updates therefore cannot let later text pass
20
- * an earlier tool boundary, while repeated updates still avoid saturating the
21
- * Relay connection.
22
- */
23
- export declare class CoalescingAgentEventPublisher {
24
- #private;
25
- constructor(timer: DaemonTimer, publish: (event: BufferedAgentEvent) => void);
26
- readonly flush: () => void;
27
- readonly recordActivity: (activity: AcpActivity) => Promise<void>;
28
- readonly recordNarration: (increment: AcpActivityNarration) => Promise<void>;
29
- readonly recordText: (text: string, messageId: string) => Promise<void>;
30
- private schedule;
31
- }
32
- //# sourceMappingURL=coalescing-agent-event-publisher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coalescing-agent-event-publisher.d.ts","sourceRoot":"","sources":["../../src/relay-connection/coalescing-agent-event-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF;;;;;;GAMG;AACH,qBAAa,6BAA6B;;IAOtC,YAAY,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAG3E;IAED,QAAQ,CAAC,KAAK,QAAO,IAAI,CAQvB;IAEF,QAAQ,CAAC,cAAc,aAAc,WAAW,KAAG,OAAO,CAAC,IAAI,CAAC,CAe9D;IAEF,QAAQ,CAAC,eAAe,cAAe,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAAC,CAmCzE;IAEF,QAAQ,CAAC,UAAU,SAAU,MAAM,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CA8BpE;IAEF,OAAO,CAAC,QAAQ;CAGnB"}
@@ -1,116 +0,0 @@
1
- export const AGENT_EVENT_COALESCING_MILLISECONDS = 100;
2
- export const AGENT_EVENT_TEXT_MAXIMUM_LENGTH = 100_000;
3
- /**
4
- * Coalesces the Agent callback stream without splitting it into independently
5
- * timed channels. Entries stay in callback order, and only compatible adjacent
6
- * entries are combined. Activity updates therefore cannot let later text pass
7
- * an earlier tool boundary, while repeated updates still avoid saturating the
8
- * Relay connection.
9
- */
10
- export class CoalescingAgentEventPublisher {
11
- #entries = [];
12
- #publish;
13
- #publishedActivityIds = new Set();
14
- #scheduled = null;
15
- #timer;
16
- constructor(timer, publish) {
17
- this.#publish = publish;
18
- this.#timer = timer;
19
- }
20
- flush = () => {
21
- this.#scheduled?.cancel();
22
- this.#scheduled = null;
23
- const entries = this.#entries;
24
- this.#entries = [];
25
- for (const entry of entries) {
26
- this.#publish(entry);
27
- }
28
- };
29
- recordActivity = (activity) => {
30
- const latest = this.#entries.at(-1);
31
- this.#entries =
32
- latest?.kind === "activity" && latest.activity.activityId === activity.activityId
33
- ? [...this.#entries.slice(0, -1), { activity, kind: "activity" }]
34
- : [...this.#entries, { activity, kind: "activity" }];
35
- const first = !this.#publishedActivityIds.has(activity.activityId);
36
- this.#publishedActivityIds.add(activity.activityId);
37
- if (first || (activity.status !== "pending" && activity.status !== "running")) {
38
- this.flush();
39
- }
40
- else {
41
- this.schedule();
42
- }
43
- return Promise.resolve();
44
- };
45
- recordNarration = (increment) => {
46
- if (increment.text.length === 0) {
47
- return Promise.resolve();
48
- }
49
- let remaining = increment.text;
50
- while (remaining.length > 0) {
51
- const latest = this.#entries.at(-1);
52
- if (latest?.kind === "narration" && latest.increment.activityId === increment.activityId) {
53
- const available = AGENT_EVENT_TEXT_MAXIMUM_LENGTH - latest.increment.text.length;
54
- if (available > 0) {
55
- this.#entries = [
56
- ...this.#entries.slice(0, -1),
57
- {
58
- increment: {
59
- ...increment,
60
- text: `${latest.increment.text}${remaining.slice(0, available)}`,
61
- },
62
- kind: "narration",
63
- },
64
- ];
65
- remaining = remaining.slice(available);
66
- continue;
67
- }
68
- }
69
- this.#entries = [
70
- ...this.#entries,
71
- {
72
- increment: { ...increment, text: remaining.slice(0, AGENT_EVENT_TEXT_MAXIMUM_LENGTH) },
73
- kind: "narration",
74
- },
75
- ];
76
- remaining = remaining.slice(AGENT_EVENT_TEXT_MAXIMUM_LENGTH);
77
- }
78
- this.schedule();
79
- return Promise.resolve();
80
- };
81
- recordText = (text, messageId) => {
82
- if (text.length === 0) {
83
- return Promise.resolve();
84
- }
85
- let remaining = text;
86
- while (remaining.length > 0) {
87
- const latest = this.#entries.at(-1);
88
- if (latest?.kind === "text" && latest.messageId === messageId) {
89
- const available = AGENT_EVENT_TEXT_MAXIMUM_LENGTH - latest.text.length;
90
- if (available > 0) {
91
- this.#entries = [
92
- ...this.#entries.slice(0, -1),
93
- { ...latest, text: `${latest.text}${remaining.slice(0, available)}` },
94
- ];
95
- remaining = remaining.slice(available);
96
- continue;
97
- }
98
- }
99
- this.#entries = [
100
- ...this.#entries,
101
- {
102
- kind: "text",
103
- messageId,
104
- text: remaining.slice(0, AGENT_EVENT_TEXT_MAXIMUM_LENGTH),
105
- },
106
- ];
107
- remaining = remaining.slice(AGENT_EVENT_TEXT_MAXIMUM_LENGTH);
108
- }
109
- this.schedule();
110
- return Promise.resolve();
111
- };
112
- schedule() {
113
- this.#scheduled ??= this.#timer.schedule(this.flush, AGENT_EVENT_COALESCING_MILLISECONDS);
114
- }
115
- }
116
- //# sourceMappingURL=coalescing-agent-event-publisher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"coalescing-agent-event-publisher.js","sourceRoot":"","sources":["../../src/relay-connection/coalescing-agent-event-publisher.ts"],"names":[],"mappings":"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"}