@rangerchaz/aimem 0.1.5 → 0.2.1

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 (202) hide show
  1. package/README.md +588 -432
  2. package/dist/cli/commands/git.d.ts +0 -0
  3. package/dist/cli/commands/git.d.ts.map +0 -0
  4. package/dist/cli/commands/git.js +0 -0
  5. package/dist/cli/commands/git.js.map +0 -0
  6. package/dist/cli/commands/guardrails.d.ts +3 -0
  7. package/dist/cli/commands/guardrails.d.ts.map +1 -0
  8. package/dist/cli/commands/guardrails.js +429 -0
  9. package/dist/cli/commands/guardrails.js.map +1 -0
  10. package/dist/cli/commands/import.d.ts +0 -0
  11. package/dist/cli/commands/import.d.ts.map +0 -0
  12. package/dist/cli/commands/import.js +0 -0
  13. package/dist/cli/commands/import.js.map +0 -0
  14. package/dist/cli/commands/init.d.ts +0 -0
  15. package/dist/cli/commands/init.d.ts.map +0 -0
  16. package/dist/cli/commands/init.js +0 -0
  17. package/dist/cli/commands/init.js.map +0 -0
  18. package/dist/cli/commands/mcp-serve.d.ts +0 -0
  19. package/dist/cli/commands/mcp-serve.d.ts.map +0 -0
  20. package/dist/cli/commands/mcp-serve.js +0 -0
  21. package/dist/cli/commands/mcp-serve.js.map +0 -0
  22. package/dist/cli/commands/query.d.ts +0 -0
  23. package/dist/cli/commands/query.d.ts.map +0 -0
  24. package/dist/cli/commands/query.js +0 -0
  25. package/dist/cli/commands/query.js.map +0 -0
  26. package/dist/cli/commands/reindex.d.ts +7 -0
  27. package/dist/cli/commands/reindex.d.ts.map +1 -0
  28. package/dist/cli/commands/reindex.js +117 -0
  29. package/dist/cli/commands/reindex.js.map +1 -0
  30. package/dist/cli/commands/setup.d.ts +0 -0
  31. package/dist/cli/commands/setup.d.ts.map +0 -0
  32. package/dist/cli/commands/setup.js +0 -0
  33. package/dist/cli/commands/setup.js.map +0 -0
  34. package/dist/cli/commands/start.d.ts +0 -0
  35. package/dist/cli/commands/start.d.ts.map +0 -0
  36. package/dist/cli/commands/start.js +0 -0
  37. package/dist/cli/commands/start.js.map +0 -0
  38. package/dist/cli/commands/status.d.ts +0 -0
  39. package/dist/cli/commands/status.d.ts.map +0 -0
  40. package/dist/cli/commands/status.js +0 -0
  41. package/dist/cli/commands/status.js.map +0 -0
  42. package/dist/cli/commands/stop.d.ts +0 -0
  43. package/dist/cli/commands/stop.d.ts.map +0 -0
  44. package/dist/cli/commands/stop.js +0 -0
  45. package/dist/cli/commands/stop.js.map +0 -0
  46. package/dist/cli/commands/visualize.d.ts +0 -0
  47. package/dist/cli/commands/visualize.d.ts.map +0 -0
  48. package/dist/cli/commands/visualize.js +0 -0
  49. package/dist/cli/commands/visualize.js.map +0 -0
  50. package/dist/cli/index.d.ts +0 -0
  51. package/dist/cli/index.d.ts.map +0 -0
  52. package/dist/cli/index.js +15 -0
  53. package/dist/cli/index.js.map +1 -1
  54. package/dist/db/index.d.ts +45 -1
  55. package/dist/db/index.d.ts.map +1 -1
  56. package/dist/db/index.js +489 -169
  57. package/dist/db/index.js.map +1 -1
  58. package/dist/db/schema.d.ts +1 -0
  59. package/dist/db/schema.d.ts.map +1 -1
  60. package/dist/db/schema.js +251 -188
  61. package/dist/db/schema.js.map +1 -1
  62. package/dist/extractor/index.d.ts +0 -0
  63. package/dist/extractor/index.d.ts.map +0 -0
  64. package/dist/extractor/index.js +0 -0
  65. package/dist/extractor/index.js.map +0 -0
  66. package/dist/git/extractor.d.ts +0 -0
  67. package/dist/git/extractor.d.ts.map +0 -0
  68. package/dist/git/extractor.js +0 -0
  69. package/dist/git/extractor.js.map +0 -0
  70. package/dist/git/hooks.d.ts +0 -0
  71. package/dist/git/hooks.d.ts.map +0 -0
  72. package/dist/git/hooks.js +0 -0
  73. package/dist/git/hooks.js.map +0 -0
  74. package/dist/git/index.d.ts +0 -0
  75. package/dist/git/index.d.ts.map +0 -0
  76. package/dist/git/index.js +0 -0
  77. package/dist/git/index.js.map +0 -0
  78. package/dist/guardrails/analyzer.d.ts +20 -0
  79. package/dist/guardrails/analyzer.d.ts.map +1 -0
  80. package/dist/guardrails/analyzer.js +329 -0
  81. package/dist/guardrails/analyzer.js.map +1 -0
  82. package/dist/guardrails/calculator.d.ts +46 -0
  83. package/dist/guardrails/calculator.d.ts.map +1 -0
  84. package/dist/guardrails/calculator.js +97 -0
  85. package/dist/guardrails/calculator.js.map +1 -0
  86. package/dist/guardrails/enforcer.d.ts +29 -0
  87. package/dist/guardrails/enforcer.d.ts.map +1 -0
  88. package/dist/guardrails/enforcer.js +180 -0
  89. package/dist/guardrails/enforcer.js.map +1 -0
  90. package/dist/guardrails/index.d.ts +14 -0
  91. package/dist/guardrails/index.d.ts.map +1 -0
  92. package/dist/guardrails/index.js +21 -0
  93. package/dist/guardrails/index.js.map +1 -0
  94. package/dist/guardrails/linter-import.d.ts +31 -0
  95. package/dist/guardrails/linter-import.d.ts.map +1 -0
  96. package/dist/guardrails/linter-import.js +547 -0
  97. package/dist/guardrails/linter-import.js.map +1 -0
  98. package/dist/guardrails/responder.d.ts +28 -0
  99. package/dist/guardrails/responder.d.ts.map +1 -0
  100. package/dist/guardrails/responder.js +98 -0
  101. package/dist/guardrails/responder.js.map +1 -0
  102. package/dist/guardrails/vindication-checker.d.ts +24 -0
  103. package/dist/guardrails/vindication-checker.d.ts.map +1 -0
  104. package/dist/guardrails/vindication-checker.js +209 -0
  105. package/dist/guardrails/vindication-checker.js.map +1 -0
  106. package/dist/guardrails/vindication-queue.d.ts +63 -0
  107. package/dist/guardrails/vindication-queue.d.ts.map +1 -0
  108. package/dist/guardrails/vindication-queue.js +98 -0
  109. package/dist/guardrails/vindication-queue.js.map +1 -0
  110. package/dist/indexer/index.d.ts +0 -0
  111. package/dist/indexer/index.d.ts.map +0 -0
  112. package/dist/indexer/index.js +0 -0
  113. package/dist/indexer/index.js.map +0 -0
  114. package/dist/indexer/parsers/base.d.ts +0 -0
  115. package/dist/indexer/parsers/base.d.ts.map +0 -0
  116. package/dist/indexer/parsers/base.js +0 -0
  117. package/dist/indexer/parsers/base.js.map +0 -0
  118. package/dist/indexer/parsers/cpp.d.ts +0 -0
  119. package/dist/indexer/parsers/cpp.d.ts.map +0 -0
  120. package/dist/indexer/parsers/cpp.js +0 -0
  121. package/dist/indexer/parsers/cpp.js.map +0 -0
  122. package/dist/indexer/parsers/go.d.ts +0 -0
  123. package/dist/indexer/parsers/go.d.ts.map +0 -0
  124. package/dist/indexer/parsers/go.js +0 -0
  125. package/dist/indexer/parsers/go.js.map +0 -0
  126. package/dist/indexer/parsers/java.d.ts +0 -0
  127. package/dist/indexer/parsers/java.d.ts.map +0 -0
  128. package/dist/indexer/parsers/java.js +0 -0
  129. package/dist/indexer/parsers/java.js.map +0 -0
  130. package/dist/indexer/parsers/javascript.d.ts +0 -0
  131. package/dist/indexer/parsers/javascript.d.ts.map +0 -0
  132. package/dist/indexer/parsers/javascript.js +0 -0
  133. package/dist/indexer/parsers/javascript.js.map +0 -0
  134. package/dist/indexer/parsers/kotlin.d.ts +0 -0
  135. package/dist/indexer/parsers/kotlin.d.ts.map +0 -0
  136. package/dist/indexer/parsers/kotlin.js +0 -0
  137. package/dist/indexer/parsers/kotlin.js.map +0 -0
  138. package/dist/indexer/parsers/php.d.ts +0 -0
  139. package/dist/indexer/parsers/php.d.ts.map +0 -0
  140. package/dist/indexer/parsers/php.js +0 -0
  141. package/dist/indexer/parsers/php.js.map +0 -0
  142. package/dist/indexer/parsers/python.d.ts +0 -0
  143. package/dist/indexer/parsers/python.d.ts.map +0 -0
  144. package/dist/indexer/parsers/python.js +0 -0
  145. package/dist/indexer/parsers/python.js.map +0 -0
  146. package/dist/indexer/parsers/ruby.d.ts +0 -0
  147. package/dist/indexer/parsers/ruby.d.ts.map +0 -0
  148. package/dist/indexer/parsers/ruby.js +0 -0
  149. package/dist/indexer/parsers/ruby.js.map +0 -0
  150. package/dist/indexer/parsers/rust.d.ts +0 -0
  151. package/dist/indexer/parsers/rust.d.ts.map +0 -0
  152. package/dist/indexer/parsers/rust.js +0 -0
  153. package/dist/indexer/parsers/rust.js.map +0 -0
  154. package/dist/indexer/watcher-daemon.d.ts +0 -0
  155. package/dist/indexer/watcher-daemon.d.ts.map +0 -0
  156. package/dist/indexer/watcher-daemon.js +10 -0
  157. package/dist/indexer/watcher-daemon.js.map +1 -1
  158. package/dist/indexer/watcher.d.ts +2 -0
  159. package/dist/indexer/watcher.d.ts.map +1 -1
  160. package/dist/indexer/watcher.js +8 -0
  161. package/dist/indexer/watcher.js.map +1 -1
  162. package/dist/mcp/server.d.ts +0 -0
  163. package/dist/mcp/server.d.ts.map +1 -1
  164. package/dist/mcp/server.js +343 -45
  165. package/dist/mcp/server.js.map +1 -1
  166. package/dist/proxy/interceptor-mockttp.d.ts +0 -0
  167. package/dist/proxy/interceptor-mockttp.d.ts.map +0 -0
  168. package/dist/proxy/interceptor-mockttp.js +0 -0
  169. package/dist/proxy/interceptor-mockttp.js.map +0 -0
  170. package/dist/proxy/proxy-daemon.d.ts +0 -0
  171. package/dist/proxy/proxy-daemon.d.ts.map +0 -0
  172. package/dist/proxy/proxy-daemon.js +0 -0
  173. package/dist/proxy/proxy-daemon.js.map +0 -0
  174. package/dist/query/index.d.ts +0 -0
  175. package/dist/query/index.d.ts.map +0 -0
  176. package/dist/query/index.js +0 -0
  177. package/dist/query/index.js.map +0 -0
  178. package/dist/types/index.d.ts +96 -0
  179. package/dist/types/index.d.ts.map +1 -1
  180. package/dist/types/index.js +0 -0
  181. package/dist/types/index.js.map +0 -0
  182. package/dist/visualize/index.d.ts +0 -0
  183. package/dist/visualize/index.d.ts.map +0 -0
  184. package/dist/visualize/index.js +0 -0
  185. package/dist/visualize/index.js.map +0 -0
  186. package/dist/visualize/server.d.ts +0 -0
  187. package/dist/visualize/server.d.ts.map +0 -0
  188. package/dist/visualize/server.js +0 -0
  189. package/dist/visualize/server.js.map +0 -0
  190. package/dist/visualize/template.d.ts +0 -0
  191. package/dist/visualize/template.d.ts.map +0 -0
  192. package/dist/visualize/template.js +0 -0
  193. package/dist/visualize/template.js.map +0 -0
  194. package/package.json +67 -56
  195. package/dist/cli/commands/hook-session-end.d.ts +0 -7
  196. package/dist/cli/commands/hook-session-end.d.ts.map +0 -1
  197. package/dist/cli/commands/hook-session-end.js +0 -109
  198. package/dist/cli/commands/hook-session-end.js.map +0 -1
  199. package/dist/cli/commands/hook-session-start.d.ts +0 -7
  200. package/dist/cli/commands/hook-session-start.d.ts.map +0 -1
  201. package/dist/cli/commands/hook-session-start.js +0 -116
  202. package/dist/cli/commands/hook-session-start.js.map +0 -1
@@ -11,6 +11,16 @@ const stop = startWatcher({
11
11
  onError: (error) => {
12
12
  console.error('[aimem watcher] Error:', error.message);
13
13
  },
14
+ onVindication: (projectId, path, results) => {
15
+ for (const result of results) {
16
+ if (result.result.vindicated) {
17
+ console.log(`[aimem watcher] VINDICATED! ${path} - ${result.result.reason} (DIK now: ${result.newDikLevel})`);
18
+ }
19
+ else {
20
+ console.log(`[aimem watcher] Checked ${path} - ${result.result.reason}`);
21
+ }
22
+ }
23
+ },
14
24
  });
15
25
  // Handle shutdown
16
26
  process.on('SIGTERM', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher-daemon.js","sourceRoot":"","sources":["../../src/indexer/watcher-daemon.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAE3C,MAAM,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,UAAU,cAAc,CAAC,CAAC;IAC5E,CAAC;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"watcher-daemon.js","sourceRoot":"","sources":["../../src/indexer/watcher-daemon.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAE3C,MAAM,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACvC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,UAAU,cAAc,CAAC,CAAC;IAC5E,CAAC;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,aAAa,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;YAChH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC"}
@@ -1,7 +1,9 @@
1
+ import type { VindicationCheckResult } from '../types/index.js';
1
2
  export interface WatcherOptions {
2
3
  onIndex?: (projectId: number, path: string, structures: number) => void;
3
4
  onDelete?: (projectId: number, path: string) => void;
4
5
  onError?: (error: Error) => void;
6
+ onVindication?: (projectId: number, path: string, results: VindicationCheckResult[]) => void;
5
7
  }
6
8
  export declare function startWatcher(options?: WatcherOptions): () => void;
7
9
  //# sourceMappingURL=watcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/indexer/watcher.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,IAAI,CA8DrE"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/indexer/watcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAkBhE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,IAAI,CAAC;CAC9F;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,MAAM,IAAI,CAqErE"}
@@ -1,6 +1,8 @@
1
1
  import { watch } from 'chokidar';
2
+ import { join } from 'path';
2
3
  import { getAllProjects, getFileByPath, deleteFile } from '../db/index.js';
3
4
  import { indexFile, getSupportedExtensions } from './index.js';
5
+ import { checkFileForVindications } from '../guardrails/vindication-checker.js';
4
6
  const IGNORE_PATTERNS = [
5
7
  '**/node_modules/**',
6
8
  '**/.git/**',
@@ -45,6 +47,12 @@ export function startWatcher(options = {}) {
45
47
  try {
46
48
  const count = await indexFile(project.id, project.path, path);
47
49
  options.onIndex?.(project.id, path, count);
50
+ // Check for vindications on this file
51
+ const fullPath = join(project.path, path);
52
+ const vindicationResults = checkFileForVindications(project.id, fullPath);
53
+ if (vindicationResults.length > 0) {
54
+ options.onVindication?.(project.id, path, vindicationResults);
55
+ }
48
56
  }
49
57
  catch (err) {
50
58
  options.onError?.(err);
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/indexer/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/indexer/watcher.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAsBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAqQpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA4CA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA2kBpD"}
@@ -1,7 +1,8 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
- import { searchStructures, searchConversations, structureExists, fileExists, searchExtractions, getStructuresByName, getLinksTo, getExtraction, getFile, getConversationById, searchFullConversations, findProjectForPath, searchCommits, } from '../db/index.js';
4
+ import { searchStructures, searchConversations, structureExists, fileExists, searchExtractions, getStructuresByName, getLinksTo, getExtraction, getFile, getConversationById, searchFullConversations, getRecentConversations, findProjectForPath, searchCommits, getProjectGuardrails, insertGuardrail, confirmGuardrail, deactivateGuardrail, getOrCreateProjectDik, incrementDikCounter, setAmbientPersonality, getGuardrailsConfig, setDikLevel, } from '../db/index.js';
5
+ import { checkGuardrails, overrideGuardrail, vindicateOverride, analyzeProject, saveProposedRules, calculateDik, getDikBreakdown, describeDikLevel, getPersonalityInjection, } from '../guardrails/index.js';
5
6
  export async function startMcpServer() {
6
7
  const server = new Server({
7
8
  name: 'aimem',
@@ -11,48 +12,140 @@ export async function startMcpServer() {
11
12
  tools: {},
12
13
  },
13
14
  });
14
- // List available tools
15
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
16
- tools: [
17
- {
18
- name: 'aimem_query',
19
- description: 'Search code, conversations, decisions, and commits',
20
- inputSchema: {
21
- type: 'object',
22
- properties: {
23
- query: { type: 'string', description: 'Function name, class name, or keyword' },
24
- type: { type: 'string', enum: ['all', 'structures', 'conversations', 'decisions', 'commits'], default: 'all' },
25
- limit: { type: 'number', default: 10 },
26
- },
27
- required: ['query'],
15
+ // Define base tools (always available)
16
+ const baseTools = [
17
+ {
18
+ name: 'aimem_query',
19
+ description: 'Search code, conversations, decisions, and commits',
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ query: { type: 'string', description: 'Function name, class name, or keyword' },
24
+ type: { type: 'string', enum: ['all', 'structures', 'conversations', 'decisions', 'commits'], default: 'all' },
25
+ limit: { type: 'number', default: 10 },
28
26
  },
27
+ required: ['query'],
29
28
  },
30
- {
31
- name: 'aimem_verify',
32
- description: 'Check if a function, class, or file exists',
33
- inputSchema: {
34
- type: 'object',
35
- properties: {
36
- name: { type: 'string', description: 'Name to verify' },
37
- type: { type: 'string', enum: ['structure', 'file'], default: 'structure' },
38
- },
39
- required: ['name'],
29
+ },
30
+ {
31
+ name: 'aimem_verify',
32
+ description: 'Check if a function, class, or file exists',
33
+ inputSchema: {
34
+ type: 'object',
35
+ properties: {
36
+ name: { type: 'string', description: 'Name to verify' },
37
+ type: { type: 'string', enum: ['structure', 'file'], default: 'structure' },
38
+ },
39
+ required: ['name'],
40
+ },
41
+ },
42
+ {
43
+ name: 'aimem_conversations',
44
+ description: 'Search past AI conversation history',
45
+ inputSchema: {
46
+ type: 'object',
47
+ properties: {
48
+ query: { type: 'string', description: 'Search keywords' },
49
+ id: { type: 'number', description: 'Get by ID' },
50
+ limit: { type: 'number', default: 5 },
51
+ },
52
+ },
53
+ },
54
+ ];
55
+ // Define guardrails tools (conditionally included)
56
+ const guardrailsTools = [
57
+ {
58
+ name: 'aimem_guardrails_check',
59
+ description: 'Check if a proposed action violates any project rules. Returns DIK-adjusted pushback if violations found.',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {
63
+ action: { type: 'string', description: 'What the user wants to do' },
64
+ context: { type: 'string', description: 'Additional context (file being modified, etc.)' },
65
+ },
66
+ required: ['action'],
67
+ },
68
+ },
69
+ {
70
+ name: 'aimem_guardrails_add',
71
+ description: 'Add an explicit rule to the project guardrails',
72
+ inputSchema: {
73
+ type: 'object',
74
+ properties: {
75
+ category: { type: 'string', enum: ['design', 'architecture', 'naming', 'security', 'performance', 'testing'], description: 'Rule category' },
76
+ rule: { type: 'string', description: 'The actual rule' },
77
+ rationale: { type: 'string', description: 'Why this rule exists' },
78
+ severity: { type: 'string', enum: ['info', 'warn', 'block'], default: 'warn' },
79
+ },
80
+ required: ['category', 'rule'],
81
+ },
82
+ },
83
+ {
84
+ name: 'aimem_guardrails_list',
85
+ description: 'List guardrails for current project',
86
+ inputSchema: {
87
+ type: 'object',
88
+ properties: {
89
+ category: { type: 'string', enum: ['design', 'architecture', 'naming', 'security', 'performance', 'testing'], description: 'Filter by category' },
90
+ confirmed_only: { type: 'boolean', description: 'Only show user-confirmed rules', default: false },
91
+ active_only: { type: 'boolean', description: 'Only show active rules', default: true },
40
92
  },
41
93
  },
42
- {
43
- name: 'aimem_conversations',
44
- description: 'Search past AI conversation history',
45
- inputSchema: {
46
- type: 'object',
47
- properties: {
48
- query: { type: 'string', description: 'Search keywords' },
49
- id: { type: 'number', description: 'Get by ID' },
50
- limit: { type: 'number', default: 5 },
94
+ },
95
+ {
96
+ name: 'aimem_guardrails_respond',
97
+ description: 'Respond to a guardrail: confirm, reject, override, or vindicate',
98
+ inputSchema: {
99
+ type: 'object',
100
+ properties: {
101
+ action: { type: 'string', enum: ['confirm', 'reject', 'override', 'vindicate'], description: 'Action to take' },
102
+ id: { type: 'number', description: 'Guardrail ID (for confirm/reject/override) or event ID (for vindicate)' },
103
+ reason: { type: 'string', description: 'Required for reject/override: why' },
104
+ },
105
+ required: ['action', 'id'],
106
+ },
107
+ },
108
+ {
109
+ name: 'aimem_guardrails_analyze',
110
+ description: 'Scan current project and infer rules from patterns. Use this to onboard a new project.',
111
+ inputSchema: {
112
+ type: 'object',
113
+ properties: {
114
+ categories: {
115
+ type: 'array',
116
+ items: { type: 'string', enum: ['design', 'architecture', 'naming', 'security', 'performance', 'testing'] },
117
+ description: 'Which categories to analyze (default: all)',
51
118
  },
119
+ save: { type: 'boolean', description: 'Save proposed rules as inferred guardrails', default: false },
120
+ },
121
+ },
122
+ },
123
+ {
124
+ name: 'aimem_guardrails_config',
125
+ description: 'Get or set guardrails config. Returns status, DIK level, and personality.',
126
+ inputSchema: {
127
+ type: 'object',
128
+ properties: {
129
+ set_dik: { type: 'number', description: 'Set DIK level (1-10)', minimum: 1, maximum: 10 },
130
+ ambient_personality: { type: 'boolean', description: 'Enable/disable ambient personality mode' },
52
131
  },
53
132
  },
54
- ],
55
- }));
133
+ },
134
+ ];
135
+ // List available tools - conditionally include guardrails if project uses them
136
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
137
+ const project = findProjectForPath(process.cwd());
138
+ // Check if project has guardrails configured (any rules or DIK level set)
139
+ let includeGuardrails = false;
140
+ if (project) {
141
+ const guardrails = getProjectGuardrails(project.id, { activeOnly: true });
142
+ const dikData = getOrCreateProjectDik(project.id);
143
+ includeGuardrails = guardrails.length > 0 || dikData.level > 1;
144
+ }
145
+ return {
146
+ tools: includeGuardrails ? [...baseTools, ...guardrailsTools] : baseTools,
147
+ };
148
+ });
56
149
  // Handle tool calls
57
150
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
58
151
  const { name, arguments: args } = request.params;
@@ -183,20 +276,17 @@ export async function startMcpServer() {
183
276
  }],
184
277
  };
185
278
  }
186
- // Search conversations
187
- if (!query) {
188
- return {
189
- content: [{ type: 'text', text: 'Please provide a query to search conversations, or an id to get a specific conversation' }],
190
- };
191
- }
192
279
  // Try to scope to current project
193
280
  const cwd = process.cwd();
194
281
  const project = findProjectForPath(cwd);
195
282
  const projectId = project?.id;
196
- const conversations = searchFullConversations(query, limit, projectId);
283
+ // Get recent conversations if no query provided
284
+ const conversations = query
285
+ ? searchFullConversations(query, limit, projectId)
286
+ : getRecentConversations(limit, projectId);
197
287
  if (conversations.length === 0) {
198
288
  return {
199
- content: [{ type: 'text', text: `No conversations found matching: ${query}` }],
289
+ content: [{ type: 'text', text: query ? `No conversations found matching: ${query}` : 'No conversations found' }],
200
290
  };
201
291
  }
202
292
  const results = conversations.map(c => ({
@@ -213,13 +303,221 @@ export async function startMcpServer() {
213
303
  content: [{
214
304
  type: 'text',
215
305
  text: JSON.stringify({
216
- query,
306
+ mode: query ? 'search' : 'recent',
307
+ query: query || undefined,
217
308
  count: results.length,
218
309
  conversations: results,
219
310
  }, null, 2),
220
311
  }],
221
312
  };
222
313
  }
314
+ // ============ Guardrails tools (DIK) ============
315
+ case 'aimem_guardrails_check': {
316
+ const action = args?.action;
317
+ const context = args?.context;
318
+ const project = findProjectForPath(process.cwd());
319
+ if (!project) {
320
+ return {
321
+ content: [{ type: 'text', text: 'No aimem project found for current directory. Run `aimem init` first.' }],
322
+ isError: true,
323
+ };
324
+ }
325
+ const result = checkGuardrails(project.id, action, context);
326
+ return {
327
+ content: [{
328
+ type: 'text',
329
+ text: JSON.stringify({
330
+ violations: result.violations,
331
+ dik_level: result.dik_level,
332
+ response: result.response || null,
333
+ clean: result.violations.length === 0,
334
+ }, null, 2),
335
+ }],
336
+ };
337
+ }
338
+ case 'aimem_guardrails_add': {
339
+ const category = args?.category;
340
+ const rule = args?.rule;
341
+ const rationale = args?.rationale;
342
+ const severity = args?.severity || 'warn';
343
+ const project = findProjectForPath(process.cwd());
344
+ if (!project) {
345
+ return {
346
+ content: [{ type: 'text', text: 'No aimem project found for current directory.' }],
347
+ isError: true,
348
+ };
349
+ }
350
+ const guardrail = insertGuardrail(project.id, category, rule, rationale || null, severity, 'explicit');
351
+ return {
352
+ content: [{
353
+ type: 'text',
354
+ text: JSON.stringify({ id: guardrail.id, success: true }, null, 2),
355
+ }],
356
+ };
357
+ }
358
+ case 'aimem_guardrails_list': {
359
+ const category = args?.category;
360
+ const confirmedOnly = args?.confirmed_only || false;
361
+ const activeOnly = args?.active_only !== false;
362
+ const project = findProjectForPath(process.cwd());
363
+ if (!project) {
364
+ return {
365
+ content: [{ type: 'text', text: 'No aimem project found for current directory.' }],
366
+ isError: true,
367
+ };
368
+ }
369
+ const guardrails = getProjectGuardrails(project.id, { category, confirmedOnly, activeOnly });
370
+ const dikData = getOrCreateProjectDik(project.id);
371
+ const dikLevel = calculateDik(dikData);
372
+ return {
373
+ content: [{
374
+ type: 'text',
375
+ text: JSON.stringify({
376
+ rules: guardrails.map(g => ({
377
+ id: g.id,
378
+ category: g.category,
379
+ rule: g.rule,
380
+ rationale: g.rationale,
381
+ severity: g.severity,
382
+ source: g.source,
383
+ confirmed: g.confirmed === 1,
384
+ })),
385
+ dik_level: dikLevel,
386
+ dik_description: describeDikLevel(dikLevel),
387
+ }, null, 2),
388
+ }],
389
+ };
390
+ }
391
+ case 'aimem_guardrails_respond': {
392
+ const action = args?.action;
393
+ const id = args?.id;
394
+ const reason = args?.reason;
395
+ const project = findProjectForPath(process.cwd());
396
+ if (!project) {
397
+ return {
398
+ content: [{ type: 'text', text: 'No aimem project found for current directory.' }],
399
+ isError: true,
400
+ };
401
+ }
402
+ switch (action) {
403
+ case 'confirm': {
404
+ const success = confirmGuardrail(id);
405
+ if (success) {
406
+ incrementDikCounter(project.id, 'rules_confirmed');
407
+ }
408
+ const dikData = getOrCreateProjectDik(project.id);
409
+ const newDikLevel = calculateDik(dikData);
410
+ return {
411
+ content: [{ type: 'text', text: JSON.stringify({ success, action, new_dik_level: newDikLevel }, null, 2) }],
412
+ };
413
+ }
414
+ case 'reject': {
415
+ const success = deactivateGuardrail(id);
416
+ return {
417
+ content: [{ type: 'text', text: JSON.stringify({ success, action }, null, 2) }],
418
+ };
419
+ }
420
+ case 'override': {
421
+ if (!reason) {
422
+ return {
423
+ content: [{ type: 'text', text: 'Reason is required for override action' }],
424
+ isError: true,
425
+ };
426
+ }
427
+ const eventId = overrideGuardrail(id, project.id, reason);
428
+ return {
429
+ content: [{ type: 'text', text: JSON.stringify({ success: true, action, event_id: eventId }, null, 2) }],
430
+ };
431
+ }
432
+ case 'vindicate': {
433
+ const newDikLevel = vindicateOverride(id, project.id);
434
+ return {
435
+ content: [{ type: 'text', text: JSON.stringify({ success: true, action, new_dik_level: newDikLevel }, null, 2) }],
436
+ };
437
+ }
438
+ default:
439
+ return {
440
+ content: [{ type: 'text', text: `Unknown action: ${action}` }],
441
+ isError: true,
442
+ };
443
+ }
444
+ }
445
+ case 'aimem_guardrails_analyze': {
446
+ const categories = args?.categories;
447
+ const save = args?.save || false;
448
+ const project = findProjectForPath(process.cwd());
449
+ if (!project) {
450
+ return {
451
+ content: [{ type: 'text', text: 'No aimem project found for current directory.' }],
452
+ isError: true,
453
+ };
454
+ }
455
+ const proposed = analyzeProject(project.id, { categories });
456
+ if (save && proposed.length > 0) {
457
+ const saved = saveProposedRules(project.id, proposed);
458
+ return {
459
+ content: [{
460
+ type: 'text',
461
+ text: JSON.stringify({
462
+ proposed_rules: proposed,
463
+ saved: saved.length,
464
+ message: `Saved ${saved.length} inferred guardrails. Use aimem_guardrails_confirm to validate them.`,
465
+ }, null, 2),
466
+ }],
467
+ };
468
+ }
469
+ return {
470
+ content: [{
471
+ type: 'text',
472
+ text: JSON.stringify({
473
+ proposed_rules: proposed,
474
+ message: proposed.length > 0
475
+ ? `Found ${proposed.length} patterns. Use save=true to create guardrails from them.`
476
+ : 'No patterns detected. Index more code or add explicit rules.',
477
+ }, null, 2),
478
+ }],
479
+ };
480
+ }
481
+ case 'aimem_guardrails_config': {
482
+ const ambientPersonality = args?.ambient_personality;
483
+ const setDikParam = args?.set_dik;
484
+ const project = findProjectForPath(process.cwd());
485
+ if (!project) {
486
+ return {
487
+ content: [{ type: 'text', text: 'No aimem project found for current directory.' }],
488
+ isError: true,
489
+ };
490
+ }
491
+ // Apply settings if provided
492
+ if (ambientPersonality !== undefined) {
493
+ setAmbientPersonality(project.id, ambientPersonality);
494
+ }
495
+ if (setDikParam !== undefined) {
496
+ setDikLevel(project.id, setDikParam);
497
+ }
498
+ // Get current state
499
+ const config = getGuardrailsConfig(project.id);
500
+ const dikData = getOrCreateProjectDik(project.id);
501
+ const dikLevel = calculateDik(dikData);
502
+ const breakdown = getDikBreakdown(dikData);
503
+ return {
504
+ content: [{
505
+ type: 'text',
506
+ text: JSON.stringify({
507
+ config: {
508
+ enabled: config.enabled,
509
+ ambient_personality: config.ambient_personality,
510
+ },
511
+ dik: {
512
+ level: dikLevel,
513
+ description: describeDikLevel(dikLevel),
514
+ breakdown,
515
+ },
516
+ personality: config.ambient_personality ? getPersonalityInjection(dikLevel) : null,
517
+ }, null, 2),
518
+ }],
519
+ };
520
+ }
223
521
  default:
224
522
  return {
225
523
  content: [{ type: 'text', text: `Unknown tool: ${name}` }],
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oDAAoD;gBACjE,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;wBAC/E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;wBAC9G,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;qBACvC;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,4CAA4C;gBACzD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;wBACvD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE;qBAC5E;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,qCAAqC;gBAClD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;wBACzD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;wBAChD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;qBACtC;iBACF;aACF;SACF;KACF,CAAC,CAAC,CAAC;IAEJ,oBAAoB;IACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAe,CAAC;oBACpC,MAAM,IAAI,GAAI,IAAI,EAAE,IAAe,IAAI,KAAK,CAAC;oBAC7C,MAAM,KAAK,GAAI,IAAI,EAAE,KAAgB,IAAI,EAAE,CAAC;oBAE5C,MAAM,OAAO,GAAsG,EAAE,CAAC;oBAEtH,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBAClD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACxC,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;4BAC9B,IAAI,EAAE,CAAC,CAAC,UAAU;4BAClB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,MAAM,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;4BAClC,MAAM,EAAE,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS;yBACrD,CAAC,CAAC,CAAC;oBACN,CAAC;oBAED,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;wBAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACxD,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,KAAK,EAAE,CAAC,CAAC,KAAK;4BACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;yBAClD,CAAC,CAAC,CAAC;oBACN,CAAC;oBAED,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC3C,MAAM,SAAS,GAA6D,EAAE,CAAC;wBAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;wBAE/B,0DAA0D;wBAC1D,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBAC9C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;4BAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gCACzB,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;oCACtC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oCACjD,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wCAChD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wCAC7B,SAAS,CAAC,IAAI,CAAC;4CACb,IAAI,EAAE,UAAU,CAAC,IAAI;4CACrB,OAAO,EAAE,UAAU,CAAC,OAAO;4CAC3B,MAAM,EAAE,QAAQ;yCACjB,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,iDAAiD;wBACjD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACvD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;4BAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gCACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gCACpB,SAAS,CAAC,IAAI,CAAC;oCACb,IAAI,EAAE,CAAC,CAAC,IAAI;oCACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oCAClB,MAAM,EAAE,SAAS;iCAClB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAED,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAChD,CAAC;oBAED,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;wBAClD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;wBACzD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAClC,IAAI,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BACxC,MAAM,EAAE,CAAC,CAAC,WAAW;4BACrB,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;yBACnB,CAAC,CAAC,CAAC;oBACN,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;qBACpE,CAAC;gBACJ,CAAC;gBAED,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,MAAM,UAAU,GAAG,IAAI,EAAE,IAAc,CAAC;oBACxC,MAAM,UAAU,GAAI,IAAI,EAAE,IAAe,IAAI,WAAW,CAAC;oBAEzD,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;wBAC/B,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;oBACvC,CAAC;yBAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;wBACjC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBAClC,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,UAAU;oCAChB,MAAM;oCACN,OAAO,EAAE,MAAM;wCACb,CAAC,CAAC,GAAG,UAAU,KAAK,UAAU,0BAA0B;wCACxD,CAAC,CAAC,GAAG,UAAU,KAAK,UAAU,iCAAiC;iCAClE,EAAE,IAAI,EAAE,CAAC,CAAC;6BACZ,CAAC;qBACH,CAAC;gBACJ,CAAC;gBAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,KAA2B,CAAC;oBAChD,MAAM,EAAE,GAAG,IAAI,EAAE,EAAwB,CAAC;oBAC1C,MAAM,KAAK,GAAI,IAAI,EAAE,KAAgB,IAAI,CAAC,CAAC;oBAE3C,kCAAkC;oBAClC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;wBAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;4BAClB,OAAO;gCACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,EAAE,EAAE,EAAE,CAAC;6BAC1E,CAAC;wBACJ,CAAC;wBACD,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wCACnB,EAAE,EAAE,YAAY,CAAC,EAAE;wCACnB,SAAS,EAAE,YAAY,CAAC,SAAS;wCACjC,KAAK,EAAE,YAAY,CAAC,KAAK;wCACzB,IAAI,EAAE,YAAY,CAAC,IAAI;wCACvB,OAAO,EAAE,YAAY,CAAC,OAAO;wCAC7B,OAAO,EAAE,YAAY,CAAC,WAAW;qCAClC,EAAE,IAAI,EAAE,CAAC,CAAC;iCACZ,CAAC;yBACH,CAAC;oBACJ,CAAC;oBAED,uBAAuB;oBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yFAAyF,EAAE,CAAC;yBAC7H,CAAC;oBACJ,CAAC;oBAED,kCAAkC;oBAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAG,OAAO,EAAE,EAAE,CAAC;oBAE9B,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBAEvE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC/B,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,KAAK,EAAE,EAAE,CAAC;yBAC/E,CAAC;oBACJ,CAAC;oBAED,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACtC,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI;4BAClC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,8CAA8C;4BAC/E,CAAC,CAAC,CAAC,CAAC,WAAW;qBAClB,CAAC,CAAC,CAAC;oBAEJ,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,KAAK;oCACL,KAAK,EAAE,OAAO,CAAC,MAAM;oCACrB,aAAa,EAAE,OAAO;iCACvB,EAAE,IAAI,EAAE,CAAC,CAAC;6BACZ,CAAC;qBACH,CAAC;gBACJ,CAAC;gBAED;oBACE,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;wBAC1D,OAAO,EAAE,IAAI;qBACd,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes