@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.
- package/dist/messaging/message-client.d.ts +28 -1
- package/dist/messaging/message-client.js +11 -0
- package/dist/messaging/message-client.js.map +1 -1
- package/dist/plugins/message-bus/cancel.js +4 -1
- package/dist/plugins/message-bus/cancel.js.map +1 -1
- package/dist/plugins/message-bus/inbound.js +8 -0
- package/dist/plugins/message-bus/inbound.js.map +1 -1
- package/dist/plugins/message-bus/ms-channel-notifier.d.ts +46 -36
- package/dist/plugins/message-bus/ms-channel-notifier.js +365 -65
- package/dist/plugins/message-bus/ms-channel-notifier.js.map +1 -1
- package/dist/plugins/message-bus/ms-inflight-tracker.d.ts +3 -0
- package/dist/plugins/message-bus/ms-inflight-tracker.js +6 -0
- package/dist/plugins/message-bus/ms-inflight-tracker.js.map +1 -1
- package/package.json +1 -1
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-client.js","sourceRoot":"","sources":["../../src/messaging/message-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AA6DhF,qEAAqE;AACrE,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAC1C,QAAQ,CAA+B;IAE/B,MAAM,CAAmB;IACzB,aAAa,CAAa;IAC1B,wBAAwB,CAAa;IAC9C,mBAAmB,GAAG,KAAK,CAAC;IAC5B,cAAc,GAAG,cAAc,CAAC;IAExC,YAAY,OAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAC/B,kCAAkC,CAAC;YACjC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACpB,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC3C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACrC,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,eAAe,EAAE,SAAS;oBAC1B,cAAc,EAAE,SAAS;oBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAoB;oBACnC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrD,CAAC,CAAC;YACL,CAAC;YACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACtC,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,eAAe,EAAE,SAAS;oBAC1B,cAAc,EAAE,SAAS;oBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAoB;oBACnC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrD,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CACrC,EAAE,UAAU,EAAE,CAAC,iBAAiB,CAAC,EAAE,EACnC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;YACrC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,UAAU,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAClF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,mBAAmB,CAAC,KAAyB;QACnD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -39,7 +39,10 @@ export function buildMessageBusCancelHandler(opts) {
|
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
const reason = pickString(content.reason) || "unknown";
|
|
42
|
-
|
|
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,
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAQxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA4B7D;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAA8B;IAE9B,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,EACtC,6DAA6D,CAC9D,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;gBAChC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;aACjC,EACD,wFAAwF,CACzF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,iBAAiB,EAAE,MAAM,CAAC,SAAS;gBACnC,iBAAiB,EAAE,MAAM,CAAC,SAAS;aACpC,EACD,oDAAoD,CACrD,CAAC;YACF,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG;SACJ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,GAAG;YACH,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;YAClC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;SAC3B,EACD,2BAA2B,CAC5B,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACvD,GAAG,EACH,UAAU,EACV,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,CACzC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,GAAG;gBACH,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,EACD,4BAA4B,CAC7B,CAAC;YACF,oEAAoE;YACpE,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,GAAG;gBACH,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,GAAG,EAAE,OAAO;aACb,EACD,kEAAkE,CACnE,CAAC;YACF,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;oBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,gBAAgB,EAAE,MAAM,CAAC,SAAS;oBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACjC,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC9B,cAAc,EAAE,MAAM,CAAC,SAAS;wBAChC,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,MAAM,CAAC,SAAS;wBACzB,OAAO,EAAE;4BACP,WAAW,EAAE,MAAM,CAAC,UAAU;4BAC9B,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,QAAQ,CAAC,WAAW;yBAC3B;qBACF,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;wBACE,GAAG,EACD,UAAU,YAAY,KAAK;4BACzB,CAAC,CAAC,UAAU,CAAC,OAAO;4BACpB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;wBACxB,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B,EACD,qDAAqD,CACtD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACjF,MAAM,QAAQ,GAAI,OAAmC,CAAC,QAAQ,CAAC;IAC/D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACpF,MAAM,MAAM,GAAG,QAAmC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC;IACtE,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,aAAa,CAAC;IAChE,OAAO;QACL,GAAG,CAAC,WAAW,KAAK,MAAM;YAC1B,WAAW,KAAK,QAAQ;YACxB,WAAW,KAAK,KAAK;YACrB,WAAW,KAAK,QAAQ;YACtB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE;YAClC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,WAAW;YACnD,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAwB;IAClE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,GAAG,OAAO,sBAAsB,IAAI,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -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
|
|
12
|
+
* Wire mapping:
|
|
13
13
|
*
|
|
14
|
-
* - `agent_message_chunk`
|
|
15
|
-
* `
|
|
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`
|
|
22
|
-
*
|
|
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
|
-
* - `
|
|
28
|
-
*
|
|
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
|
-
* -
|
|
34
|
-
*
|
|
35
|
-
*
|
|
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
|
-
*
|
|
40
|
-
*
|
|
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
|
|
12
|
+
* Wire mapping:
|
|
13
13
|
*
|
|
14
|
-
* - `agent_message_chunk`
|
|
15
|
-
* `
|
|
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`
|
|
22
|
-
*
|
|
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
|
-
* - `
|
|
28
|
-
*
|
|
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
|
-
* -
|
|
34
|
-
*
|
|
35
|
-
*
|
|
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
|
-
*
|
|
40
|
-
*
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (this.finalized || this.finalizing)
|
|
208
|
+
if (this.finalized)
|
|
209
|
+
return;
|
|
210
|
+
if (this.finalization) {
|
|
211
|
+
await this.finalization;
|
|
187
212
|
return;
|
|
188
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
256
|
-
|
|
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":"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"}
|
|
@@ -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;
|
|
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.
|
|
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",
|