@log0u7/opencode-mesh 0.2.0 → 0.3.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 +127 -0
- package/README.md +46 -13
- package/dist/lib/db.d.ts.map +1 -1
- package/dist/lib/db.js +19 -1
- package/dist/lib/db.js.map +1 -1
- package/dist/lib/discovery.d.ts +1 -0
- package/dist/lib/discovery.d.ts.map +1 -1
- package/dist/lib/discovery.js +27 -4
- package/dist/lib/discovery.js.map +1 -1
- package/dist/lib/identity.d.ts +0 -8
- package/dist/lib/identity.d.ts.map +1 -1
- package/dist/lib/identity.js +53 -34
- package/dist/lib/identity.js.map +1 -1
- package/dist/lib/locks.d.ts.map +1 -1
- package/dist/lib/locks.js +20 -12
- package/dist/lib/locks.js.map +1 -1
- package/dist/lib/peers.d.ts +9 -0
- package/dist/lib/peers.d.ts.map +1 -1
- package/dist/lib/peers.js +49 -11
- package/dist/lib/peers.js.map +1 -1
- package/dist/lib/serve.d.ts +2 -0
- package/dist/lib/serve.d.ts.map +1 -1
- package/dist/lib/serve.js +53 -68
- package/dist/lib/serve.js.map +1 -1
- package/dist/lib/spawn.d.ts +14 -4
- package/dist/lib/spawn.d.ts.map +1 -1
- package/dist/lib/spawn.js +210 -21
- package/dist/lib/spawn.js.map +1 -1
- package/dist/lib/sqlite.d.ts.map +1 -1
- package/dist/lib/sqlite.js +15 -4
- package/dist/lib/sqlite.js.map +1 -1
- package/dist/lib/workers.d.ts +2 -0
- package/dist/lib/workers.d.ts.map +1 -1
- package/dist/lib/workers.js +45 -12
- package/dist/lib/workers.js.map +1 -1
- package/dist/lib/worktree.d.ts +22 -4
- package/dist/lib/worktree.d.ts.map +1 -1
- package/dist/lib/worktree.js +54 -6
- package/dist/lib/worktree.js.map +1 -1
- package/dist/plugin-v2.d.ts.map +1 -1
- package/dist/plugin-v2.js +64 -337
- package/dist/plugin-v2.js.map +1 -1
- package/dist/plugin.d.ts +2 -6
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +118 -265
- package/dist/plugin.js.map +1 -1
- package/dist/tools.d.ts +30 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +308 -0
- package/dist/tools.js.map +1 -0
- package/package.json +10 -8
package/dist/plugin.js
CHANGED
|
@@ -1,31 +1,99 @@
|
|
|
1
|
+
import { homedir, tmpdir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
1
3
|
import { tool } from "@opencode-ai/plugin";
|
|
2
4
|
import { Bonjour } from "bonjour-service";
|
|
3
|
-
import { sendMail } from "./lib/client.js";
|
|
4
5
|
import { openMeshDb } from "./lib/db.js";
|
|
5
|
-
import { advertiseMesh, browseMesh
|
|
6
|
+
import { advertiseMesh, browseMesh } from "./lib/discovery.js";
|
|
6
7
|
import { upsertDiscoveredPeer } from "./lib/peers.js";
|
|
7
8
|
import { loadOrCreateIdentity } from "./lib/identity.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { nodeSpawn, stopAllWorkers } from "./lib/spawn.js";
|
|
10
|
+
import { defaultWorktreeFactory, extractClientFetch } from "./lib/worktree.js";
|
|
11
|
+
import { reconcileWorkers } from "./lib/workers.js";
|
|
11
12
|
import { startMeshServer } from "./lib/serve.js";
|
|
12
|
-
import {
|
|
13
|
-
import { createWorkerWorktree, defaultWorktreeFactory, extractClientFetch, removeWorkerWorktree, } from "./lib/worktree.js";
|
|
14
|
-
import { deleteWorker, getWorker, listWorkers } from "./lib/workers.js";
|
|
15
|
-
import { readFileSync } from "node:fs";
|
|
16
|
-
import { join } from "node:path";
|
|
13
|
+
import { buildToolSpecs } from "./tools.js";
|
|
17
14
|
const DEFAULT_PORT = 4399;
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
// Validate the host-supplied options once, at the boundary. A typo'd port or
|
|
16
|
+
// bind used to surface as a late, cryptic failure (EADDRINUSE, a bind on the
|
|
17
|
+
// wrong interface, or a data dir at the filesystem root); fail clearly here.
|
|
18
|
+
export function parseOptions(raw) {
|
|
19
|
+
const options = {};
|
|
20
|
+
// `null` is treated as "no options" (the old code tolerated it); a non-object
|
|
21
|
+
// is a programming error. Unknown keys are ignored on purpose: a host may pass
|
|
22
|
+
// its own option bag, and forward-compat beats rejecting a typo'd `datadir`.
|
|
23
|
+
if (raw === undefined || raw === null) {
|
|
24
|
+
return options;
|
|
25
|
+
}
|
|
26
|
+
if (typeof raw !== "object") {
|
|
27
|
+
throw new Error("opencode-mesh: options must be an object");
|
|
28
|
+
}
|
|
29
|
+
if (raw.dataDir !== undefined) {
|
|
30
|
+
if (typeof raw.dataDir !== "string" || raw.dataDir.length === 0) {
|
|
31
|
+
throw new Error("opencode-mesh: options.dataDir must be a non-empty string");
|
|
32
|
+
}
|
|
33
|
+
options.dataDir = raw.dataDir;
|
|
34
|
+
}
|
|
35
|
+
if (raw.port !== undefined) {
|
|
36
|
+
if (typeof raw.port !== "number" ||
|
|
37
|
+
!Number.isInteger(raw.port) ||
|
|
38
|
+
raw.port < 0 ||
|
|
39
|
+
raw.port > 65535) {
|
|
40
|
+
throw new Error("opencode-mesh: options.port must be an integer between 0 and 65535");
|
|
41
|
+
}
|
|
42
|
+
options.port = raw.port;
|
|
43
|
+
}
|
|
44
|
+
if (raw.bind !== undefined) {
|
|
45
|
+
if (raw.bind !== "loopback" && raw.bind !== "lan") {
|
|
46
|
+
throw new Error('opencode-mesh: options.bind must be "loopback" or "lan"');
|
|
47
|
+
}
|
|
48
|
+
options.bind = raw.bind;
|
|
49
|
+
}
|
|
50
|
+
if (raw.advertise !== undefined) {
|
|
51
|
+
if (typeof raw.advertise !== "boolean") {
|
|
52
|
+
throw new Error("opencode-mesh: options.advertise must be a boolean");
|
|
53
|
+
}
|
|
54
|
+
options.advertise = raw.advertise;
|
|
55
|
+
}
|
|
56
|
+
// Opaque collaborators are passed through untouched: the plugin cannot
|
|
57
|
+
// validate a client or spawn function beyond its nominal type.
|
|
58
|
+
if (raw.worktreeClient !== undefined) {
|
|
59
|
+
options.worktreeClient = raw.worktreeClient;
|
|
60
|
+
}
|
|
61
|
+
if (raw.spawnFn !== undefined) {
|
|
62
|
+
options.spawnFn = raw.spawnFn;
|
|
63
|
+
}
|
|
64
|
+
return options;
|
|
65
|
+
}
|
|
66
|
+
// A worker spawned by mesh_spawn inherits this marker: it must not boot its own
|
|
67
|
+
// mesh server, advertise over mDNS or register mesh tools. A pool of N workers
|
|
68
|
+
// then costs N worktrees, not N mesh nodes.
|
|
69
|
+
function isChildProcess() {
|
|
70
|
+
return process.env.OPENCODE_MESH_CHILD === "1";
|
|
71
|
+
}
|
|
72
|
+
// The v1 adapter: OpenCode 1.x hosts call server(). Tool specs come from
|
|
73
|
+
// tools.ts; this file only maps them onto the v1 hook surface (zod args,
|
|
74
|
+
// string results).
|
|
75
|
+
export const MeshPlugin = async (input, rawOptions) => {
|
|
76
|
+
if (isChildProcess()) {
|
|
77
|
+
return { dispose: async () => { } };
|
|
78
|
+
}
|
|
79
|
+
const options = parseOptions(rawOptions);
|
|
80
|
+
const dataDir = options.dataDir ?? defaultDataDir();
|
|
20
81
|
const identity = loadOrCreateIdentity(dataDir);
|
|
21
82
|
const db = openMeshDb(`${dataDir}/mesh.db`);
|
|
22
|
-
|
|
23
|
-
|
|
83
|
+
// Workers from a previous host process can never be stopped again once the
|
|
84
|
+
// in-memory map is gone: mark dead pids before anything else uses the table.
|
|
85
|
+
reconcileWorkers(db);
|
|
86
|
+
const { server, port, address } = await startMeshServer({
|
|
87
|
+
db,
|
|
88
|
+
port: options.port ?? DEFAULT_PORT,
|
|
89
|
+
...(options.bind !== undefined ? { bind: options.bind } : {}),
|
|
90
|
+
});
|
|
91
|
+
const worktreeClient = options.worktreeClient ??
|
|
24
92
|
defaultWorktreeFactory(input.serverUrl.toString(), input.directory, extractClientFetch(input.client));
|
|
25
|
-
const spawnFn = options
|
|
93
|
+
const spawnFn = options.spawnFn ?? nodeSpawn;
|
|
26
94
|
let advertiseHandle = null;
|
|
27
95
|
let browseHandle = null;
|
|
28
|
-
if (options
|
|
96
|
+
if (options.advertise !== false) {
|
|
29
97
|
const bonjour = new Bonjour();
|
|
30
98
|
advertiseHandle = advertiseMesh({
|
|
31
99
|
bonjour,
|
|
@@ -43,251 +111,22 @@ export const MeshPlugin = async (input, options) => {
|
|
|
43
111
|
});
|
|
44
112
|
}
|
|
45
113
|
const hooks = {
|
|
46
|
-
tool: {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
node_id: p.node_id,
|
|
61
|
-
hostname: p.hostname,
|
|
62
|
-
paired: p.paired,
|
|
63
|
-
addresses: p.addresses,
|
|
64
|
-
})),
|
|
65
|
-
locks: listLocks(db, { now: Date.now() }),
|
|
66
|
-
}, null, 2);
|
|
67
|
-
},
|
|
68
|
-
}),
|
|
69
|
-
mesh_pair: tool({
|
|
70
|
-
description: "Pair with a peer. With no args: emit a pairing offer (token, node id, server address) for the peer's mesh_pair. With node_id, token, and address: complete pairing started by the other side.",
|
|
71
|
-
args: {
|
|
72
|
-
node_id: tool.schema
|
|
73
|
-
.string()
|
|
74
|
-
.optional()
|
|
75
|
-
.describe("Peer node id, from its mesh_pair output"),
|
|
76
|
-
token: tool.schema.string().optional().describe("Pairing token from the peer's offer"),
|
|
77
|
-
address: tool.schema.string().optional().describe("Peer server address as host:port"),
|
|
78
|
-
},
|
|
79
|
-
execute: async (args) => {
|
|
80
|
-
if (typeof args.token === "string" && typeof args.node_id === "string") {
|
|
81
|
-
pairWithToken(db, {
|
|
82
|
-
node_id: args.node_id,
|
|
83
|
-
hostname: "manual",
|
|
84
|
-
fingerprint: "manual",
|
|
85
|
-
token: args.token,
|
|
86
|
-
addresses: args.address !== undefined ? [args.address] : [],
|
|
87
|
-
});
|
|
88
|
-
return `paired with ${args.node_id}`;
|
|
89
|
-
}
|
|
90
|
-
const token = createPairingToken(db);
|
|
91
|
-
return `peer should run: mesh_pair(node_id="${identity.node_id}", token="${token}", address="127.0.0.1:${port}")`;
|
|
92
|
-
},
|
|
93
|
-
}),
|
|
94
|
-
mesh_send: tool({
|
|
95
|
-
description: "Send a message to a paired peer's mailbox.",
|
|
96
|
-
args: {
|
|
97
|
-
peer: tool.schema.string().describe("Peer node id or hostname"),
|
|
98
|
-
subject: tool.schema.string().describe("Short subject"),
|
|
99
|
-
body: tool.schema.string().describe("Message body"),
|
|
100
|
-
},
|
|
101
|
-
execute: async (args) => {
|
|
102
|
-
const peer = findSendablePeer(db, args.peer);
|
|
103
|
-
if (peer === null) {
|
|
104
|
-
return `error: no paired peer matching ${args.peer}; run mesh_status`;
|
|
105
|
-
}
|
|
106
|
-
const address = peer.addresses[0];
|
|
107
|
-
if (address === undefined) {
|
|
108
|
-
return `error: peer ${peer.node_id} has no known address; share addresses manually or wait for discovery`;
|
|
109
|
-
}
|
|
110
|
-
const host = address.includes(":") ? address : `${address}:${port}`;
|
|
111
|
-
const result = await sendMail({
|
|
112
|
-
url: `http://${host}`,
|
|
113
|
-
token: peer.token ?? "",
|
|
114
|
-
from: identity.node_id,
|
|
115
|
-
subject: args.subject,
|
|
116
|
-
body: args.body,
|
|
117
|
-
});
|
|
118
|
-
return `sent to ${peer.node_id}: ${result}`;
|
|
119
|
-
},
|
|
120
|
-
}),
|
|
121
|
-
mesh_inbox: tool({
|
|
122
|
-
description: "List unread messages from peers and mark them read.",
|
|
123
|
-
args: {
|
|
124
|
-
ack: tool.schema.boolean().optional().describe("Mark messages read (default true)"),
|
|
125
|
-
},
|
|
126
|
-
execute: async (args) => {
|
|
127
|
-
const messages = unreadMessages(db);
|
|
128
|
-
if (messages.length === 0) {
|
|
129
|
-
return "inbox empty";
|
|
130
|
-
}
|
|
131
|
-
if (args.ack !== false) {
|
|
132
|
-
ackMessages(db, messages.map((m) => m.id));
|
|
133
|
-
}
|
|
134
|
-
return JSON.stringify(messages, null, 2);
|
|
135
|
-
},
|
|
136
|
-
}),
|
|
137
|
-
mesh_lock: tool({
|
|
138
|
-
description: "Claim exclusive ownership of a file or worktree path so other sessions wait.",
|
|
139
|
-
args: {
|
|
140
|
-
path: tool.schema.string().describe("Path to lock (relative to worktree or absolute)"),
|
|
141
|
-
ttl: tool.schema
|
|
142
|
-
.number()
|
|
143
|
-
.optional()
|
|
144
|
-
.describe("Seconds before the lock expires (default 600)"),
|
|
145
|
-
},
|
|
146
|
-
execute: async (args, context) => {
|
|
147
|
-
const granted = tryLock(db, {
|
|
148
|
-
path: args.path,
|
|
149
|
-
owner_node: identity.node_id,
|
|
150
|
-
owner_session: context.sessionID,
|
|
151
|
-
ttl_ms: (args.ttl ?? 600) * 1000,
|
|
152
|
-
now: Date.now(),
|
|
153
|
-
});
|
|
154
|
-
return granted
|
|
155
|
-
? `locked ${args.path}`
|
|
156
|
-
: `error: ${args.path} is locked by another session; try later or run mesh_status`;
|
|
157
|
-
},
|
|
158
|
-
}),
|
|
159
|
-
mesh_unlock: tool({
|
|
160
|
-
description: "Release a claim made with mesh_lock.",
|
|
161
|
-
args: {
|
|
162
|
-
path: tool.schema.string().describe("Path to unlock"),
|
|
163
|
-
},
|
|
164
|
-
execute: async (args) => {
|
|
165
|
-
const released = releaseLock(db, { path: args.path, owner_node: identity.node_id });
|
|
166
|
-
return released
|
|
167
|
-
? `released ${args.path}`
|
|
168
|
-
: `error: ${args.path} was not locked by this node`;
|
|
169
|
-
},
|
|
170
|
-
}),
|
|
171
|
-
mesh_spawn: tool({
|
|
172
|
-
description: "Run a task as a background worker in an isolated opencode worktree (headless, --auto permissions by default). Returns worker id, worktree, and branch.",
|
|
173
|
-
args: {
|
|
174
|
-
task: tool.schema.string().describe("Task description given to the worker"),
|
|
175
|
-
name: tool.schema
|
|
176
|
-
.string()
|
|
177
|
-
.optional()
|
|
178
|
-
.describe("Worktree/branch name (random by default)"),
|
|
179
|
-
model: tool.schema.string().optional().describe("provider/model for the worker"),
|
|
180
|
-
agent: tool.schema.string().optional().describe("Agent for the worker"),
|
|
181
|
-
auto: tool.schema
|
|
182
|
-
.boolean()
|
|
183
|
-
.optional()
|
|
184
|
-
.describe("Grant all permissions to the worker (default true)"),
|
|
185
|
-
},
|
|
186
|
-
execute: async (args) => {
|
|
187
|
-
try {
|
|
188
|
-
const info = await createWorkerWorktree(worktreeClient, {
|
|
189
|
-
...(args.name !== undefined ? { name: args.name } : {}),
|
|
190
|
-
});
|
|
191
|
-
const worker = runWorker(db, dataDir, {
|
|
192
|
-
task: args.task,
|
|
193
|
-
worktree_path: info.directory,
|
|
194
|
-
branch: info.branch ?? info.name,
|
|
195
|
-
...(args.model !== undefined ? { model: args.model } : {}),
|
|
196
|
-
...(args.agent !== undefined ? { agent: args.agent } : {}),
|
|
197
|
-
...(args.auto !== undefined ? { auto: args.auto } : {}),
|
|
198
|
-
spawnFn,
|
|
199
|
-
});
|
|
200
|
-
return JSON.stringify({
|
|
201
|
-
worker_id: worker.id,
|
|
202
|
-
worktree: info.directory,
|
|
203
|
-
branch: worker.branch,
|
|
204
|
-
pid: worker.pid,
|
|
205
|
-
}, null, 2);
|
|
206
|
-
}
|
|
207
|
-
catch (error) {
|
|
208
|
-
return `error: ${error instanceof Error ? error.message : String(error)}`;
|
|
209
|
-
}
|
|
210
|
-
},
|
|
211
|
-
}),
|
|
212
|
-
mesh_workers: tool({
|
|
213
|
-
description: "List spawned workers with their lifecycle state.",
|
|
214
|
-
args: {},
|
|
215
|
-
execute: async () => {
|
|
216
|
-
const workers = listWorkers(db);
|
|
217
|
-
if (workers.length === 0) {
|
|
218
|
-
return "[]";
|
|
219
|
-
}
|
|
220
|
-
return JSON.stringify(workers, null, 2);
|
|
221
|
-
},
|
|
222
|
-
}),
|
|
223
|
-
mesh_worker_logs: tool({
|
|
224
|
-
description: "Show the tail of a worker's captured output.",
|
|
225
|
-
args: {
|
|
226
|
-
worker_id: tool.schema.string().describe("Worker id, from mesh_spawn or mesh_workers"),
|
|
227
|
-
tail: tool.schema.number().optional().describe("Number of lines (default 50)"),
|
|
228
|
-
},
|
|
229
|
-
execute: async (args) => {
|
|
230
|
-
const worker = getWorker(db, args.worker_id);
|
|
231
|
-
if (!worker) {
|
|
232
|
-
return `error: unknown worker ${args.worker_id}`;
|
|
233
|
-
}
|
|
234
|
-
const path = join(dataDir, "workers", `${worker.id}.log`);
|
|
235
|
-
let content;
|
|
236
|
-
try {
|
|
237
|
-
content = readFileSync(path, "utf8");
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
return "no log output yet";
|
|
241
|
-
}
|
|
242
|
-
const lines = content.split("\n");
|
|
243
|
-
const limit = args.tail ?? 50;
|
|
244
|
-
return lines.slice(-limit - 1, -1).join("\n") || "no log output yet";
|
|
245
|
-
},
|
|
246
|
-
}),
|
|
247
|
-
mesh_worker_stop: tool({
|
|
248
|
-
description: "Stop a running worker (SIGTERM).",
|
|
249
|
-
args: {
|
|
250
|
-
worker_id: tool.schema.string().describe("Worker id"),
|
|
251
|
-
},
|
|
252
|
-
execute: async (args) => {
|
|
253
|
-
try {
|
|
254
|
-
stopWorker(db, args.worker_id);
|
|
255
|
-
return `stopped ${args.worker_id}`;
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
return `error: ${error instanceof Error ? error.message : String(error)}`;
|
|
259
|
-
}
|
|
260
|
-
},
|
|
261
|
-
}),
|
|
262
|
-
mesh_worker_remove: tool({
|
|
263
|
-
description: "Remove a finished worker: deletes the worktree (native API) and the registry row.",
|
|
264
|
-
args: {
|
|
265
|
-
worker_id: tool.schema.string().describe("Worker id"),
|
|
266
|
-
force: tool.schema.boolean().optional().describe("Stop a running worker before removal"),
|
|
267
|
-
},
|
|
268
|
-
execute: async (args) => {
|
|
269
|
-
const worker = getWorker(db, args.worker_id);
|
|
270
|
-
if (!worker) {
|
|
271
|
-
return `error: unknown worker ${args.worker_id}`;
|
|
272
|
-
}
|
|
273
|
-
if (worker.status === "running") {
|
|
274
|
-
if (args.force !== true) {
|
|
275
|
-
return `error: worker ${worker.id} is running; use force=true to stop and remove it`;
|
|
276
|
-
}
|
|
277
|
-
// force: terminate first so no process keeps writing into a deleted worktree.
|
|
278
|
-
stopWorker(db, worker.id);
|
|
279
|
-
}
|
|
280
|
-
try {
|
|
281
|
-
await removeWorkerWorktree(worktreeClient, { directory: worker.worktree_path });
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
return `error: worktree remove failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
285
|
-
}
|
|
286
|
-
deleteWorker(db, args.worker_id);
|
|
287
|
-
return `removed ${worker.id} (worktree and registry row deleted)`;
|
|
288
|
-
},
|
|
114
|
+
tool: Object.fromEntries(buildToolSpecs({
|
|
115
|
+
db,
|
|
116
|
+
identity,
|
|
117
|
+
dataDir,
|
|
118
|
+
serverAddress: address,
|
|
119
|
+
port,
|
|
120
|
+
worktreeClient,
|
|
121
|
+
spawnFn,
|
|
122
|
+
}).map((spec) => [
|
|
123
|
+
spec.name,
|
|
124
|
+
tool({
|
|
125
|
+
description: spec.description,
|
|
126
|
+
args: zodShape(spec),
|
|
127
|
+
execute: (args, context) => spec.execute(args, context),
|
|
289
128
|
}),
|
|
290
|
-
|
|
129
|
+
])),
|
|
291
130
|
};
|
|
292
131
|
return {
|
|
293
132
|
...hooks,
|
|
@@ -300,12 +139,26 @@ export const MeshPlugin = async (input, options) => {
|
|
|
300
139
|
},
|
|
301
140
|
};
|
|
302
141
|
};
|
|
142
|
+
function zodShape(spec) {
|
|
143
|
+
// ZodRawShape is readonly: build via fromEntries instead of mutating a typed shape.
|
|
144
|
+
return Object.fromEntries(spec.fields.map((field) => {
|
|
145
|
+
const base = field.type === "number"
|
|
146
|
+
? tool.schema.number()
|
|
147
|
+
: field.type === "boolean"
|
|
148
|
+
? tool.schema.boolean()
|
|
149
|
+
: tool.schema.string();
|
|
150
|
+
const described = base.describe(field.description);
|
|
151
|
+
return [field.name, field.required ? described : described.optional()];
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
303
154
|
export function defaultDataDir() {
|
|
304
|
-
const dataHome = process.env.XDG_DATA_HOME
|
|
305
|
-
return
|
|
155
|
+
const dataHome = process.env.XDG_DATA_HOME || join(homeDir(), ".local", "share");
|
|
156
|
+
return join(dataHome, "opencode-mesh");
|
|
306
157
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
158
|
+
// `os.homedir()` / `os.tmpdir()` replace the old empty-string fallback, which
|
|
159
|
+
// produced a path at the filesystem root (`/.local/share/...`) when HOME was
|
|
160
|
+
// unset or blank.
|
|
161
|
+
function homeDir() {
|
|
162
|
+
return process.env.HOME || homedir() || tmpdir();
|
|
310
163
|
}
|
|
311
164
|
//# sourceMappingURL=plugin.js.map
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { MeshDb } from "./lib/db.js";
|
|
2
|
+
import type { NodeIdentity } from "./lib/identity.js";
|
|
3
|
+
import { type SpawnFn } from "./lib/spawn.js";
|
|
4
|
+
import { type WorktreeClient } from "./lib/worktree.js";
|
|
5
|
+
export type ToolField = {
|
|
6
|
+
name: string;
|
|
7
|
+
type: "string" | "number" | "boolean";
|
|
8
|
+
required: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
export type ToolContext = {
|
|
12
|
+
sessionID: string;
|
|
13
|
+
};
|
|
14
|
+
export type ToolSpec = {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
fields: ToolField[];
|
|
18
|
+
execute(args: Record<string, unknown>, context: ToolContext): Promise<string>;
|
|
19
|
+
};
|
|
20
|
+
export type MeshContext = {
|
|
21
|
+
db: MeshDb;
|
|
22
|
+
identity: NodeIdentity;
|
|
23
|
+
dataDir: string;
|
|
24
|
+
serverAddress: string;
|
|
25
|
+
port: number;
|
|
26
|
+
worktreeClient: WorktreeClient;
|
|
27
|
+
spawnFn: SpawnFn;
|
|
28
|
+
};
|
|
29
|
+
export declare function buildToolSpecs(mesh: MeshContext): ToolSpec[];
|
|
30
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD,OAAO,EAAuD,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAcF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,EAAE,CAyT5D"}
|