@beeos-ai/device-agent 0.12.2 → 0.12.3

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.
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from "node:events";
2
2
  import type { TokenProvider } from "@beeos-ai/message-sdk/auth";
3
- import type { AnyRealtimeEventV1 } from "@beeos-ai/message-sdk/protocol";
3
+ import type { AnyRealtimeEventV1, JsonValue } from "@beeos-ai/message-sdk/protocol";
4
4
  export interface MessageBusMessage<TContent = unknown> {
5
5
  id: string;
6
6
  conversationId: string;
@@ -17,9 +17,36 @@ export interface MessageSendInput<TContent = unknown> {
17
17
  content: TContent;
18
18
  replyTo?: string;
19
19
  }
20
+ export interface MessageReplyStream {
21
+ readonly id: string;
22
+ readonly isTerminated: boolean;
23
+ readonly parts: readonly JsonValue[];
24
+ opened(): Promise<unknown>;
25
+ appendBody(chunk: string): void;
26
+ addPart(part: JsonValue): void;
27
+ replacePart(index: number, part: JsonValue): void;
28
+ finalize(options?: {
29
+ stopReason?: string;
30
+ }): Promise<unknown>;
31
+ fail(options?: {
32
+ body?: string;
33
+ stopReason?: string;
34
+ }): Promise<unknown>;
35
+ refuse(options?: {
36
+ stopReason?: string;
37
+ }): Promise<unknown>;
38
+ cancel(options?: {
39
+ stopReason?: string;
40
+ }): Promise<unknown>;
41
+ }
20
42
  export interface MessageBusClient {
21
43
  messages: {
22
44
  send(input: MessageSendInput): Promise<unknown>;
45
+ /**
46
+ * Open one durable v3 reply envelope and mutate it in place. Optional so
47
+ * older embedded clients can retain the legacy multi-message fallback.
48
+ */
49
+ startStream?(input: MessageSendInput): MessageReplyStream;
23
50
  };
24
51
  connect(): Promise<void>;
25
52
  disconnect(): Promise<void>;
@@ -29,6 +29,17 @@ export class DeviceMessageClient extends EventEmitter {
29
29
  ...(input.replyTo ? { replyTo: input.replyTo } : {}),
30
30
  });
31
31
  },
32
+ startStream: (input) => {
33
+ const messageId = input.id ?? randomUUID();
34
+ return this.client.messages.startStream({
35
+ conversationId: input.conversationId,
36
+ clientMessageId: messageId,
37
+ idempotencyKey: messageId,
38
+ type: input.type,
39
+ content: input.content,
40
+ ...(input.replyTo ? { replyTo: input.replyTo } : {}),
41
+ });
42
+ },
32
43
  };
33
44
  this.stopListening = this.client.listen({ eventTypes: ["message.created"] }, (event) => this.handleRealtimeEvent(event));
34
45
  this.stopSnapshotSubscription = this.client.subscribe(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"message-client.js","sourceRoot":"","sources":["../../src/messaging/message-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-client.js","sourceRoot":"","sources":["../../src/messaging/message-client.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,10 @@ export function buildMessageBusCancelHandler(opts) {
39
39
  return;
40
40
  }
41
41
  const reason = pickString(content.reason) || "unknown";
42
- const entry = opts.tracker.findByInboundMessageId(targetMessageId);
42
+ // Web/API cancellation targets the live `agent_reply`, while A2A timeout
43
+ // and disconnect paths may still target the original inbound request.
44
+ // Both ids identify the same single in-flight phone turn.
45
+ const entry = opts.tracker.findByTargetMessageId(targetMessageId);
43
46
  if (!entry) {
44
47
  opts.logger.debug({ targetMessageId, reason }, "message-bus: chat_cancel for unknown / already-finished turn — no-op");
45
48
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/cancel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAQtD,MAAM,UAAU,4BAA4B,CAC1C,IAAoC;IAEpC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,EACtC,yDAAyD,CAC1D,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,eAAe,EAAE,MAAM,EAAE,EAC3B,sEAAsE,CACvE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,eAAe;YACf,MAAM;YACN,SAAS;SACV,EACD,6DAA6D,CAC9D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/cancel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAQtD,MAAM,UAAU,4BAA4B,CAC1C,IAAoC;IAEpC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QAC/D,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,EACtC,yDAAyD,CAC1D,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAEvD,yEAAyE;QACzE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,eAAe,EAAE,MAAM,EAAE,EAC3B,sEAAsE,CACvE,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,eAAe;YACf,MAAM;YACN,SAAS;SACV,EACD,6DAA6D,CAC9D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC"}
@@ -80,6 +80,7 @@ export function buildMessageBusInboundHandler(opts) {
80
80
  opts.sessionManager.bindNotifier(sid, notifier);
81
81
  opts.tracker.set({
82
82
  messageId: prompt.messageId,
83
+ ...(notifier.replyMessageId ? { replyMessageId: notifier.replyMessageId } : {}),
83
84
  channelId: prompt.channelId,
84
85
  sid,
85
86
  });
@@ -100,6 +101,10 @@ export function buildMessageBusInboundHandler(opts) {
100
101
  inboundMessageId: prompt.messageId,
101
102
  stopReason: result.stopReason,
102
103
  }, "message-bus: turn finished");
104
+ // Session updates are fire-and-forget. Join the notifier's terminal
105
+ // write before clearing correlation state so Stop/completion cannot
106
+ // leave the durable reply stuck in `streaming`.
107
+ await notifier.finish(result.stopReason);
103
108
  }
104
109
  catch (err) {
105
110
  const message = err instanceof Error ? err.message : String(err);
@@ -117,6 +122,9 @@ export function buildMessageBusInboundHandler(opts) {
117
122
  });
118
123
  }
119
124
  else if (!notifier.isFinalized) {
125
+ await notifier.finish("error", message);
126
+ }
127
+ if (message !== "agent_busy" && !notifier.isFinalized) {
120
128
  try {
121
129
  await opts.client.messages.send({
122
130
  conversationId: prompt.channelId,
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/inbound.ts"],"names":[],"mappings":"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"}
@@ -9,40 +9,23 @@
9
9
  * duration of the turn, then unbinds it when the await for
10
10
  * `promptForSession()` returns.
11
11
  *
12
- * Wire mapping (locked in to match beeos-claw `acp-server.ts onStreamDelta`):
12
+ * Wire mapping:
13
13
  *
14
- * - `agent_message_chunk` → `agent_reply_delta` with
15
- * `update.sessionUpdate=agent_message_chunk`. Text chunks are
16
- * accumulated into `accumulatedText`; `resource_link` chunks are
17
- * accumulated into `files[]` for structured file consumers and
18
- * flattened to their URI as text for compatibility while downstream
19
- * A2A projection learns to read `content.files`.
14
+ * - `agent_message_chunk` appends text to one v3 `agent_reply` stream.
15
+ * `resource_link` chunks also become structured `file` parts.
20
16
  *
21
- * - `agent_thought_chunk` → `agent_reply_delta` with
22
- * `update.sessionUpdate=agent_thought_chunk`. Reasoning is NEVER
23
- * accumulated — `backend/pkg/convmsg/extract.go::extractNestedDelta`
24
- * intentionally drops thought chunks so they don't pollute reply
25
- * text, and we mirror that here.
17
+ * - `agent_thought_chunk` updates a `thinking` part without polluting the
18
+ * visible answer body.
26
19
  *
27
- * - `stream_complete` → terminal `agent_reply`. Content shape
28
- * mirrors beeos-claw:
29
- * success → { session_key, text }
30
- * cancelled → { session_key, error: "cancelled", text? }
31
- * failure → { session_key, error, text? }
20
+ * - `tool_call` / `tool_call_update` become `tool_use`, progress, and
21
+ * `tool_result` parts consumed by the existing Web action-card renderer.
32
22
  *
33
- * - All other `sessionUpdate` types (`agent_status`, `tool_call`,
34
- * `tool_call_update`, `history_turn`, `system_message_chunk`,
35
- * `user_message_chunk`) are intentionally SKIPPED. The old
36
- * outbound listener also skipped them; mirroring keeps the wire
37
- * format byte-for-byte identical for downstream consumers.
23
+ * - `stream_complete` finalizes, fails, refuses, or cancels that same
24
+ * durable message. Message Service waiters ignore the streaming snapshot
25
+ * and only resolve once it reaches a terminal state.
38
26
  *
39
- * Both delta and terminal sends go through `client.messages.send`
40
- * (persistent v2 path). Persistence is REQUIRED for terminal replies:
41
- * caller `/wait` long-polls in 30s reconnect cycles, and an
42
- * unpersisted publish landing in the reconnect gap would be lost
43
- * forever (no DB row to replay from). Deltas inherit the same
44
- * persistent path because the SDK no longer offers a non-persistent
45
- * direct-Centrifugo publish.
27
+ * Older embedded Message clients that do not expose `startStream` retain the
28
+ * legacy persistent v2 delta + terminal-message fallback.
46
29
  *
47
30
  * The notifier never throws out of `send()` — that runs on the
48
31
  * SessionManager event hot path and a synchronous throw would skip
@@ -52,6 +35,7 @@
52
35
  import type { MessageBusClient } from "../../messaging/message-client.js";
53
36
  import type { SessionUpdateNotifier } from "../../app/session-manager.js";
54
37
  import type { Logger } from "../../logger/index.js";
38
+ import { type AgentTaskOutcome } from "../../core/task-outcome.js";
55
39
  export interface MsChannelNotifierOptions {
56
40
  client: MessageBusClient;
57
41
  /** Conversation the reply is published on (`ch:{conversationId}`). */
@@ -85,15 +69,21 @@ export declare class MsChannelNotifier implements SessionUpdateNotifier {
85
69
  /** Count of delta sends attempted this turn — diagnostics for the terminal log. */
86
70
  private deltaCount;
87
71
  private finalized;
88
- /**
89
- * Set synchronously on entry to `publishFinal` to guard against a
90
- * concurrent duplicate `stream_complete`. `finalized` (the public
91
- * "terminal reply actually landed" flag) is only set AFTER a
92
- * successful send, so a failed publish can be retried.
93
- */
94
- private finalizing;
72
+ private finalization;
95
73
  private readonly sleep;
74
+ private readonly stream;
75
+ private streamFlushTimer;
76
+ private pendingBodyText;
77
+ private pendingReplyText;
78
+ private pendingReasoningText;
79
+ private reasoningText;
80
+ private reasoningPartIndex;
81
+ private activeTextPart;
82
+ private nextPartSequence;
83
+ private readonly toolParts;
96
84
  constructor(opts: MsChannelNotifierOptions);
85
+ /** Durable reply id targeted by Message Service `chat_cancel` envelopes. */
86
+ get replyMessageId(): string | undefined;
97
87
  /**
98
88
  * Called by SessionManager for every `session/update` envelope on
99
89
  * this notifier's bound sid. Fire-and-forget: the SessionManager
@@ -108,6 +98,8 @@ export declare class MsChannelNotifier implements SessionUpdateNotifier {
108
98
  get currentText(): string;
109
99
  /** True once the terminal `agent_reply` has been published. */
110
100
  get isFinalized(): boolean;
101
+ /** Ensure the durable reply reaches a terminal state before unbinding it. */
102
+ finish(stopReason: string, errorText?: string, task?: Partial<AgentTaskOutcome> | null): Promise<void>;
111
103
  private handle;
112
104
  private publishDelta;
113
105
  /**
@@ -117,6 +109,24 @@ export declare class MsChannelNotifier implements SessionUpdateNotifier {
117
109
  * publish two terminal envelopes.
118
110
  */
119
111
  private publishFinal;
112
+ private publishFinalOnce;
113
+ private scheduleStreamFlush;
114
+ private flushStreamDeltas;
115
+ private publishReasoning;
116
+ /**
117
+ * Keep one mutable wire text part per uninterrupted prose segment. Token
118
+ * deltas replace that part in place; a tool call closes it so later prose
119
+ * receives a new sequence number and can render after the tool card.
120
+ */
121
+ private publishText;
122
+ private finishText;
123
+ private finishReasoning;
124
+ private publishToolCall;
125
+ private publishToolUpdate;
126
+ private appendFilePart;
127
+ private partSequence;
128
+ private logTerminalDelivered;
129
+ private logTerminalFailure;
120
130
  private fileContent;
121
131
  /**
122
132
  * Publish via `messages.send` with bounded exponential-backoff retry.
@@ -9,40 +9,23 @@
9
9
  * duration of the turn, then unbinds it when the await for
10
10
  * `promptForSession()` returns.
11
11
  *
12
- * Wire mapping (locked in to match beeos-claw `acp-server.ts onStreamDelta`):
12
+ * Wire mapping:
13
13
  *
14
- * - `agent_message_chunk` → `agent_reply_delta` with
15
- * `update.sessionUpdate=agent_message_chunk`. Text chunks are
16
- * accumulated into `accumulatedText`; `resource_link` chunks are
17
- * accumulated into `files[]` for structured file consumers and
18
- * flattened to their URI as text for compatibility while downstream
19
- * A2A projection learns to read `content.files`.
14
+ * - `agent_message_chunk` appends text to one v3 `agent_reply` stream.
15
+ * `resource_link` chunks also become structured `file` parts.
20
16
  *
21
- * - `agent_thought_chunk` → `agent_reply_delta` with
22
- * `update.sessionUpdate=agent_thought_chunk`. Reasoning is NEVER
23
- * accumulated — `backend/pkg/convmsg/extract.go::extractNestedDelta`
24
- * intentionally drops thought chunks so they don't pollute reply
25
- * text, and we mirror that here.
17
+ * - `agent_thought_chunk` updates a `thinking` part without polluting the
18
+ * visible answer body.
26
19
  *
27
- * - `stream_complete` → terminal `agent_reply`. Content shape
28
- * mirrors beeos-claw:
29
- * success → { session_key, text }
30
- * cancelled → { session_key, error: "cancelled", text? }
31
- * failure → { session_key, error, text? }
20
+ * - `tool_call` / `tool_call_update` become `tool_use`, progress, and
21
+ * `tool_result` parts consumed by the existing Web action-card renderer.
32
22
  *
33
- * - All other `sessionUpdate` types (`agent_status`, `tool_call`,
34
- * `tool_call_update`, `history_turn`, `system_message_chunk`,
35
- * `user_message_chunk`) are intentionally SKIPPED. The old
36
- * outbound listener also skipped them; mirroring keeps the wire
37
- * format byte-for-byte identical for downstream consumers.
23
+ * - `stream_complete` finalizes, fails, refuses, or cancels that same
24
+ * durable message. Message Service waiters ignore the streaming snapshot
25
+ * and only resolve once it reaches a terminal state.
38
26
  *
39
- * Both delta and terminal sends go through `client.messages.send`
40
- * (persistent v2 path). Persistence is REQUIRED for terminal replies:
41
- * caller `/wait` long-polls in 30s reconnect cycles, and an
42
- * unpersisted publish landing in the reconnect gap would be lost
43
- * forever (no DB row to replay from). Deltas inherit the same
44
- * persistent path because the SDK no longer offers a non-persistent
45
- * direct-Centrifugo publish.
27
+ * Older embedded Message clients that do not expose `startStream` retain the
28
+ * legacy persistent v2 delta + terminal-message fallback.
46
29
  *
47
30
  * The notifier never throws out of `send()` — that runs on the
48
31
  * SessionManager event hot path and a synchronous throw would skip
@@ -66,6 +49,9 @@ const DELTA_MAX_ATTEMPTS = 3;
66
49
  const TERMINAL_MAX_ATTEMPTS = 8;
67
50
  const RETRY_BASE_MS = 500;
68
51
  const RETRY_CAP_MS = 30_000;
52
+ // Message SDK serializes every stream mutation over HTTP. Coalesce token-sized
53
+ // updates so a terminal/cancel is never stuck behind hundreds of queued writes.
54
+ const STREAM_FLUSH_MS = 750;
69
55
  const realSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
70
56
  export class MsChannelNotifier {
71
57
  opts;
@@ -76,17 +62,32 @@ export class MsChannelNotifier {
76
62
  /** Count of delta sends attempted this turn — diagnostics for the terminal log. */
77
63
  deltaCount = 0;
78
64
  finalized = false;
79
- /**
80
- * Set synchronously on entry to `publishFinal` to guard against a
81
- * concurrent duplicate `stream_complete`. `finalized` (the public
82
- * "terminal reply actually landed" flag) is only set AFTER a
83
- * successful send, so a failed publish can be retried.
84
- */
85
- finalizing = false;
65
+ finalization = null;
86
66
  sleep;
67
+ stream;
68
+ streamFlushTimer = null;
69
+ pendingBodyText = "";
70
+ pendingReplyText = "";
71
+ pendingReasoningText = "";
72
+ reasoningText = "";
73
+ reasoningPartIndex = null;
74
+ activeTextPart = null;
75
+ nextPartSequence = 0;
76
+ toolParts = new Map();
87
77
  constructor(opts) {
88
78
  this.opts = opts;
89
79
  this.sleep = opts.sleep ?? realSleep;
80
+ this.stream = opts.client.messages.startStream?.({
81
+ conversationId: opts.channelId,
82
+ id: `${opts.inboundMessageId}:reply`,
83
+ type: "agent_reply",
84
+ replyTo: opts.inboundMessageId,
85
+ content: { session_key: opts.sessionKey },
86
+ }) ?? null;
87
+ }
88
+ /** Durable reply id targeted by Message Service `chat_cancel` envelopes. */
89
+ get replyMessageId() {
90
+ return this.stream?.id;
90
91
  }
91
92
  /**
92
93
  * Called by SessionManager for every `session/update` envelope on
@@ -108,6 +109,10 @@ export class MsChannelNotifier {
108
109
  get isFinalized() {
109
110
  return this.finalized;
110
111
  }
112
+ /** Ensure the durable reply reaches a terminal state before unbinding it. */
113
+ async finish(stopReason, errorText = "", task = null) {
114
+ await this.publishFinal(stopReason, errorText, task);
115
+ }
111
116
  async handle(update) {
112
117
  const sessionUpdate = pickSessionUpdate(update);
113
118
  try {
@@ -116,8 +121,10 @@ export class MsChannelNotifier {
116
121
  const content = pickReplyContent(update.content);
117
122
  if (!content)
118
123
  return;
119
- if (content.file)
124
+ if (content.file) {
120
125
  this.files.push(content.file);
126
+ this.appendFilePart(content.file);
127
+ }
121
128
  this.accumulatedText = appendReplyContent(this.accumulatedText, content);
122
129
  await this.publishDelta("agent_message_chunk", content.text);
123
130
  return;
@@ -129,6 +136,14 @@ export class MsChannelNotifier {
129
136
  await this.publishDelta("agent_thought_chunk", text);
130
137
  return;
131
138
  }
139
+ case "tool_call": {
140
+ this.publishToolCall(update);
141
+ return;
142
+ }
143
+ case "tool_call_update": {
144
+ this.publishToolUpdate(update);
145
+ return;
146
+ }
132
147
  case "stream_complete": {
133
148
  const stopReason = pickString(update.stopReason) || "end_turn";
134
149
  const errorText = pickString(update.error);
@@ -154,6 +169,17 @@ export class MsChannelNotifier {
154
169
  }
155
170
  async publishDelta(sessionUpdate, text) {
156
171
  this.deltaCount += 1;
172
+ if (this.stream) {
173
+ if (sessionUpdate === "agent_message_chunk") {
174
+ this.pendingBodyText += text;
175
+ this.pendingReplyText += text;
176
+ }
177
+ else {
178
+ this.pendingReasoningText += text;
179
+ }
180
+ this.scheduleStreamFlush();
181
+ return;
182
+ }
157
183
  // Persistent delta send via v2 messages.send. Deltas MUST NOT
158
184
  // carry `replyTo` (it would short-circuit MS `/wait` on the
159
185
  // first delta — the wait endpoint matches purely on `reply_to`,
@@ -179,13 +205,59 @@ export class MsChannelNotifier {
179
205
  * publish two terminal envelopes.
180
206
  */
181
207
  async publishFinal(stopReason, errorText, task) {
182
- // `finalized` guards a true duplicate (terminal already landed);
183
- // `finalizing` guards a concurrent re-entry while a send is still
184
- // in flight. We only flip `finalized` AFTER a confirmed send so a
185
- // transient publish failure leaves the door open for a resend.
186
- if (this.finalized || this.finalizing)
208
+ if (this.finalized)
209
+ return;
210
+ if (this.finalization) {
211
+ await this.finalization;
187
212
  return;
188
- this.finalizing = true;
213
+ }
214
+ this.finalization = this.publishFinalOnce(stopReason, errorText, task);
215
+ try {
216
+ await this.finalization;
217
+ }
218
+ finally {
219
+ this.finalization = null;
220
+ }
221
+ }
222
+ async publishFinalOnce(stopReason, errorText, task) {
223
+ if (this.stream) {
224
+ try {
225
+ this.flushStreamDeltas();
226
+ this.finishText();
227
+ this.finishReasoning();
228
+ const taskPayload = taskContent(task);
229
+ if (Object.keys(taskPayload).length > 0) {
230
+ this.stream.addPart({
231
+ type: "custom",
232
+ kind: "device_task_outcome",
233
+ data: taskPayload,
234
+ _seq: this.partSequence(),
235
+ });
236
+ }
237
+ const taskStatus = task?.taskStatus;
238
+ if (stopReason === "cancelled" || taskStatus === "cancelled") {
239
+ await this.stream.cancel({ stopReason: "user_stop" });
240
+ }
241
+ else if (stopReason === "refused") {
242
+ await this.stream.refuse({ stopReason: "refused" });
243
+ }
244
+ else if (errorText || taskStatus === "failed") {
245
+ await this.stream.fail({
246
+ body: this.accumulatedText || errorText || task?.taskError || "Task failed",
247
+ stopReason: task?.taskReason === "timeout" ? "timeout" : "error",
248
+ });
249
+ }
250
+ else {
251
+ await this.stream.finalize({ stopReason: normalizeStopReason(stopReason) });
252
+ }
253
+ this.finalized = true;
254
+ this.logTerminalDelivered(stopReason, errorText);
255
+ }
256
+ catch (err) {
257
+ this.logTerminalFailure(stopReason, err);
258
+ }
259
+ return;
260
+ }
189
261
  let content;
190
262
  const fileContent = this.fileContent();
191
263
  if (stopReason === "cancelled") {
@@ -225,36 +297,226 @@ export class MsChannelNotifier {
225
297
  content,
226
298
  }, TERMINAL_MAX_ATTEMPTS);
227
299
  this.finalized = true;
228
- // Confirms the device→platform handoff: a terminal reply WAS
229
- // delivered. textLen=0 here means the device sent an empty answer
230
- // (panel would render blank even though delivery succeeded) — a
231
- // different failure mode from "reply never sent".
232
- this.opts.logger.info({
233
- channelId: this.opts.channelId,
234
- inboundMessageId: this.opts.inboundMessageId,
235
- replyTo: this.opts.inboundMessageId,
236
- stopReason,
237
- textLen: this.accumulatedText.length,
238
- files: this.files.length,
239
- hasError: stopReason === "cancelled" || !!errorText,
240
- deltaCount: this.deltaCount,
241
- }, "ms-channel-notifier: terminal agent_reply delivered");
300
+ this.logTerminalDelivered(stopReason, errorText);
242
301
  }
243
302
  catch (err) {
244
303
  // Terminal reply exhausted its retry budget. The caller's `/wait`
245
304
  // will now time out with no answer — log loudly with the real
246
305
  // cause so this is diagnosable, and leave `finalized=false` so an
247
306
  // upstream fallback (inbound reject path) can still try.
248
- this.opts.logger.error({
249
- ...describeError(err),
250
- channelId: this.opts.channelId,
251
- inboundMessageId: this.opts.inboundMessageId,
252
- stopReason,
253
- }, "ms-channel-notifier: TERMINAL agent_reply publish FAILED after retries — caller will not receive a reply");
307
+ this.logTerminalFailure(stopReason, err);
254
308
  }
255
- finally {
256
- this.finalizing = false;
309
+ }
310
+ scheduleStreamFlush() {
311
+ if (!this.stream || this.streamFlushTimer || this.finalized)
312
+ return;
313
+ this.streamFlushTimer = setTimeout(() => {
314
+ this.streamFlushTimer = null;
315
+ if (!this.finalized && !this.stream?.isTerminated) {
316
+ this.flushStreamDeltas();
317
+ }
318
+ }, STREAM_FLUSH_MS);
319
+ }
320
+ flushStreamDeltas() {
321
+ if (!this.stream)
322
+ return;
323
+ if (this.streamFlushTimer) {
324
+ clearTimeout(this.streamFlushTimer);
325
+ this.streamFlushTimer = null;
326
+ }
327
+ const reasoning = this.pendingReasoningText;
328
+ const body = this.pendingBodyText;
329
+ const reply = this.pendingReplyText;
330
+ this.pendingReasoningText = "";
331
+ this.pendingBodyText = "";
332
+ this.pendingReplyText = "";
333
+ if (reasoning)
334
+ this.publishReasoning(reasoning);
335
+ if (body)
336
+ this.stream.appendBody(body);
337
+ if (reply)
338
+ this.publishText(reply);
339
+ }
340
+ publishReasoning(text) {
341
+ if (!this.stream || !text)
342
+ return;
343
+ this.reasoningText += text;
344
+ const part = {
345
+ type: "thinking",
346
+ text: this.reasoningText,
347
+ state: "streaming",
348
+ _seq: this.reasoningPartIndex ?? this.partSequence(),
349
+ };
350
+ if (this.reasoningPartIndex === null) {
351
+ this.reasoningPartIndex = this.stream.parts.length;
352
+ this.stream.addPart(part);
353
+ }
354
+ else {
355
+ this.stream.replacePart(this.reasoningPartIndex, part);
356
+ }
357
+ }
358
+ /**
359
+ * Keep one mutable wire text part per uninterrupted prose segment. Token
360
+ * deltas replace that part in place; a tool call closes it so later prose
361
+ * receives a new sequence number and can render after the tool card.
362
+ */
363
+ publishText(text) {
364
+ if (!this.stream || !text)
365
+ return;
366
+ if (this.activeTextPart === null) {
367
+ const seq = this.partSequence();
368
+ const index = this.stream.parts.length;
369
+ this.activeTextPart = { index, seq, text };
370
+ this.stream.addPart({ type: "text", text, state: "streaming", _seq: seq });
371
+ return;
257
372
  }
373
+ this.activeTextPart.text += text;
374
+ this.stream.replacePart(this.activeTextPart.index, {
375
+ type: "text",
376
+ text: this.activeTextPart.text,
377
+ state: "streaming",
378
+ _seq: this.activeTextPart.seq,
379
+ });
380
+ }
381
+ finishText() {
382
+ if (!this.stream || this.activeTextPart === null)
383
+ return;
384
+ this.stream.replacePart(this.activeTextPart.index, {
385
+ type: "text",
386
+ text: this.activeTextPart.text,
387
+ state: "done",
388
+ _seq: this.activeTextPart.seq,
389
+ });
390
+ this.activeTextPart = null;
391
+ }
392
+ finishReasoning() {
393
+ if (!this.stream || this.reasoningPartIndex === null)
394
+ return;
395
+ this.stream.replacePart(this.reasoningPartIndex, {
396
+ type: "thinking",
397
+ text: this.reasoningText,
398
+ state: "done",
399
+ _seq: this.reasoningPartIndex,
400
+ });
401
+ }
402
+ publishToolCall(update) {
403
+ if (!this.stream)
404
+ return;
405
+ const id = pickString(update.toolCallId);
406
+ if (!id || this.toolParts.has(id))
407
+ return;
408
+ this.flushStreamDeltas();
409
+ this.finishText();
410
+ const name = pickString(update.title) || "device_action";
411
+ const args = parseJsonValue(update.arguments);
412
+ const useIndex = this.stream.parts.length;
413
+ this.stream.addPart({
414
+ type: "tool_use",
415
+ id,
416
+ name,
417
+ arguments: args,
418
+ state: "streaming",
419
+ _seq: this.partSequence(),
420
+ });
421
+ this.toolParts.set(id, { useIndex, name, args });
422
+ }
423
+ publishToolUpdate(update) {
424
+ if (!this.stream)
425
+ return;
426
+ const id = pickString(update.toolCallId);
427
+ if (!id)
428
+ return;
429
+ let tool = this.toolParts.get(id);
430
+ if (!tool) {
431
+ this.publishToolCall({
432
+ ...update,
433
+ title: pickString(update.title) || "device_action",
434
+ arguments: update.arguments ?? "{}",
435
+ });
436
+ tool = this.toolParts.get(id);
437
+ }
438
+ if (!tool)
439
+ return;
440
+ const status = pickString(update.status);
441
+ const output = parseJsonValue(update.output);
442
+ const terminal = status === "completed" || status === "failed";
443
+ if (terminal) {
444
+ this.stream.replacePart(tool.useIndex, {
445
+ type: "tool_use",
446
+ id,
447
+ name: tool.name,
448
+ arguments: tool.args,
449
+ state: "done",
450
+ _seq: tool.useIndex,
451
+ });
452
+ const result = {
453
+ type: "tool_result",
454
+ tool_use_id: id,
455
+ content: output,
456
+ is_error: status === "failed",
457
+ _seq: tool.progressIndex ?? this.partSequence(),
458
+ };
459
+ if (tool.progressIndex === undefined) {
460
+ tool.progressIndex = this.stream.parts.length;
461
+ this.stream.addPart(result);
462
+ }
463
+ else {
464
+ this.stream.replacePart(tool.progressIndex, result);
465
+ }
466
+ return;
467
+ }
468
+ if (update.output === undefined)
469
+ return;
470
+ const progress = {
471
+ type: "custom",
472
+ kind: "tool_progress",
473
+ state: "streaming",
474
+ data: { tool_use_id: id, content: output, is_error: false },
475
+ _seq: tool.progressIndex ?? this.partSequence(),
476
+ };
477
+ if (tool.progressIndex === undefined) {
478
+ tool.progressIndex = this.stream.parts.length;
479
+ this.stream.addPart(progress);
480
+ }
481
+ else {
482
+ this.stream.replacePart(tool.progressIndex, progress);
483
+ }
484
+ }
485
+ appendFilePart(file) {
486
+ if (!this.stream)
487
+ return;
488
+ this.stream.addPart({
489
+ type: "file",
490
+ url: file.uri,
491
+ mime_type: file.mimeType ?? "application/octet-stream",
492
+ ...(file.name ? { name: file.name } : {}),
493
+ _seq: this.partSequence(),
494
+ });
495
+ }
496
+ partSequence() {
497
+ return this.nextPartSequence++;
498
+ }
499
+ logTerminalDelivered(stopReason, errorText) {
500
+ this.opts.logger.info({
501
+ channelId: this.opts.channelId,
502
+ inboundMessageId: this.opts.inboundMessageId,
503
+ replyTo: this.opts.inboundMessageId,
504
+ stopReason,
505
+ textLen: this.accumulatedText.length,
506
+ files: this.files.length,
507
+ hasError: stopReason === "cancelled" || !!errorText,
508
+ deltaCount: this.deltaCount,
509
+ wire: this.stream ? "v3_stream" : "legacy_messages",
510
+ }, "ms-channel-notifier: terminal agent_reply delivered");
511
+ }
512
+ logTerminalFailure(stopReason, err) {
513
+ this.opts.logger.error({
514
+ ...describeError(err),
515
+ channelId: this.opts.channelId,
516
+ inboundMessageId: this.opts.inboundMessageId,
517
+ stopReason,
518
+ wire: this.stream ? "v3_stream" : "legacy_messages",
519
+ }, "ms-channel-notifier: TERMINAL agent_reply publish FAILED — caller will not receive a reply");
258
520
  }
259
521
  fileContent() {
260
522
  if (this.files.length === 0)
@@ -367,6 +629,44 @@ function appendReplyContent(existing, next) {
367
629
  function pickString(v) {
368
630
  return typeof v === "string" ? v : "";
369
631
  }
632
+ function parseJsonValue(value) {
633
+ if (typeof value === "string") {
634
+ const trimmed = value.trim();
635
+ if (!trimmed)
636
+ return "";
637
+ try {
638
+ return JSON.parse(trimmed);
639
+ }
640
+ catch {
641
+ return value;
642
+ }
643
+ }
644
+ if (value === null ||
645
+ typeof value === "boolean" ||
646
+ typeof value === "number" ||
647
+ Array.isArray(value) ||
648
+ (typeof value === "object" && value !== null)) {
649
+ return value;
650
+ }
651
+ return null;
652
+ }
653
+ function normalizeStopReason(value) {
654
+ switch (value) {
655
+ case "max_tokens":
656
+ case "tool_use":
657
+ case "timeout":
658
+ case "content_filter":
659
+ return value;
660
+ case "cancelled":
661
+ return "user_stop";
662
+ case "refused":
663
+ return "refused";
664
+ case "error":
665
+ return "error";
666
+ default:
667
+ return "end_turn";
668
+ }
669
+ }
370
670
  /**
371
671
  * Extract diagnosable structured fields from an unknown thrown value.
372
672
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ms-channel-notifier.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/ms-channel-notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ms-channel-notifier.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/ms-channel-notifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAUH,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AA2BpC;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC9C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD,MAAM,OAAO,iBAAiB;IAwBC;IAvB7B,qFAAqF;IAC7E,eAAe,GAAG,EAAE,CAAC;IAC7B,4FAA4F;IAC3E,KAAK,GAAqB,EAAE,CAAC;IAC9C,mFAAmF;IAC3E,UAAU,GAAG,CAAC,CAAC;IACf,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,GAAyB,IAAI,CAAC;IACjC,KAAK,CAAgC;IACrC,MAAM,CAA4B;IAC3C,gBAAgB,GAAyC,IAAI,CAAC;IAC9D,eAAe,GAAG,EAAE,CAAC;IACrB,gBAAgB,GAAG,EAAE,CAAC;IACtB,oBAAoB,GAAG,EAAE,CAAC;IAC1B,aAAa,GAAG,EAAE,CAAC;IACnB,kBAAkB,GAAkB,IAAI,CAAC;IACzC,cAAc,GAAwD,IAAI,CAAC;IAC3E,gBAAgB,GAAG,CAAC,CAAC;IACZ,SAAS,GAAG,IAAI,GAAG,EAGjC,CAAC;IAEJ,YAA6B,IAA8B;QAA9B,SAAI,GAAJ,IAAI,CAA0B;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/C,cAAc,EAAE,IAAI,CAAC,SAAS;YAC9B,EAAE,EAAE,GAAG,IAAI,CAAC,gBAAgB,QAAQ;YACpC,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE;SAC1C,CAAC,IAAI,IAAI,CAAC;IACb,CAAC;IAED,4EAA4E;IAC5E,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,UAAkB,EAAE,MAA+B;QACtD,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,+DAA+D;IAC/D,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,SAAS,GAAG,EAAE,EACd,OAAyC,IAAI;QAE7C,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,MAA+B;QAClD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC;YACH,QAAQ,aAAa,EAAE,CAAC;gBACtB,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;wBACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;oBACD,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBACzE,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC7C,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACvB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;oBAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,aAAa,IAAI,IAAI,EAAE,UAAU,IAAI,aAAa,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,EACzE,oDAAoD,CACrD,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBACD;oBACE,OAAO;YACX,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB;gBACE,GAAG,aAAa,CAAC,GAAG,CAAC;gBACrB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;gBAC9B,aAAa;aACd,EACD,qCAAqC,CACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,aAA4D,EAC5D,IAAY;QAEZ,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,8DAA8D;QAC9D,4DAA4D;QAC5D,gEAAgE;QAChE,6DAA6D;QAC7D,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,IAAI,CAAC,aAAa,CACtB;YACE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACnC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,MAAM,EAAE;oBACN,aAAa;oBACb,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;iBAChC;aACF;SACF,EACD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CACxB,UAAkB,EAClB,SAAiB,EACjB,IAAsC;QAEtC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,UAAkB,EAClB,SAAiB,EACjB,IAAsC;QAGtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;wBAClB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,WAAwB;wBAC9B,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC;gBACpC,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;oBAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAChD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,EAAE,SAAS,IAAI,aAAa;wBAC3E,UAAU,EAAE,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;qBACjE,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAgC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,GAAG;gBACR,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,IAAI,CAAC,eAAe;gBAC1B,GAAG,WAAW;gBACd,GAAG,WAAW,CAAC,IAAI,CAAC;aACrB,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,OAAO,GAAG;gBACR,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI,CAAC,eAAe;gBAC1B,GAAG,WAAW;gBACd,GAAG,WAAW,CAAC,IAAI,CAAC;aACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG;gBACR,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBACjC,IAAI,EAAE,IAAI,CAAC,eAAe;gBAC1B,GAAG,WAAW;gBACd,GAAG,WAAW,CAAC,IAAI,CAAC;aACrB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CACtB;gBACE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;gBACnC,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBACnC,2DAA2D;gBAC3D,sDAAsD;gBACtD,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,QAAQ;gBACzC,OAAO;aACR,EACD,qBAAqB,CACtB,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kEAAkE;YAClE,8DAA8D;YAC9D,kEAAkE;YAClE,yDAAyD;YACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QACpE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;gBAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,IAAI,SAAS;YAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;YAAE,OAAO;QAClC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,EAAE;SACrD,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACjD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;YAC9B,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACjD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;YAC9B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAAE,OAAO;QAC7D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,IAAI,CAAC,kBAAkB;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,MAA+B;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC;QACzD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB,CAAC,MAA+B;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,eAAe,CAAC;gBACnB,GAAG,MAAM;gBACT,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe;gBAClD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;aACpC,CAAC,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACrC,IAAI,EAAE,UAAU;gBAChB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,IAAI,CAAC,QAAQ;aACpB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM,KAAK,QAAQ;gBAC7B,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE;aAChD,CAAC;YACF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACxC,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE;SAChD,CAAC;QACF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAoB;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,0BAA0B;YACtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAEO,oBAAoB,CAAC,UAAkB,EAAE,SAAiB;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB;YACE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACnC,UAAU;YACV,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,QAAQ,EAAE,UAAU,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS;YACnD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB;SACpD,EACD,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,UAAkB,EAAE,GAAY;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB;YACE,GAAG,aAAa,CAAC,GAAG,CAAC;YACrB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAC5C,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB;SACpD,EACD,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,aAAa,CACzB,KAA0D,EAC1D,WAAmB;QAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,OAAO,KAAK,WAAW;oBAAE,OAAO;gBACpC,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,IAAI,WAAW;oBAAE,MAAM,GAAG,CAAC;gBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,YAAY,EACZ,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CACnC,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB;oBACE,GAAG,aAAa,CAAC,GAAG,CAAC;oBACrB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO;oBACP,WAAW;oBACX,SAAS,EAAE,KAAK;iBACjB,EACD,+CAA+C,CAChD,CAAC;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC;QACN,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAA8B,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnD,OAAO,UAAU,CAAE,KAAiC,CAAC,WAAW,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,IAAsC;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,CAAC,GAAG,OAA6C,CAAC;IACxD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC9C,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,SAAS,gBAAgB,CACvB,OAAgB;IAEhB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,OAMT,CAAC;IACF,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAmB;YAC3B,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,IAA6C;IAE7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,EAC7C,CAAC;QACD,OAAO,KAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAA4B,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,GAId,CAAC;QACF,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAClE,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;QAChD,OAAO,OAAO,IAAI,KAAK,QAAQ;YAC7B,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG;YAC7C,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,GAAY;IACjC,MAAM,MAAM,GAAI,GAA4B,EAAE,MAAM,CAAC;IACrD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,WAAW,CAAC;QACvC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC;QACrD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,OAAO,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,iEAAiE;IACjE,qEAAqE;IACrE,wBAAwB;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -16,6 +16,8 @@
16
16
  export interface MsInflightEntry {
17
17
  /** Original inbound `chat_message.message_id`. */
18
18
  messageId: string;
19
+ /** In-progress `agent_reply` id used by the Message Service cancel API. */
20
+ replyMessageId?: string;
19
21
  /** Centrifugo channel `ch:{channelId}` the reply will be published on. */
20
22
  channelId: string;
21
23
  /** Per-channel sid bound on `SessionManager` (== `extractChatPrompt.sessionKey`). */
@@ -31,6 +33,7 @@ export declare class MsInflightTracker {
31
33
  /** Force-clear (used during plugin stop / disconnect). */
32
34
  reset(): void;
33
35
  findByInboundMessageId(messageId: string): MsInflightEntry | null;
36
+ findByTargetMessageId(messageId: string): MsInflightEntry | null;
34
37
  /** Visible for tests / logs. */
35
38
  peek(): MsInflightEntry | null;
36
39
  }
@@ -34,6 +34,12 @@ export class MsInflightTracker {
34
34
  ? this.current
35
35
  : null;
36
36
  }
37
+ findByTargetMessageId(messageId) {
38
+ return this.current &&
39
+ (this.current.messageId === messageId || this.current.replyMessageId === messageId)
40
+ ? this.current
41
+ : null;
42
+ }
37
43
  /** Visible for tests / logs. */
38
44
  peek() {
39
45
  return this.current;
@@ -1 +1 @@
1
- {"version":3,"file":"ms-inflight-tracker.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/ms-inflight-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAA2B,IAAI,CAAC;IAE/C,GAAG,CAAC,KAAyC;QAC3C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,SAAiB;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,sBAAsB,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YACzD,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,gCAAgC;IAChC,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"ms-inflight-tracker.js","sourceRoot":"","sources":["../../../src/plugins/message-bus/ms-inflight-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAA2B,IAAI,CAAC;IAE/C,GAAG,CAAC,KAAyC;QAC3C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,SAAiB;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,sBAAsB,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YACzD,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,qBAAqB,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;YACnF,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,gCAAgC;IAChC,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beeos-ai/device-agent",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "description": "BeeOS device-agent — Android/desktop AI control agent (TypeScript) speaking ACP over Bridge WebSocket. Connects to a sibling device-mcp-server process for device control.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",