@usabledev/usable-chat 1.207.7 → 1.207.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.js +47 -35
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -164720,6 +164720,46 @@ async function adaptOpenRouterStream(stream, options2) {
164720
164720
  multiplexer.send(errorEvent);
164721
164721
  }
164722
164722
  };
164723
+ const startPendingToolCall = (index2, args) => {
164724
+ const pending = pendingToolCalls.get(index2);
164725
+ if (!pending?.id || !pending.name) return false;
164726
+ completedToolCalls.push({
164727
+ id: pending.id,
164728
+ name: pending.name,
164729
+ arguments: args
164730
+ });
164731
+ streamLogger.debug("Tool call complete", {
164732
+ toolName: pending.name,
164733
+ toolId: pending.id
164734
+ });
164735
+ const toolCallEvent = emitter.emit("tool-call", {
164736
+ id: pending.id,
164737
+ toolName: pending.name,
164738
+ args,
164739
+ state: "complete"
164740
+ });
164741
+ providerAttempt?.markObservableProgress();
164742
+ multiplexer.send(toolCallEvent);
164743
+ const retrievalTools = [
164744
+ "agentic-search-fragments",
164745
+ "search-memory-fragments",
164746
+ "get-memory-fragment-content",
164747
+ "list-memory-fragments"
164748
+ ];
164749
+ if (retrievalTools.includes(pending.name)) {
164750
+ const retrievalQuery = typeof args.query === "string" ? args.query : typeof args.fragmentId === "string" ? args.fragmentId : "unknown";
164751
+ const retrievalEvent = emitter.emit("retrieval", {
164752
+ source: pending.name,
164753
+ query: retrievalQuery,
164754
+ resultCount: void 0
164755
+ });
164756
+ multiplexer.send(retrievalEvent);
164757
+ }
164758
+ providerAttempt?.pause();
164759
+ toolExecutionPromises.push(executeParsedToolCall(pending.id, pending.name, args));
164760
+ pendingToolCalls.delete(index2);
164761
+ return true;
164762
+ };
164723
164763
  async function drainStartedTools() {
164724
164764
  if (toolExecutionPromises.length === 0) return;
164725
164765
  providerAttempt?.pause();
@@ -164967,40 +165007,7 @@ async function adaptOpenRouterStream(stream, options2) {
164967
165007
  if (pending.id && pending.name && pending.arguments) {
164968
165008
  try {
164969
165009
  const args = JSON.parse(pending.arguments);
164970
- completedToolCalls.push({
164971
- id: pending.id,
164972
- name: pending.name,
164973
- arguments: args
164974
- });
164975
- streamLogger.debug("Tool call complete", {
164976
- toolName: pending.name,
164977
- toolId: pending.id
164978
- });
164979
- const toolCallEvent = emitter.emit("tool-call", {
164980
- id: pending.id,
164981
- toolName: pending.name,
164982
- args,
164983
- state: "complete"
164984
- });
164985
- providerAttempt?.markObservableProgress();
164986
- multiplexer.send(toolCallEvent);
164987
- const retrievalTools = [
164988
- "agentic-search-fragments",
164989
- "search-memory-fragments",
164990
- "get-memory-fragment-content",
164991
- "list-memory-fragments"
164992
- ];
164993
- if (retrievalTools.includes(pending.name)) {
164994
- const retrievalEvent = emitter.emit("retrieval", {
164995
- source: pending.name,
164996
- query: args?.query || args?.fragmentId || "unknown",
164997
- resultCount: void 0
164998
- });
164999
- multiplexer.send(retrievalEvent);
165000
- }
165001
- providerAttempt?.pause();
165002
- toolExecutionPromises.push(executeParsedToolCall(pending.id, pending.name, args));
165003
- pendingToolCalls.delete(index2);
165010
+ startPendingToolCall(index2, args);
165004
165011
  } catch {
165005
165012
  }
165006
165013
  }
@@ -165012,6 +165019,11 @@ async function adaptOpenRouterStream(stream, options2) {
165012
165019
  finishReason: finish_reason,
165013
165020
  hasUsage: !!capturedUsage
165014
165021
  });
165022
+ if (finish_reason === "tool_calls") {
165023
+ for (const [index2, pending] of pendingToolCalls) {
165024
+ if (pending.arguments.length === 0) startPendingToolCall(index2, {});
165025
+ }
165026
+ }
165015
165027
  if (finish_reason === "tool_calls" && toolExecutionPromises.length > 0) {
165016
165028
  streamLogger.debug("Waiting for OpenRouter tool executions", {
165017
165029
  toolCount: toolExecutionPromises.length
@@ -391591,7 +391603,7 @@ init_tui_select();
391591
391603
  init_model_registry();
391592
391604
 
391593
391605
  // package.json
391594
- var version2 = "1.207.7";
391606
+ var version2 = "1.207.8";
391595
391607
 
391596
391608
  // src/adapters/cli/model-catalog.ts
391597
391609
  init_codex_auth();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usabledev/usable-chat",
3
- "version": "1.207.7",
3
+ "version": "1.207.8",
4
4
  "description": "usable-chat — terminal harness for usable-chat (headless + TUI)",
5
5
  "type": "module",
6
6
  "bin": {