@cotal-ai/connector-opencode 0.11.3 → 0.11.4
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/dist/index.js +604 -2
- package/dist/plugin.bundle.js +390 -97
- package/dist/plugin.d.ts.map +1 -1
- package/dist/serve.js +145 -208
- package/dist/tools.d.ts +2 -3
- package/dist/tools.d.ts.map +1 -1
- package/package.json +5 -7
- package/dist/extension.js +0 -231
- package/dist/extension.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/plugin.js +0 -501
- package/dist/plugin.js.map +0 -1
- package/dist/serve.js.map +0 -1
- package/dist/tools.js +0 -42
- package/dist/tools.js.map +0 -1
- package/dist/transcript.js +0 -107
- package/dist/transcript.js.map +0 -1
package/dist/extension.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from "node:child_process";
|
|
2
|
-
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { resolve } from "node:path";
|
|
4
|
-
import { loadAgentFile, registry } from "@cotal-ai/core";
|
|
5
|
-
import { aclEnv, connectorLaunchOptions, launchEnv, controlEndpoint, MODEL_PROVIDER_KEYS, transcriptChannel, userAuthEnv } from "@cotal-ai/connector-core";
|
|
6
|
-
/** The bundled in-process plugin (esbuild → `dist/plugin.bundle.js`). `opencode serve` loads it by
|
|
7
|
-
* absolute path from the inline config, so it runs *inside* the server and shares its SDK client.
|
|
8
|
-
* Resolved relative to this module — beside the built `dist/extension.js`, so the connector must be
|
|
9
|
-
* built+bundled (`pnpm build`). */
|
|
10
|
-
const PLUGIN_ENTRY = fileURLToPath(new URL("./plugin.bundle.js", import.meta.url));
|
|
11
|
-
/** The launcher shim (`dist/serve.js`): starts `opencode serve` with the plugin, then attaches a
|
|
12
|
-
* foreground `opencode` TUI to the exact session the plugin drives (see serve.ts). */
|
|
13
|
-
const SERVE_SHIM = fileURLToPath(new URL("./serve.js", import.meta.url));
|
|
14
|
-
function discoveryEnv() {
|
|
15
|
-
const env = { ...process.env };
|
|
16
|
-
delete env.OPENCODE_CONFIG_CONTENT;
|
|
17
|
-
for (const k of Object.keys(env))
|
|
18
|
-
if (k.startsWith("COTAL_"))
|
|
19
|
-
delete env[k];
|
|
20
|
-
return env;
|
|
21
|
-
}
|
|
22
|
-
function execErrorMessage(e) {
|
|
23
|
-
const err = e;
|
|
24
|
-
const stderr = Buffer.isBuffer(err.stderr) ? err.stderr.toString("utf8") : err.stderr;
|
|
25
|
-
return (stderr?.trim() || err.message).replace(/\s+/g, " ");
|
|
26
|
-
}
|
|
27
|
-
function readJsonBlock(lines, start) {
|
|
28
|
-
const parts = [];
|
|
29
|
-
for (let i = start; i < lines.length; i++) {
|
|
30
|
-
parts.push(lines[i]);
|
|
31
|
-
try {
|
|
32
|
-
return { value: JSON.parse(parts.join("\n")), end: i };
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
// Keep accumulating the pretty-printed JSON object.
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
throw new Error("opencode models output ended before a model metadata JSON block closed");
|
|
39
|
-
}
|
|
40
|
-
function parseModels(stdout) {
|
|
41
|
-
const lines = stdout.split(/\r?\n/);
|
|
42
|
-
const models = [];
|
|
43
|
-
for (let i = 0; i < lines.length; i++) {
|
|
44
|
-
const id = lines[i].trim();
|
|
45
|
-
if (!/^[^\s/]+\/\S+$/.test(id))
|
|
46
|
-
continue;
|
|
47
|
-
let raw;
|
|
48
|
-
if (lines[i + 1]?.trim().startsWith("{")) {
|
|
49
|
-
const block = readJsonBlock(lines, i + 1);
|
|
50
|
-
i = block.end;
|
|
51
|
-
if (block.value && typeof block.value === "object" && !Array.isArray(block.value))
|
|
52
|
-
raw = block.value;
|
|
53
|
-
}
|
|
54
|
-
const variantsRaw = raw?.variants;
|
|
55
|
-
const variants = variantsRaw && typeof variantsRaw === "object" && !Array.isArray(variantsRaw)
|
|
56
|
-
? Object.entries(variantsRaw)
|
|
57
|
-
.filter(([, v]) => !(v && typeof v === "object" && !Array.isArray(v) && v.disabled === true))
|
|
58
|
-
.map(([name, v]) => ({ name, ...(v && typeof v === "object" && !Array.isArray(v) ? { options: v } : {}) }))
|
|
59
|
-
: undefined;
|
|
60
|
-
const provider = typeof raw?.providerID === "string" ? raw.providerID : id.split("/", 1)[0];
|
|
61
|
-
models.push({
|
|
62
|
-
id,
|
|
63
|
-
provider,
|
|
64
|
-
...(typeof raw?.name === "string" ? { name: raw.name } : {}),
|
|
65
|
-
...(variants?.length ? { variants } : {}),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
return models;
|
|
69
|
-
}
|
|
70
|
-
function listOpenCodeModels(opts = {}) {
|
|
71
|
-
const args = ["models", "--pure", "--verbose"];
|
|
72
|
-
if (opts.refresh)
|
|
73
|
-
args.push("--refresh");
|
|
74
|
-
try {
|
|
75
|
-
const stdout = execFileSync("opencode", args, {
|
|
76
|
-
encoding: "utf8",
|
|
77
|
-
env: discoveryEnv(),
|
|
78
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
79
|
-
maxBuffer: 16 * 1024 * 1024,
|
|
80
|
-
});
|
|
81
|
-
return { source: "opencode models --pure --verbose", models: parseModels(stdout) };
|
|
82
|
-
}
|
|
83
|
-
catch (e) {
|
|
84
|
-
throw new Error(`opencode models failed: ${execErrorMessage(e)}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* The OpenCode connector: launches a watchable `opencode` TUI bound to the agent's session, using
|
|
89
|
-
* OpenCode's client/server split (see serve.ts). The Cotal mesh bridge runs as an in-process plugin
|
|
90
|
-
* inside a headless `opencode serve`: it holds the {@link MeshAgent}, registers the cotal_* tools
|
|
91
|
-
* natively (from the shared specs, at parity with Claude Code), reports presence off the event bus,
|
|
92
|
-
* and owns ONE session it drives — injecting each incoming peer batch through the authenticated
|
|
93
|
-
* OpenCode server API on the same serve process the TUI attaches to. The shim then attaches a
|
|
94
|
-
* foreground TUI to that session, so a human watching sees the agent work and can type into it.
|
|
95
|
-
*
|
|
96
|
-
* Config rides in `OPENCODE_CONFIG_CONTENT` (inline JSON, the highest merge layer), so the
|
|
97
|
-
* operator's `~/.config/opencode` is never written.
|
|
98
|
-
* `permission:"allow"` keeps a supervised agent from stalling on a tool approval the human may not
|
|
99
|
-
* be at the keyboard to grant. Self-registers on import; the manager resolves it by type "opencode".
|
|
100
|
-
*/
|
|
101
|
-
export const opencodeConnector = {
|
|
102
|
-
kind: "connector",
|
|
103
|
-
name: "opencode",
|
|
104
|
-
transcriptChannel, // the shared `tr-<name>` convention (connector-core), exposed via the contract
|
|
105
|
-
requires: ["opencode"],
|
|
106
|
-
supportsModelVariant: true,
|
|
107
|
-
listModels: listOpenCodeModels,
|
|
108
|
-
buildLaunch(opts) {
|
|
109
|
-
// Resuming an existing session isn't wired for opencode: the connector runs `opencode serve` +
|
|
110
|
-
// a plugin that CREATES its own session then attaches a TUI, so a fork must plumb into
|
|
111
|
-
// session-creation (SDK fork / the serve attach), not argv. Throw rather than spawn fresh
|
|
112
|
-
// silently (no fallbacks). Tracked as a follow-up (issue #154).
|
|
113
|
-
if (opts.resume)
|
|
114
|
-
throw new Error("opencode connector: resuming an existing session (resume) is not implemented — it needs " +
|
|
115
|
-
"session-creation plumbing (SDK fork), not an argv flag. Tracked in issue #154.");
|
|
116
|
-
// Tool-sharing isn't wired for opencode: its OPENCODE_CONFIG_CONTENT is a merge layer, so an
|
|
117
|
-
// opencode agent already INHERITS the operator's MCP servers (the opposite default to Claude's
|
|
118
|
-
// strict isolation). A `connectors.opencode.mcpServers` entry would need inverse (opt-OUT)
|
|
119
|
-
// semantics that don't exist yet — throw rather than silently ignore it (no fallbacks).
|
|
120
|
-
if (opts.mcpServers && Object.keys(opts.mcpServers).length > 0)
|
|
121
|
-
throw new Error("opencode connector: tool-sharing (connectors.opencode.mcpServers) is not implemented. " +
|
|
122
|
-
"opencode agents currently inherit the operator's MCP servers through its config merge " +
|
|
123
|
-
"layer; restricting that down to a chosen subset needs an inverse opt-out filter, which " +
|
|
124
|
-
"is a separate feature.");
|
|
125
|
-
// Identity rides the process env: the plugin runs in the opencode process and inherits it
|
|
126
|
-
// (unlike the Claude Code MCP server, which gets none of the parent env). The OS allow-list +
|
|
127
|
-
// the named model-provider key (opencode's hosted models read OPENCODE_API_KEY; other
|
|
128
|
-
// providers read their own) are forwarded BY NAME — never `...process.env` — so the operator's
|
|
129
|
-
// unrelated secrets don't reach the child (P3).
|
|
130
|
-
const env = {
|
|
131
|
-
...launchEnv({ providerKeys: MODEL_PROVIDER_KEYS }),
|
|
132
|
-
...aclEnv(opts),
|
|
133
|
-
...userAuthEnv(opts),
|
|
134
|
-
COTAL_SPACE: opts.space,
|
|
135
|
-
COTAL_NAME: opts.name,
|
|
136
|
-
};
|
|
137
|
-
if (opts.role)
|
|
138
|
-
env.COTAL_ROLE = opts.role;
|
|
139
|
-
if (opts.id)
|
|
140
|
-
env.COTAL_ID = opts.id;
|
|
141
|
-
if (opts.creds)
|
|
142
|
-
env.COTAL_CREDS = opts.creds;
|
|
143
|
-
if (opts.servers)
|
|
144
|
-
env.COTAL_SERVERS = opts.servers;
|
|
145
|
-
if (opts.transcript === true)
|
|
146
|
-
env.COTAL_TRANSCRIPT = "1"; // gate the plugin's transcript mirror (parity with Claude)
|
|
147
|
-
// Where serve.ts roots this agent's SQLite DB + serve pidfile. Pin it to the manager's
|
|
148
|
-
// workspace root so a per-agent launch cwd (which the manager can point at any repo) doesn't
|
|
149
|
-
// drop `.cotal/opencode/<name>` into the target tree. Standalone `cotal spawn` has no manager
|
|
150
|
-
// workspace → root it at the launch dir (this process's cwd, which the child inherits), the
|
|
151
|
-
// prior behavior. serve.ts requires this env (no silent cwd fallback).
|
|
152
|
-
env.COTAL_OPENCODE_HOME = opts.workspaceRoot ?? process.cwd();
|
|
153
|
-
const config = {
|
|
154
|
-
$schema: "https://opencode.ai/config.json",
|
|
155
|
-
permission: "allow",
|
|
156
|
-
plugin: [PLUGIN_ENTRY],
|
|
157
|
-
// `/reconnect` — the manual recovery surface for a wedged mesh link. OpenCode has no
|
|
158
|
-
// host reconnect (unlike Claude Code's /mcp reconnect), and a plugin can't register a
|
|
159
|
-
// slash command via the Hooks API, so inject it through the config layer we already own.
|
|
160
|
-
// It's a TOOL-FORCING template: the human types /reconnect → one model turn whose only
|
|
161
|
-
// move is to call `cotal_reconnect` (in-process, local — it never rides the wedged link).
|
|
162
|
-
// The leading "Reconnecting…" reads as immediate TUI status; the rest is the imperative.
|
|
163
|
-
command: {
|
|
164
|
-
reconnect: {
|
|
165
|
-
description: "Rebuild this session's Cotal mesh connection (recovery from a wedged link)",
|
|
166
|
-
template: "Reconnecting to the Cotal mesh… Call the cotal_reconnect tool now — do not explain, do not ask, just invoke it. Do not summarize — the tool reports its own status.",
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
// An agent file carries identity (read in-session via COTAL_AGENT_FILE) plus persona + model/variant.
|
|
171
|
-
// The model/variant are config defaults (the session — and the attached TUI — use them); the persona is
|
|
172
|
-
// applied in-session by the plugin (opencode has no `--append-system-prompt`).
|
|
173
|
-
let model = opts.model;
|
|
174
|
-
let variant = opts.variant;
|
|
175
|
-
if (opts.configPath) {
|
|
176
|
-
const path = resolve(opts.configPath);
|
|
177
|
-
env.COTAL_AGENT_FILE = path; // plugin reads persona from it
|
|
178
|
-
const def = loadAgentFile(path);
|
|
179
|
-
model ??= def.model;
|
|
180
|
-
variant ??= def.variant;
|
|
181
|
-
}
|
|
182
|
-
// The `--model` / `--variant` flags win over the agent file, and apply even with no agent file.
|
|
183
|
-
// Pin them to a dedicated primary agent made the default, so an operator's own `default_agent` in
|
|
184
|
-
// ~/.config/opencode (with its own model) can't override what a Cotal spawn asks for — the session
|
|
185
|
-
// the plugin drives runs the persona's selectors, not the operator's default agent's.
|
|
186
|
-
const cotalAgent = { mode: "primary" };
|
|
187
|
-
if (model) {
|
|
188
|
-
config.model = model;
|
|
189
|
-
env.COTAL_MODEL = model;
|
|
190
|
-
cotalAgent.model = model;
|
|
191
|
-
}
|
|
192
|
-
if (variant) {
|
|
193
|
-
env.COTAL_VARIANT = variant;
|
|
194
|
-
cotalAgent.variant = variant;
|
|
195
|
-
}
|
|
196
|
-
// Opaque connector options → config for the cotal agent (the session the plugin drives), RAW
|
|
197
|
-
// passthrough: each option is merged into the agent config as-is and validated by opencode's own
|
|
198
|
-
// config schema. No deny-list — the spawn capability is the trust boundary (see
|
|
199
|
-
// connectorLaunchOptions), not the config keys. `mode`/`model`/`variant` are still set by the
|
|
200
|
-
// connector; an option of the same name simply overrides that default (last write wins), same as
|
|
201
|
-
// any other config field.
|
|
202
|
-
let hasLaunchOptions = false;
|
|
203
|
-
for (const [k, v] of connectorLaunchOptions("opencode", opts.launchOptions)) {
|
|
204
|
-
cotalAgent[k] = v;
|
|
205
|
-
hasLaunchOptions = true;
|
|
206
|
-
}
|
|
207
|
-
if (model || variant || hasLaunchOptions) {
|
|
208
|
-
config.agent = { cotal: cotalAgent };
|
|
209
|
-
config.default_agent = "cotal";
|
|
210
|
-
}
|
|
211
|
-
env.OPENCODE_CONFIG_CONTENT = JSON.stringify(config);
|
|
212
|
-
// Local control endpoint: the manager sends a cooperative {op:"shutdown"} here on a signal-less
|
|
213
|
-
// runtime (ConPTY/Windows), where a hard kill skips cleanup and the agent lingers until its
|
|
214
|
-
// presence TTL expires. The plugin (in the opencode server process) starts the control server and
|
|
215
|
-
// leaves the mesh cleanly on shutdown. Minted here; passed to the plugin in the child env (the
|
|
216
|
-
// token never on argv/logs) — opencode serve inherits this process env, the attached TUI strips
|
|
217
|
-
// COTAL_*. Returned in the LaunchSpec so the manager holds it in memory to drive the stop.
|
|
218
|
-
const control = controlEndpoint(opts.space, opts.name);
|
|
219
|
-
env.COTAL_CONTROL_SOCKET = control.path;
|
|
220
|
-
env.COTAL_CONTROL_TOKEN = control.token;
|
|
221
|
-
// Run the shim (node dist/serve.js): `opencode serve` + an attached foreground TUI.
|
|
222
|
-
return {
|
|
223
|
-
command: process.execPath,
|
|
224
|
-
args: [SERVE_SHIM],
|
|
225
|
-
env,
|
|
226
|
-
control,
|
|
227
|
-
};
|
|
228
|
-
},
|
|
229
|
-
};
|
|
230
|
-
registry.register(opencodeConnector);
|
|
231
|
-
//# sourceMappingURL=extension.js.map
|
package/dist/extension.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC,CAAC,oDAAoD"}
|