@tianshu-ai/tianshu 0.3.43 → 0.3.44
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/package.json
CHANGED
|
@@ -81,13 +81,25 @@ async function dispatch(envelope, deps) {
|
|
|
81
81
|
type: "channel_session_changed",
|
|
82
82
|
channelId: envelope.channelId,
|
|
83
83
|
});
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
// Forward every assistant text chunk the agent emits, not just
|
|
85
|
+
// the last one. A single agent turn can produce multiple
|
|
86
|
+
// assistant messages (tool call → result → explanation →
|
|
87
|
+
// continuation → final answer), and we want the user to see all
|
|
88
|
+
// of them on wechat the same way they would in the webchat
|
|
89
|
+
// pane.
|
|
90
|
+
//
|
|
91
|
+
// Strategy: each stream_end is a complete assistant message
|
|
92
|
+
// (delta chunks already concatenated server-side into
|
|
93
|
+
// `message.text`). We queue every non-empty body in
|
|
94
|
+
// `assistantQueue` and ship them out sequentially after
|
|
95
|
+
// runPrompt resolves. Sequential matters for two reasons:
|
|
96
|
+
// - context_token is per-user, shared across our outbound
|
|
97
|
+
// calls; parallel sends would race on Tencent's side
|
|
98
|
+
// - wechat preserves message order by send time, so users see
|
|
99
|
+
// thinking → tool result → final answer in the order the
|
|
100
|
+
// agent produced them
|
|
101
|
+
let deltaChunks = [];
|
|
102
|
+
const assistantQueue = [];
|
|
91
103
|
let errorReason = "";
|
|
92
104
|
const sink = (msg) => {
|
|
93
105
|
// Rebroadcast persisted-row events scoped to this channel
|
|
@@ -105,7 +117,10 @@ async function dispatch(envelope, deps) {
|
|
|
105
117
|
}
|
|
106
118
|
else if (msg.type === "stream_end") {
|
|
107
119
|
const wireText = msg.message?.text?.trim() ?? "";
|
|
108
|
-
|
|
120
|
+
const text = wireText || deltaChunks.join("").trim();
|
|
121
|
+
deltaChunks = [];
|
|
122
|
+
if (text.length > 0)
|
|
123
|
+
assistantQueue.push(text);
|
|
109
124
|
}
|
|
110
125
|
else if (msg.type === "stream_error") {
|
|
111
126
|
errorReason = msg.reason || "unknown";
|
|
@@ -128,19 +143,18 @@ async function dispatch(envelope, deps) {
|
|
|
128
143
|
catch (err) {
|
|
129
144
|
errorReason = err instanceof Error ? err.message : String(err);
|
|
130
145
|
}
|
|
146
|
+
// Sequential delivery preserves order on the user's wechat
|
|
147
|
+
// thread + avoids racing the per-user context_token.
|
|
148
|
+
for (const body of assistantQueue) {
|
|
149
|
+
await safeSend(envelope.bindingId, envelope.chatId, body);
|
|
150
|
+
}
|
|
131
151
|
if (errorReason.length > 0) {
|
|
132
|
-
// Surface
|
|
133
|
-
//
|
|
134
|
-
//
|
|
135
|
-
// would be noisy.
|
|
152
|
+
// Surface the error after every successful message landed.
|
|
153
|
+
// Channel platforms have small message budgets and exposing
|
|
154
|
+
// internal failure detail would be noisy; keep it terse.
|
|
136
155
|
await safeSend(envelope.bindingId, envelope.chatId, `⚠️ agent error: ${errorReason}`);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (finalText.length > 0) {
|
|
140
|
-
await safeSend(envelope.bindingId, envelope.chatId, finalText);
|
|
141
156
|
}
|
|
142
|
-
// Tool-only turn:
|
|
143
|
-
// We stay silent; the next user message reopens the loop.
|
|
157
|
+
// Tool-only turn: assistantQueue is empty, nothing more to ship.
|
|
144
158
|
}
|
|
145
159
|
async function safeSend(bindingId, target, text) {
|
|
146
160
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/channels/router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/channels/router.ts"],"names":[],"mappings":"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"}
|