opencode-mcp 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +39 -3
- package/dist/client.d.ts +5 -4
- package/dist/client.js +18 -11
- package/dist/client.js.map +1 -1
- package/dist/helpers.d.ts +7 -0
- package/dist/helpers.js +12 -0
- package/dist/helpers.js.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/tools/config.js +12 -7
- package/dist/tools/config.js.map +1 -1
- package/dist/tools/events.js +6 -2
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/file.js +23 -18
- package/dist/tools/file.js.map +1 -1
- package/dist/tools/global.js +5 -3
- package/dist/tools/global.js.map +1 -1
- package/dist/tools/message.js +19 -13
- package/dist/tools/message.js.map +1 -1
- package/dist/tools/misc.js +46 -25
- package/dist/tools/misc.js.map +1 -1
- package/dist/tools/project.js +9 -5
- package/dist/tools/project.js.map +1 -1
- package/dist/tools/provider.js +12 -6
- package/dist/tools/provider.js.map +1 -1
- package/dist/tools/session.js +57 -37
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/tui.js +34 -19
- package/dist/tools/tui.js.map +1 -1
- package/dist/tools/workflow.js +102 -22
- package/dist/tools/workflow.js.map +1 -1
- package/package.json +7 -3
package/dist/tools/message.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { toolResult, toolError, formatMessageResponse, formatMessageList, } from "../helpers.js";
|
|
2
|
+
import { toolResult, toolError, formatMessageResponse, formatMessageList, directoryParam, } from "../helpers.js";
|
|
3
3
|
export function registerMessageTools(server, client) {
|
|
4
4
|
server.tool("opencode_message_list", "List all messages in a session with formatted output showing roles and content", {
|
|
5
5
|
sessionId: z.string().describe("Session ID"),
|
|
@@ -7,12 +7,13 @@ export function registerMessageTools(server, client) {
|
|
|
7
7
|
.number()
|
|
8
8
|
.optional()
|
|
9
9
|
.describe("Maximum number of messages to return"),
|
|
10
|
-
|
|
10
|
+
directory: directoryParam,
|
|
11
|
+
}, async ({ sessionId, limit, directory }) => {
|
|
11
12
|
try {
|
|
12
13
|
const query = {};
|
|
13
14
|
if (limit !== undefined)
|
|
14
15
|
query.limit = String(limit);
|
|
15
|
-
const messages = await client.get(`/session/${sessionId}/message`, query);
|
|
16
|
+
const messages = await client.get(`/session/${sessionId}/message`, query, directory);
|
|
16
17
|
return toolResult(formatMessageList(messages));
|
|
17
18
|
}
|
|
18
19
|
catch (e) {
|
|
@@ -22,9 +23,10 @@ export function registerMessageTools(server, client) {
|
|
|
22
23
|
server.tool("opencode_message_get", "Get details of a specific message in a session", {
|
|
23
24
|
sessionId: z.string().describe("Session ID"),
|
|
24
25
|
messageId: z.string().describe("Message ID"),
|
|
25
|
-
|
|
26
|
+
directory: directoryParam,
|
|
27
|
+
}, async ({ sessionId, messageId, directory }) => {
|
|
26
28
|
try {
|
|
27
|
-
const msg = await client.get(`/session/${sessionId}/message/${messageId}
|
|
29
|
+
const msg = await client.get(`/session/${sessionId}/message/${messageId}`, undefined, directory);
|
|
28
30
|
return toolResult(formatMessageResponse(msg));
|
|
29
31
|
}
|
|
30
32
|
catch (e) {
|
|
@@ -48,7 +50,8 @@ export function registerMessageTools(server, client) {
|
|
|
48
50
|
.optional()
|
|
49
51
|
.describe("If true, inject context without triggering AI response (useful for plugins)"),
|
|
50
52
|
system: z.string().optional().describe("System prompt override"),
|
|
51
|
-
|
|
53
|
+
directory: directoryParam,
|
|
54
|
+
}, async ({ sessionId, text, providerID, modelID, agent, noReply, system, directory, }) => {
|
|
52
55
|
try {
|
|
53
56
|
const body = {
|
|
54
57
|
parts: [{ type: "text", text }],
|
|
@@ -62,7 +65,7 @@ export function registerMessageTools(server, client) {
|
|
|
62
65
|
body.noReply = noReply;
|
|
63
66
|
if (system)
|
|
64
67
|
body.system = system;
|
|
65
|
-
const response = await client.post(`/session/${sessionId}/message`, body);
|
|
68
|
+
const response = await client.post(`/session/${sessionId}/message`, body, { directory });
|
|
66
69
|
return toolResult(formatMessageResponse(response));
|
|
67
70
|
}
|
|
68
71
|
catch (e) {
|
|
@@ -81,7 +84,8 @@ export function registerMessageTools(server, client) {
|
|
|
81
84
|
.optional()
|
|
82
85
|
.describe("Model ID (e.g. 'claude-3-5-sonnet-20241022')"),
|
|
83
86
|
agent: z.string().optional().describe("Agent to use"),
|
|
84
|
-
|
|
87
|
+
directory: directoryParam,
|
|
88
|
+
}, async ({ sessionId, text, providerID, modelID, agent, directory }) => {
|
|
85
89
|
try {
|
|
86
90
|
const body = {
|
|
87
91
|
parts: [{ type: "text", text }],
|
|
@@ -91,7 +95,7 @@ export function registerMessageTools(server, client) {
|
|
|
91
95
|
}
|
|
92
96
|
if (agent)
|
|
93
97
|
body.agent = agent;
|
|
94
|
-
await client.post(`/session/${sessionId}/prompt_async`, body);
|
|
98
|
+
await client.post(`/session/${sessionId}/prompt_async`, body, { directory });
|
|
95
99
|
return toolResult("Message sent asynchronously. Use opencode_wait or opencode_message_list to check for responses.");
|
|
96
100
|
}
|
|
97
101
|
catch (e) {
|
|
@@ -110,7 +114,8 @@ export function registerMessageTools(server, client) {
|
|
|
110
114
|
agent: z.string().optional().describe("Agent to use"),
|
|
111
115
|
providerID: z.string().optional().describe("Provider ID"),
|
|
112
116
|
modelID: z.string().optional().describe("Model ID"),
|
|
113
|
-
|
|
117
|
+
directory: directoryParam,
|
|
118
|
+
}, async ({ sessionId, command, arguments: args, agent, providerID, modelID, directory, }) => {
|
|
114
119
|
try {
|
|
115
120
|
const body = {
|
|
116
121
|
command,
|
|
@@ -121,7 +126,7 @@ export function registerMessageTools(server, client) {
|
|
|
121
126
|
if (providerID && modelID) {
|
|
122
127
|
body.model = { providerID, modelID };
|
|
123
128
|
}
|
|
124
|
-
const result = await client.post(`/session/${sessionId}/command`, body);
|
|
129
|
+
const result = await client.post(`/session/${sessionId}/command`, body, { directory });
|
|
125
130
|
return toolResult(formatMessageResponse(result));
|
|
126
131
|
}
|
|
127
132
|
catch (e) {
|
|
@@ -134,13 +139,14 @@ export function registerMessageTools(server, client) {
|
|
|
134
139
|
agent: z.string().describe("Agent to use for the shell command"),
|
|
135
140
|
providerID: z.string().optional().describe("Provider ID"),
|
|
136
141
|
modelID: z.string().optional().describe("Model ID"),
|
|
137
|
-
|
|
142
|
+
directory: directoryParam,
|
|
143
|
+
}, async ({ sessionId, command, agent, providerID, modelID, directory }) => {
|
|
138
144
|
try {
|
|
139
145
|
const body = { command, agent };
|
|
140
146
|
if (providerID && modelID) {
|
|
141
147
|
body.model = { providerID, modelID };
|
|
142
148
|
}
|
|
143
|
-
const result = await client.post(`/session/${sessionId}/shell`, body);
|
|
149
|
+
const result = await client.post(`/session/${sessionId}/shell`, body, { directory });
|
|
144
150
|
return toolResult(formatMessageResponse(result));
|
|
145
151
|
}
|
|
146
152
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/tools/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/tools/message.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/misc.js
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { toolJson, toolError, toolResult } from "../helpers.js";
|
|
2
|
+
import { toolJson, toolError, toolResult, directoryParam } from "../helpers.js";
|
|
3
3
|
export function registerMiscTools(server, client) {
|
|
4
4
|
// --- Path & VCS ---
|
|
5
|
-
server.tool("opencode_path_get", "Get the current working path of the opencode server", {
|
|
5
|
+
server.tool("opencode_path_get", "Get the current working path of the opencode server", {
|
|
6
|
+
directory: directoryParam,
|
|
7
|
+
}, async ({ directory }) => {
|
|
6
8
|
try {
|
|
7
|
-
return toolJson(await client.get("/path"));
|
|
9
|
+
return toolJson(await client.get("/path", undefined, directory));
|
|
8
10
|
}
|
|
9
11
|
catch (e) {
|
|
10
12
|
return toolError(e);
|
|
11
13
|
}
|
|
12
14
|
});
|
|
13
|
-
server.tool("opencode_vcs_info", "Get VCS (version control) info for the current project (branch, remote, status)", {
|
|
15
|
+
server.tool("opencode_vcs_info", "Get VCS (version control) info for the current project (branch, remote, status)", {
|
|
16
|
+
directory: directoryParam,
|
|
17
|
+
}, async ({ directory }) => {
|
|
14
18
|
try {
|
|
15
|
-
return toolJson(await client.get("/vcs"));
|
|
19
|
+
return toolJson(await client.get("/vcs", undefined, directory));
|
|
16
20
|
}
|
|
17
21
|
catch (e) {
|
|
18
22
|
return toolError(e);
|
|
19
23
|
}
|
|
20
24
|
});
|
|
21
25
|
// --- Instance ---
|
|
22
|
-
server.tool("opencode_instance_dispose", "Dispose the current opencode instance (shuts it down)", {
|
|
26
|
+
server.tool("opencode_instance_dispose", "Dispose the current opencode instance (shuts it down)", {
|
|
27
|
+
directory: directoryParam,
|
|
28
|
+
}, async ({ directory }) => {
|
|
23
29
|
try {
|
|
24
|
-
await client.post("/instance/dispose");
|
|
30
|
+
await client.post("/instance/dispose", undefined, { directory });
|
|
25
31
|
return toolResult("Instance disposed.");
|
|
26
32
|
}
|
|
27
33
|
catch (e) {
|
|
@@ -29,9 +35,11 @@ export function registerMiscTools(server, client) {
|
|
|
29
35
|
}
|
|
30
36
|
});
|
|
31
37
|
// --- Agents ---
|
|
32
|
-
server.tool("opencode_agent_list", "List all available agents with their names, descriptions, and modes (primary/subagent)", {
|
|
38
|
+
server.tool("opencode_agent_list", "List all available agents with their names, descriptions, and modes (primary/subagent)", {
|
|
39
|
+
directory: directoryParam,
|
|
40
|
+
}, async ({ directory }) => {
|
|
33
41
|
try {
|
|
34
|
-
const agents = (await client.get("/agent"));
|
|
42
|
+
const agents = (await client.get("/agent", undefined, directory));
|
|
35
43
|
if (!agents || agents.length === 0) {
|
|
36
44
|
return toolResult("No agents found.");
|
|
37
45
|
}
|
|
@@ -48,36 +56,44 @@ export function registerMiscTools(server, client) {
|
|
|
48
56
|
}
|
|
49
57
|
});
|
|
50
58
|
// --- Commands ---
|
|
51
|
-
server.tool("opencode_command_list", "List all available commands (built-in and custom slash commands)", {
|
|
59
|
+
server.tool("opencode_command_list", "List all available commands (built-in and custom slash commands)", {
|
|
60
|
+
directory: directoryParam,
|
|
61
|
+
}, async ({ directory }) => {
|
|
52
62
|
try {
|
|
53
|
-
return toolJson(await client.get("/command"));
|
|
63
|
+
return toolJson(await client.get("/command", undefined, directory));
|
|
54
64
|
}
|
|
55
65
|
catch (e) {
|
|
56
66
|
return toolError(e);
|
|
57
67
|
}
|
|
58
68
|
});
|
|
59
69
|
// --- LSP ---
|
|
60
|
-
server.tool("opencode_lsp_status", "Get the status of LSP (Language Server Protocol) servers", {
|
|
70
|
+
server.tool("opencode_lsp_status", "Get the status of LSP (Language Server Protocol) servers", {
|
|
71
|
+
directory: directoryParam,
|
|
72
|
+
}, async ({ directory }) => {
|
|
61
73
|
try {
|
|
62
|
-
return toolJson(await client.get("/lsp"));
|
|
74
|
+
return toolJson(await client.get("/lsp", undefined, directory));
|
|
63
75
|
}
|
|
64
76
|
catch (e) {
|
|
65
77
|
return toolError(e);
|
|
66
78
|
}
|
|
67
79
|
});
|
|
68
80
|
// --- Formatter ---
|
|
69
|
-
server.tool("opencode_formatter_status", "Get the status of configured formatters", {
|
|
81
|
+
server.tool("opencode_formatter_status", "Get the status of configured formatters", {
|
|
82
|
+
directory: directoryParam,
|
|
83
|
+
}, async ({ directory }) => {
|
|
70
84
|
try {
|
|
71
|
-
return toolJson(await client.get("/formatter"));
|
|
85
|
+
return toolJson(await client.get("/formatter", undefined, directory));
|
|
72
86
|
}
|
|
73
87
|
catch (e) {
|
|
74
88
|
return toolError(e);
|
|
75
89
|
}
|
|
76
90
|
});
|
|
77
91
|
// --- MCP servers ---
|
|
78
|
-
server.tool("opencode_mcp_status", "Get the status of all MCP servers configured in opencode", {
|
|
92
|
+
server.tool("opencode_mcp_status", "Get the status of all MCP servers configured in opencode", {
|
|
93
|
+
directory: directoryParam,
|
|
94
|
+
}, async ({ directory }) => {
|
|
79
95
|
try {
|
|
80
|
-
return toolJson(await client.get("/mcp"));
|
|
96
|
+
return toolJson(await client.get("/mcp", undefined, directory));
|
|
81
97
|
}
|
|
82
98
|
catch (e) {
|
|
83
99
|
return toolError(e);
|
|
@@ -88,18 +104,21 @@ export function registerMiscTools(server, client) {
|
|
|
88
104
|
config: z
|
|
89
105
|
.record(z.string(), z.unknown())
|
|
90
106
|
.describe("MCP server configuration object"),
|
|
91
|
-
|
|
107
|
+
directory: directoryParam,
|
|
108
|
+
}, async ({ name, config, directory }) => {
|
|
92
109
|
try {
|
|
93
|
-
return toolJson(await client.post("/mcp", { name, config }));
|
|
110
|
+
return toolJson(await client.post("/mcp", { name, config }, { directory }));
|
|
94
111
|
}
|
|
95
112
|
catch (e) {
|
|
96
113
|
return toolError(e);
|
|
97
114
|
}
|
|
98
115
|
});
|
|
99
116
|
// --- Tools (Experimental) ---
|
|
100
|
-
server.tool("opencode_tool_ids", "List all available tool IDs that the LLM can use (experimental)", {
|
|
117
|
+
server.tool("opencode_tool_ids", "List all available tool IDs that the LLM can use (experimental)", {
|
|
118
|
+
directory: directoryParam,
|
|
119
|
+
}, async ({ directory }) => {
|
|
101
120
|
try {
|
|
102
|
-
return toolJson(await client.get("/experimental/tool/ids"));
|
|
121
|
+
return toolJson(await client.get("/experimental/tool/ids", undefined, directory));
|
|
103
122
|
}
|
|
104
123
|
catch (e) {
|
|
105
124
|
return toolError(e);
|
|
@@ -108,9 +127,10 @@ export function registerMiscTools(server, client) {
|
|
|
108
127
|
server.tool("opencode_tool_list", "List tools with JSON schemas for a given provider and model (experimental)", {
|
|
109
128
|
provider: z.string().describe("Provider ID"),
|
|
110
129
|
model: z.string().describe("Model ID"),
|
|
111
|
-
|
|
130
|
+
directory: directoryParam,
|
|
131
|
+
}, async ({ provider, model, directory }) => {
|
|
112
132
|
try {
|
|
113
|
-
return toolJson(await client.get("/experimental/tool", { provider, model }));
|
|
133
|
+
return toolJson(await client.get("/experimental/tool", { provider, model }, directory));
|
|
114
134
|
}
|
|
115
135
|
catch (e) {
|
|
116
136
|
return toolError(e);
|
|
@@ -127,12 +147,13 @@ export function registerMiscTools(server, client) {
|
|
|
127
147
|
.record(z.string(), z.unknown())
|
|
128
148
|
.optional()
|
|
129
149
|
.describe("Extra data to include in the log entry"),
|
|
130
|
-
|
|
150
|
+
directory: directoryParam,
|
|
151
|
+
}, async ({ service, level, message, extra, directory }) => {
|
|
131
152
|
try {
|
|
132
153
|
const body = { service, level, message };
|
|
133
154
|
if (extra)
|
|
134
155
|
body.extra = extra;
|
|
135
|
-
await client.post("/log", body);
|
|
156
|
+
await client.post("/log", body, { directory });
|
|
136
157
|
return toolResult(`Log entry written [${level}] ${service}: ${message}`);
|
|
137
158
|
}
|
|
138
159
|
catch (e) {
|
package/dist/tools/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/tools/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/tools/misc.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/project.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { toolJson, toolError } from "../helpers.js";
|
|
1
|
+
import { toolJson, toolError, directoryParam } from "../helpers.js";
|
|
2
2
|
export function registerProjectTools(server, client) {
|
|
3
|
-
server.tool("opencode_project_list", "List all projects known to the opencode server", {
|
|
3
|
+
server.tool("opencode_project_list", "List all projects known to the opencode server", {
|
|
4
|
+
directory: directoryParam,
|
|
5
|
+
}, async ({ directory }) => {
|
|
4
6
|
try {
|
|
5
|
-
return toolJson(await client.get("/project"));
|
|
7
|
+
return toolJson(await client.get("/project", undefined, directory));
|
|
6
8
|
}
|
|
7
9
|
catch (e) {
|
|
8
10
|
return toolError(e);
|
|
9
11
|
}
|
|
10
12
|
});
|
|
11
|
-
server.tool("opencode_project_current", "Get the current active project", {
|
|
13
|
+
server.tool("opencode_project_current", "Get the current active project", {
|
|
14
|
+
directory: directoryParam,
|
|
15
|
+
}, async ({ directory }) => {
|
|
12
16
|
try {
|
|
13
|
-
return toolJson(await client.get("/project/current"));
|
|
17
|
+
return toolJson(await client.get("/project/current", undefined, directory));
|
|
14
18
|
}
|
|
15
19
|
catch (e) {
|
|
16
20
|
return toolError(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,gDAAgD,EAChD;QACE,SAAS,EAAE,cAAc;KAC1B,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,gCAAgC,EAChC;QACE,SAAS,EAAE,cAAc;KAC1B,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/provider.js
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { toolJson, toolError, toolResult } from "../helpers.js";
|
|
2
|
+
import { toolJson, toolError, toolResult, directoryParam } from "../helpers.js";
|
|
3
3
|
export function registerProviderTools(server, client) {
|
|
4
|
-
server.tool("opencode_provider_list", "List all providers, default models, and connected providers", {
|
|
4
|
+
server.tool("opencode_provider_list", "List all providers, default models, and connected providers", {
|
|
5
|
+
directory: directoryParam,
|
|
6
|
+
}, async ({ directory }) => {
|
|
5
7
|
try {
|
|
6
|
-
return toolJson(await client.get("/provider"));
|
|
8
|
+
return toolJson(await client.get("/provider", undefined, directory));
|
|
7
9
|
}
|
|
8
10
|
catch (e) {
|
|
9
11
|
return toolError(e);
|
|
10
12
|
}
|
|
11
13
|
});
|
|
12
|
-
server.tool("opencode_provider_auth_methods", "Get available authentication methods for all providers", {
|
|
14
|
+
server.tool("opencode_provider_auth_methods", "Get available authentication methods for all providers", {
|
|
15
|
+
directory: directoryParam,
|
|
16
|
+
}, async ({ directory }) => {
|
|
13
17
|
try {
|
|
14
|
-
return toolJson(await client.get("/provider/auth"));
|
|
18
|
+
return toolJson(await client.get("/provider/auth", undefined, directory));
|
|
15
19
|
}
|
|
16
20
|
catch (e) {
|
|
17
21
|
return toolError(e);
|
|
18
22
|
}
|
|
19
23
|
});
|
|
24
|
+
// Auth routes run OUTSIDE the directory middleware in the OpenCode server,
|
|
25
|
+
// so these tools do not accept a directory parameter.
|
|
20
26
|
server.tool("opencode_provider_oauth_authorize", "Start OAuth authorization for a provider", {
|
|
21
27
|
providerId: z.string().describe("Provider ID to authorize"),
|
|
22
28
|
}, async ({ providerId }) => {
|
|
@@ -41,7 +47,7 @@ export function registerProviderTools(server, client) {
|
|
|
41
47
|
return toolError(e);
|
|
42
48
|
}
|
|
43
49
|
});
|
|
44
|
-
server.tool("opencode_auth_set", "Set authentication credentials for a provider (e.g. API key)", {
|
|
50
|
+
server.tool("opencode_auth_set", "Set authentication credentials for a provider (e.g. API key). Credentials are stored globally and shared across all projects.", {
|
|
45
51
|
providerId: z.string().describe("Provider ID (e.g. 'anthropic')"),
|
|
46
52
|
type: z.string().describe("Auth type (e.g. 'api')"),
|
|
47
53
|
key: z.string().describe("API key or credential value"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"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"}
|