codecane 1.0.171 → 1.0.172
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/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +8 -8
- package/dist/client.js +13 -11
- package/dist/client.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +140 -140
- package/dist/common/browser-actions.d.ts +44 -44
- package/dist/common/types/agent-state.d.ts +22 -22
- package/dist/common/types/message.d.ts +22 -22
- package/dist/common/util/credentials.d.ts +2 -2
- package/dist/common/util/saxy.d.ts +150 -0
- package/dist/common/util/saxy.js +474 -0
- package/dist/common/util/saxy.js.map +1 -0
- package/dist/common/util/string.d.ts +8 -0
- package/dist/common/util/string.js +11 -2
- package/dist/common/util/string.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +272 -272
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js +155 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -0
- package/dist/utils/xml-stream-parser.d.ts +19 -0
- package/dist/utils/xml-stream-parser.js +202 -0
- package/dist/utils/xml-stream-parser.js.map +1 -0
- package/package.json +1 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.js +0 -46
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/process-xml-chunks.d.ts +0 -37
- package/dist/utils/process-xml-chunks.js +0 -247
- package/dist/utils/process-xml-chunks.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -15,9 +15,11 @@ const project_files_1 = require("./project-files");
|
|
|
15
15
|
const update_codebuff_1 = require("./update-codebuff");
|
|
16
16
|
const terminal_1 = require("./utils/terminal");
|
|
17
17
|
const create_template_project_1 = require("./create-template-project");
|
|
18
|
+
console.log(`Starting Codebuff v${package_json_1.default.version}...`);
|
|
18
19
|
async function codebuff(projectDir, { initialInput, git, costMode }) {
|
|
19
20
|
const dir = (0, project_files_1.setProjectRoot)(projectDir);
|
|
20
21
|
(0, terminal_1.recreateShell)(dir);
|
|
22
|
+
console.log(`Initializing project context for directory: ${dir}`);
|
|
21
23
|
const updatePromise = (0, update_codebuff_1.updateCodebuff)();
|
|
22
24
|
const initFileContextPromise = (0, project_files_1.initProjectFileContextWithWorker)(dir);
|
|
23
25
|
const readyPromise = Promise.all([updatePromise, initFileContextPromise]);
|
|
@@ -28,6 +30,7 @@ if (require.main === module) {
|
|
|
28
30
|
const args = process.argv.slice(2);
|
|
29
31
|
const help = args.includes('--help') || args.includes('-h');
|
|
30
32
|
const version = args.includes('--version') || args.includes('-v');
|
|
33
|
+
console.log(`Processing command line arguments: ${args.join(' ')}`);
|
|
31
34
|
if (version) {
|
|
32
35
|
console.log(`Codebuff v${package_json_1.default.version}`);
|
|
33
36
|
process.exit(0);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
const bun_test_1 = require("bun:test");
|
|
5
|
+
const xml_stream_parser_1 = require("../xml-stream-parser");
|
|
6
|
+
const stream_1 = require("stream");
|
|
7
|
+
(0, bun_test_1.describe)('Saxy Stream Processor', () => {
|
|
8
|
+
(0, bun_test_1.test)('pipes output to writable stream', async () => {
|
|
9
|
+
const xml = '<run_terminal_command><command>echo hello</command></run_terminal_command>';
|
|
10
|
+
let result = '';
|
|
11
|
+
const processor = (0, xml_stream_parser_1.createXMLStreamParser)(xml_stream_parser_1.toolRenderers);
|
|
12
|
+
const writable = new stream_1.Writable({
|
|
13
|
+
write(chunk, encoding, callback) {
|
|
14
|
+
result += chunk.toString();
|
|
15
|
+
callback();
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
processor.pipe(writable);
|
|
19
|
+
processor.write(xml);
|
|
20
|
+
processor.end();
|
|
21
|
+
// Wait for the stream to finish
|
|
22
|
+
await new Promise((resolve) => {
|
|
23
|
+
writable.on('finish', resolve);
|
|
24
|
+
});
|
|
25
|
+
(0, bun_test_1.expect)(result).toContain('Run Terminal Command');
|
|
26
|
+
(0, bun_test_1.expect)(result).toContain('echo hello');
|
|
27
|
+
});
|
|
28
|
+
(0, bun_test_1.test)('handles multiple tool calls in sequence', async () => {
|
|
29
|
+
const xml = '<run_terminal_command><command>ls</command></run_terminal_command><read_files><paths>file.txt</paths></read_files>';
|
|
30
|
+
let result = '';
|
|
31
|
+
const processor = (0, xml_stream_parser_1.createXMLStreamParser)(xml_stream_parser_1.toolRenderers);
|
|
32
|
+
const writable = new stream_1.Writable({
|
|
33
|
+
write(chunk, encoding, callback) {
|
|
34
|
+
result += chunk.toString();
|
|
35
|
+
callback();
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
processor.pipe(writable);
|
|
39
|
+
processor.write(xml);
|
|
40
|
+
processor.end();
|
|
41
|
+
// Wait for the stream to finish
|
|
42
|
+
await new Promise((resolve) => {
|
|
43
|
+
writable.on('finish', resolve);
|
|
44
|
+
});
|
|
45
|
+
(0, bun_test_1.expect)(result).toContain('Run Terminal Command');
|
|
46
|
+
(0, bun_test_1.expect)(result).toContain('ls');
|
|
47
|
+
(0, bun_test_1.expect)(result).toContain('Read Files');
|
|
48
|
+
(0, bun_test_1.expect)(result).toContain('file.txt');
|
|
49
|
+
});
|
|
50
|
+
(0, bun_test_1.test)('handles text content between tool calls', async () => {
|
|
51
|
+
const xml = '<run_terminal_command><command>ls</command></run_terminal_command>Some text between tool calls<read_files><paths>file.txt</paths></read_files>';
|
|
52
|
+
let result = '';
|
|
53
|
+
const processor = (0, xml_stream_parser_1.createXMLStreamParser)(xml_stream_parser_1.toolRenderers);
|
|
54
|
+
const writable = new stream_1.Writable({
|
|
55
|
+
write(chunk, encoding, callback) {
|
|
56
|
+
result += chunk.toString();
|
|
57
|
+
callback();
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
processor.pipe(writable);
|
|
61
|
+
processor.write(xml);
|
|
62
|
+
processor.end();
|
|
63
|
+
// Wait for the stream to finish
|
|
64
|
+
await new Promise((resolve) => {
|
|
65
|
+
writable.on('finish', resolve);
|
|
66
|
+
});
|
|
67
|
+
(0, bun_test_1.expect)(result).toContain('Run Terminal Command');
|
|
68
|
+
(0, bun_test_1.expect)(result).toContain('ls');
|
|
69
|
+
(0, bun_test_1.expect)(result).toContain('Some text between tool calls');
|
|
70
|
+
(0, bun_test_1.expect)(result).toContain('Read Files');
|
|
71
|
+
(0, bun_test_1.expect)(result).toContain('file.txt');
|
|
72
|
+
});
|
|
73
|
+
(0, bun_test_1.test)('processes chunks incrementally with output verification', async () => {
|
|
74
|
+
// Define chunks that will be written one at a time
|
|
75
|
+
const chunks = [
|
|
76
|
+
'<run_terminal_',
|
|
77
|
+
'command><comm',
|
|
78
|
+
'and>npm ',
|
|
79
|
+
'install',
|
|
80
|
+
'</command></run_terminal_command>',
|
|
81
|
+
'<code_search><patt',
|
|
82
|
+
'ern>function</pattern></code_search>',
|
|
83
|
+
];
|
|
84
|
+
// Array to store output chunks as they're produced
|
|
85
|
+
const outputChunks = [];
|
|
86
|
+
// Create a writable stream that captures each output chunk
|
|
87
|
+
const writable = new stream_1.Writable({
|
|
88
|
+
write(chunk, encoding, callback) {
|
|
89
|
+
const chunkStr = chunk.toString();
|
|
90
|
+
outputChunks.push(chunkStr);
|
|
91
|
+
callback();
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
// Create the processor
|
|
95
|
+
const processor = (0, xml_stream_parser_1.createXMLStreamParser)(xml_stream_parser_1.toolRenderers);
|
|
96
|
+
processor.pipe(writable);
|
|
97
|
+
// Process each chunk with a small delay between them
|
|
98
|
+
for (const chunk of chunks) {
|
|
99
|
+
processor.write(chunk);
|
|
100
|
+
// Small delay to simulate real-world streaming
|
|
101
|
+
await new Promise((resolve) => setTimeout(resolve, 5));
|
|
102
|
+
}
|
|
103
|
+
processor.end();
|
|
104
|
+
// Wait for the stream to finish
|
|
105
|
+
await new Promise((resolve) => {
|
|
106
|
+
writable.on('finish', resolve);
|
|
107
|
+
});
|
|
108
|
+
// Verify the complete output
|
|
109
|
+
const fullOutput = outputChunks.join('');
|
|
110
|
+
(0, bun_test_1.expect)(fullOutput).toContain('Run Terminal Command');
|
|
111
|
+
(0, bun_test_1.expect)(fullOutput).toContain('npm install');
|
|
112
|
+
(0, bun_test_1.expect)(fullOutput).toContain('Code Search');
|
|
113
|
+
(0, bun_test_1.expect)(fullOutput).toContain('function');
|
|
114
|
+
// Verify incremental output - but don't make assumptions about which chunks contain what
|
|
115
|
+
// Just check that we got multiple output chunks (incremental processing)
|
|
116
|
+
(0, bun_test_1.expect)(outputChunks.length).toBeGreaterThan(1);
|
|
117
|
+
// Check that the terminal command appears before the code search in the output
|
|
118
|
+
const terminalCommandIndex = fullOutput.indexOf('Run Terminal Command');
|
|
119
|
+
const codeSearchIndex = fullOutput.indexOf('Code Search');
|
|
120
|
+
(0, bun_test_1.expect)(terminalCommandIndex).toBeLessThan(codeSearchIndex);
|
|
121
|
+
});
|
|
122
|
+
(0, bun_test_1.test)('processes text content incrementally', async () => {
|
|
123
|
+
// Define chunks that will be written one at a time
|
|
124
|
+
const chunks = ['hi', 'hi2', 'hi3 <yo>yo</yo>'];
|
|
125
|
+
// Array to store output chunks as they're produced
|
|
126
|
+
const outputChunks = [];
|
|
127
|
+
// Create a writable stream that captures each output chunk
|
|
128
|
+
const writable = new stream_1.Writable({
|
|
129
|
+
write(chunk, encoding, callback) {
|
|
130
|
+
const chunkStr = chunk.toString();
|
|
131
|
+
outputChunks.push(chunkStr);
|
|
132
|
+
callback();
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
// Create the processor
|
|
136
|
+
const processor = (0, xml_stream_parser_1.createXMLStreamParser)(xml_stream_parser_1.toolRenderers);
|
|
137
|
+
processor.pipe(writable);
|
|
138
|
+
// Process each chunk with a small delay between them
|
|
139
|
+
for (const chunk of chunks) {
|
|
140
|
+
processor.write(chunk);
|
|
141
|
+
// Small delay to simulate real-world streaming
|
|
142
|
+
await new Promise((resolve) => setTimeout(resolve, 5));
|
|
143
|
+
}
|
|
144
|
+
processor.end();
|
|
145
|
+
// Wait for the stream to finish
|
|
146
|
+
await new Promise((resolve) => {
|
|
147
|
+
writable.on('finish', resolve);
|
|
148
|
+
});
|
|
149
|
+
// Verify the complete output
|
|
150
|
+
const fullOutput = outputChunks.join('');
|
|
151
|
+
(0, bun_test_1.expect)(fullOutput).toEqual('hihi2hi3 yo');
|
|
152
|
+
(0, bun_test_1.expect)(outputChunks.length).toBeGreaterThan(3);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
//# sourceMappingURL=xml-stream-parser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-stream-parser.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/xml-stream-parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Saxy } from '../common/util/saxy';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for handling tool call rendering
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolCallRenderer {
|
|
6
|
+
onToolStart?: (toolName: string, attributes: Record<string, string>) => string | null;
|
|
7
|
+
onParamStart?: (paramName: string, toolName: string) => string | null;
|
|
8
|
+
onParamChunk?: (content: string, paramName: string, toolName: string) => string | null;
|
|
9
|
+
onParamEnd?: (paramName: string, toolName: string, content: string) => string | null;
|
|
10
|
+
onToolEnd?: (toolName: string, params: Record<string, string>) => string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare const toolRenderers: Record<string, ToolCallRenderer>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a transform stream that processes XML tool calls
|
|
15
|
+
* @param renderer Custom renderer for tool calls or a map of renderers per tool
|
|
16
|
+
* @param callback Optional callback function to receive processed chunks
|
|
17
|
+
* @returns Transform stream
|
|
18
|
+
*/
|
|
19
|
+
export declare function createXMLStreamParser(renderer: Record<string, ToolCallRenderer>, callback?: (chunk: string) => void): Saxy;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toolRenderers = void 0;
|
|
4
|
+
exports.createXMLStreamParser = createXMLStreamParser;
|
|
5
|
+
const picocolors_1 = require("picocolors");
|
|
6
|
+
const string_1 = require("../common/util/string");
|
|
7
|
+
const tools_1 = require("../common/constants/tools");
|
|
8
|
+
const saxy_1 = require("../common/util/saxy");
|
|
9
|
+
/**
|
|
10
|
+
* Default renderer for tool calls that formats them nicely for the console
|
|
11
|
+
*/
|
|
12
|
+
const defaultToolCallRenderer = {
|
|
13
|
+
onToolStart: (toolName) => {
|
|
14
|
+
return `[${(0, picocolors_1.bold)((0, string_1.snakeToTitleCase)(toolName))}]\n`;
|
|
15
|
+
},
|
|
16
|
+
onParamChunk: (content, paramName, toolName) => {
|
|
17
|
+
return content;
|
|
18
|
+
},
|
|
19
|
+
onParamEnd: () => '\n',
|
|
20
|
+
onToolEnd: () => null,
|
|
21
|
+
};
|
|
22
|
+
exports.toolRenderers = {
|
|
23
|
+
...Object.fromEntries(tools_1.TOOL_LIST.map((tool) => {
|
|
24
|
+
return [
|
|
25
|
+
tool,
|
|
26
|
+
{
|
|
27
|
+
...defaultToolCallRenderer,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
})),
|
|
31
|
+
run_terminal_command: {
|
|
32
|
+
// Don't render anything
|
|
33
|
+
},
|
|
34
|
+
code_search: {
|
|
35
|
+
// Don't render anything
|
|
36
|
+
},
|
|
37
|
+
read_files: {
|
|
38
|
+
// Don't render anything
|
|
39
|
+
},
|
|
40
|
+
write_file: {
|
|
41
|
+
...defaultToolCallRenderer,
|
|
42
|
+
onParamChunk: (content, paramName, toolName) => {
|
|
43
|
+
if (paramName === 'path') {
|
|
44
|
+
return content;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
add_subgoal: {
|
|
50
|
+
...defaultToolCallRenderer,
|
|
51
|
+
onParamStart: (paramName, toolName) => {
|
|
52
|
+
if (paramName === 'id') {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return (0, string_1.capitalize)(paramName) + ': ';
|
|
56
|
+
},
|
|
57
|
+
onParamChunk: (content, paramName, toolName) => {
|
|
58
|
+
if (paramName === 'id') {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return content;
|
|
62
|
+
},
|
|
63
|
+
onParamEnd: (paramName) => (paramName === 'id' ? null : '\n'),
|
|
64
|
+
},
|
|
65
|
+
update_subgoal: {
|
|
66
|
+
...defaultToolCallRenderer,
|
|
67
|
+
onParamStart: (paramName, toolName) => {
|
|
68
|
+
if (paramName === 'id') {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return (0, string_1.capitalize)(paramName) + ': ';
|
|
72
|
+
},
|
|
73
|
+
onParamChunk: (content, paramName, toolName) => {
|
|
74
|
+
if (paramName === 'id') {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return content;
|
|
78
|
+
},
|
|
79
|
+
onParamEnd: (paramName) => (paramName === 'id' ? null : '\n'),
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Creates a transform stream that processes XML tool calls
|
|
84
|
+
* @param renderer Custom renderer for tool calls or a map of renderers per tool
|
|
85
|
+
* @param callback Optional callback function to receive processed chunks
|
|
86
|
+
* @returns Transform stream
|
|
87
|
+
*/
|
|
88
|
+
function createXMLStreamParser(renderer, callback) {
|
|
89
|
+
const parser = new saxy_1.Saxy();
|
|
90
|
+
// Current state
|
|
91
|
+
let currentTool = null;
|
|
92
|
+
let currentParam = null;
|
|
93
|
+
let params = {};
|
|
94
|
+
let paramContent = '';
|
|
95
|
+
// Helper to get the appropriate renderer for the current tool
|
|
96
|
+
const getRenderer = (toolName) => {
|
|
97
|
+
if (!renderer)
|
|
98
|
+
return defaultToolCallRenderer;
|
|
99
|
+
// If renderer is a map of tool-specific renderers
|
|
100
|
+
if (typeof renderer === 'object' && !('onToolStart' in renderer)) {
|
|
101
|
+
return (renderer[toolName] ||
|
|
102
|
+
defaultToolCallRenderer);
|
|
103
|
+
}
|
|
104
|
+
// If renderer is a single renderer
|
|
105
|
+
return renderer;
|
|
106
|
+
};
|
|
107
|
+
// Set up event handlers
|
|
108
|
+
parser.on('tagopen', (tag) => {
|
|
109
|
+
const { name } = tag;
|
|
110
|
+
// Check if this is a tool tag
|
|
111
|
+
if (tools_1.TOOL_LIST.includes(name)) {
|
|
112
|
+
currentTool = name;
|
|
113
|
+
params = {};
|
|
114
|
+
// Call renderer if available
|
|
115
|
+
const toolRenderer = getRenderer(name);
|
|
116
|
+
if (toolRenderer.onToolStart) {
|
|
117
|
+
const output = toolRenderer.onToolStart(name, saxy_1.Saxy.parseAttrs(tag.attrs));
|
|
118
|
+
if (output !== null) {
|
|
119
|
+
parser.push(output);
|
|
120
|
+
if (callback)
|
|
121
|
+
callback(output);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Check if this is a parameter tag inside a tool
|
|
126
|
+
else if (currentTool && !currentParam) {
|
|
127
|
+
currentParam = name;
|
|
128
|
+
paramContent = '';
|
|
129
|
+
// Call renderer if available
|
|
130
|
+
const toolRenderer = getRenderer(currentTool);
|
|
131
|
+
if (toolRenderer.onParamStart) {
|
|
132
|
+
const output = toolRenderer.onParamStart(name, currentTool);
|
|
133
|
+
if (output !== null) {
|
|
134
|
+
parser.push(output);
|
|
135
|
+
if (callback)
|
|
136
|
+
callback(output);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
parser.on('text', (data) => {
|
|
142
|
+
if (currentTool && currentParam) {
|
|
143
|
+
paramContent += data.contents;
|
|
144
|
+
// Call renderer if available
|
|
145
|
+
const toolRenderer = getRenderer(currentTool);
|
|
146
|
+
if (toolRenderer.onParamChunk) {
|
|
147
|
+
const output = toolRenderer.onParamChunk(data.contents, currentParam, currentTool);
|
|
148
|
+
if (output !== null) {
|
|
149
|
+
parser.push(output);
|
|
150
|
+
if (callback)
|
|
151
|
+
callback(output);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Text outside of tool tags
|
|
157
|
+
parser.push(data.contents);
|
|
158
|
+
if (callback)
|
|
159
|
+
callback(data.contents);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
parser.on('tagclose', (tag) => {
|
|
163
|
+
const { name } = tag;
|
|
164
|
+
// Check if this is a parameter tag closing
|
|
165
|
+
if (currentTool && currentParam && name === currentParam) {
|
|
166
|
+
// Store parameter content
|
|
167
|
+
params[currentParam] = paramContent;
|
|
168
|
+
// Call renderer if available
|
|
169
|
+
const toolRenderer = getRenderer(currentTool);
|
|
170
|
+
if (toolRenderer.onParamEnd) {
|
|
171
|
+
const output = toolRenderer.onParamEnd(currentParam, currentTool, paramContent);
|
|
172
|
+
if (output !== null) {
|
|
173
|
+
parser.push(output);
|
|
174
|
+
if (callback)
|
|
175
|
+
callback(output);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
currentParam = null;
|
|
179
|
+
paramContent = '';
|
|
180
|
+
}
|
|
181
|
+
// Check if this is a tool tag closing
|
|
182
|
+
else if (currentTool && name === currentTool) {
|
|
183
|
+
// Call renderer if available
|
|
184
|
+
const toolRenderer = getRenderer(currentTool);
|
|
185
|
+
if (toolRenderer.onToolEnd) {
|
|
186
|
+
const output = toolRenderer.onToolEnd(currentTool, params);
|
|
187
|
+
if (output !== null) {
|
|
188
|
+
parser.push(output);
|
|
189
|
+
if (callback)
|
|
190
|
+
callback(output);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
currentTool = null;
|
|
194
|
+
params = {};
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
parser.on('end', () => {
|
|
198
|
+
parser.end();
|
|
199
|
+
});
|
|
200
|
+
return parser;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=xml-stream-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-stream-parser.js","sourceRoot":"","sources":["../../src/utils/xml-stream-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/utils/logger.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const logger: import("pino").Logger<never, boolean>;
|
package/dist/utils/logger.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.logger = void 0;
|
|
30
|
-
const pino_1 = __importDefault(require("pino"));
|
|
31
|
-
const fs = __importStar(require("fs"));
|
|
32
|
-
const path = __importStar(require("path"));
|
|
33
|
-
const config_1 = require("../config");
|
|
34
|
-
// Create logs directory if it doesn't exist
|
|
35
|
-
const logsDir = process.cwd();
|
|
36
|
-
if (!fs.existsSync(logsDir)) {
|
|
37
|
-
fs.mkdirSync(logsDir, { recursive: true });
|
|
38
|
-
}
|
|
39
|
-
// Create a writable stream to the log file
|
|
40
|
-
const logStream = fs.createWriteStream(path.join(logsDir, 'debug.log'), {
|
|
41
|
-
flags: 'a',
|
|
42
|
-
});
|
|
43
|
-
exports.logger = (0, pino_1.default)({
|
|
44
|
-
level: process.env.LOG_LEVEL || 'debug',
|
|
45
|
-
}, config_1.isProduction ? undefined : logStream);
|
|
46
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,uCAAwB;AACxB,2CAA4B;AAC5B,sCAAwC;AAExC,4CAA4C;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,2CAA2C;AAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;IACtE,KAAK,EAAE,GAAG;CACX,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,IAAA,cAAI,EACxB;IACE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO;CACxC,EACD,qBAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrC,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handler interface for XML tags
|
|
3
|
-
* Allows controlling both tag display and content handling
|
|
4
|
-
*/
|
|
5
|
-
export interface TagHandler {
|
|
6
|
-
onTagStart?: (tagName: string) => string | null;
|
|
7
|
-
onTagEnd: (tagName: string, content: string) => string | null;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* XmlStreamProcessor handles XML tags that may be split across multiple chunks.
|
|
11
|
-
* It processes tool-related XML tags and executes callbacks when nested tags are completed.
|
|
12
|
-
* The processor maintains a complete response buffer and processes character by character
|
|
13
|
-
* to ensure tags are fully completed before outputting content.
|
|
14
|
-
*/
|
|
15
|
-
export declare class XmlStreamProcessor {
|
|
16
|
-
private tagStack;
|
|
17
|
-
private currentContent;
|
|
18
|
-
private tagHandlers;
|
|
19
|
-
private responseBuffer;
|
|
20
|
-
private lastOutput;
|
|
21
|
-
constructor(tagHandlers: Record<string, TagHandler>);
|
|
22
|
-
/**
|
|
23
|
-
* Process a chunk of text that may contain XML tags
|
|
24
|
-
* @param chunk The new chunk to process
|
|
25
|
-
* @returns Processed text with XML tags handled according to the tag handlers
|
|
26
|
-
*/
|
|
27
|
-
process(chunk: string): string;
|
|
28
|
-
/**
|
|
29
|
-
* Reset the processor state after a stream is complete
|
|
30
|
-
* This clears all internal state variables to prepare for a new stream
|
|
31
|
-
*/
|
|
32
|
-
reset(): void;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Default tag handlers for common XML tags
|
|
36
|
-
*/
|
|
37
|
-
export declare const defaultTagHandlers: Record<string, TagHandler>;
|