opencode-mcp 1.4.0 → 1.8.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 +55 -0
- package/README.md +25 -8
- package/dist/client.d.ts +3 -1
- package/dist/client.js +29 -1
- package/dist/client.js.map +1 -1
- package/dist/helpers.d.ts +45 -0
- package/dist/helpers.js +293 -11
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +82 -11
- package/dist/index.js.map +1 -1
- package/dist/prompts.js +65 -0
- package/dist/prompts.js.map +1 -1
- package/dist/tools/config.js +70 -3
- package/dist/tools/config.js.map +1 -1
- package/dist/tools/events.js +1 -1
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/file.js +38 -17
- package/dist/tools/file.js.map +1 -1
- package/dist/tools/global.js +6 -3
- package/dist/tools/global.js.map +1 -1
- package/dist/tools/message.js +10 -2
- package/dist/tools/message.js.map +1 -1
- package/dist/tools/misc.js +145 -11
- package/dist/tools/misc.js.map +1 -1
- package/dist/tools/project.js +41 -3
- package/dist/tools/project.js.map +1 -1
- package/dist/tools/provider.js +94 -28
- package/dist/tools/provider.js.map +1 -1
- package/dist/tools/session.js +126 -19
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/workflow.js +278 -88
- package/dist/tools/workflow.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/project.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
|
-
import { toolJson, toolError, directoryParam } from "../helpers.js";
|
|
1
|
+
import { toolJson, toolError, toolResult, directoryParam } from "../helpers.js";
|
|
2
|
+
/** Format a project object into a compact summary. */
|
|
3
|
+
function formatProject(p) {
|
|
4
|
+
const worktree = (p.worktree ?? "unknown");
|
|
5
|
+
const name = (worktree !== "unknown" ? worktree.split("/").filter(Boolean).pop() : undefined)
|
|
6
|
+
?? p.name ?? p.id ?? "unknown";
|
|
7
|
+
const lines = [];
|
|
8
|
+
lines.push(`Name: ${name}`);
|
|
9
|
+
lines.push(`Path: ${worktree}`);
|
|
10
|
+
if (p.vcs)
|
|
11
|
+
lines.push(`VCS: ${p.vcs}`);
|
|
12
|
+
if (p.id)
|
|
13
|
+
lines.push(`ID: ${p.id}`);
|
|
14
|
+
const time = p.time;
|
|
15
|
+
if (time?.created) {
|
|
16
|
+
lines.push(`Created: ${new Date(time.created).toISOString()}`);
|
|
17
|
+
}
|
|
18
|
+
if (time?.updated) {
|
|
19
|
+
lines.push(`Updated: ${new Date(time.updated).toISOString()}`);
|
|
20
|
+
}
|
|
21
|
+
return lines.join("\n");
|
|
22
|
+
}
|
|
2
23
|
export function registerProjectTools(server, client) {
|
|
3
24
|
server.tool("opencode_project_list", "List all projects known to the opencode server", {
|
|
4
25
|
directory: directoryParam,
|
|
5
26
|
}, async ({ directory }) => {
|
|
6
27
|
try {
|
|
7
|
-
|
|
28
|
+
const raw = await client.get("/project", undefined, directory);
|
|
29
|
+
const projects = Array.isArray(raw) ? raw : [];
|
|
30
|
+
if (projects.length === 0) {
|
|
31
|
+
return toolResult("No projects found.");
|
|
32
|
+
}
|
|
33
|
+
const lines = projects.map((p) => {
|
|
34
|
+
const worktree = (p.worktree ?? "?");
|
|
35
|
+
const name = (worktree !== "?" ? worktree.split("/").filter(Boolean).pop() : undefined)
|
|
36
|
+
?? p.name ?? p.id ?? "(root)";
|
|
37
|
+
const vcs = p.vcs ? ` [${p.vcs}]` : "";
|
|
38
|
+
return `- ${name}: ${worktree}${vcs}`;
|
|
39
|
+
});
|
|
40
|
+
return toolResult(`## Projects (${projects.length})\n${lines.join("\n")}`);
|
|
8
41
|
}
|
|
9
42
|
catch (e) {
|
|
10
43
|
return toolError(e);
|
|
@@ -14,7 +47,12 @@ export function registerProjectTools(server, client) {
|
|
|
14
47
|
directory: directoryParam,
|
|
15
48
|
}, async ({ directory }) => {
|
|
16
49
|
try {
|
|
17
|
-
|
|
50
|
+
const raw = await client.get("/project/current", undefined, directory);
|
|
51
|
+
const p = raw;
|
|
52
|
+
if (p && typeof p === "object") {
|
|
53
|
+
return toolResult(formatProject(p));
|
|
54
|
+
}
|
|
55
|
+
return toolJson(raw);
|
|
18
56
|
}
|
|
19
57
|
catch (e) {
|
|
20
58
|
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,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/provider.js
CHANGED
|
@@ -1,23 +1,53 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { toolJson, toolError, toolResult, directoryParam } from "../helpers.js";
|
|
2
|
+
import { toolJson, toolError, toolResult, directoryParam, isProviderConfigured } from "../helpers.js";
|
|
3
3
|
export function registerProviderTools(server, client) {
|
|
4
4
|
server.tool("opencode_provider_list", "List all configured providers with their connection status. Returns a compact summary — use opencode_provider_models to see models for a specific provider.", {
|
|
5
5
|
directory: directoryParam,
|
|
6
6
|
}, async ({ directory }) => {
|
|
7
7
|
try {
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const raw = await client.get("/provider", undefined, directory);
|
|
9
|
+
const providers = (raw && typeof raw === "object" && "all" in raw
|
|
10
|
+
? raw.all
|
|
11
|
+
: raw);
|
|
12
|
+
if (!Array.isArray(providers) || providers.length === 0) {
|
|
10
13
|
return toolResult("No providers configured.");
|
|
11
14
|
}
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const countModels = (p) => {
|
|
16
|
+
const m = p.models;
|
|
17
|
+
return Array.isArray(m) ? m.length : m && typeof m === "object" ? Object.keys(m).length : 0;
|
|
18
|
+
};
|
|
19
|
+
const configured = providers.filter(isProviderConfigured);
|
|
20
|
+
const unconfigured = providers.filter((p) => !isProviderConfigured(p));
|
|
21
|
+
const lines = [];
|
|
22
|
+
if (configured.length > 0) {
|
|
23
|
+
lines.push("**Configured:**");
|
|
24
|
+
for (const p of configured) {
|
|
25
|
+
const id = p.id ?? p.name ?? "?";
|
|
26
|
+
const mc = countModels(p);
|
|
27
|
+
const envVars = Array.isArray(p.env) ? ` (via ${p.env.join(", ")})` : "";
|
|
28
|
+
lines.push(`- ${id}: ${mc} model${mc !== 1 ? "s" : ""}${envVars}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
lines.push("**No providers configured.** Use `opencode_auth_set` or set environment variables.");
|
|
33
|
+
}
|
|
34
|
+
if (unconfigured.length > 0) {
|
|
35
|
+
lines.push(`\n**Not configured:** ${unconfigured.length} more providers available`);
|
|
36
|
+
// Show up to 5 popular ones
|
|
37
|
+
const popularIds = new Set(["anthropic", "openai", "google", "openrouter", "groq", "deepseek", "mistral", "huggingface"]);
|
|
38
|
+
const popular = unconfigured.filter((p) => popularIds.has(p.id)).slice(0, 5);
|
|
39
|
+
if (popular.length > 0) {
|
|
40
|
+
for (const p of popular) {
|
|
41
|
+
const id = p.id ?? "?";
|
|
42
|
+
const mc = countModels(p);
|
|
43
|
+
lines.push(`- ${id}: ${mc} model${mc !== 1 ? "s" : ""}`);
|
|
44
|
+
}
|
|
45
|
+
const rest = unconfigured.length - popular.length;
|
|
46
|
+
if (rest > 0)
|
|
47
|
+
lines.push(`- ... and ${rest} more`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return toolResult(`## Providers (${configured.length} configured / ${providers.length} total)\n${lines.join("\n")}\n\nUse \`opencode_provider_models\` with a provider ID to see its models.`);
|
|
21
51
|
}
|
|
22
52
|
catch (e) {
|
|
23
53
|
return toolError(e);
|
|
@@ -27,30 +57,49 @@ export function registerProviderTools(server, client) {
|
|
|
27
57
|
providerId: z
|
|
28
58
|
.string()
|
|
29
59
|
.describe("Provider ID (e.g. 'anthropic', 'openrouter', 'google')"),
|
|
60
|
+
limit: z
|
|
61
|
+
.number()
|
|
62
|
+
.optional()
|
|
63
|
+
.describe("Max models to show (default 30). Use 0 for all."),
|
|
30
64
|
directory: directoryParam,
|
|
31
|
-
}, async ({ providerId, directory }) => {
|
|
65
|
+
}, async ({ providerId, limit, directory }) => {
|
|
32
66
|
try {
|
|
33
|
-
const
|
|
34
|
-
const
|
|
67
|
+
const raw = await client.get("/provider", undefined, directory);
|
|
68
|
+
const providers = (raw && typeof raw === "object" && "all" in raw
|
|
69
|
+
? raw.all
|
|
70
|
+
: raw);
|
|
71
|
+
if (!Array.isArray(providers)) {
|
|
72
|
+
return toolError("Unexpected provider response format.");
|
|
73
|
+
}
|
|
74
|
+
const provider = providers.find((p) => (p.id ?? p.name) === providerId);
|
|
35
75
|
if (!provider) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
76
|
+
const allIds = providers.map((p) => p.id ?? p.name);
|
|
77
|
+
const shown = allIds.slice(0, 10);
|
|
78
|
+
const rest = allIds.length - shown.length;
|
|
79
|
+
const available = shown.join(", ") + (rest > 0 ? ` ... and ${rest} more` : "");
|
|
80
|
+
return toolResult(`Provider "${providerId}" not found. Available: ${available || "none"}\n\nUse \`opencode_provider_list\` to see all providers.`, true);
|
|
40
81
|
}
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
82
|
+
const configured = isProviderConfigured(provider);
|
|
83
|
+
const rawModels = provider.models;
|
|
84
|
+
const modelList = Array.isArray(rawModels)
|
|
85
|
+
? rawModels
|
|
86
|
+
: rawModels && typeof rawModels === "object"
|
|
87
|
+
? Object.values(rawModels)
|
|
88
|
+
: [];
|
|
89
|
+
if (modelList.length === 0) {
|
|
90
|
+
return toolResult(`Provider "${providerId}" (${configured ? "configured" : "NOT CONFIGURED"}) has no models available.`);
|
|
47
91
|
}
|
|
48
|
-
const
|
|
92
|
+
const maxItems = limit === 0 ? modelList.length : (limit ?? 30);
|
|
93
|
+
const shown = modelList.slice(0, maxItems);
|
|
94
|
+
const lines = shown.map((m) => {
|
|
49
95
|
const id = m.id ?? m.name ?? "?";
|
|
50
96
|
const name = m.name && m.name !== m.id ? ` — ${m.name}` : "";
|
|
51
97
|
return `- ${id}${name}`;
|
|
52
98
|
});
|
|
53
|
-
|
|
99
|
+
const truncNote = modelList.length > maxItems
|
|
100
|
+
? `\n\n... and ${modelList.length - maxItems} more. Use \`limit: 0\` to see all.`
|
|
101
|
+
: "";
|
|
102
|
+
return toolResult(`## ${providerId} (${configured ? "configured" : "NOT CONFIGURED"}) — ${modelList.length} model${modelList.length !== 1 ? "s" : ""}\n${lines.join("\n")}${truncNote}`);
|
|
54
103
|
}
|
|
55
104
|
catch (e) {
|
|
56
105
|
return toolError(e);
|
|
@@ -60,7 +109,24 @@ export function registerProviderTools(server, client) {
|
|
|
60
109
|
directory: directoryParam,
|
|
61
110
|
}, async ({ directory }) => {
|
|
62
111
|
try {
|
|
63
|
-
|
|
112
|
+
const raw = await client.get("/provider/auth", undefined, directory);
|
|
113
|
+
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
114
|
+
const entries = Object.entries(raw);
|
|
115
|
+
if (entries.length === 0) {
|
|
116
|
+
return toolResult("No authentication methods available.");
|
|
117
|
+
}
|
|
118
|
+
const lines = entries.map(([providerId, methods]) => {
|
|
119
|
+
const arr = Array.isArray(methods) ? methods : [];
|
|
120
|
+
const methodDescs = arr.map((m) => {
|
|
121
|
+
const type = m.type ?? "?";
|
|
122
|
+
const label = m.label ?? "";
|
|
123
|
+
return label ? `${type} (${label})` : String(type);
|
|
124
|
+
});
|
|
125
|
+
return `- ${providerId}: ${methodDescs.join(", ") || "none"}`;
|
|
126
|
+
});
|
|
127
|
+
return toolResult(`## Auth Methods (${entries.length} providers)\n${lines.join("\n")}`);
|
|
128
|
+
}
|
|
129
|
+
return toolJson(raw);
|
|
64
130
|
}
|
|
65
131
|
catch (e) {
|
|
66
132
|
return toolError(e);
|
|
@@ -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,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/tools/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/session.js
CHANGED
|
@@ -1,9 +1,54 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { toolError, formatSessionList, formatDiffResponse, resolveSessionStatus, toolResult, directoryParam, destructive, readOnly } from "../helpers.js";
|
|
3
|
+
/** Format a single session object into a compact human-readable summary. */
|
|
4
|
+
function formatSession(raw) {
|
|
5
|
+
const s = raw;
|
|
6
|
+
if (!s || typeof s !== "object")
|
|
7
|
+
return JSON.stringify(raw);
|
|
8
|
+
const lines = [];
|
|
9
|
+
if (s.id)
|
|
10
|
+
lines.push(`ID: ${s.id}`);
|
|
11
|
+
if (s.title)
|
|
12
|
+
lines.push(`Title: ${s.title}`);
|
|
13
|
+
if (s.slug)
|
|
14
|
+
lines.push(`Slug: ${s.slug}`);
|
|
15
|
+
if (s.parentID)
|
|
16
|
+
lines.push(`Parent: ${s.parentID}`);
|
|
17
|
+
// Time field may be {created, updated} timestamps (ms since epoch)
|
|
18
|
+
const time = s.time;
|
|
19
|
+
if (time?.created) {
|
|
20
|
+
lines.push(`Created: ${new Date(time.created).toISOString()}`);
|
|
21
|
+
}
|
|
22
|
+
else if (s.createdAt) {
|
|
23
|
+
lines.push(`Created: ${s.createdAt}`);
|
|
24
|
+
}
|
|
25
|
+
if (time?.updated) {
|
|
26
|
+
lines.push(`Updated: ${new Date(time.updated).toISOString()}`);
|
|
27
|
+
}
|
|
28
|
+
else if (s.updatedAt) {
|
|
29
|
+
lines.push(`Updated: ${s.updatedAt}`);
|
|
30
|
+
}
|
|
31
|
+
if (s.status)
|
|
32
|
+
lines.push(`Status: ${s.status}`);
|
|
33
|
+
if (s.version)
|
|
34
|
+
lines.push(`Version: ${s.version}`);
|
|
35
|
+
if (s.directory)
|
|
36
|
+
lines.push(`Directory: ${s.directory}`);
|
|
37
|
+
if (s.shareUrl)
|
|
38
|
+
lines.push(`Share URL: ${s.shareUrl}`);
|
|
39
|
+
// Show summary if present
|
|
40
|
+
const summary = s.summary;
|
|
41
|
+
if (summary) {
|
|
42
|
+
const text = typeof summary === "string" ? summary : summary?.text;
|
|
43
|
+
if (text)
|
|
44
|
+
lines.push(`Summary: ${String(text).slice(0, 200)}`);
|
|
45
|
+
}
|
|
46
|
+
return lines.length > 0 ? lines.join("\n") : JSON.stringify(raw);
|
|
47
|
+
}
|
|
3
48
|
export function registerSessionTools(server, client) {
|
|
4
49
|
server.tool("opencode_session_list", "List all sessions", {
|
|
5
50
|
directory: directoryParam,
|
|
6
|
-
}, async ({ directory }) => {
|
|
51
|
+
}, readOnly, async ({ directory }) => {
|
|
7
52
|
try {
|
|
8
53
|
const sessions = (await client.get("/session", undefined, directory));
|
|
9
54
|
return toolResult(formatSessionList(sessions));
|
|
@@ -23,7 +68,8 @@ export function registerSessionTools(server, client) {
|
|
|
23
68
|
body.parentID = parentID;
|
|
24
69
|
if (title)
|
|
25
70
|
body.title = title;
|
|
26
|
-
|
|
71
|
+
const session = await client.post("/session", body, { directory });
|
|
72
|
+
return toolResult(`Session created.\n\n${formatSession(session)}`);
|
|
27
73
|
}
|
|
28
74
|
catch (e) {
|
|
29
75
|
return toolError(e);
|
|
@@ -32,9 +78,10 @@ export function registerSessionTools(server, client) {
|
|
|
32
78
|
server.tool("opencode_session_get", "Get details of a specific session by ID", {
|
|
33
79
|
id: z.string().describe("Session ID"),
|
|
34
80
|
directory: directoryParam,
|
|
35
|
-
}, async ({ id, directory }) => {
|
|
81
|
+
}, readOnly, async ({ id, directory }) => {
|
|
36
82
|
try {
|
|
37
|
-
|
|
83
|
+
const session = await client.get(`/session/${id}`, undefined, directory);
|
|
84
|
+
return toolResult(formatSession(session));
|
|
38
85
|
}
|
|
39
86
|
catch (e) {
|
|
40
87
|
return toolError(e);
|
|
@@ -43,7 +90,7 @@ export function registerSessionTools(server, client) {
|
|
|
43
90
|
server.tool("opencode_session_delete", "Delete a session and all its data", {
|
|
44
91
|
id: z.string().describe("Session ID to delete"),
|
|
45
92
|
directory: directoryParam,
|
|
46
|
-
}, async ({ id, directory }) => {
|
|
93
|
+
}, destructive, async ({ id, directory }) => {
|
|
47
94
|
try {
|
|
48
95
|
await client.delete(`/session/${id}`, undefined, directory);
|
|
49
96
|
return toolResult(`Session ${id} deleted.`);
|
|
@@ -61,7 +108,8 @@ export function registerSessionTools(server, client) {
|
|
|
61
108
|
const body = {};
|
|
62
109
|
if (title !== undefined)
|
|
63
110
|
body.title = title;
|
|
64
|
-
|
|
111
|
+
const updated = await client.patch(`/session/${id}`, body, directory);
|
|
112
|
+
return toolResult(formatSession(updated));
|
|
65
113
|
}
|
|
66
114
|
catch (e) {
|
|
67
115
|
return toolError(e);
|
|
@@ -70,9 +118,13 @@ export function registerSessionTools(server, client) {
|
|
|
70
118
|
server.tool("opencode_session_children", "Get child sessions of a session", {
|
|
71
119
|
id: z.string().describe("Parent session ID"),
|
|
72
120
|
directory: directoryParam,
|
|
73
|
-
}, async ({ id, directory }) => {
|
|
121
|
+
}, readOnly, async ({ id, directory }) => {
|
|
74
122
|
try {
|
|
75
|
-
|
|
123
|
+
const children = (await client.get(`/session/${id}/children`, undefined, directory));
|
|
124
|
+
if (!children || !Array.isArray(children) || children.length === 0) {
|
|
125
|
+
return toolResult("No child sessions found.");
|
|
126
|
+
}
|
|
127
|
+
return toolResult(formatSessionList(children));
|
|
76
128
|
}
|
|
77
129
|
catch (e) {
|
|
78
130
|
return toolError(e);
|
|
@@ -80,9 +132,18 @@ export function registerSessionTools(server, client) {
|
|
|
80
132
|
});
|
|
81
133
|
server.tool("opencode_session_status", "Get status for all sessions (running, idle, etc.)", {
|
|
82
134
|
directory: directoryParam,
|
|
83
|
-
}, async ({ directory }) => {
|
|
135
|
+
}, readOnly, async ({ directory }) => {
|
|
84
136
|
try {
|
|
85
|
-
|
|
137
|
+
const raw = await client.get("/session/status", undefined, directory);
|
|
138
|
+
const statuses = raw && typeof raw === "object" && !Array.isArray(raw)
|
|
139
|
+
? raw
|
|
140
|
+
: {};
|
|
141
|
+
const entries = Object.entries(statuses);
|
|
142
|
+
if (entries.length === 0) {
|
|
143
|
+
return toolResult("All sessions idle.");
|
|
144
|
+
}
|
|
145
|
+
const lines = entries.map(([id, status]) => `- ${id}: ${resolveSessionStatus(status)}`);
|
|
146
|
+
return toolResult(`## Session Status (${entries.length})\n${lines.join("\n")}`);
|
|
86
147
|
}
|
|
87
148
|
catch (e) {
|
|
88
149
|
return toolError(e);
|
|
@@ -91,15 +152,28 @@ export function registerSessionTools(server, client) {
|
|
|
91
152
|
server.tool("opencode_session_todo", "Get the todo list for a session", {
|
|
92
153
|
id: z.string().describe("Session ID"),
|
|
93
154
|
directory: directoryParam,
|
|
94
|
-
}, async ({ id, directory }) => {
|
|
155
|
+
}, readOnly, async ({ id, directory }) => {
|
|
95
156
|
try {
|
|
96
|
-
|
|
157
|
+
const raw = await client.get(`/session/${id}/todo`, undefined, directory);
|
|
158
|
+
const todos = Array.isArray(raw) ? raw : [];
|
|
159
|
+
if (todos.length === 0) {
|
|
160
|
+
return toolResult("No todos for this session.");
|
|
161
|
+
}
|
|
162
|
+
const lines = todos.map((t) => {
|
|
163
|
+
const done = t.status === "completed" || t.done === true || t.completed === true;
|
|
164
|
+
const check = done ? "[x]" : "[ ]";
|
|
165
|
+
const content = t.content ?? t.title ?? t.text ?? t.description ?? "?";
|
|
166
|
+
const priority = t.priority ? ` (${t.priority})` : "";
|
|
167
|
+
return `- ${check} ${content}${priority}`;
|
|
168
|
+
});
|
|
169
|
+
const completed = todos.filter((t) => t.status === "completed" || t.done === true || t.completed === true).length;
|
|
170
|
+
return toolResult(`## Todos (${completed}/${todos.length} done)\n${lines.join("\n")}`);
|
|
97
171
|
}
|
|
98
172
|
catch (e) {
|
|
99
173
|
return toolError(e);
|
|
100
174
|
}
|
|
101
175
|
});
|
|
102
|
-
server.tool("opencode_session_init", "Analyze the app and create AGENTS.md for a session", {
|
|
176
|
+
server.tool("opencode_session_init", "Analyze the app and create AGENTS.md for a session. NOTE: This is a long-running operation that may take 30-60+ seconds depending on project size.", {
|
|
103
177
|
id: z.string().describe("Session ID"),
|
|
104
178
|
messageID: z.string().describe("Message ID"),
|
|
105
179
|
providerID: z.string().describe("Provider ID (e.g. 'anthropic')"),
|
|
@@ -135,7 +209,8 @@ export function registerSessionTools(server, client) {
|
|
|
135
209
|
const body = {};
|
|
136
210
|
if (messageID)
|
|
137
211
|
body.messageID = messageID;
|
|
138
|
-
|
|
212
|
+
const forked = await client.post(`/session/${id}/fork`, body, { directory });
|
|
213
|
+
return toolResult(`Session forked.\n\n${formatSession(forked)}`);
|
|
139
214
|
}
|
|
140
215
|
catch (e) {
|
|
141
216
|
return toolError(e);
|
|
@@ -146,7 +221,12 @@ export function registerSessionTools(server, client) {
|
|
|
146
221
|
directory: directoryParam,
|
|
147
222
|
}, async ({ id, directory }) => {
|
|
148
223
|
try {
|
|
149
|
-
|
|
224
|
+
const result = await client.post(`/session/${id}/share`, undefined, { directory });
|
|
225
|
+
const r = result;
|
|
226
|
+
// API may return share URL in different locations
|
|
227
|
+
const shareUrl = r.shareUrl ?? r.share?.url ?? null;
|
|
228
|
+
const header = shareUrl ? `Session shared.\nURL: ${shareUrl}` : "Session shared.";
|
|
229
|
+
return toolResult(`${header}\n\n${formatSession(result)}`);
|
|
150
230
|
}
|
|
151
231
|
catch (e) {
|
|
152
232
|
return toolError(e);
|
|
@@ -157,7 +237,8 @@ export function registerSessionTools(server, client) {
|
|
|
157
237
|
directory: directoryParam,
|
|
158
238
|
}, async ({ id, directory }) => {
|
|
159
239
|
try {
|
|
160
|
-
|
|
240
|
+
await client.delete(`/session/${id}/share`, undefined, directory);
|
|
241
|
+
return toolResult(`Session ${id} unshared.`);
|
|
161
242
|
}
|
|
162
243
|
catch (e) {
|
|
163
244
|
return toolError(e);
|
|
@@ -172,13 +253,14 @@ export function registerSessionTools(server, client) {
|
|
|
172
253
|
const query = {};
|
|
173
254
|
if (messageID)
|
|
174
255
|
query.messageID = messageID;
|
|
175
|
-
|
|
256
|
+
const diffs = await client.get(`/session/${id}/diff`, query, directory);
|
|
257
|
+
return toolResult(formatDiffResponse(diffs));
|
|
176
258
|
}
|
|
177
259
|
catch (e) {
|
|
178
260
|
return toolError(e);
|
|
179
261
|
}
|
|
180
262
|
});
|
|
181
|
-
server.tool("opencode_session_summarize", "Summarize a session using a specified model", {
|
|
263
|
+
server.tool("opencode_session_summarize", "Summarize a session using a specified model. NOTE: This is a long-running operation that may take 30-60+ seconds.", {
|
|
182
264
|
id: z.string().describe("Session ID"),
|
|
183
265
|
providerID: z.string().describe("Provider ID (e.g. 'anthropic')"),
|
|
184
266
|
modelID: z.string().describe("Model ID (e.g. 'claude-3-5-sonnet-20241022')"),
|
|
@@ -239,5 +321,30 @@ export function registerSessionTools(server, client) {
|
|
|
239
321
|
return toolError(e);
|
|
240
322
|
}
|
|
241
323
|
});
|
|
324
|
+
// ─── Session search ─────────────────────────────────────────────────
|
|
325
|
+
server.tool("opencode_session_search", "Search sessions by keyword in title. Useful for finding a specific session among many.", {
|
|
326
|
+
query: z.string().describe("Search keyword (case-insensitive match on session title)"),
|
|
327
|
+
directory: directoryParam,
|
|
328
|
+
}, readOnly, async ({ query, directory }) => {
|
|
329
|
+
try {
|
|
330
|
+
const sessions = (await client.get("/session", undefined, directory));
|
|
331
|
+
if (!sessions || sessions.length === 0) {
|
|
332
|
+
return toolResult("No sessions found.");
|
|
333
|
+
}
|
|
334
|
+
const q = query.toLowerCase();
|
|
335
|
+
const matches = sessions.filter((s) => {
|
|
336
|
+
const title = (s.title ?? "").toLowerCase();
|
|
337
|
+
const id = (s.id ?? "").toLowerCase();
|
|
338
|
+
return title.includes(q) || id.includes(q);
|
|
339
|
+
});
|
|
340
|
+
if (matches.length === 0) {
|
|
341
|
+
return toolResult(`No sessions matching: "${query}"\n\nTotal sessions: ${sessions.length}. Use \`opencode_session_list\` to see all.`);
|
|
342
|
+
}
|
|
343
|
+
return toolResult(`## Sessions matching "${query}" (${matches.length}/${sessions.length})\n${formatSessionList(matches)}`);
|
|
344
|
+
}
|
|
345
|
+
catch (e) {
|
|
346
|
+
return toolError(e);
|
|
347
|
+
}
|
|
348
|
+
});
|
|
242
349
|
}
|
|
243
350
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"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"}
|