mister-wolf 2.10.0 → 2.12.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.
Files changed (96) hide show
  1. package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
  2. package/dist/adapters/cli/cli-entry.js +337 -94
  3. package/dist/adapters/cli/cli-entry.js.map +1 -1
  4. package/dist/adapters/cli/commands/analytics.d.ts +1 -1
  5. package/dist/adapters/cli/commands/analytics.d.ts.map +1 -1
  6. package/dist/adapters/cli/commands/analytics.js +30 -1
  7. package/dist/adapters/cli/commands/analytics.js.map +1 -1
  8. package/dist/adapters/cli/commands/memory-brief.d.ts.map +1 -1
  9. package/dist/adapters/cli/commands/memory-brief.js +15 -2
  10. package/dist/adapters/cli/commands/memory-brief.js.map +1 -1
  11. package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
  12. package/dist/adapters/cli/commands/memory-call.js +54 -3
  13. package/dist/adapters/cli/commands/memory-call.js.map +1 -1
  14. package/dist/adapters/cli/commands/memory-recap.d.ts.map +1 -1
  15. package/dist/adapters/cli/commands/memory-recap.js +16 -1
  16. package/dist/adapters/cli/commands/memory-recap.js.map +1 -1
  17. package/dist/adapters/fs/config-file.d.ts +8 -0
  18. package/dist/adapters/fs/config-file.d.ts.map +1 -1
  19. package/dist/adapters/fs/config-file.js +57 -2
  20. package/dist/adapters/fs/config-file.js.map +1 -1
  21. package/dist/adapters/fs/heuristic-project-scanner.d.ts +10 -0
  22. package/dist/adapters/fs/heuristic-project-scanner.d.ts.map +1 -1
  23. package/dist/adapters/fs/heuristic-project-scanner.js +58 -1
  24. package/dist/adapters/fs/heuristic-project-scanner.js.map +1 -1
  25. package/dist/adapters/fs/markdown-memory-store.d.ts +2 -0
  26. package/dist/adapters/fs/markdown-memory-store.d.ts.map +1 -1
  27. package/dist/adapters/fs/markdown-memory-store.js +25 -1
  28. package/dist/adapters/fs/markdown-memory-store.js.map +1 -1
  29. package/dist/adapters/fs/scan-snapshot-cache.d.ts +23 -0
  30. package/dist/adapters/fs/scan-snapshot-cache.d.ts.map +1 -0
  31. package/dist/adapters/fs/scan-snapshot-cache.js +36 -0
  32. package/dist/adapters/fs/scan-snapshot-cache.js.map +1 -0
  33. package/dist/adapters/fs/session-delivery-registry.d.ts +31 -0
  34. package/dist/adapters/fs/session-delivery-registry.d.ts.map +1 -0
  35. package/dist/adapters/fs/session-delivery-registry.js +104 -0
  36. package/dist/adapters/fs/session-delivery-registry.js.map +1 -0
  37. package/dist/adapters/fs/session-metrics-log.d.ts +15 -3
  38. package/dist/adapters/fs/session-metrics-log.d.ts.map +1 -1
  39. package/dist/adapters/fs/session-metrics-log.js +150 -29
  40. package/dist/adapters/fs/session-metrics-log.js.map +1 -1
  41. package/dist/adapters/mcp/mcp-schemas.d.ts +10 -1
  42. package/dist/adapters/mcp/mcp-schemas.d.ts.map +1 -1
  43. package/dist/adapters/mcp/mcp-schemas.js +29 -0
  44. package/dist/adapters/mcp/mcp-schemas.js.map +1 -1
  45. package/dist/adapters/mcp/mcp-tools.d.ts.map +1 -1
  46. package/dist/adapters/mcp/mcp-tools.js +72 -19
  47. package/dist/adapters/mcp/mcp-tools.js.map +1 -1
  48. package/dist/adapters/render/opencode/opencode-renderer.d.ts +1 -0
  49. package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
  50. package/dist/adapters/render/opencode/opencode-renderer.js +47 -8
  51. package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
  52. package/dist/adapters/render/sync-state.d.ts +9 -0
  53. package/dist/adapters/render/sync-state.d.ts.map +1 -0
  54. package/dist/adapters/render/sync-state.js +32 -0
  55. package/dist/adapters/render/sync-state.js.map +1 -0
  56. package/dist/adapters/sqlite/sqlite-search-index.d.ts +6 -1
  57. package/dist/adapters/sqlite/sqlite-search-index.d.ts.map +1 -1
  58. package/dist/adapters/sqlite/sqlite-search-index.js +47 -25
  59. package/dist/adapters/sqlite/sqlite-search-index.js.map +1 -1
  60. package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
  61. package/dist/app/use-cases/add-memory-object.js +2 -1
  62. package/dist/app/use-cases/add-memory-object.js.map +1 -1
  63. package/dist/app/use-cases/build-analytics.d.ts +64 -1
  64. package/dist/app/use-cases/build-analytics.d.ts.map +1 -1
  65. package/dist/app/use-cases/build-analytics.js +157 -0
  66. package/dist/app/use-cases/build-analytics.js.map +1 -1
  67. package/dist/app/use-cases/generate-agent-brief.d.ts.map +1 -1
  68. package/dist/app/use-cases/generate-agent-brief.js +3 -0
  69. package/dist/app/use-cases/generate-agent-brief.js.map +1 -1
  70. package/dist/app/use-cases/generate-recap.d.ts +14 -0
  71. package/dist/app/use-cases/generate-recap.d.ts.map +1 -1
  72. package/dist/app/use-cases/generate-recap.js +37 -0
  73. package/dist/app/use-cases/generate-recap.js.map +1 -1
  74. package/dist/app/use-cases/get-call-injections.d.ts +6 -0
  75. package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
  76. package/dist/app/use-cases/get-call-injections.js +26 -8
  77. package/dist/app/use-cases/get-call-injections.js.map +1 -1
  78. package/dist/app/use-cases/scan-project.d.ts +36 -1
  79. package/dist/app/use-cases/scan-project.d.ts.map +1 -1
  80. package/dist/app/use-cases/scan-project.js +91 -37
  81. package/dist/app/use-cases/scan-project.js.map +1 -1
  82. package/dist/domain/error-class.d.ts.map +1 -1
  83. package/dist/domain/error-class.js +5 -0
  84. package/dist/domain/error-class.js.map +1 -1
  85. package/dist/domain/memory-types.d.ts.map +1 -1
  86. package/dist/domain/memory-types.js +7 -2
  87. package/dist/domain/memory-types.js.map +1 -1
  88. package/dist/domain/router-log.d.ts +8 -2
  89. package/dist/domain/router-log.d.ts.map +1 -1
  90. package/dist/domain/router-log.js +14 -2
  91. package/dist/domain/router-log.js.map +1 -1
  92. package/dist/domain/schemas/relation-schema.d.ts +1 -1
  93. package/package.json +1 -1
  94. package/templates/base/agents/executor-lead.md +5 -3
  95. package/templates/base/playbooks/executor-lead-playbook.md +68 -0
  96. package/templates/opencode/plugins/wolf-router.ts +102 -44
@@ -1,3 +1,4 @@
1
+ import { UserFacingError } from './errors.js';
1
2
  const FULL = [
2
3
  'active',
3
4
  'open',
@@ -293,8 +294,12 @@ export const CORE_TAXONOMY = CORE_TAXONOMY_DECLS;
293
294
  /** Поиск декларации: сначала core-таксономия, потом extra (project-типы из config.yaml). */
294
295
  export function getDeclaration(type, extra) {
295
296
  const decl = CORE_TAXONOMY.find((d) => d.name === type) ?? extra?.find((d) => d.name === type);
296
- if (!decl)
297
- throw new Error(`No taxonomy declaration for type: ${type}`);
297
+ if (!decl) {
298
+ // T011: UserFacingError + список валидных типов (включая deprecated document) —
299
+ // агент получает читаемую ошибку, classifyError матчит 'unknown memory type' → invalid_input
300
+ const valid = [...CORE_TAXONOMY.map((d) => d.name), ...(extra ?? []).map((d) => d.name)].join(', ');
301
+ throw new UserFacingError(`Unknown memory type "${type}". Valid types: ${valid}`);
302
+ }
298
303
  return decl;
299
304
  }
300
305
  export function subdirectoryFor(type, scope) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@
3
3
  * Пишет плагин wolf-router (templates/opencode/plugins/wolf-router.ts):
4
4
  * `<ISO> agent-id=<id> playbook=hit name=<mem-id> variant=canonical injected=yes`
5
5
  * `<ISO> agent-id=<id> playbook=miss injected=no`
6
- * Старые файлы могут не иметь name/variant. Парсинг k=v парами (не позиционно),
7
- * чтобы пережить будущие поля; строка валидна ⇔ есть agent-id И playbook=hit|miss.
6
+ * P106 (волна 2.12): строка дополняется `ms=<resolve>` и `bytes=<playbook bytes>`
7
+ * (nullable — старые строки полей не имеют). Старые файлы могут не иметь
8
+ * name/variant. Парсинг k=v парами (не позиционно), чтобы пережить будущие
9
+ * поля; строка валидна ⇔ есть agent-id И playbook=hit|miss.
8
10
  * Битая строка не роняет аналитику — только malformedLines (прецедент readJsonl).
9
11
  */
10
12
  export interface RouterLogRow {
@@ -13,6 +15,10 @@ export interface RouterLogRow {
13
15
  hit: boolean;
14
16
  playbookId: string | null;
15
17
  variant: string | null;
18
+ /** P106: длительность resolve, мс (нет в старых строках). */
19
+ ms: number | null;
20
+ /** P106: размер инъекции playbook, байты (нет в старых строках). */
21
+ bytes: number | null;
16
22
  }
17
23
  export declare function parseRouterLog(text: string): {
18
24
  rows: RouterLogRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"router-log.d.ts","sourceRoot":"","sources":["../../src/domain/router-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAW7F"}
1
+ {"version":3,"file":"router-log.d.ts","sourceRoot":"","sources":["../../src/domain/router-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,oEAAoE;IACpE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAW7F"}
@@ -3,8 +3,10 @@
3
3
  * Пишет плагин wolf-router (templates/opencode/plugins/wolf-router.ts):
4
4
  * `<ISO> agent-id=<id> playbook=hit name=<mem-id> variant=canonical injected=yes`
5
5
  * `<ISO> agent-id=<id> playbook=miss injected=no`
6
- * Старые файлы могут не иметь name/variant. Парсинг k=v парами (не позиционно),
7
- * чтобы пережить будущие поля; строка валидна ⇔ есть agent-id И playbook=hit|miss.
6
+ * P106 (волна 2.12): строка дополняется `ms=<resolve>` и `bytes=<playbook bytes>`
7
+ * (nullable — старые строки полей не имеют). Старые файлы могут не иметь
8
+ * name/variant. Парсинг k=v парами (не позиционно), чтобы пережить будущие
9
+ * поля; строка валидна ⇔ есть agent-id И playbook=hit|miss.
8
10
  * Битая строка не роняет аналитику — только malformedLines (прецедент readJsonl).
9
11
  */
10
12
  export function parseRouterLog(text) {
@@ -40,12 +42,22 @@ function parseLine(line) {
40
42
  return null;
41
43
  const name = kv.get('name');
42
44
  const variant = kv.get('variant');
45
+ // P106: ms/bytes — целые числа; нечисловое/отсутствующее → null (толерантность)
46
+ const num = (key) => {
47
+ const v = kv.get(key);
48
+ if (v === undefined || !/^\d+$/.test(v))
49
+ return null;
50
+ const n = Number(v);
51
+ return Number.isSafeInteger(n) ? n : null;
52
+ };
43
53
  return {
44
54
  ts,
45
55
  agentId,
46
56
  hit: playbook === 'hit',
47
57
  playbookId: name !== undefined && name !== '' ? name : null,
48
58
  variant: variant !== undefined && variant !== '' ? variant : null,
59
+ ms: num('ms'),
60
+ bytes: num('bytes'),
49
61
  };
50
62
  }
51
63
  //# sourceMappingURL=router-log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-log.js","sourceRoot":"","sources":["../../src/domain/router-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,IAAI;YAAE,cAAc,IAAI,CAAC,CAAC;;YACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClC,CAAC;AAED,gGAAgG;AAChG,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC;YAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxG,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO;QACL,EAAE;QACF,OAAO;QACP,GAAG,EAAE,QAAQ,KAAK,KAAK;QACvB,UAAU,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC3D,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"router-log.js","sourceRoot":"","sources":["../../src/domain/router-log.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ export declare const RelationSchema: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  subject: z.ZodString;
6
6
  predicate: z.ZodEnum<{
7
+ superseded_by: "superseded_by";
7
8
  answers: "answers";
8
9
  supports: "supports";
9
10
  owner_skill: "owner_skill";
10
- superseded_by: "superseded_by";
11
11
  answered_by: "answered_by";
12
12
  supported_by: "supported_by";
13
13
  based_on: "based_on";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mister-wolf",
3
- "version": "2.10.0",
3
+ "version": "2.12.0",
4
4
  "description": "Local-first project memory for AI coding agents: decisions, lessons, tools and processes that outlive the session",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -20,9 +20,11 @@ agent-id: executor-lead
20
20
 
21
21
  - **РАМКА** — этот файл: роль, границы, запреты. Статична; меняется
22
22
  только `wolf sync`.
23
- - **ЛИЦО** — нет: lead безликий. Отсутствие playbook'а — данные,
24
- а не структурное исключение.
25
- - **ДОСТАВКА** — plugin-inject (основной); лиц нет, инъекция не требуется.
23
+ - **ЛИЦО** — playbook `executor-lead` (канон в памяти Wolf): базовые
24
+ контракты lead'а (декомпозиция, промпты воркеров, пределы); работа
25
+ по нему обязательна.
26
+ - **ДОСТАВКА** — plugin-inject (основной); при недоступности канона
27
+ роутер доставляет универсальный fallback-playbook.
26
28
 
27
29
  ## Контекст-бюджет уровня L1
28
30
 
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: Executor-lead playbook v1 — конвейер декомпозиции и приёмки
3
+ owner_skill: executor-lead
4
+ version: 1
5
+ steps: Прочитай Task Brief и классифицируй подзадачи ДО исполнения | TRIVIAL/SIMPLE делай сам, MEDIUM/COMPLEX декомпозируй на воркеров | Спавнь независимых воркеров параллельно с полными промптами | Прими отчёты и сверь с критериями проверки | Верни REPORT/STATUS/CRITERIA и полный отчёт в файл
6
+ tags: executor-lead playbook,playbook
7
+ ---
8
+
9
+ playbook: v1 (executor-lead). Владелец: executor-lead. Меняется
10
+ только через инкремент версии; мутатор — Стюард.
11
+
12
+ ## ДЕКОМПОЗИЦИЯ ДО ИСПОЛНЕНИЯ (таблица — в отчёт, она доказывает классификацию)
13
+
14
+ | Класс | Признаки | Исполнитель |
15
+ |---|---|---|
16
+ | TRIVIAL | ≤50 строк, 1 файл, без архитектуры | сам |
17
+ | SIMPLE | ≤200 строк, 1–2 файла, без архитектуры | сам |
18
+ | MEDIUM | ≤500 строк ИЛИ 3+ файла | воркеры |
19
+ | COMPLEX | архитектура / кросс-слой / риск регрессии | воркеры |
20
+
21
+ Независимые подзадачи → воркеров спавнь ПАРАЛЛЕЛЬНО, не последовательно.
22
+
23
+ ## ПРОМПТ ВОРКЕРА
24
+
25
+ Полный текст подзадачи (не ссылка) + точные пути файлов + контракт
26
+ результата + критерий проверки + блок «Инструменты» (какие тула, известные
27
+ ловушки). Передал подходящее — снял с воркера расход на пробы. Плохой
28
+ промпт = мусор в ответе — ошибка lead'а. Исследовательские подзадачи
29
+ («как устроен X», «почему в Z так») → `worker-researcher`, не делай сам.
30
+
31
+ ## КОНТРАКТ ФИНАЛЬНОГО ОТВЕТА
32
+
33
+ `REPORT: <path>` / `STATUS: <complete | partial>` / `CRITERIA: <n>/<m>`
34
+ кратко координатору; полный отчёт — файл (Metadata / Summary / Changes /
35
+ Task Decomposition / Workers Used / Validation Results).
36
+
37
+ ## ПРЕДЕЛЫ И ОТКАЗЫ
38
+
39
+ - Лимит воркеров на сессию: 5; фикс не удался за 2 попытки → partial.
40
+ - «Нужен executor» от воркера → переклассифицируй подзадачу.
41
+ - Противоречивый бриф → partial с причиной, не выдумывай за границами.
42
+ - Pre-existing failure (красное до твоих правок) — фиксируй отдельно,
43
+ не чини чужое.
44
+ - FRICTION из ответов воркеров — эскалируй в раздел FRICTION отчёта.
45
+ - Коммиты — только если бриф явно поручает.
46
+
47
+ ## КОНТУР ЛИЦА
48
+
49
+ - ДО задачи: `wolf search "executor-lead playbook"` — работай по
50
+ наибольшей версии.
51
+ - ТРИГГЕР ЖАЛОБЫ (обязателен, не на усмотрение): систематически плохо
52
+ ПРАВИЛО (декомпозиция/промпт воркера/контракт ответа), не тул и не
53
+ разовый случай: **W1** предписание противоречит брифу — следовать
54
+ обоим невозможно; **W2** случай не покрыт правилом; **W3** следование
55
+ предписанию даёт неверный результат (пруф); **W4** предписание
56
+ двусмысленно — два прочтения с разными результатами (второе прочтение —
57
+ в evidence). Сбой тула → FRICTION, не жалоба. Сработал →
58
+ `wolf complain --about executor-lead --rule "п.N требует X"
59
+ --evidence "дословная цитата + что произошло" --proposal "что
60
+ изменить"` → строка `COMPLAINT: <id> — …` в отчёте (после FRICTION).
61
+ Строка в отчёте жалобу НЕ заменяет. Стюарда не вызываю и статусы не
62
+ перевожу — триажирует диспетчер; задачу завершаю штатно, не жду
63
+ реакции. Не мутируй playbook сам — мутатор всегда Стюард.
64
+
65
+ ## ПРИЧИНА ВЕРСИИ
66
+
67
+ Посев wolf-init (T012, волна 1.1): контракты lead'а вынесены из рамки в
68
+ лицо — рамка статична, конвейер калибруется жалобами через Стюарда.
@@ -5,17 +5,20 @@
5
5
  * доставка вместо вероятностного wolf search агентом. Маркер
6
6
  * `agent-id: <id>` В ТЕЛЕ рамки агента (frontmatter в system-промпт не
7
7
  * попадает — известная грабля) → wolf search --type playbook → get +
8
- * гвард owner_skill === agentId | `skill:${agentId}` (legacy) → максимальная
9
- * version → инжект в system-промпт на каждое сообщение.
8
+ * гвард owner_skill === agentId | `skill:${agentId}` (legacy) → первый
9
+ * прошедший гвард кандидат (ранний стоп, A2-б) → инжект в system-промпт
10
+ * на каждое сообщение.
10
11
  *
11
- * Fallback — слой доставки №2: если плагин ничего не нашёл, рамка сама зовёт
12
- * `wolf search` (см. рамки агентов базового набора). Реестр доставок = сами
13
- * playbook-объекты через owner_skill, отдельного конфига нет.
12
+ * Fallback (T012, волна 1.1): канон приоритетен; при miss для ЛЮБОГО
13
+ * agent-id инъецируется встроенный универсальный FALLBACK_PLAYBOOK —
14
+ * доставка не зависит от того, звала ли рамка wolf search (слой №2).
15
+ * В router.log: variant=canonical | variant=fallback. Реестр доставок =
16
+ * сами playbook-объекты через owner_skill, отдельного конфига нет.
14
17
  *
15
18
  * Ноль зависимостей (Node stdlib; ai-sdk НЕ используется). Fail-safe: всё в
16
19
  * try/catch — плагин не имеет права уронить сессию (лог: .wolf/router.log —
17
- * agent-id, hit/miss, injected). Через этот файл при рендере проходят
18
- * подстановка {{tool.*}} и штамп `// wolf:rendered` (ставит рендерер).
20
+ * agent-id, name, variant, injected, ms, bytes). Через этот файл при рендере
21
+ * проходят подстановка {{tool.*}} и штамп `// wolf:rendered` (ставит рендерер).
19
22
  */
20
23
 
21
24
  import path from 'path';
@@ -31,21 +34,41 @@ const LOCAL_CLI = path.join(PROJECT_ROOT, 'dist', 'bootstrap', 'cli.js');
31
34
  // WOLF_ROUTER_LOG — тест-шов (юнит-тесты пишут в tmp, не в живой dogfood-лог)
32
35
  const LOG = process.env.WOLF_ROUTER_LOG ?? path.join(PROJECT_ROOT, '.wolf', 'router.log');
33
36
  const INJECT_HEADER = '# Актуальный playbook (источник: память Wolf, доставлен плагином; обязательный формат ответа)';
37
+ // T012 (волна 1.1): встроенный универсальный playbook для agent-id без канона
38
+ // в памяти. Role-агностичный базовый контур Wolf; канон всегда приоритетен.
39
+ const FALLBACK_PLAYBOOK = `# Универсальный playbook (fallback)
40
+
41
+ Канонического playbook для твоего agent-id в памяти Wolf нет — работай
42
+ по этому универсальному контуру.
43
+
44
+ 1. Холодный старт сессии: \`wolf call\` → \`wolf brief\` — возвращённые
45
+ injections и brief — активное руководство проекта.
46
+ 2. Значимое фиксируй в память Wolf: решения — \`add --type decision\`,
47
+ уроки — \`--type lesson\`, блокеры — \`--type blocker\`.
48
+ 3. Состояние проекта спрашивай у Wolf (\`wolf search\`, \`wolf get\`,
49
+ \`wolf brief\`): статические списки в файлах устаревают.
50
+ 4. Правила и playbook'ы не мутируй сам — мутатор Стюард; систематически
51
+ плохое ПРАВИЛО → \`wolf complain\` (не тул и не разовый случай).
52
+ 5. Сбой тула — FRICTION-строка в отчёте (\`FRICTION: <n>× <тул> —
53
+ причина; обошёл через <что сработало>\`), не молча и не ретраи в стол.`;
34
54
  // [ \t] вместо \s: \s съедает переводы строк и вытаскивает id с чужой строки.
35
55
  const AGENT_ID_RE = /^agent-id:[ \t]*([\w-]+)[ \t]*$/m;
36
- const CACHE_TTL_MS = 2500;
56
+ // Спека A2: playbook — canonical-память, Стюард мутирует редко → TTL 5 минут.
57
+ // Негативный кэш (null) живёт тем же TTL — повторный miss не спавнит CLI.
58
+ const CACHE_TTL_MS = 300_000;
59
+
60
+ // agent-id последней рамки, пропущенной через system.transform (для skill-метрики B3)
61
+ let lastAgentId: string | null = null;
37
62
 
38
63
  const run = promisify(execFile);
39
64
  // execFile: args array, no shell. Целевой проект — глобальный `wolf`;
40
65
  // догфуд в репо Wolf — локальный dist. Ошибка обоих → исключение наверх (fail-safe).
41
- // Волна 0 (0.2): свежий WOLF_SESSION на каждый spawn — унаследованный из long-lived
42
- // opencode-процесса env дал бы одну фальшивую сессию на все доставки.
66
+ // WOLF_SESSION (4.C): ключ ставится фабрикой ОДИН раз на процесс opencode —
67
+ // спавны и bash-вызовы волка наследуют его из process.env (execFile без
68
+ // env-поля наследует сам). Известный потолок: несколько чатов одного процесса
69
+ // opencode шарят ключ — консервативная недо-дедупликация, не ошибка.
43
70
  const runWolf = (args: string[]): Promise<{ stdout: string }> => {
44
- const opts = {
45
- cwd: PROJECT_ROOT,
46
- timeout: 5000,
47
- env: { ...process.env, WOLF_SESSION: 'opc-' + randomUUID() },
48
- };
71
+ const opts = { cwd: PROJECT_ROOT, timeout: 5000 };
49
72
  return run('wolf', args, opts).catch(() => run('node', [LOCAL_CLI, ...args], opts));
50
73
  };
51
74
 
@@ -58,7 +81,8 @@ function logRoute(line: string): void {
58
81
  }
59
82
  }
60
83
 
61
- // ponytail: per-agent кэш 2.5с — свежесть между сообщениями, без CLI-спавна на каждый чих.
84
+ // ponytail: per-agent кэш на TTL 5 мин — canonical-память мутируется редко,
85
+ // CLI-спавн не на каждое сообщение.
62
86
  const cache = new Map<string, { value: { id: string; body: string } | null; at: number }>();
63
87
 
64
88
  async function resolvePlaybook(agentId: string): Promise<{ id: string; body: string } | null> {
@@ -68,20 +92,17 @@ async function resolvePlaybook(agentId: string): Promise<{ id: string; body: str
68
92
  try {
69
93
  const { stdout } = await runWolf(['search', agentId, '--type', 'playbook', '--hide-superseded']);
70
94
  const ids = [...stdout.matchAll(/^([\w-]+) \[playbook\]/gm)].map((m) => m[1]);
71
- let best: { id?: string; body?: string } | null = null;
72
- let bestVersion = -1;
95
+ // Ранний стоп (спека A2-б): релевантность поиска уже отсортировала,
96
+ // --hide-superseded отсекает старые версии — первый кандидат, прошедший
97
+ // гвард владельца, и есть результат (один get при miss вместо K подряд).
73
98
  for (const id of ids) {
74
99
  const { stdout: json } = await runWolf(['get', id]);
75
100
  const obj = JSON.parse(json);
76
101
  const owner = obj.owner_skill ?? obj.extra?.owner_skill;
77
102
  if (owner !== agentId && owner !== `skill:${agentId}`) continue; // гвард владельца
78
- const version = Number(String(obj.version ?? '').match(/\d+/)?.[0] ?? 0);
79
- if (version > bestVersion) {
80
- bestVersion = version;
81
- best = obj;
82
- }
103
+ if (obj.body) found = { id: String(obj.id ?? id), body: obj.body };
104
+ break;
83
105
  }
84
- found = best?.body ? { id: String(best.id ?? ''), body: best.body } : null;
85
106
  } catch {
86
107
  /* fail-safe: без playbook — рамка работает через wolf search */
87
108
  }
@@ -89,24 +110,61 @@ async function resolvePlaybook(agentId: string): Promise<{ id: string; body: str
89
110
  return found;
90
111
  }
91
112
 
92
- export const WolfPlaybookPlugin = async () => ({
93
- 'experimental.chat.system.transform': async (_input, output) => {
94
- try {
95
- const joined = output.system.join('\n');
96
- const m = joined.match(AGENT_ID_RE);
97
- if (!m) return; // рамка без маркера — не наша забота
98
- if (joined.includes(INJECT_HEADER)) return; // идемпотентность: не вставляем дважды
99
- const agentId = m[1];
100
- const resolved = await resolvePlaybook(agentId);
101
- if (!resolved) {
102
- logRoute(`agent-id=${agentId} playbook=miss injected=no`);
103
- return; // fail-safe: fallback на wolf search самой рамкой
113
+ export const WolfPlaybookPlugin = async () => {
114
+ // 4.C: один WOLF_SESSION на процесс opencode — спавны волка и bash-вызовы
115
+ // наследуют ключ. Известный потолок: несколько чатов одного процесса
116
+ // opencode шарят ключ — консервативная недо-дедупликация.
117
+ if (!process.env.WOLF_SESSION) process.env.WOLF_SESSION = 'opc-' + randomUUID();
118
+ return {
119
+ 'experimental.chat.system.transform': async (_input, output) => {
120
+ try {
121
+ const joined = output.system.join('\n');
122
+ const m = joined.match(AGENT_ID_RE);
123
+ if (!m) return; // рамка без маркера — не наша забота
124
+ if (joined.includes(INJECT_HEADER)) return; // идемпотентность: не вставляем дважды
125
+ const agentId = m[1];
126
+ lastAgentId = agentId; // агент известен хуку skill-метрики (B3)
127
+ const startedAt = Date.now();
128
+ const resolved = await resolvePlaybook(agentId);
129
+ const ms = Date.now() - startedAt;
130
+ if (resolved) {
131
+ output.system.push(`\n\n${INJECT_HEADER}\n\n${resolved.body}`);
132
+ logRoute(
133
+ `agent-id=${agentId} playbook=hit name=${resolved.id} variant=canonical injected=yes` +
134
+ ` ms=${ms} bytes=${Buffer.byteLength(resolved.body)}`
135
+ );
136
+ } else {
137
+ // T012: miss канона → универсальный fallback; инъекция для любого agent-id
138
+ output.system.push(`\n\n${INJECT_HEADER}\n\n${FALLBACK_PLAYBOOK}`);
139
+ logRoute(
140
+ `agent-id=${agentId} playbook=hit name=fallback variant=fallback injected=yes` +
141
+ ` ms=${ms} bytes=${Buffer.byteLength(FALLBACK_PLAYBOOK)}`
142
+ );
143
+ }
144
+ } catch {
145
+ /* fail-safe: не роняем сессию */
104
146
  }
105
- output.system.push(`\n\n${INJECT_HEADER}\n\n${resolved.body}`);
106
- // волна 0 0.1: имя playbook + вариант (fallback появится с T012 — пока всегда canonical)
107
- logRoute(`agent-id=${agentId} playbook=hit name=${resolved.id} variant=canonical injected=yes`);
108
- } catch {
109
- /* fail-safe: не роняем сессию */
110
- }
111
- },
112
- });
147
+ },
148
+ // B3: метрика вызовов скиллов. Форма входа по докам opencode: input.tool —
149
+ // имя тула, output.args — объект аргументов (name | skill — фолбэк).
150
+ // Отдельный JSONL-файл — инвариант: enum событий SignalEventSchema закрытый,
151
+ // в общий router.log эти события класть нельзя. WOLF_SKILL_LOG — тест-шов
152
+ // (читается на каждый вызов: env ставится тестами уже после импорта модуля).
153
+ 'tool.execute.before': async (input: unknown, output: unknown) => {
154
+ try {
155
+ if ((input as { tool?: string } | null)?.tool !== 'skill') return;
156
+ const args = (output as { args?: { name?: string; skill?: string } } | null)?.args;
157
+ const skill = args?.name ?? args?.skill;
158
+ if (!skill) return;
159
+ const file =
160
+ process.env.WOLF_SKILL_LOG ?? path.join(PROJECT_ROOT, '.wolf', 'metrics', 'skill-invocations.jsonl');
161
+ fs.mkdirSync(path.dirname(file), { recursive: true });
162
+ const entry: { ts: string; skill: string; agent?: string } = { ts: new Date().toISOString(), skill };
163
+ if (lastAgentId) entry.agent = lastAgentId;
164
+ fs.appendFileSync(file, `${JSON.stringify(entry)}\n`);
165
+ } catch {
166
+ /* fail-safe: падение метрики не роняет сессию */
167
+ }
168
+ },
169
+ };
170
+ };