specweave 1.0.447 ā 1.0.450
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/bin/specweave.js +18 -0
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts +6 -0
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-client.js +22 -0
- package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -1
- package/dist/src/adapters/adapter-base.d.ts +15 -0
- package/dist/src/adapters/adapter-base.d.ts.map +1 -1
- package/dist/src/adapters/adapter-base.js +56 -0
- package/dist/src/adapters/adapter-base.js.map +1 -1
- package/dist/src/adapters/adapter-loader.d.ts.map +1 -1
- package/dist/src/adapters/adapter-loader.js +20 -2
- package/dist/src/adapters/adapter-loader.js.map +1 -1
- package/dist/src/adapters/aider/adapter.d.ts +21 -0
- package/dist/src/adapters/aider/adapter.d.ts.map +1 -0
- package/dist/src/adapters/aider/adapter.js +57 -0
- package/dist/src/adapters/aider/adapter.js.map +1 -0
- package/dist/src/adapters/amazonq/adapter.d.ts +21 -0
- package/dist/src/adapters/amazonq/adapter.d.ts.map +1 -0
- package/dist/src/adapters/amazonq/adapter.js +57 -0
- package/dist/src/adapters/amazonq/adapter.js.map +1 -0
- package/dist/src/adapters/cline/adapter.d.ts +21 -0
- package/dist/src/adapters/cline/adapter.d.ts.map +1 -0
- package/dist/src/adapters/cline/adapter.js +57 -0
- package/dist/src/adapters/cline/adapter.js.map +1 -0
- package/dist/src/adapters/codex/adapter.d.ts +18 -0
- package/dist/src/adapters/codex/adapter.d.ts.map +1 -1
- package/dist/src/adapters/codex/adapter.js +32 -0
- package/dist/src/adapters/codex/adapter.js.map +1 -1
- package/dist/src/adapters/continue/adapter.d.ts +63 -0
- package/dist/src/adapters/continue/adapter.d.ts.map +1 -0
- package/dist/src/adapters/continue/adapter.js +103 -0
- package/dist/src/adapters/continue/adapter.js.map +1 -0
- package/dist/src/adapters/copilot/adapter.d.ts +65 -0
- package/dist/src/adapters/copilot/adapter.d.ts.map +1 -0
- package/dist/src/adapters/copilot/adapter.js +106 -0
- package/dist/src/adapters/copilot/adapter.js.map +1 -0
- package/dist/src/adapters/cursor/adapter.d.ts +4 -20
- package/dist/src/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/src/adapters/cursor/adapter.js +12 -129
- package/dist/src/adapters/cursor/adapter.js.map +1 -1
- package/dist/src/adapters/gemini/adapter.d.ts +18 -0
- package/dist/src/adapters/gemini/adapter.d.ts.map +1 -1
- package/dist/src/adapters/gemini/adapter.js +32 -0
- package/dist/src/adapters/gemini/adapter.js.map +1 -1
- package/dist/src/adapters/jetbrains/adapter.d.ts +21 -0
- package/dist/src/adapters/jetbrains/adapter.d.ts.map +1 -0
- package/dist/src/adapters/jetbrains/adapter.js +57 -0
- package/dist/src/adapters/jetbrains/adapter.js.map +1 -0
- package/dist/src/adapters/registry.yaml +166 -20
- package/dist/src/adapters/tabnine/adapter.d.ts +21 -0
- package/dist/src/adapters/tabnine/adapter.d.ts.map +1 -0
- package/dist/src/adapters/tabnine/adapter.js +57 -0
- package/dist/src/adapters/tabnine/adapter.js.map +1 -0
- package/dist/src/adapters/windsurf/adapter.d.ts +64 -0
- package/dist/src/adapters/windsurf/adapter.d.ts.map +1 -0
- package/dist/src/adapters/windsurf/adapter.js +106 -0
- package/dist/src/adapters/windsurf/adapter.js.map +1 -0
- package/dist/src/adapters/zed/adapter.d.ts +21 -0
- package/dist/src/adapters/zed/adapter.d.ts.map +1 -0
- package/dist/src/adapters/zed/adapter.js +57 -0
- package/dist/src/adapters/zed/adapter.js.map +1 -0
- package/dist/src/cli/commands/get.d.ts +17 -1
- package/dist/src/cli/commands/get.d.ts.map +1 -1
- package/dist/src/cli/commands/get.js +51 -1
- package/dist/src/cli/commands/get.js.map +1 -1
- package/dist/src/cli/commands/link-pr.d.ts +17 -0
- package/dist/src/cli/commands/link-pr.d.ts.map +1 -0
- package/dist/src/cli/commands/link-pr.js +45 -0
- package/dist/src/cli/commands/link-pr.js.map +1 -0
- package/dist/src/cli/helpers/get/bulk-get.d.ts +41 -0
- package/dist/src/cli/helpers/get/bulk-get.d.ts.map +1 -0
- package/dist/src/cli/helpers/get/bulk-get.js +88 -0
- package/dist/src/cli/helpers/get/bulk-get.js.map +1 -0
- package/dist/src/cli/helpers/init/github-repo-cloning.d.ts +50 -0
- package/dist/src/cli/helpers/init/github-repo-cloning.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/github-repo-cloning.js +1 -1
- package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
- package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
- package/dist/src/core/skills/skill-judge.js +2 -1
- package/dist/src/core/skills/skill-judge.js.map +1 -1
- package/dist/src/integrations/jira/jira-client.d.ts +12 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-client.js +37 -0
- package/dist/src/integrations/jira/jira-client.js.map +1 -1
- package/dist/src/metrics/dora-calculator.d.ts.map +1 -1
- package/dist/src/metrics/dora-calculator.js +3 -2
- package/dist/src/metrics/dora-calculator.js.map +1 -1
- package/dist/src/sync/format-preservation-sync.d.ts +3 -0
- package/dist/src/sync/format-preservation-sync.d.ts.map +1 -1
- package/dist/src/sync/format-preservation-sync.js +9 -0
- package/dist/src/sync/format-preservation-sync.js.map +1 -1
- package/dist/src/sync/integration-health-check.d.ts +45 -0
- package/dist/src/sync/integration-health-check.d.ts.map +1 -0
- package/dist/src/sync/integration-health-check.js +186 -0
- package/dist/src/sync/integration-health-check.js.map +1 -0
- package/dist/src/sync/pr-linker.d.ts +38 -0
- package/dist/src/sync/pr-linker.d.ts.map +1 -0
- package/dist/src/sync/pr-linker.js +157 -0
- package/dist/src/sync/pr-linker.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/commands/sync-setup.md +24 -1
- package/plugins/specweave/skills/get/SKILL.md +38 -6
- package/plugins/specweave/skills/pr/SKILL.md +39 -2
- package/plugins/specweave-ado/lib/ado-client.js +22 -0
- package/plugins/specweave-ado/lib/ado-client.ts +25 -0
- package/src/templates/AGENTS.md.template +19 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/cursor/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,OAAO,aAAc,SAAQ,WAAW;IAA9C;;QACE,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,yEAAyE,CAAC;QACxF,oBAAe,GAAG,MAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/cursor/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { AdapterBase } from '../adapter-base.js';
|
|
15
15
|
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
16
|
+
import type { Plugin } from '../../core/types/plugin.js';
|
|
16
17
|
export declare class GeminiAdapter extends AdapterBase {
|
|
17
18
|
name: string;
|
|
18
19
|
description: string;
|
|
@@ -42,6 +43,23 @@ export declare class GeminiAdapter extends AdapterBase {
|
|
|
42
43
|
* Post-installation instructions
|
|
43
44
|
*/
|
|
44
45
|
postInstall(options: AdapterOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Check if Gemini adapter supports plugins
|
|
48
|
+
*/
|
|
49
|
+
supportsPlugins(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Compile and install a plugin for Gemini CLI.
|
|
52
|
+
* Writes each SKILL.md as a separate file in `.gemini/`.
|
|
53
|
+
*/
|
|
54
|
+
compilePlugin(plugin: Plugin): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Unload a plugin from Gemini ā removes skill files from `.gemini/`.
|
|
57
|
+
*/
|
|
58
|
+
unloadPlugin(pluginName: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Get installed plugins for Gemini by scanning `.gemini/`.
|
|
61
|
+
*/
|
|
62
|
+
getInstalledPlugins(): Promise<string[]>;
|
|
45
63
|
/**
|
|
46
64
|
* Get usage instructions for Gemini adapter
|
|
47
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/gemini/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/gemini/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,IAAI,SAAY;IAChB,WAAW,SAAwE;IACnF,eAAe,EAAG,MAAM,CAAU;IAElC;;;;;;;OAOG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAezB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD;;OAEG;YACW,gBAAgB;IAgB9B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI9C;;OAEG;IACH,eAAe,IAAI,MAAM;CA+K1B"}
|
|
@@ -94,6 +94,38 @@ export class GeminiAdapter extends AdapterBase {
|
|
|
94
94
|
async postInstall(options) {
|
|
95
95
|
console.log(this.getInstructions());
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if Gemini adapter supports plugins
|
|
99
|
+
*/
|
|
100
|
+
supportsPlugins() {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Compile and install a plugin for Gemini CLI.
|
|
105
|
+
* Writes each SKILL.md as a separate file in `.gemini/`.
|
|
106
|
+
*/
|
|
107
|
+
async compilePlugin(plugin) {
|
|
108
|
+
const rulesDir = '.gemini';
|
|
109
|
+
console.log(`\nš¦ Installing plugin skills for Gemini: ${plugin.manifest.name}`);
|
|
110
|
+
await this.writeSkillFiles(plugin, rulesDir);
|
|
111
|
+
console.log(` ā ${plugin.skills.length} skill(s) written to ${rulesDir}/`);
|
|
112
|
+
console.log(`\nā
Plugin ${plugin.manifest.name} installed for Gemini!`);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Unload a plugin from Gemini ā removes skill files from `.gemini/`.
|
|
116
|
+
*/
|
|
117
|
+
async unloadPlugin(pluginName) {
|
|
118
|
+
console.log(`\nšļø Unloading plugin from Gemini: ${pluginName}`);
|
|
119
|
+
await this.removeSkillFiles(pluginName, '.gemini');
|
|
120
|
+
console.log(` ā Removed from .gemini/`);
|
|
121
|
+
console.log(`\nā
Plugin ${pluginName} unloaded!`);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get installed plugins for Gemini by scanning `.gemini/`.
|
|
125
|
+
*/
|
|
126
|
+
async getInstalledPlugins() {
|
|
127
|
+
return await this.listInstalledPluginsInDir('.gemini');
|
|
128
|
+
}
|
|
97
129
|
/**
|
|
98
130
|
* Get usage instructions for Gemini adapter
|
|
99
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/gemini/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/gemini/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JetBrains Adapter
|
|
3
|
+
*/
|
|
4
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
5
|
+
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
6
|
+
import type { Plugin } from '../../core/types/plugin.js';
|
|
7
|
+
export declare class JetBrainsAdapter extends AdapterBase {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
automationLevel: "semi";
|
|
11
|
+
detect(): Promise<boolean>;
|
|
12
|
+
getFiles(): AdapterFile[];
|
|
13
|
+
install(options: AdapterOptions): Promise<void>;
|
|
14
|
+
supportsPlugins(): boolean;
|
|
15
|
+
compilePlugin(plugin: Plugin): Promise<void>;
|
|
16
|
+
unloadPlugin(pluginName: string): Promise<void>;
|
|
17
|
+
getInstalledPlugins(): Promise<string[]>;
|
|
18
|
+
postInstall(options: AdapterOptions): Promise<void>;
|
|
19
|
+
getInstructions(): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/jetbrains/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,IAAI,SAAe;IACnB,WAAW,SAAiE;IAC5E,eAAe,EAAG,MAAM,CAAU;IAE5B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,QAAQ,IAAI,WAAW,EAAE;IAInB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,eAAe,IAAI,OAAO;IAIpB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,eAAe,IAAI,MAAM;CAQ1B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JetBrains Adapter
|
|
3
|
+
*/
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import * as fs from '../../utils/fs-native.js';
|
|
6
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
7
|
+
export class JetBrainsAdapter extends AdapterBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'jetbrains';
|
|
11
|
+
this.description = 'JetBrains adapter ā skills installed in .aiassistant/rules/';
|
|
12
|
+
this.automationLevel = 'semi';
|
|
13
|
+
}
|
|
14
|
+
async detect() {
|
|
15
|
+
return await this.fileExists('.aiassistant') || await this.commandExists('idea');
|
|
16
|
+
}
|
|
17
|
+
getFiles() {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
async install(options) {
|
|
21
|
+
console.log('\nš¦ Installing JetBrains Adapter\n');
|
|
22
|
+
await fs.ensureDir(path.join(options.projectPath, '.aiassistant/rules'));
|
|
23
|
+
console.log('\n⨠JetBrains adapter installed!');
|
|
24
|
+
console.log(' Run `specweave refresh-plugins` to install skills.');
|
|
25
|
+
}
|
|
26
|
+
supportsPlugins() {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
async compilePlugin(plugin) {
|
|
30
|
+
const rulesDir = '.aiassistant/rules';
|
|
31
|
+
console.log(`\nš¦ Installing plugin skills for JetBrains: ${plugin.manifest.name}`);
|
|
32
|
+
await this.writeSkillFiles(plugin, rulesDir);
|
|
33
|
+
console.log(` ā ${plugin.skills.length} skill(s) written to ${rulesDir}/`);
|
|
34
|
+
console.log(`\nā
Plugin ${plugin.manifest.name} installed for JetBrains!`);
|
|
35
|
+
}
|
|
36
|
+
async unloadPlugin(pluginName) {
|
|
37
|
+
console.log(`\nšļø Unloading plugin from JetBrains: ${pluginName}`);
|
|
38
|
+
await this.removeSkillFiles(pluginName, '.aiassistant/rules');
|
|
39
|
+
console.log(` ā Removed from .aiassistant/rules/`);
|
|
40
|
+
console.log(`\nā
Plugin ${pluginName} unloaded!`);
|
|
41
|
+
}
|
|
42
|
+
async getInstalledPlugins() {
|
|
43
|
+
return await this.listInstalledPluginsInDir('.aiassistant/rules');
|
|
44
|
+
}
|
|
45
|
+
async postInstall(options) {
|
|
46
|
+
console.log(this.getInstructions());
|
|
47
|
+
}
|
|
48
|
+
getInstructions() {
|
|
49
|
+
return `
|
|
50
|
+
JetBrains Adapter
|
|
51
|
+
|
|
52
|
+
Skills installed in .aiassistant/rules/.
|
|
53
|
+
Run: specweave refresh-plugins
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/jetbrains/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAAjD;;QACE,SAAI,GAAG,WAAW,CAAC;QACnB,gBAAW,GAAG,6DAA6D,CAAC;QAC5E,oBAAe,GAAG,MAAe,CAAC;IAoDpC,CAAC;IAlDC,KAAK,CAAC,MAAM;QACV,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,wBAAwB,QAAQ,GAAG,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,eAAe;QACb,OAAO;;;;;KAKN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -54,19 +54,18 @@ adapters:
|
|
|
54
54
|
priority: P1
|
|
55
55
|
|
|
56
56
|
- name: copilot
|
|
57
|
-
description: "GitHub Copilot adapter -
|
|
57
|
+
description: "GitHub Copilot adapter - Skills installed in .github/instructions/"
|
|
58
58
|
automation_level: basic
|
|
59
59
|
status: active
|
|
60
60
|
directory: copilot
|
|
61
61
|
features:
|
|
62
|
-
- .github/
|
|
63
|
-
- Copilot
|
|
64
|
-
-
|
|
65
|
-
- Decent experience, basic automation
|
|
62
|
+
- .github/instructions/*.instructions.md per-context skill files
|
|
63
|
+
- Works with GitHub Copilot VS Code extension and IDE integrations
|
|
64
|
+
- Skills auto-read as workspace instructions
|
|
66
65
|
requirements:
|
|
67
|
-
- GitHub Copilot extension (VS Code)
|
|
66
|
+
- GitHub Copilot extension (VS Code or JetBrains)
|
|
68
67
|
- Node.js >= 18.0.0
|
|
69
|
-
market_share:
|
|
68
|
+
market_share: 35%
|
|
70
69
|
priority: P1
|
|
71
70
|
|
|
72
71
|
- name: generic
|
|
@@ -120,23 +119,138 @@ adapters:
|
|
|
120
119
|
market_share: 20%
|
|
121
120
|
priority: P1
|
|
122
121
|
|
|
123
|
-
# Future adapters (P2/P3)
|
|
124
|
-
future_adapters:
|
|
125
122
|
- name: windsurf
|
|
126
|
-
description: "Windsurf adapter
|
|
123
|
+
description: "Windsurf adapter - Skills installed in .windsurf/rules/"
|
|
124
|
+
automation_level: semi
|
|
125
|
+
status: active
|
|
126
|
+
directory: windsurf
|
|
127
|
+
features:
|
|
128
|
+
- .windsurf/rules/*.md skill files auto-loaded by Windsurf
|
|
129
|
+
- Semi-automation with AGENTS.md workflow instructions
|
|
130
|
+
requirements:
|
|
131
|
+
- Windsurf editor installed
|
|
132
|
+
- Node.js >= 18.0.0
|
|
133
|
+
market_share: 15%
|
|
134
|
+
priority: P1
|
|
135
|
+
|
|
136
|
+
- name: continue
|
|
137
|
+
description: "Continue.dev adapter - Skills installed in .continue/rules/"
|
|
138
|
+
automation_level: semi
|
|
139
|
+
status: active
|
|
140
|
+
directory: continue
|
|
141
|
+
features:
|
|
142
|
+
- .continue/rules/*.md skill files auto-loaded by Continue extension
|
|
143
|
+
- Files loaded in lexicographic order
|
|
144
|
+
requirements:
|
|
145
|
+
- Continue.dev VS Code or JetBrains extension
|
|
146
|
+
- Node.js >= 18.0.0
|
|
147
|
+
market_share: 10%
|
|
148
|
+
priority: P1
|
|
149
|
+
|
|
150
|
+
- name: cline
|
|
151
|
+
description: "Cline adapter - Skills installed in .cline/rules/"
|
|
152
|
+
automation_level: semi
|
|
153
|
+
status: active
|
|
154
|
+
directory: cline
|
|
155
|
+
features:
|
|
156
|
+
- .cline/rules/*.md skill context files
|
|
157
|
+
- Agentic task execution support
|
|
158
|
+
requirements:
|
|
159
|
+
- Cline VS Code extension
|
|
160
|
+
- Node.js >= 18.0.0
|
|
161
|
+
market_share: 10%
|
|
162
|
+
priority: P1
|
|
163
|
+
|
|
164
|
+
- name: zed
|
|
165
|
+
description: "Zed adapter - Skills installed in .rules/"
|
|
166
|
+
automation_level: semi
|
|
167
|
+
status: active
|
|
168
|
+
directory: zed
|
|
169
|
+
features:
|
|
170
|
+
- .rules/*.md project rule files auto-loaded by Zed AI
|
|
171
|
+
- MCP support for extensibility
|
|
172
|
+
requirements:
|
|
173
|
+
- Zed editor installed
|
|
174
|
+
- Node.js >= 18.0.0
|
|
175
|
+
market_share: 5%
|
|
176
|
+
priority: P2
|
|
177
|
+
|
|
178
|
+
- name: amazonq
|
|
179
|
+
description: "Amazon Q Developer adapter - Skills installed in .amazonq/rules/"
|
|
180
|
+
automation_level: semi
|
|
181
|
+
status: active
|
|
182
|
+
directory: amazonq
|
|
183
|
+
features:
|
|
184
|
+
- .amazonq/rules/*.md files auto-loaded on startup
|
|
185
|
+
- Enterprise-grade AI coding assistant
|
|
186
|
+
requirements:
|
|
187
|
+
- Amazon Q Developer extension or CLI
|
|
188
|
+
- Node.js >= 18.0.0
|
|
189
|
+
market_share: 5%
|
|
190
|
+
priority: P2
|
|
191
|
+
|
|
192
|
+
- name: jetbrains
|
|
193
|
+
description: "JetBrains AI Assistant adapter - Skills installed in .aiassistant/rules/"
|
|
194
|
+
automation_level: semi
|
|
195
|
+
status: active
|
|
196
|
+
directory: jetbrains
|
|
197
|
+
features:
|
|
198
|
+
- .aiassistant/rules/*.md rule files loaded by JetBrains AI
|
|
199
|
+
- Works with IntelliJ IDEA, WebStorm, PyCharm, etc.
|
|
200
|
+
requirements:
|
|
201
|
+
- JetBrains IDE with AI Assistant plugin
|
|
202
|
+
- Node.js >= 18.0.0
|
|
203
|
+
market_share: 10%
|
|
204
|
+
priority: P2
|
|
205
|
+
|
|
206
|
+
- name: aider
|
|
207
|
+
description: "Aider adapter - Skills installed in .aider/"
|
|
127
208
|
automation_level: semi
|
|
128
|
-
status:
|
|
209
|
+
status: active
|
|
210
|
+
directory: aider
|
|
211
|
+
features:
|
|
212
|
+
- .aider/*.md skill context files
|
|
213
|
+
- CLI-first AI coding assistant
|
|
214
|
+
requirements:
|
|
215
|
+
- Aider CLI installed (pip install aider-chat)
|
|
216
|
+
- Node.js >= 18.0.0
|
|
217
|
+
market_share: 5%
|
|
218
|
+
priority: P2
|
|
219
|
+
|
|
220
|
+
- name: tabnine
|
|
221
|
+
description: "Tabnine adapter - Skills installed in .tabnine/guidelines/"
|
|
222
|
+
automation_level: basic
|
|
223
|
+
status: active
|
|
224
|
+
directory: tabnine
|
|
225
|
+
features:
|
|
226
|
+
- .tabnine/guidelines/*.md custom guideline files auto-loaded
|
|
227
|
+
- Enterprise AI code completion
|
|
228
|
+
requirements:
|
|
229
|
+
- Tabnine extension (VS Code, JetBrains, etc.)
|
|
230
|
+
- Node.js >= 18.0.0
|
|
231
|
+
market_share: 5%
|
|
129
232
|
priority: P2
|
|
130
233
|
|
|
234
|
+
# Future adapters (P2/P3)
|
|
235
|
+
future_adapters: []
|
|
236
|
+
|
|
131
237
|
# Adapter capabilities comparison
|
|
132
238
|
capabilities:
|
|
133
239
|
skills:
|
|
134
240
|
claude: full
|
|
135
|
-
cursor:
|
|
136
|
-
copilot:
|
|
137
|
-
gemini:
|
|
138
|
-
codex:
|
|
139
|
-
|
|
241
|
+
cursor: via_rules_folder
|
|
242
|
+
copilot: via_rules_folder
|
|
243
|
+
gemini: via_rules_folder
|
|
244
|
+
codex: via_rules_folder
|
|
245
|
+
windsurf: via_rules_folder
|
|
246
|
+
continue: via_rules_folder
|
|
247
|
+
cline: via_rules_folder
|
|
248
|
+
zed: via_rules_folder
|
|
249
|
+
amazonq: via_rules_folder
|
|
250
|
+
jetbrains: via_rules_folder
|
|
251
|
+
aider: via_rules_folder
|
|
252
|
+
tabnine: via_rules_folder
|
|
253
|
+
generic: via_rules_folder
|
|
140
254
|
|
|
141
255
|
agents:
|
|
142
256
|
claude: full
|
|
@@ -144,6 +258,14 @@ capabilities:
|
|
|
144
258
|
copilot: via_agents_md
|
|
145
259
|
gemini: via_agents_md
|
|
146
260
|
codex: via_agents_md
|
|
261
|
+
windsurf: via_agents_md
|
|
262
|
+
continue: via_agents_md
|
|
263
|
+
cline: via_agents_md
|
|
264
|
+
zed: via_agents_md
|
|
265
|
+
amazonq: via_agents_md
|
|
266
|
+
jetbrains: via_agents_md
|
|
267
|
+
aider: via_agents_md
|
|
268
|
+
tabnine: via_agents_md
|
|
147
269
|
generic: via_agents_md
|
|
148
270
|
|
|
149
271
|
hooks:
|
|
@@ -152,14 +274,30 @@ capabilities:
|
|
|
152
274
|
copilot: none
|
|
153
275
|
gemini: none
|
|
154
276
|
codex: none
|
|
277
|
+
windsurf: none
|
|
278
|
+
continue: none
|
|
279
|
+
cline: none
|
|
280
|
+
zed: none
|
|
281
|
+
amazonq: none
|
|
282
|
+
jetbrains: none
|
|
283
|
+
aider: none
|
|
284
|
+
tabnine: none
|
|
155
285
|
generic: none
|
|
156
286
|
|
|
157
287
|
instruction_file:
|
|
158
288
|
claude: .claude/skills + agents
|
|
159
|
-
cursor:
|
|
160
|
-
copilot:
|
|
161
|
-
gemini:
|
|
162
|
-
codex:
|
|
289
|
+
cursor: .cursor/rules/
|
|
290
|
+
copilot: .github/instructions/
|
|
291
|
+
gemini: .gemini/
|
|
292
|
+
codex: .codex/rules/
|
|
293
|
+
windsurf: .windsurf/rules/
|
|
294
|
+
continue: .continue/rules/
|
|
295
|
+
cline: .cline/rules/
|
|
296
|
+
zed: .rules/
|
|
297
|
+
amazonq: .amazonq/rules/
|
|
298
|
+
jetbrains: .aiassistant/rules/
|
|
299
|
+
aider: .aider/
|
|
300
|
+
tabnine: .tabnine/guidelines/
|
|
163
301
|
generic: AGENTS.md
|
|
164
302
|
|
|
165
303
|
context_manifests:
|
|
@@ -168,6 +306,14 @@ capabilities:
|
|
|
168
306
|
copilot: manual_reference
|
|
169
307
|
gemini: manual_reference
|
|
170
308
|
codex: manual_reference
|
|
309
|
+
windsurf: manual_reference
|
|
310
|
+
continue: manual_reference
|
|
311
|
+
cline: manual_reference
|
|
312
|
+
zed: manual_reference
|
|
313
|
+
amazonq: manual_reference
|
|
314
|
+
jetbrains: manual_reference
|
|
315
|
+
aider: manual_reference
|
|
316
|
+
tabnine: manual_reference
|
|
171
317
|
generic: manual_copy_paste
|
|
172
318
|
|
|
173
319
|
# Target market coverage
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tabnine Adapter
|
|
3
|
+
*/
|
|
4
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
5
|
+
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
6
|
+
import type { Plugin } from '../../core/types/plugin.js';
|
|
7
|
+
export declare class TabnineAdapter extends AdapterBase {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
automationLevel: "basic";
|
|
11
|
+
detect(): Promise<boolean>;
|
|
12
|
+
getFiles(): AdapterFile[];
|
|
13
|
+
install(options: AdapterOptions): Promise<void>;
|
|
14
|
+
supportsPlugins(): boolean;
|
|
15
|
+
compilePlugin(plugin: Plugin): Promise<void>;
|
|
16
|
+
unloadPlugin(pluginName: string): Promise<void>;
|
|
17
|
+
getInstalledPlugins(): Promise<string[]>;
|
|
18
|
+
postInstall(options: AdapterOptions): Promise<void>;
|
|
19
|
+
getInstructions(): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/tabnine/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,cAAe,SAAQ,WAAW;IAC7C,IAAI,SAAa;IACjB,WAAW,SAAgE;IAC3E,eAAe,EAAG,OAAO,CAAU;IAE7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,QAAQ,IAAI,WAAW,EAAE;IAInB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,eAAe,IAAI,OAAO;IAIpB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,eAAe,IAAI,MAAM;CAQ1B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tabnine Adapter
|
|
3
|
+
*/
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import * as fs from '../../utils/fs-native.js';
|
|
6
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
7
|
+
export class TabnineAdapter extends AdapterBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'tabnine';
|
|
11
|
+
this.description = 'Tabnine adapter ā skills installed in .tabnine/guidelines/';
|
|
12
|
+
this.automationLevel = 'basic';
|
|
13
|
+
}
|
|
14
|
+
async detect() {
|
|
15
|
+
return await this.fileExists('.tabnine');
|
|
16
|
+
}
|
|
17
|
+
getFiles() {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
async install(options) {
|
|
21
|
+
console.log('\nš¦ Installing Tabnine Adapter\n');
|
|
22
|
+
await fs.ensureDir(path.join(options.projectPath, '.tabnine/guidelines'));
|
|
23
|
+
console.log('\n⨠Tabnine adapter installed!');
|
|
24
|
+
console.log(' Run `specweave refresh-plugins` to install skills.');
|
|
25
|
+
}
|
|
26
|
+
supportsPlugins() {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
async compilePlugin(plugin) {
|
|
30
|
+
const rulesDir = '.tabnine/guidelines';
|
|
31
|
+
console.log(`\nš¦ Installing plugin skills for Tabnine: ${plugin.manifest.name}`);
|
|
32
|
+
await this.writeSkillFiles(plugin, rulesDir);
|
|
33
|
+
console.log(` ā ${plugin.skills.length} skill(s) written to ${rulesDir}/`);
|
|
34
|
+
console.log(`\nā
Plugin ${plugin.manifest.name} installed for Tabnine!`);
|
|
35
|
+
}
|
|
36
|
+
async unloadPlugin(pluginName) {
|
|
37
|
+
console.log(`\nšļø Unloading plugin from Tabnine: ${pluginName}`);
|
|
38
|
+
await this.removeSkillFiles(pluginName, '.tabnine/guidelines');
|
|
39
|
+
console.log(` ā Removed from .tabnine/guidelines/`);
|
|
40
|
+
console.log(`\nā
Plugin ${pluginName} unloaded!`);
|
|
41
|
+
}
|
|
42
|
+
async getInstalledPlugins() {
|
|
43
|
+
return await this.listInstalledPluginsInDir('.tabnine/guidelines');
|
|
44
|
+
}
|
|
45
|
+
async postInstall(options) {
|
|
46
|
+
console.log(this.getInstructions());
|
|
47
|
+
}
|
|
48
|
+
getInstructions() {
|
|
49
|
+
return `
|
|
50
|
+
Tabnine Adapter
|
|
51
|
+
|
|
52
|
+
Skills installed in .tabnine/guidelines/.
|
|
53
|
+
Run: specweave refresh-plugins
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/adapters/tabnine/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAA/C;;QACE,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,4DAA4D,CAAC;QAC3E,oBAAe,GAAG,OAAgB,CAAC;IAoDrC,CAAC;IAlDC,KAAK,CAAC,MAAM;QACV,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,8CAA8C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,wBAAwB,QAAQ,GAAG,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,OAAO,CAAC,GAAG,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,eAAe;QACb,OAAO;;;;;KAKN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Windsurf Adapter
|
|
3
|
+
*
|
|
4
|
+
* Semi-automation adapter for Windsurf (by Codeium).
|
|
5
|
+
* Uses rule files in .windsurf/rules/ for context-specific instructions.
|
|
6
|
+
*/
|
|
7
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
8
|
+
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
9
|
+
import type { Plugin } from '../../core/types/plugin.js';
|
|
10
|
+
export declare class WindsurfAdapter extends AdapterBase {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
automationLevel: "semi";
|
|
14
|
+
/**
|
|
15
|
+
* Detect if Windsurf is available
|
|
16
|
+
*
|
|
17
|
+
* Checks for:
|
|
18
|
+
* - windsurf command in PATH
|
|
19
|
+
* - .windsurf/ directory exists
|
|
20
|
+
*/
|
|
21
|
+
detect(): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Get files to install for Windsurf adapter
|
|
24
|
+
*/
|
|
25
|
+
getFiles(): AdapterFile[];
|
|
26
|
+
/**
|
|
27
|
+
* Install Windsurf adapter
|
|
28
|
+
*/
|
|
29
|
+
install(options: AdapterOptions): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Check if Windsurf adapter supports plugins
|
|
32
|
+
*/
|
|
33
|
+
supportsPlugins(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Compile and install a plugin for Windsurf
|
|
36
|
+
*
|
|
37
|
+
* Writes skill SKILL.md files as <plugin>-<skill>.md
|
|
38
|
+
* into .windsurf/rules/ for auto-loading by Windsurf.
|
|
39
|
+
*
|
|
40
|
+
* @param plugin Plugin to install
|
|
41
|
+
*/
|
|
42
|
+
compilePlugin(plugin: Plugin): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Unload a plugin from Windsurf
|
|
45
|
+
*
|
|
46
|
+
* Removes <pluginName>-*.md files from .windsurf/rules/
|
|
47
|
+
*
|
|
48
|
+
* @param pluginName Name of plugin to unload
|
|
49
|
+
*/
|
|
50
|
+
unloadPlugin(pluginName: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Get list of installed plugins for Windsurf
|
|
53
|
+
*/
|
|
54
|
+
getInstalledPlugins(): Promise<string[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Post-installation instructions
|
|
57
|
+
*/
|
|
58
|
+
postInstall(options: AdapterOptions): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Get usage instructions for Windsurf adapter
|
|
61
|
+
*/
|
|
62
|
+
getInstructions(): string;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/windsurf/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,IAAI,SAAc;IAClB,WAAW,SAAuE;IAClF,eAAe,EAAG,MAAM,CAAU;IAElC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMhC;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAIzB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI9C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,MAAM;CAW1B"}
|