mindlore 0.6.0 → 0.6.2

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 (127) hide show
  1. package/README.md +20 -13
  2. package/SCHEMA.md +3 -2
  3. package/dist/scripts/cc-session-sync.d.ts +1 -0
  4. package/dist/scripts/cc-session-sync.d.ts.map +1 -1
  5. package/dist/scripts/cc-session-sync.js +55 -0
  6. package/dist/scripts/cc-session-sync.js.map +1 -1
  7. package/dist/scripts/fetch-raw.js +62 -2
  8. package/dist/scripts/fetch-raw.js.map +1 -1
  9. package/dist/scripts/init.js +92 -47
  10. package/dist/scripts/init.js.map +1 -1
  11. package/dist/scripts/lib/constants.d.ts +4 -0
  12. package/dist/scripts/lib/constants.d.ts.map +1 -1
  13. package/dist/scripts/lib/constants.js +11 -1
  14. package/dist/scripts/lib/constants.js.map +1 -1
  15. package/dist/scripts/lib/daemon.d.ts +1 -0
  16. package/dist/scripts/lib/daemon.d.ts.map +1 -1
  17. package/dist/scripts/lib/daemon.js +1 -0
  18. package/dist/scripts/lib/daemon.js.map +1 -1
  19. package/dist/scripts/lib/decay.d.ts.map +1 -1
  20. package/dist/scripts/lib/decay.js +3 -0
  21. package/dist/scripts/lib/decay.js.map +1 -1
  22. package/dist/scripts/lib/episodes.d.ts +1 -1
  23. package/dist/scripts/lib/episodes.d.ts.map +1 -1
  24. package/dist/scripts/lib/episodes.js +1 -1
  25. package/dist/scripts/lib/episodes.js.map +1 -1
  26. package/dist/scripts/lib/hybrid-search.d.ts +1 -0
  27. package/dist/scripts/lib/hybrid-search.d.ts.map +1 -1
  28. package/dist/scripts/lib/hybrid-search.js +16 -1
  29. package/dist/scripts/lib/hybrid-search.js.map +1 -1
  30. package/dist/scripts/lib/migrations-v061.d.ts +3 -0
  31. package/dist/scripts/lib/migrations-v061.d.ts.map +1 -0
  32. package/dist/scripts/lib/migrations-v061.js +58 -0
  33. package/dist/scripts/lib/migrations-v061.js.map +1 -0
  34. package/dist/scripts/lib/migrations-v062.d.ts +3 -0
  35. package/dist/scripts/lib/migrations-v062.d.ts.map +1 -0
  36. package/dist/scripts/lib/migrations-v062.js +35 -0
  37. package/dist/scripts/lib/migrations-v062.js.map +1 -0
  38. package/dist/scripts/lib/session-payload.d.ts.map +1 -1
  39. package/dist/scripts/lib/session-payload.js +12 -0
  40. package/dist/scripts/lib/session-payload.js.map +1 -1
  41. package/dist/scripts/lib/triage.d.ts +18 -0
  42. package/dist/scripts/lib/triage.d.ts.map +1 -0
  43. package/dist/scripts/lib/triage.js +81 -0
  44. package/dist/scripts/lib/triage.js.map +1 -0
  45. package/dist/scripts/mindlore-daemon.js +1 -0
  46. package/dist/scripts/mindlore-daemon.js.map +1 -1
  47. package/dist/scripts/mindlore-doctor.d.ts +18 -0
  48. package/dist/scripts/mindlore-doctor.d.ts.map +1 -0
  49. package/dist/scripts/mindlore-doctor.js +243 -0
  50. package/dist/scripts/mindlore-doctor.js.map +1 -0
  51. package/dist/scripts/mindlore-fts5-index.js +16 -3
  52. package/dist/scripts/mindlore-fts5-index.js.map +1 -1
  53. package/dist/scripts/mindlore-fts5-search.js +12 -10
  54. package/dist/scripts/mindlore-fts5-search.js.map +1 -1
  55. package/dist/scripts/mindlore-health-check.d.ts +10 -0
  56. package/dist/scripts/mindlore-health-check.d.ts.map +1 -1
  57. package/dist/scripts/mindlore-health-check.js +26 -1
  58. package/dist/scripts/mindlore-health-check.js.map +1 -1
  59. package/dist/scripts/mindlore-perf.d.ts +22 -0
  60. package/dist/scripts/mindlore-perf.d.ts.map +1 -0
  61. package/dist/scripts/mindlore-perf.js +130 -0
  62. package/dist/scripts/mindlore-perf.js.map +1 -0
  63. package/dist/tests/compaction-snapshot.test.d.ts +2 -0
  64. package/dist/tests/compaction-snapshot.test.d.ts.map +1 -0
  65. package/dist/tests/compaction-snapshot.test.js +55 -0
  66. package/dist/tests/compaction-snapshot.test.js.map +1 -0
  67. package/dist/tests/decay.test.js +29 -0
  68. package/dist/tests/decay.test.js.map +1 -1
  69. package/dist/tests/diary.test.js +3 -3
  70. package/dist/tests/diary.test.js.map +1 -1
  71. package/dist/tests/doctor.test.d.ts +2 -0
  72. package/dist/tests/doctor.test.d.ts.map +1 -0
  73. package/dist/tests/doctor.test.js +82 -0
  74. package/dist/tests/doctor.test.js.map +1 -0
  75. package/dist/tests/fetch-raw.test.js +12 -5
  76. package/dist/tests/fetch-raw.test.js.map +1 -1
  77. package/dist/tests/fts5.test.js +28 -0
  78. package/dist/tests/fts5.test.js.map +1 -1
  79. package/dist/tests/health-check-memory.test.js +27 -0
  80. package/dist/tests/health-check-memory.test.js.map +1 -1
  81. package/dist/tests/helpers/db.d.ts.map +1 -1
  82. package/dist/tests/helpers/db.js +3 -1
  83. package/dist/tests/helpers/db.js.map +1 -1
  84. package/dist/tests/hook-smoke.test.js +27 -0
  85. package/dist/tests/hook-smoke.test.js.map +1 -1
  86. package/dist/tests/hybrid-search.test.js +25 -0
  87. package/dist/tests/hybrid-search.test.js.map +1 -1
  88. package/dist/tests/init.test.js +20 -0
  89. package/dist/tests/init.test.js.map +1 -1
  90. package/dist/tests/migrations-v061.test.d.ts +2 -0
  91. package/dist/tests/migrations-v061.test.d.ts.map +1 -0
  92. package/dist/tests/migrations-v061.test.js +70 -0
  93. package/dist/tests/migrations-v061.test.js.map +1 -0
  94. package/dist/tests/migrations-v062.test.d.ts +2 -0
  95. package/dist/tests/migrations-v062.test.d.ts.map +1 -0
  96. package/dist/tests/migrations-v062.test.js +61 -0
  97. package/dist/tests/migrations-v062.test.js.map +1 -0
  98. package/dist/tests/nomination.test.js +1 -1
  99. package/dist/tests/savings.test.d.ts +2 -0
  100. package/dist/tests/savings.test.d.ts.map +1 -0
  101. package/dist/tests/savings.test.js +87 -0
  102. package/dist/tests/savings.test.js.map +1 -0
  103. package/dist/tests/session-focus.test.js +15 -0
  104. package/dist/tests/session-focus.test.js.map +1 -1
  105. package/dist/tests/session-summary.test.d.ts +2 -0
  106. package/dist/tests/session-summary.test.d.ts.map +1 -0
  107. package/dist/tests/session-summary.test.js +102 -0
  108. package/dist/tests/session-summary.test.js.map +1 -0
  109. package/dist/tests/telemetry-perf.test.d.ts +2 -0
  110. package/dist/tests/telemetry-perf.test.d.ts.map +1 -0
  111. package/dist/tests/telemetry-perf.test.js +65 -0
  112. package/dist/tests/telemetry-perf.test.js.map +1 -0
  113. package/dist/tests/triage.test.d.ts +2 -0
  114. package/dist/tests/triage.test.d.ts.map +1 -0
  115. package/dist/tests/triage.test.js +69 -0
  116. package/dist/tests/triage.test.js.map +1 -0
  117. package/hooks/lib/mindlore-common.cjs +54 -6
  118. package/hooks/mindlore-fts5-sync.cjs +10 -4
  119. package/hooks/mindlore-post-compact.cjs +23 -3
  120. package/hooks/mindlore-pre-compact.cjs +78 -3
  121. package/hooks/mindlore-search.cjs +20 -11
  122. package/hooks/mindlore-session-end.cjs +32 -19
  123. package/hooks/mindlore-session-focus.cjs +107 -72
  124. package/package.json +7 -4
  125. package/plugin.json +1 -1
  126. package/skills/mindlore-maintain/SKILL.md +1 -0
  127. package/templates/config.json +1 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const db_js_1 = require("./helpers/db.js");
10
+ const schema_version_js_1 = require("../scripts/lib/schema-version.js");
11
+ const migrations_js_1 = require("../scripts/lib/migrations.js");
12
+ const migrations_v051_js_1 = require("../scripts/lib/migrations-v051.js");
13
+ const migrations_v052_js_1 = require("../scripts/lib/migrations-v052.js");
14
+ const migrations_v053_js_1 = require("../scripts/lib/migrations-v053.js");
15
+ const migrations_v062_js_1 = require("../scripts/lib/migrations-v062.js");
16
+ const { ensureEpisodesTable: ensureEpisodesTableCjs } = require('../hooks/lib/mindlore-common.cjs');
17
+ const PRE_MIGRATIONS = [...migrations_js_1.V050_MIGRATIONS, ...migrations_v051_js_1.V051_MIGRATIONS, ...migrations_v052_js_1.V052_MIGRATIONS, ...migrations_v053_js_1.V053_MIGRATIONS];
18
+ describe('v0.6.2 migrations', () => {
19
+ let tmpDir;
20
+ let db;
21
+ beforeEach(() => {
22
+ tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mig062-'));
23
+ const dbPath = path_1.default.join(tmpDir, 'test.db');
24
+ db = (0, db_js_1.createTestDb)(dbPath);
25
+ ensureEpisodesTableCjs(db);
26
+ (0, schema_version_js_1.ensureSchemaTable)(db);
27
+ (0, schema_version_js_1.runMigrations)(db, PRE_MIGRATIONS);
28
+ });
29
+ afterEach(() => {
30
+ try {
31
+ db.close();
32
+ }
33
+ catch { /* already closed */ }
34
+ fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
35
+ });
36
+ it('creates raw_metadata table', () => {
37
+ (0, schema_version_js_1.runMigrations)(db, migrations_v062_js_1.V062_MIGRATIONS);
38
+ const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='raw_metadata'").all();
39
+ expect(tables).toHaveLength(1);
40
+ });
41
+ it('adds session_summary column to episodes', () => {
42
+ (0, schema_version_js_1.runMigrations)(db, migrations_v062_js_1.V062_MIGRATIONS);
43
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
44
+ const cols = db.pragma('table_info(episodes)');
45
+ expect(cols.some(c => c.name === 'session_summary')).toBe(true);
46
+ });
47
+ it('is idempotent', () => {
48
+ (0, schema_version_js_1.runMigrations)(db, migrations_v062_js_1.V062_MIGRATIONS);
49
+ (0, schema_version_js_1.runMigrations)(db, migrations_v062_js_1.V062_MIGRATIONS);
50
+ const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='raw_metadata'").all();
51
+ expect(tables).toHaveLength(1);
52
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
53
+ const cols = db.pragma('table_info(episodes)');
54
+ expect(cols.some(c => c.name === 'session_summary')).toBe(true);
55
+ });
56
+ it('sets schema version to 9', () => {
57
+ (0, schema_version_js_1.runMigrations)(db, migrations_v062_js_1.V062_MIGRATIONS);
58
+ expect((0, schema_version_js_1.getSchemaVersion)(db)).toBe(9);
59
+ });
60
+ });
61
+ //# sourceMappingURL=migrations-v062.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations-v062.test.js","sourceRoot":"","sources":["../../tests/migrations-v062.test.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ afterEach(() => {
14
14
  describe('nomination kind', () => {
15
15
  test('EPISODE_KINDS includes nomination', () => {
16
16
  expect(episodes_js_1.EPISODE_KINDS).toContain('nomination');
17
- expect(episodes_js_1.EPISODE_KINDS).toHaveLength(8);
17
+ expect(episodes_js_1.EPISODE_KINDS).toHaveLength(9);
18
18
  });
19
19
  test('can create nomination episode', () => {
20
20
  const ep = (0, episodes_js_1.createEpisode)(db, {
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=savings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"savings.test.d.ts","sourceRoot":"","sources":["../../tests/savings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const os_1 = __importDefault(require("os"));
9
+ describe('context savings metric', () => {
10
+ let tmpDir;
11
+ let telPath;
12
+ beforeEach(() => {
13
+ tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'savings-'));
14
+ telPath = path_1.default.join(tmpDir, 'telemetry.jsonl');
15
+ });
16
+ afterEach(() => {
17
+ fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
18
+ });
19
+ it('parses inject_tokens and source_tokens from telemetry', () => {
20
+ const entry = JSON.stringify({
21
+ ts: '2026-04-27T12:00:00Z',
22
+ hook: 'mindlore-session-focus',
23
+ duration_ms: 150,
24
+ ok: true,
25
+ inject_tokens: 500,
26
+ source_tokens: 2000,
27
+ });
28
+ fs_1.default.writeFileSync(telPath, entry + '\n');
29
+ const { parseTelemetry } = require('../dist/scripts/mindlore-perf.js');
30
+ const entries = parseTelemetry(telPath);
31
+ expect(entries).toHaveLength(1);
32
+ expect(entries[0].inject_tokens).toBe(500);
33
+ expect(entries[0].source_tokens).toBe(2000);
34
+ });
35
+ it('handles entries without token fields gracefully', () => {
36
+ const entry = JSON.stringify({
37
+ ts: '2026-04-27T12:00:00Z',
38
+ hook: 'mindlore-search',
39
+ duration_ms: 50,
40
+ ok: true,
41
+ });
42
+ fs_1.default.writeFileSync(telPath, entry + '\n');
43
+ const { parseTelemetry } = require('../dist/scripts/mindlore-perf.js');
44
+ const entries = parseTelemetry(telPath);
45
+ expect(entries).toHaveLength(1);
46
+ expect(entries[0].inject_tokens).toBeUndefined();
47
+ expect(entries[0].source_tokens).toBeUndefined();
48
+ });
49
+ it('reads legacy field names (injected_tokens / full_read_tokens)', () => {
50
+ const entry = JSON.stringify({
51
+ ts: '2026-04-27T12:00:00Z',
52
+ hook: 'mindlore-session-focus',
53
+ duration_ms: 100,
54
+ ok: true,
55
+ injected_tokens: 300,
56
+ full_read_tokens: 1500,
57
+ });
58
+ fs_1.default.writeFileSync(telPath, entry + '\n');
59
+ const { parseTelemetry } = require('../dist/scripts/mindlore-perf.js');
60
+ const entries = parseTelemetry(telPath);
61
+ expect(entries[0].inject_tokens).toBe(300);
62
+ expect(entries[0].source_tokens).toBe(1500);
63
+ });
64
+ it('calculates savings ratio from token fields', () => {
65
+ const entries = [
66
+ { ts: '2026-04-27T12:00:00Z', hook: 'a', duration_ms: 50, ok: true, inject_tokens: 500, source_tokens: 2000 },
67
+ { ts: '2026-04-27T12:01:00Z', hook: 'b', duration_ms: 50, ok: true, inject_tokens: 200, source_tokens: 1000 },
68
+ ];
69
+ fs_1.default.writeFileSync(telPath, entries.map(e => JSON.stringify(e)).join('\n') + '\n');
70
+ const { parseTelemetry } = require('../dist/scripts/mindlore-perf.js');
71
+ const parsed = parseTelemetry(telPath);
72
+ const withTokens = parsed.filter((e) => e.inject_tokens && e.source_tokens);
73
+ expect(withTokens).toHaveLength(2);
74
+ let totalInjected = 0;
75
+ let totalFull = 0;
76
+ for (const e of withTokens) {
77
+ if (typeof e === 'object' && e !== null) {
78
+ const entry = e;
79
+ totalInjected += typeof entry.inject_tokens === 'number' ? entry.inject_tokens : 0;
80
+ totalFull += typeof entry.source_tokens === 'number' ? entry.source_tokens : 0;
81
+ }
82
+ }
83
+ const ratio = 1 - totalInjected / totalFull;
84
+ expect(ratio).toBeCloseTo(0.767, 2);
85
+ });
86
+ });
87
+ //# sourceMappingURL=savings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"savings.test.js","sourceRoot":"","sources":["../../tests/savings.test.ts"],"names":[],"mappings":"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"}
@@ -160,6 +160,21 @@ describe('Session Focus Hook', () => {
160
160
  expect(output).not.toContain('[Mindlore Delta');
161
161
  });
162
162
  });
163
+ describe('corrupt DB recovery', () => {
164
+ test('recovers from corrupt database', () => {
165
+ const mindloreDir = createMindloreDir();
166
+ const dbPath = path_1.default.join(mindloreDir, 'mindlore.db');
167
+ fs_1.default.writeFileSync(dbPath, 'THIS IS NOT A SQLITE DATABASE');
168
+ const output = (0, child_process_1.execSync)(`node "${HOOK_PATH}"`, {
169
+ cwd: TEST_DIR,
170
+ encoding: 'utf8',
171
+ timeout: 5000,
172
+ env: { ...process.env, MINDLORE_HOME: mindloreDir },
173
+ });
174
+ expect(output).toContain('[Mindlore INDEX]');
175
+ expect(fs_1.default.existsSync(dbPath + '.corrupt.bak')).toBe(true);
176
+ });
177
+ });
163
178
  describe('session-payload integration', () => {
164
179
  test('should still inject INDEX when session-payload module is available', () => {
165
180
  createMindloreDir();
@@ -1 +1 @@
1
- {"version":3,"file":"session-focus.test.js","sourceRoot":"","sources":["../../tests/session-focus.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-focus.test.js","sourceRoot":"","sources":["../../tests/session-focus.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,iDAAyC;AAEzC,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;AAC7E,IAAI,QAAgB,CAAC;AACrB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAEpF,SAAS,iBAAiB;IACxB,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnE,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAClC,+DAA+D,CAChE,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,IAAY,EAAE,OAAe;IACrE,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EACrC,OAAO,CACR,CAAC;AACJ,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,oEAAoE;IACpE,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,IAAI,CAAC;QAAC,YAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,iBAAiB,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,WAAW,CAAC,WAAW,EAAE,0BAA0B,EAAE,6BAA6B,CAAC,CAAC;QACpF,WAAW,CAAC,WAAW,EAAE,0BAA0B,EAAE,mCAAmC,CAAC,CAAC;QAE1F,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE;SACpD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,WAAW,CAAC,WAAW,EAAE,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC5E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,WAAW,CAAC,WAAW,EAAE,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,4BAA4B;QAC5B,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAChE,CAAC;QAEF,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,WAAW,CAAC,WAAW,EAAE,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,WAAW,CAAC,WAAW,EAAE,0BAA0B,EACjD,oIAAoI,CAAC,CAAC;QAExI,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5C,WAAW,CAAC,WAAW,EAAE,0BAA0B,EACjD,2DAA2D,WAAW,4CAA4C,CAAC,CAAC;QAEtH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrD,YAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,YAAE,CAAC,aAAa,CACd,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAClC,iBAAiB,CAClB,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE;SACpD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACrD,YAAE,CAAC,aAAa,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE;SACpD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,iBAAiB,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,6DAA6D;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,iBAAiB,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;SACzE,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC5E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAExC,wDAAwD;QACxD,MAAM,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACrF,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;QAE1D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEzD,uBAAuB;QACvB,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;YACpB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;YACpB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACf,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,SAAS,SAAS,GAAG,EAAE;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE;SACpD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,+EAA+E;QAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,MAAM,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC9G,MAAM,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrF,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEhE,IAAI,GAA8C,CAAC;IACnD,IAAI,EAAqC,CAAC;IAE1C,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC7C,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,aAAa,CAAC,EAAE,EAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,aAAa,CAAC,EAAE,EAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,kCAAkC;YAC3C,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,aAAa,CAAC,EAAE,EAAE;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,aAAa,CAAC,EAAE,EAAE;YAChB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,aAAa,CAAC,EAAE,EAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAAG;YACf,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE;YAClF,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE;YAClF,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE;SACnF,CAAC;QAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,wBAAwB,CAAC,qCAAqC;gBACvE,UAAU,EAAE,sBAAsB;aACnC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-summary.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-summary.test.d.ts","sourceRoot":"","sources":["../../tests/session-summary.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cc_session_sync_js_1 = require("../scripts/cc-session-sync.js");
4
+ const DECISION_KEYWORDS_TR = ['karar:', 'ertele', 'seçtik', 'yapma:'];
5
+ const DECISION_KEYWORDS_EN = ['decision:', 'defer', 'chose', 'skip:'];
6
+ const ALL_KEYWORDS = [...DECISION_KEYWORDS_TR, ...DECISION_KEYWORDS_EN];
7
+ describe('session summary extraction', () => {
8
+ it('extracts intent from first user message', () => {
9
+ const transcript = [
10
+ '---',
11
+ 'type: raw',
12
+ 'project: mindlore',
13
+ '---',
14
+ '',
15
+ '## User',
16
+ '',
17
+ 'v0.6.2 spec yaz',
18
+ '',
19
+ '## Assistant',
20
+ '',
21
+ 'Tamam, başlıyorum.',
22
+ '',
23
+ ].join('\n');
24
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)(transcript);
25
+ expect(summary).toContain('v0.6.2 spec yaz');
26
+ });
27
+ it('detects decision keywords', () => {
28
+ const transcript = [
29
+ '---',
30
+ 'type: raw',
31
+ '---',
32
+ '',
33
+ '## User',
34
+ '',
35
+ 'karar: tek DB kullan',
36
+ '',
37
+ ].join('\n');
38
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)(transcript);
39
+ expect(summary).toContain('karar');
40
+ });
41
+ it('detects english decision keywords', () => {
42
+ const transcript = [
43
+ '---',
44
+ 'type: raw',
45
+ '---',
46
+ '',
47
+ '## User',
48
+ '',
49
+ 'decision: use single DB',
50
+ '',
51
+ ].join('\n');
52
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)(transcript);
53
+ expect(summary).toContain('decision');
54
+ });
55
+ it('rejects bare words without decision context', () => {
56
+ const text = 'implementasyon planı yazacağız';
57
+ const hasDecision = ALL_KEYWORDS.some(kw => text.toLowerCase().includes(kw));
58
+ expect(hasDecision).toBe(false);
59
+ });
60
+ it('includes last intent when different from first', () => {
61
+ const transcript = [
62
+ '---',
63
+ 'type: raw',
64
+ '---',
65
+ '',
66
+ '## User',
67
+ '',
68
+ 'brainstorming yap',
69
+ '',
70
+ '## Assistant',
71
+ '',
72
+ 'Tamam.',
73
+ '',
74
+ '## User',
75
+ '',
76
+ 'spec yaz',
77
+ '',
78
+ ].join('\n');
79
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)(transcript);
80
+ expect(summary).toContain('brainstorming');
81
+ expect(summary).toContain('spec yaz');
82
+ });
83
+ it('returns empty string for empty transcript', () => {
84
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)('');
85
+ expect(summary).toBe('');
86
+ });
87
+ it('handles transcript with no user messages', () => {
88
+ const transcript = [
89
+ '---',
90
+ 'type: raw',
91
+ '---',
92
+ '',
93
+ '## Assistant',
94
+ '',
95
+ 'Hello',
96
+ '',
97
+ ].join('\n');
98
+ const summary = (0, cc_session_sync_js_1.extractSessionSummary)(transcript);
99
+ expect(summary).toBe('');
100
+ });
101
+ });
102
+ //# sourceMappingURL=session-summary.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-summary.test.js","sourceRoot":"","sources":["../../tests/session-summary.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=telemetry-perf.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-perf.test.d.ts","sourceRoot":"","sources":["../../tests/telemetry-perf.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const os_1 = __importDefault(require("os"));
9
+ describe('mindlore-perf', () => {
10
+ const tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'perf-test-'));
11
+ const telPath = path_1.default.join(tmpDir, 'telemetry.jsonl');
12
+ beforeAll(() => {
13
+ const entries = [
14
+ { ts: new Date().toISOString(), hook: 'search', duration_ms: 50, ok: true },
15
+ { ts: new Date().toISOString(), hook: 'search', duration_ms: 200, ok: true },
16
+ { ts: new Date().toISOString(), hook: 'search', duration_ms: 500, ok: true },
17
+ { ts: new Date().toISOString(), hook: 'session-focus', duration_ms: 100, ok: true },
18
+ { ts: new Date().toISOString(), hook: 'session-focus', duration_ms: 800, ok: false },
19
+ ];
20
+ fs_1.default.writeFileSync(telPath, entries.map(e => JSON.stringify(e)).join('\n') + '\n');
21
+ });
22
+ afterAll(() => { fs_1.default.rmSync(tmpDir, { recursive: true, force: true }); });
23
+ it('parses telemetry entries', () => {
24
+ const { parseTelemetry } = require('../dist/scripts/mindlore-perf.js');
25
+ const entries = parseTelemetry(telPath);
26
+ expect(entries).toHaveLength(5);
27
+ });
28
+ it('calculates p50/p95 per hook', () => {
29
+ const { parseTelemetry, calculatePercentiles } = require('../dist/scripts/mindlore-perf.js');
30
+ const entries = parseTelemetry(telPath);
31
+ const percs = calculatePercentiles(entries, 'search');
32
+ expect(percs.p50).toBe(200);
33
+ expect(percs.count).toBe(3);
34
+ });
35
+ it('calculates percentiles for session-focus', () => {
36
+ const { parseTelemetry, calculatePercentiles } = require('../dist/scripts/mindlore-perf.js');
37
+ const entries = parseTelemetry(telPath);
38
+ const percs = calculatePercentiles(entries, 'session-focus');
39
+ expect(percs.count).toBe(2);
40
+ expect(percs.errorCount).toBe(1);
41
+ });
42
+ it('returns zero percentiles for unknown hook', () => {
43
+ const { parseTelemetry, calculatePercentiles } = require('../dist/scripts/mindlore-perf.js');
44
+ const entries = parseTelemetry(telPath);
45
+ const percs = calculatePercentiles(entries, 'nonexistent');
46
+ expect(percs.count).toBe(0);
47
+ expect(percs.p50).toBe(0);
48
+ });
49
+ it('groups entries by hook name', () => {
50
+ const { parseTelemetry, groupByHook } = require('../dist/scripts/mindlore-perf.js');
51
+ const entries = parseTelemetry(telPath);
52
+ const groups = groupByHook(entries);
53
+ expect(Object.keys(groups)).toHaveLength(2);
54
+ expect(groups['search']).toHaveLength(3);
55
+ expect(groups['session-focus']).toHaveLength(2);
56
+ });
57
+ it('withTelemetry works when fn returns undefined (S1 regression)', async () => {
58
+ const commonPath = require.resolve('../hooks/lib/mindlore-common.cjs');
59
+ delete require.cache[commonPath];
60
+ const { withTelemetry } = require(commonPath);
61
+ const fn = () => { };
62
+ await expect(withTelemetry('test-no-return', fn)).resolves.not.toThrow();
63
+ });
64
+ });
65
+ //# sourceMappingURL=telemetry-perf.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-perf.test.js","sourceRoot":"","sources":["../../tests/telemetry-perf.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=triage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.test.d.ts","sourceRoot":"","sources":["../../tests/triage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const db_js_1 = require("./helpers/db.js");
10
+ const triage_js_1 = require("../scripts/lib/triage.js");
11
+ describe('raw inbox triage', () => {
12
+ let tmpDir;
13
+ beforeEach(() => {
14
+ tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'triage-'));
15
+ fs_1.default.mkdirSync(path_1.default.join(tmpDir, 'raw'), { recursive: true });
16
+ fs_1.default.mkdirSync(path_1.default.join(tmpDir, 'sources'), { recursive: true });
17
+ });
18
+ afterEach(() => {
19
+ fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
20
+ });
21
+ it('lists unpromoted raw files', () => {
22
+ fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'raw', 'orphan.md'), '# Title\nContent here');
23
+ fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'sources', 'existing.md'), '# Existing');
24
+ const result = (0, triage_js_1.listUnpromoted)(tmpDir);
25
+ expect(result.some(r => r.name === 'orphan.md')).toBe(true);
26
+ expect(result.some(r => r.name === 'existing.md')).toBe(false);
27
+ });
28
+ it('returns empty for non-existent raw dir', () => {
29
+ const emptyDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'triage-empty-'));
30
+ const result = (0, triage_js_1.listUnpromoted)(emptyDir);
31
+ expect(result).toHaveLength(0);
32
+ fs_1.default.rmSync(emptyDir, { recursive: true, force: true });
33
+ });
34
+ it('extracts metadata from raw file', () => {
35
+ const content = [
36
+ '---',
37
+ 'url: https://example.com',
38
+ 'date_captured: 2026-04-01',
39
+ '---',
40
+ '# Main Title',
41
+ '## Section 1',
42
+ '## Section 2',
43
+ 'Some content here.',
44
+ ].join('\n');
45
+ fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'raw', 'test.md'), content);
46
+ const meta = (0, triage_js_1.extractRawMetadata)(path_1.default.join(tmpDir, 'raw', 'test.md'));
47
+ expect(meta.title).toBe('Main Title');
48
+ expect(meta.url).toBe('https://example.com');
49
+ expect(meta.headings).toContain('Section 1');
50
+ expect(meta.line_count).toBe(8);
51
+ });
52
+ it('uses filename as fallback title', () => {
53
+ fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'raw', 'no-heading.md'), 'Just some text');
54
+ const meta = (0, triage_js_1.extractRawMetadata)(path_1.default.join(tmpDir, 'raw', 'no-heading.md'));
55
+ expect(meta.title).toBe('no-heading');
56
+ });
57
+ it('caches metadata in raw_metadata table', () => {
58
+ fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'raw', 'cached.md'), '# Cached\nContent');
59
+ const dbPath = path_1.default.join(tmpDir, 'mindlore.db');
60
+ const db = (0, db_js_1.createTestDbWithMigrations)(dbPath);
61
+ (0, triage_js_1.cacheRawMetadata)(db, path_1.default.join(tmpDir, 'raw', 'cached.md'), tmpDir);
62
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
63
+ const row = db.prepare("SELECT * FROM raw_metadata WHERE path = ?").get('raw/cached.md');
64
+ expect(row).toBeDefined();
65
+ expect(row?.title).toBe('Cached');
66
+ db.close();
67
+ });
68
+ });
69
+ //# sourceMappingURL=triage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.test.js","sourceRoot":"","sources":["../../tests/triage.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,2CAA6D;AAC7D,wDAAgG;AAEhG,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3D,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,YAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;QACjF,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,QAAQ,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,OAAO,GAAG;YACd,KAAK;YACL,0BAA0B;YAC1B,2BAA2B;YAC3B,KAAK;YACL,cAAc;YACd,cAAc;YACd,cAAc;YACd,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,IAAA,kCAA0B,EAAC,MAAM,CAAC,CAAC;QAE9C,IAAA,4BAAgB,EAAC,EAAE,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpE,uEAAuE;QACvE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,eAAe,CAAkC,CAAC;QAC1H,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}