@theia/ai-core 1.65.0-next.6 → 1.66.0-next.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/agent-completion-notification-service.d.ts +1 -1
- package/lib/browser/agent-completion-notification-service.d.ts.map +1 -1
- package/lib/browser/agent-completion-notification-service.js +3 -3
- package/lib/browser/agent-completion-notification-service.js.map +1 -1
- package/lib/browser/ai-activation-service.d.ts +2 -2
- package/lib/browser/ai-activation-service.d.ts.map +1 -1
- package/lib/browser/ai-activation-service.js +1 -1
- package/lib/browser/ai-activation-service.js.map +1 -1
- package/lib/browser/ai-core-frontend-module.js +1 -1
- package/lib/browser/ai-core-frontend-module.js.map +1 -1
- package/lib/browser/ai-settings-service.d.ts +1 -1
- package/lib/browser/ai-settings-service.d.ts.map +1 -1
- package/lib/browser/ai-settings-service.js +3 -3
- package/lib/browser/ai-settings-service.js.map +1 -1
- package/lib/browser/ai-view-contribution.d.ts +2 -2
- package/lib/browser/ai-view-contribution.d.ts.map +1 -1
- package/lib/browser/ai-view-contribution.js +17 -1
- package/lib/browser/ai-view-contribution.js.map +1 -1
- package/lib/browser/frontend-language-model-alias-registry.d.ts +1 -1
- package/lib/browser/frontend-language-model-alias-registry.d.ts.map +1 -1
- package/lib/browser/frontend-language-model-alias-registry.js +4 -4
- package/lib/browser/frontend-language-model-alias-registry.js.map +1 -1
- package/lib/browser/frontend-language-model-service.d.ts +2 -2
- package/lib/browser/frontend-language-model-service.d.ts.map +1 -1
- package/lib/browser/frontend-language-model-service.js +3 -3
- package/lib/browser/frontend-language-model-service.js.map +1 -1
- package/lib/browser/frontend-prompt-customization-service.d.ts +18 -1
- package/lib/browser/frontend-prompt-customization-service.d.ts.map +1 -1
- package/lib/browser/frontend-prompt-customization-service.js +37 -8
- package/lib/browser/frontend-prompt-customization-service.js.map +1 -1
- package/lib/browser/index.d.ts +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/common/agent-preferences.d.ts +4 -0
- package/lib/common/agent-preferences.d.ts.map +1 -0
- package/lib/{browser → common}/agent-preferences.js +1 -2
- package/lib/common/agent-preferences.js.map +1 -0
- package/lib/common/agent.d.ts +25 -3
- package/lib/common/agent.d.ts.map +1 -1
- package/lib/{browser → common}/ai-core-preferences.d.ts +3 -2
- package/lib/common/ai-core-preferences.d.ts.map +1 -0
- package/lib/{browser → common}/ai-core-preferences.js +2 -4
- package/lib/common/ai-core-preferences.js.map +1 -0
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -0
- package/lib/common/index.js.map +1 -1
- package/lib/node/ai-core-backend-module.d.ts.map +1 -1
- package/lib/node/ai-core-backend-module.js +4 -0
- package/lib/node/ai-core-backend-module.js.map +1 -1
- package/package.json +10 -11
- package/src/browser/agent-completion-notification-service.ts +2 -2
- package/src/browser/ai-activation-service.ts +2 -2
- package/src/browser/ai-core-frontend-module.ts +1 -1
- package/src/browser/ai-settings-service.ts +1 -1
- package/src/browser/ai-view-contribution.ts +2 -2
- package/src/browser/frontend-language-model-alias-registry.ts +2 -2
- package/src/browser/frontend-language-model-service.ts +2 -2
- package/src/browser/frontend-prompt-customization-service.ts +86 -11
- package/src/browser/index.ts +1 -1
- package/src/common/agent-preferences.ts +88 -0
- package/src/common/agent.ts +25 -3
- package/src/{browser → common}/ai-core-preferences.ts +4 -5
- package/src/common/index.ts +1 -0
- package/src/node/ai-core-backend-module.ts +5 -0
- package/lib/browser/agent-preferences.d.ts +0 -4
- package/lib/browser/agent-preferences.d.ts.map +0 -1
- package/lib/browser/agent-preferences.js.map +0 -1
- package/lib/browser/ai-core-preferences.d.ts.map +0 -1
- package/lib/browser/ai-core-preferences.js.map +0 -1
- package/src/browser/agent-preferences.ts +0 -88
|
@@ -21,7 +21,7 @@ import { PromptFragmentCustomizationService, CustomAgentDescription, CustomizedP
|
|
|
21
21
|
import { BinaryBuffer } from '@theia/core/lib/common/buffer';
|
|
22
22
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
23
23
|
import { FileChangesEvent } from '@theia/filesystem/lib/common/files';
|
|
24
|
-
import { AICorePreferences, PREFERENCE_NAME_PROMPT_TEMPLATES } from '
|
|
24
|
+
import { AICorePreferences, PREFERENCE_NAME_PROMPT_TEMPLATES } from '../common/ai-core-preferences';
|
|
25
25
|
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
26
26
|
import { load, dump } from 'js-yaml';
|
|
27
27
|
import { PROMPT_TEMPLATE_EXTENSION } from './prompttemplate-contribution';
|
|
@@ -463,13 +463,46 @@ export class DefaultPromptFragmentCustomizationService implements PromptFragment
|
|
|
463
463
|
priority: number,
|
|
464
464
|
customizationSource: CustomizationSource
|
|
465
465
|
): Promise<void> {
|
|
466
|
-
|
|
467
|
-
|
|
466
|
+
const dirExists = await this.fileService.exists(dirURI);
|
|
467
|
+
|
|
468
|
+
// Process existing files if directory exists
|
|
469
|
+
if (dirExists) {
|
|
470
|
+
await this.processExistingTemplateDirectory(
|
|
471
|
+
activeCustomizationsCopy,
|
|
472
|
+
trackedTemplateURIsCopy,
|
|
473
|
+
allCustomizationsCopy,
|
|
474
|
+
dirURI,
|
|
475
|
+
priority,
|
|
476
|
+
customizationSource
|
|
477
|
+
);
|
|
468
478
|
}
|
|
479
|
+
|
|
480
|
+
// Set up file watching for the directory (works for both existing and non-existing directories)
|
|
481
|
+
this.setupDirectoryWatcher(dirURI, priority, customizationSource);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Processes an existing directory for template files
|
|
486
|
+
* @param activeCustomizationsCopy Map to store active customizations
|
|
487
|
+
* @param trackedTemplateURIsCopy Set to track URIs being monitored
|
|
488
|
+
* @param allCustomizationsCopy Map to store all loaded customizations
|
|
489
|
+
* @param dirURI URI of the directory to process
|
|
490
|
+
* @param priority Priority level for customizations in this directory
|
|
491
|
+
* @param customizationSource Source type of the customization
|
|
492
|
+
*/
|
|
493
|
+
protected async processExistingTemplateDirectory(
|
|
494
|
+
activeCustomizationsCopy: Map<string, PromptFragmentCustomization>,
|
|
495
|
+
trackedTemplateURIsCopy: Set<string>,
|
|
496
|
+
allCustomizationsCopy: Map<string, PromptFragmentCustomization>,
|
|
497
|
+
dirURI: URI,
|
|
498
|
+
priority: number,
|
|
499
|
+
customizationSource: CustomizationSource
|
|
500
|
+
): Promise<void> {
|
|
469
501
|
const stat = await this.fileService.resolve(dirURI);
|
|
470
502
|
if (stat.children === undefined) {
|
|
471
503
|
return;
|
|
472
504
|
}
|
|
505
|
+
|
|
473
506
|
const parsedPromptFragments = new Set<string>();
|
|
474
507
|
for (const file of stat.children) {
|
|
475
508
|
if (!file.isFile) {
|
|
@@ -486,13 +519,34 @@ export class DefaultPromptFragmentCustomizationService implements PromptFragment
|
|
|
486
519
|
}
|
|
487
520
|
this.onDidChangePromptFragmentCustomizationEmitter.fire(Array.from(parsedPromptFragments));
|
|
488
521
|
this.onDidChangeCustomAgentsEmitter.fire();
|
|
522
|
+
}
|
|
489
523
|
|
|
524
|
+
/**
|
|
525
|
+
* Sets up file watching for a template directory (works for both existing and non-existing directories)
|
|
526
|
+
* @param dirURI URI of the directory to watch
|
|
527
|
+
* @param priority Priority level for customizations in this directory
|
|
528
|
+
* @param customizationSource Source type of the customization
|
|
529
|
+
*/
|
|
530
|
+
protected setupDirectoryWatcher(
|
|
531
|
+
dirURI: URI,
|
|
532
|
+
priority: number,
|
|
533
|
+
customizationSource: CustomizationSource
|
|
534
|
+
): void {
|
|
490
535
|
this.toDispose.push(this.fileService.watch(dirURI, { recursive: true, excludes: [] }));
|
|
491
536
|
this.toDispose.push(this.fileService.onDidFilesChange(async (event: FileChangesEvent) => {
|
|
492
|
-
//
|
|
537
|
+
// Filter for changes within the watched directory
|
|
493
538
|
if (!event.changes.some(change => change.resource.toString().startsWith(dirURI.toString()))) {
|
|
494
539
|
return;
|
|
495
540
|
}
|
|
541
|
+
|
|
542
|
+
// Handle directory creation or deletion (when watching a previously non-existent directory)
|
|
543
|
+
if (event.getAdded().some(addedFile => addedFile.resource.toString() === dirURI.toString()) ||
|
|
544
|
+
event.getDeleted().some(deletedFile => deletedFile.resource.toString() === dirURI.toString())) {
|
|
545
|
+
// Directory was created or deleted, restart the update process to handle the change
|
|
546
|
+
await this.update();
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
|
|
496
550
|
if (event.changes.some(change => change.resource.toString().endsWith('customAgents.yml'))) {
|
|
497
551
|
this.onDidChangeCustomAgentsEmitter.fire();
|
|
498
552
|
}
|
|
@@ -500,29 +554,42 @@ export class DefaultPromptFragmentCustomizationService implements PromptFragment
|
|
|
500
554
|
// Track changes for batched notification
|
|
501
555
|
const changedFragmentIds = new Set<string>();
|
|
502
556
|
|
|
503
|
-
//
|
|
557
|
+
// Handle deleted templates
|
|
504
558
|
for (const deletedFile of event.getDeleted()) {
|
|
505
559
|
const uriString = deletedFile.resource.toString();
|
|
506
560
|
if (this.trackedTemplateURIs.has(uriString)) {
|
|
507
|
-
const removedFragmentId = this.removeCustomizationFromMaps(
|
|
561
|
+
const removedFragmentId = this.removeCustomizationFromMaps(
|
|
562
|
+
uriString,
|
|
563
|
+
this.allCustomizations,
|
|
564
|
+
this.activeCustomizations,
|
|
565
|
+
this.trackedTemplateURIs
|
|
566
|
+
);
|
|
508
567
|
if (removedFragmentId) {
|
|
509
568
|
changedFragmentIds.add(removedFragmentId);
|
|
510
569
|
}
|
|
511
570
|
}
|
|
512
571
|
}
|
|
513
572
|
|
|
514
|
-
//
|
|
573
|
+
// Handle updated templates
|
|
515
574
|
for (const updatedFile of event.getUpdated()) {
|
|
516
575
|
const uriString = updatedFile.resource.toString();
|
|
517
576
|
if (this.trackedTemplateURIs.has(uriString)) {
|
|
518
577
|
const fileContent = await this.fileService.read(updatedFile.resource);
|
|
519
578
|
const fragmentId = this.removePromptTemplateSuffix(updatedFile.resource.path.name);
|
|
520
|
-
this.addTemplate(
|
|
579
|
+
this.addTemplate(
|
|
580
|
+
this.activeCustomizations,
|
|
581
|
+
fragmentId,
|
|
582
|
+
fileContent.value,
|
|
583
|
+
uriString,
|
|
584
|
+
this.allCustomizations,
|
|
585
|
+
priority,
|
|
586
|
+
customizationSource
|
|
587
|
+
);
|
|
521
588
|
changedFragmentIds.add(fragmentId);
|
|
522
589
|
}
|
|
523
590
|
}
|
|
524
591
|
|
|
525
|
-
//
|
|
592
|
+
// Handle new templates
|
|
526
593
|
for (const addedFile of event.getAdded()) {
|
|
527
594
|
if (addedFile.resource.parent.toString() === dirURI.toString() &&
|
|
528
595
|
this.isPromptTemplateExtension(addedFile.resource.path.ext)) {
|
|
@@ -530,7 +597,15 @@ export class DefaultPromptFragmentCustomizationService implements PromptFragment
|
|
|
530
597
|
this.trackedTemplateURIs.add(uriString);
|
|
531
598
|
const fileContent = await this.fileService.read(addedFile.resource);
|
|
532
599
|
const fragmentId = this.removePromptTemplateSuffix(addedFile.resource.path.name);
|
|
533
|
-
this.addTemplate(
|
|
600
|
+
this.addTemplate(
|
|
601
|
+
this.activeCustomizations,
|
|
602
|
+
fragmentId,
|
|
603
|
+
fileContent.value,
|
|
604
|
+
uriString,
|
|
605
|
+
this.allCustomizations,
|
|
606
|
+
priority,
|
|
607
|
+
customizationSource
|
|
608
|
+
);
|
|
534
609
|
changedFragmentIds.add(fragmentId);
|
|
535
610
|
}
|
|
536
611
|
}
|
|
@@ -538,7 +613,7 @@ export class DefaultPromptFragmentCustomizationService implements PromptFragment
|
|
|
538
613
|
const changedFragmentIdsArray = Array.from(changedFragmentIds);
|
|
539
614
|
if (changedFragmentIdsArray.length > 0) {
|
|
540
615
|
this.onDidChangePromptFragmentCustomizationEmitter.fire(changedFragmentIdsArray);
|
|
541
|
-
}
|
|
616
|
+
}
|
|
542
617
|
}));
|
|
543
618
|
}
|
|
544
619
|
|
package/src/browser/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ export * from './ai-activation-service';
|
|
|
21
21
|
export * from './ai-command-handler-factory';
|
|
22
22
|
export * from './ai-core-frontend-application-contribution';
|
|
23
23
|
export * from './ai-core-frontend-module';
|
|
24
|
-
export * from '
|
|
24
|
+
export * from '../common/ai-core-preferences';
|
|
25
25
|
export * from './ai-settings-service';
|
|
26
26
|
export * from './ai-view-contribution';
|
|
27
27
|
export * from './frontend-language-model-registry';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { nls, PreferenceSchema } from '@theia/core';
|
|
18
|
+
import {
|
|
19
|
+
NOTIFICATION_TYPES
|
|
20
|
+
} from './notification-types';
|
|
21
|
+
|
|
22
|
+
export const AGENT_SETTINGS_PREF = 'ai-features.agentSettings';
|
|
23
|
+
|
|
24
|
+
export const AgentSettingsPreferenceSchema: PreferenceSchema = {
|
|
25
|
+
properties: {
|
|
26
|
+
[AGENT_SETTINGS_PREF]: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
title: nls.localize('theia/ai/agents/title', 'Agent Settings'),
|
|
29
|
+
hidden: true,
|
|
30
|
+
markdownDescription: nls.localize('theia/ai/agents/mdDescription', 'Configure agent settings such as enabling or disabling specific agents, configuring prompts and \
|
|
31
|
+
selecting LLMs.'),
|
|
32
|
+
additionalProperties: {
|
|
33
|
+
type: 'object',
|
|
34
|
+
properties: {
|
|
35
|
+
enable: {
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
title: nls.localize('theia/ai/agents/enable/title', 'Enable Agent'),
|
|
38
|
+
markdownDescription: nls.localize('theia/ai/agents/enable/mdDescription', 'Specifies whether the agent should be enabled (true) or disabled (false).'),
|
|
39
|
+
default: true
|
|
40
|
+
},
|
|
41
|
+
languageModelRequirements: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
title: nls.localize('theia/ai/agents/languageModelRequirements/title', 'Language Model Requirements'),
|
|
44
|
+
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/mdDescription', 'Specifies the used language models for this agent.'),
|
|
45
|
+
items: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
purpose: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
title: nls.localize('theia/ai/agents/languageModelRequirements/purpose/title', 'Purpose'),
|
|
51
|
+
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/purpose/mdDescription',
|
|
52
|
+
'The purpose for which this language model is used.')
|
|
53
|
+
},
|
|
54
|
+
identifier: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
title: nls.localize('theia/ai/agents/languageModelRequirements/identifier/title', 'Identifier'),
|
|
57
|
+
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/identifier/mdDescription',
|
|
58
|
+
'The identifier of the language model to be used.')
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
required: ['purpose', 'identifier']
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
selectedVariants: {
|
|
65
|
+
type: 'object',
|
|
66
|
+
title: nls.localize('theia/ai/agents/selectedVariants/title', 'Selected Variants'),
|
|
67
|
+
markdownDescription: nls.localize('theia/ai/agents/selectedVariants/mdDescription', 'Specifies the currently selected prompt variants for this agent.'),
|
|
68
|
+
additionalProperties: {
|
|
69
|
+
type: 'string'
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
completionNotification: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
enum: [...NOTIFICATION_TYPES],
|
|
75
|
+
title: nls.localize('theia/ai/agents/completionNotification/title', 'Completion Notification'),
|
|
76
|
+
markdownDescription: nls.localize('theia/ai/agents/completionNotification/mdDescription',
|
|
77
|
+
'Notification behavior when this agent completes a task. If not set, the global default notification setting will be used.\n\
|
|
78
|
+
- `os-notification`: Show OS/system notifications\n\
|
|
79
|
+
- `message`: Show notifications in the status bar/message area\n\
|
|
80
|
+
- `blink`: Blink or highlight the UI\n\
|
|
81
|
+
- `off`: Disable notifications for this agent')
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
required: ['languageModelRequirements']
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
package/src/common/agent.ts
CHANGED
|
@@ -56,7 +56,14 @@ export interface Agent {
|
|
|
56
56
|
/** A markdown description of its functionality and its privacy-relevant requirements, including function call handlers that access some data autonomously. */
|
|
57
57
|
readonly description: string;
|
|
58
58
|
|
|
59
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The list of global variable identifiers that are always available to this agent during execution,
|
|
61
|
+
* regardless of whether they are referenced in prompts.
|
|
62
|
+
*
|
|
63
|
+
* This array is primarily used for documentation purposes in the AI Configuration View
|
|
64
|
+
* to show which variables are guaranteed to be available to the agent. Referenced variables are NOT automatically handed over by the framework,
|
|
65
|
+
* this must be explicitly done in the agent implementation.
|
|
66
|
+
*/
|
|
60
67
|
readonly variables: string[];
|
|
61
68
|
|
|
62
69
|
/** The prompts introduced and used by this agent. */
|
|
@@ -68,9 +75,24 @@ export interface Agent {
|
|
|
68
75
|
/** A list of tags to filter agents and to display capabilities in the UI */
|
|
69
76
|
readonly tags?: string[];
|
|
70
77
|
|
|
71
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* The list of local variable identifiers that can be made available to this agent during execution,
|
|
80
|
+
* these variables are context specific and do not exist for other agents.
|
|
81
|
+
*
|
|
82
|
+
* This array is primarily used for documentation purposes in the AI Configuration View
|
|
83
|
+
* to show which variables can be made available to the agent.
|
|
84
|
+
* Referenced variables are NOT automatically handed over by the framework,
|
|
85
|
+
* this must be explicitly done in the agent implementation or in prompts.
|
|
86
|
+
*/
|
|
72
87
|
readonly agentSpecificVariables: AgentSpecificVariables[];
|
|
73
88
|
|
|
74
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* The list of global function identifiers that are always available to this agent during execution,
|
|
91
|
+
* regardless of whether they are referenced in prompts.
|
|
92
|
+
*
|
|
93
|
+
* This array is primarily used for documentation purposes in the AI Configuration View
|
|
94
|
+
* to show which functions are guaranteed to be available to the agent. Referenced functions are NOT automatically handed over by the framework,
|
|
95
|
+
* this must be explicitly done in the agent implementation.
|
|
96
|
+
*/
|
|
75
97
|
readonly functions: string[];
|
|
76
98
|
}
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { nls } from '@theia/core';
|
|
18
|
-
import { PreferenceProxy
|
|
19
|
-
import { PreferenceProxyFactory } from '@theia/core/lib/browser/preferences/injectable-preference-proxy';
|
|
17
|
+
import { nls, PreferenceProxyFactory } from '@theia/core';
|
|
18
|
+
import { PreferenceProxy } from '@theia/core/lib/common';
|
|
20
19
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
21
20
|
import {
|
|
22
21
|
NOTIFICATION_TYPES,
|
|
23
22
|
NOTIFICATION_TYPE_OFF,
|
|
24
23
|
NotificationType
|
|
25
|
-
} from '
|
|
24
|
+
} from './notification-types';
|
|
25
|
+
import { PreferenceSchema } from '@theia/core/lib/common/preferences/preference-schema';
|
|
26
26
|
|
|
27
27
|
export const AI_CORE_PREFERENCES_TITLE = nls.localize('theia/ai/core/prefs/title', '✨ AI Features [Beta]');
|
|
28
28
|
export const PREFERENCE_NAME_PROMPT_TEMPLATES = 'ai-features.promptTemplates.promptTemplatesFolder';
|
|
@@ -33,7 +33,6 @@ export const PREFERENCE_NAME_DEFAULT_NOTIFICATION_TYPE = 'ai-features.notificati
|
|
|
33
33
|
export const LANGUAGE_MODEL_ALIASES_PREFERENCE = 'ai-features.languageModelAliases';
|
|
34
34
|
|
|
35
35
|
export const aiCorePreferenceSchema: PreferenceSchema = {
|
|
36
|
-
type: 'object',
|
|
37
36
|
properties: {
|
|
38
37
|
[PREFERENCE_NAME_PROMPT_TEMPLATES]: {
|
|
39
38
|
title: AI_CORE_PREFERENCES_TITLE,
|
package/src/common/index.ts
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
export * from './agent-service';
|
|
17
17
|
export * from './agent';
|
|
18
18
|
export * from './agents-variable-contribution';
|
|
19
|
+
export * from './ai-core-preferences';
|
|
19
20
|
export * from './tool-invocation-registry';
|
|
20
21
|
export * from './language-model-delegate';
|
|
21
22
|
export * from './language-model-util';
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
} from './language-model-frontend-delegate';
|
|
21
21
|
import {
|
|
22
22
|
ConnectionHandler,
|
|
23
|
+
PreferenceContribution,
|
|
23
24
|
RpcConnectionHandler,
|
|
24
25
|
bindContributionProvider,
|
|
25
26
|
} from '@theia/core';
|
|
@@ -43,6 +44,8 @@ import {
|
|
|
43
44
|
} from '../common';
|
|
44
45
|
import { BackendLanguageModelRegistryImpl } from './backend-language-model-registry';
|
|
45
46
|
import { TokenUsageServiceImpl } from './token-usage-service-impl';
|
|
47
|
+
import { AgentSettingsPreferenceSchema } from '../common/agent-preferences';
|
|
48
|
+
import { bindAICorePreferences } from '../common/ai-core-preferences';
|
|
46
49
|
|
|
47
50
|
// We use a connection module to handle AI services separately for each frontend.
|
|
48
51
|
const aiCoreConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
|
|
@@ -107,5 +110,7 @@ const aiCoreConnectionModule = ConnectionContainerModule.create(({ bind, bindBac
|
|
|
107
110
|
});
|
|
108
111
|
|
|
109
112
|
export default new ContainerModule(bind => {
|
|
113
|
+
bind(PreferenceContribution).toConstantValue({ schema: AgentSettingsPreferenceSchema });
|
|
114
|
+
bindAICorePreferences(bind);
|
|
110
115
|
bind(ConnectionContainerModule).toConstantValue(aiCoreConnectionModule);
|
|
111
116
|
});
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
|
|
2
|
-
export declare const AGENT_SETTINGS_PREF = "ai-features.agentSettings";
|
|
3
|
-
export declare const AgentSettingsPreferenceSchema: PreferenceSchema;
|
|
4
|
-
//# sourceMappingURL=agent-preferences.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/agent-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAK/F,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,eAAO,MAAM,6BAA6B,EAAE,gBA+D3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-preferences.js","sourceRoot":"","sources":["../../src/browser/agent-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,sCAAkC;AAElC,qEAEsC;AAEzB,QAAA,mBAAmB,GAAG,2BAA2B,CAAC;AAElD,QAAA,6BAA6B,GAAqB;IAC7D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,CAAC,2BAAmB,CAAC,EAAE;YACrB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;YAC9D,MAAM,EAAE,IAAI;YACZ,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE;wBACjD,CAAC;YACnB,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,8BAA8B,EAAE,cAAc,CAAC;wBACnE,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,2EAA2E,CAAC;wBACtJ,OAAO,EAAE,IAAI;qBACd;oBACD,yBAAyB,EAAE;wBACzB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EAAE,6BAA6B,CAAC;wBACrG,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,yDAAyD,EAAE,oDAAoD,CAAC;wBAClJ,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,OAAO,EAAE;oCACP,IAAI,EAAE,QAAQ;oCACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,yDAAyD,EAAE,SAAS,CAAC;oCACzF,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,iEAAiE,EAAE,oDAAoD,CAAC;iCAC3J;gCACD,UAAU,EAAE;oCACV,IAAI,EAAE,QAAQ;oCACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,4DAA4D,EAAE,YAAY,CAAC;oCAC/F,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,oEAAoE,EAAE,kDAAkD,CAAC;iCAC5J;6BACF;4BACD,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;yBACpC;qBACF;oBACD,gBAAgB,EAAE;wBAChB,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAAE,mBAAmB,CAAC;wBAClF,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,gDAAgD,EAAE,kEAAkE,CAAC;wBACvJ,oBAAoB,EAAE;4BACpB,IAAI,EAAE,QAAQ;yBACf;qBACF;oBACD,sBAAsB,EAAE;wBACtB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,GAAG,uCAAkB,CAAC;wBAC7B,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAAE,yBAAyB,CAAC;wBAC9F,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,sDAAsD,EACtF;;;;8DAIgD,CAAC;qBACpD;iBACF;gBACD,QAAQ,EAAE,CAAC,2BAA2B,CAAC;aACxC;SACF;KACF;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-core-preferences.d.ts","sourceRoot":"","sources":["../../src/browser/ai-core-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAGH,gBAAgB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,yBAAyB,QAAoE,CAAC;AAC3G,eAAO,MAAM,gCAAgC,sDAAsD,CAAC;AACpG,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,eAAO,MAAM,2BAA2B,yCAAyC,CAAC;AAClF,eAAO,MAAM,yCAAyC,sCAAsC,CAAC;AAE7F,eAAO,MAAM,iCAAiC,qCAAqC,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,gBA+HpC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC,CAAC,gCAAgC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvD,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IACtE,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,CAAC,yCAAyC,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC7E;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,KAAK;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAErE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAKjE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,YAAa,cAAc,UAAU,KAAK,KAAG,MA0CrF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-core-preferences.js","sourceRoot":"","sources":["../../src/browser/ai-core-preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2025 EclipseSource GmbH.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { nls } from '@theia/core';
|
|
18
|
-
import { PreferenceSchema } from '@theia/core/lib/browser/preferences/preference-contribution';
|
|
19
|
-
import {
|
|
20
|
-
NOTIFICATION_TYPES
|
|
21
|
-
} from '../common/notification-types';
|
|
22
|
-
|
|
23
|
-
export const AGENT_SETTINGS_PREF = 'ai-features.agentSettings';
|
|
24
|
-
|
|
25
|
-
export const AgentSettingsPreferenceSchema: PreferenceSchema = {
|
|
26
|
-
type: 'object',
|
|
27
|
-
properties: {
|
|
28
|
-
[AGENT_SETTINGS_PREF]: {
|
|
29
|
-
type: 'object',
|
|
30
|
-
title: nls.localize('theia/ai/agents/title', 'Agent Settings'),
|
|
31
|
-
hidden: true,
|
|
32
|
-
markdownDescription: nls.localize('theia/ai/agents/mdDescription', 'Configure agent settings such as enabling or disabling specific agents, configuring prompts and \
|
|
33
|
-
selecting LLMs.'),
|
|
34
|
-
additionalProperties: {
|
|
35
|
-
type: 'object',
|
|
36
|
-
properties: {
|
|
37
|
-
enable: {
|
|
38
|
-
type: 'boolean',
|
|
39
|
-
title: nls.localize('theia/ai/agents/enable/title', 'Enable Agent'),
|
|
40
|
-
markdownDescription: nls.localize('theia/ai/agents/enable/mdDescription', 'Specifies whether the agent should be enabled (true) or disabled (false).'),
|
|
41
|
-
default: true
|
|
42
|
-
},
|
|
43
|
-
languageModelRequirements: {
|
|
44
|
-
type: 'array',
|
|
45
|
-
title: nls.localize('theia/ai/agents/languageModelRequirements/title', 'Language Model Requirements'),
|
|
46
|
-
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/mdDescription', 'Specifies the used language models for this agent.'),
|
|
47
|
-
items: {
|
|
48
|
-
type: 'object',
|
|
49
|
-
properties: {
|
|
50
|
-
purpose: {
|
|
51
|
-
type: 'string',
|
|
52
|
-
title: nls.localize('theia/ai/agents/languageModelRequirements/purpose/title', 'Purpose'),
|
|
53
|
-
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/purpose/mdDescription', 'The purpose for which this language model is used.')
|
|
54
|
-
},
|
|
55
|
-
identifier: {
|
|
56
|
-
type: 'string',
|
|
57
|
-
title: nls.localize('theia/ai/agents/languageModelRequirements/identifier/title', 'Identifier'),
|
|
58
|
-
markdownDescription: nls.localize('theia/ai/agents/languageModelRequirements/identifier/mdDescription', 'The identifier of the language model to be used.')
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
required: ['purpose', 'identifier']
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
selectedVariants: {
|
|
65
|
-
type: 'object',
|
|
66
|
-
title: nls.localize('theia/ai/agents/selectedVariants/title', 'Selected Variants'),
|
|
67
|
-
markdownDescription: nls.localize('theia/ai/agents/selectedVariants/mdDescription', 'Specifies the currently selected prompt variants for this agent.'),
|
|
68
|
-
additionalProperties: {
|
|
69
|
-
type: 'string'
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
completionNotification: {
|
|
73
|
-
type: 'string',
|
|
74
|
-
enum: [...NOTIFICATION_TYPES],
|
|
75
|
-
title: nls.localize('theia/ai/agents/completionNotification/title', 'Completion Notification'),
|
|
76
|
-
markdownDescription: nls.localize('theia/ai/agents/completionNotification/mdDescription',
|
|
77
|
-
'Notification behavior when this agent completes a task. If not set, the global default notification setting will be used.\n\
|
|
78
|
-
- `os-notification`: Show OS/system notifications\n\
|
|
79
|
-
- `message`: Show notifications in the status bar/message area\n\
|
|
80
|
-
- `blink`: Blink or highlight the UI\n\
|
|
81
|
-
- `off`: Disable notifications for this agent')
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
required: ['languageModelRequirements']
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|