@theia/ai-core 1.69.0-next.55 → 1.69.0-next.69
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/agent-completion-notification-service.d.ts +24 -10
- package/lib/browser/agent-completion-notification-service.d.ts.map +1 -1
- package/lib/browser/agent-completion-notification-service.js +21 -28
- package/lib/browser/agent-completion-notification-service.js.map +1 -1
- package/lib/browser/frontend-language-model-alias-registry.js +8 -8
- package/lib/browser/frontend-language-model-alias-registry.js.map +1 -1
- package/lib/browser/os-notification-service.d.ts +5 -3
- package/lib/browser/os-notification-service.d.ts.map +1 -1
- package/lib/browser/os-notification-service.js +15 -10
- package/lib/browser/os-notification-service.js.map +1 -1
- package/lib/browser/window-blink-service.d.ts +17 -10
- package/lib/browser/window-blink-service.d.ts.map +1 -1
- package/lib/browser/window-blink-service.js +70 -59
- package/lib/browser/window-blink-service.js.map +1 -1
- package/lib/common/ai-core-preferences.d.ts.map +1 -1
- package/lib/common/ai-core-preferences.js +4 -6
- package/lib/common/ai-core-preferences.js.map +1 -1
- package/lib/common/notification-types.d.ts +2 -0
- package/lib/common/notification-types.d.ts.map +1 -1
- package/lib/common/notification-types.js +14 -1
- package/lib/common/notification-types.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/agent-completion-notification-service.ts +50 -33
- package/src/browser/frontend-language-model-alias-registry.ts +8 -8
- package/src/browser/os-notification-service.ts +28 -11
- package/src/browser/window-blink-service.ts +74 -68
- package/src/common/ai-core-preferences.ts +6 -6
- package/src/common/notification-types.ts +16 -0
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
2
|
-
import { ApplicationShell } from '@theia/core/lib/browser/shell/application-shell';
|
|
3
2
|
import { AgentService } from '../common/agent-service';
|
|
4
3
|
import { AISettingsService } from '../common/settings-service';
|
|
5
4
|
import { OSNotificationService } from './os-notification-service';
|
|
6
5
|
import { WindowBlinkService } from './window-blink-service';
|
|
7
6
|
import { NotificationType } from '../common/notification-types';
|
|
8
7
|
import { PreferenceService } from '@theia/core';
|
|
8
|
+
/**
|
|
9
|
+
* Options for showing a completion notification.
|
|
10
|
+
*/
|
|
11
|
+
export interface CompletionNotificationOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Callback to check if the notification should be suppressed.
|
|
14
|
+
* If returns true, the notification will not be shown.
|
|
15
|
+
*/
|
|
16
|
+
shouldSuppress?: () => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Callback to invoke when the notification is clicked/activated.
|
|
19
|
+
* Used for navigating to the relevant chat session.
|
|
20
|
+
*/
|
|
21
|
+
onActivate?: () => void;
|
|
22
|
+
/**
|
|
23
|
+
* Title of the chat session for display in the notification.
|
|
24
|
+
* Helps distinguish between multiple chats with the same agent.
|
|
25
|
+
*/
|
|
26
|
+
sessionTitle?: string;
|
|
27
|
+
}
|
|
9
28
|
export declare class AgentCompletionNotificationService {
|
|
10
29
|
protected readonly preferenceService: PreferenceService;
|
|
11
30
|
protected readonly agentService: AgentService;
|
|
@@ -13,14 +32,13 @@ export declare class AgentCompletionNotificationService {
|
|
|
13
32
|
protected readonly osNotificationService: OSNotificationService;
|
|
14
33
|
protected readonly messageService: MessageService;
|
|
15
34
|
protected readonly windowBlinkService: WindowBlinkService;
|
|
16
|
-
protected readonly shell: ApplicationShell;
|
|
17
35
|
/**
|
|
18
36
|
* Show a completion notification for the specified agent if enabled in preferences.
|
|
19
37
|
*
|
|
20
38
|
* @param agentId The unique identifier of the agent
|
|
21
|
-
* @param
|
|
39
|
+
* @param options Optional configuration for the notification
|
|
22
40
|
*/
|
|
23
|
-
showCompletionNotification(agentId: string,
|
|
41
|
+
showCompletionNotification(agentId: string, options?: CompletionNotificationOptions): Promise<void>;
|
|
24
42
|
/**
|
|
25
43
|
* Resolve the display name for an agent by its ID.
|
|
26
44
|
*
|
|
@@ -40,11 +58,11 @@ export declare class AgentCompletionNotificationService {
|
|
|
40
58
|
/**
|
|
41
59
|
* Show OS notification directly.
|
|
42
60
|
*/
|
|
43
|
-
protected showOSNotification(agentName: string,
|
|
61
|
+
protected showOSNotification(agentName: string, onActivate?: () => void, sessionTitle?: string): Promise<void>;
|
|
44
62
|
/**
|
|
45
63
|
* Show MessageService notification.
|
|
46
64
|
*/
|
|
47
|
-
protected showMessageServiceNotification(agentName: string,
|
|
65
|
+
protected showMessageServiceNotification(agentName: string, onActivate?: () => void, sessionTitle?: string): Promise<void>;
|
|
48
66
|
/**
|
|
49
67
|
* Show window blink notification.
|
|
50
68
|
*/
|
|
@@ -61,9 +79,5 @@ export declare class AgentCompletionNotificationService {
|
|
|
61
79
|
* Request OS notification permission from the user.
|
|
62
80
|
*/
|
|
63
81
|
requestOSNotificationPermission(): Promise<NotificationPermission>;
|
|
64
|
-
/**
|
|
65
|
-
* Check if any chat widget currently has focus.
|
|
66
|
-
*/
|
|
67
|
-
protected isChatWidgetFocused(): boolean;
|
|
68
82
|
}
|
|
69
83
|
//# sourceMappingURL=agent-completion-notification-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-completion-notification-service.d.ts","sourceRoot":"","sources":["../../src/browser/agent-completion-notification-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-completion-notification-service.d.ts","sourceRoot":"","sources":["../../src/browser/agent-completion-notification-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAKxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACH,gBAAgB,EAKnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,kCAAkC;IAE3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAE1D;;;;;OAKG;IACG,0BAA0B,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,6BAA6B,GACxC,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAcnD;;;OAGG;cACa,2BAA2B,CACvC,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC;IAgB5B;;OAEG;YACW,uBAAuB;IAqBrC;;OAEG;cACa,kBAAkB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,IAAI,EACvB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;cACa,8BAA8B,CAC1C,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,IAAI,EACvB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;cACa,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE;;OAEG;IACH,yBAAyB,IAAI,OAAO;IAIpC;;OAEG;IACH,2BAA2B,IAAI,sBAAsB;IAIrD;;OAEG;IACG,+BAA+B,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAG3E"}
|
|
@@ -19,7 +19,6 @@ exports.AgentCompletionNotificationService = void 0;
|
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const message_service_1 = require("@theia/core/lib/common/message-service");
|
|
22
|
-
const application_shell_1 = require("@theia/core/lib/browser/shell/application-shell");
|
|
23
22
|
const nls_1 = require("@theia/core/lib/common/nls");
|
|
24
23
|
const ai_core_preferences_1 = require("../common/ai-core-preferences");
|
|
25
24
|
const agent_service_1 = require("../common/agent-service");
|
|
@@ -33,16 +32,20 @@ let AgentCompletionNotificationService = class AgentCompletionNotificationServic
|
|
|
33
32
|
* Show a completion notification for the specified agent if enabled in preferences.
|
|
34
33
|
*
|
|
35
34
|
* @param agentId The unique identifier of the agent
|
|
36
|
-
* @param
|
|
35
|
+
* @param options Optional configuration for the notification
|
|
37
36
|
*/
|
|
38
|
-
async showCompletionNotification(agentId,
|
|
37
|
+
async showCompletionNotification(agentId, options) {
|
|
39
38
|
const notificationType = await this.getNotificationTypeForAgent(agentId);
|
|
40
|
-
if (notificationType === notification_types_1.NOTIFICATION_TYPE_OFF
|
|
39
|
+
if (notificationType === notification_types_1.NOTIFICATION_TYPE_OFF) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Check if notification should be suppressed (e.g., user is viewing the same session)
|
|
43
|
+
if (options?.shouldSuppress?.()) {
|
|
41
44
|
return;
|
|
42
45
|
}
|
|
43
46
|
try {
|
|
44
47
|
const agentName = this.resolveAgentName(agentId);
|
|
45
|
-
await this.executeNotificationType(agentName,
|
|
48
|
+
await this.executeNotificationType(agentName, notificationType, options?.onActivate, options?.sessionTitle);
|
|
46
49
|
}
|
|
47
50
|
catch (error) {
|
|
48
51
|
console.error('Failed to show agent completion notification:', error);
|
|
@@ -81,13 +84,13 @@ let AgentCompletionNotificationService = class AgentCompletionNotificationServic
|
|
|
81
84
|
/**
|
|
82
85
|
* Execute the specified notification type.
|
|
83
86
|
*/
|
|
84
|
-
async executeNotificationType(agentName,
|
|
87
|
+
async executeNotificationType(agentName, type, onActivate, sessionTitle) {
|
|
85
88
|
switch (type) {
|
|
86
89
|
case notification_types_1.NOTIFICATION_TYPE_OS_NOTIFICATION:
|
|
87
|
-
await this.showOSNotification(agentName,
|
|
90
|
+
await this.showOSNotification(agentName, onActivate, sessionTitle);
|
|
88
91
|
break;
|
|
89
92
|
case notification_types_1.NOTIFICATION_TYPE_MESSAGE:
|
|
90
|
-
await this.showMessageServiceNotification(agentName,
|
|
93
|
+
await this.showMessageServiceNotification(agentName, onActivate, sessionTitle);
|
|
91
94
|
break;
|
|
92
95
|
case notification_types_1.NOTIFICATION_TYPE_BLINK:
|
|
93
96
|
await this.showBlinkNotification(agentName);
|
|
@@ -99,8 +102,8 @@ let AgentCompletionNotificationService = class AgentCompletionNotificationServic
|
|
|
99
102
|
/**
|
|
100
103
|
* Show OS notification directly.
|
|
101
104
|
*/
|
|
102
|
-
async showOSNotification(agentName,
|
|
103
|
-
const result = await this.osNotificationService.showAgentCompletionNotification(agentName,
|
|
105
|
+
async showOSNotification(agentName, onActivate, sessionTitle) {
|
|
106
|
+
const result = await this.osNotificationService.showAgentCompletionNotification(agentName, sessionTitle, onActivate);
|
|
104
107
|
if (!result.success) {
|
|
105
108
|
throw new Error(`OS notification failed: ${result.error}`);
|
|
106
109
|
}
|
|
@@ -108,11 +111,15 @@ let AgentCompletionNotificationService = class AgentCompletionNotificationServic
|
|
|
108
111
|
/**
|
|
109
112
|
* Show MessageService notification.
|
|
110
113
|
*/
|
|
111
|
-
async showMessageServiceNotification(agentName,
|
|
112
|
-
const message =
|
|
113
|
-
? nls_1.nls.localize('theia/ai-core/
|
|
114
|
+
async showMessageServiceNotification(agentName, onActivate, sessionTitle) {
|
|
115
|
+
const message = sessionTitle
|
|
116
|
+
? nls_1.nls.localize('theia/ai-core/agentCompletionMessageWithSession', 'Agent "{0}" has completed its task in "{1}".', agentName, sessionTitle)
|
|
114
117
|
: nls_1.nls.localize('theia/ai-core/agentCompletionMessage', 'Agent "{0}" has completed its task.', agentName);
|
|
115
|
-
|
|
118
|
+
const showChatAction = nls_1.nls.localize('theia/ai-core/showChat', 'Show Chat');
|
|
119
|
+
const action = await this.messageService.info(message, showChatAction);
|
|
120
|
+
if (action === showChatAction && onActivate) {
|
|
121
|
+
onActivate();
|
|
122
|
+
}
|
|
116
123
|
}
|
|
117
124
|
/**
|
|
118
125
|
* Show window blink notification.
|
|
@@ -141,16 +148,6 @@ let AgentCompletionNotificationService = class AgentCompletionNotificationServic
|
|
|
141
148
|
async requestOSNotificationPermission() {
|
|
142
149
|
return this.osNotificationService.requestPermission();
|
|
143
150
|
}
|
|
144
|
-
/**
|
|
145
|
-
* Check if any chat widget currently has focus.
|
|
146
|
-
*/
|
|
147
|
-
isChatWidgetFocused() {
|
|
148
|
-
const activeWidget = this.shell.activeWidget;
|
|
149
|
-
if (!activeWidget) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
return activeWidget.id === 'chat-view-widget';
|
|
153
|
-
}
|
|
154
151
|
};
|
|
155
152
|
exports.AgentCompletionNotificationService = AgentCompletionNotificationService;
|
|
156
153
|
tslib_1.__decorate([
|
|
@@ -177,10 +174,6 @@ tslib_1.__decorate([
|
|
|
177
174
|
(0, inversify_1.inject)(window_blink_service_1.WindowBlinkService),
|
|
178
175
|
tslib_1.__metadata("design:type", window_blink_service_1.WindowBlinkService)
|
|
179
176
|
], AgentCompletionNotificationService.prototype, "windowBlinkService", void 0);
|
|
180
|
-
tslib_1.__decorate([
|
|
181
|
-
(0, inversify_1.inject)(application_shell_1.ApplicationShell),
|
|
182
|
-
tslib_1.__metadata("design:type", application_shell_1.ApplicationShell)
|
|
183
|
-
], AgentCompletionNotificationService.prototype, "shell", void 0);
|
|
184
177
|
exports.AgentCompletionNotificationService = AgentCompletionNotificationService = tslib_1.__decorate([
|
|
185
178
|
(0, inversify_1.injectable)()
|
|
186
179
|
], AgentCompletionNotificationService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-completion-notification-service.js","sourceRoot":"","sources":["../../src/browser/agent-completion-notification-service.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,4DAAkE;AAClE,4EAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"agent-completion-notification-service.js","sourceRoot":"","sources":["../../src/browser/agent-completion-notification-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,18 +28,18 @@ let DefaultLanguageModelAliasRegistry = class DefaultLanguageModelAliasRegistry
|
|
|
28
28
|
{
|
|
29
29
|
id: 'default/code',
|
|
30
30
|
defaultModelIds: [
|
|
31
|
-
'anthropic/claude-
|
|
31
|
+
'anthropic/claude-sonnet-4-6',
|
|
32
32
|
'openai/gpt-5.2',
|
|
33
|
-
'google/gemini-3-pro-preview'
|
|
33
|
+
'google/gemini-3.1-pro-preview'
|
|
34
34
|
],
|
|
35
35
|
description: core_1.nls.localize('theia/ai/core/defaultModelAliases/code/description', 'Optimized for code understanding and generation tasks.')
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
id: 'default/universal',
|
|
39
39
|
defaultModelIds: [
|
|
40
|
+
'anthropic/claude-sonnet-4-6',
|
|
40
41
|
'openai/gpt-5.2',
|
|
41
|
-
'
|
|
42
|
-
'google/gemini-3-pro-preview'
|
|
42
|
+
'google/gemini-3.1-pro-preview'
|
|
43
43
|
],
|
|
44
44
|
description: core_1.nls.localize('theia/ai/core/defaultModelAliases/universal/description', 'Well-balanced for both code and general language use.')
|
|
45
45
|
},
|
|
@@ -47,17 +47,17 @@ let DefaultLanguageModelAliasRegistry = class DefaultLanguageModelAliasRegistry
|
|
|
47
47
|
id: 'default/code-completion',
|
|
48
48
|
defaultModelIds: [
|
|
49
49
|
'openai/gpt-4.1',
|
|
50
|
-
'anthropic/claude-
|
|
51
|
-
'google/gemini-3-pro-preview'
|
|
50
|
+
'anthropic/claude-sonnet-4-6',
|
|
51
|
+
'google/gemini-3.1-pro-preview'
|
|
52
52
|
],
|
|
53
53
|
description: core_1.nls.localize('theia/ai/core/defaultModelAliases/code-completion/description', 'Best suited for code autocompletion scenarios.')
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
id: 'default/summarize',
|
|
57
57
|
defaultModelIds: [
|
|
58
|
+
'anthropic/claude-sonnet-4-6',
|
|
58
59
|
'openai/gpt-5.2',
|
|
59
|
-
'
|
|
60
|
-
'google/gemini-3-pro-preview'
|
|
60
|
+
'google/gemini-3.1-pro-preview'
|
|
61
61
|
],
|
|
62
62
|
description: core_1.nls.localize('theia/ai/core/defaultModelAliases/summarize/description', 'Models prioritized for summarization and condensation of content.')
|
|
63
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-language-model-alias-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-alias-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8CAA8C;AAC9C,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,4DAAiF;AACjF,sCAAkD;AAElD,mDAA4E;AAC5E,uEAAkF;AAClF,sEAA+D;AAGxD,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAAvC;QAEO,YAAO,GAAyB;YACtC;gBACI,EAAE,EAAE,cAAc;gBAClB,eAAe,EAAE;oBACb,
|
|
1
|
+
{"version":3,"file":"frontend-language-model-alias-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-alias-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare class OSNotificationService {
|
|
|
40
40
|
* @param options Optional notification configuration
|
|
41
41
|
* @returns Promise resolving to the notification result
|
|
42
42
|
*/
|
|
43
|
-
showNotification(title: string, options?: OSNotificationOptions): Promise<OSNotificationResult>;
|
|
43
|
+
showNotification(title: string, options?: OSNotificationOptions, onClickCallback?: () => void): Promise<OSNotificationResult>;
|
|
44
44
|
/**
|
|
45
45
|
* Check if notification permission is granted
|
|
46
46
|
*
|
|
@@ -64,10 +64,11 @@ export declare class OSNotificationService {
|
|
|
64
64
|
* This is a convenience method with pre-configured options for agent notifications
|
|
65
65
|
*
|
|
66
66
|
* @param agentName The name of the agent that completed
|
|
67
|
-
* @param
|
|
67
|
+
* @param sessionTitle Optional title of the chat session for identification
|
|
68
|
+
* @param onClickCallback Optional callback to invoke when the notification is clicked
|
|
68
69
|
* @returns Promise resolving to the notification result
|
|
69
70
|
*/
|
|
70
|
-
showAgentCompletionNotification(agentName: string,
|
|
71
|
+
showAgentCompletionNotification(agentName: string, sessionTitle?: string, onClickCallback?: () => void): Promise<OSNotificationResult>;
|
|
71
72
|
/**
|
|
72
73
|
* Ensure notification permission is granted
|
|
73
74
|
*
|
|
@@ -79,6 +80,7 @@ export declare class OSNotificationService {
|
|
|
79
80
|
*
|
|
80
81
|
* @param title The notification title
|
|
81
82
|
* @param options The notification options
|
|
83
|
+
* @param onClickCallback Optional callback to invoke when the notification is clicked
|
|
82
84
|
* @returns Promise resolving to the created notification
|
|
83
85
|
*/
|
|
84
86
|
private createNotification;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"os-notification-service.d.ts","sourceRoot":"","sources":["../../src/browser/os-notification-service.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED;;;GAGG;AACH,qBACa,qBAAqB;IAE9B,OAAO,CAAC,UAAU,CAAU;;IAM5B;;;;;;OAMG;IACG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"os-notification-service.d.ts","sourceRoot":"","sources":["../../src/browser/os-notification-service.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED;;;GAGG;AACH,qBACa,qBAAqB;IAE9B,OAAO,CAAC,UAAU,CAAU;;IAM5B;;;;;;OAMG;IACG,gBAAgB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,qBAA0B,EACnC,eAAe,CAAC,EAAE,MAAM,IAAI,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAgChC;;;;OAIG;IACH,mBAAmB,IAAI,sBAAsB;IAO7C;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAkB1D;;;;OAIG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;;;;;;;OAQG;IACG,+BAA+B,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,IAAI,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAsBhC;;;;OAIG;YACW,gBAAgB;IAc9B;;;;;;;OAOG;YACW,kBAAkB;IAgDhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAKjC"}
|
|
@@ -35,7 +35,7 @@ let OSNotificationService = class OSNotificationService {
|
|
|
35
35
|
* @param options Optional notification configuration
|
|
36
36
|
* @returns Promise resolving to the notification result
|
|
37
37
|
*/
|
|
38
|
-
async showNotification(title, options = {}) {
|
|
38
|
+
async showNotification(title, options = {}, onClickCallback) {
|
|
39
39
|
try {
|
|
40
40
|
if (!this.isNotificationSupported()) {
|
|
41
41
|
return {
|
|
@@ -50,7 +50,7 @@ let OSNotificationService = class OSNotificationService {
|
|
|
50
50
|
error: `Notification permission ${permission}`
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
const notification = await this.createNotification(title, options);
|
|
53
|
+
const notification = await this.createNotification(title, options, onClickCallback);
|
|
54
54
|
return {
|
|
55
55
|
success: true,
|
|
56
56
|
notification
|
|
@@ -109,26 +109,27 @@ let OSNotificationService = class OSNotificationService {
|
|
|
109
109
|
* This is a convenience method with pre-configured options for agent notifications
|
|
110
110
|
*
|
|
111
111
|
* @param agentName The name of the agent that completed
|
|
112
|
-
* @param
|
|
112
|
+
* @param sessionTitle Optional title of the chat session for identification
|
|
113
|
+
* @param onClickCallback Optional callback to invoke when the notification is clicked
|
|
113
114
|
* @returns Promise resolving to the notification result
|
|
114
115
|
*/
|
|
115
|
-
async showAgentCompletionNotification(agentName,
|
|
116
|
+
async showAgentCompletionNotification(agentName, sessionTitle, onClickCallback) {
|
|
116
117
|
const title = nls_1.nls.localize('theia/ai-core/agentCompletionTitle', 'Agent "{0}" Task Completed', agentName);
|
|
117
|
-
const body =
|
|
118
|
-
? nls_1.nls.localize('theia/ai-core/
|
|
118
|
+
const body = sessionTitle
|
|
119
|
+
? nls_1.nls.localize('theia/ai-core/agentCompletionMessageWithSession', 'Agent "{0}" has completed its task in "{1}".', agentName, sessionTitle)
|
|
119
120
|
: nls_1.nls.localize('theia/ai-core/agentCompletionMessage', 'Agent "{0}" has completed its task.', agentName);
|
|
120
121
|
return this.showNotification(title, {
|
|
121
122
|
body,
|
|
122
123
|
icon: this.getAgentCompletionIcon(),
|
|
123
|
-
tag: `agent-completion-${agentName}`,
|
|
124
|
+
tag: `agent-completion-${agentName}-${sessionTitle ?? 'default'}`,
|
|
124
125
|
requireInteraction: false,
|
|
125
126
|
data: {
|
|
126
127
|
type: 'agent-completion',
|
|
127
128
|
agentName,
|
|
128
|
-
|
|
129
|
+
sessionTitle,
|
|
129
130
|
timestamp: Date.now()
|
|
130
131
|
}
|
|
131
|
-
});
|
|
132
|
+
}, onClickCallback);
|
|
132
133
|
}
|
|
133
134
|
/**
|
|
134
135
|
* Ensure notification permission is granted
|
|
@@ -150,9 +151,10 @@ let OSNotificationService = class OSNotificationService {
|
|
|
150
151
|
*
|
|
151
152
|
* @param title The notification title
|
|
152
153
|
* @param options The notification options
|
|
154
|
+
* @param onClickCallback Optional callback to invoke when the notification is clicked
|
|
153
155
|
* @returns Promise resolving to the created notification
|
|
154
156
|
*/
|
|
155
|
-
async createNotification(title, options) {
|
|
157
|
+
async createNotification(title, options, onClickCallback) {
|
|
156
158
|
return new Promise((resolve, reject) => {
|
|
157
159
|
try {
|
|
158
160
|
const notificationOptions = {
|
|
@@ -174,6 +176,9 @@ let OSNotificationService = class OSNotificationService {
|
|
|
174
176
|
notification.onclick = () => {
|
|
175
177
|
console.debug('OS notification clicked:', title);
|
|
176
178
|
this.focusApplicationWindow();
|
|
179
|
+
if (onClickCallback) {
|
|
180
|
+
onClickCallback();
|
|
181
|
+
}
|
|
177
182
|
notification.close();
|
|
178
183
|
};
|
|
179
184
|
notification.onclose = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"os-notification-service.js","sourceRoot":"","sources":["../../src/browser/os-notification-service.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,4DAA0D;AAC1D,oDAAiD;AACjD,sCAA0C;AAgC1C;;;GAGG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAI9B;QACI,IAAI,CAAC,UAAU,GAAG,kBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"os-notification-service.js","sourceRoot":"","sources":["../../src/browser/os-notification-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { WindowTitleService } from '@theia/core/lib/browser/window/window-title-service';
|
|
2
|
+
import { SecondaryWindowService } from '@theia/core/lib/browser/window/secondary-window-service';
|
|
1
3
|
/**
|
|
2
4
|
* Result of a window blink attempt
|
|
3
5
|
*/
|
|
@@ -11,7 +13,11 @@ export interface WindowBlinkResult {
|
|
|
11
13
|
* Service for blinking/flashing the application window to get user attention.
|
|
12
14
|
*/
|
|
13
15
|
export declare class WindowBlinkService {
|
|
16
|
+
protected readonly windowTitleService?: WindowTitleService;
|
|
17
|
+
protected readonly secondaryWindowService?: SecondaryWindowService;
|
|
14
18
|
private isElectron;
|
|
19
|
+
private activeBlinkInterval?;
|
|
20
|
+
private originalSecondaryTitles;
|
|
15
21
|
constructor();
|
|
16
22
|
/**
|
|
17
23
|
* Blink/flash the window to get user attention.
|
|
@@ -23,19 +29,20 @@ export declare class WindowBlinkService {
|
|
|
23
29
|
private blinkElectronWindow;
|
|
24
30
|
private blinkBrowserWindow;
|
|
25
31
|
private blinkDocumentTitle;
|
|
26
|
-
private blinkWithVisibilityAPI;
|
|
27
|
-
private focusWindow;
|
|
28
32
|
/**
|
|
29
|
-
*
|
|
33
|
+
* Set the window title directly on document.title and the custom titlebar element.
|
|
34
|
+
* This bypasses WindowTitleService to avoid corrupting the title template state.
|
|
35
|
+
*/
|
|
36
|
+
private setTitle;
|
|
37
|
+
/**
|
|
38
|
+
* Set the alert title on all secondary windows, or restore their original titles.
|
|
30
39
|
*/
|
|
31
|
-
|
|
40
|
+
private setSecondaryWindowTitles;
|
|
32
41
|
/**
|
|
33
|
-
*
|
|
42
|
+
* Restore original titles on all secondary windows.
|
|
34
43
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
features: string[];
|
|
39
|
-
};
|
|
44
|
+
private restoreSecondaryWindowTitles;
|
|
45
|
+
private blinkWithVisibilityAPI;
|
|
46
|
+
private focusWindow;
|
|
40
47
|
}
|
|
41
48
|
//# sourceMappingURL=window-blink-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window-blink-service.d.ts","sourceRoot":"","sources":["../../src/browser/window-blink-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"window-blink-service.d.ts","sourceRoot":"","sources":["../../src/browser/window-blink-service.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD;;GAEG;AACH,qBACa,kBAAkB;IAG3B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEnE,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAiC;IAC7D,OAAO,CAAC,uBAAuB,CAAkC;;IAMjE;;;;;OAKG;IACG,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAwBnD,mBAAmB;YAInB,kBAAkB;YAQlB,kBAAkB;IAwChC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,WAAW;CAiBtB"}
|