@theia/ai-chat-ui 1.71.0-next.32 → 1.71.0-next.36
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/browser/chat-response-renderer/delegation-tool-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/delegation-tool-renderer.js +9 -1
- package/lib/browser/chat-response-renderer/delegation-tool-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/toolcall-utils.d.ts +1 -0
- package/lib/browser/chat-response-renderer/toolcall-utils.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/toolcall-utils.js +3 -0
- package/lib/browser/chat-response-renderer/toolcall-utils.js.map +1 -1
- package/lib/common/toolcall-utils.d.ts +6 -0
- package/lib/common/toolcall-utils.d.ts.map +1 -0
- package/lib/common/toolcall-utils.js +40 -0
- package/lib/common/toolcall-utils.js.map +1 -0
- package/lib/common/toolcall-utils.spec.d.ts +2 -0
- package/lib/common/toolcall-utils.spec.d.ts.map +1 -0
- package/lib/common/toolcall-utils.spec.js +102 -0
- package/lib/common/toolcall-utils.spec.js.map +1 -0
- package/package.json +11 -11
- package/src/browser/chat-response-renderer/delegation-tool-renderer.tsx +9 -1
- package/src/browser/chat-response-renderer/toolcall-utils.ts +2 -0
- package/src/common/toolcall-utils.spec.ts +118 -0
- package/src/common/toolcall-utils.ts +36 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-tool-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-tool-renderer.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAyB,mBAAmB,EAAyC,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAChJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"delegation-tool-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-tool-renderer.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAyB,mBAAmB,EAAyC,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAChJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,qBACa,sBAAuB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAGhG,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAG3D,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGzD,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAGnD,SAAS,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEzG,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS;CA+C3F"}
|
|
@@ -27,6 +27,7 @@ const agent_delegation_tool_1 = require("@theia/ai-chat/lib/browser/agent-delega
|
|
|
27
27
|
const chat_response_part_renderer_1 = require("../chat-response-part-renderer");
|
|
28
28
|
const sub_chat_widget_1 = require("../chat-tree-view/sub-chat-widget");
|
|
29
29
|
const tool_confirmation_1 = require("./tool-confirmation");
|
|
30
|
+
const toolcall_utils_1 = require("./toolcall-utils");
|
|
30
31
|
const browser_1 = require("@theia/core/lib/browser");
|
|
31
32
|
const core_1 = require("@theia/core");
|
|
32
33
|
const React = require("@theia/core/shared/react");
|
|
@@ -52,7 +53,14 @@ let DelegationToolRenderer = class DelegationToolRenderer {
|
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
catch {
|
|
55
|
-
|
|
56
|
+
const partialAgentId = (0, toolcall_utils_1.extractJsonStringField)(response.arguments, 'agentId');
|
|
57
|
+
if (partialAgentId) {
|
|
58
|
+
agentName = this.chatAgentService.getAgent(partialAgentId)?.name ?? partialAgentId;
|
|
59
|
+
}
|
|
60
|
+
const partialPrompt = (0, toolcall_utils_1.extractJsonStringField)(response.arguments, 'prompt');
|
|
61
|
+
if (partialPrompt) {
|
|
62
|
+
prompt = partialPrompt;
|
|
63
|
+
}
|
|
56
64
|
}
|
|
57
65
|
}
|
|
58
66
|
const chatId = parentNode.sessionId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-tool-renderer.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAyE;AACzE,4CAAgJ;AAChJ,qFAAgF;AAChF,4GAAmG;AACnG,6EAAwF;AACxF,4CAAwD;AACxD,4FAAuF;AACvF,gFAA0E;AAE1E,uEAAyE;AACzE,2DAA+D;AAC/D,qDAAiF;AACjF,sCAA8E;AAC9E,kDAAkD;AAG3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAuB/B,SAAS,CAAC,QAA6B;QACnC,IAAI,qCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,6CAA4B,EAAE,CAAC;YAC7F,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAqC,EAAE,UAAwB;QAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjG,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,6CAA4B,CAAC;QAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACnC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;gBACnF,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAClC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,
|
|
1
|
+
{"version":3,"file":"delegation-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-tool-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MarkdownStringImpl } from '@theia/core/lib/common/markdown-rendering/markdown-string';
|
|
2
|
+
export { extractJsonStringField } from '../../common/toolcall-utils';
|
|
2
3
|
export declare function formatArgsForTooltip(args: string): MarkdownStringImpl;
|
|
3
4
|
export declare function condenseArguments(args: string): string | undefined;
|
|
4
5
|
//# sourceMappingURL=toolcall-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolcall-utils.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"toolcall-utils.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAC;AAE/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAkIrE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAgBrE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiClE"}
|
|
@@ -15,9 +15,12 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.extractJsonStringField = void 0;
|
|
18
19
|
exports.formatArgsForTooltip = formatArgsForTooltip;
|
|
19
20
|
exports.condenseArguments = condenseArguments;
|
|
20
21
|
const markdown_string_1 = require("@theia/core/lib/common/markdown-rendering/markdown-string");
|
|
22
|
+
var toolcall_utils_1 = require("../../common/toolcall-utils");
|
|
23
|
+
Object.defineProperty(exports, "extractJsonStringField", { enumerable: true, get: function () { return toolcall_utils_1.extractJsonStringField; } });
|
|
21
24
|
const SHORT_STRING_THRESHOLD = 50;
|
|
22
25
|
const MAX_CONDENSED_LENGTH = 80;
|
|
23
26
|
const MAX_CONDENSED_VALUE_LENGTH = 30;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolcall-utils.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-utils.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF
|
|
1
|
+
{"version":3,"file":"toolcall-utils.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts a string field value from potentially incomplete JSON.
|
|
3
|
+
* Tries JSON.parse first, then falls back to regex extraction for streaming scenarios.
|
|
4
|
+
*/
|
|
5
|
+
export declare function extractJsonStringField(json: string | undefined, fieldName: string): string | undefined;
|
|
6
|
+
//# sourceMappingURL=toolcall-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolcall-utils.d.ts","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAetG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.extractJsonStringField = extractJsonStringField;
|
|
19
|
+
/**
|
|
20
|
+
* Extracts a string field value from potentially incomplete JSON.
|
|
21
|
+
* Tries JSON.parse first, then falls back to regex extraction for streaming scenarios.
|
|
22
|
+
*/
|
|
23
|
+
function extractJsonStringField(json, fieldName) {
|
|
24
|
+
if (!json) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(json);
|
|
29
|
+
if (parsed && typeof parsed === 'object' && fieldName in parsed && typeof parsed[fieldName] === 'string') {
|
|
30
|
+
return parsed[fieldName];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
const regex = new RegExp('"' + fieldName + '"\\s*:\\s*"([^"]*)"?');
|
|
35
|
+
const match = regex.exec(json);
|
|
36
|
+
return match?.[1];
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=toolcall-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolcall-utils.js","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAMhF,wDAeC;AAnBD;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,IAAwB,EAAE,SAAiB;IAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,sBAAsB,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolcall-utils.spec.d.ts","sourceRoot":"","sources":["../../src/common/toolcall-utils.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const chai_1 = require("chai");
|
|
19
|
+
const toolcall_utils_1 = require("./toolcall-utils");
|
|
20
|
+
describe('extractJsonStringField', () => {
|
|
21
|
+
describe('complete JSON', () => {
|
|
22
|
+
it('should extract a string field from valid JSON', () => {
|
|
23
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path": "src/index.ts", "content": "hello"}', 'path');
|
|
24
|
+
(0, chai_1.expect)(result).to.equal('src/index.ts');
|
|
25
|
+
});
|
|
26
|
+
it('should extract a different field from valid JSON', () => {
|
|
27
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"agentId": "coder", "prompt": "fix the bug"}', 'prompt');
|
|
28
|
+
(0, chai_1.expect)(result).to.equal('fix the bug');
|
|
29
|
+
});
|
|
30
|
+
it('should return undefined when field is not present in valid JSON', () => {
|
|
31
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"name": "test"}', 'path');
|
|
32
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
33
|
+
});
|
|
34
|
+
it('should return undefined when field value is not a string', () => {
|
|
35
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"count": 42}', 'count');
|
|
36
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('incomplete JSON (streaming)', () => {
|
|
40
|
+
it('should extract field from JSON missing closing brace', () => {
|
|
41
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path": "src/index.ts"', 'path');
|
|
42
|
+
(0, chai_1.expect)(result).to.equal('src/index.ts');
|
|
43
|
+
});
|
|
44
|
+
it('should extract field from JSON with missing closing quote on value', () => {
|
|
45
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path": "src/index.ts', 'path');
|
|
46
|
+
(0, chai_1.expect)(result).to.equal('src/index.ts');
|
|
47
|
+
});
|
|
48
|
+
it('should extract partial value mid-stream', () => {
|
|
49
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"command": "git st', 'command');
|
|
50
|
+
(0, chai_1.expect)(result).to.equal('git st');
|
|
51
|
+
});
|
|
52
|
+
it('should return empty string when only the key and opening quote are present', () => {
|
|
53
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path": "', 'path');
|
|
54
|
+
(0, chai_1.expect)(result).to.equal('');
|
|
55
|
+
});
|
|
56
|
+
it('should handle JSON without spaces around colon', () => {
|
|
57
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path":"src/utils.ts', 'path');
|
|
58
|
+
(0, chai_1.expect)(result).to.equal('src/utils.ts');
|
|
59
|
+
});
|
|
60
|
+
it('should extract first field when additional fields follow incomplete', () => {
|
|
61
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"path": "src/index.ts", "content": "hel', 'path');
|
|
62
|
+
(0, chai_1.expect)(result).to.equal('src/index.ts');
|
|
63
|
+
});
|
|
64
|
+
it('should extract the second field from partial JSON', () => {
|
|
65
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"agentId": "coder", "prompt": "fix the b', 'prompt');
|
|
66
|
+
(0, chai_1.expect)(result).to.equal('fix the b');
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('edge cases', () => {
|
|
70
|
+
it('should return undefined for undefined input', () => {
|
|
71
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)(undefined, 'path');
|
|
72
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
73
|
+
});
|
|
74
|
+
it('should return undefined for empty string input', () => {
|
|
75
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('', 'path');
|
|
76
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
77
|
+
});
|
|
78
|
+
it('should return undefined when field is not present in partial JSON', () => {
|
|
79
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"other": "value', 'path');
|
|
80
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
81
|
+
});
|
|
82
|
+
it('should return undefined for completely malformed input', () => {
|
|
83
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{path: value}', 'path');
|
|
84
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
85
|
+
});
|
|
86
|
+
it('should return undefined for partial key only', () => {
|
|
87
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"pat', 'path');
|
|
88
|
+
(0, chai_1.expect)(result).to.be.undefined;
|
|
89
|
+
});
|
|
90
|
+
it('should handle escaped quotes - regex stops at first unescaped quote', () => {
|
|
91
|
+
// With complete JSON, JSON.parse handles escapes correctly
|
|
92
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"cmd": "echo \\"hello\\""}', 'cmd');
|
|
93
|
+
(0, chai_1.expect)(result).to.equal('echo "hello"');
|
|
94
|
+
});
|
|
95
|
+
it('should handle escaped quotes in partial JSON - regex captures up to first quote', () => {
|
|
96
|
+
// With incomplete JSON, regex stops at the first unescaped quote character
|
|
97
|
+
const result = (0, toolcall_utils_1.extractJsonStringField)('{"cmd": "echo \\"hello', 'cmd');
|
|
98
|
+
(0, chai_1.expect)(result).to.equal('echo \\');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=toolcall-utils.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolcall-utils.spec.js","sourceRoot":"","sources":["../../src/common/toolcall-utils.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-chat-ui",
|
|
3
|
-
"version": "1.71.0-next.
|
|
3
|
+
"version": "1.71.0-next.36+d93a0bb1a",
|
|
4
4
|
"description": "Theia - AI Chat UI Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.71.0-next.
|
|
7
|
-
"@theia/ai-core": "1.71.0-next.
|
|
8
|
-
"@theia/core": "1.71.0-next.
|
|
9
|
-
"@theia/editor": "1.71.0-next.
|
|
10
|
-
"@theia/editor-preview": "1.71.0-next.
|
|
11
|
-
"@theia/filesystem": "1.71.0-next.
|
|
12
|
-
"@theia/monaco": "1.71.0-next.
|
|
6
|
+
"@theia/ai-chat": "1.71.0-next.36+d93a0bb1a",
|
|
7
|
+
"@theia/ai-core": "1.71.0-next.36+d93a0bb1a",
|
|
8
|
+
"@theia/core": "1.71.0-next.36+d93a0bb1a",
|
|
9
|
+
"@theia/editor": "1.71.0-next.36+d93a0bb1a",
|
|
10
|
+
"@theia/editor-preview": "1.71.0-next.36+d93a0bb1a",
|
|
11
|
+
"@theia/filesystem": "1.71.0-next.36+d93a0bb1a",
|
|
12
|
+
"@theia/monaco": "1.71.0-next.36+d93a0bb1a",
|
|
13
13
|
"@theia/monaco-editor-core": "1.108.201",
|
|
14
|
-
"@theia/preferences": "1.71.0-next.
|
|
15
|
-
"@theia/workspace": "1.71.0-next.
|
|
14
|
+
"@theia/preferences": "1.71.0-next.36+d93a0bb1a",
|
|
15
|
+
"@theia/workspace": "1.71.0-next.36+d93a0bb1a",
|
|
16
16
|
"date-fns": "^4.1.0",
|
|
17
17
|
"tslib": "^2.6.2",
|
|
18
18
|
"uuid": "^9.0.1"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"nyc": {
|
|
57
57
|
"extends": "../../configs/nyc.json"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "d93a0bb1abcecbe4da7d25a0250918080375bd7d"
|
|
60
60
|
}
|
|
@@ -25,6 +25,7 @@ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
|
|
|
25
25
|
import { ResponseNode } from '../chat-tree-view';
|
|
26
26
|
import { SubChatWidgetFactory } from '../chat-tree-view/sub-chat-widget';
|
|
27
27
|
import { withToolCallConfirmation } from './tool-confirmation';
|
|
28
|
+
import { extractJsonStringField } from './toolcall-utils';
|
|
28
29
|
import { CompositeTreeNode, ContextMenuRenderer } from '@theia/core/lib/browser';
|
|
29
30
|
import { ContributionProvider, DisposableCollection, nls } from '@theia/core';
|
|
30
31
|
import * as React from '@theia/core/shared/react';
|
|
@@ -75,7 +76,14 @@ export class DelegationToolRenderer implements ChatResponsePartRenderer<ToolCall
|
|
|
75
76
|
prompt = args.prompt;
|
|
76
77
|
}
|
|
77
78
|
} catch {
|
|
78
|
-
|
|
79
|
+
const partialAgentId = extractJsonStringField(response.arguments, 'agentId');
|
|
80
|
+
if (partialAgentId) {
|
|
81
|
+
agentName = this.chatAgentService.getAgent(partialAgentId)?.name ?? partialAgentId;
|
|
82
|
+
}
|
|
83
|
+
const partialPrompt = extractJsonStringField(response.arguments, 'prompt');
|
|
84
|
+
if (partialPrompt) {
|
|
85
|
+
prompt = partialPrompt;
|
|
86
|
+
}
|
|
79
87
|
}
|
|
80
88
|
}
|
|
81
89
|
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
import { MarkdownStringImpl } from '@theia/core/lib/common/markdown-rendering/markdown-string';
|
|
18
18
|
|
|
19
|
+
export { extractJsonStringField } from '../../common/toolcall-utils';
|
|
20
|
+
|
|
19
21
|
const SHORT_STRING_THRESHOLD = 50;
|
|
20
22
|
const MAX_CONDENSED_LENGTH = 80;
|
|
21
23
|
const MAX_CONDENSED_VALUE_LENGTH = 30;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { extractJsonStringField } from './toolcall-utils';
|
|
19
|
+
|
|
20
|
+
describe('extractJsonStringField', () => {
|
|
21
|
+
describe('complete JSON', () => {
|
|
22
|
+
it('should extract a string field from valid JSON', () => {
|
|
23
|
+
const result = extractJsonStringField('{"path": "src/index.ts", "content": "hello"}', 'path');
|
|
24
|
+
expect(result).to.equal('src/index.ts');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('should extract a different field from valid JSON', () => {
|
|
28
|
+
const result = extractJsonStringField('{"agentId": "coder", "prompt": "fix the bug"}', 'prompt');
|
|
29
|
+
expect(result).to.equal('fix the bug');
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('should return undefined when field is not present in valid JSON', () => {
|
|
33
|
+
const result = extractJsonStringField('{"name": "test"}', 'path');
|
|
34
|
+
expect(result).to.be.undefined;
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('should return undefined when field value is not a string', () => {
|
|
38
|
+
const result = extractJsonStringField('{"count": 42}', 'count');
|
|
39
|
+
expect(result).to.be.undefined;
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('incomplete JSON (streaming)', () => {
|
|
44
|
+
it('should extract field from JSON missing closing brace', () => {
|
|
45
|
+
const result = extractJsonStringField('{"path": "src/index.ts"', 'path');
|
|
46
|
+
expect(result).to.equal('src/index.ts');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('should extract field from JSON with missing closing quote on value', () => {
|
|
50
|
+
const result = extractJsonStringField('{"path": "src/index.ts', 'path');
|
|
51
|
+
expect(result).to.equal('src/index.ts');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('should extract partial value mid-stream', () => {
|
|
55
|
+
const result = extractJsonStringField('{"command": "git st', 'command');
|
|
56
|
+
expect(result).to.equal('git st');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('should return empty string when only the key and opening quote are present', () => {
|
|
60
|
+
const result = extractJsonStringField('{"path": "', 'path');
|
|
61
|
+
expect(result).to.equal('');
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should handle JSON without spaces around colon', () => {
|
|
65
|
+
const result = extractJsonStringField('{"path":"src/utils.ts', 'path');
|
|
66
|
+
expect(result).to.equal('src/utils.ts');
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('should extract first field when additional fields follow incomplete', () => {
|
|
70
|
+
const result = extractJsonStringField('{"path": "src/index.ts", "content": "hel', 'path');
|
|
71
|
+
expect(result).to.equal('src/index.ts');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should extract the second field from partial JSON', () => {
|
|
75
|
+
const result = extractJsonStringField('{"agentId": "coder", "prompt": "fix the b', 'prompt');
|
|
76
|
+
expect(result).to.equal('fix the b');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
describe('edge cases', () => {
|
|
81
|
+
it('should return undefined for undefined input', () => {
|
|
82
|
+
const result = extractJsonStringField(undefined, 'path');
|
|
83
|
+
expect(result).to.be.undefined;
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('should return undefined for empty string input', () => {
|
|
87
|
+
const result = extractJsonStringField('', 'path');
|
|
88
|
+
expect(result).to.be.undefined;
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('should return undefined when field is not present in partial JSON', () => {
|
|
92
|
+
const result = extractJsonStringField('{"other": "value', 'path');
|
|
93
|
+
expect(result).to.be.undefined;
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('should return undefined for completely malformed input', () => {
|
|
97
|
+
const result = extractJsonStringField('{path: value}', 'path');
|
|
98
|
+
expect(result).to.be.undefined;
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('should return undefined for partial key only', () => {
|
|
102
|
+
const result = extractJsonStringField('{"pat', 'path');
|
|
103
|
+
expect(result).to.be.undefined;
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('should handle escaped quotes - regex stops at first unescaped quote', () => {
|
|
107
|
+
// With complete JSON, JSON.parse handles escapes correctly
|
|
108
|
+
const result = extractJsonStringField('{"cmd": "echo \\"hello\\""}', 'cmd');
|
|
109
|
+
expect(result).to.equal('echo "hello"');
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('should handle escaped quotes in partial JSON - regex captures up to first quote', () => {
|
|
113
|
+
// With incomplete JSON, regex stops at the first unescaped quote character
|
|
114
|
+
const result = extractJsonStringField('{"cmd": "echo \\"hello', 'cmd');
|
|
115
|
+
expect(result).to.equal('echo \\');
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Extracts a string field value from potentially incomplete JSON.
|
|
19
|
+
* Tries JSON.parse first, then falls back to regex extraction for streaming scenarios.
|
|
20
|
+
*/
|
|
21
|
+
export function extractJsonStringField(json: string | undefined, fieldName: string): string | undefined {
|
|
22
|
+
if (!json) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(json);
|
|
27
|
+
if (parsed && typeof parsed === 'object' && fieldName in parsed && typeof parsed[fieldName] === 'string') {
|
|
28
|
+
return parsed[fieldName];
|
|
29
|
+
}
|
|
30
|
+
} catch {
|
|
31
|
+
const regex = new RegExp('"' + fieldName + '"\\s*:\\s*"([^"]*)"?');
|
|
32
|
+
const match = regex.exec(json);
|
|
33
|
+
return match?.[1];
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|