mister-wolf 2.19.0 → 2.20.1
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 +12 -1
- package/README.ru.md +19 -2
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-uninstall.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-uninstall.js.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.d.ts +143 -2
- package/dist/adapters/cli/commands/memory-upgrade.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.js +887 -41
- package/dist/adapters/cli/commands/memory-upgrade.js.map +1 -1
- package/dist/adapters/cli/commands/upgrade-projects.d.ts +4 -2
- package/dist/adapters/cli/commands/upgrade-projects.d.ts.map +1 -1
- package/dist/adapters/cli/commands/upgrade-projects.js +17 -7
- package/dist/adapters/cli/commands/upgrade-projects.js.map +1 -1
- package/dist/adapters/platforms/index.d.ts.map +1 -1
- package/dist/adapters/platforms/index.js +2 -1
- package/dist/adapters/platforms/index.js.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.d.ts +13 -4
- package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.js +278 -55
- package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
- package/dist/adapters/platforms/opencode-config-keys.d.ts +78 -0
- package/dist/adapters/platforms/opencode-config-keys.d.ts.map +1 -0
- package/dist/adapters/platforms/opencode-config-keys.js +169 -0
- package/dist/adapters/platforms/opencode-config-keys.js.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts +35 -7
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.js +395 -115
- package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
- package/dist/adapters/render/stamp.d.ts +2 -0
- package/dist/adapters/render/stamp.d.ts.map +1 -1
- package/dist/adapters/render/stamp.js +9 -1
- package/dist/adapters/render/stamp.js.map +1 -1
- package/dist/adapters/render/sync-state.d.ts +15 -3
- package/dist/adapters/render/sync-state.d.ts.map +1 -1
- package/dist/adapters/render/sync-state.js +52 -8
- package/dist/adapters/render/sync-state.js.map +1 -1
- package/dist/app/use-cases/decisions.d.ts +247 -0
- package/dist/app/use-cases/decisions.d.ts.map +1 -0
- package/dist/app/use-cases/decisions.js +528 -0
- package/dist/app/use-cases/decisions.js.map +1 -0
- package/dist/app/use-cases/doctor.d.ts.map +1 -1
- package/dist/app/use-cases/doctor.js +6 -0
- package/dist/app/use-cases/doctor.js.map +1 -1
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +39 -3
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/platform-mismatch.d.ts +2 -1
- package/dist/app/use-cases/platform-mismatch.d.ts.map +1 -1
- package/dist/app/use-cases/platform-mismatch.js.map +1 -1
- package/dist/app/use-cases/project-step.d.ts +20 -1
- package/dist/app/use-cases/project-step.d.ts.map +1 -1
- package/dist/app/use-cases/project-step.js +101 -15
- package/dist/app/use-cases/project-step.js.map +1 -1
- package/dist/app/use-cases/repair-platform.d.ts +2 -1
- package/dist/app/use-cases/repair-platform.d.ts.map +1 -1
- package/dist/app/use-cases/repair-platform.js +4 -1
- package/dist/app/use-cases/repair-platform.js.map +1 -1
- package/dist/app/use-cases/sync-base-set.d.ts +4 -2
- package/dist/app/use-cases/sync-base-set.d.ts.map +1 -1
- package/dist/app/use-cases/sync-base-set.js +4 -2
- package/dist/app/use-cases/sync-base-set.js.map +1 -1
- package/dist/app/use-cases/tool-librarian.d.ts.map +1 -1
- package/dist/app/use-cases/tool-librarian.js +3 -1
- package/dist/app/use-cases/tool-librarian.js.map +1 -1
- package/dist/app/use-cases/uninstall.d.ts +2 -1
- package/dist/app/use-cases/uninstall.d.ts.map +1 -1
- package/dist/app/use-cases/uninstall.js.map +1 -1
- package/dist/app/use-cases/upgrade-projects.d.ts +30 -0
- package/dist/app/use-cases/upgrade-projects.d.ts.map +1 -1
- package/dist/app/use-cases/upgrade-projects.js +119 -4
- package/dist/app/use-cases/upgrade-projects.js.map +1 -1
- package/dist/app/use-cases/verify-against-map.d.ts +5 -1
- package/dist/app/use-cases/verify-against-map.d.ts.map +1 -1
- package/dist/app/use-cases/verify-against-map.js +34 -6
- package/dist/app/use-cases/verify-against-map.js.map +1 -1
- package/dist/domain/line-diff.d.ts +36 -0
- package/dist/domain/line-diff.d.ts.map +1 -0
- package/dist/domain/line-diff.js +175 -0
- package/dist/domain/line-diff.js.map +1 -0
- package/dist/domain/protect-key.d.ts +21 -0
- package/dist/domain/protect-key.d.ts.map +1 -0
- package/dist/domain/protect-key.js +112 -0
- package/dist/domain/protect-key.js.map +1 -0
- package/dist/ports/base-set-renderer.port.d.ts +51 -3
- package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
- package/dist/ports/platform-adapter.port.d.ts +8 -2
- package/dist/ports/platform-adapter.port.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/AGENTS.md +6 -3
- package/update-map.json +2 -2
|
@@ -6,10 +6,18 @@ import { basename, join } from 'path';
|
|
|
6
6
|
import { parseJsonc } from './jsonc.js';
|
|
7
7
|
import { writeFileAtomic } from '../fs/markdown-memory-store.js';
|
|
8
8
|
import { UserFacingError } from '../../domain/errors.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export
|
|
9
|
+
import { parseStamp } from '../render/stamp.js';
|
|
10
|
+
import yaml from 'js-yaml';
|
|
11
|
+
import { DEFAULT_AGENT, DEFAULT_AGENT_KEY, MCP_KEY, MCP_ROOT, MCP_SERVERS, SUBAGENT_DEPTH, SUBAGENT_DEPTH_KEY, WOLF_MCP_COMMAND, deletePath, getPath, getRecordAt, isWolfMcpEntry, legacyPathOf, blockedSegment, mcpEntryNative, pathWritable, readWolfMcp, setPath, } from './opencode-config-keys.js';
|
|
12
|
+
export { DEFAULT_AGENT, SUBAGENT_DEPTH };
|
|
13
|
+
/** Каноническая команда wolf: removeWolf/configIssues не получают cmd, ownership проверяем ею. */
|
|
14
|
+
const WOLF_CMD = WOLF_MCP_COMMAND;
|
|
15
|
+
/** Значение глубины в действующем месте — наше или совместимое (>= SUBAGENT_DEPTH). */
|
|
16
|
+
function depthIsOurs(value) {
|
|
17
|
+
return typeof value === 'number' && value >= SUBAGENT_DEPTH;
|
|
18
|
+
}
|
|
19
|
+
const dotted = (key) => key.writePath.join('.');
|
|
20
|
+
const leaf = (key) => key.writePath[key.writePath.length - 1];
|
|
13
21
|
const execFileAsync = promisify(execFile);
|
|
14
22
|
/** Минимальная поддержанная v1 (порог диапазона). */
|
|
15
23
|
const V1_MIN_MINOR = 18;
|
|
@@ -17,6 +25,9 @@ const V1_MIN_PATCH = 29;
|
|
|
17
25
|
/**
|
|
18
26
|
* Чистый парсер `opencode --version`. Эмпирика форматов: v1 печатает `1.18.35`,
|
|
19
27
|
* v2 — `opencode v2.0.24`; regex вытаскивает M.m.p из обоих.
|
|
28
|
+
*
|
|
29
|
+
* Нативная форма `mcp.servers.<name>` принимается opencode >= 1.18.29 (v2-compat hoist),
|
|
30
|
+
* а порог v1 в коде — ровно 1.18.29: ветвление по версии для выбора формы не нужно.
|
|
20
31
|
*/
|
|
21
32
|
export function parseOpencodeVersion(raw) {
|
|
22
33
|
const trimmed = raw.trim();
|
|
@@ -79,41 +90,103 @@ export class OpencodeAdapter {
|
|
|
79
90
|
async writeConfig(projectRoot, cmd) {
|
|
80
91
|
const file = this.configFile(projectRoot);
|
|
81
92
|
const cfg = (await this.readConfig(projectRoot)) ?? {};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
const
|
|
88
|
-
const
|
|
93
|
+
// 6.3: пишем нативную форму mcp.servers.wolf, легаси mcp.wolf снимаем только если он наш
|
|
94
|
+
const desired = mcpEntryNative(cmd);
|
|
95
|
+
const mcpWritable = pathWritable(cfg, MCP_KEY.writePath);
|
|
96
|
+
const nativeEntry = getPath(cfg, MCP_KEY.writePath);
|
|
97
|
+
const mcpOk = mcpWritable && JSON.stringify(nativeEntry) === JSON.stringify(desired);
|
|
98
|
+
const legacyMcpPath = legacyPathOf(MCP_KEY);
|
|
99
|
+
const legacyMcp = getRecordAt(cfg, legacyMcpPath);
|
|
100
|
+
const legacyMcpOurs = legacyMcp !== undefined && isWolfMcpEntry(legacyMcp, cmd);
|
|
89
101
|
const reasons = [];
|
|
102
|
+
const mcpBlocked = blockedSegment(cfg, MCP_KEY.writePath);
|
|
103
|
+
if (mcpBlocked !== undefined) {
|
|
104
|
+
reasons.push(`${mcpBlocked} is not an object; ${MCP_KEY.label} is not written — fix the conflicting key manually`);
|
|
105
|
+
}
|
|
106
|
+
// §6.1: default_agent и experimental.subagent_depth мерджатся рядом с mcp.servers.wolf
|
|
107
|
+
const da = getPath(cfg, DEFAULT_AGENT_KEY.writePath);
|
|
90
108
|
if (da !== undefined && da !== DEFAULT_AGENT) {
|
|
91
|
-
reasons.push(
|
|
109
|
+
reasons.push(`${DEFAULT_AGENT_KEY.label}=${da} is taken; ${DEFAULT_AGENT} not assigned`);
|
|
110
|
+
}
|
|
111
|
+
if (legacyMcp !== undefined) {
|
|
112
|
+
if (legacyMcpOurs) {
|
|
113
|
+
reasons.push(`removed deprecated top-level ${legacyMcpPath.join('.')} (migrated to ${MCP_KEY.label})`);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
reasons.push(`top-level ${legacyMcpPath.join('.')} is deprecated and foreign (command differs); ${MCP_KEY.label} is used`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const migrateLegacyMcp = legacyMcpOurs;
|
|
120
|
+
const replaced = nativeEntry !== undefined && !mcpOk;
|
|
121
|
+
if (replaced)
|
|
122
|
+
reasons.push(`replaced non-canonical ${MCP_KEY.label} entry with the canonical Wolf entry`);
|
|
123
|
+
// opencode v2: действует только experimental.subagent_depth. Верхнеуровневый ключ —
|
|
124
|
+
// deprecated: наше точное значение мигрируем, чужое не трогаем и сообщаем.
|
|
125
|
+
const depthPath = SUBAGENT_DEPTH_KEY.writePath;
|
|
126
|
+
const depthLeaf = leaf(SUBAGENT_DEPTH_KEY);
|
|
127
|
+
const depthLabel = dotted(SUBAGENT_DEPTH_KEY);
|
|
128
|
+
const legacyDepthPath = legacyPathOf(SUBAGENT_DEPTH_KEY);
|
|
129
|
+
const experimental = getRecordAt(cfg, depthPath.slice(0, -1));
|
|
130
|
+
const expSd = experimental?.[depthLeaf];
|
|
131
|
+
const legacySd = getPath(cfg, legacyDepthPath);
|
|
132
|
+
const depthOk = depthIsOurs(expSd);
|
|
133
|
+
const legacyOurs = legacySd === SUBAGENT_DEPTH;
|
|
134
|
+
let setDepth = false;
|
|
135
|
+
let dropLegacy = false;
|
|
136
|
+
const depthWritable = pathWritable(cfg, depthPath);
|
|
137
|
+
if (!depthWritable) {
|
|
138
|
+
reasons.push(`experimental is not an object; ${depthLeaf} is not written — set ${depthLabel}: ${SUBAGENT_DEPTH} manually`);
|
|
139
|
+
}
|
|
140
|
+
else if (depthOk) {
|
|
141
|
+
if (legacyOurs) {
|
|
142
|
+
dropLegacy = true; // оба ключа наши: легаси — только шум, убираем
|
|
143
|
+
reasons.push(`removed deprecated top-level ${depthLeaf}=${SUBAGENT_DEPTH} (ignored by opencode v2)`);
|
|
144
|
+
}
|
|
145
|
+
else if (legacySd !== undefined) {
|
|
146
|
+
reasons.push(`top-level ${depthLeaf}=${legacySd} is deprecated and ignored by opencode v2; ${depthLabel} is used`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else if (expSd !== undefined) {
|
|
150
|
+
reasons.push(`${depthLabel}=${expSd} is taken; the three-level scheme will not work, set >=2`);
|
|
92
151
|
}
|
|
93
|
-
if (
|
|
94
|
-
|
|
152
|
+
else if (legacyOurs) {
|
|
153
|
+
setDepth = true;
|
|
154
|
+
dropLegacy = true;
|
|
155
|
+
reasons.push(`migrated ${depthLeaf} to ${depthLabel}`);
|
|
156
|
+
}
|
|
157
|
+
else if (legacySd !== undefined) {
|
|
158
|
+
reasons.push(`top-level ${depthLeaf}=${legacySd} is taken; the key is deprecated and ignored by opencode v2 — set ${depthLabel} >=${SUBAGENT_DEPTH}`);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
setDepth = true;
|
|
95
162
|
}
|
|
96
163
|
const reason = reasons.length > 0 ? reasons.join('; ') : undefined;
|
|
97
164
|
// F6 (спека 2.1.0 §2.4): фактические wolf-ключи после ensured — только наши
|
|
98
|
-
// (mcp.wolf
|
|
165
|
+
// (mcp.servers.wolf каноничен; default_agent/subagent_depth — если ключ наш, не занят чужим значением)
|
|
99
166
|
const ours = () => {
|
|
100
|
-
const keys = [
|
|
101
|
-
if (cfg.
|
|
102
|
-
keys.push(
|
|
103
|
-
|
|
104
|
-
|
|
167
|
+
const keys = mcpWritable ? [MCP_KEY.label] : [];
|
|
168
|
+
if (getPath(cfg, DEFAULT_AGENT_KEY.writePath) === DEFAULT_AGENT)
|
|
169
|
+
keys.push(`${DEFAULT_AGENT_KEY.label}=${DEFAULT_AGENT}`);
|
|
170
|
+
const sd = getRecordAt(cfg, depthPath.slice(0, -1))?.[depthLeaf];
|
|
171
|
+
if (depthIsOurs(sd))
|
|
172
|
+
keys.push(`${depthLeaf}=${sd}`);
|
|
105
173
|
return keys;
|
|
106
174
|
};
|
|
107
|
-
// unchanged — по ВСЕМ ключам: корректный mcp.wolf не маскирует отсутствие default_agent/subagent_depth
|
|
108
|
-
|
|
175
|
+
// unchanged — по ВСЕМ ключам: корректный mcp.servers.wolf не маскирует отсутствие default_agent/subagent_depth;
|
|
176
|
+
// занятое чужим значением место depth тоже settled (не перезаписываем — только reason);
|
|
177
|
+
// наш легаси mcp.wolf — не settled: его надо снять записью.
|
|
178
|
+
if ((mcpOk || !mcpWritable) && da !== undefined && !setDepth && !dropLegacy && !migrateLegacyMcp)
|
|
109
179
|
return { action: 'unchanged', reason, configFile: basename(file), keys: ours() };
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
180
|
+
if (mcpWritable)
|
|
181
|
+
setPath(cfg, MCP_KEY.writePath, desired);
|
|
182
|
+
if (migrateLegacyMcp)
|
|
183
|
+
deletePath(cfg, legacyMcpPath);
|
|
113
184
|
if (da === undefined)
|
|
114
|
-
cfg.
|
|
115
|
-
if (
|
|
116
|
-
cfg
|
|
185
|
+
setPath(cfg, DEFAULT_AGENT_KEY.writePath, DEFAULT_AGENT); // конфликтный ключ не трогаем
|
|
186
|
+
if (setDepth)
|
|
187
|
+
setPath(cfg, depthPath, SUBAGENT_DEPTH);
|
|
188
|
+
if (dropLegacy)
|
|
189
|
+
deletePath(cfg, legacyDepthPath);
|
|
117
190
|
await writeFileAtomic(file, JSON.stringify(cfg, null, 2) + '\n');
|
|
118
191
|
return { action: replaced ? 'replaced' : 'written', reason, configFile: basename(file), keys: ours() };
|
|
119
192
|
}
|
|
@@ -122,20 +195,28 @@ export class OpencodeAdapter {
|
|
|
122
195
|
const cfg = await this.readConfig(projectRoot);
|
|
123
196
|
if (cfg === null)
|
|
124
197
|
return false;
|
|
125
|
-
const
|
|
126
|
-
|
|
198
|
+
const legacyMcpPath = legacyPathOf(MCP_KEY);
|
|
199
|
+
const nativeEntry = getPath(cfg, MCP_KEY.writePath);
|
|
200
|
+
const legacyEntry = getPath(cfg, legacyMcpPath);
|
|
201
|
+
let removed = false;
|
|
202
|
+
if (nativeEntry !== undefined && isWolfMcpEntry(nativeEntry, WOLF_CMD)) {
|
|
203
|
+
deletePath(cfg, MCP_KEY.writePath);
|
|
204
|
+
removed = true;
|
|
205
|
+
}
|
|
206
|
+
if (legacyEntry !== undefined && isWolfMcpEntry(legacyEntry, WOLF_CMD)) {
|
|
207
|
+
deletePath(cfg, legacyMcpPath);
|
|
208
|
+
removed = true;
|
|
209
|
+
}
|
|
210
|
+
if (!removed)
|
|
127
211
|
return false;
|
|
128
|
-
delete mcp.wolf;
|
|
129
|
-
if (Object.keys(mcp).length === 0)
|
|
130
|
-
delete cfg.mcp;
|
|
131
|
-
else
|
|
132
|
-
cfg.mcp = mcp;
|
|
133
212
|
await writeFileAtomic(file, JSON.stringify(cfg, null, 2) + '\n');
|
|
134
213
|
return true;
|
|
135
214
|
}
|
|
136
215
|
/**
|
|
137
216
|
* 2.16.2 (uninstall, F-07): только wolf-ключи с точным нашим значением.
|
|
138
217
|
* Пользовательские default_agent/subagent_depth (не наши точные значения) не трогаем.
|
|
218
|
+
* Глубина: `experimental.subagent_depth === 2` (действующий путь) + легаси верхнеуровневый.
|
|
219
|
+
* 6.3: удаляем обе формы MCP (нативную и легаси) — только если запись наша.
|
|
139
220
|
*/
|
|
140
221
|
async removeWolfKeys(projectRoot) {
|
|
141
222
|
const file = this.configFile(projectRoot);
|
|
@@ -143,23 +224,36 @@ export class OpencodeAdapter {
|
|
|
143
224
|
if (cfg === null)
|
|
144
225
|
return { action: 'skipped', reason: `no ${basename(file)}`, configFile: basename(file) };
|
|
145
226
|
const removed = [];
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
removed.push(`default_agent=${DEFAULT_AGENT}`);
|
|
158
|
-
}
|
|
159
|
-
if (cfg.subagent_depth === SUBAGENT_DEPTH) {
|
|
160
|
-
delete cfg.subagent_depth;
|
|
161
|
-
removed.push(`subagent_depth=${SUBAGENT_DEPTH}`);
|
|
227
|
+
const legacyMcpPath = legacyPathOf(MCP_KEY);
|
|
228
|
+
const nativeEntry = getPath(cfg, MCP_KEY.writePath);
|
|
229
|
+
const legacyEntry = getPath(cfg, legacyMcpPath);
|
|
230
|
+
if (nativeEntry !== undefined && isWolfMcpEntry(nativeEntry, WOLF_CMD)) {
|
|
231
|
+
deletePath(cfg, MCP_KEY.writePath);
|
|
232
|
+
removed.push(MCP_KEY.label);
|
|
233
|
+
}
|
|
234
|
+
if (legacyEntry !== undefined && isWolfMcpEntry(legacyEntry, WOLF_CMD)) {
|
|
235
|
+
deletePath(cfg, legacyMcpPath);
|
|
236
|
+
if (!removed.includes(MCP_KEY.label))
|
|
237
|
+
removed.push(MCP_KEY.label);
|
|
162
238
|
}
|
|
239
|
+
if (getPath(cfg, DEFAULT_AGENT_KEY.writePath) === DEFAULT_AGENT) {
|
|
240
|
+
deletePath(cfg, DEFAULT_AGENT_KEY.writePath);
|
|
241
|
+
removed.push(`${DEFAULT_AGENT_KEY.label}=${DEFAULT_AGENT}`);
|
|
242
|
+
}
|
|
243
|
+
const depthLeaf = leaf(SUBAGENT_DEPTH_KEY);
|
|
244
|
+
const legacyDepthPath = legacyPathOf(SUBAGENT_DEPTH_KEY);
|
|
245
|
+
let depthRemoved = false;
|
|
246
|
+
if (getPath(cfg, SUBAGENT_DEPTH_KEY.writePath) === SUBAGENT_DEPTH) {
|
|
247
|
+
deletePath(cfg, SUBAGENT_DEPTH_KEY.writePath);
|
|
248
|
+
depthRemoved = true;
|
|
249
|
+
}
|
|
250
|
+
if (getPath(cfg, legacyDepthPath) === SUBAGENT_DEPTH) {
|
|
251
|
+
// легаси верхнеуровневый ключ (deprecated в opencode v2) — тоже наш
|
|
252
|
+
deletePath(cfg, legacyDepthPath);
|
|
253
|
+
depthRemoved = true;
|
|
254
|
+
}
|
|
255
|
+
if (depthRemoved)
|
|
256
|
+
removed.push(`${depthLeaf}=${SUBAGENT_DEPTH}`);
|
|
163
257
|
if (removed.length === 0) {
|
|
164
258
|
return {
|
|
165
259
|
action: 'unchanged',
|
|
@@ -171,11 +265,135 @@ export class OpencodeAdapter {
|
|
|
171
265
|
await writeFileAtomic(file, JSON.stringify(cfg, null, 2) + '\n');
|
|
172
266
|
return { action: 'removed', configFile: basename(file), keys: removed };
|
|
173
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* 6.1/6.3/6.4: doctor-проверки, которые знает только opencode-адаптер —
|
|
270
|
+
* все ключи, которые Wolf пишет, + смешанный frontmatter managed-агентов.
|
|
271
|
+
* Строки идут в общий `issues` проекта и маскируются doctor'ом как обычно.
|
|
272
|
+
*/
|
|
273
|
+
async configIssues(projectRoot) {
|
|
274
|
+
let cfg;
|
|
275
|
+
try {
|
|
276
|
+
cfg = await this.readConfig(projectRoot);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
// «missing» советовал бы init, который честно скипает такой конфиг; различаем
|
|
280
|
+
// битый JSONC и валидный JSON не-объект (массив/строка) — советы разные по смыслу.
|
|
281
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
282
|
+
const kind = message.includes('not valid JSONC') ? 'not valid JSONC' : 'not a JSON object';
|
|
283
|
+
return [`${this.id}: config is ${kind} — fix it or remove the file, then run wolf init`];
|
|
284
|
+
}
|
|
285
|
+
if (cfg === null)
|
|
286
|
+
return [`${this.id}: wolf entry missing — run wolf init`];
|
|
287
|
+
return [
|
|
288
|
+
...mcpIssues(cfg),
|
|
289
|
+
...defaultAgentIssues(cfg),
|
|
290
|
+
...depthIssues(cfg),
|
|
291
|
+
...(await mixedFrontmatterIssues(projectRoot, this.id)),
|
|
292
|
+
];
|
|
293
|
+
}
|
|
174
294
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
295
|
+
/** 6.3: wolf-сервер отсутствует в обеих формах / легаси-форма подлежит миграции. */
|
|
296
|
+
function mcpIssues(cfg) {
|
|
297
|
+
// запись невозможна: init не вылечит такой конфиг — не советуем его
|
|
298
|
+
const blocked = blockedSegment(cfg, MCP_KEY.writePath);
|
|
299
|
+
if (blocked !== undefined)
|
|
300
|
+
return [`opencode: ${blocked} is not an object — ${MCP_KEY.label} is not written; fix it manually`];
|
|
301
|
+
const wolf = readWolfMcp(cfg, WOLF_CMD);
|
|
302
|
+
if (wolf.form === 'none')
|
|
303
|
+
return [`opencode: wolf entry missing — run wolf init`];
|
|
304
|
+
if (wolf.legacyEntry === undefined)
|
|
305
|
+
return [];
|
|
306
|
+
const legacyPath = legacyPathOf(MCP_KEY);
|
|
307
|
+
return [
|
|
308
|
+
wolf.legacyOurs
|
|
309
|
+
? `opencode: wolf entry is in the deprecated top-level ${legacyPath.join('.')} form — run wolf init to migrate it to ${MCP_KEY.label}`
|
|
310
|
+
: `opencode: top-level ${legacyPath.join('.')} is foreign and deprecated (opencode v2 reads ${MCP_ROOT}.${MCP_SERVERS}) — wolf leaves it untouched`,
|
|
311
|
+
];
|
|
312
|
+
}
|
|
313
|
+
/** 6.1: default_agent === mr-wolf, иначе L0 стартует не тем агентом. */
|
|
314
|
+
function defaultAgentIssues(cfg) {
|
|
315
|
+
const da = getPath(cfg, DEFAULT_AGENT_KEY.writePath);
|
|
316
|
+
if (da === undefined)
|
|
317
|
+
return [
|
|
318
|
+
`opencode: ${DEFAULT_AGENT_KEY.label} is not set — ${DEFAULT_AGENT} is not the default agent; run wolf init`,
|
|
319
|
+
];
|
|
320
|
+
if (da !== DEFAULT_AGENT)
|
|
321
|
+
return [
|
|
322
|
+
`opencode: ${DEFAULT_AGENT_KEY.label}=${String(da)} is taken; ${DEFAULT_AGENT} is not assigned (foreign value is never overwritten)`,
|
|
323
|
+
];
|
|
324
|
+
return [];
|
|
325
|
+
}
|
|
326
|
+
/** 6.1: experimental.subagent_depth >= 2 + deprecated верхнеуровневый ключ. */
|
|
327
|
+
function depthIssues(cfg) {
|
|
328
|
+
const out = [];
|
|
329
|
+
const depthPath = SUBAGENT_DEPTH_KEY.writePath;
|
|
330
|
+
const parentPath = depthPath.slice(0, -1);
|
|
331
|
+
const depthLabel = depthPath.join('.');
|
|
332
|
+
const depthLeaf = depthPath[depthPath.length - 1];
|
|
333
|
+
const parentRaw = getPath(cfg, parentPath);
|
|
334
|
+
const experimental = getRecordAt(cfg, parentPath);
|
|
335
|
+
const depth = experimental?.[depthLeaf];
|
|
336
|
+
if (parentRaw !== undefined && experimental === undefined) {
|
|
337
|
+
out.push(`opencode: ${parentPath.join('.')} is not an object — ${depthLabel} is not set; set it to ${SUBAGENT_DEPTH} manually`);
|
|
338
|
+
}
|
|
339
|
+
else if (depth === undefined) {
|
|
340
|
+
out.push(`opencode: ${depthLabel} is not set — the three-level scheme needs >=${SUBAGENT_DEPTH}; run wolf init`);
|
|
341
|
+
}
|
|
342
|
+
else if (typeof depth !== 'number' || depth < SUBAGENT_DEPTH) {
|
|
343
|
+
out.push(`opencode: ${depthLabel}=${String(depth)} — the three-level scheme needs >=${SUBAGENT_DEPTH}; foreign value is never overwritten`);
|
|
344
|
+
}
|
|
345
|
+
const legacyPath = legacyPathOf(SUBAGENT_DEPTH_KEY);
|
|
346
|
+
const legacy = getPath(cfg, legacyPath);
|
|
347
|
+
if (legacy !== undefined) {
|
|
348
|
+
out.push(legacy === SUBAGENT_DEPTH
|
|
349
|
+
? `opencode: top-level ${legacyPath.join('.')}=${SUBAGENT_DEPTH} is deprecated and ignored by opencode v2 — run wolf init to migrate it to ${depthLabel}`
|
|
350
|
+
: `opencode: top-level ${legacyPath.join('.')}=${String(legacy)} is deprecated and ignored by opencode v2 — foreign value, set ${depthLabel} >=${SUBAGENT_DEPTH} manually`);
|
|
351
|
+
}
|
|
352
|
+
return out;
|
|
353
|
+
}
|
|
354
|
+
/** v2-поля агента: их появление включает чтение файла по схеме V2. */
|
|
355
|
+
const V2_AGENT_FIELDS = ['permissions', 'request', 'system', 'disabled'];
|
|
356
|
+
/** v1-поля агента: в V2-режиме молча игнорируются (6.4). */
|
|
357
|
+
const V1_AGENT_FIELDS = ['permission', 'temperature', 'mode'];
|
|
358
|
+
/**
|
|
359
|
+
* 6.4: managed-агент (есть штамп Wolf) со смешанным frontmatter читается как V2,
|
|
360
|
+
* и v1-правила (`permission.task: deny`) исчезают — предупреждаем, не правим файл.
|
|
361
|
+
*/
|
|
362
|
+
async function mixedFrontmatterIssues(projectRoot, platformId) {
|
|
363
|
+
const dir = join(projectRoot, '.opencode', 'agents');
|
|
364
|
+
const names = await fs.readdir(dir).catch(() => []);
|
|
365
|
+
const out = [];
|
|
366
|
+
for (const name of names) {
|
|
367
|
+
if (!name.endsWith('.md'))
|
|
368
|
+
continue;
|
|
369
|
+
const raw = await fs.readFile(join(dir, name), 'utf-8').catch(() => null);
|
|
370
|
+
if (raw === null || parseStamp(raw) === null)
|
|
371
|
+
continue; // чужой файл — не наш scope
|
|
372
|
+
const front = frontmatterOf(raw);
|
|
373
|
+
if (front === undefined)
|
|
374
|
+
continue;
|
|
375
|
+
const v2 = V2_AGENT_FIELDS.filter((field) => front[field] !== undefined);
|
|
376
|
+
const v1 = V1_AGENT_FIELDS.filter((field) => front[field] !== undefined);
|
|
377
|
+
if (v2.length === 0 || v1.length === 0)
|
|
378
|
+
continue;
|
|
379
|
+
out.push(`${platformId}: ${join('.opencode', 'agents', name)} mixes v2 (${v2.join(', ')}) and v1 (${v1.join(', ')}) frontmatter — the file is read as V2 and v1 fields are ignored; do not mix formats in one file`);
|
|
380
|
+
}
|
|
381
|
+
return out;
|
|
382
|
+
}
|
|
383
|
+
/** YAML-frontmatter файла агента; нет блока/битый YAML — undefined. */
|
|
384
|
+
function frontmatterOf(raw) {
|
|
385
|
+
const match = /^---\r?\n([\s\S]*?)\r?\n---/.exec(raw);
|
|
386
|
+
if (match === null)
|
|
387
|
+
return undefined;
|
|
388
|
+
try {
|
|
389
|
+
const parsed = yaml.load(match[1]);
|
|
390
|
+
return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
391
|
+
? parsed
|
|
392
|
+
: undefined;
|
|
393
|
+
}
|
|
394
|
+
catch {
|
|
395
|
+
return undefined;
|
|
396
|
+
}
|
|
179
397
|
}
|
|
180
398
|
function asConfig(value, file) {
|
|
181
399
|
const cfg = asRecord(value);
|
|
@@ -184,4 +402,9 @@ function asConfig(value, file) {
|
|
|
184
402
|
}
|
|
185
403
|
return cfg;
|
|
186
404
|
}
|
|
405
|
+
function asRecord(value) {
|
|
406
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
407
|
+
? value
|
|
408
|
+
: undefined;
|
|
409
|
+
}
|
|
187
410
|
//# sourceMappingURL=opencode-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../../../src/adapters/platforms/opencode-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,qDAAqD;AACrD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,KAAK,IAAI,YAAY,CAAC,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACjD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,8FAA8F;AAC9F,4DAA4D;AAC5D,MAAM,OAAO,eAAe;IACjB,EAAE,GAAG,UAAU,CAAC;IAEzB,MAAM,CAAC,WAAmB;QACxB,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC/C,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IAED,+FAA+F;IACvF,UAAU,CAAC,WAAmB;QACpC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YACvG,OAAO,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mFAAmF;YACnF,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,GAAe;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,uEAAuE;QACvE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnE,kEAAkE;QAClE,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC;QAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,IAAI,cAAc,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnE,4EAA4E;QAC5E,mHAAmH;QACnH,MAAM,IAAI,GAAG,GAAa,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,aAAa,KAAK,aAAa;gBAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,aAAa,EAAE,CAAC,CAAC;YACrF,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,GAAG,CAAC,cAAc,IAAI,cAAc;gBAChF,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,uGAAuG;QACvG,IAAI,KAAK,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAC/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QAEnF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC;QAClD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;QACd,IAAI,EAAE,KAAK,SAAS;YAAE,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,8BAA8B;QACvF,IAAI,EAAE,KAAK,SAAS;YAAE,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,8BAA8B;QACzF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,GAAG,CAAC,IAAI,CAAC;QAChB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC;;YAC7C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;QACnB,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3G,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,GAAG,CAAC,IAAI,CAAC;YAChB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC;;gBAC7C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YACxC,OAAO,GAAG,CAAC,aAAa,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,iBAAiB,aAAa,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC1C,OAAO,GAAG,CAAC,cAAc,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,oCAAoC;gBAC5C,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1E,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,IAAY;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,8CAA8C,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode-adapter.js","sourceRoot":"","sources":["../../../src/adapters/platforms/opencode-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** Контейнер MCP: плоская v1-мапа `mcp.<name>` и v2 `mcp.servers.<name>`. */
|
|
2
|
+
export declare const MCP_ROOT = "mcp";
|
|
3
|
+
/** v2-контейнер серверов. */
|
|
4
|
+
export declare const MCP_SERVERS = "servers";
|
|
5
|
+
/** Имя wolf-сервера в MCP-конфиге. */
|
|
6
|
+
export declare const MCP_SERVER_NAME = "wolf";
|
|
7
|
+
/** Дефолтный агент Wolf в opencode (§6.1). */
|
|
8
|
+
export declare const DEFAULT_AGENT = "mr-wolf";
|
|
9
|
+
/** Глубина субагентов: executor-lead спавнит worker-* (трёхуровневая схема). */
|
|
10
|
+
export declare const SUBAGENT_DEPTH = 2;
|
|
11
|
+
export interface ConfigKeySpec {
|
|
12
|
+
id: 'mcp' | 'default_agent' | 'subagent_depth';
|
|
13
|
+
/** путь, которым Wolf пишет (канонический путь v2) */
|
|
14
|
+
writePath: readonly string[];
|
|
15
|
+
/** канонический путь v2 (== writePath; инвариант тестом) */
|
|
16
|
+
canonicalPath: readonly string[];
|
|
17
|
+
/** легаси/устаревшие пути, которые читаем и снимаем, если значение наше */
|
|
18
|
+
legacyPaths: readonly (readonly string[])[];
|
|
19
|
+
/** 'both' — читаем обе формы, 'native' — только v2 */
|
|
20
|
+
forms: 'both' | 'native';
|
|
21
|
+
/** метка ключа для логов/keys: 'mcp.servers.wolf' | 'default_agent' | 'subagent_depth' */
|
|
22
|
+
label: string;
|
|
23
|
+
}
|
|
24
|
+
/** MCP-сервер wolf: пишем `mcp.servers.wolf`, читаем/снимаем и `mcp.wolf`. */
|
|
25
|
+
export declare const MCP_KEY: ConfigKeySpec;
|
|
26
|
+
/** `default_agent` — форма одна в обеих ветках opencode. */
|
|
27
|
+
export declare const DEFAULT_AGENT_KEY: ConfigKeySpec;
|
|
28
|
+
/**
|
|
29
|
+
* `experimental.subagent_depth`: действует и в v1 >= 1.18.29 (compat-подъём), и в v2.
|
|
30
|
+
* Верхнеуровневый `subagent_depth` (legacy) читаем только чтобы снять своё значение.
|
|
31
|
+
*/
|
|
32
|
+
export declare const SUBAGENT_DEPTH_KEY: ConfigKeySpec;
|
|
33
|
+
export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
|
|
34
|
+
/** Легаси-путь для чтения/снятия (первый объявленный). */
|
|
35
|
+
export declare function legacyPathOf(key: ConfigKeySpec): readonly string[] | undefined;
|
|
36
|
+
export declare function getPath(obj: Record<string, unknown>, path: readonly string[]): unknown;
|
|
37
|
+
export declare function getRecordAt(obj: Record<string, unknown>, path: readonly string[]): Record<string, unknown> | undefined;
|
|
38
|
+
/** Пишет значение; отсутствующие промежуточные объекты создаёт, чужое не-объектное не перетирает. */
|
|
39
|
+
export declare function setPath(obj: Record<string, unknown>, path: readonly string[], value: unknown): void;
|
|
40
|
+
/** true если путь существовал; пустые родительские объекты (mcp.servers, mcp, experimental) удаляются. */
|
|
41
|
+
export declare function deletePath(obj: Record<string, unknown>, path: readonly string[]): boolean;
|
|
42
|
+
/** Каноническая команда wolf MCP: единственный источник для записи и ownership-проверок. */
|
|
43
|
+
export declare const WOLF_MCP_COMMAND: {
|
|
44
|
+
command: string;
|
|
45
|
+
args: string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Первый сегмент пути, занятый не-объектом (для сообщений): `mcp`, `mcp.servers`,
|
|
49
|
+
* `experimental`. undefined — путь записываем (промежуточные создаются).
|
|
50
|
+
*/
|
|
51
|
+
export declare function blockedSegment(obj: Record<string, unknown>, path: readonly string[]): string | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* true, если путь можно записать: каждый промежуточный сегмент либо отсутствует,
|
|
54
|
+
* либо объект. Занятый чужим не-объектом сегмент — конфликт, а не молчаливый no-op.
|
|
55
|
+
*/
|
|
56
|
+
export declare function pathWritable(obj: Record<string, unknown>, path: readonly string[]): boolean;
|
|
57
|
+
/** Нативная запись MCP: { type: 'local', command: [cmd.command, ...cmd.args], disabled: false }. Без codemode. */
|
|
58
|
+
export declare function mcpEntryNative(cmd: {
|
|
59
|
+
command: string;
|
|
60
|
+
args: string[];
|
|
61
|
+
}): Record<string, unknown>;
|
|
62
|
+
/** «Наше» значение: type local + command совпадает с канонической командой wolf (лишние поля допустимы). */
|
|
63
|
+
export declare function isWolfMcpEntry(value: unknown, cmd: {
|
|
64
|
+
command: string;
|
|
65
|
+
args: string[];
|
|
66
|
+
}): boolean;
|
|
67
|
+
/** Двухформенное чтение: нативная приоритетна; ownership считается по точной команде wolf. */
|
|
68
|
+
export declare function readWolfMcp(cfg: Record<string, unknown>, cmd: {
|
|
69
|
+
command: string;
|
|
70
|
+
args: string[];
|
|
71
|
+
}): {
|
|
72
|
+
form: 'native' | 'legacy' | 'both' | 'none';
|
|
73
|
+
entry?: Record<string, unknown>;
|
|
74
|
+
legacyEntry?: Record<string, unknown>;
|
|
75
|
+
ours: boolean;
|
|
76
|
+
legacyOurs: boolean;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=opencode-config-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-config-keys.d.ts","sourceRoot":"","sources":["../../../src/adapters/platforms/opencode-config-keys.ts"],"names":[],"mappings":"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"}
|