@theia/ai-codex 1.75.0-next.8 → 1.75.0
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/renderers/collapsible-tool-renderer.js +7 -10
- package/lib/browser/renderers/collapsible-tool-renderer.js.map +1 -1
- package/lib/browser/renderers/command-execution-renderer.d.ts +2 -0
- package/lib/browser/renderers/command-execution-renderer.d.ts.map +1 -1
- package/lib/browser/renderers/command-execution-renderer.js +11 -34
- package/lib/browser/renderers/command-execution-renderer.js.map +1 -1
- package/lib/browser/renderers/todo-list-renderer.d.ts +2 -0
- package/lib/browser/renderers/todo-list-renderer.d.ts.map +1 -1
- package/lib/browser/renderers/todo-list-renderer.js +20 -48
- package/lib/browser/renderers/todo-list-renderer.js.map +1 -1
- package/lib/browser/renderers/web-search-renderer.d.ts +2 -0
- package/lib/browser/renderers/web-search-renderer.d.ts.map +1 -1
- package/lib/browser/renderers/web-search-renderer.js +11 -35
- package/lib/browser/renderers/web-search-renderer.js.map +1 -1
- package/lib/common/codex-preferences.d.ts.map +1 -1
- package/lib/common/codex-preferences.js +1 -0
- package/lib/common/codex-preferences.js.map +1 -1
- package/lib/node/codex-service-impl.d.ts +2 -1
- package/lib/node/codex-service-impl.d.ts.map +1 -1
- package/lib/node/codex-service-impl.js +1 -1
- package/lib/node/codex-service-impl.js.map +1 -1
- package/package.json +12 -12
- package/src/browser/renderers/command-execution-renderer.tsx +7 -3
- package/src/browser/renderers/todo-list-renderer.tsx +7 -4
- package/src/browser/renderers/web-search-renderer.tsx +6 -3
- package/src/common/codex-preferences.ts +2 -1
- package/src/node/codex-service-impl.ts +2 -2
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CollapsibleToolRenderer = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
|
|
2
5
|
// *****************************************************************************
|
|
3
6
|
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
7
|
//
|
|
@@ -14,8 +17,6 @@
|
|
|
14
17
|
//
|
|
15
18
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
19
|
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.CollapsibleToolRenderer = void 0;
|
|
19
20
|
const browser_1 = require("@theia/core/lib/browser");
|
|
20
21
|
const React = require("@theia/core/shared/react");
|
|
21
22
|
const CollapsibleToolRenderer = ({ compactHeader, expandedContent, onHeaderClick, headerStyle, defaultExpanded = false }) => {
|
|
@@ -32,14 +33,10 @@ const CollapsibleToolRenderer = ({ compactHeader, expandedContent, onHeaderClick
|
|
|
32
33
|
}
|
|
33
34
|
onHeaderClick?.();
|
|
34
35
|
};
|
|
35
|
-
return (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} },
|
|
40
|
-
hasExpandableContent && (React.createElement("span", { className: `${(0, browser_1.codicon)(isExpanded ? 'chevron-down' : 'chevron-right')} codex-tool expand-icon` })),
|
|
41
|
-
compactHeader),
|
|
42
|
-
hasExpandableContent && isExpanded && (React.createElement("div", { className: "codex-tool expanded-content" }, expandedContent))));
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "codex-tool container", children: [(0, jsx_runtime_1.jsxs)("div", { className: `codex-tool header${hasExpandableContent ? ' expandable' : ''}`, onClick: handleHeaderClick, style: {
|
|
37
|
+
cursor: hasExpandableContent || onHeaderClick ? 'pointer' : 'default',
|
|
38
|
+
...headerStyle
|
|
39
|
+
}, children: [hasExpandableContent && ((0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)(isExpanded ? 'chevron-down' : 'chevron-right')} codex-tool expand-icon` })), compactHeader] }), hasExpandableContent && isExpanded && ((0, jsx_runtime_1.jsx)("div", { className: "codex-tool expanded-content", children: expandedContent }))] }));
|
|
43
40
|
};
|
|
44
41
|
exports.CollapsibleToolRenderer = CollapsibleToolRenderer;
|
|
45
42
|
//# sourceMappingURL=collapsible-tool-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapsible-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/collapsible-tool-renderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collapsible-tool-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/collapsible-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,qDAAkD;AAClD,kDAAkD;AAW3C,MAAM,uBAAuB,GAA2C,CAAC,EAC5E,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,GAAG,KAAK,EAC1B,EAAE,EAAE;IACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEpE,MAAM,oBAAoB,GAAG,eAAe,KAAK,SAAS,CAAC;IAE3D,MAAM,iBAAiB,GAAG,CAAC,KAAuB,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACvC,aAAa,EAAE,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QAED,IAAI,oBAAoB,EAAE,CAAC;YACvB,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,aAAa,EAAE,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CACH,iCAAK,SAAS,EAAC,sBAAsB,aACjC,iCACI,SAAS,EAAE,oBAAoB,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAC1E,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE;oBACH,MAAM,EAAE,oBAAoB,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBACrE,GAAG,WAAW;iBACjB,aAEA,oBAAoB,IAAI,CACrB,iCAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,yBAAyB,GAAI,CAC1G,EACA,aAAa,IACZ,EACL,oBAAoB,IAAI,UAAU,IAAI,CACnC,gCAAK,SAAS,EAAC,6BAA6B,YACvC,eAAe,GACd,CACT,IACC,CACT,CAAC;AACN,CAAC,CAAC;AA9CW,QAAA,uBAAuB,2BA8ClC"}
|
|
@@ -2,7 +2,9 @@ import { ChatResponseContent } from '@theia/ai-chat';
|
|
|
2
2
|
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
3
3
|
import { ReactNode } from '@theia/core/shared/react';
|
|
4
4
|
import { CodexToolCallChatResponseContent } from '../codex-tool-call-content';
|
|
5
|
+
import { ILogger } from '@theia/core';
|
|
5
6
|
export declare class CommandExecutionRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
7
|
+
protected readonly logger: ILogger;
|
|
6
8
|
canHandle(response: ChatResponseContent): number;
|
|
7
9
|
render(content: CodexToolCallChatResponseContent): ReactNode;
|
|
8
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-execution-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/command-execution-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AAIrG,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"command-execution-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/command-execution-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AAIrG,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAO,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,qBACa,wBAAyB,YAAW,wBAAwB,CAAC,gCAAgC,CAAC;IAGvG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,SAAS;CAqB/D"}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2025 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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.CommandExecutionRenderer = void 0;
|
|
19
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
|
|
20
6
|
const browser_1 = require("@theia/core/lib/browser");
|
|
21
7
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
8
|
const React = require("@theia/core/shared/react");
|
|
@@ -37,40 +23,31 @@ let CommandExecutionRenderer = class CommandExecutionRenderer {
|
|
|
37
23
|
: content.result;
|
|
38
24
|
}
|
|
39
25
|
catch (error) {
|
|
40
|
-
|
|
26
|
+
this.logger.error('Failed to parse command execution result:', error);
|
|
41
27
|
return undefined;
|
|
42
28
|
}
|
|
43
29
|
}
|
|
44
30
|
if (!item) {
|
|
45
31
|
const args = content.arguments ? JSON.parse(content.arguments) : {};
|
|
46
|
-
return
|
|
32
|
+
return (0, jsx_runtime_1.jsx)(CommandExecutionInProgressComponent, { command: args.command || core_1.nls.localizeByDefault('Executing') });
|
|
47
33
|
}
|
|
48
|
-
return
|
|
34
|
+
return (0, jsx_runtime_1.jsx)(CommandExecutionComponent, { item: item });
|
|
49
35
|
}
|
|
50
36
|
};
|
|
51
37
|
exports.CommandExecutionRenderer = CommandExecutionRenderer;
|
|
38
|
+
tslib_1.__decorate([
|
|
39
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
40
|
+
(0, inversify_1.named)('ai-codex:CommandExecutionRenderer'),
|
|
41
|
+
tslib_1.__metadata("design:type", Object)
|
|
42
|
+
], CommandExecutionRenderer.prototype, "logger", void 0);
|
|
52
43
|
exports.CommandExecutionRenderer = CommandExecutionRenderer = tslib_1.__decorate([
|
|
53
44
|
(0, inversify_1.injectable)()
|
|
54
45
|
], CommandExecutionRenderer);
|
|
55
|
-
const CommandExecutionInProgressComponent = ({ command }) => (
|
|
56
|
-
React.createElement("div", { className: "codex-tool-header" },
|
|
57
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('loading')} codex-tool-icon codex-loading` }),
|
|
58
|
-
React.createElement("span", { className: "codex-tool-name" }, core_1.nls.localizeByDefault('Terminal')),
|
|
59
|
-
React.createElement("code", { className: "codex-command-line" }, command),
|
|
60
|
-
React.createElement("span", { className: "codex-exit-code in-progress" },
|
|
61
|
-
core_1.nls.localizeByDefault('Running'),
|
|
62
|
-
"..."))));
|
|
46
|
+
const CommandExecutionInProgressComponent = ({ command }) => ((0, jsx_runtime_1.jsx)("div", { className: "codex-command-execution", children: (0, jsx_runtime_1.jsxs)("div", { className: "codex-tool-header", children: [(0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('loading')} codex-tool-icon codex-loading` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool-name", children: core_1.nls.localizeByDefault('Terminal') }), (0, jsx_runtime_1.jsx)("code", { className: "codex-command-line", children: command }), (0, jsx_runtime_1.jsxs)("span", { className: "codex-exit-code in-progress", children: [core_1.nls.localizeByDefault('Running'), "..."] })] }) }));
|
|
63
47
|
const CommandExecutionComponent = ({ item }) => {
|
|
64
48
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
65
49
|
const success = item.exit_code === 0;
|
|
66
50
|
const hasOutput = item.aggregated_output && item.aggregated_output.trim().length > 0;
|
|
67
|
-
return (
|
|
68
|
-
React.createElement("div", { className: `codex-tool-header${hasOutput ? ' expandable' : ''}`, onClick: () => hasOutput && setIsExpanded(!isExpanded), style: { cursor: hasOutput ? 'pointer' : 'default' } },
|
|
69
|
-
hasOutput && (React.createElement("span", { className: `${(0, browser_1.codicon)(isExpanded ? 'chevron-down' : 'chevron-right')} codex-expand-icon` })),
|
|
70
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('terminal')} codex-tool-icon` }),
|
|
71
|
-
React.createElement("span", { className: "codex-tool-name" }, core_1.nls.localizeByDefault('Terminal')),
|
|
72
|
-
React.createElement("code", { className: "codex-command-line" }, item.command),
|
|
73
|
-
React.createElement("span", { className: `codex-exit-code ${success ? 'success' : 'error'}` }, core_1.nls.localize('theia/ai/codex/exitCode', 'Exit code: {0}', item.exit_code))),
|
|
74
|
-
hasOutput && isExpanded && (React.createElement("pre", { className: "codex-command-output" }, item.aggregated_output))));
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "codex-command-execution", children: [(0, jsx_runtime_1.jsxs)("div", { className: `codex-tool-header${hasOutput ? ' expandable' : ''}`, onClick: () => hasOutput && setIsExpanded(!isExpanded), style: { cursor: hasOutput ? 'pointer' : 'default' }, children: [hasOutput && ((0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)(isExpanded ? 'chevron-down' : 'chevron-right')} codex-expand-icon` })), (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('terminal')} codex-tool-icon` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool-name", children: core_1.nls.localizeByDefault('Terminal') }), (0, jsx_runtime_1.jsx)("code", { className: "codex-command-line", children: item.command }), (0, jsx_runtime_1.jsx)("span", { className: `codex-exit-code ${success ? 'success' : 'error'}`, children: core_1.nls.localize('theia/ai/codex/exitCode', 'Exit code: {0}', item.exit_code) })] }), hasOutput && isExpanded && ((0, jsx_runtime_1.jsx)("pre", { className: "codex-command-output", children: item.aggregated_output }))] }));
|
|
75
52
|
};
|
|
76
53
|
//# sourceMappingURL=command-execution-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-execution-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/command-execution-renderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-execution-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/command-execution-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
2
2
|
import { ResponseNode } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
3
3
|
import { ChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
4
|
+
import { ILogger } from '@theia/core';
|
|
4
5
|
import { ReactNode } from '@theia/core/shared/react';
|
|
5
6
|
import { CodexToolCallChatResponseContent } from '../codex-tool-call-content';
|
|
6
7
|
export declare class TodoListRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
8
|
+
protected readonly logger: ILogger;
|
|
7
9
|
canHandle(response: ChatResponseContent): number;
|
|
8
10
|
render(content: CodexToolCallChatResponseContent, parentNode: ResponseNode): ReactNode;
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-list-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/todo-list-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"todo-list-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/todo-list-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAO,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAG9E,qBACa,gBAAiB,YAAW,wBAAwB,CAAC,gCAAgC,CAAC;IAG/F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,OAAO,EAAE,gCAAgC,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;CAkCzF"}
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2025 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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.TodoListRenderer = void 0;
|
|
19
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
|
|
20
6
|
const browser_1 = require("@theia/core/lib/browser");
|
|
21
7
|
const core_1 = require("@theia/core");
|
|
22
8
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
-
const React = require("@theia/core/shared/react");
|
|
24
9
|
const collapsible_tool_renderer_1 = require("./collapsible-tool-renderer");
|
|
25
10
|
let TodoListRenderer = class TodoListRenderer {
|
|
26
11
|
canHandle(response) {
|
|
@@ -38,7 +23,7 @@ let TodoListRenderer = class TodoListRenderer {
|
|
|
38
23
|
: content.result;
|
|
39
24
|
}
|
|
40
25
|
catch (error) {
|
|
41
|
-
|
|
26
|
+
this.logger.error('Failed to parse todo_list result:', error);
|
|
42
27
|
}
|
|
43
28
|
}
|
|
44
29
|
if (!item && content.arguments) {
|
|
@@ -53,16 +38,21 @@ let TodoListRenderer = class TodoListRenderer {
|
|
|
53
38
|
}
|
|
54
39
|
}
|
|
55
40
|
catch (error) {
|
|
56
|
-
|
|
41
|
+
this.logger.error('Failed to parse todo_list arguments:', error);
|
|
57
42
|
}
|
|
58
43
|
}
|
|
59
44
|
if (!item) {
|
|
60
45
|
return undefined;
|
|
61
46
|
}
|
|
62
|
-
return
|
|
47
|
+
return (0, jsx_runtime_1.jsx)(TodoListComponent, { item: item });
|
|
63
48
|
}
|
|
64
49
|
};
|
|
65
50
|
exports.TodoListRenderer = TodoListRenderer;
|
|
51
|
+
tslib_1.__decorate([
|
|
52
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
53
|
+
(0, inversify_1.named)('ai-codex:TodoListRenderer'),
|
|
54
|
+
tslib_1.__metadata("design:type", Object)
|
|
55
|
+
], TodoListRenderer.prototype, "logger", void 0);
|
|
66
56
|
exports.TodoListRenderer = TodoListRenderer = tslib_1.__decorate([
|
|
67
57
|
(0, inversify_1.injectable)()
|
|
68
58
|
], TodoListRenderer);
|
|
@@ -72,35 +62,17 @@ const TodoListComponent = ({ item }) => {
|
|
|
72
62
|
const totalCount = items.length;
|
|
73
63
|
if (totalCount === 0) {
|
|
74
64
|
// Show empty state
|
|
75
|
-
return (
|
|
76
|
-
React.createElement("div", { className: "codex-tool header" },
|
|
77
|
-
React.createElement("div", { className: "codex-tool header-left" },
|
|
78
|
-
React.createElement("span", { className: "codex-tool title" }, core_1.nls.localize('theia/ai/codex/todoList', 'Todo List')),
|
|
79
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('checklist')} codex-tool icon` }),
|
|
80
|
-
React.createElement("span", { className: "codex-tool progress-text" }, core_1.nls.localizeByDefault('Loading...'))),
|
|
81
|
-
React.createElement("div", { className: "codex-tool header-right" },
|
|
82
|
-
React.createElement("span", { className: "codex-tool badge" }, core_1.nls.localize('theia/ai/codex/noItems', 'No items'))))));
|
|
65
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "codex-tool container", children: (0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header-left", children: [(0, jsx_runtime_1.jsx)("span", { className: "codex-tool title", children: core_1.nls.localize('theia/ai/codex/todoList', 'Todo List') }), (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('checklist')} codex-tool icon` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool progress-text", children: core_1.nls.localizeByDefault('Loading...') })] }), (0, jsx_runtime_1.jsx)("div", { className: "codex-tool header-right", children: (0, jsx_runtime_1.jsx)("span", { className: "codex-tool badge", children: core_1.nls.localize('theia/ai/codex/noItems', 'No items') }) })] }) }));
|
|
83
66
|
}
|
|
84
|
-
const compactHeader = (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
?
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
React.createElement("div", { className: "codex-tool todo-list-items" }, items.map((todo, index) => {
|
|
95
|
-
const statusIcon = todo.completed
|
|
96
|
-
? React.createElement("span", { className: `${(0, browser_1.codicon)('check')} codex-tool todo-status-icon completed` })
|
|
97
|
-
: React.createElement("span", { className: `${(0, browser_1.codicon)('circle-outline')} codex-tool todo-status-icon pending` });
|
|
98
|
-
return (React.createElement("div", { key: index, className: `codex-tool todo-item ${todo.completed ? 'status-completed' : 'status-pending'}` },
|
|
99
|
-
React.createElement("div", { className: "codex-tool todo-item-main" },
|
|
100
|
-
React.createElement("div", { className: "codex-tool todo-item-status" }, statusIcon),
|
|
101
|
-
React.createElement("div", { className: "codex-tool todo-item-content" },
|
|
102
|
-
React.createElement("span", { className: "codex-tool todo-item-text" }, todo.text)))));
|
|
103
|
-
}))));
|
|
104
|
-
return (React.createElement(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent, defaultExpanded: true }));
|
|
67
|
+
const compactHeader = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header-left", children: [(0, jsx_runtime_1.jsx)("span", { className: "codex-tool title", children: core_1.nls.localize('theia/ai/codex/todoList', 'Todo List') }), (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('checklist')} codex-tool icon` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool progress-text", children: core_1.nls.localize('theia/ai/codex/completedCount', '{0}/{1} completed', completedCount, totalCount) })] }), (0, jsx_runtime_1.jsx)("div", { className: "codex-tool header-right", children: (0, jsx_runtime_1.jsx)("span", { className: "codex-tool badge", children: totalCount === 1
|
|
68
|
+
? core_1.nls.localize('theia/ai/codex/oneItem', '1 item')
|
|
69
|
+
: core_1.nls.localize('theia/ai/codex/itemCount', '{0} items', totalCount) }) })] }));
|
|
70
|
+
const expandedContent = ((0, jsx_runtime_1.jsx)("div", { className: "codex-tool details", children: (0, jsx_runtime_1.jsx)("div", { className: "codex-tool todo-list-items", children: items.map((todo, index) => {
|
|
71
|
+
const statusIcon = todo.completed
|
|
72
|
+
? (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('check')} codex-tool todo-status-icon completed` })
|
|
73
|
+
: (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('circle-outline')} codex-tool todo-status-icon pending` });
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: `codex-tool todo-item ${todo.completed ? 'status-completed' : 'status-pending'}`, children: (0, jsx_runtime_1.jsxs)("div", { className: "codex-tool todo-item-main", children: [(0, jsx_runtime_1.jsx)("div", { className: "codex-tool todo-item-status", children: statusIcon }), (0, jsx_runtime_1.jsx)("div", { className: "codex-tool todo-item-content", children: (0, jsx_runtime_1.jsx)("span", { className: "codex-tool todo-item-text", children: todo.text }) })] }) }, index));
|
|
75
|
+
}) }) }));
|
|
76
|
+
return ((0, jsx_runtime_1.jsx)(collapsible_tool_renderer_1.CollapsibleToolRenderer, { compactHeader: compactHeader, expandedContent: expandedContent, defaultExpanded: true }));
|
|
105
77
|
};
|
|
106
78
|
//# sourceMappingURL=todo-list-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-list-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/todo-list-renderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"todo-list-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/todo-list-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
2
2
|
import { ChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
3
|
+
import { ILogger } from '@theia/core';
|
|
3
4
|
import { ReactNode } from '@theia/core/shared/react';
|
|
4
5
|
import { CodexToolCallChatResponseContent } from '../codex-tool-call-content';
|
|
5
6
|
export declare class WebSearchRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
7
|
+
protected readonly logger: ILogger;
|
|
6
8
|
canHandle(response: ChatResponseContent): number;
|
|
7
9
|
render(content: CodexToolCallChatResponseContent): ReactNode;
|
|
8
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/web-search-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"web-search-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/renderers/web-search-renderer.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAO,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAE9E,qBACa,iBAAkB,YAAW,wBAAwB,CAAC,gCAAgC,CAAC;IAGhG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,SAAS;CAqB/D"}
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2025 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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.WebSearchRenderer = void 0;
|
|
19
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("@theia/core/shared/react/jsx-runtime");
|
|
20
6
|
const browser_1 = require("@theia/core/lib/browser");
|
|
21
7
|
const core_1 = require("@theia/core");
|
|
22
8
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
-
const React = require("@theia/core/shared/react");
|
|
24
9
|
let WebSearchRenderer = class WebSearchRenderer {
|
|
25
10
|
canHandle(response) {
|
|
26
11
|
return response.kind === 'toolCall' &&
|
|
@@ -37,35 +22,26 @@ let WebSearchRenderer = class WebSearchRenderer {
|
|
|
37
22
|
: content.result;
|
|
38
23
|
}
|
|
39
24
|
catch (error) {
|
|
40
|
-
|
|
25
|
+
this.logger.error('Failed to parse web_search result:', error);
|
|
41
26
|
return undefined;
|
|
42
27
|
}
|
|
43
28
|
}
|
|
44
29
|
if (!item) {
|
|
45
30
|
const args = content.arguments ? JSON.parse(content.arguments) : {};
|
|
46
|
-
return
|
|
31
|
+
return (0, jsx_runtime_1.jsx)(WebSearchInProgressComponent, { query: args.query || '' });
|
|
47
32
|
}
|
|
48
|
-
return
|
|
33
|
+
return (0, jsx_runtime_1.jsx)(WebSearchCompletedComponent, { item: item });
|
|
49
34
|
}
|
|
50
35
|
};
|
|
51
36
|
exports.WebSearchRenderer = WebSearchRenderer;
|
|
37
|
+
tslib_1.__decorate([
|
|
38
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
39
|
+
(0, inversify_1.named)('ai-codex:WebSearchRenderer'),
|
|
40
|
+
tslib_1.__metadata("design:type", Object)
|
|
41
|
+
], WebSearchRenderer.prototype, "logger", void 0);
|
|
52
42
|
exports.WebSearchRenderer = WebSearchRenderer = tslib_1.__decorate([
|
|
53
43
|
(0, inversify_1.injectable)()
|
|
54
44
|
], WebSearchRenderer);
|
|
55
|
-
const WebSearchInProgressComponent = ({ query }) => (
|
|
56
|
-
|
|
57
|
-
React.createElement("div", { className: "codex-tool header-left" },
|
|
58
|
-
React.createElement("span", { className: "codex-tool title" }, core_1.nls.localize('theia/ai/codex/searching', 'Searching')),
|
|
59
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('loading')} codex-tool icon theia-animation-spin` }),
|
|
60
|
-
React.createElement("span", { className: "codex-tool command" }, query)),
|
|
61
|
-
React.createElement("div", { className: "codex-tool header-right" },
|
|
62
|
-
React.createElement("span", { className: "codex-tool badge" }, core_1.nls.localizeByDefault('Web Search'))))));
|
|
63
|
-
const WebSearchCompletedComponent = ({ item }) => (React.createElement("div", { className: "codex-tool container" },
|
|
64
|
-
React.createElement("div", { className: "codex-tool header" },
|
|
65
|
-
React.createElement("div", { className: "codex-tool header-left" },
|
|
66
|
-
React.createElement("span", { className: "codex-tool title" }, core_1.nls.localize('theia/ai/codex/searched', 'Searched')),
|
|
67
|
-
React.createElement("span", { className: `${(0, browser_1.codicon)('globe')} codex-tool icon` }),
|
|
68
|
-
React.createElement("span", { className: "codex-tool command" }, item.query)),
|
|
69
|
-
React.createElement("div", { className: "codex-tool header-right" },
|
|
70
|
-
React.createElement("span", { className: "codex-tool badge" }, core_1.nls.localizeByDefault('Web Search'))))));
|
|
45
|
+
const WebSearchInProgressComponent = ({ query }) => ((0, jsx_runtime_1.jsx)("div", { className: "codex-tool container", children: (0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header-left", children: [(0, jsx_runtime_1.jsx)("span", { className: "codex-tool title", children: core_1.nls.localize('theia/ai/codex/searching', 'Searching') }), (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('loading')} codex-tool icon theia-animation-spin` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool command", children: query })] }), (0, jsx_runtime_1.jsx)("div", { className: "codex-tool header-right", children: (0, jsx_runtime_1.jsx)("span", { className: "codex-tool badge", children: core_1.nls.localizeByDefault('Web Search') }) })] }) }));
|
|
46
|
+
const WebSearchCompletedComponent = ({ item }) => ((0, jsx_runtime_1.jsx)("div", { className: "codex-tool container", children: (0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "codex-tool header-left", children: [(0, jsx_runtime_1.jsx)("span", { className: "codex-tool title", children: core_1.nls.localize('theia/ai/codex/searched', 'Searched') }), (0, jsx_runtime_1.jsx)("span", { className: `${(0, browser_1.codicon)('globe')} codex-tool icon` }), (0, jsx_runtime_1.jsx)("span", { className: "codex-tool command", children: item.query })] }), (0, jsx_runtime_1.jsx)("div", { className: "codex-tool header-right", children: (0, jsx_runtime_1.jsx)("span", { className: "codex-tool badge", children: core_1.nls.localizeByDefault('Web Search') }) })] }) }));
|
|
71
47
|
//# sourceMappingURL=web-search-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-search-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/web-search-renderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-search-renderer.js","sourceRoot":"","sources":["../../../src/browser/renderers/web-search-renderer.tsx"],"names":[],"mappings":";;;;;AAkBA,qDAAkD;AAClD,sCAA2C;AAC3C,4DAAyE;AAOlE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAK1B,SAAS,CAAC,QAA6B;QACnC,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU;YAC9B,QAA6C,CAAC,IAAI,KAAK,YAAY;YACpE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,OAAyC;QAC5C,IAAI,IAA+B,CAAC;QAEpC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBACD,IAAI,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;oBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC5B,CAAC,CAAC,OAAO,CAAC,MAAuB,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;gBAC/D,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,uBAAC,4BAA4B,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,GAAI,CAAC;QACrE,CAAC;QAED,OAAO,uBAAC,2BAA2B,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;IACvD,CAAC;CACJ,CAAA;AAjCY,8CAAiB;AAGP;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,4BAA4B,CAAC;;iDAClB;4BAH1B,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAiC7B;AAED,MAAM,4BAA4B,GAAgC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC7E,gCAAK,SAAS,EAAC,sBAAsB,YACjC,iCAAK,SAAS,EAAC,mBAAmB,aAC9B,iCAAK,SAAS,EAAC,wBAAwB,aACnC,iCAAM,SAAS,EAAC,kBAAkB,YAAE,UAAG,CAAC,QAAQ,CAAC,0BAA0B,EAAE,WAAW,CAAC,GAAQ,EACjG,iCAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,uCAAuC,GAAI,EACjF,iCAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAQ,IACjD,EACN,gCAAK,SAAS,EAAC,yBAAyB,YACpC,iCAAM,SAAS,EAAC,kBAAkB,YAAE,UAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAQ,GAC7E,IACJ,GACJ,CACT,CAAC;AAEF,MAAM,2BAA2B,GAAsC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACjF,gCAAK,SAAS,EAAC,sBAAsB,YACjC,iCAAK,SAAS,EAAC,mBAAmB,aAC9B,iCAAK,SAAS,EAAC,wBAAwB,aACnC,iCAAM,SAAS,EAAC,kBAAkB,YAAE,UAAG,CAAC,QAAQ,CAAC,yBAAyB,EAAE,UAAU,CAAC,GAAQ,EAC/F,iCAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,OAAO,CAAC,kBAAkB,GAAI,EAC1D,iCAAM,SAAS,EAAC,oBAAoB,YAAE,IAAI,CAAC,KAAK,GAAQ,IACtD,EACN,gCAAK,SAAS,EAAC,yBAAyB,YACpC,iCAAM,SAAS,EAAC,kBAAkB,YAAE,UAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAQ,GAC7E,IACJ,GACJ,CACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-preferences.d.ts","sourceRoot":"","sources":["../../src/common/codex-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"codex-preferences.d.ts","sourceRoot":"","sources":["../../src/common/codex-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,EAAE,gBAWpC,CAAC"}
|
|
@@ -23,6 +23,7 @@ exports.CodexPreferencesSchema = {
|
|
|
23
23
|
properties: {
|
|
24
24
|
[exports.CODEX_API_KEY_PREF]: {
|
|
25
25
|
type: 'string',
|
|
26
|
+
typeDetails: { [ai_core_preferences_1.MODEL_PROVIDER_TYPE_DETAIL]: { label: 'Codex' } },
|
|
26
27
|
markdownDescription: core_1.nls.localize('theia/ai/codex/apiKey/description', 'OpenAI API key for Codex. If not set, falls back to the shared OpenAI API key (`ai-features.openAiOfficial.openAiApiKey`). ' +
|
|
27
28
|
'Can also be set via `OPENAI_API_KEY` environment variable.'),
|
|
28
29
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-preferences.js","sourceRoot":"","sources":["../../src/common/codex-preferences.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;;;AAEhF,
|
|
1
|
+
{"version":3,"file":"codex-preferences.js","sourceRoot":"","sources":["../../src/common/codex-preferences.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;;;AAEhF,uFAA+I;AAC/I,sCAAoD;AAEvC,QAAA,kBAAkB,GAAG,0BAA0B,CAAC;AAEhD,QAAA,sBAAsB,GAAqB;IACpD,UAAU,EAAE;QACR,CAAC,0BAAkB,CAAC,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE,CAAC,gDAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAoC,EAAE;YACnG,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,mCAAmC,EACjE,6HAA6H;gBAC7H,4DAA4D,CAAC;YACjE,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ILogger } from '@theia/core';
|
|
1
2
|
import { CodexBackendRequest, CodexClient, CodexService } from '../common/codex-service';
|
|
2
3
|
export declare class CodexServiceImpl implements CodexService {
|
|
3
|
-
|
|
4
|
+
protected readonly logger: ILogger;
|
|
4
5
|
private client;
|
|
5
6
|
private sessionThreads;
|
|
6
7
|
private abortControllers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/codex-service-impl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/codex-service-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EACH,mBAAmB,EACnB,WAAW,EACX,YAAY,EACf,MAAM,yBAAyB,CAAC;AAEjC,qBACa,gBAAiB,YAAW,YAAY;IAGjD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,gBAAgB,CAAsC;IAE9D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAI9B,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAOzD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C3F,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ9B,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG5C"}
|
|
@@ -88,7 +88,7 @@ let CodexServiceImpl = class CodexServiceImpl {
|
|
|
88
88
|
exports.CodexServiceImpl = CodexServiceImpl;
|
|
89
89
|
tslib_1.__decorate([
|
|
90
90
|
(0, inversify_1.inject)(core_1.ILogger),
|
|
91
|
-
(0, inversify_1.named)('
|
|
91
|
+
(0, inversify_1.named)('ai-codex:CodexServiceImpl'),
|
|
92
92
|
tslib_1.__metadata("design:type", Object)
|
|
93
93
|
], CodexServiceImpl.prototype, "logger", void 0);
|
|
94
94
|
exports.CodexServiceImpl = CodexServiceImpl = tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-service-impl.js","sourceRoot":"","sources":["../../src/node/codex-service-impl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codex-service-impl.js","sourceRoot":"","sources":["../../src/node/codex-service-impl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-codex",
|
|
3
|
-
"version": "1.75.0
|
|
3
|
+
"version": "1.75.0",
|
|
4
4
|
"description": "Theia - OpenAI Codex Integration",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@openai/codex-sdk": "^0.49.0",
|
|
7
|
-
"@theia/ai-chat": "1.75.0
|
|
8
|
-
"@theia/ai-chat-ui": "1.75.0
|
|
9
|
-
"@theia/ai-core": "1.75.0
|
|
10
|
-
"@theia/ai-openai": "1.75.0
|
|
11
|
-
"@theia/core": "1.75.0
|
|
12
|
-
"@theia/editor": "1.75.0
|
|
13
|
-
"@theia/filesystem": "1.75.0
|
|
7
|
+
"@theia/ai-chat": "1.75.0",
|
|
8
|
+
"@theia/ai-chat-ui": "1.75.0",
|
|
9
|
+
"@theia/ai-core": "1.75.0",
|
|
10
|
+
"@theia/ai-openai": "1.75.0",
|
|
11
|
+
"@theia/core": "1.75.0",
|
|
12
|
+
"@theia/editor": "1.75.0",
|
|
13
|
+
"@theia/filesystem": "1.75.0",
|
|
14
14
|
"@theia/monaco-editor-core": "1.108.201",
|
|
15
|
-
"@theia/output": "1.75.0
|
|
16
|
-
"@theia/workspace": "1.75.0
|
|
15
|
+
"@theia/output": "1.75.0",
|
|
16
|
+
"@theia/workspace": "1.75.0",
|
|
17
17
|
"tslib": "^2.8.1"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"watch": "theiaext watch"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@theia/ext-scripts": "1.
|
|
53
|
+
"@theia/ext-scripts": "1.75.0"
|
|
54
54
|
},
|
|
55
55
|
"nyc": {
|
|
56
56
|
"extends": "../../configs/nyc.json"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "6d8e911f05f0fd9a13d76797e79b21ee3f038bc2"
|
|
59
59
|
}
|
|
@@ -17,15 +17,19 @@
|
|
|
17
17
|
import { ChatResponseContent } from '@theia/ai-chat';
|
|
18
18
|
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
19
19
|
import { codicon } from '@theia/core/lib/browser';
|
|
20
|
-
import { injectable } from '@theia/core/shared/inversify';
|
|
20
|
+
import { injectable, inject, named } from '@theia/core/shared/inversify';
|
|
21
21
|
import * as React from '@theia/core/shared/react';
|
|
22
22
|
import { ReactNode } from '@theia/core/shared/react';
|
|
23
23
|
import type { CommandExecutionItem } from '@openai/codex-sdk';
|
|
24
24
|
import { CodexToolCallChatResponseContent } from '../codex-tool-call-content';
|
|
25
|
-
import { nls } from '@theia/core';
|
|
25
|
+
import { nls, ILogger } from '@theia/core';
|
|
26
26
|
|
|
27
27
|
@injectable()
|
|
28
28
|
export class CommandExecutionRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
29
|
+
|
|
30
|
+
@inject(ILogger) @named('ai-codex:CommandExecutionRenderer')
|
|
31
|
+
protected readonly logger: ILogger;
|
|
32
|
+
|
|
29
33
|
canHandle(response: ChatResponseContent): number {
|
|
30
34
|
return response.kind === 'toolCall' &&
|
|
31
35
|
(response as CodexToolCallChatResponseContent).name === 'command_execution'
|
|
@@ -42,7 +46,7 @@ export class CommandExecutionRenderer implements ChatResponsePartRenderer<CodexT
|
|
|
42
46
|
? JSON.parse(content.result)
|
|
43
47
|
: content.result as CommandExecutionItem;
|
|
44
48
|
} catch (error) {
|
|
45
|
-
|
|
49
|
+
this.logger.error('Failed to parse command execution result:', error);
|
|
46
50
|
return undefined;
|
|
47
51
|
}
|
|
48
52
|
}
|
|
@@ -18,8 +18,8 @@ import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-res
|
|
|
18
18
|
import { ResponseNode } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
19
19
|
import { ChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
20
20
|
import { codicon } from '@theia/core/lib/browser';
|
|
21
|
-
import { nls } from '@theia/core';
|
|
22
|
-
import { injectable } from '@theia/core/shared/inversify';
|
|
21
|
+
import { nls, ILogger } from '@theia/core';
|
|
22
|
+
import { injectable, inject, named } from '@theia/core/shared/inversify';
|
|
23
23
|
import * as React from '@theia/core/shared/react';
|
|
24
24
|
import { ReactNode } from '@theia/core/shared/react';
|
|
25
25
|
import type { TodoListItem } from '@openai/codex-sdk';
|
|
@@ -29,6 +29,9 @@ import { CollapsibleToolRenderer } from './collapsible-tool-renderer';
|
|
|
29
29
|
@injectable()
|
|
30
30
|
export class TodoListRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
31
31
|
|
|
32
|
+
@inject(ILogger) @named('ai-codex:TodoListRenderer')
|
|
33
|
+
protected readonly logger: ILogger;
|
|
34
|
+
|
|
32
35
|
canHandle(response: ChatResponseContent): number {
|
|
33
36
|
return response.kind === 'toolCall' &&
|
|
34
37
|
(response as CodexToolCallChatResponseContent).name === 'todo_list'
|
|
@@ -45,7 +48,7 @@ export class TodoListRenderer implements ChatResponsePartRenderer<CodexToolCallC
|
|
|
45
48
|
? JSON.parse(content.result)
|
|
46
49
|
: content.result as TodoListItem;
|
|
47
50
|
} catch (error) {
|
|
48
|
-
|
|
51
|
+
this.logger.error('Failed to parse todo_list result:', error);
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
|
|
@@ -60,7 +63,7 @@ export class TodoListRenderer implements ChatResponsePartRenderer<CodexToolCallC
|
|
|
60
63
|
};
|
|
61
64
|
}
|
|
62
65
|
} catch (error) {
|
|
63
|
-
|
|
66
|
+
this.logger.error('Failed to parse todo_list arguments:', error);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
import { ChatResponsePartRenderer } from '@theia/ai-chat-ui/lib/browser/chat-response-part-renderer';
|
|
18
18
|
import { ChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
19
19
|
import { codicon } from '@theia/core/lib/browser';
|
|
20
|
-
import { nls } from '@theia/core';
|
|
21
|
-
import { injectable } from '@theia/core/shared/inversify';
|
|
20
|
+
import { nls, ILogger } from '@theia/core';
|
|
21
|
+
import { injectable, inject, named } from '@theia/core/shared/inversify';
|
|
22
22
|
import * as React from '@theia/core/shared/react';
|
|
23
23
|
import { ReactNode } from '@theia/core/shared/react';
|
|
24
24
|
import type { WebSearchItem } from '@openai/codex-sdk';
|
|
@@ -27,6 +27,9 @@ import { CodexToolCallChatResponseContent } from '../codex-tool-call-content';
|
|
|
27
27
|
@injectable()
|
|
28
28
|
export class WebSearchRenderer implements ChatResponsePartRenderer<CodexToolCallChatResponseContent> {
|
|
29
29
|
|
|
30
|
+
@inject(ILogger) @named('ai-codex:WebSearchRenderer')
|
|
31
|
+
protected readonly logger: ILogger;
|
|
32
|
+
|
|
30
33
|
canHandle(response: ChatResponseContent): number {
|
|
31
34
|
return response.kind === 'toolCall' &&
|
|
32
35
|
(response as CodexToolCallChatResponseContent).name === 'web_search'
|
|
@@ -43,7 +46,7 @@ export class WebSearchRenderer implements ChatResponsePartRenderer<CodexToolCall
|
|
|
43
46
|
? JSON.parse(content.result)
|
|
44
47
|
: content.result as WebSearchItem;
|
|
45
48
|
} catch (error) {
|
|
46
|
-
|
|
49
|
+
this.logger.error('Failed to parse web_search result:', error);
|
|
47
50
|
return undefined;
|
|
48
51
|
}
|
|
49
52
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { AI_CORE_PREFERENCES_TITLE } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
17
|
+
import { AI_CORE_PREFERENCES_TITLE, MODEL_PROVIDER_TYPE_DETAIL, ModelProviderTypeDetail } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
18
18
|
import { nls, PreferenceSchema } from '@theia/core';
|
|
19
19
|
|
|
20
20
|
export const CODEX_API_KEY_PREF = 'ai-features.codex.apiKey';
|
|
@@ -23,6 +23,7 @@ export const CodexPreferencesSchema: PreferenceSchema = {
|
|
|
23
23
|
properties: {
|
|
24
24
|
[CODEX_API_KEY_PREF]: {
|
|
25
25
|
type: 'string',
|
|
26
|
+
typeDetails: { [MODEL_PROVIDER_TYPE_DETAIL]: { label: 'Codex' } satisfies ModelProviderTypeDetail },
|
|
26
27
|
markdownDescription: nls.localize('theia/ai/codex/apiKey/description',
|
|
27
28
|
'OpenAI API key for Codex. If not set, falls back to the shared OpenAI API key (`ai-features.openAiOfficial.openAiApiKey`). ' +
|
|
28
29
|
'Can also be set via `OPENAI_API_KEY` environment variable.'),
|
|
@@ -26,8 +26,8 @@ import {
|
|
|
26
26
|
@injectable()
|
|
27
27
|
export class CodexServiceImpl implements CodexService {
|
|
28
28
|
|
|
29
|
-
@inject(ILogger) @named('
|
|
30
|
-
|
|
29
|
+
@inject(ILogger) @named('ai-codex:CodexServiceImpl')
|
|
30
|
+
protected readonly logger: ILogger;
|
|
31
31
|
|
|
32
32
|
private client: CodexClient;
|
|
33
33
|
private sessionThreads = new Map<string, Thread>();
|