locdotech-ai 1.0.65 → 1.0.66

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.
@@ -9,7 +9,7 @@ export interface StreamEvent {
9
9
  export declare class StreamingHandler extends EventEmitter {
10
10
  private abortController;
11
11
  stream(request: ChatRequest): Promise<Message>;
12
- private fallbackToNonStreaming;
12
+ private executeNonStreaming;
13
13
  abort(): void;
14
14
  }
15
15
  export declare const streamingHandler: StreamingHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/api/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAU,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,eAAe,CAAgC;IAEjD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YA2HtC,sBAAsB;IA8BpC,KAAK,IAAI,IAAI;CAKd;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/api/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAU,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,eAAe,CAAgC;IAEjD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YAQtC,mBAAmB;IAuCjC,KAAK,IAAI,IAAI;CAKd;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { appendFileSync } from 'fs';
3
+ import * as os from 'os';
4
+ import * as path from 'path';
3
5
  import { client } from './client.js';
4
- const DEBUG_FILE = '/tmp/ai-router-debug.log';
6
+ const DEBUG_FILE = path.join(os.homedir(), '.ai-router', 'debug.log');
5
7
  function debugLog(msg) {
6
8
  try {
7
9
  appendFileSync(DEBUG_FILE, `${new Date().toISOString()} ${msg}\n`);
@@ -14,95 +16,29 @@ export class StreamingHandler extends EventEmitter {
14
16
  abortController = null;
15
17
  async stream(request) {
16
18
  this.abortController = new AbortController();
17
- let fullContent = '';
18
- const toolCalls = [];
19
- let currentToolCall = null;
19
+ // Use non-streaming for reliability (server streaming has issues)
20
+ debugLog('=== Using non-streaming mode ===');
21
+ return await this.executeNonStreaming(request);
22
+ }
23
+ async executeNonStreaming(request) {
24
+ debugLog('Calling API (non-streaming)...');
20
25
  try {
21
- debugLog('=== Starting stream ===');
22
- for await (const chunk of client.chatStream(request)) {
23
- if (this.abortController.signal.aborted) {
24
- break;
25
- }
26
- const choice = chunk.choices[0];
27
- if (!choice)
28
- continue;
29
- const delta = choice.delta;
30
- // Debug log the raw delta
31
- if (delta.tool_calls) {
32
- debugLog(`TOOL_CALLS: ${JSON.stringify(delta.tool_calls)}`);
33
- }
34
- if (choice.finish_reason) {
35
- debugLog(`FINISH: ${choice.finish_reason}`);
36
- }
37
- // Handle content
38
- if (delta.content) {
39
- fullContent += delta.content;
40
- this.emit('content', delta.content);
41
- }
42
- // Handle tool calls
43
- if (delta.tool_calls) {
44
- for (const tc of delta.tool_calls) {
45
- if (tc.id) {
46
- // New tool call
47
- if (currentToolCall && currentToolCall.id) {
48
- toolCalls.push(currentToolCall);
49
- }
50
- currentToolCall = {
51
- id: tc.id,
52
- type: 'function',
53
- function: {
54
- name: tc.function?.name || '',
55
- arguments: tc.function?.arguments || '',
56
- },
57
- };
58
- }
59
- else if (currentToolCall && tc.function) {
60
- // Continue building current tool call
61
- if (tc.function.name) {
62
- currentToolCall.function.name += tc.function.name;
63
- }
64
- if (tc.function.arguments) {
65
- currentToolCall.function.arguments += tc.function.arguments;
66
- }
67
- }
68
- }
69
- }
70
- // Check for finish - emit any pending tool calls
71
- if (choice.finish_reason) {
72
- // Push any remaining tool call being built
73
- if (currentToolCall && currentToolCall.id) {
74
- toolCalls.push(currentToolCall);
75
- currentToolCall = null;
76
- }
77
- // Emit all tool calls when stream finishes
78
- if (toolCalls.length > 0) {
79
- for (const tc of toolCalls) {
80
- this.emit('tool_call', tc);
81
- }
82
- }
83
- this.emit('finish', choice.finish_reason);
84
- }
85
- }
86
- // Handle any remaining tool call that wasn't finalized
87
- if (currentToolCall && currentToolCall.id) {
88
- toolCalls.push(currentToolCall);
89
- for (const tc of toolCalls) {
90
- this.emit('tool_call', tc);
91
- }
26
+ const response = await client.chat({ ...request, stream: false });
27
+ const content = response.choices[0]?.message?.content || '';
28
+ const toolCalls = response.choices[0]?.message?.tool_calls || [];
29
+ debugLog(`Response: ${content.slice(0, 100)}... (${toolCalls.length} tool calls)`);
30
+ // Emit content as single chunk
31
+ if (content) {
32
+ this.emit('content', content);
92
33
  }
93
- debugLog(`=== Stream done. toolCalls: ${toolCalls.length} ===`);
94
- if (toolCalls.length > 0) {
95
- debugLog(`Collected tool calls: ${JSON.stringify(toolCalls)}`);
96
- }
97
- // Fallback to non-streaming if streaming returned empty content
98
- if (!fullContent && toolCalls.length === 0) {
99
- debugLog('Streaming returned empty, falling back to non-streaming');
100
- return await this.fallbackToNonStreaming(request);
34
+ // Emit tool calls
35
+ for (const tc of toolCalls) {
36
+ this.emit('tool_call', tc);
101
37
  }
102
38
  this.emit('done');
103
39
  const message = {
104
40
  role: 'assistant',
105
- content: fullContent,
41
+ content,
106
42
  };
107
43
  if (toolCalls.length > 0) {
108
44
  message.tool_calls = toolCalls;
@@ -110,39 +46,10 @@ export class StreamingHandler extends EventEmitter {
110
46
  return message;
111
47
  }
112
48
  catch (error) {
113
- // On streaming error, try non-streaming fallback
114
- debugLog(`Stream error: ${error}, trying non-streaming fallback`);
115
- try {
116
- return await this.fallbackToNonStreaming(request);
117
- }
118
- catch (fallbackError) {
119
- this.emit('error', fallbackError);
120
- throw fallbackError;
121
- }
122
- }
123
- }
124
- async fallbackToNonStreaming(request) {
125
- debugLog('Using non-streaming fallback');
126
- const response = await client.chat({ ...request, stream: false });
127
- const content = response.choices[0]?.message?.content || '';
128
- const toolCalls = response.choices[0]?.message?.tool_calls || [];
129
- // Emit content as single chunk
130
- if (content) {
131
- this.emit('content', content);
132
- }
133
- // Emit tool calls
134
- for (const tc of toolCalls) {
135
- this.emit('tool_call', tc);
136
- }
137
- this.emit('done');
138
- const message = {
139
- role: 'assistant',
140
- content,
141
- };
142
- if (toolCalls.length > 0) {
143
- message.tool_calls = toolCalls;
49
+ debugLog(`API Error: ${error}`);
50
+ this.emit('error', error);
51
+ throw error;
144
52
  }
145
- return message;
146
53
  }
147
54
  abort() {
148
55
  if (this.abortController) {
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/api/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/api/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAkC,MAAM,aAAa,CAAC;AAErE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACtE,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AASD,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IACxC,eAAe,GAA2B,IAAI,CAAC;IAEvD,KAAK,CAAC,MAAM,CAAC,OAAoB;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE7C,kEAAkE;QAClE,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAC7C,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAoB;QACpD,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;YAEjE,QAAQ,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,SAAS,CAAC,MAAM,cAAc,CAAC,CAAC;YAEnF,+BAA+B;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,kBAAkB;YAClB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElB,MAAM,OAAO,GAAY;gBACvB,IAAI,EAAE,WAAW;gBACjB,OAAO;aACR,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YACjC,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
package/dist/ui/App.js CHANGED
@@ -15,7 +15,7 @@ import { useHistory } from './hooks/useHistory.js';
15
15
  import { useServicesEffect, useToolCallsEffect, useKeyboardShortcuts } from './hooks/useAppEffects.js';
16
16
  import { loadSettings, saveSettings } from '../config/index.js';
17
17
  import { commandRegistry } from '../commands/index.js';
18
- const VERSION = '1.0.65';
18
+ const VERSION = '1.0.66';
19
19
  export function App({ initialPrompt }) {
20
20
  const { exit } = useApp();
21
21
  const settings = loadSettings();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "locdotech-ai",
3
- "version": "1.0.65",
3
+ "version": "1.0.66",
4
4
  "description": "LocdoTech AI CLI - Smart AI assistant with multi-agent routing. Created by LocDo.Tech",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",