@devflow-tools/adapters 0.12.6 → 0.13.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.
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from "./types.js";
2
+ export declare const claudeAdapter: AgentAdapter;
3
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyC,MAAM,YAAY,CAAC;AAKtF,eAAO,MAAM,aAAa,EAAE,YA8B3B,CAAC"}
package/dist/claude.js ADDED
@@ -0,0 +1,33 @@
1
+ import { homedir } from "os";
2
+ import { join } from "path";
3
+ import { existsSync } from "fs";
4
+ export const claudeAdapter = {
5
+ name: "claude",
6
+ async detect() {
7
+ return (existsSync(join(homedir(), ".claude.json")) ||
8
+ existsSync(join(homedir(), ".claude", "settings.json")));
9
+ },
10
+ configPath() {
11
+ return join(process.cwd(), ".mcp.json");
12
+ },
13
+ generateConfig(config) {
14
+ const mcpConfig = config;
15
+ const mcpJson = {
16
+ mcpServers: {
17
+ devflow: {
18
+ command: mcpConfig.command,
19
+ args: mcpConfig.args,
20
+ },
21
+ },
22
+ };
23
+ if (mcpConfig.env) {
24
+ mcpJson.mcpServers.devflow = {
25
+ command: mcpConfig.command,
26
+ args: mcpConfig.args,
27
+ env: mcpConfig.env,
28
+ };
29
+ }
30
+ return JSON.stringify(mcpJson, null, 2);
31
+ },
32
+ };
33
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,MAAM;QACV,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,CAAC,MAAwB;QACrC,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;aACF;SACF,CAAC;QACF,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,UAAsC,CAAC,OAAO,GAAG;gBACxD,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from "./types.js";
2
+ export declare const clineAdapter: AgentAdapter;
3
+ //# sourceMappingURL=cline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../src/cline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyC,MAAM,YAAY,CAAC;AAKtF,eAAO,MAAM,YAAY,EAAE,YAkC1B,CAAC"}
package/dist/cline.js ADDED
@@ -0,0 +1,38 @@
1
+ import { join } from "path";
2
+ import { homedir } from "os";
3
+ import { existsSync } from "fs";
4
+ export const clineAdapter = {
5
+ name: "cline",
6
+ async detect() {
7
+ try {
8
+ return (existsSync(join(homedir(), ".vscode", "extensions")) ||
9
+ existsSync(join(homedir(), ".cursor", "extensions")));
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ },
15
+ configPath() {
16
+ return join(process.cwd(), ".cline", "mcp.json");
17
+ },
18
+ generateConfig(config) {
19
+ const mcpConfig = config;
20
+ const mcpJson = {
21
+ mcpServers: {
22
+ devflow: {
23
+ command: mcpConfig.command,
24
+ args: mcpConfig.args,
25
+ },
26
+ },
27
+ };
28
+ if (mcpConfig.env) {
29
+ mcpJson.mcpServers.devflow = {
30
+ command: mcpConfig.command,
31
+ args: mcpConfig.args,
32
+ env: mcpConfig.env,
33
+ };
34
+ }
35
+ return JSON.stringify(mcpJson, null, 2);
36
+ },
37
+ };
38
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../src/cline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBACpD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CACrD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,cAAc,CAAC,MAAwB;QACrC,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;aACF;SACF,CAAC;QACF,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,UAAsC,CAAC,OAAO,GAAG;gBACxD,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from "./types.js";
2
+ export declare const codexAdapter: AgentAdapter;
3
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA8D,MAAM,YAAY,CAAC;AAI3G,eAAO,MAAM,YAAY,EAAE,YA2C1B,CAAC"}
package/dist/codex.js ADDED
@@ -0,0 +1,48 @@
1
+ import { join } from "path";
2
+ import { existsSync } from "fs";
3
+ export const codexAdapter = {
4
+ name: "codex",
5
+ async detect() {
6
+ try {
7
+ return existsSync(join(process.cwd(), ".codex"));
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ },
13
+ configPath() {
14
+ return join(process.cwd(), ".codex", "mcp.json");
15
+ },
16
+ generateConfig(config) {
17
+ if ("url" in config) {
18
+ const sseConfig = config;
19
+ const mcpJson = {
20
+ mcpServers: {
21
+ devflow: {
22
+ type: "sse",
23
+ url: sseConfig.url,
24
+ },
25
+ },
26
+ };
27
+ if (sseConfig.headers) {
28
+ mcpJson.mcpServers.devflow = {
29
+ type: "sse",
30
+ url: sseConfig.url,
31
+ headers: sseConfig.headers,
32
+ };
33
+ }
34
+ return JSON.stringify(mcpJson, null, 2);
35
+ }
36
+ const mcpConfig = config;
37
+ const mcpJson = {
38
+ mcpServers: {
39
+ devflow: {
40
+ command: mcpConfig.command,
41
+ args: mcpConfig.args,
42
+ },
43
+ },
44
+ };
45
+ return JSON.stringify(mcpJson, null, 2);
46
+ },
47
+ };
48
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,cAAc,CAAC,MAAwB;QACrC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAA6B,CAAC;YAChD,MAAM,OAAO,GAA4B;gBACvC,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,GAAG,EAAE,SAAS,CAAC,GAAG;qBACnB;iBACF;aACF,CAAC;YACF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,UAAsC,CAAC,OAAO,GAAG;oBACxD,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,OAAO,EAAE,SAAS,CAAC,OAAO;iBAC3B,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;aACF;SACF,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from "./types.js";
2
+ export declare const cursorAdapter: AgentAdapter;
3
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyC,MAAM,YAAY,CAAC;AAItF,eAAO,MAAM,aAAa,EAAE,YA+B3B,CAAC"}
package/dist/cursor.js ADDED
@@ -0,0 +1,36 @@
1
+ import { join } from "path";
2
+ import { existsSync } from "fs";
3
+ export const cursorAdapter = {
4
+ name: "cursor",
5
+ async detect() {
6
+ try {
7
+ return existsSync(join(process.cwd(), ".cursor"));
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ },
13
+ configPath() {
14
+ return join(process.cwd(), ".cursor", "mcp.json");
15
+ },
16
+ generateConfig(config) {
17
+ const mcpConfig = config;
18
+ const mcpJson = {
19
+ mcpServers: {
20
+ devflow: {
21
+ command: mcpConfig.command,
22
+ args: mcpConfig.args,
23
+ },
24
+ },
25
+ };
26
+ if (mcpConfig.env) {
27
+ mcpJson.mcpServers.devflow = {
28
+ command: mcpConfig.command,
29
+ args: mcpConfig.args,
30
+ env: mcpConfig.env,
31
+ };
32
+ }
33
+ return JSON.stringify(mcpJson, null, 2);
34
+ },
35
+ };
36
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,cAAc,CAAC,MAAwB;QACrC,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;aACF;SACF,CAAC;QACF,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,UAAsC,CAAC,OAAO,GAAG;gBACxD,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type { AgentAdapter, ConnectionConfig, MCPConnectionConfig, SSEConnectionConfig, ConnectResult, } from "./types.js";
2
+ export { claudeAdapter } from "./claude.js";
3
+ export { cursorAdapter } from "./cursor.js";
4
+ export { codexAdapter } from "./codex.js";
5
+ export { clineAdapter } from "./cline.js";
6
+ export { rooCodeAdapter } from "./roocode.js";
7
+ import type { AgentAdapter, ConnectResult, ConnectionConfig } from "./types.js";
8
+ export declare function getAdapter(name: string): AgentAdapter | undefined;
9
+ export declare function detectAll(): Promise<string[]>;
10
+ export declare function connect(agent: string, config: ConnectionConfig): Promise<ConnectResult>;
11
+ export declare function connectAll(config: ConnectionConfig): Promise<ConnectResult[]>;
12
+ export declare function listAdapters(): string[];
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAO9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYhF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnD;AAED,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,EAAE,CAAC,CAO1B;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC"}
package/dist/index.js ADDED
@@ -0,0 +1,55 @@
1
+ export { claudeAdapter } from "./claude.js";
2
+ export { cursorAdapter } from "./cursor.js";
3
+ export { codexAdapter } from "./codex.js";
4
+ export { clineAdapter } from "./cline.js";
5
+ export { rooCodeAdapter } from "./roocode.js";
6
+ import { claudeAdapter } from "./claude.js";
7
+ import { cursorAdapter } from "./cursor.js";
8
+ import { codexAdapter } from "./codex.js";
9
+ import { clineAdapter } from "./cline.js";
10
+ import { rooCodeAdapter } from "./roocode.js";
11
+ import { writeFileSync, mkdirSync, existsSync } from "fs";
12
+ import { dirname } from "path";
13
+ const ALL_ADAPTERS = [
14
+ claudeAdapter,
15
+ cursorAdapter,
16
+ codexAdapter,
17
+ clineAdapter,
18
+ rooCodeAdapter,
19
+ ];
20
+ export function getAdapter(name) {
21
+ return ALL_ADAPTERS.find((a) => a.name === name);
22
+ }
23
+ export async function detectAll() {
24
+ const results = [];
25
+ for (const adapter of ALL_ADAPTERS) {
26
+ if (await adapter.detect()) {
27
+ results.push(adapter.name);
28
+ }
29
+ }
30
+ return results;
31
+ }
32
+ export async function connect(agent, config) {
33
+ const adapter = getAdapter(agent);
34
+ if (!adapter)
35
+ throw new Error(`Unknown agent: ${agent}`);
36
+ const path = adapter.configPath();
37
+ const content = adapter.generateConfig(config);
38
+ const dir = dirname(path);
39
+ if (!existsSync(dir))
40
+ mkdirSync(dir, { recursive: true });
41
+ writeFileSync(path, content, "utf-8");
42
+ return { agent, configPath: path, written: true };
43
+ }
44
+ export async function connectAll(config) {
45
+ const detected = await detectAll();
46
+ const results = [];
47
+ for (const agent of detected) {
48
+ results.push(await connect(agent, config));
49
+ }
50
+ return results;
51
+ }
52
+ export function listAdapters() {
53
+ return ALL_ADAPTERS.map((a) => a.name);
54
+ }
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,YAAY,GAAmB;IACnC,aAAa;IACb,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,MAAwB;IAExB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from "./types.js";
2
+ export declare const rooCodeAdapter: AgentAdapter;
3
+ //# sourceMappingURL=roocode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roocode.d.ts","sourceRoot":"","sources":["../src/roocode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyC,MAAM,YAAY,CAAC;AAItF,eAAO,MAAM,cAAc,EAAE,YA+B5B,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { join } from "path";
2
+ import { existsSync } from "fs";
3
+ export const rooCodeAdapter = {
4
+ name: "roocode",
5
+ async detect() {
6
+ try {
7
+ return existsSync(join(process.cwd(), ".roo"));
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ },
13
+ configPath() {
14
+ return join(process.cwd(), ".roo", "mcp.json");
15
+ },
16
+ generateConfig(config) {
17
+ const mcpConfig = config;
18
+ const mcpJson = {
19
+ mcpServers: {
20
+ devflow: {
21
+ command: mcpConfig.command,
22
+ args: mcpConfig.args,
23
+ },
24
+ },
25
+ };
26
+ if (mcpConfig.env) {
27
+ mcpJson.mcpServers.devflow = {
28
+ command: mcpConfig.command,
29
+ args: mcpConfig.args,
30
+ env: mcpConfig.env,
31
+ };
32
+ }
33
+ return JSON.stringify(mcpJson, null, 2);
34
+ },
35
+ };
36
+ //# sourceMappingURL=roocode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roocode.js","sourceRoot":"","sources":["../src/roocode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,cAAc,CAAC,MAAwB;QACrC,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;aACF;SACF,CAAC;QACF,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,UAAsC,CAAC,OAAO,GAAG;gBACxD,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface MCPConnectionConfig {
2
+ command: string;
3
+ args: string[];
4
+ env?: Record<string, string>;
5
+ }
6
+ export interface SSEConnectionConfig {
7
+ url: string;
8
+ headers?: Record<string, string>;
9
+ }
10
+ export type ConnectionConfig = MCPConnectionConfig | SSEConnectionConfig;
11
+ export interface ConnectResult {
12
+ agent: string;
13
+ configPath: string;
14
+ written: boolean;
15
+ }
16
+ export interface AgentAdapter {
17
+ name: string;
18
+ detect(): Promise<boolean>;
19
+ generateConfig(config: ConnectionConfig): string;
20
+ configPath(): string;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACjD,UAAU,IAAI,MAAM,CAAC;CACtB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/adapters",
3
- "version": "0.12.6",
3
+ "version": "0.13.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  "clean": "rm -rf dist"
18
18
  },
19
19
  "dependencies": {
20
- "@devflow-tools/sdk": "^0.12.5"
20
+ "@devflow-tools/sdk": "^0.13.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "typescript": "^5.5.0",
@@ -26,5 +26,5 @@
26
26
  "files": [
27
27
  "dist"
28
28
  ],
29
- "gitHead": "d544427472016eb332c6c2107f0fc98d8ae59c14"
29
+ "gitHead": "6e5878a1ab2bba3a21bd42a5f7e236d4f7375d4f"
30
30
  }