@theia/ai-editor 1.69.0-next.81 → 1.69.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/ai-editor-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-editor-frontend-module.js +2 -1
- package/lib/browser/ai-editor-frontend-module.js.map +1 -1
- package/lib/browser/ask-ai-input-widget.d.ts +7 -1
- package/lib/browser/ask-ai-input-widget.d.ts.map +1 -1
- package/lib/browser/ask-ai-input-widget.js +43 -4
- package/lib/browser/ask-ai-input-widget.js.map +1 -1
- package/package.json +11 -11
- package/src/browser/ai-editor-frontend-module.ts +2 -1
- package/src/browser/ask-ai-input-widget.ts +46 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-editor-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-editor-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,8BAA8B,CAAC;;AAWtC,
|
|
1
|
+
{"version":3,"file":"ai-editor-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-editor-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,8BAA8B,CAAC;;AAWtC,wBAyBG"}
|
|
@@ -39,7 +39,8 @@ exports.default = new inversify_1.ContainerModule(bind => {
|
|
|
39
39
|
showContext: true,
|
|
40
40
|
showPinnedAgent: true,
|
|
41
41
|
showChangeSet: false,
|
|
42
|
-
showSuggestions: false
|
|
42
|
+
showSuggestions: false,
|
|
43
|
+
showCapabilities: false
|
|
43
44
|
});
|
|
44
45
|
container.bind(ask_ai_input_widget_1.AskAIInputWidget).toSelf().inSingletonScope();
|
|
45
46
|
return container.get(ask_ai_input_widget_1.AskAIInputWidget);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-editor-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-editor-frontend-module.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,4CAAwD;AACxD,qDAAkG;AAClG,mDAA+E;AAC/E,4DAA+D;AAC/D,wCAAsC;AACtC,uEAAiE;AACjE,qFAA+E;AAC/E,6EAAiF;AACjF,+DAK+B;AAE/B,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE9D,IAAI,CAAC,4BAAmB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IACjE,IAAI,CAAC,yBAAgB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IAC9D,IAAI,CAAC,gCAAsB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IAEpE,IAAI,CAAC,gCAAsB,CAAC,CAAC,EAAE,CAAC,8DAAiC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtF,IAAI,CAAC,8CAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,8CAAoB,CAAC,CAAC;IAEtE,IAAI,CAAC,uCAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,oCAAc,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,6CAAuB,CAAC,CAAC,eAAe,CAAC;YACpD,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,eAAe,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"ai-editor-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-editor-frontend-module.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,4CAAwD;AACxD,qDAAkG;AAClG,mDAA+E;AAC/E,4DAA+D;AAC/D,wCAAsC;AACtC,uEAAiE;AACjE,qFAA+E;AAC/E,6EAAiF;AACjF,+DAK+B;AAE/B,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,4DAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE9D,IAAI,CAAC,4BAAmB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IACjE,IAAI,CAAC,yBAAgB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IAC9D,IAAI,CAAC,gCAAsB,CAAC,CAAC,SAAS,CAAC,4DAA2B,CAAC,CAAC;IAEpE,IAAI,CAAC,gCAAsB,CAAC,CAAC,EAAE,CAAC,8DAAiC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtF,IAAI,CAAC,8CAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,8CAAoB,CAAC,CAAC;IAEtE,IAAI,CAAC,uCAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,oCAAc,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,6CAAuB,CAAC,CAAC,eAAe,CAAC;YACpD,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,KAAK;SACQ,CAAC,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,sCAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC,GAAG,CAAC,sCAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -22,8 +22,14 @@ export declare class AskAIInputWidget extends AIChatInputWidget {
|
|
|
22
22
|
protected heightInLines: number;
|
|
23
23
|
protected init(): void;
|
|
24
24
|
protected getResourceUri(): URI;
|
|
25
|
-
protected handleSubmit(query: string): Promise<void>;
|
|
25
|
+
protected handleSubmit(query: string, mode?: string): Promise<void>;
|
|
26
26
|
protected handleCancel(): void;
|
|
27
27
|
protected onEscape(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Override to detect receiving agent without requiring a chat session.
|
|
30
|
+
* This implementation bypasses the session-based pinned agent logic since
|
|
31
|
+
* Ask AI dialogs are ephemeral and don't support agent pinning.
|
|
32
|
+
*/
|
|
33
|
+
protected updateReceivingAgent(): Promise<void>;
|
|
28
34
|
}
|
|
29
35
|
//# sourceMappingURL=ask-ai-input-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-ai-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/ask-ai-input-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,
|
|
1
|
+
{"version":3,"file":"ask-ai-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/ask-ai-input-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqB,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAE9G,OAAO,EAAgB,GAAG,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;CAAI;AAE7E,eAAO,MAAM,cAAc,eAA2B,CAAC;AACvD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,gBAAgB,CAAC;AAE3E;;GAEG;AACH,qBACa,gBAAiB,SAAQ,iBAAiB;IACnD,OAAuB,EAAE,SAAyB;IAGlD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IAEpD,mBAC4B,aAAa,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAE/E,SAAS,CAAC,QAAQ,CAAC,UAAU,SAAkB;IAC/C,UAAmB,aAAa,SAAK;cAGlB,IAAI,IAAI,IAAI;cAoBZ,cAAc,IAAI,GAAG;IAIxC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnE,SAAS,CAAC,YAAY,IAAI,IAAI;cAIX,QAAQ,IAAI,IAAI;IAInC;;;;OAIG;cACsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CA+BjE"}
|
|
@@ -46,8 +46,8 @@ let AskAIInputWidget = class AskAIInputWidget extends chat_input_widget_1.AIChat
|
|
|
46
46
|
this.onCancel = noOp;
|
|
47
47
|
this.onDeleteChangeSet = noOp;
|
|
48
48
|
this.onDeleteChangeSetElement = noOp;
|
|
49
|
-
// Create a
|
|
50
|
-
this.chatModel = new ai_chat_1.MutableChatModel();
|
|
49
|
+
// Create a standalone chat model for the widget (no session needed)
|
|
50
|
+
this.chatModel = new ai_chat_1.MutableChatModel(ai_chat_1.ChatAgentLocation.Editor);
|
|
51
51
|
this.setEnabled(true);
|
|
52
52
|
this.onQuery = this.handleSubmit.bind(this);
|
|
53
53
|
this.onCancel = this.handleCancel.bind(this);
|
|
@@ -55,10 +55,14 @@ let AskAIInputWidget = class AskAIInputWidget extends chat_input_widget_1.AIChat
|
|
|
55
55
|
getResourceUri() {
|
|
56
56
|
return new core_1.URI(`ask-ai:/input-${this.resourceId}.${chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION}`);
|
|
57
57
|
}
|
|
58
|
-
handleSubmit(query) {
|
|
58
|
+
handleSubmit(query, mode) {
|
|
59
59
|
const userInput = query.trim();
|
|
60
60
|
if (userInput) {
|
|
61
|
-
const request = {
|
|
61
|
+
const request = {
|
|
62
|
+
text: userInput,
|
|
63
|
+
variables: this._chatModel.context.getVariables(),
|
|
64
|
+
modeId: mode
|
|
65
|
+
};
|
|
62
66
|
this.args?.onSubmit(request);
|
|
63
67
|
}
|
|
64
68
|
return Promise.resolve();
|
|
@@ -69,6 +73,41 @@ let AskAIInputWidget = class AskAIInputWidget extends chat_input_widget_1.AIChat
|
|
|
69
73
|
onEscape() {
|
|
70
74
|
this.handleCancel();
|
|
71
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Override to detect receiving agent without requiring a chat session.
|
|
78
|
+
* This implementation bypasses the session-based pinned agent logic since
|
|
79
|
+
* Ask AI dialogs are ephemeral and don't support agent pinning.
|
|
80
|
+
*/
|
|
81
|
+
async updateReceivingAgent() {
|
|
82
|
+
if (!this.editorRef || !this._chatModel) {
|
|
83
|
+
if (this.receivingAgent !== undefined) {
|
|
84
|
+
this.chatInputReceivingAgentKey.set('');
|
|
85
|
+
this.chatInputHasModesKey.set(false);
|
|
86
|
+
this.receivingAgent = undefined;
|
|
87
|
+
this.update();
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const inputText = this.editorRef.getControl().getValue();
|
|
93
|
+
const request = { text: inputText };
|
|
94
|
+
const resolvedContext = { variables: [] };
|
|
95
|
+
const parsedRequest = await this.chatRequestParser.parseChatRequest(request, this._chatModel.location, resolvedContext);
|
|
96
|
+
// Get the agent directly without requiring a session
|
|
97
|
+
// Uses the parent's helper method with session=undefined
|
|
98
|
+
const agent = this.resolveAgentFromParsedRequest(parsedRequest);
|
|
99
|
+
this.updateAgentState(agent);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.warn('Failed to determine receiving agent:', error);
|
|
103
|
+
if (this.receivingAgent !== undefined) {
|
|
104
|
+
this.chatInputReceivingAgentKey.set('');
|
|
105
|
+
this.chatInputHasModesKey.set(false);
|
|
106
|
+
this.receivingAgent = undefined;
|
|
107
|
+
this.update();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
72
111
|
};
|
|
73
112
|
exports.AskAIInputWidget = AskAIInputWidget;
|
|
74
113
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-ai-input-widget.js","sourceRoot":"","sources":["../../src/browser/ask-ai-input-widget.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":"ask-ai-input-widget.js","sourceRoot":"","sources":["../../src/browser/ask-ai-input-widget.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-editor",
|
|
3
|
-
"version": "1.69.0
|
|
3
|
+
"version": "1.69.0",
|
|
4
4
|
"description": "Theia - AI Editor",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.69.0
|
|
7
|
-
"@theia/ai-chat-ui": "1.69.0
|
|
8
|
-
"@theia/ai-core": "1.69.0
|
|
9
|
-
"@theia/core": "1.69.0
|
|
10
|
-
"@theia/editor": "1.69.0
|
|
11
|
-
"@theia/filesystem": "1.69.0
|
|
12
|
-
"@theia/monaco": "1.69.0
|
|
6
|
+
"@theia/ai-chat": "1.69.0",
|
|
7
|
+
"@theia/ai-chat-ui": "1.69.0",
|
|
8
|
+
"@theia/ai-core": "1.69.0",
|
|
9
|
+
"@theia/core": "1.69.0",
|
|
10
|
+
"@theia/editor": "1.69.0",
|
|
11
|
+
"@theia/filesystem": "1.69.0",
|
|
12
|
+
"@theia/monaco": "1.69.0",
|
|
13
13
|
"@theia/monaco-editor-core": "1.96.302",
|
|
14
|
-
"@theia/workspace": "1.69.0
|
|
14
|
+
"@theia/workspace": "1.69.0"
|
|
15
15
|
},
|
|
16
16
|
"main": "lib/common",
|
|
17
17
|
"publishConfig": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"watch": "theiaext watch"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@theia/ext-scripts": "1.
|
|
52
|
+
"@theia/ext-scripts": "1.69.0"
|
|
53
53
|
},
|
|
54
54
|
"nyc": {
|
|
55
55
|
"extends": "../../configs/nyc.json"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "3b413470b0f990dc0d6e4287da02a6b6e21d3239"
|
|
58
58
|
}
|
|
@@ -48,7 +48,8 @@ export default new ContainerModule(bind => {
|
|
|
48
48
|
showContext: true,
|
|
49
49
|
showPinnedAgent: true,
|
|
50
50
|
showChangeSet: false,
|
|
51
|
-
showSuggestions: false
|
|
51
|
+
showSuggestions: false,
|
|
52
|
+
showCapabilities: false
|
|
52
53
|
} satisfies AskAIInputConfiguration);
|
|
53
54
|
container.bind(AskAIInputWidget).toSelf().inSingletonScope();
|
|
54
55
|
return container.get(AskAIInputWidget);
|
|
@@ -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 { ChatRequest, MutableChatModel } from '@theia/ai-chat';
|
|
17
|
+
import { ChatAgentLocation, ChatRequest, MutableChatModel } from '@theia/ai-chat';
|
|
18
18
|
import { AIChatInputConfiguration, AIChatInputWidget } from '@theia/ai-chat-ui/lib/browser/chat-input-widget';
|
|
19
19
|
import { CHAT_VIEW_LANGUAGE_EXTENSION } from '@theia/ai-chat-ui/lib/browser/chat-view-language-contribution';
|
|
20
20
|
import { generateUuid, URI } from '@theia/core';
|
|
@@ -61,8 +61,8 @@ export class AskAIInputWidget extends AIChatInputWidget {
|
|
|
61
61
|
this.onDeleteChangeSet = noOp;
|
|
62
62
|
this.onDeleteChangeSetElement = noOp;
|
|
63
63
|
|
|
64
|
-
// Create a
|
|
65
|
-
this.chatModel = new MutableChatModel();
|
|
64
|
+
// Create a standalone chat model for the widget (no session needed)
|
|
65
|
+
this.chatModel = new MutableChatModel(ChatAgentLocation.Editor);
|
|
66
66
|
|
|
67
67
|
this.setEnabled(true);
|
|
68
68
|
this.onQuery = this.handleSubmit.bind(this);
|
|
@@ -73,10 +73,14 @@ export class AskAIInputWidget extends AIChatInputWidget {
|
|
|
73
73
|
return new URI(`ask-ai:/input-${this.resourceId}.${CHAT_VIEW_LANGUAGE_EXTENSION}`);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
protected handleSubmit(query: string): Promise<void> {
|
|
76
|
+
protected handleSubmit(query: string, mode?: string): Promise<void> {
|
|
77
77
|
const userInput = query.trim();
|
|
78
78
|
if (userInput) {
|
|
79
|
-
const request: ChatRequest = {
|
|
79
|
+
const request: ChatRequest = {
|
|
80
|
+
text: userInput,
|
|
81
|
+
variables: this._chatModel.context.getVariables(),
|
|
82
|
+
modeId: mode
|
|
83
|
+
};
|
|
80
84
|
|
|
81
85
|
this.args?.onSubmit(request);
|
|
82
86
|
}
|
|
@@ -90,4 +94,41 @@ export class AskAIInputWidget extends AIChatInputWidget {
|
|
|
90
94
|
protected override onEscape(): void {
|
|
91
95
|
this.handleCancel();
|
|
92
96
|
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Override to detect receiving agent without requiring a chat session.
|
|
100
|
+
* This implementation bypasses the session-based pinned agent logic since
|
|
101
|
+
* Ask AI dialogs are ephemeral and don't support agent pinning.
|
|
102
|
+
*/
|
|
103
|
+
protected override async updateReceivingAgent(): Promise<void> {
|
|
104
|
+
if (!this.editorRef || !this._chatModel) {
|
|
105
|
+
if (this.receivingAgent !== undefined) {
|
|
106
|
+
this.chatInputReceivingAgentKey.set('');
|
|
107
|
+
this.chatInputHasModesKey.set(false);
|
|
108
|
+
this.receivingAgent = undefined;
|
|
109
|
+
this.update();
|
|
110
|
+
}
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
try {
|
|
115
|
+
const inputText = this.editorRef.getControl().getValue();
|
|
116
|
+
const request = { text: inputText };
|
|
117
|
+
const resolvedContext = { variables: [] };
|
|
118
|
+
const parsedRequest = await this.chatRequestParser.parseChatRequest(request, this._chatModel.location, resolvedContext);
|
|
119
|
+
|
|
120
|
+
// Get the agent directly without requiring a session
|
|
121
|
+
// Uses the parent's helper method with session=undefined
|
|
122
|
+
const agent = this.resolveAgentFromParsedRequest(parsedRequest);
|
|
123
|
+
this.updateAgentState(agent);
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.warn('Failed to determine receiving agent:', error);
|
|
126
|
+
if (this.receivingAgent !== undefined) {
|
|
127
|
+
this.chatInputReceivingAgentKey.set('');
|
|
128
|
+
this.chatInputHasModesKey.set(false);
|
|
129
|
+
this.receivingAgent = undefined;
|
|
130
|
+
this.update();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
93
134
|
}
|