koishi-plugin-chatluna 1.4.4 → 1.4.5

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/lib/index.cjs CHANGED
@@ -1193,32 +1193,32 @@ var ChatLunaPluginChain = class _ChatLunaPluginChain extends import_base4.ChatLu
1193
1193
  let error;
1194
1194
  const request2 = /* @__PURE__ */ __name(() => {
1195
1195
  const manager = import_manager.CallbackManager.configure(arg.callbacks) ?? new import_manager.CallbackManager();
1196
- manager.addHandler(
1197
- import_manager.CallbackManager.fromHandlers({
1198
- async handleLLMEnd(out) {
1199
- usedToken += out.llmOutput?.usage_metadata?.total_tokens ?? 0;
1200
- },
1201
- async handleAgentAction(action) {
1202
- await arg.events?.["llm-call-tool"]?.(
1203
- action.tool,
1204
- action.toolInput,
1205
- action.content,
1206
- action.log
1207
- );
1208
- },
1209
- async handleToolEnd(out) {
1210
- import_koishi_plugin_chatluna5.logger.debug("Tool end:", (0, import_string5.sanitizeToolLogValue)(out));
1211
- },
1212
- async handleLLMNewToken(token) {
1213
- await arg.events?.["llm-new-token"]?.(token);
1214
- },
1215
- async handleCustomEvent(name2, data) {
1216
- if (name2 === "LLMNewChunk") {
1217
- await arg.events?.["llm-new-chunk"]?.(data);
1218
- }
1196
+ const handler = import_manager.CallbackManager.fromHandlers({
1197
+ async handleLLMEnd(out) {
1198
+ usedToken += out.llmOutput?.usage_metadata?.total_tokens ?? 0;
1199
+ },
1200
+ async handleAgentAction(action) {
1201
+ await arg.events?.["llm-call-tool"]?.(
1202
+ action.tool,
1203
+ action.toolInput,
1204
+ action.content,
1205
+ action.log
1206
+ );
1207
+ },
1208
+ async handleToolEnd(out) {
1209
+ import_koishi_plugin_chatluna5.logger.debug("Tool end:", (0, import_string5.sanitizeToolLogValue)(out));
1210
+ },
1211
+ async handleLLMNewToken(token) {
1212
+ await arg.events?.["llm-new-token"]?.(token);
1213
+ },
1214
+ async handleCustomEvent(name2, data) {
1215
+ if (name2 === "LLMNewChunk") {
1216
+ await arg.events?.["llm-new-chunk"]?.(data);
1219
1217
  }
1220
- }).handlers[0]
1221
- );
1218
+ }
1219
+ }).handlers[0];
1220
+ handler.awaitHandlers = true;
1221
+ manager.addHandler(handler);
1222
1222
  return runner.invoke(
1223
1223
  {
1224
1224
  ...requests,
package/lib/index.mjs CHANGED
@@ -1190,32 +1190,32 @@ var ChatLunaPluginChain = class _ChatLunaPluginChain extends ChatLunaLLMChainWra
1190
1190
  let error;
1191
1191
  const request2 = /* @__PURE__ */ __name(() => {
1192
1192
  const manager = CallbackManager.configure(arg.callbacks) ?? new CallbackManager();
1193
- manager.addHandler(
1194
- CallbackManager.fromHandlers({
1195
- async handleLLMEnd(out) {
1196
- usedToken += out.llmOutput?.usage_metadata?.total_tokens ?? 0;
1197
- },
1198
- async handleAgentAction(action) {
1199
- await arg.events?.["llm-call-tool"]?.(
1200
- action.tool,
1201
- action.toolInput,
1202
- action.content,
1203
- action.log
1204
- );
1205
- },
1206
- async handleToolEnd(out) {
1207
- logger5.debug("Tool end:", sanitizeToolLogValue(out));
1208
- },
1209
- async handleLLMNewToken(token) {
1210
- await arg.events?.["llm-new-token"]?.(token);
1211
- },
1212
- async handleCustomEvent(name2, data) {
1213
- if (name2 === "LLMNewChunk") {
1214
- await arg.events?.["llm-new-chunk"]?.(data);
1215
- }
1193
+ const handler = CallbackManager.fromHandlers({
1194
+ async handleLLMEnd(out) {
1195
+ usedToken += out.llmOutput?.usage_metadata?.total_tokens ?? 0;
1196
+ },
1197
+ async handleAgentAction(action) {
1198
+ await arg.events?.["llm-call-tool"]?.(
1199
+ action.tool,
1200
+ action.toolInput,
1201
+ action.content,
1202
+ action.log
1203
+ );
1204
+ },
1205
+ async handleToolEnd(out) {
1206
+ logger5.debug("Tool end:", sanitizeToolLogValue(out));
1207
+ },
1208
+ async handleLLMNewToken(token) {
1209
+ await arg.events?.["llm-new-token"]?.(token);
1210
+ },
1211
+ async handleCustomEvent(name2, data) {
1212
+ if (name2 === "LLMNewChunk") {
1213
+ await arg.events?.["llm-new-chunk"]?.(data);
1216
1214
  }
1217
- }).handlers[0]
1218
- );
1215
+ }
1216
+ }).handlers[0];
1217
+ handler.awaitHandlers = true;
1218
+ manager.addHandler(handler);
1219
1219
  return runner.invoke(
1220
1220
  {
1221
1221
  ...requests,
@@ -1697,6 +1697,17 @@ function createAgent(options) {
1697
1697
  agentContext: ctx
1698
1698
  }
1699
1699
  });
1700
+ const streamCallbacks = import_manager.CallbackManager.fromHandlers({
1701
+ async handleLLMNewToken(token) {
1702
+ await input.onToken?.(token);
1703
+ },
1704
+ async handleCustomEvent(name2, data) {
1705
+ if (name2 === "LLMNewChunk") {
1706
+ await input.onChunk?.(data);
1707
+ }
1708
+ }
1709
+ });
1710
+ streamCallbacks.handlers[0].awaitHandlers = true;
1700
1711
  return await bound.invoke(
1701
1712
  {
1702
1713
  input: message,
@@ -1714,18 +1725,7 @@ function createAgent(options) {
1714
1725
  signal: input.signal,
1715
1726
  callbacks: import_manager.CallbackManager.configure(
1716
1727
  input.callbacks,
1717
- import_manager.CallbackManager.fromHandlers({
1718
- async handleLLMNewToken(token) {
1719
- await input.onToken?.(token);
1720
- },
1721
- async handleCustomEvent(name2, data) {
1722
- if (name2 === "LLMNewChunk") {
1723
- await input.onChunk?.(
1724
- data
1725
- );
1726
- }
1727
- }
1728
- })
1728
+ streamCallbacks
1729
1729
  ),
1730
1730
  metadata: { chatlunaAgent: ctx },
1731
1731
  configurable: {
@@ -1687,6 +1687,17 @@ function createAgent(options) {
1687
1687
  agentContext: ctx
1688
1688
  }
1689
1689
  });
1690
+ const streamCallbacks = CallbackManager.fromHandlers({
1691
+ async handleLLMNewToken(token) {
1692
+ await input.onToken?.(token);
1693
+ },
1694
+ async handleCustomEvent(name2, data) {
1695
+ if (name2 === "LLMNewChunk") {
1696
+ await input.onChunk?.(data);
1697
+ }
1698
+ }
1699
+ });
1700
+ streamCallbacks.handlers[0].awaitHandlers = true;
1690
1701
  return await bound.invoke(
1691
1702
  {
1692
1703
  input: message,
@@ -1704,18 +1715,7 @@ function createAgent(options) {
1704
1715
  signal: input.signal,
1705
1716
  callbacks: CallbackManager.configure(
1706
1717
  input.callbacks,
1707
- CallbackManager.fromHandlers({
1708
- async handleLLMNewToken(token) {
1709
- await input.onToken?.(token);
1710
- },
1711
- async handleCustomEvent(name2, data) {
1712
- if (name2 === "LLMNewChunk") {
1713
- await input.onChunk?.(
1714
- data
1715
- );
1716
- }
1717
- }
1718
- })
1718
+ streamCallbacks
1719
1719
  ),
1720
1720
  metadata: { chatlunaAgent: ctx },
1721
1721
  configurable: {
@@ -242,21 +242,21 @@ var ChatLunaLLMChain = class extends BaseChain {
242
242
  async function callChatLunaChain(chain, values, events, callbacks) {
243
243
  let usedToken = 0;
244
244
  const manager = import_manager.CallbackManager.configure(callbacks) ?? new import_manager.CallbackManager();
245
- manager.addHandler(
246
- import_manager.CallbackManager.fromHandlers({
247
- async handleLLMNewToken(token) {
248
- await events?.["llm-new-token"]?.(token);
249
- },
250
- async handleLLMEnd(output) {
251
- usedToken += output.llmOutput?.usage_metadata?.total_tokens ?? 0;
252
- },
253
- async handleCustomEvent(eventName, data) {
254
- if (eventName === "LLMNewChunk") {
255
- await events?.["llm-new-chunk"]?.(data);
256
- }
245
+ const handler = import_manager.CallbackManager.fromHandlers({
246
+ async handleLLMNewToken(token) {
247
+ await events?.["llm-new-token"]?.(token);
248
+ },
249
+ async handleLLMEnd(output) {
250
+ usedToken += output.llmOutput?.usage_metadata?.total_tokens ?? 0;
251
+ },
252
+ async handleCustomEvent(eventName, data) {
253
+ if (eventName === "LLMNewChunk") {
254
+ await events?.["llm-new-chunk"]?.(data);
257
255
  }
258
- }).handlers[0]
259
- );
256
+ }
257
+ }).handlers[0];
258
+ handler.awaitHandlers = true;
259
+ manager.addHandler(handler);
260
260
  const response = await chain.invoke(values, {
261
261
  callbacks: manager
262
262
  });
@@ -225,21 +225,21 @@ var ChatLunaLLMChain = class extends BaseChain {
225
225
  async function callChatLunaChain(chain, values, events, callbacks) {
226
226
  let usedToken = 0;
227
227
  const manager = CallbackManager.configure(callbacks) ?? new CallbackManager();
228
- manager.addHandler(
229
- CallbackManager.fromHandlers({
230
- async handleLLMNewToken(token) {
231
- await events?.["llm-new-token"]?.(token);
232
- },
233
- async handleLLMEnd(output) {
234
- usedToken += output.llmOutput?.usage_metadata?.total_tokens ?? 0;
235
- },
236
- async handleCustomEvent(eventName, data) {
237
- if (eventName === "LLMNewChunk") {
238
- await events?.["llm-new-chunk"]?.(data);
239
- }
228
+ const handler = CallbackManager.fromHandlers({
229
+ async handleLLMNewToken(token) {
230
+ await events?.["llm-new-token"]?.(token);
231
+ },
232
+ async handleLLMEnd(output) {
233
+ usedToken += output.llmOutput?.usage_metadata?.total_tokens ?? 0;
234
+ },
235
+ async handleCustomEvent(eventName, data) {
236
+ if (eventName === "LLMNewChunk") {
237
+ await events?.["llm-new-chunk"]?.(data);
240
238
  }
241
- }).handlers[0]
242
- );
239
+ }
240
+ }).handlers[0];
241
+ handler.awaitHandlers = true;
242
+ manager.addHandler(handler);
243
243
  const response = await chain.invoke(values, {
244
244
  callbacks: manager
245
245
  });
@@ -299,7 +299,7 @@ var ChatLunaChatModel = class extends import_chat_models.BaseChatModel {
299
299
  try {
300
300
  stream = this._createStream(streamParams);
301
301
  for await (const chunk of stream) {
302
- const hasTool = this._handleStreamChunk(
302
+ const hasTool = await this._handleStreamChunk(
303
303
  chunk,
304
304
  runManager,
305
305
  latestTokenUsage
@@ -326,7 +326,7 @@ var ChatLunaChatModel = class extends import_chat_models.BaseChatModel {
326
326
  )
327
327
  );
328
328
  }
329
- this._finalizeStream(
329
+ await this._finalizeStream(
330
330
  hasToolCallChunk,
331
331
  latestTokenUsage,
332
332
  runManager
@@ -385,15 +385,15 @@ var ChatLunaChatModel = class extends import_chat_models.BaseChatModel {
385
385
  total_tokens: 0
386
386
  };
387
387
  }
388
- _handleStreamChunk(chunk, runManager, latestTokenUsage) {
388
+ async _handleStreamChunk(chunk, runManager, latestTokenUsage) {
389
389
  const chunkText = chunk.text ?? "";
390
390
  if (chunkText) {
391
- void runManager?.handleLLMNewToken(chunkText);
391
+ await runManager?.handleLLMNewToken(chunkText);
392
392
  }
393
393
  const message = chunk.message;
394
394
  const hasToolCallChunk = this._hasToolCallChunk(message);
395
395
  if (!hasToolCallChunk) {
396
- void runManager?.handleCustomEvent("LLMNewChunk", message);
396
+ await runManager?.handleCustomEvent("LLMNewChunk", message);
397
397
  }
398
398
  this._updateTokenUsageFromChunk(chunk, latestTokenUsage);
399
399
  return hasToolCallChunk;
@@ -418,9 +418,9 @@ var ChatLunaChatModel = class extends import_chat_models.BaseChatModel {
418
418
  latestTokenUsage.input_token_details = usage.input_token_details;
419
419
  latestTokenUsage.output_token_details = usage.output_token_details;
420
420
  }
421
- _finalizeStream(hasToolCallChunk, latestTokenUsage, runManager) {
421
+ async _finalizeStream(hasToolCallChunk, latestTokenUsage, runManager) {
422
422
  if (!hasToolCallChunk) {
423
- void runManager?.handleCustomEvent("LLMNewChunk", void 0);
423
+ await runManager?.handleCustomEvent("LLMNewChunk", void 0);
424
424
  }
425
425
  if (latestTokenUsage.total_tokens <= 0) {
426
426
  return;
@@ -286,7 +286,7 @@ var ChatLunaChatModel = class extends BaseChatModel {
286
286
  try {
287
287
  stream = this._createStream(streamParams);
288
288
  for await (const chunk of stream) {
289
- const hasTool = this._handleStreamChunk(
289
+ const hasTool = await this._handleStreamChunk(
290
290
  chunk,
291
291
  runManager,
292
292
  latestTokenUsage
@@ -313,7 +313,7 @@ var ChatLunaChatModel = class extends BaseChatModel {
313
313
  )
314
314
  );
315
315
  }
316
- this._finalizeStream(
316
+ await this._finalizeStream(
317
317
  hasToolCallChunk,
318
318
  latestTokenUsage,
319
319
  runManager
@@ -372,15 +372,15 @@ var ChatLunaChatModel = class extends BaseChatModel {
372
372
  total_tokens: 0
373
373
  };
374
374
  }
375
- _handleStreamChunk(chunk, runManager, latestTokenUsage) {
375
+ async _handleStreamChunk(chunk, runManager, latestTokenUsage) {
376
376
  const chunkText = chunk.text ?? "";
377
377
  if (chunkText) {
378
- void runManager?.handleLLMNewToken(chunkText);
378
+ await runManager?.handleLLMNewToken(chunkText);
379
379
  }
380
380
  const message = chunk.message;
381
381
  const hasToolCallChunk = this._hasToolCallChunk(message);
382
382
  if (!hasToolCallChunk) {
383
- void runManager?.handleCustomEvent("LLMNewChunk", message);
383
+ await runManager?.handleCustomEvent("LLMNewChunk", message);
384
384
  }
385
385
  this._updateTokenUsageFromChunk(chunk, latestTokenUsage);
386
386
  return hasToolCallChunk;
@@ -405,9 +405,9 @@ var ChatLunaChatModel = class extends BaseChatModel {
405
405
  latestTokenUsage.input_token_details = usage.input_token_details;
406
406
  latestTokenUsage.output_token_details = usage.output_token_details;
407
407
  }
408
- _finalizeStream(hasToolCallChunk, latestTokenUsage, runManager) {
408
+ async _finalizeStream(hasToolCallChunk, latestTokenUsage, runManager) {
409
409
  if (!hasToolCallChunk) {
410
- void runManager?.handleCustomEvent("LLMNewChunk", void 0);
410
+ await runManager?.handleCustomEvent("LLMNewChunk", void 0);
411
411
  }
412
412
  if (latestTokenUsage.total_tokens <= 0) {
413
413
  return;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-chatluna",
3
3
  "description": "chatluna for koishi",
4
- "version": "1.4.4",
4
+ "version": "1.4.5",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.mjs",
7
7
  "typings": "lib/index.d.ts",