mindlore 0.7.1 → 0.7.3

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 (117) hide show
  1. package/.claude-plugin/marketplace.json +33 -0
  2. package/.claude-plugin/plugin.json +30 -0
  3. package/dist/scripts/bundle-hooks.js +3 -1
  4. package/dist/scripts/bundle-hooks.js.map +1 -1
  5. package/dist/scripts/init.js +164 -151
  6. package/dist/scripts/init.js.map +1 -1
  7. package/dist/scripts/lib/all-migrations.d.ts.map +1 -1
  8. package/dist/scripts/lib/all-migrations.js +3 -0
  9. package/dist/scripts/lib/all-migrations.js.map +1 -1
  10. package/dist/scripts/lib/constants.d.ts +7 -0
  11. package/dist/scripts/lib/constants.d.ts.map +1 -1
  12. package/dist/scripts/lib/constants.js +17 -1
  13. package/dist/scripts/lib/constants.js.map +1 -1
  14. package/dist/scripts/lib/detect-plugin.d.ts +2 -0
  15. package/dist/scripts/lib/detect-plugin.d.ts.map +1 -0
  16. package/dist/scripts/lib/detect-plugin.js +14 -0
  17. package/dist/scripts/lib/detect-plugin.js.map +1 -0
  18. package/dist/scripts/lib/mcp-tools.d.ts.map +1 -1
  19. package/dist/scripts/lib/mcp-tools.js +63 -78
  20. package/dist/scripts/lib/mcp-tools.js.map +1 -1
  21. package/dist/scripts/lib/migrations-v072.d.ts +3 -0
  22. package/dist/scripts/lib/migrations-v072.d.ts.map +1 -0
  23. package/dist/scripts/lib/migrations-v072.js +25 -0
  24. package/dist/scripts/lib/migrations-v072.js.map +1 -0
  25. package/dist/scripts/lib/relation-helpers.d.ts +15 -0
  26. package/dist/scripts/lib/relation-helpers.d.ts.map +1 -0
  27. package/dist/scripts/lib/relation-helpers.js +30 -0
  28. package/dist/scripts/lib/relation-helpers.js.map +1 -0
  29. package/dist/scripts/lib/settings-cleanup.d.ts +6 -0
  30. package/dist/scripts/lib/settings-cleanup.d.ts.map +1 -0
  31. package/dist/scripts/lib/settings-cleanup.js +61 -0
  32. package/dist/scripts/lib/settings-cleanup.js.map +1 -0
  33. package/dist/scripts/lib/tool-adapters/get-adapter.d.ts +21 -0
  34. package/dist/scripts/lib/tool-adapters/get-adapter.d.ts.map +1 -0
  35. package/dist/scripts/lib/tool-adapters/get-adapter.js +51 -0
  36. package/dist/scripts/lib/tool-adapters/get-adapter.js.map +1 -0
  37. package/dist/scripts/lib/tool-adapters/relate-adapter.d.ts +34 -0
  38. package/dist/scripts/lib/tool-adapters/relate-adapter.d.ts.map +1 -0
  39. package/dist/scripts/lib/tool-adapters/relate-adapter.js +43 -0
  40. package/dist/scripts/lib/tool-adapters/relate-adapter.js.map +1 -0
  41. package/dist/scripts/lib/tool-adapters/search-adapter.d.ts +5 -0
  42. package/dist/scripts/lib/tool-adapters/search-adapter.d.ts.map +1 -1
  43. package/dist/scripts/lib/tool-adapters/search-adapter.js +37 -0
  44. package/dist/scripts/lib/tool-adapters/search-adapter.js.map +1 -1
  45. package/dist/scripts/mcp-server.js +40 -3
  46. package/dist/scripts/mcp-server.js.map +1 -1
  47. package/dist/scripts/mindlore-doctor.d.ts +1 -1
  48. package/dist/scripts/mindlore-doctor.d.ts.map +1 -1
  49. package/dist/scripts/mindlore-doctor.js +9 -35
  50. package/dist/scripts/mindlore-doctor.js.map +1 -1
  51. package/dist/scripts/uninstall.js +14 -38
  52. package/dist/scripts/uninstall.js.map +1 -1
  53. package/dist/tests/db-singleton.test.d.ts +2 -0
  54. package/dist/tests/db-singleton.test.d.ts.map +1 -0
  55. package/dist/tests/db-singleton.test.js +22 -0
  56. package/dist/tests/db-singleton.test.js.map +1 -0
  57. package/dist/tests/doctor.test.js +6 -15
  58. package/dist/tests/doctor.test.js.map +1 -1
  59. package/dist/tests/dont-repeat-dedup.test.d.ts +2 -0
  60. package/dist/tests/dont-repeat-dedup.test.d.ts.map +1 -0
  61. package/dist/tests/dont-repeat-dedup.test.js +93 -0
  62. package/dist/tests/dont-repeat-dedup.test.js.map +1 -0
  63. package/dist/tests/e2e-kg-pipeline.test.d.ts +2 -0
  64. package/dist/tests/e2e-kg-pipeline.test.d.ts.map +1 -0
  65. package/dist/tests/e2e-kg-pipeline.test.js +59 -0
  66. package/dist/tests/e2e-kg-pipeline.test.js.map +1 -0
  67. package/dist/tests/helpers/db.d.ts.map +1 -1
  68. package/dist/tests/helpers/db.js +2 -1
  69. package/dist/tests/helpers/db.js.map +1 -1
  70. package/dist/tests/install-matrix.test.d.ts +2 -0
  71. package/dist/tests/install-matrix.test.d.ts.map +1 -0
  72. package/dist/tests/install-matrix.test.js +110 -0
  73. package/dist/tests/install-matrix.test.js.map +1 -0
  74. package/dist/tests/mcp-get-tool.test.d.ts +2 -0
  75. package/dist/tests/mcp-get-tool.test.d.ts.map +1 -0
  76. package/dist/tests/mcp-get-tool.test.js +93 -0
  77. package/dist/tests/mcp-get-tool.test.js.map +1 -0
  78. package/dist/tests/mcp-relate-tool.test.d.ts +2 -0
  79. package/dist/tests/mcp-relate-tool.test.d.ts.map +1 -0
  80. package/dist/tests/mcp-relate-tool.test.js +85 -0
  81. package/dist/tests/mcp-relate-tool.test.js.map +1 -0
  82. package/dist/tests/mcp-server.test.js +3 -1
  83. package/dist/tests/mcp-server.test.js.map +1 -1
  84. package/dist/tests/mcp-tools.test.js +20 -0
  85. package/dist/tests/mcp-tools.test.js.map +1 -1
  86. package/dist/tests/memory-relate.test.d.ts +2 -0
  87. package/dist/tests/memory-relate.test.d.ts.map +1 -0
  88. package/dist/tests/memory-relate.test.js +70 -0
  89. package/dist/tests/memory-relate.test.js.map +1 -0
  90. package/dist/tests/migrations-v063.test.js +1 -1
  91. package/dist/tests/migrations-v072.test.d.ts +2 -0
  92. package/dist/tests/migrations-v072.test.d.ts.map +1 -0
  93. package/dist/tests/migrations-v072.test.js +74 -0
  94. package/dist/tests/migrations-v072.test.js.map +1 -0
  95. package/dist/tests/plugin-cache-regression.test.d.ts +2 -0
  96. package/dist/tests/plugin-cache-regression.test.d.ts.map +1 -0
  97. package/dist/tests/plugin-cache-regression.test.js +19 -0
  98. package/dist/tests/plugin-cache-regression.test.js.map +1 -0
  99. package/dist/tests/settings-cleanup.test.d.ts +2 -0
  100. package/dist/tests/settings-cleanup.test.d.ts.map +1 -0
  101. package/dist/tests/settings-cleanup.test.js +126 -0
  102. package/dist/tests/settings-cleanup.test.js.map +1 -0
  103. package/dist/tests/version-sync.test.d.ts +2 -0
  104. package/dist/tests/version-sync.test.d.ts.map +1 -0
  105. package/dist/tests/version-sync.test.js +41 -0
  106. package/dist/tests/version-sync.test.js.map +1 -0
  107. package/hooks/cc-memory-bulk-sync.cjs +15 -1
  108. package/hooks/cc-session-sync.cjs +15 -1
  109. package/hooks/mindlore-dont-repeat.cjs +18 -0
  110. package/hooks/mindlore-search.cjs +15 -1
  111. package/hooks/mindlore-session-focus.cjs +35 -2
  112. package/hooks/src/mindlore-dont-repeat.cjs +21 -0
  113. package/package.json +4 -2
  114. package/plugin.json +7 -3
  115. package/skills/mindlore-decide/SKILL.md +7 -0
  116. package/skills/mindlore-log/SKILL.md +7 -0
  117. package/templates/config.json +1 -1
@@ -0,0 +1,93 @@
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 child_process_1 = require("child_process");
10
+ const HOOK_PATH = path_1.default.join(__dirname, '..', 'hooks', 'mindlore-dont-repeat.cjs');
11
+ function runHook(input, settingsContent) {
12
+ const realSettings = path_1.default.join(os_1.default.homedir(), '.claude', 'settings.json');
13
+ let backup = null;
14
+ const claudeDir = path_1.default.dirname(realSettings);
15
+ if (settingsContent !== undefined) {
16
+ if (!fs_1.default.existsSync(claudeDir)) {
17
+ fs_1.default.mkdirSync(claudeDir, { recursive: true });
18
+ }
19
+ if (fs_1.default.existsSync(realSettings)) {
20
+ backup = fs_1.default.readFileSync(realSettings, 'utf8');
21
+ }
22
+ fs_1.default.writeFileSync(realSettings, settingsContent, 'utf8');
23
+ }
24
+ try {
25
+ const result = (0, child_process_1.execFileSync)('node', [HOOK_PATH], {
26
+ input: JSON.stringify(input),
27
+ timeout: 5000,
28
+ encoding: 'utf8',
29
+ env: { ...process.env },
30
+ });
31
+ return result;
32
+ }
33
+ catch (err) {
34
+ if (err !== null && err !== undefined && typeof err === 'object' && 'stdout' in err) {
35
+ const stdout = err.stdout;
36
+ return typeof stdout === 'string' ? stdout : '';
37
+ }
38
+ return '';
39
+ }
40
+ finally {
41
+ if (backup !== null) {
42
+ fs_1.default.writeFileSync(realSettings, backup, 'utf8');
43
+ }
44
+ else if (settingsContent !== undefined) {
45
+ try {
46
+ fs_1.default.unlinkSync(realSettings);
47
+ }
48
+ catch { /* noop */ }
49
+ }
50
+ }
51
+ }
52
+ describe('dont-repeat dedup with lessons-enforcement', () => {
53
+ const editInput = {
54
+ tool_name: 'Edit',
55
+ tool_input: {
56
+ file_path: '/tmp/test-file.ts',
57
+ new_string: 'appendFileSync is dangerous pattern that should trigger',
58
+ },
59
+ };
60
+ it('exits silently when lessons-enforcement hook is registered', () => {
61
+ const settings = JSON.stringify({
62
+ hooks: {
63
+ PreToolUse: [{
64
+ matcher: 'Write|Edit',
65
+ hooks: [{ command: 'node ~/.claude/hooks/lessons-enforcement.cjs' }],
66
+ }],
67
+ },
68
+ });
69
+ const output = runHook(editInput, settings);
70
+ expect(output).toBe('');
71
+ });
72
+ it('runs full scan when lessons-enforcement is NOT registered', () => {
73
+ const settings = JSON.stringify({
74
+ hooks: {
75
+ PreToolUse: [{
76
+ matcher: 'Bash',
77
+ hooks: [{ command: 'node some-other-hook.cjs' }],
78
+ }],
79
+ },
80
+ });
81
+ const output = runHook(editInput, settings);
82
+ // May or may not produce output depending on lessons content,
83
+ // but the hook should NOT exit early — it should process
84
+ // We verify it didn't crash (non-empty or empty is fine)
85
+ expect(typeof output).toBe('string');
86
+ });
87
+ it('runs full scan when settings.json has no hooks at all', () => {
88
+ const settings = JSON.stringify({});
89
+ const output = runHook(editInput, settings);
90
+ expect(typeof output).toBe('string');
91
+ });
92
+ });
93
+ //# sourceMappingURL=dont-repeat-dedup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dont-repeat-dedup.test.js","sourceRoot":"","sources":["../../tests/dont-repeat-dedup.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,iDAA6C;AAE7C,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;AAElF,SAAS,OAAO,CAAC,KAAa,EAAE,eAAwB;IACtD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAEzE,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;YACpF,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;YACnD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC;gBAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE;YACV,SAAS,EAAE,mBAAmB;YAC9B,UAAU,EAAE,yDAAyD;SACtE;KACF,CAAC;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC;wBACX,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;qBACrE,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC;wBACX,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;qBACjD,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,8DAA8D;QAC9D,yDAAyD;QACzD,yDAAyD;QACzD,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=e2e-kg-pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-kg-pipeline.test.d.ts","sourceRoot":"","sources":["../../tests/e2e-kg-pipeline.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
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 path_1 = __importDefault(require("path"));
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const db_1 = require("./helpers/db");
10
+ const ingest_adapter_1 = require("../scripts/lib/tool-adapters/ingest-adapter");
11
+ const relate_adapter_1 = require("../scripts/lib/tool-adapters/relate-adapter");
12
+ const search_adapter_1 = require("../scripts/lib/tool-adapters/search-adapter");
13
+ const get_adapter_1 = require("../scripts/lib/tool-adapters/get-adapter");
14
+ describe('E2E: KG pipeline — ingest → relate → search → get', () => {
15
+ let testDir;
16
+ let ctx;
17
+ beforeEach(() => {
18
+ testDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mindlore-e2e-kg-'));
19
+ fs_1.default.mkdirSync(path_1.default.join(testDir, 'raw'), { recursive: true });
20
+ fs_1.default.mkdirSync(path_1.default.join(testDir, 'sources'), { recursive: true });
21
+ const dbPath = path_1.default.join(testDir, 'test.db');
22
+ const db = (0, db_1.createTestDbWithFullSchema)(dbPath);
23
+ ctx = { db, baseDir: testDir };
24
+ });
25
+ afterEach(() => {
26
+ ctx.db.close();
27
+ fs_1.default.rmSync(testDir, { recursive: true, force: true });
28
+ });
29
+ it('full pipeline: ingest two sources, relate, search finds related, get retrieves with relations', () => {
30
+ // 1. Ingest source A
31
+ const a = (0, ingest_adapter_1.handleIngest)(ctx, { type: 'text', content: 'React is a UI framework for web apps', title: 'React Guide' });
32
+ expect(a.slug).toBe('react-guide');
33
+ // Manually index into FTS5 (ingest writes to raw/, FTS5 sync is via hook)
34
+ (0, db_1.insertFts)(ctx.db, { path: a.path, slug: a.slug, title: 'React Guide', content: 'React is a UI framework for web apps', category: 'raw', type: 'raw' });
35
+ // 2. Ingest source B
36
+ const b = (0, ingest_adapter_1.handleIngest)(ctx, { type: 'text', content: 'Next.js builds on top of React for SSR', title: 'Next.js Guide' });
37
+ expect(b.slug).toBe('nextjs-guide');
38
+ (0, db_1.insertFts)(ctx.db, { path: b.path, slug: b.slug, title: 'Next.js Guide', content: 'Next.js builds on top of React for SSR', category: 'raw', type: 'raw' });
39
+ // 3. Relate: B extends A
40
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
41
+ const rel = (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'nextjs-guide', source_b: 'react-guide', relation_type: 'extends' });
42
+ expect(rel.created).toBe(true);
43
+ // 4. Search for "Next.js" → related should include react-guide via KG
44
+ const search = (0, search_adapter_1.handleSearch)(ctx, { query: 'Next.js SSR' });
45
+ const nextResult = search.results.find(r => r.slug === 'nextjs-guide');
46
+ expect(nextResult).toBeDefined();
47
+ expect(search.related.some(r => r.source === 'react-guide' && r.relation_type === 'extends')).toBe(true);
48
+ // 5. Get source with relations
49
+ const got = (0, get_adapter_1.handleGet)(ctx, { source: 'nextjs-guide' });
50
+ expect(got.content).toContain('Next.js builds on top of React');
51
+ expect(got.relations).toBeDefined();
52
+ expect(got.relations.some(r => r.source === 'react-guide')).toBe(true);
53
+ // 6. Remove relation → search should have empty related for this pair
54
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'remove', source_a: 'nextjs-guide', source_b: 'react-guide', relation_type: 'extends' });
55
+ const got2 = (0, get_adapter_1.handleGet)(ctx, { source: 'nextjs-guide' });
56
+ expect(got2.relations ?? []).toHaveLength(0);
57
+ });
58
+ });
59
+ //# sourceMappingURL=e2e-kg-pipeline.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-kg-pipeline.test.js","sourceRoot":"","sources":["../../tests/e2e-kg-pipeline.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../tests/helpers/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../tests/helpers/db.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ const migrations_v063_js_1 = require("../../scripts/lib/migrations-v063.js");
33
33
  const migrations_v066_js_1 = require("../../scripts/lib/migrations-v066.js");
34
34
  const migrations_v067_js_1 = require("../../scripts/lib/migrations-v067.js");
35
35
  const migrations_v068_js_1 = require("../../scripts/lib/migrations-v068.js");
36
+ const migrations_v072_js_1 = require("../../scripts/lib/migrations-v072.js");
36
37
  // Hook'lar .cjs kalıyor — SQL constants'ları oradan import ediyoruz
37
38
  const { SQL_FTS_CREATE, insertFtsRow, ensureEpisodesTable: ensureEpisodesTableCjs, parseFrontmatter: parseFrontmatterCjs, extractFtsMetadata: extractFtsMetadataCjs, resolveProject: resolveProjectCjs } = require('../../hooks/lib/mindlore-common.cjs');
38
39
  function sha256(content) {
@@ -63,7 +64,7 @@ const ALL_MIGRATIONS = [
63
64
  ...migrations_js_1.V050_MIGRATIONS, ...migrations_v051_js_1.V051_MIGRATIONS, ...migrations_v052_js_1.V052_MIGRATIONS,
64
65
  ...migrations_v053_js_1.V053_MIGRATIONS, ...migrations_v061_js_1.V061_MIGRATIONS, ...migrations_v062_js_1.V062_MIGRATIONS,
65
66
  ...migrations_v063_js_1.V063_MIGRATIONS, ...migrations_v066_js_1.V066_MIGRATIONS, ...migrations_v067_js_1.V067_MIGRATIONS,
66
- ...migrations_v068_js_1.V068_MIGRATIONS,
67
+ ...migrations_v068_js_1.V068_MIGRATIONS, ...migrations_v072_js_1.V072_MIGRATIONS,
67
68
  ];
68
69
  function createTestDbAtVersion(dbPath, maxVersion) {
69
70
  const db = createTestDb(dbPath);
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../tests/helpers/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../tests/helpers/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=install-matrix.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-matrix.test.d.ts","sourceRoot":"","sources":["../../tests/install-matrix.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
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 settings_cleanup_js_1 = require("../scripts/lib/settings-cleanup.js");
10
+ const detect_plugin_js_1 = require("../scripts/lib/detect-plugin.js");
11
+ const FIXTURES = path_1.default.join(__dirname, 'fixtures');
12
+ function loadFixture(name) {
13
+ const tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mindlore-matrix-'));
14
+ const src = path_1.default.join(FIXTURES, name);
15
+ const dest = path_1.default.join(tmpDir, 'settings.json');
16
+ fs_1.default.copyFileSync(src, dest);
17
+ return dest;
18
+ }
19
+ function countMindloreHooks(settingsPath) {
20
+ const settings = JSON.parse(fs_1.default.readFileSync(settingsPath, 'utf8'));
21
+ let count = 0;
22
+ for (const event of Object.keys(settings.hooks ?? {})) {
23
+ for (const entry of settings.hooks[event] ?? []) {
24
+ const hooks = entry.hooks ?? [entry];
25
+ for (const h of hooks) {
26
+ if (/node_modules[/\\]mindlore[/\\]hooks[/\\]/.test(h.command ?? '')) {
27
+ count++;
28
+ }
29
+ }
30
+ }
31
+ }
32
+ return count;
33
+ }
34
+ describe('Install Matrix — 4 scenarios', () => {
35
+ describe('Scenario 1: Marketplace-only (clean settings.json)', () => {
36
+ it('no legacy hooks in settings.json — cleanup is no-op', () => {
37
+ const settingsPath = loadFixture('settings-clean.json');
38
+ // Simulate: user only has plugin, never ran npx init
39
+ const before = countMindloreHooks(settingsPath);
40
+ expect(before).toBe(0);
41
+ // Cleanup should do nothing
42
+ const result = (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
43
+ expect(result.removed).toBe(0);
44
+ });
45
+ });
46
+ describe('Scenario 2: npx-only (hooks in settings.json, no plugin)', () => {
47
+ it('gate logic: plugin NOT installed → cleanup does NOT run, hooks stay', () => {
48
+ const settingsPath = loadFixture('settings-with-mindlore-hooks.json');
49
+ const before = countMindloreHooks(settingsPath);
50
+ expect(before).toBe(4);
51
+ // Simulate gate: detectPluginInstalled() returns false → skip cleanup
52
+ const pluginInstalled = false; // npx-only scenario
53
+ if (pluginInstalled) {
54
+ (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
55
+ }
56
+ // Hooks must stay — they are the sole source for npx-only users
57
+ const after = countMindloreHooks(settingsPath);
58
+ expect(after).toBe(4);
59
+ });
60
+ it('detectPluginInstalled checks ~/.claude/plugins/cache/mindlore/', () => {
61
+ // This verifies the detection mechanism exists and is callable
62
+ const result = (0, detect_plugin_js_1.detectPluginInstalled)();
63
+ // In test environment with plugin installed, this is true
64
+ // The important thing: function exists and returns boolean
65
+ expect(typeof result).toBe('boolean');
66
+ });
67
+ });
68
+ describe('Scenario 3: Both installed, user runs init (triggers M2)', () => {
69
+ it('cleanup removes legacy hooks — single fire after', () => {
70
+ const settingsPath = loadFixture('settings-with-mindlore-hooks.json');
71
+ // Before: hooks in settings.json (from old npx init)
72
+ const before = countMindloreHooks(settingsPath);
73
+ expect(before).toBe(4);
74
+ // User runs npx mindlore init → triggers idempotent cleanup
75
+ const result = (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
76
+ expect(result.removed).toBe(4);
77
+ // After: no legacy hooks — plugin auto-discovery sole source
78
+ const after = countMindloreHooks(settingsPath);
79
+ expect(after).toBe(0);
80
+ });
81
+ });
82
+ describe('Scenario 4: Upgrade path (npx mindlore upgrade)', () => {
83
+ it('upgrade triggers same cleanup — idempotent', () => {
84
+ const settingsPath = loadFixture('settings-with-mindlore-hooks.json');
85
+ // First upgrade: removes legacy hooks
86
+ const first = (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
87
+ expect(first.removed).toBe(4);
88
+ // Second upgrade: idempotent, nothing to remove
89
+ const second = (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
90
+ expect(second.removed).toBe(0);
91
+ });
92
+ });
93
+ describe('Guard: user custom hooks preserved', () => {
94
+ it('does not remove user hooks with mindlore- prefix but custom path', () => {
95
+ const settingsPath = loadFixture('settings-mixed-hooks.json');
96
+ const result = (0, settings_cleanup_js_1.cleanupLegacyHooks)(settingsPath);
97
+ // Only node_modules-path hooks removed
98
+ expect(result.removed).toBe(2);
99
+ // User custom hook with mindlore- prefix but ~/.claude/hooks/ path survives
100
+ const settings = JSON.parse(fs_1.default.readFileSync(settingsPath, 'utf8'));
101
+ const preToolUse = settings.hooks.PreToolUse;
102
+ expect(preToolUse).toHaveLength(2); // bash-guard + user custom
103
+ const commands = preToolUse.flatMap((e) =>
104
+ /* eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- test fixture shape */
105
+ (e.hooks ?? [e]).map((h) => h.command ?? ''));
106
+ expect(commands.some((c) => c.includes('mindlore-custom-hook'))).toBe(true);
107
+ });
108
+ });
109
+ });
110
+ //# sourceMappingURL=install-matrix.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-matrix.test.js","sourceRoot":"","sources":["../../tests/install-matrix.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-get-tool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-get-tool.test.d.ts","sourceRoot":"","sources":["../../tests/mcp-get-tool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
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 path_1 = __importDefault(require("path"));
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const db_1 = require("./helpers/db");
10
+ const get_adapter_1 = require("../scripts/lib/tool-adapters/get-adapter");
11
+ const relate_adapter_1 = require("../scripts/lib/tool-adapters/relate-adapter");
12
+ describe('mindlore_get tool', () => {
13
+ let testDir;
14
+ let ctx;
15
+ const sourceContent = `---
16
+ slug: alpha-source
17
+ type: source
18
+ title: Alpha Source
19
+ ---
20
+
21
+ ## Architecture
22
+
23
+ This is the architecture section.
24
+
25
+ ## Usage
26
+
27
+ This is the usage section.
28
+ `;
29
+ beforeEach(() => {
30
+ testDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mindlore-get-'));
31
+ const sourcesDir = path_1.default.join(testDir, 'sources');
32
+ fs_1.default.mkdirSync(sourcesDir, { recursive: true });
33
+ const sourcePath = path_1.default.join(sourcesDir, 'alpha-source.md');
34
+ fs_1.default.writeFileSync(sourcePath, sourceContent);
35
+ const dbPath = path_1.default.join(testDir, 'test.db');
36
+ const db = (0, db_1.createTestDbWithFullSchema)(dbPath);
37
+ (0, db_1.insertFts)(db, { path: sourcePath, slug: 'alpha-source', title: 'Alpha Source', content: sourceContent, category: 'sources', type: 'source' });
38
+ (0, db_1.insertFts)(db, { path: path_1.default.join(sourcesDir, 'beta.md'), slug: 'beta', title: 'Beta', content: 'beta content', category: 'sources', type: 'source' });
39
+ ctx = { db, baseDir: testDir };
40
+ });
41
+ afterEach(() => {
42
+ ctx.db.close();
43
+ fs_1.default.rmSync(testDir, { recursive: true, force: true });
44
+ });
45
+ it('returns full content for a source slug', () => {
46
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source' });
47
+ expect(result.title).toBe('Alpha Source');
48
+ expect(result.slug).toBe('alpha-source');
49
+ expect(result.content).toContain('Architecture');
50
+ expect(result.content).toContain('Usage');
51
+ expect(result.metadata.size).toBeGreaterThan(0);
52
+ });
53
+ it('returns section content when section param given', () => {
54
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source', section: 'Architecture' });
55
+ expect(result.content).toContain('architecture section');
56
+ expect(result.content).not.toContain('usage section');
57
+ expect(result.section).toBe('Architecture');
58
+ });
59
+ it('returns section via case-insensitive slug match', () => {
60
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source', section: 'architecture' });
61
+ expect(result.content).toContain('architecture section');
62
+ expect(result.section).toBe('Architecture');
63
+ });
64
+ it('returns available_sections when section not found', () => {
65
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source', section: 'nonexistent' });
66
+ expect(result.content).toBe('');
67
+ expect(result.section).toBeUndefined();
68
+ expect(result.available_sections).toContain('Architecture');
69
+ expect(result.available_sections).toContain('Usage');
70
+ });
71
+ it('includes relations when include_relations is true', () => {
72
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha-source', source_b: 'beta', relation_type: 'extends' });
73
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
74
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source', include_relations: true });
75
+ expect(result.relations).toHaveLength(1);
76
+ expect(result.relations[0].source).toBe('beta');
77
+ expect(result.relations[0].relation_type).toBe('extends');
78
+ expect(result.relations[0].direction).toBe('outgoing');
79
+ });
80
+ it('excludes relations when include_relations is false', () => {
81
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha-source', source_b: 'beta', relation_type: 'extends' });
82
+ const result = (0, get_adapter_1.handleGet)(ctx, { source: 'alpha-source', include_relations: false });
83
+ expect(result.relations).toBeUndefined();
84
+ });
85
+ it('throws when source slug not found', () => {
86
+ expect(() => (0, get_adapter_1.handleGet)(ctx, { source: 'nonexistent' })).toThrow(/not found/);
87
+ });
88
+ it('throws when source file missing from disk', () => {
89
+ (0, db_1.insertFts)(ctx.db, { path: path_1.default.join(testDir, 'sources/ghost.md'), slug: 'ghost', title: 'Ghost', content: 'x', category: 'sources', type: 'source' });
90
+ expect(() => (0, get_adapter_1.handleGet)(ctx, { source: 'ghost' })).toThrow();
91
+ });
92
+ });
93
+ //# sourceMappingURL=mcp-get-tool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-get-tool.test.js","sourceRoot":"","sources":["../../tests/mcp-get-tool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-relate-tool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-relate-tool.test.d.ts","sourceRoot":"","sources":["../../tests/mcp-relate-tool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
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 path_1 = __importDefault(require("path"));
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const db_1 = require("./helpers/db");
10
+ const relate_adapter_1 = require("../scripts/lib/tool-adapters/relate-adapter");
11
+ describe('mindlore_relate tool', () => {
12
+ let testDir;
13
+ let ctx;
14
+ beforeEach(() => {
15
+ testDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mindlore-relate-'));
16
+ const dbPath = path_1.default.join(testDir, 'test.db');
17
+ const db = (0, db_1.createTestDbWithFullSchema)(dbPath);
18
+ (0, db_1.insertFts)(db, { path: path_1.default.join(testDir, 'sources/alpha.md'), slug: 'alpha', title: 'Alpha', content: 'content A', category: 'sources', type: 'source' });
19
+ (0, db_1.insertFts)(db, { path: path_1.default.join(testDir, 'sources/beta.md'), slug: 'beta', title: 'Beta', content: 'content B', category: 'sources', type: 'source' });
20
+ ctx = { db, baseDir: testDir };
21
+ });
22
+ afterEach(() => {
23
+ ctx.db.close();
24
+ fs_1.default.rmSync(testDir, { recursive: true, force: true });
25
+ });
26
+ it('adds a new relation', () => {
27
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
28
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'extends' });
29
+ expect(result.created).toBe(true);
30
+ expect(result.existing).toBe(false);
31
+ });
32
+ it('returns existing=true for duplicate relation', () => {
33
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'extends' });
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
35
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'extends' });
36
+ expect(result.created).toBe(false);
37
+ expect(result.existing).toBe(true);
38
+ });
39
+ it('removes a relation', () => {
40
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'cites' });
41
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
42
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'remove', source_a: 'alpha', source_b: 'beta', relation_type: 'cites' });
43
+ expect(result.removed).toBe(true);
44
+ });
45
+ it('returns removed=false for non-existent relation', () => {
46
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
47
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'remove', source_a: 'alpha', source_b: 'beta', relation_type: 'cites' });
48
+ expect(result.removed).toBe(false);
49
+ });
50
+ it('lists all relations', () => {
51
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'extends' });
52
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'beta', source_b: 'alpha', relation_type: 'cites' });
53
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
54
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'list' });
55
+ expect(result.relations).toHaveLength(2);
56
+ expect(result.total).toBe(2);
57
+ });
58
+ it('lists relations filtered by source — includes both outgoing and incoming edges', () => {
59
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'extends' });
60
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'beta', source_b: 'alpha', relation_type: 'cites' });
61
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
62
+ const result = (0, relate_adapter_1.handleRelate)(ctx, { action: 'list', source: 'alpha' });
63
+ expect(result.relations).toHaveLength(2);
64
+ expect(result.relations.some(r => r.source_a === 'alpha' && r.source_b === 'beta')).toBe(true);
65
+ expect(result.relations.some(r => r.source_a === 'beta' && r.source_b === 'alpha')).toBe(true);
66
+ });
67
+ it('throws on invalid relation_type', () => {
68
+ expect(() => {
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
70
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha', source_b: 'beta', relation_type: 'invalid' });
71
+ }).toThrow();
72
+ });
73
+ it('throws when source slug not found in FTS5', () => {
74
+ expect(() => {
75
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'nonexistent', source_b: 'beta', relation_type: 'cites' });
76
+ }).toThrow(/not found/);
77
+ });
78
+ it('requires source_a and source_b for add action', () => {
79
+ expect(() => {
80
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
81
+ (0, relate_adapter_1.handleRelate)(ctx, { action: 'add', source_a: 'alpha' });
82
+ }).toThrow();
83
+ });
84
+ });
85
+ //# sourceMappingURL=mcp-relate-tool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-relate-tool.test.js","sourceRoot":"","sources":["../../tests/mcp-relate-tool.test.ts"],"names":[],"mappings":"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"}
@@ -86,7 +86,9 @@ describe('MCP Server stdio integration', () => {
86
86
  expect(toolNames).toContain('mindlore_recall');
87
87
  expect(toolNames).toContain('mindlore_brief');
88
88
  expect(toolNames).toContain('mindlore_decide');
89
- expect(toolNames).toHaveLength(6);
89
+ expect(toolNames).toContain('mindlore_relate');
90
+ expect(toolNames).toContain('mindlore_get');
91
+ expect(toolNames).toHaveLength(8);
90
92
  });
91
93
  it('executes mindlore_stats tool', async () => {
92
94
  const response = await sendRequest(proc, {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.test.js","sourceRoot":"","sources":["../../tests/mcp-server.test.ts"],"names":[],"mappings":";;;;;AAAA,iDAAoD;AACpD,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AAEpB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAgBvF,SAAS,WAAW,CAAC,IAAkB,EAAE,OAAuB;IAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnF,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC;oBACH,qGAAqG;oBACrG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;oBACnD,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;wBAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAC5C,OAAO,CAAC,MAAM,CAAC,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,IAAI,IAAkB,CAAC;IACvB,IAAI,OAAe,CAAC;IAEpB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACxE,IAAI,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;YACtC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE;YAC/C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,8DAA8D;QAC9D,IAAI,CAAC;YACH,YAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,eAAe,EAAE,YAAY;gBAC7B,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC/C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,iGAAiG;QACjG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA4C,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,EAAE;aACd;SACF,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;aAC9C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mcp-server.test.js","sourceRoot":"","sources":["../../tests/mcp-server.test.ts"],"names":[],"mappings":"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"}