mister-wolf 2.17.1 → 2.18.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 (32) hide show
  1. package/README.md +11 -11
  2. package/README.ru.md +4 -4
  3. package/dist/adapters/cli/commands/claim.d.ts.map +1 -1
  4. package/dist/adapters/cli/commands/claim.js +11 -2
  5. package/dist/adapters/cli/commands/claim.js.map +1 -1
  6. package/dist/adapters/fs/claim-registry.d.ts +31 -2
  7. package/dist/adapters/fs/claim-registry.d.ts.map +1 -1
  8. package/dist/adapters/fs/claim-registry.js +76 -9
  9. package/dist/adapters/fs/claim-registry.js.map +1 -1
  10. package/dist/app/use-cases/build-analytics.d.ts +22 -0
  11. package/dist/app/use-cases/build-analytics.d.ts.map +1 -1
  12. package/dist/app/use-cases/build-analytics.js +34 -0
  13. package/dist/app/use-cases/build-analytics.js.map +1 -1
  14. package/dist/app/use-cases/claim-artifact.d.ts +4 -1
  15. package/dist/app/use-cases/claim-artifact.d.ts.map +1 -1
  16. package/dist/app/use-cases/claim-artifact.js +6 -1
  17. package/dist/app/use-cases/claim-artifact.js.map +1 -1
  18. package/dist/app/use-cases/init-project.d.ts +6 -0
  19. package/dist/app/use-cases/init-project.d.ts.map +1 -1
  20. package/dist/app/use-cases/init-project.js +34 -1
  21. package/dist/app/use-cases/init-project.js.map +1 -1
  22. package/dist/domain/memory-types.d.ts +23 -1
  23. package/dist/domain/memory-types.d.ts.map +1 -1
  24. package/dist/domain/memory-types.js +44 -0
  25. package/dist/domain/memory-types.js.map +1 -1
  26. package/dist/domain/type-schema-builder.d.ts +1 -1
  27. package/dist/domain/type-schema-builder.d.ts.map +1 -1
  28. package/dist/domain/type-schema-builder.js +20 -0
  29. package/dist/domain/type-schema-builder.js.map +1 -1
  30. package/package.json +1 -1
  31. package/templates/.wolf/router.log +1 -1
  32. package/templates/base/skills/wolf-brainstorm/SKILL.md +25 -0
package/README.md CHANGED
@@ -152,7 +152,7 @@ wolf tool revive check # deprecated → active
152
152
 
153
153
  ### Self-learning
154
154
 
155
- The standalone self-learning pipeline (`wolf learn …`) was removed by owner decision — write lessons with `wolf add --type lesson`. The signal log (`.wolf/metrics/session-metrics.jsonl`) remains the source: `wolf tool stats` and `wolf analytics` aggregate it.
155
+ The standalone self-learning pipeline was removed by owner decision — write lessons with `wolf add --type lesson`. The signal log (`.wolf/metrics/session-metrics.jsonl`) remains the source: `wolf tool stats` and `wolf analytics` aggregate it.
156
156
 
157
157
  ### Effectiveness
158
158
 
@@ -168,16 +168,16 @@ Memory scoped to a linked worktree (`worktree:<id>`) is filtered on exactly one
168
168
 
169
169
  Self-checking scenarios: `bash scripts/demo/scenario-N.sh`.
170
170
 
171
- | # | Scenario |
172
- | --- | ----------------------------------------------------------------------------------------------------------------- |
173
- | 1 | Connecting Wolf to a new project (self-checking, PASS/FAIL points) |
174
- | 2 | The life of a knowledge item: birth, aging (supersede), reading the current one |
175
- | 3 | A new agent = one command (scaffold: playbook + frame + relation) |
176
- | 4 | An owner complaint — a hot-signal into the self-learning loop |
177
- | 5 | A script becomes a resource — the Librarian's tool cycle |
178
- | 6 | Self-learning: 3 mistakes → pattern → draft → Sandbox Replay → activation |
179
- | 7 | Loop hygiene: learn status, memory integrity, mileage-based decay |
180
- | 8 | wolf run: model from a routing memory object, spend written to the signal log (**one real LLM call, ~30–60 sec**) |
171
+ | # | Scenario |
172
+ | --- | ---------------------------------------------------------------------------------------------------------------- |
173
+ | 1 | Connecting Wolf to a new project (self-checking, PASS/FAIL points) |
174
+ | 2 | The life of a knowledge item: birth, aging (supersede), reading the current one |
175
+ | 3 | A new agent = one command (scaffold: playbook + frame + relation) |
176
+ | 4 | An owner complaint — a hot-signal into the self-learning loop |
177
+ | 5 | A script becomes a resource — the Librarian's tool cycle |
178
+ | 6 | Signal log: repeated tool errors land in session metrics (self-learning pipeline removed) |
179
+ | 7 | Loop hygiene: memory integrity, attribution, and noise audit |
180
+ | 8 | Routing: model from a routing memory object, spend written to the signal log (**one real LLM call, ~30–60 sec**) |
181
181
 
182
182
  ## Integrations
183
183
 
package/README.ru.md CHANGED
@@ -172,7 +172,7 @@ wolf tool revive check # deprecated → active
172
172
 
173
173
  ### Самообучение
174
174
 
175
- Автономный конвейер самообучения (`wolf learn …`) удалён по решению владельца — уроки пишутся через `wolf add --type lesson`. Сигнальный лог (`.wolf/metrics/session-metrics.jsonl`) остался источником: его агрегируют `wolf tool stats` и `wolf analytics`.
175
+ Автономный конвейер самообучения удалён по решению владельца — уроки пишутся через `wolf add --type lesson`. Сигнальный лог (`.wolf/metrics/session-metrics.jsonl`) остался источником: его агрегируют `wolf tool stats` и `wolf analytics`.
176
176
 
177
177
  ### Эффективность
178
178
 
@@ -195,9 +195,9 @@ wolf tool revive check # deprecated → active
195
195
  | 3 | Новый агент = одна команда (scaffold: playbook + рамка + связь) |
196
196
  | 4 | Жалоба владельца — hot-signal контура самообучения |
197
197
  | 5 | Скрипт становится ресурсом — tool-цикл Библиотекаря |
198
- | 6 | Самообучение: 3 ошибки → паттерн → draft → Sandbox Replay → активация |
199
- | 7 | Гигиена контура: learn status, целостность памяти, decay по пробегу |
200
- | 8 | wolf run: модель из routing-объекта памяти, расход в сигнальный лог (**один реальный LLM-вызов, ~30–60 сек**) |
198
+ | 6 | Сигнальный лог: повторяющиеся тул-ошибки попадают в метрики сессий (конвейер самообучения удалён) |
199
+ | 7 | Гигиена контура: целостность памяти, атрибуция, аудит шума |
200
+ | 8 | Роутинг: модель из routing-объекта памяти, расход в сигнальный лог (**один реальный LLM-вызов, ~30–60 сек**) |
201
201
 
202
202
  ## Интеграции
203
203
 
@@ -1 +1 @@
1
- {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/claim.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC;;mEAEmE;AAEnE,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,OAAO,CA2DjE"}
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/claim.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;mEAEmE;AAEnE,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,OAAO,CAqEjE"}
@@ -1,8 +1,8 @@
1
1
  // src/adapters/cli/commands/claim.ts
2
2
  import { Command } from 'commander';
3
3
  import { safeCwd } from '../cli-entry.js';
4
- import { acquireArtifactClaim, listArtifactClaims, releaseArtifactClaim, } from '../../../app/use-cases/claim-artifact.js';
5
- import { claimFilePath, ClaimHeldError } from '../../fs/claim-registry.js';
4
+ import { acquireArtifactClaim, heartbeatArtifactClaim, listArtifactClaims, releaseArtifactClaim, } from '../../../app/use-cases/claim-artifact.js';
5
+ import { claimFilePath, ClaimHeldError, heartbeatFilePath } from '../../fs/claim-registry.js';
6
6
  import { resolveMemoryRoot } from '../../fs/memory-root.js';
7
7
  import { UserFacingError } from '../../../domain/errors.js';
8
8
  /** 2.17.1 REQ-05 (R06), design §3.5: `wolf claim acquire|release|list` —
@@ -33,6 +33,15 @@ export function claimCommand(baseDir = safeCwd()) {
33
33
  throw err;
34
34
  }
35
35
  });
36
+ cmd
37
+ .command('heartbeat')
38
+ .description('Refresh the claim heartbeat (keeps a long-running claim fresh within the 10-minute window)')
39
+ .argument('<artifact>', 'Artifact id whose claim heartbeat to refresh')
40
+ .action((artifact) => {
41
+ const hb = heartbeatArtifactClaim({ baseDir }, artifact);
42
+ console.log(`Heartbeat written: ${artifact} at ${hb.written_at} (writer ${hb.writer})`);
43
+ console.log(`heartbeat file: ${heartbeatFilePath(resolveMemoryRoot(baseDir).root, artifact)}`);
44
+ });
36
45
  cmd
37
46
  .command('release')
38
47
  .description('Release artifact ownership (owner-only) or transfer it explicitly')
@@ -1 +1 @@
1
- {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../../src/adapters/cli/commands/claim.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,15 @@
3
3
  * общими артефактами (TASK-бриф, план, отчёт, worktree). JSON-файлы в общем
4
4
  * `.wolf/shared/claims/` (cross-copy видимость — root из resolveMemoryRoot);
5
5
  * атомарный захват — `openSync(…, 'wx')` (механика FsMemoryLock tryAcquire);
6
- * stale: PID мёртв (ESRCH) ИЛИ возраст > CLAIM_TTL; перехват stale сохраняет
6
+ * stale: PID мёртв (ESRCH) ИЛИ возраст > CLAIM_TTL ИЛИ heartbeat старше окна
7
+ * (2.18.0 REQ-03); перехват stale сохраняет
7
8
  * прежний файл жёсткой ссылкой в след `<slug>.<epochMs>.json` (excl, NFR-02).
8
9
  */
9
- /** TTL claim'а: локальный-first, heartbeat не вводим (design §3.5). */
10
+ /** TTL claim'а: локальный-first (heartbeat — opt-in продление, REQ-03). */
10
11
  export declare const CLAIM_TTL_MS: number;
12
+ /** Окно свежести heartbeat (2.18.0 REQ-03, design §3.3 / ADR-7): heartbeat
13
+ * старше окна — claim stale; независимая величина от CLAIM_TTL_MS (DAP-2). */
14
+ export declare const CLAIM_HEARTBEAT_WINDOW_MS: number;
11
15
  export interface ClaimRecord {
12
16
  /** Тип+идентификатор артефакта: "dev:<date>-<slug>" | "worktree:<WT-ID>" | … */
13
17
  artifact: string;
@@ -19,6 +23,14 @@ export interface ClaimRecord {
19
23
  /** ISO-время захвата. */
20
24
  acquired_at: string;
21
25
  }
26
+ /** Heartbeat-запись (2.18.0 REQ-03, design §3.3): продление свежести
27
+ * держателем долгой операции; writer — для отладки, не auth. */
28
+ export interface HeartbeatRecord {
29
+ /** ISO-время последнего heartbeat. */
30
+ written_at: string;
31
+ /** Идентификатор писателя (для отладки, не auth). */
32
+ writer: string;
33
+ }
22
34
  /** Идентичность захватчика/освободителя: маппится в поля записи. */
23
35
  export interface ClaimIdentity {
24
36
  owner: string;
@@ -48,9 +60,26 @@ export declare function claimSlug(artifact: string): string;
48
60
  export declare function claimFilePath(root: string, artifact: string): string;
49
61
  /** След перехвата: `<slug>.<epochMs>.json` (исходные байты сохраняются, NFR-02). */
50
62
  export declare function claimTrailPath(root: string, artifact: string, epochMs: number): string;
63
+ /** Путь heartbeat-файла артефакта (2.18.0 REQ-03): `<slug>.heartbeat` рядом с claim-файлом. */
64
+ export declare function heartbeatFilePath(root: string, artifact: string): string;
65
+ /** Чтение heartbeat: null при отсутствии/повреждении — нет heartbeat = правила
66
+ * 2.17.1 (NFR-03), повреждённый файл = stale (как у claim). */
67
+ export declare function readHeartbeat(path: string): HeartbeatRecord | null;
68
+ /** Запись heartbeat (REQ-03, ADR-7): атомарная замена — уникальный tmp (wx) +
69
+ * rename поверх, поэтому параллельные писатели не ломают JSON, последний
70
+ * выигрывает, следа (в отличие от claim-перехвата) не остаётся.
71
+ * shortcut: уникальность tmp через hrtime+Math.random — pid делят воркеры
72
+ * на macOS, threadId есть только в worker, атомарность через wx+rename. */
73
+ export declare function writeHeartbeat(deps: ClaimRegistryDeps, input: {
74
+ artifact: string;
75
+ writer: string;
76
+ }): HeartbeatRecord;
51
77
  /** Прод-liveness: signal 0; ESRCH — мёртв, EPERM — жив (чужой user). pid<=0 —
52
78
  * неизвестен (переданный claim) — считаем живым, пока не истечёт TTL. */
53
79
  export declare function pidAlive(pid: number): boolean;
80
+ /** Stale (design §3.3): мёртвый PID ИЛИ возраст > TTL ИЛИ (heartbeat есть и
81
+ * старше окна/повреждён); нет heartbeat → правила 2.17.1 (NFR-03). */
82
+ export declare function isStale(rec: ClaimRecord | null, hb: HeartbeatRecord | null, deps: ClaimRegistryDeps): boolean;
54
83
  /** Атомарный захват (REQ-05 AC-1): wx-create; занято и fresh — ClaimHeldError
55
84
  * с идентификатором владельца; stale/порченый — перехват со следом. */
56
85
  export declare function acquireClaim(deps: ClaimRegistryDeps, input: {
@@ -1 +1 @@
1
- {"version":3,"file":"claim-registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/fs/claim-registry.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AAEH,uEAAuE;AACvE,eAAO,MAAM,YAAY,QAAsB,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,yEAAyE;IACzE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,qBAAa,cAAe,SAAQ,KAAK;aAErB,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;gBAFd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;CAKjC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;6FAC6F;AAC7F,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED;yEACyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ7C;AAgDD;uEACuE;AACvE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChE,WAAW,CA4Eb;AAMD;;;iFAGiF;AACjF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwCvD;AAED;;+DAE+D;AAC/D,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAmBjE;AAED;;;oCAGoC;AACpC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/C,IAAI,CA2BN"}
1
+ {"version":3,"file":"claim-registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/fs/claim-registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { closeSync, existsSync, linkSync, mkdirSync, openSync, readFileSync, readdirSync, statSync, unlinkSync, writeFileSync, } from 'fs';
1
+ import { closeSync, existsSync, linkSync, mkdirSync, openSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { UserFacingError } from '../../domain/errors.js';
4
4
  /**
@@ -6,11 +6,15 @@ import { UserFacingError } from '../../domain/errors.js';
6
6
  * общими артефактами (TASK-бриф, план, отчёт, worktree). JSON-файлы в общем
7
7
  * `.wolf/shared/claims/` (cross-copy видимость — root из resolveMemoryRoot);
8
8
  * атомарный захват — `openSync(…, 'wx')` (механика FsMemoryLock tryAcquire);
9
- * stale: PID мёртв (ESRCH) ИЛИ возраст > CLAIM_TTL; перехват stale сохраняет
9
+ * stale: PID мёртв (ESRCH) ИЛИ возраст > CLAIM_TTL ИЛИ heartbeat старше окна
10
+ * (2.18.0 REQ-03); перехват stale сохраняет
10
11
  * прежний файл жёсткой ссылкой в след `<slug>.<epochMs>.json` (excl, NFR-02).
11
12
  */
12
- /** TTL claim'а: локальный-first, heartbeat не вводим (design §3.5). */
13
+ /** TTL claim'а: локальный-first (heartbeat — opt-in продление, REQ-03). */
13
14
  export const CLAIM_TTL_MS = 24 * 60 * 60 * 1000;
15
+ /** Окно свежести heartbeat (2.18.0 REQ-03, design §3.3 / ADR-7): heartbeat
16
+ * старше окна — claim stale; независимая величина от CLAIM_TTL_MS (DAP-2). */
17
+ export const CLAIM_HEARTBEAT_WINDOW_MS = 10 * 60 * 1000;
14
18
  export class ClaimHeldError extends Error {
15
19
  claimPath;
16
20
  owner;
@@ -38,6 +42,59 @@ export function claimFilePath(root, artifact) {
38
42
  export function claimTrailPath(root, artifact, epochMs) {
39
43
  return join(claimsDir(root), `${claimSlug(artifact)}.${epochMs}.json`);
40
44
  }
45
+ /** Путь heartbeat-файла артефакта (2.18.0 REQ-03): `<slug>.heartbeat` рядом с claim-файлом. */
46
+ export function heartbeatFilePath(root, artifact) {
47
+ return join(claimsDir(root), `${claimSlug(artifact)}.heartbeat`);
48
+ }
49
+ /** Чтение heartbeat: null при отсутствии/повреждении — нет heartbeat = правила
50
+ * 2.17.1 (NFR-03), повреждённый файл = stale (как у claim). */
51
+ export function readHeartbeat(path) {
52
+ let raw;
53
+ try {
54
+ raw = readFileSync(path, 'utf-8');
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ try {
60
+ const d = JSON.parse(raw);
61
+ if (typeof d.written_at !== 'string' || typeof d.writer !== 'string')
62
+ return null;
63
+ return { written_at: d.written_at, writer: d.writer };
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ /** Запись heartbeat (REQ-03, ADR-7): атомарная замена — уникальный tmp (wx) +
70
+ * rename поверх, поэтому параллельные писатели не ломают JSON, последний
71
+ * выигрывает, следа (в отличие от claim-перехвата) не остаётся.
72
+ * shortcut: уникальность tmp через hrtime+Math.random — pid делят воркеры
73
+ * на macOS, threadId есть только в worker, атомарность через wx+rename. */
74
+ export function writeHeartbeat(deps, input) {
75
+ const dir = claimsDir(deps.root);
76
+ mkdirSync(dir, { recursive: true });
77
+ const now = (deps.now ?? (() => new Date()))();
78
+ const record = { written_at: now.toISOString(), writer: input.writer };
79
+ const tag = `${process.hrtime.bigint().toString(36)}.${Math.random().toString(36).slice(2, 10)}`;
80
+ const tmp = join(dir, `${claimSlug(input.artifact)}.heartbeat.${tag}.tmp`);
81
+ const fd = openSync(tmp, 'wx');
82
+ writeFileSync(fd, JSON.stringify(record), 'utf-8');
83
+ closeSync(fd);
84
+ try {
85
+ renameSync(tmp, heartbeatFilePath(deps.root, input.artifact));
86
+ }
87
+ catch (e) {
88
+ try {
89
+ unlinkSync(tmp);
90
+ }
91
+ catch {
92
+ /* конкурент уже убрал — не маскируем исходную ошибку */
93
+ }
94
+ throw e;
95
+ }
96
+ return record;
97
+ }
41
98
  /** Прод-liveness: signal 0; ESRCH — мёртв, EPERM — жив (чужой user). pid<=0 —
42
99
  * неизвестен (переданный claim) — считаем живым, пока не истечёт TTL. */
43
100
  export function pidAlive(pid) {
@@ -73,8 +130,9 @@ function parseClaim(raw) {
73
130
  return null;
74
131
  }
75
132
  }
76
- /** Stale (design §3.5): мёртвый PID ИЛИ возраст > TTL; порченый файл = stale. */
77
- function isStale(rec, deps) {
133
+ /** Stale (design §3.3): мёртвый PID ИЛИ возраст > TTL ИЛИ (heartbeat есть и
134
+ * старше окна/повреждён); нет heartbeat → правила 2.17.1 (NFR-03). */
135
+ export function isStale(rec, hb, deps) {
78
136
  if (rec === null)
79
137
  return true;
80
138
  const alive = deps.isAlive ?? pidAlive;
@@ -84,7 +142,16 @@ function isStale(rec, deps) {
84
142
  if (Number.isNaN(acquired))
85
143
  return true;
86
144
  const now = (deps.now ?? (() => new Date()))().getTime();
87
- return now - acquired > CLAIM_TTL_MS;
145
+ if (now - acquired > CLAIM_TTL_MS)
146
+ return true;
147
+ if (hb !== null) {
148
+ const written = Date.parse(hb.written_at);
149
+ if (Number.isNaN(written))
150
+ return true; // повреждён = stale
151
+ if (now - written > CLAIM_HEARTBEAT_WINDOW_MS)
152
+ return true;
153
+ }
154
+ return false;
88
155
  }
89
156
  function readClaimFile(path) {
90
157
  try {
@@ -135,7 +202,7 @@ export function acquireClaim(deps, input) {
135
202
  (deps.wait ?? sleepMs)(10);
136
203
  continue;
137
204
  }
138
- if (rec !== null && !isStale(rec, deps)) {
205
+ if (rec !== null && !isStale(rec, readHeartbeat(heartbeatFilePath(deps.root, input.artifact)), deps)) {
139
206
  throw new ClaimHeldError(path, rec.owner, describeHolder(rec));
140
207
  }
141
208
  // stale/порченый (rec === null, сырые байты могли быть) → перехват со следом;
@@ -197,7 +264,7 @@ export function releaseClaim(deps, input) {
197
264
  throw new UserFacingError(`Claim file for "${input.artifact}" is corrupt — ownership cannot be verified; take over via "wolf claim acquire" (preserves bytes) or remove it manually (claim file: ${path})`);
198
265
  }
199
266
  const fullMatch = ownerSessionMatch(rec, input.identity) && rec.pid === input.identity.pid;
200
- const pidReleasable = rec.pid <= 0 || isStale(rec, deps);
267
+ const pidReleasable = rec.pid <= 0 || isStale(rec, readHeartbeat(heartbeatFilePath(deps.root, input.artifact)), deps);
201
268
  // MINOR-1b (интегральное ревью 2.17.1): зеркально requireClaim — адресат
202
269
  // transfer (session null + owner) освобождает своей сессией, иначе передача
203
270
  // паркует release до TTL
@@ -262,7 +329,7 @@ export function requireClaim(deps, artifact, who) {
262
329
  if (rec === null) {
263
330
  throw new UserFacingError(`Claim file for "${artifact}" is corrupt — treated as stale; re-acquire: wolf claim acquire "${artifact}" (claim file: ${path})`);
264
331
  }
265
- if (isStale(rec, deps)) {
332
+ if (isStale(rec, readHeartbeat(heartbeatFilePath(deps.root, artifact)), deps)) {
266
333
  throw new UserFacingError(`Claim for "${artifact}" is stale (holder ${rec.owner}) — re-acquire: wolf claim acquire "${artifact}" (claim file: ${path})`);
267
334
  }
268
335
  // MINOR-1 (ревью T5): переданный claim (transfer: session null, pid 0)
@@ -1 +1 @@
1
- {"version":3,"file":"claim-registry.js","sourceRoot":"","sources":["../../../src/adapters/fs/claim-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim-registry.js","sourceRoot":"","sources":["../../../src/adapters/fs/claim-registry.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { MemoryStore } from '../../ports/memory-store.port.js';
7
7
  import type { EventLog } from '../../ports/event-log.port.js';
8
8
  import type { RelationLog } from '../../ports/relation-log.port.js';
9
9
  import type { Clock } from '../../ports/clock.port.js';
10
+ import type { MemoryObject } from '../../domain/schemas/memory-object-schema.js';
10
11
  import { type SignalEvent } from '../../adapters/fs/session-metrics-log.js';
11
12
  import { type EconomyResult } from '../../domain/tool-economy.js';
12
13
  import type { RouterLogRow } from '../../domain/router-log.js';
@@ -395,6 +396,10 @@ export interface CouncilsView {
395
396
  sharePct: number | null;
396
397
  medianHours: number | null;
397
398
  };
399
+ /** A9 (2.18.0 REQ-01): сколько мнений несут claims (аудируемые), и суммарный
400
+ * неразрешённый dissent по синтезам — расширение, не замена прежних полей. */
401
+ audited_count: number;
402
+ unresolved_dissent_total: number;
398
403
  weeks: CouncilWeekActivity[];
399
404
  openQuestions: CouncilOpenQuestion[];
400
405
  }
@@ -467,6 +472,23 @@ export declare function parseSkillInvocations(text: string): {
467
472
  rows: SkillInvocationRow[];
468
473
  malformedLines: number;
469
474
  };
475
+ /** A9 (2.18.0 REQ-01, NFR-01): claims мнения; legacy-запись без поля → [] —
476
+ * чтение исторических советов не падает и не даёт мусора. */
477
+ export declare function extractClaims(op: MemoryObject): string[];
478
+ /** A9: метаданные синтеза (5 полей v2-контракта, design §3.1). */
479
+ export interface SynthesisMeta {
480
+ accepted_claims: string[];
481
+ rejected_alternatives: {
482
+ claim: string;
483
+ reason: string;
484
+ }[];
485
+ unresolved_dissent: string[];
486
+ confidence: MemoryObject['confidence'];
487
+ required_validation: string[];
488
+ }
489
+ /** A9: v2-метаданные синтеза; legacy-синтез без новых полей → пустые списки и
490
+ * confidence 'medium' (ADR-9) — чтение не падает (NFR-01). */
491
+ export declare function extractSynthesisMeta(s: MemoryObject): SynthesisMeta;
470
492
  /**
471
493
  * Полный аналитический отчёт M5 из трёх портов: чистая агрегация, детерминированная.
472
494
  * Не падает на пустой памяти — все блоки возвращают нули/null/пустые массивы.
@@ -1 +1 @@
1
- {"version":3,"file":"build-analytics.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/build-analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAIvD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAU,KAAK,aAAa,EAAoB,MAAM,8BAA8B,CAAC;AAE5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQxF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,4BAA4B,EAAE,mBAAuD,CAAC;AAEnG,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEvG;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAEtE,kHAAkH;AAClH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAIvG;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAClC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,SAAS,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAID,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAWvC,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sEAAsE;IACtE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,MAAM,EAAE;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,4DAA4D;IAC5D,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,kFAAkF;IAClF,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,yCAAyC;IACzC,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,oDAAoD;IACpD,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAID,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,8EAA8E;IAC9E,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,sCAAsC;IACtC,iBAAiB,EAAE;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChF,4CAA4C;IAC5C,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,qCAAqC;IACrC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,6FAA6F;AAC7F,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,2EAA2E;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wGAAwG;IACxG,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,kHAAkH;IAClH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,0HAA0H;IAC1H,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,qDAAqD;IACrD,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAED,0FAA0F;AAC1F,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,0FAA0F;IAC1F,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+GAA+G;IAC/G,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2CAA2C;IAC3C,oBAAoB,EAAE,IAAI,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yEAAyE;IACzE,gBAAgB,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnG,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,OAAO,EAAE,YAAY,CAAC;QACtB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,WAAW,EAAE,mBAAmB,CAAC;QACjC,uDAAuD;QACvD,GAAG,EAAE,SAAS,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,EAAE,YAAY,CAAC;IACvB,gGAAgG;IAChG,QAAQ,EAAE,YAAY,CAAC;IACvB,8EAA8E;IAC9E,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2EAA2E;IAC3E,cAAc,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,0EAA0E;IAC1E,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AA+dD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAuB1G;AA25BD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAmH/G;AA6CD,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gCAAgC,EAAE,uBAI9C,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,oFAAoF;IACpF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,gFAAgF;QAChF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5D,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,uBAAuB,GAAG,WAAW,CAI3F;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,uBAAuB,GAAG,WAAW,CAG5F;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAEtG;AAED,MAAM,WAAW,mBAAmB;IAClC,qGAAqG;IACrG,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACjF,4CAA4C;IAC5C,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IACzE,qCAAqC;IACrC,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,iFAAiF;QACjF,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gFAAgF;QAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,+IAA+I;IAC/I,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9G,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAChF,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;CACrB;AAkED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,WAAW,CAAA;CAAE,EACnE,KAAK,EAAE;IACL,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAuG9B;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,QAAQ,GACR,OAAO,GACP,OAAO,GACP,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,UAAU,GACV,UAAU,GACV,YAAY,GACZ,KAAK,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAE7C,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,CA0D1G"}
1
+ {"version":3,"file":"build-analytics.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/build-analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAU,KAAK,aAAa,EAAoB,MAAM,8BAA8B,CAAC;AAE5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQxF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,4BAA4B,EAAE,mBAAuD,CAAC;AAEnG,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEvG;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAEtE,kHAAkH;AAClH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAIvG;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC;IAClC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,SAAS,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAID,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAWvC,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sEAAsE;IACtE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,MAAM,EAAE;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,4DAA4D;IAC5D,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,kFAAkF;IAClF,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,yCAAyC;IACzC,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,oDAAoD;IACpD,WAAW,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAID,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,8EAA8E;IAC9E,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,sCAAsC;IACtC,iBAAiB,EAAE;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChF,4CAA4C;IAC5C,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,qCAAqC;IACrC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,6FAA6F;AAC7F,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,2EAA2E;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,wGAAwG;IACxG,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,kHAAkH;IAClH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,0HAA0H;IAC1H,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,qDAAqD;IACrD,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAED,0FAA0F;AAC1F,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,0FAA0F;IAC1F,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+GAA+G;IAC/G,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2CAA2C;IAC3C,oBAAoB,EAAE,IAAI,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yEAAyE;IACzE,gBAAgB,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnG;kFAC8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,OAAO,EAAE,YAAY,CAAC;QACtB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,WAAW,EAAE,mBAAmB,CAAC;QACjC,uDAAuD;QACvD,GAAG,EAAE,SAAS,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,EAAE,YAAY,CAAC;IACvB,gGAAgG;IAChG,QAAQ,EAAE,YAAY,CAAC;IACvB,8EAA8E;IAC9E,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2EAA2E;IAC3E,cAAc,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,0EAA0E;IAC1E,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AA+dD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAuB1G;AA4xBD;6DAC6D;AAC7D,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,EAAE,CAIxD;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAMD;8DAC8D;AAC9D,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAmBnE;AAqID;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAmH/G;AA6CD,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gCAAgC,EAAE,uBAI9C,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,oFAAoF;IACpF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,gFAAgF;QAChF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5D,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,uBAAuB,GAAG,WAAW,CAI3F;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,uBAAuB,GAAG,WAAW,CAG5F;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAEtG;AAED,MAAM,WAAW,mBAAmB;IAClC,qGAAqG;IACrG,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACjF,4CAA4C;IAC5C,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IACzE,qCAAqC;IACrC,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,iFAAiF;QACjF,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gFAAgF;QAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,+IAA+I;IAC/I,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9G,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAChF,8BAA8B;IAC9B,MAAM,EAAE,WAAW,CAAC;CACrB;AAkED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,WAAW,CAAA;CAAE,EACnE,KAAK,EAAE;IACL,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAuG9B;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,QAAQ,GACR,OAAO,GACP,OAAO,GACP,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,UAAU,GACV,UAAU,GACV,YAAY,GACZ,KAAK,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,gBAAgB,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAE7C,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,CA0D1G"}
@@ -1308,6 +1308,36 @@ function extractVote(op) {
1308
1308
  const m = op.body.match(/^VOTE:\s*(\S+)/m);
1309
1309
  return m ? m[1] : 'TIMEOUT';
1310
1310
  }
1311
+ /** A9 (2.18.0 REQ-01, NFR-01): claims мнения; legacy-запись без поля → [] —
1312
+ * чтение исторических советов не падает и не даёт мусора. */
1313
+ export function extractClaims(op) {
1314
+ const raw = op.claims;
1315
+ if (!Array.isArray(raw))
1316
+ return [];
1317
+ return raw.filter((c) => typeof c === 'string');
1318
+ }
1319
+ function stringList(v) {
1320
+ return Array.isArray(v) ? v.filter((s) => typeof s === 'string') : [];
1321
+ }
1322
+ /** A9: v2-метаданные синтеза; legacy-синтез без новых полей → пустые списки и
1323
+ * confidence 'medium' (ADR-9) — чтение не падает (NFR-01). */
1324
+ export function extractSynthesisMeta(s) {
1325
+ const raw = s;
1326
+ const rejected = raw.rejected_alternatives;
1327
+ const conf = s.confidence;
1328
+ return {
1329
+ accepted_claims: stringList(raw.accepted_claims),
1330
+ rejected_alternatives: Array.isArray(rejected)
1331
+ ? rejected.filter((r) => typeof r === 'object' &&
1332
+ r !== null &&
1333
+ typeof r.claim === 'string' &&
1334
+ typeof r.reason === 'string')
1335
+ : [],
1336
+ unresolved_dissent: stringList(raw.unresolved_dissent),
1337
+ confidence: conf === 'low' || conf === 'high' ? conf : 'medium',
1338
+ required_validation: stringList(raw.required_validation),
1339
+ };
1340
+ }
1311
1341
  /** Консилиумы: вопросы/мнения/синтезы из councils-subdir + relations answers/based_on.
1312
1342
  * Чистая агрегация по уже выгруженным объектам; ровно два вызова relations.list
1313
1343
  * (predicate answers и based_on — без N+1 по вопросам). Голоса — extractVote
@@ -1422,6 +1452,10 @@ async function buildCouncils(objects, relations, now, weeks) {
1422
1452
  sharePct: questions.length > 0 ? (questionsWithSynthesis / questions.length) * 100 : null,
1423
1453
  medianHours,
1424
1454
  },
1455
+ // A9 (2.18.0 REQ-01): аудируемость советов — мнения с claims (≠0 = v2) и
1456
+ // суммарный неразрешённый dissent; legacy без полей даёт 0 (NFR-01)
1457
+ audited_count: opinions.reduce((sum, o) => sum + (extractClaims(o).length > 0 ? 1 : 0), 0),
1458
+ unresolved_dissent_total: syntheses.reduce((sum, s) => sum + extractSynthesisMeta(s).unresolved_dissent.length, 0),
1425
1459
  weeks: weeksOut,
1426
1460
  openQuestions,
1427
1461
  };