@theia/ai-ide 1.75.0-next.43 → 1.75.0-next.46
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-configuration/categories/prompts-and-skills-configuration-category.d.ts +18 -0
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts.map +1 -1
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js +60 -7
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js.map +1 -1
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js +117 -1
- package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js.map +1 -1
- package/package.json +24 -24
- package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts +146 -1
- package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx +58 -8
package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Agent, AgentService } from '@theia/ai-core';
|
|
2
2
|
import { SkillService } from '@theia/ai-core/lib/browser/skill-service';
|
|
3
|
+
import { AgentPluginUiBridge, InstalledAgentPluginInfo } from '@theia/ai-core/lib/browser/agent-plugin-ui-bridge';
|
|
4
|
+
import { SkillRegistryUiBridge } from '@theia/ai-core/lib/browser/skill-registry-ui-bridge';
|
|
3
5
|
import { Skill } from '@theia/ai-core/lib/common/skill';
|
|
4
6
|
import { PromptFragment, PromptService } from '@theia/ai-core/lib/common/prompt-service';
|
|
5
7
|
import { Emitter, Event, ILogger } from '@theia/core';
|
|
@@ -11,6 +13,7 @@ import { AiConfigurationCategory, AiConfigurationRenderContext, AiConfigurationS
|
|
|
11
13
|
import { SinglePageCategoryRenderer } from '@theia/ai-core-ui/lib/browser/ai-configuration/renderers/single-page-category-renderer';
|
|
12
14
|
import { AiSettingsRowService } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row-service';
|
|
13
15
|
import { CollapsibleRow } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/collapsible-list';
|
|
16
|
+
import { AiConfigurationOrigin } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-configuration-origin-badge';
|
|
14
17
|
/**
|
|
15
18
|
* The "Skills & Slash Commands" category: a `single-page` category that lists skills (file-based
|
|
16
19
|
* `SKILL.md` units) and slash commands (prompt fragments with command metadata) as filterable,
|
|
@@ -31,6 +34,8 @@ export declare class PromptsAndSkillsConfigurationCategory extends SinglePageCat
|
|
|
31
34
|
protected readonly settingsRowService: AiSettingsRowService;
|
|
32
35
|
protected readonly clipboardService: ClipboardService;
|
|
33
36
|
protected readonly logger: ILogger;
|
|
37
|
+
protected readonly agentPluginUiBridge?: AgentPluginUiBridge;
|
|
38
|
+
protected readonly skillRegistryUiBridge?: SkillRegistryUiBridge;
|
|
34
39
|
protected readonly onDidChangeEmitter: Emitter<void>;
|
|
35
40
|
readonly onDidChange: Event<void>;
|
|
36
41
|
protected readonly toDispose: DisposableCollection;
|
|
@@ -61,6 +66,19 @@ export declare class PromptsAndSkillsConfigurationCategory extends SinglePageCat
|
|
|
61
66
|
protected getSkillCapableAgents(): Agent[];
|
|
62
67
|
protected templateSurfacesSkills(fragmentId: string, visited: Set<string>): boolean;
|
|
63
68
|
protected openSkill(skill: Skill): void;
|
|
69
|
+
/**
|
|
70
|
+
* The registry entry a skill was installed from, or the Agent Plugin that contributed it - never
|
|
71
|
+
* both: the registry installs a skill into a root of its own, a plugin ships it inside the plugin.
|
|
72
|
+
* Empty for a workspace or configured skill, which is the common case, and always empty without
|
|
73
|
+
* `@theia/ai-registry`, which binds both bridges.
|
|
74
|
+
*/
|
|
75
|
+
protected getSkillOrigins(skill: Skill): AiConfigurationOrigin[] | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* The Agent Plugin a skill was contributed by, or `undefined` for a skill from a built-in root - the
|
|
78
|
+
* common case - and for a qualifier belonging to no installed plugin: a bare qualifier is worth neither
|
|
79
|
+
* a label nor a reveal action. Always `undefined` without `@theia/ai-registry`, which binds the bridge.
|
|
80
|
+
*/
|
|
81
|
+
protected getOwningPlugin(skill: Skill): InstalledAgentPluginInfo | undefined;
|
|
64
82
|
getSearchItems(): AiConfigurationSearchItem[];
|
|
65
83
|
}
|
|
66
84
|
//# sourceMappingURL=prompts-and-skills-configuration-category.d.ts.map
|
package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts-and-skills-configuration-category.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAA8B,cAAc,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACrH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAY,MAAM,aAAa,CAAC;AAChE,OAAO,EAAiB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EACH,uBAAuB,EAGvB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAChC,MAAM,0EAA0E,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wFAAwF,CAAC;AAOpI,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AACzH,OAAO,EAGH,cAAc,EAEjB,MAAM,4EAA4E,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts-and-skills-configuration-category.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx"],"names":[],"mappings":"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"}
|
package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js
CHANGED
|
@@ -22,6 +22,9 @@ const ai_core_1 = require("@theia/ai-core");
|
|
|
22
22
|
const common_1 = require("@theia/ai-core/lib/common");
|
|
23
23
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
24
24
|
const skill_service_1 = require("@theia/ai-core/lib/browser/skill-service");
|
|
25
|
+
const agent_plugin_ui_bridge_1 = require("@theia/ai-core/lib/browser/agent-plugin-ui-bridge");
|
|
26
|
+
const skill_registry_ui_bridge_1 = require("@theia/ai-core/lib/browser/skill-registry-ui-bridge");
|
|
27
|
+
const skill_1 = require("@theia/ai-core/lib/common/skill");
|
|
25
28
|
const prompt_service_1 = require("@theia/ai-core/lib/common/prompt-service");
|
|
26
29
|
const core_1 = require("@theia/core");
|
|
27
30
|
const browser_1 = require("@theia/core/lib/browser");
|
|
@@ -34,6 +37,7 @@ const ai_configuration_primitives_1 = require("@theia/ai-core-ui/lib/browser/ai-
|
|
|
34
37
|
const ai_settings_row_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row");
|
|
35
38
|
const ai_settings_row_service_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row-service");
|
|
36
39
|
const collapsible_list_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/collapsible-list");
|
|
40
|
+
const ai_configuration_origin_badge_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-configuration-origin-badge");
|
|
37
41
|
const agent_chips_1 = require("./agent-chips");
|
|
38
42
|
const SKILL_ROW_PREFIX = 'skill:';
|
|
39
43
|
const COMMAND_ROW_PREFIX = 'cmd:';
|
|
@@ -92,6 +96,14 @@ let PromptsAndSkillsConfigurationCategory = class PromptsAndSkillsConfigurationC
|
|
|
92
96
|
}),
|
|
93
97
|
this.settingsRowService.onPreferenceChanged(() => this.onDidChangeEmitter.fire())
|
|
94
98
|
]);
|
|
99
|
+
if (this.agentPluginUiBridge) {
|
|
100
|
+
// The plugin names come from the bridge, so installing one changes this page even when the skills do not.
|
|
101
|
+
this.toDispose.push(this.agentPluginUiBridge.onDidChange(() => this.onDidChangeEmitter.fire()));
|
|
102
|
+
}
|
|
103
|
+
if (this.skillRegistryUiBridge) {
|
|
104
|
+
// Likewise: linking or unlinking a skill folder changes its provenance, not the skill itself.
|
|
105
|
+
this.toDispose.push(this.skillRegistryUiBridge.onDidChange(() => this.onDidChangeEmitter.fire()));
|
|
106
|
+
}
|
|
95
107
|
}
|
|
96
108
|
dispose() {
|
|
97
109
|
this.toDispose.dispose();
|
|
@@ -100,7 +112,8 @@ let PromptsAndSkillsConfigurationCategory = class PromptsAndSkillsConfigurationC
|
|
|
100
112
|
this.availableAgents = this.agentService.getAllAgents();
|
|
101
113
|
}
|
|
102
114
|
loadSkills() {
|
|
103
|
-
|
|
115
|
+
// Sorted and keyed by the qualified name: it is what the model addresses and the only name unique across roots.
|
|
116
|
+
this.skills = this.skillService.getSkills().sort((a, b) => a.qualifiedName.localeCompare(b.qualifiedName));
|
|
104
117
|
}
|
|
105
118
|
loadSlashCommands() {
|
|
106
119
|
// Skills are surfaced as synthetic `skill-command-*` fragments; they are shown as skills, not duplicated here.
|
|
@@ -139,16 +152,19 @@ let PromptsAndSkillsConfigurationCategory = class PromptsAndSkillsConfigurationC
|
|
|
139
152
|
buildSkillRow(skill) {
|
|
140
153
|
const tools = skill.allowedTools ?? [];
|
|
141
154
|
const metadata = skill.metadata ? Object.entries(skill.metadata) : [];
|
|
155
|
+
const plugin = this.getOwningPlugin(skill);
|
|
156
|
+
const origins = this.getSkillOrigins(skill);
|
|
142
157
|
const pills = [];
|
|
143
158
|
if (tools.length > 0) {
|
|
144
159
|
pills.push(core_1.nls.localizeByDefault('{0} tools', tools.length));
|
|
145
160
|
}
|
|
146
161
|
return {
|
|
147
|
-
id: SKILL_ROW_PREFIX + skill.
|
|
148
|
-
title: skill.
|
|
162
|
+
id: SKILL_ROW_PREFIX + skill.qualifiedName,
|
|
163
|
+
title: skill.qualifiedName,
|
|
149
164
|
description: skill.description,
|
|
150
165
|
pills,
|
|
151
|
-
|
|
166
|
+
origins,
|
|
167
|
+
filterText: `${skill.qualifiedName} ${skill.description ?? ''} ${plugin?.name ?? ''}`.toLocaleLowerCase(),
|
|
152
168
|
actions: (0, jsx_runtime_1.jsx)(collapsible_list_1.CollapsibleRowAction, { iconClass: (0, browser_1.codicon)('edit'), label: core_1.nls.localize('theia/ai/ide/skillsConfiguration/openSkillFile', 'Open SKILL.md'), onActivate: () => this.openSkill(skill) }),
|
|
153
169
|
body: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ai_configuration_primitives_1.AiConfigurationValueRow, { label: core_1.nls.localizeByDefault('Location'), value: skill.location, onCopy: this.copyValue }), (skill.license || skill.compatibility || metadata.length > 0) && (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-section', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-section-label', children: core_1.nls.localize('theia/ai/ide/skillsConfiguration/frontmatter', 'Frontmatter') }), skill.license && (0, jsx_runtime_1.jsx)(ai_configuration_primitives_1.AiConfigurationValueRow, { label: core_1.nls.localizeByDefault('License'), value: skill.license, onCopy: this.copyValue }), skill.compatibility && (0, jsx_runtime_1.jsx)(ai_configuration_primitives_1.AiConfigurationValueRow, { label: core_1.nls.localize('theia/ai/ide/skillsConfiguration/compatibility', 'Compatibility'), value: skill.compatibility, onCopy: this.copyValue }), metadata.map(([key, value]) => (0, jsx_runtime_1.jsx)(ai_configuration_primitives_1.AiConfigurationValueRow, { label: key, value: value, onCopy: this.copyValue }, key))] }), (0, jsx_runtime_1.jsxs)("div", { className: 'ai-variable-section', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-section-label', children: core_1.nls.localizeByDefault('Allowed tools') }), tools.length === 0
|
|
154
170
|
? (0, jsx_runtime_1.jsx)("div", { className: 'ai-variable-section-note', children: core_1.nls.localize('theia/ai/ide/skillsConfiguration/noAllowedTools', 'No allowed tools declared. The skill may use any tool the agent already has.') })
|
|
@@ -221,17 +237,44 @@ let PromptsAndSkillsConfigurationCategory = class PromptsAndSkillsConfigurationC
|
|
|
221
237
|
openSkill(skill) {
|
|
222
238
|
(0, browser_1.open)(this.openerService, core_1.URI.fromFilePath(skill.location));
|
|
223
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* The registry entry a skill was installed from, or the Agent Plugin that contributed it - never
|
|
242
|
+
* both: the registry installs a skill into a root of its own, a plugin ships it inside the plugin.
|
|
243
|
+
* Empty for a workspace or configured skill, which is the common case, and always empty without
|
|
244
|
+
* `@theia/ai-registry`, which binds both bridges.
|
|
245
|
+
*/
|
|
246
|
+
getSkillOrigins(skill) {
|
|
247
|
+
const plugin = this.getOwningPlugin(skill);
|
|
248
|
+
if (plugin) {
|
|
249
|
+
return [ai_configuration_origin_badge_1.AiConfigurationOrigin.agentPlugin(plugin, () => this.agentPluginUiBridge?.revealPlugin(plugin.pluginId))];
|
|
250
|
+
}
|
|
251
|
+
const entryId = this.skillRegistryUiBridge?.getRegistryEntryId(skill);
|
|
252
|
+
if (entryId) {
|
|
253
|
+
return [ai_configuration_origin_badge_1.AiConfigurationOrigin.registry(entryId, () => this.skillRegistryUiBridge?.revealSkill(entryId))];
|
|
254
|
+
}
|
|
255
|
+
return undefined;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* The Agent Plugin a skill was contributed by, or `undefined` for a skill from a built-in root - the
|
|
259
|
+
* common case - and for a qualifier belonging to no installed plugin: a bare qualifier is worth neither
|
|
260
|
+
* a label nor a reveal action. Always `undefined` without `@theia/ai-registry`, which binds the bridge.
|
|
261
|
+
*/
|
|
262
|
+
getOwningPlugin(skill) {
|
|
263
|
+
const qualifier = skill_1.Skill.qualifierOf(skill);
|
|
264
|
+
return qualifier ? this.agentPluginUiBridge?.getPluginByQualifier(qualifier) : undefined;
|
|
265
|
+
}
|
|
224
266
|
getSearchItems() {
|
|
225
267
|
const items = [];
|
|
226
268
|
const skillLabel = core_1.nls.localizeByDefault('Skill');
|
|
227
269
|
const slashCommandLabel = core_1.nls.localize('theia/ai/ide/skillsConfiguration/slashCommandsSectionHeader', 'Slash Commands');
|
|
228
270
|
for (const skill of this.skills) {
|
|
229
271
|
items.push({
|
|
230
|
-
label: skill.
|
|
272
|
+
label: skill.qualifiedName,
|
|
231
273
|
typeLabel: skillLabel,
|
|
232
274
|
categoryId: this.id,
|
|
233
|
-
target: { categoryId: this.id, highlight: { rowId: SKILL_ROW_PREFIX + skill.
|
|
234
|
-
|
|
275
|
+
target: { categoryId: this.id, highlight: { rowId: SKILL_ROW_PREFIX + skill.qualifiedName } },
|
|
276
|
+
// The unqualified name too: a skill contributed by a plugin is still looked up by the name in its SKILL.md.
|
|
277
|
+
keywords: `${skill.name} ${skill.description ?? ''}`
|
|
235
278
|
});
|
|
236
279
|
}
|
|
237
280
|
for (const command of this.slashCommands) {
|
|
@@ -276,6 +319,16 @@ tslib_1.__decorate([
|
|
|
276
319
|
(0, inversify_1.named)('ai-ide:PromptsAndSkillsConfigurationCategory'),
|
|
277
320
|
tslib_1.__metadata("design:type", Object)
|
|
278
321
|
], PromptsAndSkillsConfigurationCategory.prototype, "logger", void 0);
|
|
322
|
+
tslib_1.__decorate([
|
|
323
|
+
(0, inversify_1.inject)(agent_plugin_ui_bridge_1.AgentPluginUiBridge),
|
|
324
|
+
(0, inversify_1.optional)(),
|
|
325
|
+
tslib_1.__metadata("design:type", Object)
|
|
326
|
+
], PromptsAndSkillsConfigurationCategory.prototype, "agentPluginUiBridge", void 0);
|
|
327
|
+
tslib_1.__decorate([
|
|
328
|
+
(0, inversify_1.inject)(skill_registry_ui_bridge_1.SkillRegistryUiBridge),
|
|
329
|
+
(0, inversify_1.optional)(),
|
|
330
|
+
tslib_1.__metadata("design:type", Object)
|
|
331
|
+
], PromptsAndSkillsConfigurationCategory.prototype, "skillRegistryUiBridge", void 0);
|
|
279
332
|
tslib_1.__decorate([
|
|
280
333
|
(0, inversify_1.postConstruct)(),
|
|
281
334
|
tslib_1.__metadata("design:type", Function),
|
package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts-and-skills-configuration-category.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompts-and-skills-configuration-category.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx"],"names":[],"mappings":"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"}
|
package/lib/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.js
CHANGED
|
@@ -20,6 +20,7 @@ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
|
20
20
|
const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
|
|
21
21
|
frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
|
|
22
22
|
const chai_1 = require("chai");
|
|
23
|
+
const core_1 = require("@theia/core");
|
|
23
24
|
const ai_configuration_category_1 = require("@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category");
|
|
24
25
|
const prompts_and_skills_configuration_category_1 = require("./prompts-and-skills-configuration-category");
|
|
25
26
|
disableJSDOM();
|
|
@@ -34,13 +35,52 @@ describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
|
34
35
|
category.slashCommands = slashCommands;
|
|
35
36
|
return category;
|
|
36
37
|
}
|
|
38
|
+
/** Leaves the bridge unbound when `installedPlugins` is omitted, i.e. a product without `@theia/ai-registry`. */
|
|
39
|
+
function categoryWithPlugins(skills, installedPlugins, revealed = []) {
|
|
40
|
+
const category = categoryWith(skills, []);
|
|
41
|
+
if (installedPlugins) {
|
|
42
|
+
const bridge = {
|
|
43
|
+
getPlugin: pluginId => installedPlugins.find(plugin => plugin.pluginId === pluginId),
|
|
44
|
+
getPluginByQualifier: qualifier => installedPlugins.find(plugin => plugin.qualifier === qualifier),
|
|
45
|
+
revealPlugin: pluginId => { revealed.push(pluginId); },
|
|
46
|
+
onDidChange: core_1.Event.None
|
|
47
|
+
};
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
category.agentPluginUiBridge = bridge;
|
|
50
|
+
}
|
|
51
|
+
return category;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Leaves the bridge unbound when `managed` is omitted. `managed` maps a skill location to the
|
|
55
|
+
* registry entry it was installed from, which is how the real bridge keys them.
|
|
56
|
+
*/
|
|
57
|
+
function categoryWithRegistrySkills(skills, managed, revealed = []) {
|
|
58
|
+
const category = categoryWith(skills, []);
|
|
59
|
+
if (managed) {
|
|
60
|
+
const bridge = {
|
|
61
|
+
getRegistryEntryId: forSkill => managed[forSkill.location],
|
|
62
|
+
revealSkill: skillId => { revealed.push(skillId); },
|
|
63
|
+
onDidChange: core_1.Event.None
|
|
64
|
+
};
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
+
category.skillRegistryUiBridge = bridge;
|
|
67
|
+
}
|
|
68
|
+
return category;
|
|
69
|
+
}
|
|
70
|
+
function skillRow(category, forSkill) {
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
return category.buildSkillRow(forSkill);
|
|
73
|
+
}
|
|
74
|
+
function skill(overrides) {
|
|
75
|
+
return { name: 'query-builder', qualifiedName: 'query-builder', description: 'Build SQL', location: '/skills/query-builder/SKILL.md', ...overrides };
|
|
76
|
+
}
|
|
37
77
|
it('declares the skills and slash commands single-page metadata', () => {
|
|
38
78
|
const category = new prompts_and_skills_configuration_category_1.PromptsAndSkillsConfigurationCategory();
|
|
39
79
|
(0, chai_1.expect)(category.id).to.equal(ai_configuration_category_1.AiConfigurationCategoryId.PROMPTS_AND_SKILLS);
|
|
40
80
|
(0, chai_1.expect)(category.kind).to.equal('single-page');
|
|
41
81
|
});
|
|
42
82
|
it('indexes skills and slash commands for search, highlighting their rows', () => {
|
|
43
|
-
const category = categoryWith([{ name: 'refactor', description: 'do it', location: '/s' }], [{ id: 'cmd', commandName: 'go', commandDescription: 'run' }]);
|
|
83
|
+
const category = categoryWith([{ name: 'refactor', qualifiedName: 'refactor', description: 'do it', location: '/s' }], [{ id: 'cmd', commandName: 'go', commandDescription: 'run' }]);
|
|
44
84
|
const items = category.getSearchItems();
|
|
45
85
|
const byType = (typeIncludes) => items.filter(i => i.typeLabel.toLowerCase().includes(typeIncludes));
|
|
46
86
|
(0, chai_1.expect)(byType('skill')).to.have.lengthOf(1);
|
|
@@ -64,5 +104,81 @@ describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
|
64
104
|
const commands = category.slashCommands;
|
|
65
105
|
(0, chai_1.expect)(commands.map(command => command.id)).to.deep.equal(['remember']);
|
|
66
106
|
});
|
|
107
|
+
describe('Agent Plugin provenance', () => {
|
|
108
|
+
const bigquery = { pluginId: 'io.example/bq', name: 'BigQuery Data Analytics', qualifier: 'bigquery' };
|
|
109
|
+
const contributed = skill({ qualifiedName: 'bigquery:query-builder', location: '/plugins/bigquery/skills/query-builder/SKILL.md' });
|
|
110
|
+
it('keys and titles a skill row by its qualified name, which is what the model addresses', () => {
|
|
111
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
112
|
+
(0, chai_1.expect)(row.id).to.equal('skill:bigquery:query-builder');
|
|
113
|
+
(0, chai_1.expect)(row.title).to.equal('bigquery:query-builder');
|
|
114
|
+
});
|
|
115
|
+
it('labels a contributed skill with the shared origin badge naming the plugin that supplied it', () => {
|
|
116
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
117
|
+
// The same descriptor the MCP page builds, so both pages render one badge rather than two designs.
|
|
118
|
+
(0, chai_1.expect)(row.origins?.map(origin => origin.label)).to.deep.equal(['via BigQuery Data Analytics']);
|
|
119
|
+
// Filterable by the plugin name too, so a plugin's skills can be listed together.
|
|
120
|
+
(0, chai_1.expect)(row.filterText).to.contain('bigquery data analytics');
|
|
121
|
+
});
|
|
122
|
+
it('reveals the owning plugin when the origin badge is activated', () => {
|
|
123
|
+
const revealed = [];
|
|
124
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery], revealed), contributed);
|
|
125
|
+
// Activated directly: rendering the badge as a button is `AiConfigurationOriginBadge`'s
|
|
126
|
+
// contract, tested where it lives; what belongs here is where this page's badge leads.
|
|
127
|
+
row.origins[0].activate();
|
|
128
|
+
(0, chai_1.expect)(revealed).to.deep.equal([bigquery.pluginId]);
|
|
129
|
+
});
|
|
130
|
+
it('keeps the provenance out of the pills, which state what the skill is rather than where it came from', () => {
|
|
131
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
132
|
+
(0, chai_1.expect)(row.pills?.some(pill => pill.startsWith('via '))).to.not.equal(true);
|
|
133
|
+
});
|
|
134
|
+
it('labels nothing for a skill from a built-in root, which is the common case', () => {
|
|
135
|
+
const own = skill({});
|
|
136
|
+
(0, chai_1.expect)(skillRow(categoryWithPlugins([own], [bigquery]), own).origins).to.equal(undefined);
|
|
137
|
+
});
|
|
138
|
+
it('labels nothing rather than a bare qualifier when the qualifier belongs to no installed plugin', () => {
|
|
139
|
+
const row = skillRow(categoryWithPlugins([contributed], []), contributed);
|
|
140
|
+
(0, chai_1.expect)(row.origins).to.equal(undefined);
|
|
141
|
+
(0, chai_1.expect)(row.title).to.equal('bigquery:query-builder');
|
|
142
|
+
});
|
|
143
|
+
it('labels nothing when no bridge is bound, i.e. without `@theia/ai-registry`', () => {
|
|
144
|
+
(0, chai_1.expect)(skillRow(categoryWithPlugins([contributed], undefined), contributed).origins).to.equal(undefined);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
describe('AI registry provenance', () => {
|
|
148
|
+
const installed = skill({ location: '/home/alex/.agents/skills/query-builder/SKILL.md' });
|
|
149
|
+
const entryId = 'io.github.acme/query-builder';
|
|
150
|
+
it('labels a registry-installed skill with the shared "From registry" badge', () => {
|
|
151
|
+
const row = skillRow(categoryWithRegistrySkills([installed], { [installed.location]: entryId }), installed);
|
|
152
|
+
(0, chai_1.expect)(row.origins?.map(origin => origin.label)).to.deep.equal(['From registry']);
|
|
153
|
+
(0, chai_1.expect)(row.origins[0].tooltip).to.contain(entryId);
|
|
154
|
+
});
|
|
155
|
+
it('reveals the registry entry when the badge is activated', () => {
|
|
156
|
+
const revealed = [];
|
|
157
|
+
const row = skillRow(categoryWithRegistrySkills([installed], { [installed.location]: entryId }, revealed), installed);
|
|
158
|
+
row.origins[0].activate();
|
|
159
|
+
(0, chai_1.expect)(revealed).to.deep.equal([entryId]);
|
|
160
|
+
});
|
|
161
|
+
it('labels nothing for a skill in a directory the user controls', () => {
|
|
162
|
+
const own = skill({ location: '/workspace/.agents/skills/query-builder/SKILL.md' });
|
|
163
|
+
(0, chai_1.expect)(skillRow(categoryWithRegistrySkills([own], { [installed.location]: entryId }), own).origins).to.equal(undefined);
|
|
164
|
+
});
|
|
165
|
+
it('labels nothing when no bridge is bound, i.e. without `@theia/ai-registry`', () => {
|
|
166
|
+
(0, chai_1.expect)(skillRow(categoryWithRegistrySkills([installed], undefined), installed).origins).to.equal(undefined);
|
|
167
|
+
});
|
|
168
|
+
it('credits the plugin, not the registry, for a skill a plugin contributed', () => {
|
|
169
|
+
// A plugin ships its skills inside the plugin, so the two origins cannot both apply; were the
|
|
170
|
+
// registry consulted anyway, a stale name collision would show a skill as coming from both.
|
|
171
|
+
const bigquery = { pluginId: 'io.example/bq', name: 'BigQuery', qualifier: 'bigquery' };
|
|
172
|
+
const contributed = skill({ qualifiedName: 'bigquery:query-builder', location: '/plugins/bigquery/skills/query-builder/SKILL.md' });
|
|
173
|
+
const category = categoryWithPlugins([contributed], [bigquery]);
|
|
174
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
175
|
+
category.skillRegistryUiBridge = {
|
|
176
|
+
getRegistryEntryId: () => entryId,
|
|
177
|
+
revealSkill: () => { },
|
|
178
|
+
onDidChange: core_1.Event.None
|
|
179
|
+
};
|
|
180
|
+
(0, chai_1.expect)(skillRow(category, contributed).origins?.map(origin => origin.label)).to.deep.equal(['via BigQuery']);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
67
183
|
});
|
|
68
184
|
//# sourceMappingURL=prompts-and-skills-configuration-category.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts-and-skills-configuration-category.spec.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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,8DAAiE;AACjE,IAAI,YAAY,GAAG,IAAA,mBAAW,GAAE,CAAC;AAEjC,uHAAiH;AACjH,wEAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE1C,+BAA8B;
|
|
1
|
+
{"version":3,"file":"prompts-and-skills-configuration-category.spec.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-ide",
|
|
3
|
-
"version": "1.75.0-next.
|
|
3
|
+
"version": "1.75.0-next.46+eb558223a",
|
|
4
4
|
"description": "AI IDE Agents Extension",
|
|
5
5
|
"license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -15,26 +15,26 @@
|
|
|
15
15
|
"theia-extension"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@theia/ai-chat": "1.75.0-next.
|
|
19
|
-
"@theia/ai-chat-ui": "1.75.0-next.
|
|
20
|
-
"@theia/ai-core": "1.75.0-next.
|
|
21
|
-
"@theia/ai-core-ui": "1.75.0-next.
|
|
22
|
-
"@theia/ai-mcp": "1.75.0-next.
|
|
23
|
-
"@theia/ai-terminal": "1.75.0-next.
|
|
24
|
-
"@theia/core": "1.75.0-next.
|
|
25
|
-
"@theia/debug": "1.75.0-next.
|
|
26
|
-
"@theia/editor": "1.75.0-next.
|
|
27
|
-
"@theia/file-search": "1.75.0-next.
|
|
28
|
-
"@theia/filesystem": "1.75.0-next.
|
|
29
|
-
"@theia/markers": "1.75.0-next.
|
|
30
|
-
"@theia/monaco": "1.75.0-next.
|
|
31
|
-
"@theia/navigator": "1.75.0-next.
|
|
32
|
-
"@theia/preferences": "1.75.0-next.
|
|
33
|
-
"@theia/scm": "1.75.0-next.
|
|
34
|
-
"@theia/search-in-workspace": "1.75.0-next.
|
|
35
|
-
"@theia/task": "1.75.0-next.
|
|
36
|
-
"@theia/terminal": "1.75.0-next.
|
|
37
|
-
"@theia/workspace": "1.75.0-next.
|
|
18
|
+
"@theia/ai-chat": "1.75.0-next.46+eb558223a",
|
|
19
|
+
"@theia/ai-chat-ui": "1.75.0-next.46+eb558223a",
|
|
20
|
+
"@theia/ai-core": "1.75.0-next.46+eb558223a",
|
|
21
|
+
"@theia/ai-core-ui": "1.75.0-next.46+eb558223a",
|
|
22
|
+
"@theia/ai-mcp": "1.75.0-next.46+eb558223a",
|
|
23
|
+
"@theia/ai-terminal": "1.75.0-next.46+eb558223a",
|
|
24
|
+
"@theia/core": "1.75.0-next.46+eb558223a",
|
|
25
|
+
"@theia/debug": "1.75.0-next.46+eb558223a",
|
|
26
|
+
"@theia/editor": "1.75.0-next.46+eb558223a",
|
|
27
|
+
"@theia/file-search": "1.75.0-next.46+eb558223a",
|
|
28
|
+
"@theia/filesystem": "1.75.0-next.46+eb558223a",
|
|
29
|
+
"@theia/markers": "1.75.0-next.46+eb558223a",
|
|
30
|
+
"@theia/monaco": "1.75.0-next.46+eb558223a",
|
|
31
|
+
"@theia/navigator": "1.75.0-next.46+eb558223a",
|
|
32
|
+
"@theia/preferences": "1.75.0-next.46+eb558223a",
|
|
33
|
+
"@theia/scm": "1.75.0-next.46+eb558223a",
|
|
34
|
+
"@theia/search-in-workspace": "1.75.0-next.46+eb558223a",
|
|
35
|
+
"@theia/task": "1.75.0-next.46+eb558223a",
|
|
36
|
+
"@theia/terminal": "1.75.0-next.46+eb558223a",
|
|
37
|
+
"@theia/workspace": "1.75.0-next.46+eb558223a",
|
|
38
38
|
"date-fns": "^4.4.0",
|
|
39
39
|
"ignore": "^6.0.2",
|
|
40
40
|
"js-yaml": "^4.3.1",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@theia/cli": "1.75.0-next.
|
|
50
|
-
"@theia/test": "1.75.0-next.
|
|
49
|
+
"@theia/cli": "1.75.0-next.46+eb558223a",
|
|
50
|
+
"@theia/test": "1.75.0-next.46+eb558223a"
|
|
51
51
|
},
|
|
52
52
|
"theiaExtensions": [
|
|
53
53
|
{
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"nyc": {
|
|
72
72
|
"extends": "../../configs/nyc.json"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "eb558223aae4b1ebf0a64deeb51741032cb8ea50"
|
|
75
75
|
}
|
package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.spec.ts
CHANGED
|
@@ -21,13 +21,20 @@ import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/front
|
|
|
21
21
|
FrontendApplicationConfigProvider.set({});
|
|
22
22
|
|
|
23
23
|
import { expect } from 'chai';
|
|
24
|
+
import { Event } from '@theia/core';
|
|
24
25
|
import { PromptFragment } from '@theia/ai-core/lib/common/prompt-service';
|
|
25
26
|
import { Skill } from '@theia/ai-core/lib/common/skill';
|
|
27
|
+
import { AgentPluginUiBridge, InstalledAgentPluginInfo } from '@theia/ai-core/lib/browser/agent-plugin-ui-bridge';
|
|
28
|
+
import { SkillRegistryUiBridge } from '@theia/ai-core/lib/browser/skill-registry-ui-bridge';
|
|
26
29
|
import { AiConfigurationCategoryId } from '@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category';
|
|
30
|
+
import { CollapsibleRow } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/collapsible-list';
|
|
27
31
|
import { PromptsAndSkillsConfigurationCategory } from './prompts-and-skills-configuration-category';
|
|
28
32
|
|
|
29
33
|
disableJSDOM();
|
|
30
34
|
|
|
35
|
+
/** A plugin as the bridge knows it, plus the qualifier its contributed skill root carries. */
|
|
36
|
+
type InstalledPlugin = InstalledAgentPluginInfo & { qualifier: string };
|
|
37
|
+
|
|
31
38
|
describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
32
39
|
|
|
33
40
|
before(() => disableJSDOM = enableJSDOM());
|
|
@@ -42,6 +49,51 @@ describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
|
42
49
|
return category;
|
|
43
50
|
}
|
|
44
51
|
|
|
52
|
+
/** Leaves the bridge unbound when `installedPlugins` is omitted, i.e. a product without `@theia/ai-registry`. */
|
|
53
|
+
function categoryWithPlugins(skills: Skill[], installedPlugins: InstalledPlugin[] | undefined, revealed: string[] = []): PromptsAndSkillsConfigurationCategory {
|
|
54
|
+
const category = categoryWith(skills, []);
|
|
55
|
+
if (installedPlugins) {
|
|
56
|
+
const bridge: AgentPluginUiBridge = {
|
|
57
|
+
getPlugin: pluginId => installedPlugins.find(plugin => plugin.pluginId === pluginId),
|
|
58
|
+
getPluginByQualifier: qualifier => installedPlugins.find(plugin => plugin.qualifier === qualifier),
|
|
59
|
+
revealPlugin: pluginId => { revealed.push(pluginId); },
|
|
60
|
+
onDidChange: Event.None
|
|
61
|
+
};
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
(category as any).agentPluginUiBridge = bridge;
|
|
64
|
+
}
|
|
65
|
+
return category;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Leaves the bridge unbound when `managed` is omitted. `managed` maps a skill location to the
|
|
70
|
+
* registry entry it was installed from, which is how the real bridge keys them.
|
|
71
|
+
*/
|
|
72
|
+
function categoryWithRegistrySkills(
|
|
73
|
+
skills: Skill[], managed: Record<string, string> | undefined, revealed: string[] = []
|
|
74
|
+
): PromptsAndSkillsConfigurationCategory {
|
|
75
|
+
const category = categoryWith(skills, []);
|
|
76
|
+
if (managed) {
|
|
77
|
+
const bridge: SkillRegistryUiBridge = {
|
|
78
|
+
getRegistryEntryId: forSkill => managed[forSkill.location],
|
|
79
|
+
revealSkill: skillId => { revealed.push(skillId); },
|
|
80
|
+
onDidChange: Event.None
|
|
81
|
+
};
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
|
+
(category as any).skillRegistryUiBridge = bridge;
|
|
84
|
+
}
|
|
85
|
+
return category;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function skillRow(category: PromptsAndSkillsConfigurationCategory, forSkill: Skill): CollapsibleRow {
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
return (category as any).buildSkillRow(forSkill) as CollapsibleRow;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function skill(overrides: Partial<Skill>): Skill {
|
|
94
|
+
return { name: 'query-builder', qualifiedName: 'query-builder', description: 'Build SQL', location: '/skills/query-builder/SKILL.md', ...overrides } as Skill;
|
|
95
|
+
}
|
|
96
|
+
|
|
45
97
|
it('declares the skills and slash commands single-page metadata', () => {
|
|
46
98
|
const category = new PromptsAndSkillsConfigurationCategory();
|
|
47
99
|
expect(category.id).to.equal(AiConfigurationCategoryId.PROMPTS_AND_SKILLS);
|
|
@@ -50,7 +102,7 @@ describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
|
50
102
|
|
|
51
103
|
it('indexes skills and slash commands for search, highlighting their rows', () => {
|
|
52
104
|
const category = categoryWith(
|
|
53
|
-
[{ name: 'refactor', description: 'do it', location: '/s' } as unknown as Skill],
|
|
105
|
+
[{ name: 'refactor', qualifiedName: 'refactor', description: 'do it', location: '/s' } as unknown as Skill],
|
|
54
106
|
[{ id: 'cmd', commandName: 'go', commandDescription: 'run' } as unknown as PromptFragment]
|
|
55
107
|
);
|
|
56
108
|
const items = category.getSearchItems();
|
|
@@ -78,4 +130,97 @@ describe('PromptsAndSkillsConfigurationCategory', () => {
|
|
|
78
130
|
const commands = (category as any).slashCommands as PromptFragment[];
|
|
79
131
|
expect(commands.map(command => command.id)).to.deep.equal(['remember']);
|
|
80
132
|
});
|
|
133
|
+
|
|
134
|
+
describe('Agent Plugin provenance', () => {
|
|
135
|
+
|
|
136
|
+
const bigquery: InstalledPlugin = { pluginId: 'io.example/bq', name: 'BigQuery Data Analytics', qualifier: 'bigquery' };
|
|
137
|
+
const contributed = skill({ qualifiedName: 'bigquery:query-builder', location: '/plugins/bigquery/skills/query-builder/SKILL.md' });
|
|
138
|
+
|
|
139
|
+
it('keys and titles a skill row by its qualified name, which is what the model addresses', () => {
|
|
140
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
141
|
+
expect(row.id).to.equal('skill:bigquery:query-builder');
|
|
142
|
+
expect(row.title).to.equal('bigquery:query-builder');
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('labels a contributed skill with the shared origin badge naming the plugin that supplied it', () => {
|
|
146
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
147
|
+
// The same descriptor the MCP page builds, so both pages render one badge rather than two designs.
|
|
148
|
+
expect(row.origins?.map(origin => origin.label)).to.deep.equal(['via BigQuery Data Analytics']);
|
|
149
|
+
// Filterable by the plugin name too, so a plugin's skills can be listed together.
|
|
150
|
+
expect(row.filterText).to.contain('bigquery data analytics');
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it('reveals the owning plugin when the origin badge is activated', () => {
|
|
154
|
+
const revealed: string[] = [];
|
|
155
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery], revealed), contributed);
|
|
156
|
+
// Activated directly: rendering the badge as a button is `AiConfigurationOriginBadge`'s
|
|
157
|
+
// contract, tested where it lives; what belongs here is where this page's badge leads.
|
|
158
|
+
row.origins![0].activate!();
|
|
159
|
+
expect(revealed).to.deep.equal([bigquery.pluginId]);
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
it('keeps the provenance out of the pills, which state what the skill is rather than where it came from', () => {
|
|
163
|
+
const row = skillRow(categoryWithPlugins([contributed], [bigquery]), contributed);
|
|
164
|
+
expect(row.pills?.some(pill => pill.startsWith('via '))).to.not.equal(true);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('labels nothing for a skill from a built-in root, which is the common case', () => {
|
|
168
|
+
const own = skill({});
|
|
169
|
+
expect(skillRow(categoryWithPlugins([own], [bigquery]), own).origins).to.equal(undefined);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it('labels nothing rather than a bare qualifier when the qualifier belongs to no installed plugin', () => {
|
|
173
|
+
const row = skillRow(categoryWithPlugins([contributed], []), contributed);
|
|
174
|
+
expect(row.origins).to.equal(undefined);
|
|
175
|
+
expect(row.title).to.equal('bigquery:query-builder');
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it('labels nothing when no bridge is bound, i.e. without `@theia/ai-registry`', () => {
|
|
179
|
+
expect(skillRow(categoryWithPlugins([contributed], undefined), contributed).origins).to.equal(undefined);
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
describe('AI registry provenance', () => {
|
|
184
|
+
|
|
185
|
+
const installed = skill({ location: '/home/alex/.agents/skills/query-builder/SKILL.md' });
|
|
186
|
+
const entryId = 'io.github.acme/query-builder';
|
|
187
|
+
|
|
188
|
+
it('labels a registry-installed skill with the shared "From registry" badge', () => {
|
|
189
|
+
const row = skillRow(categoryWithRegistrySkills([installed], { [installed.location]: entryId }), installed);
|
|
190
|
+
expect(row.origins?.map(origin => origin.label)).to.deep.equal(['From registry']);
|
|
191
|
+
expect(row.origins![0].tooltip).to.contain(entryId);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it('reveals the registry entry when the badge is activated', () => {
|
|
195
|
+
const revealed: string[] = [];
|
|
196
|
+
const row = skillRow(categoryWithRegistrySkills([installed], { [installed.location]: entryId }, revealed), installed);
|
|
197
|
+
row.origins![0].activate!();
|
|
198
|
+
expect(revealed).to.deep.equal([entryId]);
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
it('labels nothing for a skill in a directory the user controls', () => {
|
|
202
|
+
const own = skill({ location: '/workspace/.agents/skills/query-builder/SKILL.md' });
|
|
203
|
+
expect(skillRow(categoryWithRegistrySkills([own], { [installed.location]: entryId }), own).origins).to.equal(undefined);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('labels nothing when no bridge is bound, i.e. without `@theia/ai-registry`', () => {
|
|
207
|
+
expect(skillRow(categoryWithRegistrySkills([installed], undefined), installed).origins).to.equal(undefined);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it('credits the plugin, not the registry, for a skill a plugin contributed', () => {
|
|
211
|
+
// A plugin ships its skills inside the plugin, so the two origins cannot both apply; were the
|
|
212
|
+
// registry consulted anyway, a stale name collision would show a skill as coming from both.
|
|
213
|
+
const bigquery: InstalledPlugin = { pluginId: 'io.example/bq', name: 'BigQuery', qualifier: 'bigquery' };
|
|
214
|
+
const contributed = skill({ qualifiedName: 'bigquery:query-builder', location: '/plugins/bigquery/skills/query-builder/SKILL.md' });
|
|
215
|
+
const category = categoryWithPlugins([contributed], [bigquery]);
|
|
216
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
217
|
+
(category as any).skillRegistryUiBridge = {
|
|
218
|
+
getRegistryEntryId: () => entryId,
|
|
219
|
+
revealSkill: () => { },
|
|
220
|
+
onDidChange: Event.None
|
|
221
|
+
} satisfies SkillRegistryUiBridge;
|
|
222
|
+
|
|
223
|
+
expect(skillRow(category, contributed).origins?.map(origin => origin.label)).to.deep.equal(['via BigQuery']);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
81
226
|
});
|
package/src/browser/ai-configuration/categories/prompts-and-skills-configuration-category.tsx
CHANGED
|
@@ -18,13 +18,15 @@ import { Agent, AgentService } from '@theia/ai-core';
|
|
|
18
18
|
import { GENERIC_CAPABILITIES_SKILLS_PROMPT_ID, matchVariablesRegEx, parseCapabilitiesFromTemplate } from '@theia/ai-core/lib/common';
|
|
19
19
|
import { PREFERENCE_NAME_SKILL_DIRECTORIES } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
20
20
|
import { SkillService } from '@theia/ai-core/lib/browser/skill-service';
|
|
21
|
+
import { AgentPluginUiBridge, InstalledAgentPluginInfo } from '@theia/ai-core/lib/browser/agent-plugin-ui-bridge';
|
|
22
|
+
import { SkillRegistryUiBridge } from '@theia/ai-core/lib/browser/skill-registry-ui-bridge';
|
|
21
23
|
import { Skill } from '@theia/ai-core/lib/common/skill';
|
|
22
24
|
import { isCustomizedPromptFragment, PromptFragment, PromptService } from '@theia/ai-core/lib/common/prompt-service';
|
|
23
25
|
import { Emitter, Event, ILogger, nls, URI } from '@theia/core';
|
|
24
26
|
import { codicon, open, OpenerService } from '@theia/core/lib/browser';
|
|
25
27
|
import { ClipboardService } from '@theia/core/lib/browser/clipboard-service';
|
|
26
28
|
import { DisposableCollection } from '@theia/core/lib/common';
|
|
27
|
-
import { inject, injectable, named, postConstruct } from '@theia/core/shared/inversify';
|
|
29
|
+
import { inject, injectable, named, optional, postConstruct } from '@theia/core/shared/inversify';
|
|
28
30
|
import * as React from '@theia/core/shared/react';
|
|
29
31
|
import {
|
|
30
32
|
AiConfigurationCategory,
|
|
@@ -48,6 +50,7 @@ import {
|
|
|
48
50
|
CollapsibleRow,
|
|
49
51
|
CollapsibleRowAction
|
|
50
52
|
} from '@theia/ai-core-ui/lib/browser/ai-configuration/components/collapsible-list';
|
|
53
|
+
import { AiConfigurationOrigin } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-configuration-origin-badge';
|
|
51
54
|
import { AgentChips } from './agent-chips';
|
|
52
55
|
|
|
53
56
|
const SKILL_ROW_PREFIX = 'skill:';
|
|
@@ -91,6 +94,12 @@ export class PromptsAndSkillsConfigurationCategory extends SinglePageCategoryRen
|
|
|
91
94
|
@inject(ILogger) @named('ai-ide:PromptsAndSkillsConfigurationCategory')
|
|
92
95
|
protected readonly logger: ILogger;
|
|
93
96
|
|
|
97
|
+
@inject(AgentPluginUiBridge) @optional()
|
|
98
|
+
protected readonly agentPluginUiBridge?: AgentPluginUiBridge;
|
|
99
|
+
|
|
100
|
+
@inject(SkillRegistryUiBridge) @optional()
|
|
101
|
+
protected readonly skillRegistryUiBridge?: SkillRegistryUiBridge;
|
|
102
|
+
|
|
94
103
|
protected readonly onDidChangeEmitter = new Emitter<void>();
|
|
95
104
|
readonly onDidChange: Event<void> = this.onDidChangeEmitter.event;
|
|
96
105
|
protected readonly toDispose = new DisposableCollection(this.onDidChangeEmitter);
|
|
@@ -131,6 +140,14 @@ export class PromptsAndSkillsConfigurationCategory extends SinglePageCategoryRen
|
|
|
131
140
|
}),
|
|
132
141
|
this.settingsRowService.onPreferenceChanged(() => this.onDidChangeEmitter.fire())
|
|
133
142
|
]);
|
|
143
|
+
if (this.agentPluginUiBridge) {
|
|
144
|
+
// The plugin names come from the bridge, so installing one changes this page even when the skills do not.
|
|
145
|
+
this.toDispose.push(this.agentPluginUiBridge.onDidChange(() => this.onDidChangeEmitter.fire()));
|
|
146
|
+
}
|
|
147
|
+
if (this.skillRegistryUiBridge) {
|
|
148
|
+
// Likewise: linking or unlinking a skill folder changes its provenance, not the skill itself.
|
|
149
|
+
this.toDispose.push(this.skillRegistryUiBridge.onDidChange(() => this.onDidChangeEmitter.fire()));
|
|
150
|
+
}
|
|
134
151
|
}
|
|
135
152
|
|
|
136
153
|
dispose(): void {
|
|
@@ -142,7 +159,8 @@ export class PromptsAndSkillsConfigurationCategory extends SinglePageCategoryRen
|
|
|
142
159
|
}
|
|
143
160
|
|
|
144
161
|
protected loadSkills(): void {
|
|
145
|
-
|
|
162
|
+
// Sorted and keyed by the qualified name: it is what the model addresses and the only name unique across roots.
|
|
163
|
+
this.skills = this.skillService.getSkills().sort((a, b) => a.qualifiedName.localeCompare(b.qualifiedName));
|
|
146
164
|
}
|
|
147
165
|
|
|
148
166
|
protected loadSlashCommands(): void {
|
|
@@ -211,16 +229,19 @@ export class PromptsAndSkillsConfigurationCategory extends SinglePageCategoryRen
|
|
|
211
229
|
protected buildSkillRow(skill: Skill): CollapsibleRow {
|
|
212
230
|
const tools = skill.allowedTools ?? [];
|
|
213
231
|
const metadata = skill.metadata ? Object.entries(skill.metadata) : [];
|
|
232
|
+
const plugin = this.getOwningPlugin(skill);
|
|
233
|
+
const origins = this.getSkillOrigins(skill);
|
|
214
234
|
const pills: string[] = [];
|
|
215
235
|
if (tools.length > 0) {
|
|
216
236
|
pills.push(nls.localizeByDefault('{0} tools', tools.length));
|
|
217
237
|
}
|
|
218
238
|
return {
|
|
219
|
-
id: SKILL_ROW_PREFIX + skill.
|
|
220
|
-
title: skill.
|
|
239
|
+
id: SKILL_ROW_PREFIX + skill.qualifiedName,
|
|
240
|
+
title: skill.qualifiedName,
|
|
221
241
|
description: skill.description,
|
|
222
242
|
pills,
|
|
223
|
-
|
|
243
|
+
origins,
|
|
244
|
+
filterText: `${skill.qualifiedName} ${skill.description ?? ''} ${plugin?.name ?? ''}`.toLocaleLowerCase(),
|
|
224
245
|
actions: <CollapsibleRowAction
|
|
225
246
|
iconClass={codicon('edit')}
|
|
226
247
|
label={nls.localize('theia/ai/ide/skillsConfiguration/openSkillFile', 'Open SKILL.md')}
|
|
@@ -341,17 +362,46 @@ export class PromptsAndSkillsConfigurationCategory extends SinglePageCategoryRen
|
|
|
341
362
|
open(this.openerService, URI.fromFilePath(skill.location));
|
|
342
363
|
}
|
|
343
364
|
|
|
365
|
+
/**
|
|
366
|
+
* The registry entry a skill was installed from, or the Agent Plugin that contributed it - never
|
|
367
|
+
* both: the registry installs a skill into a root of its own, a plugin ships it inside the plugin.
|
|
368
|
+
* Empty for a workspace or configured skill, which is the common case, and always empty without
|
|
369
|
+
* `@theia/ai-registry`, which binds both bridges.
|
|
370
|
+
*/
|
|
371
|
+
protected getSkillOrigins(skill: Skill): AiConfigurationOrigin[] | undefined {
|
|
372
|
+
const plugin = this.getOwningPlugin(skill);
|
|
373
|
+
if (plugin) {
|
|
374
|
+
return [AiConfigurationOrigin.agentPlugin(plugin, () => this.agentPluginUiBridge?.revealPlugin(plugin.pluginId))];
|
|
375
|
+
}
|
|
376
|
+
const entryId = this.skillRegistryUiBridge?.getRegistryEntryId(skill);
|
|
377
|
+
if (entryId) {
|
|
378
|
+
return [AiConfigurationOrigin.registry(entryId, () => this.skillRegistryUiBridge?.revealSkill(entryId))];
|
|
379
|
+
}
|
|
380
|
+
return undefined;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* The Agent Plugin a skill was contributed by, or `undefined` for a skill from a built-in root - the
|
|
385
|
+
* common case - and for a qualifier belonging to no installed plugin: a bare qualifier is worth neither
|
|
386
|
+
* a label nor a reveal action. Always `undefined` without `@theia/ai-registry`, which binds the bridge.
|
|
387
|
+
*/
|
|
388
|
+
protected getOwningPlugin(skill: Skill): InstalledAgentPluginInfo | undefined {
|
|
389
|
+
const qualifier = Skill.qualifierOf(skill);
|
|
390
|
+
return qualifier ? this.agentPluginUiBridge?.getPluginByQualifier(qualifier) : undefined;
|
|
391
|
+
}
|
|
392
|
+
|
|
344
393
|
getSearchItems(): AiConfigurationSearchItem[] {
|
|
345
394
|
const items: AiConfigurationSearchItem[] = [];
|
|
346
395
|
const skillLabel = nls.localizeByDefault('Skill');
|
|
347
396
|
const slashCommandLabel = nls.localize('theia/ai/ide/skillsConfiguration/slashCommandsSectionHeader', 'Slash Commands');
|
|
348
397
|
for (const skill of this.skills) {
|
|
349
398
|
items.push({
|
|
350
|
-
label: skill.
|
|
399
|
+
label: skill.qualifiedName,
|
|
351
400
|
typeLabel: skillLabel,
|
|
352
401
|
categoryId: this.id,
|
|
353
|
-
target: { categoryId: this.id, highlight: { rowId: SKILL_ROW_PREFIX + skill.
|
|
354
|
-
|
|
402
|
+
target: { categoryId: this.id, highlight: { rowId: SKILL_ROW_PREFIX + skill.qualifiedName } },
|
|
403
|
+
// The unqualified name too: a skill contributed by a plugin is still looked up by the name in its SKILL.md.
|
|
404
|
+
keywords: `${skill.name} ${skill.description ?? ''}`
|
|
355
405
|
});
|
|
356
406
|
}
|
|
357
407
|
for (const command of this.slashCommands) {
|