mister-wolf 2.20.0 → 2.21.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 +1 -1
- package/README.ru.md +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 +49 -7
- package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.js +540 -102
- package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
- package/dist/adapters/platforms/opencode-config-keys.d.ts +110 -0
- package/dist/adapters/platforms/opencode-config-keys.d.ts.map +1 -0
- package/dist/adapters/platforms/opencode-config-keys.js +214 -0
- package/dist/adapters/platforms/opencode-config-keys.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 +8 -3
- package/dist/app/use-cases/init-project.js.map +1 -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/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.js +1 -1
- package/dist/app/use-cases/uninstall.js.map +1 -1
- package/dist/ports/platform-adapter.port.d.ts +19 -4
- package/dist/ports/platform-adapter.port.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/update-map.json +3 -3
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ wolf bootstrap
|
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
- **Path A — memory:** `wolf init` connects the project minimally — the `.wolf/` skeleton and `AGENTS.md`; it writes no platform configs and no base set. What a clean run prints: `memory skeleton: ensured`, `base set: AGENTS.md created`, the init-report id.
|
|
54
|
-
- **Path B — OpenCode organization:** `wolf init --full --platform opencode` renders the full base set (6 agent frames, 19 skills, 3 commands, 2 plugins, seeded playbook faces) and writes `opencode.json` (`mcp.wolf`, `default_agent=mr-wolf`, `subagent_depth=2`). **Restart opencode** after it — the MCP server and the default agent connect at startup. Claude Code will ask you to approve the project-scope MCP server on first start — that is expected.
|
|
54
|
+
- **Path B — OpenCode organization:** `wolf init --full --platform opencode` renders the full base set (6 agent frames, 19 skills, 3 commands, 2 plugins, seeded playbook faces) and writes `opencode.json` (`mcp.servers.wolf`, `default_agent=mr-wolf`, `experimental.subagent_depth=2`). **Restart opencode** after it — the MCP server and the default agent connect at startup. Claude Code will ask you to approve the project-scope MCP server on first start — that is expected.
|
|
55
55
|
|
|
56
56
|
- **Try it without installing:** `npx mister-wolf init` — try-out mode: creates the `.wolf/` memory skeleton but never writes MCP configs or the base set. Like it? `npm install -g mister-wolf` and run `wolf init` again.
|
|
57
57
|
- **Updating:** `wolf upgrade` — one command updates everything: the npm phase (`npm install -g mister-wolf@latest`) is followed by the update pass over all registered projects (stamped base-set files and seeded faces; deletions only with confirmation). `--check` reports CLI + park freshness without installing; `--here` updates only the current project (no npm, no registry); `--yes` skips the confirmation and backs up whatever it overwrites. Dev/linked installs are refused honestly. `wolf sync` is deprecated → `wolf upgrade --here` (still available in 2.20.0).
|
package/README.ru.md
CHANGED
|
@@ -53,7 +53,7 @@ wolf bootstrap
|
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
- **Путь А — память:** `wolf init` подключает проект минимально — скелет `.wolf/` и `AGENTS.md`; платформенные конфиги и базовый сет он не пишет. Что печатает чистый запуск: `memory skeleton: ensured`, `base set: AGENTS.md created`, id init-отчёта.
|
|
56
|
-
- **Путь Б — организация OpenCode:** `wolf init --full --platform opencode` отрисовывает полный базовый набор (6 рамок агентов, 19 скиллов, 3 команды, 2 плагина, посев playbook-лиц) и пишет `opencode.json` (`mcp.wolf`, `default_agent=mr-wolf`, `subagent_depth=2`). После него **перезапусти opencode** — MCP-сервер и агент по умолчанию подключаются при старте. Claude Code при первом старте попросит approve project-scope MCP-сервер — это штатно.
|
|
56
|
+
- **Путь Б — организация OpenCode:** `wolf init --full --platform opencode` отрисовывает полный базовый набор (6 рамок агентов, 19 скиллов, 3 команды, 2 плагина, посев playbook-лиц) и пишет `opencode.json` (`mcp.servers.wolf`, `default_agent=mr-wolf`, `experimental.subagent_depth=2`). После него **перезапусти opencode** — MCP-сервер и агент по умолчанию подключаются при старте. Claude Code при первом старте попросит approve project-scope MCP-сервер — это штатно.
|
|
57
57
|
|
|
58
58
|
- **Попробовать без установки:** `npx mister-wolf init` — try-out-режим: создаёт скелет памяти `.wolf/`, но никогда не пишет ни MCP-конфиги, ни базовый сет. Понравилось — `npm install -g mister-wolf` и повтори `wolf init`.
|
|
59
59
|
- **Обновление:** `wolf upgrade` — одна команда обновляет всё: npm-фаза
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/platforms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/platforms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAKnF,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,EAAE,UAA6B,CAAC;AAElE,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAAiD,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { OpencodeAdapter } from './opencode-adapter.js';
|
|
2
2
|
import { ClaudeAdapter } from './claude-adapter.js';
|
|
3
|
+
import { WOLF_MCP_COMMAND } from './opencode-config-keys.js';
|
|
3
4
|
/** Канонический способ запуска MCP-сервера Wolf: глобальный бинарь, никогда npx (спека §4). */
|
|
4
|
-
export const CANONICAL_MCP_COMMAND =
|
|
5
|
+
export const CANONICAL_MCP_COMMAND = WOLF_MCP_COMMAND;
|
|
5
6
|
/** Все платформы v1. Новая платформа = адаптер в этот список, init не меняется. */
|
|
6
7
|
export const PLATFORM_ADAPTERS = [new OpencodeAdapter(), new ClaudeAdapter()];
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/platforms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/platforms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,qBAAqB,GAAe,gBAAgB,CAAC;AAElE,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAsB,CAAC,IAAI,eAAe,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { PlatformAdapter, McpCommand, PlatformConfig, PlatformWriteResult, PlatformVersionInfo } from '../../ports/platform-adapter.port.js';
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
/** Глубина субагентов: executor-lead спавнит worker-* (трёхуровневая схема). */
|
|
5
|
-
export declare const SUBAGENT_DEPTH = 2;
|
|
2
|
+
import { DEFAULT_AGENT, SUBAGENT_DEPTH } from './opencode-config-keys.js';
|
|
3
|
+
export { DEFAULT_AGENT, SUBAGENT_DEPTH };
|
|
6
4
|
/**
|
|
7
5
|
* Чистый парсер `opencode --version`. Эмпирика форматов: v1 печатает `1.18.35`,
|
|
8
6
|
* v2 — `opencode v2.0.24`; regex вытаскивает M.m.p из обоих.
|
|
7
|
+
*
|
|
8
|
+
* Нативная форма `mcp.servers.<name>` принимается opencode >= 1.18.29 (v2-compat hoist),
|
|
9
|
+
* а порог v1 в коде — ровно 1.18.29: ветвление по версии для выбора формы не нужно.
|
|
9
10
|
*/
|
|
10
11
|
export declare function parseOpencodeVersion(raw: string): PlatformVersionInfo;
|
|
11
12
|
export declare class OpencodeAdapter implements PlatformAdapter {
|
|
@@ -13,15 +14,56 @@ export declare class OpencodeAdapter implements PlatformAdapter {
|
|
|
13
14
|
detect(projectRoot: string): boolean;
|
|
14
15
|
/** `opencode --version`; бинарь недоступен/ошибка запуска → absent (не бросаем). */
|
|
15
16
|
detectVersion(projectRoot: string): Promise<PlatformVersionInfo>;
|
|
16
|
-
/**
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Файл локации: jsonc — только если json отсутствует (правило прежнее),
|
|
19
|
+
* иначе json. Если файла нет — возвращается дефолтный путь (цель записи).
|
|
20
|
+
*/
|
|
21
|
+
private locationFile;
|
|
22
|
+
/** Корневой конфиг — единственное место, куда wolf пишет свои ключи. */
|
|
23
|
+
private rootFile;
|
|
24
|
+
/**
|
|
25
|
+
* Поверхность конфига (6.7): обе локации + эффективный (слейдженный) вид.
|
|
26
|
+
* Битый/нечитаемый файл ИЗОЛИРУЕТСЯ: он попадает в `errors`, а остальные локации
|
|
27
|
+
* читаются как обычно (прежнее поведение «всё или ничего» чинило в обратную сторону).
|
|
28
|
+
*/
|
|
29
|
+
private loadSurface;
|
|
30
|
+
/** Битая/нечитаемая корневая локация (та, куда wolf пишет) — прежний контракт: ошибка наружу. */
|
|
31
|
+
private static rootError;
|
|
32
|
+
/**
|
|
33
|
+
* Эффективный конфиг обеих локаций; null — конфиг-файлов нет ни в одной локации.
|
|
34
|
+
* Битый корневой файл — UserFacingError (прежний контракт для корня);
|
|
35
|
+
* битый `.opencode` — не мешает: возвращаем вид читаемых файлов.
|
|
36
|
+
*/
|
|
18
37
|
readConfig(projectRoot: string): Promise<PlatformConfig | null>;
|
|
19
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Запись wolf-ключей (6.7): решения принимаются по эффективному виду обеих
|
|
40
|
+
* локаций, запись — только в корневой конфиг (в .opencode wolf не пишет).
|
|
41
|
+
*
|
|
42
|
+
* opts.createFile=false — режим repair-only: файл конфига не создаётся, если его нет
|
|
43
|
+
* (минимальный init чинит существующий конфиг и никогда не создаёт платформенный).
|
|
44
|
+
*/
|
|
45
|
+
writeConfig(projectRoot: string, cmd: McpCommand, opts?: {
|
|
46
|
+
createFile?: boolean;
|
|
47
|
+
}): Promise<PlatformWriteResult>;
|
|
48
|
+
/**
|
|
49
|
+
* 6.7: wolf-запись MCP (нативная и легаси, только если она наша) удаляется
|
|
50
|
+
* из ВСЕХ локаций, где она реально объявлена.
|
|
51
|
+
*/
|
|
20
52
|
removeWolf(projectRoot: string): Promise<boolean>;
|
|
21
53
|
/**
|
|
22
54
|
* 2.16.2 (uninstall, F-07): только wolf-ключи с точным нашим значением.
|
|
23
55
|
* Пользовательские default_agent/subagent_depth (не наши точные значения) не трогаем.
|
|
56
|
+
* Глубина: `experimental.subagent_depth === 2` (действующий путь) + легаси верхнеуровневый.
|
|
57
|
+
* 6.3: удаляем обе формы MCP (нативную и легаси) — только если запись наша.
|
|
58
|
+
* 6.7: снимаем ключи из ВСЕХ локаций, где они объявлены; битый файл — в причину.
|
|
24
59
|
*/
|
|
25
60
|
removeWolfKeys(projectRoot: string): Promise<PlatformWriteResult>;
|
|
61
|
+
/**
|
|
62
|
+
* 6.1/6.3/6.4: doctor-проверки, которые знает только opencode-адаптер —
|
|
63
|
+
* все ключи, которые Wolf пишет, + смешанный frontmatter managed-агентов.
|
|
64
|
+
* Строки идут в общий `issues` проекта и маскируются doctor'ом как обычно.
|
|
65
|
+
* 6.7: проверки — по эффективному виду обеих локаций; битый файл — свой issue с именем.
|
|
66
|
+
*/
|
|
67
|
+
configIssues(projectRoot: string): Promise<string[]>;
|
|
26
68
|
}
|
|
27
69
|
//# sourceMappingURL=opencode-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/platforms/opencode-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/platforms/opencode-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EAKL,aAAa,EAKb,cAAc,EAiBf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAmDzC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAUrE;AAID,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,EAAE,cAAc;IAEzB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAQpC,oFAAoF;IAC9E,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAStE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAOpB,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAIhB;;;;OAIG;YACW,WAAW;IAkDzB,iGAAiG;IACjG,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB;;;;OAIG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQrE;;;;;;OAMG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IA2L/B;;;OAGG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBvD;;;;;;OAMG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2EvE;;;;;OAKG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkB3D"}
|