@vybestack/llxprt-code-core 0.5.0-nightly.251113.5cde5bb1 → 0.5.0-nightly.251115.a0f86309

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.
@@ -14,30 +14,24 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  /**
17
- * ToolCallPipeline - Tool call processing pipeline
17
+ * ToolCallPipeline - Simplified tool call processing pipeline
18
18
  *
19
- * Integrated solution for collection, validation, normalization, and execution phases.
20
- * Replaces the original accumulation logic, providing reliable ToolCalls processing.
19
+ * Focused on collection and normalization phases only.
20
+ * Tool execution is handled by the Core layer, not Provider layer.
21
21
  */
22
22
  import { DebugLogger } from '../../debug/index.js';
23
23
  import { ToolCallCollector } from './ToolCallCollector.js';
24
- import { ToolCallValidator } from './ToolCallValidator.js';
25
24
  import { ToolCallNormalizer, } from './ToolCallNormalizer.js';
26
- import { ToolCallExecutor, } from './ToolCallExecutor.js';
27
25
  const logger = new DebugLogger('llxprt:providers:openai:toolCallPipeline');
28
26
  /**
29
- * ToolCallPipeline - Complete tool call processing pipeline
27
+ * Simplified ToolCallPipeline - Collection and normalization only
30
28
  */
31
29
  export class ToolCallPipeline {
32
30
  collector;
33
- validator;
34
31
  normalizer;
35
- executor;
36
- constructor(allowedToolNames = []) {
32
+ constructor() {
37
33
  this.collector = new ToolCallCollector();
38
- this.validator = new ToolCallValidator(allowedToolNames);
39
34
  this.normalizer = new ToolCallNormalizer();
40
- this.executor = new ToolCallExecutor();
41
35
  }
42
36
  /**
43
37
  * Add tool call fragment
@@ -46,72 +40,67 @@ export class ToolCallPipeline {
46
40
  this.collector.addFragment(index, fragment);
47
41
  }
48
42
  /**
49
- * Process all collected tool calls
43
+ * Process all collected tool calls (collection + normalization only)
50
44
  */
51
45
  async process() {
52
- logger.debug('Starting tool call pipeline processing');
46
+ logger.debug('Starting simplified tool call pipeline processing');
53
47
  // Phase 1: Collect complete calls
54
48
  const candidates = this.collector.getCompleteCalls();
55
49
  logger.debug(`Collected ${candidates.length} complete tool calls`);
56
- // Phase 2: Validate calls
57
- const validatedCalls = this.validator.validateBatch(candidates);
58
- const validCalls = validatedCalls.filter((call) => call.isValid);
59
- const invalidCalls = validatedCalls.filter((call) => !call.isValid);
60
- logger.debug(`Validated ${validCalls.length} valid, ${invalidCalls.length} invalid tool calls`);
61
- // Phase 3: Normalize calls
62
- const normalizedCalls = this.normalizer.normalizeBatch(validCalls);
63
- logger.debug(`Normalized ${normalizedCalls.length} tool calls`);
64
- // Phase 4: Execute calls
65
- const executionResults = await this.executor.executeBatch(normalizedCalls);
66
- const successfulResults = executionResults.filter((result) => result.success);
67
- const failedResults = executionResults.filter((result) => !result.success);
68
- logger.debug(`Executed ${successfulResults.length} successful, ${failedResults.length} failed tool calls`);
50
+ // Phase 2: Normalize calls directly (no separate validation needed)
51
+ const normalizedCalls = [];
52
+ const failedCalls = [];
53
+ for (const candidate of candidates) {
54
+ try {
55
+ // Create a mock validated call for normalization
56
+ const mockValidatedCall = {
57
+ index: candidate.index,
58
+ name: candidate.name || '',
59
+ args: candidate.args || '',
60
+ isValid: true,
61
+ validationErrors: [],
62
+ };
63
+ const normalized = this.normalizer.normalize(mockValidatedCall);
64
+ if (normalized) {
65
+ normalizedCalls.push(normalized);
66
+ }
67
+ else {
68
+ failedCalls.push({
69
+ index: candidate.index,
70
+ name: candidate.name,
71
+ args: candidate.args,
72
+ isValid: false,
73
+ validationErrors: ['Normalization failed'],
74
+ });
75
+ }
76
+ }
77
+ catch (error) {
78
+ failedCalls.push({
79
+ index: candidate.index,
80
+ name: candidate.name,
81
+ args: candidate.args,
82
+ isValid: false,
83
+ validationErrors: [
84
+ error instanceof Error ? error.message : 'Unknown error',
85
+ ],
86
+ });
87
+ }
88
+ }
89
+ logger.debug(`Normalized ${normalizedCalls.length} tool calls, ${failedCalls.length} failed`);
69
90
  // Reset collector for next batch
70
91
  this.collector.reset();
71
92
  const result = {
72
- executed: executionResults,
73
93
  normalized: normalizedCalls,
74
- failed: invalidCalls,
94
+ failed: failedCalls,
75
95
  stats: {
76
96
  collected: candidates.length,
77
- validated: validCalls.length,
78
97
  normalized: normalizedCalls.length,
79
- executed: successfulResults.length,
80
- failed: invalidCalls.length + failedResults.length,
98
+ failed: failedCalls.length,
81
99
  },
82
100
  };
83
101
  logger.debug(`Pipeline processing completed: ${JSON.stringify(result.stats)}`);
84
102
  return result;
85
103
  }
86
- /**
87
- * Register tool function
88
- */
89
- registerTool(name, fn) {
90
- this.executor.registerTool(name, fn);
91
- this.validator.updateAllowedTools(this.executor.getRegisteredTools());
92
- }
93
- /**
94
- * Register tool functions in batch
95
- */
96
- registerTools(tools) {
97
- this.executor.registerTools(tools);
98
- this.validator.updateAllowedTools(this.executor.getRegisteredTools());
99
- }
100
- /**
101
- * Check if tool is registered
102
- */
103
- isToolRegistered(name) {
104
- return this.executor.isToolRegistered(name);
105
- }
106
- /**
107
- * Get pipeline statistics
108
- */
109
- getStats() {
110
- return {
111
- collector: this.collector.getStats(),
112
- registeredTools: this.executor.getRegisteredTools().length,
113
- };
114
- }
115
104
  /**
116
105
  * Normalize single tool name (for non-streaming path)
117
106
  */
@@ -126,6 +115,14 @@ export class ToolCallPipeline {
126
115
  const normalized = this.normalizer.normalize(mockValidatedCall);
127
116
  return normalized?.name || name || '';
128
117
  }
118
+ /**
119
+ * Get pipeline statistics
120
+ */
121
+ getStats() {
122
+ return {
123
+ collector: this.collector.getStats(),
124
+ };
125
+ }
129
126
  /**
130
127
  * Reset pipeline state
131
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallPipeline.js","sourceRoot":"","sources":["../../../../src/providers/openai/ToolCallPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolCallPipeline.js","sourceRoot":"","sources":["../../../../src/providers/openai/ToolCallPipeline.ts"],"names":[],"mappings":"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"}
@@ -34,10 +34,10 @@ export declare function detectDoubleEscapingInChunk(chunk: string): boolean;
34
34
  * Processes tool call parameters, fixing double-escaping if detected
35
35
  * @param parametersString - The JSON string containing tool parameters
36
36
  * @param toolName - Name of the tool (for logging)
37
- * @param format - The tool format being used (for context)
37
+ * @param format - The tool format being used (for context, optional)
38
38
  * @returns Processed parameters object
39
39
  */
40
- export declare function processToolParameters(parametersString: string, toolName: string, format: string): unknown;
40
+ export declare function processToolParameters(parametersString: string, toolName: string, format?: string): unknown;
41
41
  /**
42
42
  * Logs double-escaping detection in streaming chunks (for debugging)
43
43
  * @param chunk - The chunk that contains potential double-escaping
@@ -145,54 +145,70 @@ export function detectDoubleEscapingInChunk(chunk) {
145
145
  * Processes tool call parameters, fixing double-escaping if detected
146
146
  * @param parametersString - The JSON string containing tool parameters
147
147
  * @param toolName - Name of the tool (for logging)
148
- * @param format - The tool format being used (for context)
148
+ * @param format - The tool format being used (for context, optional)
149
149
  * @returns Processed parameters object
150
150
  */
151
151
  export function processToolParameters(parametersString, toolName, format) {
152
152
  if (!parametersString.trim()) {
153
153
  return {};
154
154
  }
155
- // Only apply double-escape handling for formats that need it
156
- if (!shouldUseDoubleEscapeHandling(format)) {
157
- // For formats that don't need double-escape handling, parse the JSON string
158
- try {
159
- return JSON.parse(parametersString);
155
+ // Try multiple parsing strategies without format dependency
156
+ return tryMultipleParsingStrategies(parametersString, toolName, format);
157
+ }
158
+ /**
159
+ * Try multiple parsing strategies to handle tool parameters
160
+ * @param parametersString - The JSON string containing tool parameters
161
+ * @param toolName - Name of the tool (for logging)
162
+ * @param format - The tool format being used (for context, optional)
163
+ * @returns Processed parameters object
164
+ */
165
+ function tryMultipleParsingStrategies(parametersString, toolName, format) {
166
+ // Strategy 1: Direct JSON parsing
167
+ try {
168
+ const parsed = JSON.parse(parametersString);
169
+ // Handle empty string case
170
+ if (typeof parsed === 'string' && parsed.trim() === '') {
171
+ return {};
172
+ }
173
+ // If the parsed result is a string that looks like JSON,
174
+ // it might be double-escaped, so continue to strategy 2
175
+ if (typeof parsed === 'string' && parsed.trim().startsWith('{')) {
176
+ // Don't return yet, let strategy 2 handle the double-escaping
160
177
  }
161
- catch (e) {
162
- logger.debug(() => `Failed to parse tool parameters as JSON: ${e}`);
163
- return parametersString; // Return as-is if not valid JSON
178
+ else {
179
+ return parsed;
164
180
  }
165
181
  }
166
- // Apply double-escape detection and fixing for qwen format
182
+ catch {
183
+ // Continue to next strategy
184
+ }
185
+ // Strategy 2: Detect and repair double escaping (existing logic, no format dependency)
167
186
  const detection = detectDoubleEscaping(parametersString);
168
- if (detection.isDoubleEscaped) {
169
- logger.error(() => `[${format}] Fixed double-escaped parameters for ${toolName}`, {
170
- tool: toolName,
171
- format,
172
- originalLength: parametersString.length,
173
- fixed: true,
174
- });
175
- // Convert string numbers to actual numbers for qwen format
176
- return convertStringNumbersToNumbers(detection.correctedValue);
187
+ if (detection.correctedValue !== undefined) {
188
+ if (detection.isDoubleEscaped) {
189
+ logger.error(() => `[${format || 'auto'}] Fixed double-escaped parameters for ${toolName}`, {
190
+ tool: toolName,
191
+ format: format || 'auto',
192
+ originalLength: parametersString.length,
193
+ fixed: true,
194
+ });
195
+ }
196
+ const result = convertStringNumbersToNumbers(detection.correctedValue);
197
+ // Handle empty string case for double-escaped results
198
+ if (typeof result === 'string' && result.trim() === '') {
199
+ return {};
200
+ }
201
+ return result;
177
202
  }
178
- else if (detection.detectionDetails.error) {
179
- logger.error(() => `[${format}] Failed to parse parameters for ${toolName}`, {
203
+ // Strategy 3: Return original string (last resort)
204
+ if (detection.detectionDetails.error) {
205
+ logger.error(() => `[${format || 'auto'}] Failed to parse parameters for ${toolName}`, {
180
206
  tool: toolName,
181
- format,
207
+ format: format || 'auto',
182
208
  error: detection.detectionDetails.error,
183
209
  });
184
- // Return the string as-is if parsing fails
185
- return parametersString;
186
- }
187
- // Convert string numbers to actual numbers for qwen format
188
- const normalized = detection.correctedValue;
189
- if (typeof normalized === 'string') {
190
- const trimmed = normalized.trim();
191
- if (trimmed.length === 0) {
192
- return {};
193
- }
194
210
  }
195
- return convertStringNumbersToNumbers(normalized);
211
+ return parametersString;
196
212
  }
197
213
  /**
198
214
  * Converts string numbers to actual numbers in an object
@@ -1 +1 @@
1
- {"version":3,"file":"doubleEscapeUtils.js","sourceRoot":"","sources":["../../../src/tools/doubleEscapeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doubleEscapeUtils.js","sourceRoot":"","sources":["../../../src/tools/doubleEscapeUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vybestack/llxprt-code-core",
3
- "version": "0.5.0-nightly.251113.5cde5bb1",
3
+ "version": "0.5.0-nightly.251115.a0f86309",
4
4
  "description": "LLxprt Code Core",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,65 +0,0 @@
1
- /**
2
- * Copyright 2025 Vybestack LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export interface ToolExecutionResult {
17
- index: number;
18
- name: string;
19
- success: boolean;
20
- result?: unknown;
21
- error?: string;
22
- executionTime: number;
23
- }
24
- export interface ToolFunction {
25
- (args: Record<string, unknown>): Promise<unknown> | unknown;
26
- }
27
- /**
28
- * ToolCallExecutor - Responsible for executing tool calls
29
- */
30
- export declare class ToolCallExecutor {
31
- private toolRegistry;
32
- /**
33
- * Register tool function
34
- */
35
- registerTool(name: string, fn: ToolFunction): void;
36
- /**
37
- * Batch register tool functions
38
- */
39
- registerTools(tools: Record<string, ToolFunction>): void;
40
- /**
41
- * Execute single tool call
42
- */
43
- execute(normalizedCall: NormalizedToolCall): Promise<ToolExecutionResult>;
44
- /**
45
- * Batch execute tool calls
46
- */
47
- executeBatch(normalizedCalls: NormalizedToolCall[]): Promise<ToolExecutionResult[]>;
48
- /**
49
- * Check if tool is registered
50
- */
51
- isToolRegistered(name: string): boolean;
52
- /**
53
- * Get list of registered tool names
54
- */
55
- getRegisteredTools(): string[];
56
- /**
57
- * Remove registered tool
58
- */
59
- unregisterTool(name: string): boolean;
60
- /**
61
- * Clear all registered tools
62
- */
63
- clearTools(): void;
64
- }
65
- import { NormalizedToolCall } from './ToolCallNormalizer.js';
@@ -1,120 +0,0 @@
1
- /**
2
- * Copyright 2025 Vybestack LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * ToolCallExecutor - Execute tool calls
18
- *
19
- * Responsible for executing normalized tool calls and handling execution results.
20
- */
21
- import { DebugLogger } from '../../debug/index.js';
22
- const logger = new DebugLogger('llxprt:providers:openai:toolCallExecutor');
23
- /**
24
- * ToolCallExecutor - Responsible for executing tool calls
25
- */
26
- export class ToolCallExecutor {
27
- toolRegistry = new Map();
28
- /**
29
- * Register tool function
30
- */
31
- registerTool(name, fn) {
32
- this.toolRegistry.set(name, fn);
33
- logger.debug(`Registered tool: ${name}`);
34
- }
35
- /**
36
- * Batch register tool functions
37
- */
38
- registerTools(tools) {
39
- for (const [name, fn] of Object.entries(tools)) {
40
- this.registerTool(name, fn);
41
- }
42
- }
43
- /**
44
- * Execute single tool call
45
- */
46
- async execute(normalizedCall) {
47
- const startTime = Date.now();
48
- try {
49
- const toolFn = this.toolRegistry.get(normalizedCall.name);
50
- if (!toolFn) {
51
- throw new Error(`Tool '${normalizedCall.name}' is not registered`);
52
- }
53
- logger.debug(`Executing tool call ${normalizedCall.index}: ${normalizedCall.name}`);
54
- const result = await toolFn(normalizedCall.args);
55
- const executionTime = Date.now() - startTime;
56
- logger.debug(`Tool call ${normalizedCall.index} completed in ${executionTime}ms`);
57
- return {
58
- index: normalizedCall.index,
59
- name: normalizedCall.name,
60
- success: true,
61
- result,
62
- executionTime,
63
- };
64
- }
65
- catch (error) {
66
- const executionTime = Date.now() - startTime;
67
- const errorMessage = error instanceof Error ? error.message : String(error);
68
- logger.error(`Tool call ${normalizedCall.index} failed: ${errorMessage}`);
69
- return {
70
- index: normalizedCall.index,
71
- name: normalizedCall.name,
72
- success: false,
73
- error: errorMessage,
74
- executionTime,
75
- };
76
- }
77
- }
78
- /**
79
- * Batch execute tool calls
80
- */
81
- async executeBatch(normalizedCalls) {
82
- // Execute sequentially to avoid resource conflicts
83
- const results = [];
84
- for (const call of normalizedCalls) {
85
- const result = await this.execute(call);
86
- results.push(result);
87
- }
88
- return results;
89
- }
90
- /**
91
- * Check if tool is registered
92
- */
93
- isToolRegistered(name) {
94
- return this.toolRegistry.has(name);
95
- }
96
- /**
97
- * Get list of registered tool names
98
- */
99
- getRegisteredTools() {
100
- return Array.from(this.toolRegistry.keys());
101
- }
102
- /**
103
- * Remove registered tool
104
- */
105
- unregisterTool(name) {
106
- const removed = this.toolRegistry.delete(name);
107
- if (removed) {
108
- logger.debug(`Unregistered tool: ${name}`);
109
- }
110
- return removed;
111
- }
112
- /**
113
- * Clear all registered tools
114
- */
115
- clearTools() {
116
- this.toolRegistry.clear();
117
- logger.debug('Cleared all registered tools');
118
- }
119
- }
120
- //# sourceMappingURL=ToolCallExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolCallExecutor.js","sourceRoot":"","sources":["../../../../src/providers/openai/ToolCallExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Copyright 2025 Vybestack LLC
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export interface ValidationResult {
17
- isValid: boolean;
18
- errors: string[];
19
- warnings: string[];
20
- }
21
- export interface ValidatedToolCall {
22
- index: number;
23
- name: string;
24
- args?: string;
25
- isValid: boolean;
26
- validationErrors: string[];
27
- }
28
- /**
29
- * ToolCallValidator - The verification tool calls the candidates.
30
- */
31
- export declare class ToolCallValidator {
32
- private allowedToolNames;
33
- constructor(allowedToolNames?: string[]);
34
- /**
35
- * Validate tool call candidate
36
- */
37
- validate(candidate: ToolCallCandidate): ValidatedToolCall;
38
- /**
39
- * Batch validate tool call candidates
40
- */
41
- validateBatch(candidates: ToolCallCandidate[]): ValidatedToolCall[];
42
- /**
43
- * Check if tool name is valid
44
- */
45
- private isValidToolName;
46
- /**
47
- * Check if parameters are valid JSON
48
- */
49
- private isValidArgs;
50
- /**
51
- * Update allowed tool names list
52
- */
53
- updateAllowedTools(allowedToolNames: string[]): void;
54
- }
55
- import { ToolCallCandidate } from './ToolCallCollector.js';