borgmcp 3.3.0 → 3.4.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/README.md +10 -3
- package/dist/agent-integration-health.d.ts +9 -5
- package/dist/agent-integration-health.d.ts.map +1 -1
- package/dist/agent-integration-health.js +104 -5
- package/dist/agent-integration-health.js.map +1 -1
- package/dist/claude.js +1 -0
- package/dist/claude.js.map +1 -1
- package/dist/config-utils.d.ts.map +1 -1
- package/dist/config-utils.js +1 -1
- package/dist/config-utils.js.map +1 -1
- package/dist/log-audit-core.d.ts +7 -0
- package/dist/log-audit-core.d.ts.map +1 -0
- package/dist/log-audit-core.js +80 -0
- package/dist/log-audit-core.js.map +1 -0
- package/dist/log-audit.d.ts +3 -3
- package/dist/log-audit.js +7 -110
- package/dist/log-audit.js.map +1 -1
- package/dist/opencode-drone.d.ts.map +1 -1
- package/dist/opencode-drone.js +6 -1
- package/dist/opencode-drone.js.map +1 -1
- package/dist/opencode-plugin.d.ts +47 -7
- package/dist/opencode-plugin.d.ts.map +1 -1
- package/dist/opencode-plugin.js +187 -23
- package/dist/opencode-plugin.js.map +1 -1
- package/dist/regen-format.js +1 -1
- package/dist/regen-format.js.map +1 -1
- package/dist/resolved-cli-config.d.ts +1 -0
- package/dist/resolved-cli-config.d.ts.map +1 -1
- package/dist/resolved-cli-config.js +1 -0
- package/dist/resolved-cli-config.js.map +1 -1
- package/docs/LOCAL_SERVER.md +17 -4
- package/package.json +1 -1
- package/src/agent-integration-health.ts +121 -6
- package/src/claude.ts +1 -0
- package/src/config-utils.ts +1 -1
- package/src/log-audit-core.ts +81 -0
- package/src/log-audit.ts +6 -117
- package/src/opencode-drone.ts +6 -1
- package/src/opencode-plugin.ts +216 -22
- package/src/regen-format.ts +1 -1
- package/src/resolved-cli-config.ts +2 -0
package/dist/opencode-plugin.js
CHANGED
|
@@ -1,35 +1,199 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
'
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
import { evaluateLogAudit } from './log-audit-core.js';
|
|
4
|
+
import { borgHomeRoot, isCanonicalPath } from './private-root.js';
|
|
5
|
+
import { getPackageVersion } from './version.js';
|
|
6
|
+
export const OPENCODE_COMPATIBILITY = {
|
|
7
|
+
// Empirically pinned on 2026-08-09. OpenCode 1.18.15 loads the default
|
|
8
|
+
// function -> Hooks object shape while the installed SDK uses the 1.17.18
|
|
9
|
+
// path/query/body client call shape. TextPart.metadata exists, persists
|
|
10
|
+
// through history/compaction/reload, and is hidden from the TUI and model.
|
|
11
|
+
// Do not replace either contract without a new live compatibility measurement.
|
|
12
|
+
opencode: '1.18.15',
|
|
13
|
+
sdk: '1.17.18',
|
|
14
|
+
};
|
|
15
|
+
const COMPACT_FALLBACK = '## Borg Cube\nYou are in a Borg MCP multi-agent coordination cube. ' +
|
|
16
|
+
'Use MCP tool borg_regen to get full context and recent activity.';
|
|
17
|
+
export const OPENCODE_INJECTED_ENTRY_METADATA_KEY = 'borgOpenCodeInjectedEntry';
|
|
18
|
+
export const OPENCODE_RECOVERY_METADATA_KEY = 'borgOpenCodeSessionOrientation';
|
|
19
|
+
const PLUGIN_REL_PATH = path.join('.config', 'opencode', 'plugins', 'borg-orient.js');
|
|
20
|
+
/** Pure, dependency-injected behavior core. Its emitted JavaScript function
|
|
21
|
+
* body is also embedded in the installed self-contained plugin. */
|
|
22
|
+
export function createOpenCodePluginCore(deps, options) {
|
|
23
|
+
const claimedSessions = new Set();
|
|
24
|
+
const humanPromptSessions = new Set();
|
|
25
|
+
const textParts = (message) => Array.isArray(message?.parts)
|
|
26
|
+
? message.parts.filter((part) => part?.type === 'text' && typeof part.text === 'string')
|
|
27
|
+
: [];
|
|
28
|
+
const isInjectedEntry = (message) => {
|
|
29
|
+
const parts = textParts(message);
|
|
30
|
+
return message?.info?.role === 'user' &&
|
|
31
|
+
parts[0]?.metadata?.[options.injectedEntryMetadataKey] === true;
|
|
32
|
+
};
|
|
33
|
+
const isOwnedRecovery = (message) => {
|
|
34
|
+
const parts = textParts(message);
|
|
35
|
+
return message?.info?.role === 'user' &&
|
|
36
|
+
parts[0]?.metadata?.[options.recoveryMetadataKey] === options.pluginVersion;
|
|
37
|
+
};
|
|
38
|
+
const hasRecoveryBlocker = (sessionID, messages) => humanPromptSessions.has(sessionID) || messages.some((message) => isOwnedRecovery(message) ||
|
|
39
|
+
(message?.info?.role === 'user' && !isInjectedEntry(message)));
|
|
40
|
+
const recoverNewSession = async (sessionID) => {
|
|
41
|
+
try {
|
|
42
|
+
for (let attempt = 0; attempt < options.kickoffPollAttempts; attempt++) {
|
|
43
|
+
const messages = await deps.listMessages(sessionID);
|
|
44
|
+
if (hasRecoveryBlocker(sessionID, messages))
|
|
45
|
+
return;
|
|
46
|
+
if (attempt + 1 < options.kickoffPollAttempts)
|
|
47
|
+
await deps.wait(options.pollDelayMs);
|
|
48
|
+
}
|
|
49
|
+
const orientation = (await deps.renderOrientation('clear')).trim();
|
|
50
|
+
if (!orientation)
|
|
51
|
+
return;
|
|
52
|
+
const beforeSubmit = await deps.listMessages(sessionID);
|
|
53
|
+
if (hasRecoveryBlocker(sessionID, beforeSubmit))
|
|
54
|
+
return;
|
|
55
|
+
const submitted = await deps.submitPrompt(sessionID, orientation, options.pluginVersion, () => !hasRecoveryBlocker(sessionID, []));
|
|
56
|
+
if (!submitted)
|
|
57
|
+
return;
|
|
58
|
+
// promptAsync is not idempotent. Confirmation may retry, submission may not.
|
|
59
|
+
for (let attempt = 0; attempt < options.confirmationPollAttempts; attempt++) {
|
|
60
|
+
const messages = await deps.listMessages(sessionID);
|
|
61
|
+
if (messages.some(isOwnedRecovery))
|
|
62
|
+
return;
|
|
63
|
+
if (attempt + 1 < options.confirmationPollAttempts)
|
|
64
|
+
await deps.wait(options.pollDelayMs);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// The plugin is best-effort. Never block OpenCode session creation.
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
event: async ({ event }) => {
|
|
73
|
+
if (!options.enabled || event?.type !== 'session.created')
|
|
74
|
+
return;
|
|
75
|
+
const sessionID = event?.properties?.info?.id;
|
|
76
|
+
if (typeof sessionID !== 'string' || claimedSessions.has(sessionID))
|
|
77
|
+
return;
|
|
78
|
+
claimedSessions.add(sessionID);
|
|
79
|
+
deps.defer(() => recoverNewSession(sessionID));
|
|
80
|
+
},
|
|
81
|
+
'experimental.session.compacting': async (_input, output) => {
|
|
82
|
+
if (!options.enabled)
|
|
83
|
+
return;
|
|
84
|
+
try {
|
|
85
|
+
const orientation = (await deps.renderOrientation('compact')).trim();
|
|
86
|
+
output.context.push(orientation || options.compactFallback);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
output.context.push(options.compactFallback);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
'chat.message': async (input, output) => {
|
|
93
|
+
if (!options.enabled)
|
|
94
|
+
return;
|
|
95
|
+
const current = { info: { role: 'user' }, parts: [...output.parts] };
|
|
96
|
+
if (!isInjectedEntry(current) && !isOwnedRecovery(current)) {
|
|
97
|
+
// chat.message fires before the user message is persisted. Record the
|
|
98
|
+
// human turn synchronously so recovery cannot race that short gap.
|
|
99
|
+
humanPromptSessions.add(input.sessionID);
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const history = await deps.listMessages(input.sessionID);
|
|
103
|
+
const nudge = deps.audit([...history, current]);
|
|
104
|
+
if (nudge)
|
|
105
|
+
output.parts.push({ type: 'text', text: nudge });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Audit is advisory and must never block a prompt.
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function buildBorgPluginSource(version) {
|
|
114
|
+
const marker = `borgmcp-opencode-plugin:${version};opencode=${OPENCODE_COMPATIBILITY.opencode};sdk=${OPENCODE_COMPATIBILITY.sdk};textpart-metadata=exists+persisted+tui-hidden+model-hidden`;
|
|
115
|
+
return `// ${marker}
|
|
116
|
+
// Generated by borgmcp. Self-contained; do not edit.
|
|
117
|
+
const createCore = ${createOpenCodePluginCore.toString()};
|
|
118
|
+
const evaluateAudit = ${evaluateLogAudit.toString()};
|
|
119
|
+
export default async function (ctx) {
|
|
120
|
+
const runRegen = async (source) => {
|
|
121
|
+
const input = JSON.stringify({ source });
|
|
122
|
+
const result = await ctx.$\`printf '%s' \${input} | borg-regen\`.quiet().nothrow();
|
|
123
|
+
return result.exitCode === 0 ? result.stdout.toString('utf8') : '';
|
|
19
124
|
};
|
|
125
|
+
return createCore({
|
|
126
|
+
defer: (task) => { setTimeout(() => { void task(); }, 0); },
|
|
127
|
+
wait: (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds)),
|
|
128
|
+
listMessages: async (sessionID) => {
|
|
129
|
+
const result = await ctx.client.session.messages({
|
|
130
|
+
path: { id: sessionID },
|
|
131
|
+
query: { directory: ctx.directory },
|
|
132
|
+
});
|
|
133
|
+
return Array.isArray(result.data) ? result.data : [];
|
|
134
|
+
},
|
|
135
|
+
renderOrientation: runRegen,
|
|
136
|
+
submitPrompt: async (sessionID, text, recoveryVersion, shouldSubmit) => {
|
|
137
|
+
if (!shouldSubmit()) return false;
|
|
138
|
+
await ctx.client.session.promptAsync({
|
|
139
|
+
path: { id: sessionID },
|
|
140
|
+
query: { directory: ctx.directory },
|
|
141
|
+
body: { parts: [{
|
|
142
|
+
type: 'text',
|
|
143
|
+
text,
|
|
144
|
+
metadata: { [${JSON.stringify(OPENCODE_RECOVERY_METADATA_KEY)}]: recoveryVersion },
|
|
145
|
+
}] },
|
|
146
|
+
});
|
|
147
|
+
return true;
|
|
148
|
+
},
|
|
149
|
+
audit: (messages) => evaluateAudit(messages),
|
|
150
|
+
}, {
|
|
151
|
+
...${JSON.stringify({
|
|
152
|
+
pluginVersion: version,
|
|
153
|
+
recoveryMetadataKey: OPENCODE_RECOVERY_METADATA_KEY,
|
|
154
|
+
injectedEntryMetadataKey: OPENCODE_INJECTED_ENTRY_METADATA_KEY,
|
|
155
|
+
kickoffPollAttempts: 6,
|
|
156
|
+
confirmationPollAttempts: 6,
|
|
157
|
+
pollDelayMs: 200,
|
|
158
|
+
compactFallback: COMPACT_FALLBACK,
|
|
159
|
+
})},
|
|
160
|
+
enabled: process.env.BORG_SESSION === '1',
|
|
161
|
+
});
|
|
20
162
|
}
|
|
21
163
|
`;
|
|
22
|
-
|
|
23
|
-
export
|
|
24
|
-
|
|
164
|
+
}
|
|
165
|
+
export const BORG_PLUGIN_SOURCE = buildBorgPluginSource(getPackageVersion());
|
|
166
|
+
export function openCodePluginPath(homeDir = borgHomeRoot()) {
|
|
167
|
+
return path.join(homeDir, PLUGIN_REL_PATH);
|
|
168
|
+
}
|
|
169
|
+
export function installBorgPlugin(options = {}) {
|
|
170
|
+
const pluginPath = openCodePluginPath(options.homeDir);
|
|
171
|
+
const source = buildBorgPluginSource(options.version ?? getPackageVersion());
|
|
25
172
|
try {
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
173
|
+
if (!isCanonicalPath(pluginPath))
|
|
174
|
+
return;
|
|
175
|
+
try {
|
|
176
|
+
if (fs.lstatSync(pluginPath).isSymbolicLink())
|
|
177
|
+
return;
|
|
178
|
+
if (fs.readFileSync(pluginPath, 'utf-8') === source)
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT'))
|
|
29
183
|
return;
|
|
30
184
|
}
|
|
31
185
|
fs.mkdirSync(path.dirname(pluginPath), { recursive: true });
|
|
32
|
-
|
|
186
|
+
if (!isCanonicalPath(pluginPath))
|
|
187
|
+
return;
|
|
188
|
+
try {
|
|
189
|
+
if (fs.lstatSync(pluginPath).isSymbolicLink())
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT'))
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
fs.writeFileSync(pluginPath, source, 'utf-8');
|
|
33
197
|
}
|
|
34
198
|
catch {
|
|
35
199
|
// Best-effort — plugin is an optimization, not a requirement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../src/opencode-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../src/opencode-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,+EAA+E;IAC/E,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,SAAS;CACN,CAAC;AAEX,MAAM,gBAAgB,GACpB,qEAAqE;IACrE,kEAAkE,CAAC;AACrE,MAAM,CAAC,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AAChF,MAAM,CAAC,MAAM,8BAA8B,GAAG,gCAAgC,CAAC;AAC/E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AA2BtF;mEACmE;AACnE,MAAM,UAAU,wBAAwB,CACtC,IAA4B,EAC5B,OAAkC;IAElC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,SAAS,GAAG,CAAC,OAAY,EAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;QACtE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC7F,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,CAAC,OAAY,EAAW,EAAE;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM;YACnC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IACpE,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,OAAY,EAAW,EAAE;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM;YACnC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC;IAChF,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,QAAwB,EAAW,EAAE,CAClF,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,eAAe,CAAC,OAAO,CAAC;QACxB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,iBAAiB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;QACnE,IAAI,CAAC;YACH,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACpD,IAAI,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC;oBAAE,OAAO;gBACpD,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB;oBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtF,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,WAAW;gBAAE,OAAO;YACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC;gBAAE,OAAO;YAExD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CACvC,SAAS,EACT,WAAW,EACX,OAAO,CAAC,aAAa,EACrB,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CACzC,CAAC;YACF,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,6EAA6E;YAC7E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACpD,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;oBAAE,OAAO;gBAC3C,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,wBAAwB;oBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAO,EAAiB,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB;gBAAE,OAAO;YAClE,MAAM,SAAS,GAAG,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YAC5E,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,iCAAiC,EAAE,KAAK,EACtC,MAA6B,EAC7B,MAA6B,EACd,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC7B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,cAAc,EAAE,KAAK,EACnB,KAA4B,EAC5B,MAA0C,EAC3B,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC7B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,sEAAsE;gBACtE,mEAAmE;gBACnE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChD,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,MAAM,GAAG,2BAA2B,OAAO,aAAa,sBAAsB,CAAC,QAAQ,QAAQ,sBAAsB,CAAC,GAAG,6DAA6D,CAAC;IAC7L,OAAO,MAAM,MAAM;;qBAEA,wBAAwB,CAAC,QAAQ,EAAE;wBAChC,gBAAgB,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;yBA0B1B,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC;;;;;;;SAO9D,IAAI,CAAC,SAAS,CAAC;QACpB,aAAa,EAAE,OAAO;QACtB,mBAAmB,EAAE,8BAA8B;QACnD,wBAAwB,EAAE,oCAAoC;QAC9D,mBAAmB,EAAE,CAAC;QACtB,wBAAwB,EAAE,CAAC;QAC3B,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,gBAAgB;KAClC,CAAC;;;;CAIH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAE7E,MAAM,UAAU,kBAAkB,CAAC,UAAkB,YAAY,EAAE;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAG9B,EAAE;IACJ,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE;gBAAE,OAAO;YACtD,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,MAAM;gBAAE,OAAO;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAAE,OAAO;QACtF,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE;gBAAE,OAAO;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;gBAAE,OAAO;QACtF,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC"}
|
package/dist/regen-format.js
CHANGED
|
@@ -151,7 +151,7 @@ export function formatLeanOrientation(args) {
|
|
|
151
151
|
'\n_(`/clear` cleared Claude\'s conversation — re-arm the inbox Monitor now.)_',
|
|
152
152
|
'_Quiet-clear fallback: if a later turn follows silence, inspect `borg_stream-status` + `borg_roster`; call `borg_regen mode="full"`, drain `borg_read-log unread_only=true`, then re-arm the Monitor._\n',
|
|
153
153
|
].join('\n')
|
|
154
|
-
: ''
|
|
154
|
+
: '\n_(OpenCode started a new session; Borg supplied this orientation automatically.)_\n'
|
|
155
155
|
: '';
|
|
156
156
|
return [
|
|
157
157
|
`# Cube: ${cubeName} — ${droneLabel}`,
|
package/dist/regen-format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regen-format.js","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"regen-format.js","sourceRoot":"","sources":["../src/regen-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export interface ResolvedCliConfigDeps {
|
|
|
6
6
|
addClaudeUserPromptSubmitHook(): void;
|
|
7
7
|
addCodexSessionStartHook(): void;
|
|
8
8
|
addCodexUserPromptSubmitHook(): void;
|
|
9
|
+
installOpenCodePlugin(): void;
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Apply only the integration writes for the CLI the launcher resolved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolved-cli-config.d.ts","sourceRoot":"","sources":["../src/resolved-cli-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,gCAAgC,IAAI,IAAI,CAAC;IACzC,kCAAkC,IAAI,IAAI,CAAC;IAC3C,6BAA6B,IAAI,IAAI,CAAC;IACtC,wBAAwB,IAAI,IAAI,CAAC;IACjC,4BAA4B,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"resolved-cli-config.d.ts","sourceRoot":"","sources":["../src/resolved-cli-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,gCAAgC,IAAI,IAAI,CAAC;IACzC,kCAAkC,IAAI,IAAI,CAAC;IAC3C,6BAA6B,IAAI,IAAI,CAAC;IACtC,wBAAwB,IAAI,IAAI,CAAC;IACjC,4BAA4B,IAAI,IAAI,CAAC;IACrC,qBAAqB,IAAI,IAAI,CAAC;CAC/B;AACD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,qBAAqB,GAC1B,IAAI,CAsBN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolved-cli-config.js","sourceRoot":"","sources":["../src/resolved-cli-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolved-cli-config.js","sourceRoot":"","sources":["../src/resolved-cli-config.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAY,EACZ,IAA2B;IAE3B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzB,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,gCAAgC;QAChC,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAC1C,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,CAAC"}
|
package/docs/LOCAL_SERVER.md
CHANGED
|
@@ -154,8 +154,10 @@ being redirected.
|
|
|
154
154
|
Borg tools are inactive unless the agent session was launched with `borg`.
|
|
155
155
|
For Claude Code and Codex, `BORG_DISABLE_LAUNCH_REMINDER` is a presence-based
|
|
156
156
|
local opt-out for launch orientation messaging; setting it does not activate
|
|
157
|
-
Borg tools or change server authorization. OpenCode has no launch
|
|
158
|
-
|
|
157
|
+
Borg tools or change server authorization. OpenCode has no plain-launch reminder;
|
|
158
|
+
inside a Borg-launched process, its orientation plugin supplies the Borg
|
|
159
|
+
orientation once after OpenCode creates a new session and preserves it across
|
|
160
|
+
compaction.
|
|
159
161
|
|
|
160
162
|
Each assimilated seat also receives a disposable scratch root at
|
|
161
163
|
`~/.borg/scratch/<seat>/`. Borg pre-authorizes exactly the launched worktree and
|
|
@@ -213,10 +215,21 @@ command, or scan worktrees outside `~/.borg/worktrees/<repo>/<name>`; those
|
|
|
213
215
|
noncanonical worktrees heal when Borg next launches or assimilates them.
|
|
214
216
|
|
|
215
217
|
`borg doctor` performs the same bin-owner and version checks without changing
|
|
216
|
-
state. It inventories managed hook files and the OpenCode orientation
|
|
218
|
+
state. It inventories managed hook files and verifies the OpenCode orientation
|
|
219
|
+
plugin against its borgmcp version marker and generated behavior,
|
|
217
220
|
and reports status-specific recovery: reinstall a missing bin, correct PATH for
|
|
218
221
|
the wrong package or version, run `borg update --yes` for stale managed hooks,
|
|
219
|
-
|
|
222
|
+
repair a named invalid configuration before rerunning update, or run
|
|
223
|
+
`borg update --yes` to install a missing or outdated OpenCode plugin. The plugin API is
|
|
224
|
+
empirically bound to OpenCode 1.18.15 with `@opencode-ai/plugin` 1.17.18; that
|
|
225
|
+
SDK uses the path/query/body options shape for history reads and prompt
|
|
226
|
+
submission, not the newer flat v2 call shape. At that bound, `TextPart.metadata`
|
|
227
|
+
exists, persists through history reads, compaction, and process reload, and is
|
|
228
|
+
not rendered in the TUI or supplied to the model. The health gate treats OpenCode
|
|
229
|
+
as configured only when `~/.config/opencode/opencode.json` contains a local
|
|
230
|
+
`mcp.borg` entry with `type: "local"`. That path and shape were exercised by the
|
|
231
|
+
3.2.0 config-refresh live proof (PR #390) and are part of the OpenCode 1.18.15
|
|
232
|
+
compatibility gate.
|
|
220
233
|
|
|
221
234
|
`borg server update` remains the server-runtime-only command. It verifies and
|
|
222
235
|
activates the server artifact but deliberately does not rewrite the global
|
package/package.json
CHANGED
|
@@ -3,12 +3,18 @@ import path from 'node:path';
|
|
|
3
3
|
import which from 'which';
|
|
4
4
|
import {
|
|
5
5
|
inspectManagedAgentHookConfigs,
|
|
6
|
+
isOpenCodeMcpServerConfigured,
|
|
6
7
|
type ManagedAgentHookConfigHealth,
|
|
7
8
|
refreshManagedAgentHookConfigs,
|
|
8
9
|
refreshManagedAgentMcpConfigs,
|
|
9
10
|
} from './config-utils.js';
|
|
10
|
-
import { borgHomeRoot } from './private-root.js';
|
|
11
|
+
import { borgHomeRoot, isCanonicalPath } from './private-root.js';
|
|
11
12
|
import { getPackageVersion } from './version.js';
|
|
13
|
+
import {
|
|
14
|
+
buildBorgPluginSource,
|
|
15
|
+
installBorgPlugin,
|
|
16
|
+
openCodePluginPath,
|
|
17
|
+
} from './opencode-plugin.js';
|
|
12
18
|
|
|
13
19
|
export const AGENT_HOOK_BINS = [
|
|
14
20
|
'borg-regen',
|
|
@@ -32,9 +38,17 @@ export interface AgentHookBinHealth {
|
|
|
32
38
|
export interface AgentIntegrationHealth {
|
|
33
39
|
expectedVersion: string;
|
|
34
40
|
bins: AgentHookBinHealth[];
|
|
35
|
-
issues: Array<AgentHookBinHealth | ManagedAgentHookConfigHealth>;
|
|
41
|
+
issues: Array<AgentHookBinHealth | ManagedAgentHookConfigHealth | OpenCodePluginHealth>;
|
|
36
42
|
hookConfigs: ManagedAgentHookConfigHealth[];
|
|
37
|
-
openCodePlugin:
|
|
43
|
+
openCodePlugin: OpenCodePluginHealth;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface OpenCodePluginHealth {
|
|
47
|
+
path: string;
|
|
48
|
+
configured: boolean;
|
|
49
|
+
status: 'ok' | 'present' | 'absent' | 'missing' | 'outdated' | 'unreadable' | 'refused';
|
|
50
|
+
version?: string;
|
|
51
|
+
detail?: string;
|
|
38
52
|
}
|
|
39
53
|
|
|
40
54
|
export interface InspectAgentIntegrationHealthOptions {
|
|
@@ -70,6 +84,72 @@ function defaultResolveBin(name: AgentHookBinName, searchPath: string | undefine
|
|
|
70
84
|
}
|
|
71
85
|
}
|
|
72
86
|
|
|
87
|
+
function inspectOpenCodePlugin(homeDir: string, expectedVersion: string): OpenCodePluginHealth {
|
|
88
|
+
const pluginPath = openCodePluginPath(homeDir);
|
|
89
|
+
const configured = isOpenCodeMcpServerConfigured(
|
|
90
|
+
path.join(homeDir, '.config', 'opencode', 'opencode.json'),
|
|
91
|
+
);
|
|
92
|
+
try {
|
|
93
|
+
let metadata: fs.Stats;
|
|
94
|
+
try {
|
|
95
|
+
metadata = fs.lstatSync(pluginPath);
|
|
96
|
+
} catch (error) {
|
|
97
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
98
|
+
if (!isCanonicalPath(pluginPath)) {
|
|
99
|
+
return {
|
|
100
|
+
path: pluginPath,
|
|
101
|
+
configured,
|
|
102
|
+
status: 'refused',
|
|
103
|
+
detail: 'plugin path contains a symlink',
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return { path: pluginPath, configured, status: configured ? 'missing' : 'absent' };
|
|
107
|
+
}
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
if (metadata.isSymbolicLink()) {
|
|
111
|
+
return {
|
|
112
|
+
path: pluginPath,
|
|
113
|
+
configured,
|
|
114
|
+
status: 'refused',
|
|
115
|
+
detail: 'plugin path is a symlink',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (!isCanonicalPath(pluginPath)) {
|
|
119
|
+
return {
|
|
120
|
+
path: pluginPath,
|
|
121
|
+
configured,
|
|
122
|
+
status: 'refused',
|
|
123
|
+
detail: 'plugin path contains a symlink',
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (!metadata.isFile()) {
|
|
127
|
+
return {
|
|
128
|
+
path: pluginPath,
|
|
129
|
+
configured,
|
|
130
|
+
status: 'refused',
|
|
131
|
+
detail: 'plugin path is not a regular file',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
const source = fs.readFileSync(pluginPath, 'utf8');
|
|
135
|
+
const marker = source.match(/borgmcp-opencode-plugin:([^;\s]+);opencode=/)?.[1];
|
|
136
|
+
if (!configured) {
|
|
137
|
+
return { path: pluginPath, configured, status: 'present', version: marker ?? 'unknown' };
|
|
138
|
+
}
|
|
139
|
+
if (source === buildBorgPluginSource(expectedVersion)) {
|
|
140
|
+
return { path: pluginPath, configured, status: 'ok', version: expectedVersion };
|
|
141
|
+
}
|
|
142
|
+
return { path: pluginPath, configured, status: 'outdated', version: marker ?? 'unknown' };
|
|
143
|
+
} catch (error) {
|
|
144
|
+
return {
|
|
145
|
+
path: pluginPath,
|
|
146
|
+
configured,
|
|
147
|
+
status: 'unreadable',
|
|
148
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
73
153
|
export function inspectAgentIntegrationHealth(
|
|
74
154
|
options: InspectAgentIntegrationHealthOptions = {},
|
|
75
155
|
): AgentIntegrationHealth {
|
|
@@ -105,17 +185,22 @@ export function inspectAgentIntegrationHealth(
|
|
|
105
185
|
}
|
|
106
186
|
return { name, status: 'ok', resolvedPath, owner: owner.name, version: owner.version };
|
|
107
187
|
});
|
|
108
|
-
const pluginPath = path.join(homeDir, '.config', 'opencode', 'plugins', 'borg-orient.js');
|
|
109
188
|
const hookConfigs = inspectManagedAgentHookConfigs(homeDir);
|
|
189
|
+
const openCodePlugin = inspectOpenCodePlugin(homeDir, expectedVersion);
|
|
110
190
|
return {
|
|
111
191
|
expectedVersion,
|
|
112
192
|
bins,
|
|
113
193
|
issues: [
|
|
114
194
|
...bins.filter((bin) => bin.status !== 'ok'),
|
|
115
195
|
...hookConfigs.filter((config) => config.status === 'stale' || config.status === 'invalid'),
|
|
196
|
+
...(openCodePlugin.status === 'unreadable' ||
|
|
197
|
+
(openCodePlugin.status === 'refused' && openCodePlugin.configured) ||
|
|
198
|
+
(openCodePlugin.configured && openCodePlugin.status !== 'ok')
|
|
199
|
+
? [openCodePlugin]
|
|
200
|
+
: []),
|
|
116
201
|
],
|
|
117
202
|
hookConfigs,
|
|
118
|
-
openCodePlugin
|
|
203
|
+
openCodePlugin,
|
|
119
204
|
};
|
|
120
205
|
}
|
|
121
206
|
|
|
@@ -129,6 +214,22 @@ function renderBin(bin: AgentHookBinHealth, expectedVersion: string): string {
|
|
|
129
214
|
}
|
|
130
215
|
}
|
|
131
216
|
|
|
217
|
+
function renderOpenCodePlugin(
|
|
218
|
+
plugin: OpenCodePluginHealth,
|
|
219
|
+
expectedVersion: string,
|
|
220
|
+
): string {
|
|
221
|
+
const prefix = 'OpenCode borg-orient.js plugin:';
|
|
222
|
+
switch (plugin.status) {
|
|
223
|
+
case 'ok': return `${prefix} ok (${plugin.version})`;
|
|
224
|
+
case 'present': return `${prefix} present`;
|
|
225
|
+
case 'absent': return `${prefix} absent`;
|
|
226
|
+
case 'missing': return `${prefix} missing at ${plugin.path}`;
|
|
227
|
+
case 'outdated': return `${prefix} version ${plugin.version}, expected ${expectedVersion} at ${plugin.path}`;
|
|
228
|
+
case 'unreadable': return `${prefix} unreadable at ${plugin.path}${plugin.detail ? ` (${plugin.detail})` : ''}`;
|
|
229
|
+
case 'refused': return `${prefix} refused at ${plugin.path}${plugin.detail ? ` (${plugin.detail})` : ''}`;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
132
233
|
export function renderAgentIntegrationHealth(report: AgentIntegrationHealth): string {
|
|
133
234
|
const lines = [
|
|
134
235
|
`Borg agent integration (borgmcp ${report.expectedVersion})`,
|
|
@@ -137,7 +238,7 @@ export function renderAgentIntegrationHealth(report: AgentIntegrationHealth): st
|
|
|
137
238
|
...report.hookConfigs.map((item) => (
|
|
138
239
|
` ${item.status}: ${item.path}${item.detail ? ` (${item.detail})` : ''}`
|
|
139
240
|
)),
|
|
140
|
-
|
|
241
|
+
renderOpenCodePlugin(report.openCodePlugin, report.expectedVersion),
|
|
141
242
|
];
|
|
142
243
|
for (const bin of report.bins) {
|
|
143
244
|
switch (bin.status) {
|
|
@@ -168,6 +269,19 @@ export function renderAgentIntegrationHealth(report: AgentIntegrationHealth): st
|
|
|
168
269
|
: `Repair invalid managed hook config ${config.path}, then run: borg update --yes`);
|
|
169
270
|
}
|
|
170
271
|
}
|
|
272
|
+
if (report.openCodePlugin.status === 'missing') {
|
|
273
|
+
lines.push('Repair missing OpenCode plugin: borg update --yes');
|
|
274
|
+
} else if (report.openCodePlugin.status === 'outdated' && report.openCodePlugin.configured) {
|
|
275
|
+
lines.push('Repair OpenCode plugin: borg update --yes');
|
|
276
|
+
} else if (report.openCodePlugin.status === 'unreadable') {
|
|
277
|
+
lines.push(report.openCodePlugin.configured
|
|
278
|
+
? `Fix or replace unreadable OpenCode plugin ${report.openCodePlugin.path}, then run: borg update --yes`
|
|
279
|
+
: `Fix or remove unreadable OpenCode plugin ${report.openCodePlugin.path}`);
|
|
280
|
+
} else if (report.openCodePlugin.status === 'refused' && report.openCodePlugin.configured) {
|
|
281
|
+
lines.push(
|
|
282
|
+
`Remove or replace the OpenCode plugin path ${report.openCodePlugin.path}, then run: borg update --yes`,
|
|
283
|
+
);
|
|
284
|
+
}
|
|
171
285
|
return `${lines.join('\n')}\n`;
|
|
172
286
|
}
|
|
173
287
|
|
|
@@ -223,6 +337,7 @@ export function refreshAndVerifyManagedAgentIntegrations(): void {
|
|
|
223
337
|
'Repair the named managed hook config, then rerun borg update --yes',
|
|
224
338
|
);
|
|
225
339
|
}
|
|
340
|
+
if (isOpenCodeMcpServerConfigured()) installBorgPlugin();
|
|
226
341
|
try {
|
|
227
342
|
assertAgentIntegrationHealthy(inspectAgentIntegrationHealth());
|
|
228
343
|
} catch (error) {
|
package/src/claude.ts
CHANGED
|
@@ -630,6 +630,7 @@ function ensureResolvedCliConfigured(cli: BorgCli): void {
|
|
|
630
630
|
addClaudeUserPromptSubmitHook: addUserPromptSubmitHook,
|
|
631
631
|
addCodexSessionStartHook,
|
|
632
632
|
addCodexUserPromptSubmitHook,
|
|
633
|
+
installOpenCodePlugin: installBorgPlugin,
|
|
633
634
|
});
|
|
634
635
|
} catch (err: any) {
|
|
635
636
|
console.error(`${consolePrefix()}${chalk.yellow(`warning: ${label} integration check failed: ${err?.message ?? err}`)}`);
|
package/src/config-utils.ts
CHANGED
|
@@ -1167,7 +1167,7 @@ export function isCodexUserPromptSubmitHookRegistered(hooksPath: string = CODEX_
|
|
|
1167
1167
|
* `type: "local"`. Safe-default: any read error returns `false`.
|
|
1168
1168
|
*/
|
|
1169
1169
|
export function isOpenCodeMcpServerConfigured(
|
|
1170
|
-
configPath: string =
|
|
1170
|
+
configPath: string = path.join(borgHomeRoot(), '.config', 'opencode', 'opencode.json')
|
|
1171
1171
|
): boolean {
|
|
1172
1172
|
try {
|
|
1173
1173
|
if (!fs.existsSync(configPath)) return false;
|