toolnet-memory 0.2.0 → 0.2.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 (341) hide show
  1. package/README.md +443 -70
  2. package/bin/toolnet-memory +66 -53
  3. package/bundle/agy.js +88 -0
  4. package/bundle/codex.js +92 -0
  5. package/bundle/context-runtime.js +56 -0
  6. package/bundle/context.js +62 -0
  7. package/bundle/doctor.js +3 -0
  8. package/bundle/full-index.js +8 -0
  9. package/bundle/learner.js +8 -0
  10. package/bundle/mcp.js +7 -0
  11. package/bundle/opencode.js +314 -0
  12. package/bundle/project-manual.js +54 -0
  13. package/bundle/setup.js +31 -0
  14. package/bundle/snapshot.js +4 -0
  15. package/bundle/work-continuity.js +12 -0
  16. package/package.json +11 -5
  17. package/dist/packages/cli/commands.js +0 -1
  18. package/dist/packages/cli/index.js +0 -1
  19. package/dist/packages/sdk/client.js +0 -78
  20. package/dist/packages/sdk/index.js +0 -1
  21. package/dist/packages/sdk/types.js +0 -1
  22. package/dist/src/api/index.js +0 -1
  23. package/dist/src/api/routes/health.js +0 -1
  24. package/dist/src/api/routes/index.js +0 -1
  25. package/dist/src/api/routes/memory.js +0 -1
  26. package/dist/src/api/routes/projects.js +0 -1
  27. package/dist/src/api/routes/search.js +0 -1
  28. package/dist/src/api/server.js +0 -1
  29. package/dist/src/capture/activity-capture.js +0 -21
  30. package/dist/src/capture/command-capture.js +0 -12
  31. package/dist/src/capture/error-capture.js +0 -14
  32. package/dist/src/capture/event-deduplicator.js +0 -28
  33. package/dist/src/capture/event-queue.js +0 -20
  34. package/dist/src/capture/file-capture.js +0 -23
  35. package/dist/src/capture/index.js +0 -8
  36. package/dist/src/capture/session-capture.js +0 -18
  37. package/dist/src/capture/tool-capture.js +0 -13
  38. package/dist/src/code-intelligence/analysis/analysis-engine.js +0 -26
  39. package/dist/src/code-intelligence/analysis/dead-code-analyzer.js +0 -127
  40. package/dist/src/code-intelligence/analysis/dependency-analyzer.js +0 -66
  41. package/dist/src/code-intelligence/analysis/index.js +0 -4
  42. package/dist/src/code-intelligence/analysis/types.js +0 -1
  43. package/dist/src/code-intelligence/architecture/architecture-engine.js +0 -48
  44. package/dist/src/code-intelligence/architecture/clusters.js +0 -322
  45. package/dist/src/code-intelligence/architecture/entry-points.js +0 -150
  46. package/dist/src/code-intelligence/architecture/hotspots.js +0 -136
  47. package/dist/src/code-intelligence/architecture/index.js +0 -6
  48. package/dist/src/code-intelligence/architecture/layers.js +0 -197
  49. package/dist/src/code-intelligence/architecture/types.js +0 -1
  50. package/dist/src/code-intelligence/chunks/index.js +0 -2
  51. package/dist/src/code-intelligence/chunks/smart-chunker.js +0 -125
  52. package/dist/src/code-intelligence/chunks/types.js +0 -1
  53. package/dist/src/code-intelligence/git/git-diff.js +0 -109
  54. package/dist/src/code-intelligence/git/index.js +0 -1
  55. package/dist/src/code-intelligence/graph/architecture.js +0 -26
  56. package/dist/src/code-intelligence/graph/graph-builder.js +0 -213
  57. package/dist/src/code-intelligence/graph/graph-store.js +0 -57
  58. package/dist/src/code-intelligence/graph/index.js +0 -1
  59. package/dist/src/code-intelligence/graph/relationships.js +0 -1
  60. package/dist/src/code-intelligence/graph/trace.js +0 -65
  61. package/dist/src/code-intelligence/impact/blast-radius.js +0 -160
  62. package/dist/src/code-intelligence/impact/change-mapper.js +0 -69
  63. package/dist/src/code-intelligence/impact/edit-tool-detector.js +0 -92
  64. package/dist/src/code-intelligence/impact/impact-analyzer.js +0 -60
  65. package/dist/src/code-intelligence/impact/impact-guard.js +0 -33
  66. package/dist/src/code-intelligence/impact/index.js +0 -5
  67. package/dist/src/code-intelligence/incremental/file-hash.js +0 -8
  68. package/dist/src/code-intelligence/incremental/incremental-indexer.js +0 -106
  69. package/dist/src/code-intelligence/incremental/manifest-builder.js +0 -19
  70. package/dist/src/code-intelligence/incremental/manifest.js +0 -31
  71. package/dist/src/code-intelligence/index.js +0 -23
  72. package/dist/src/code-intelligence/indexer/file-watcher.js +0 -1
  73. package/dist/src/code-intelligence/indexer/incremental-indexer.js +0 -1
  74. package/dist/src/code-intelligence/indexer/index.js +0 -1
  75. package/dist/src/code-intelligence/indexer/repository-indexer.js +0 -31
  76. package/dist/src/code-intelligence/indexer/repository-scanner.js +0 -50
  77. package/dist/src/code-intelligence/parsers/index.js +0 -1
  78. package/dist/src/code-intelligence/parsers/tree-sitter/index.js +0 -1
  79. package/dist/src/code-intelligence/parsers/tree-sitter/languages.js +0 -1
  80. package/dist/src/code-intelligence/parsers/tree-sitter/parser.js +0 -1
  81. package/dist/src/code-intelligence/parsers/typescript-parser.js +0 -190
  82. package/dist/src/code-intelligence/query/graph-query-engine.js +0 -275
  83. package/dist/src/code-intelligence/query/index.js +0 -2
  84. package/dist/src/code-intelligence/query/types.js +0 -1
  85. package/dist/src/code-intelligence/resolution/index.js +0 -2
  86. package/dist/src/code-intelligence/resolution/types.js +0 -1
  87. package/dist/src/code-intelligence/resolution/typescript-resolver.js +0 -316
  88. package/dist/src/code-intelligence/rich/index.js +0 -1
  89. package/dist/src/code-intelligence/rich/rich-graph-enricher.js +0 -463
  90. package/dist/src/code-intelligence/semantic/index.js +0 -2
  91. package/dist/src/code-intelligence/semantic/semantic-code-engine.js +0 -213
  92. package/dist/src/code-intelligence/semantic/source-priority.js +0 -22
  93. package/dist/src/code-intelligence/symbols/index.js +0 -1
  94. package/dist/src/code-intelligence/symbols/reference-resolver.js +0 -21
  95. package/dist/src/code-intelligence/symbols/symbol-extractor.js +0 -1
  96. package/dist/src/code-intelligence/test-analysis.js +0 -72
  97. package/dist/src/code-intelligence/test-architecture.js +0 -67
  98. package/dist/src/code-intelligence/test-impact.js +0 -47
  99. package/dist/src/code-intelligence/test-incremental.js +0 -24
  100. package/dist/src/code-intelligence/test-index.js +0 -39
  101. package/dist/src/code-intelligence/test-resolution.js +0 -54
  102. package/dist/src/code-intelligence/test-rich-graph.js +0 -48
  103. package/dist/src/code-intelligence/test-semantic.js +0 -57
  104. package/dist/src/code-intelligence/test-visualization.js +0 -36
  105. package/dist/src/code-intelligence/types.js +0 -1
  106. package/dist/src/code-intelligence/visualization/index.js +0 -2
  107. package/dist/src/code-intelligence/visualization/types.js +0 -1
  108. package/dist/src/code-intelligence/visualization/visualization-builder.js +0 -104
  109. package/dist/src/core/config.js +0 -66
  110. package/dist/src/core/global-env.js +0 -70
  111. package/dist/src/core/importance.js +0 -30
  112. package/dist/src/core/index.js +0 -5
  113. package/dist/src/core/memory-engine.js +0 -183
  114. package/dist/src/core/project-manager.js +0 -243
  115. package/dist/src/core/types.js +0 -1
  116. package/dist/src/embeddings/batch-embedder.js +0 -1
  117. package/dist/src/embeddings/cache.js +0 -1
  118. package/dist/src/embeddings/embedder.js +0 -51
  119. package/dist/src/embeddings/index.js +0 -4
  120. package/dist/src/embeddings/local.js +0 -37
  121. package/dist/src/embeddings/provider.js +0 -1
  122. package/dist/src/embeddings/remote.js +0 -76
  123. package/dist/src/embeddings/test-connection.js +0 -16
  124. package/dist/src/hooks/after-edit.js +0 -3
  125. package/dist/src/hooks/after-tool.js +0 -3
  126. package/dist/src/hooks/auto-context.js +0 -68
  127. package/dist/src/hooks/auto-impact-guard.js +0 -94
  128. package/dist/src/hooks/auto-retrieval.js +0 -27
  129. package/dist/src/hooks/before-agent.js +0 -18
  130. package/dist/src/hooks/before-compact.js +0 -3
  131. package/dist/src/hooks/before-edit.js +0 -20
  132. package/dist/src/hooks/index.js +0 -11
  133. package/dist/src/hooks/runtime.js +0 -110
  134. package/dist/src/hooks/session-end.js +0 -3
  135. package/dist/src/hooks/session-start.js +0 -3
  136. package/dist/src/index.js +0 -22
  137. package/dist/src/mcp/bootstrap.js +0 -68
  138. package/dist/src/mcp/context.js +0 -1
  139. package/dist/src/mcp/index.js +0 -3
  140. package/dist/src/mcp/server.js +0 -45
  141. package/dist/src/mcp/tools/analyze-impact.js +0 -41
  142. package/dist/src/mcp/tools/dead-code.js +0 -55
  143. package/dist/src/mcp/tools/find-callers.js +0 -24
  144. package/dist/src/mcp/tools/find-dependencies.js +0 -57
  145. package/dist/src/mcp/tools/find-symbol.js +0 -7
  146. package/dist/src/mcp/tools/get-architecture.js +0 -11
  147. package/dist/src/mcp/tools/graph-dependents.js +0 -24
  148. package/dist/src/mcp/tools/graph-neighborhood.js +0 -58
  149. package/dist/src/mcp/tools/graph-path.js +0 -43
  150. package/dist/src/mcp/tools/graph-query-utils.js +0 -32
  151. package/dist/src/mcp/tools/impact-guard.js +0 -34
  152. package/dist/src/mcp/tools/index-repository.js +0 -1
  153. package/dist/src/mcp/tools/index.js +0 -20
  154. package/dist/src/mcp/tools/memory-decisions.js +0 -1
  155. package/dist/src/mcp/tools/memory-forget.js +0 -14
  156. package/dist/src/mcp/tools/memory-recent.js +0 -1
  157. package/dist/src/mcp/tools/memory-remember.js +0 -33
  158. package/dist/src/mcp/tools/memory-rules.js +0 -1
  159. package/dist/src/mcp/tools/memory-search.js +0 -18
  160. package/dist/src/mcp/tools/memory-todos.js +0 -1
  161. package/dist/src/mcp/tools/project-context.js +0 -25
  162. package/dist/src/mcp/tools/search-code.js +0 -21
  163. package/dist/src/mcp/tools/semantic-code-search.js +0 -33
  164. package/dist/src/mcp/tools/snapshot-create.js +0 -13
  165. package/dist/src/mcp/tools/snapshot-list.js +0 -7
  166. package/dist/src/mcp/tools/snapshot-restore.js +0 -13
  167. package/dist/src/mcp/tools/trace-calls.js +0 -37
  168. package/dist/src/memory/activity.js +0 -5
  169. package/dist/src/memory/conflict-detector.js +0 -105
  170. package/dist/src/memory/consolidator.js +0 -104
  171. package/dist/src/memory/decay.js +0 -59
  172. package/dist/src/memory/decisions.js +0 -3
  173. package/dist/src/memory/deduplicate.js +0 -25
  174. package/dist/src/memory/index.js +0 -11
  175. package/dist/src/memory/maintenance.js +0 -16
  176. package/dist/src/memory/remember.js +0 -3
  177. package/dist/src/memory/rules.js +0 -3
  178. package/dist/src/memory/search.js +0 -3
  179. package/dist/src/memory/summaries.js +0 -1
  180. package/dist/src/memory/todos.js +0 -3
  181. package/dist/src/processor/decision-extractor.js +0 -13
  182. package/dist/src/processor/importance-scorer.js +0 -22
  183. package/dist/src/processor/index.js +0 -7
  184. package/dist/src/processor/memory-extractor.js +0 -59
  185. package/dist/src/processor/memory-processor.js +0 -105
  186. package/dist/src/processor/rule-extractor.js +0 -13
  187. package/dist/src/processor/summarizer.js +0 -71
  188. package/dist/src/processor/todo-extractor.js +0 -12
  189. package/dist/src/production/config-check.js +0 -34
  190. package/dist/src/production/doctor.js +0 -58
  191. package/dist/src/production/full-index.js +0 -114
  192. package/dist/src/production/health.js +0 -58
  193. package/dist/src/production/index-pipeline.js +0 -151
  194. package/dist/src/production/index.js +0 -4
  195. package/dist/src/production/project-lock.js +0 -95
  196. package/dist/src/production/project-status.js +0 -16
  197. package/dist/src/production/recovery.js +0 -15
  198. package/dist/src/production/snapshot-cli.js +0 -58
  199. package/dist/src/project-manual/cli.js +0 -77
  200. package/dist/src/project-manual/index.js +0 -2
  201. package/dist/src/project-manual/manager.js +0 -147
  202. package/dist/src/project-manual/types.js +0 -1
  203. package/dist/src/retrieval/bm25/index.js +0 -1
  204. package/dist/src/retrieval/bm25/search.js +0 -1
  205. package/dist/src/retrieval/bm25.js +0 -30
  206. package/dist/src/retrieval/context-budget.js +0 -1
  207. package/dist/src/retrieval/context-builder.js +0 -22
  208. package/dist/src/retrieval/graph/index.js +0 -1
  209. package/dist/src/retrieval/graph/search.js +0 -1
  210. package/dist/src/retrieval/hybrid/hybrid-search.js +0 -1
  211. package/dist/src/retrieval/hybrid/index.js +0 -1
  212. package/dist/src/retrieval/hybrid-search.js +0 -68
  213. package/dist/src/retrieval/importance.js +0 -16
  214. package/dist/src/retrieval/index.js +0 -12
  215. package/dist/src/retrieval/query-analyzer.js +0 -32
  216. package/dist/src/retrieval/query-classifier.js +0 -1
  217. package/dist/src/retrieval/query-expansion.js +0 -1
  218. package/dist/src/retrieval/recency.js +0 -12
  219. package/dist/src/retrieval/reranker/index.js +0 -1
  220. package/dist/src/retrieval/reranker/reranker.js +0 -1
  221. package/dist/src/retrieval/retrieval-engine.js +0 -17
  222. package/dist/src/retrieval/tokenizer.js +0 -9
  223. package/dist/src/retrieval/type-priority.js +0 -10
  224. package/dist/src/retrieval/types.js +0 -1
  225. package/dist/src/retrieval/vector/index.js +0 -4
  226. package/dist/src/retrieval/vector/metadata-filter.js +0 -1
  227. package/dist/src/retrieval/vector/persistence.js +0 -67
  228. package/dist/src/retrieval/vector/search.js +0 -12
  229. package/dist/src/retrieval/vector/test-persistence.js +0 -36
  230. package/dist/src/retrieval/vector/upsert.js +0 -40
  231. package/dist/src/retrieval/vector/vector-store.js +0 -89
  232. package/dist/src/retrieval/vector-hybrid-engine.js +0 -91
  233. package/dist/src/runtime/bootstrap.js +0 -28
  234. package/dist/src/runtime/graceful.js +0 -17
  235. package/dist/src/runtime/index.js +0 -3
  236. package/dist/src/runtime/toolnet-memory-runtime.js +0 -156
  237. package/dist/src/security/encryption.js +0 -1
  238. package/dist/src/security/file-filter.js +0 -30
  239. package/dist/src/security/index.js +0 -3
  240. package/dist/src/security/sanitizer.js +0 -49
  241. package/dist/src/security/secret-scanner.js +0 -56
  242. package/dist/src/session/agy/adapter.js +0 -159
  243. package/dist/src/session/agy/cli.js +0 -87
  244. package/dist/src/session/agy/hook-installer.js +0 -62
  245. package/dist/src/session/agy/hook.js +0 -167
  246. package/dist/src/session/agy/index.js +0 -5
  247. package/dist/src/session/agy/project-resolver.js +0 -27
  248. package/dist/src/session/agy/recovery.js +0 -112
  249. package/dist/src/session/agy/transcript.js +0 -191
  250. package/dist/src/session/codex/adapter.js +0 -138
  251. package/dist/src/session/codex/cli.js +0 -236
  252. package/dist/src/session/codex/context-hook-installer.js +0 -70
  253. package/dist/src/session/codex/context-hook.js +0 -69
  254. package/dist/src/session/codex/discovery.js +0 -138
  255. package/dist/src/session/codex/index.js +0 -6
  256. package/dist/src/session/codex/notify-installer.js +0 -135
  257. package/dist/src/session/codex/project-resolver.js +0 -25
  258. package/dist/src/session/codex/recovery.js +0 -27
  259. package/dist/src/session/codex/rollout.js +0 -186
  260. package/dist/src/session/core.js +0 -239
  261. package/dist/src/session/identity.js +0 -57
  262. package/dist/src/session/index.js +0 -9
  263. package/dist/src/session/learner/cli.js +0 -62
  264. package/dist/src/session/learner/extractor.js +0 -461
  265. package/dist/src/session/learner/index.js +0 -4
  266. package/dist/src/session/learner/journal.js +0 -159
  267. package/dist/src/session/learner/learner.js +0 -124
  268. package/dist/src/session/learner/types.js +0 -1
  269. package/dist/src/session/opencode/adapter.js +0 -553
  270. package/dist/src/session/opencode/cli.js +0 -121
  271. package/dist/src/session/opencode/index.js +0 -2
  272. package/dist/src/session/opencode/plugin-installer.js +0 -230
  273. package/dist/src/session/store.js +0 -242
  274. package/dist/src/session/types.js +0 -1
  275. package/dist/src/session/utils.js +0 -47
  276. package/dist/src/session/wal.js +0 -303
  277. package/dist/src/snapshot/index.js +0 -2
  278. package/dist/src/snapshot/manager.js +0 -130
  279. package/dist/src/snapshot/test-snapshot.js +0 -28
  280. package/dist/src/snapshot/types.js +0 -1
  281. package/dist/src/storage/architecture-store.js +0 -37
  282. package/dist/src/storage/cleanup-health.js +0 -20
  283. package/dist/src/storage/code-analysis-store.js +0 -35
  284. package/dist/src/storage/code-chunk-store.js +0 -25
  285. package/dist/src/storage/code-graph-store.js +0 -24
  286. package/dist/src/storage/code-manifest-store.js +0 -24
  287. package/dist/src/storage/code-vector-store.js +0 -25
  288. package/dist/src/storage/github/client.js +0 -1
  289. package/dist/src/storage/github/index.js +0 -1
  290. package/dist/src/storage/google-drive/client.js +0 -1
  291. package/dist/src/storage/google-drive/index.js +0 -1
  292. package/dist/src/storage/huggingface/client.js +0 -116
  293. package/dist/src/storage/huggingface/index.js +0 -1
  294. package/dist/src/storage/index.js +0 -16
  295. package/dist/src/storage/list-bucket-raw.js +0 -14
  296. package/dist/src/storage/list-bucket-tree.js +0 -38
  297. package/dist/src/storage/local/client.js +0 -99
  298. package/dist/src/storage/local/index.js +0 -1
  299. package/dist/src/storage/memory-store.js +0 -30
  300. package/dist/src/storage/project/cleanup-layout-v1.js +0 -72
  301. package/dist/src/storage/project/folder.js +0 -15
  302. package/dist/src/storage/project/index.js +0 -3
  303. package/dist/src/storage/project/layout.js +0 -74
  304. package/dist/src/storage/project/migrate-layout-v2.js +0 -101
  305. package/dist/src/storage/project/migrate.js +0 -73
  306. package/dist/src/storage/project/scoped-provider.js +0 -165
  307. package/dist/src/storage/provider.js +0 -26
  308. package/dist/src/storage/retrying-provider.js +0 -23
  309. package/dist/src/storage/test-connection.js +0 -32
  310. package/dist/src/storage/type-resolution-store.js +0 -26
  311. package/dist/src/storage/types.js +0 -1
  312. package/dist/src/storage/vector-store.js +0 -30
  313. package/dist/src/storage/visualization-store.js +0 -25
  314. package/dist/src/sync/compressor.js +0 -1
  315. package/dist/src/sync/conflict-resolver.js +0 -1
  316. package/dist/src/sync/downloader.js +0 -1
  317. package/dist/src/sync/index.js +0 -1
  318. package/dist/src/sync/sync-engine.js +0 -1
  319. package/dist/src/sync/upload-queue.js +0 -1
  320. package/dist/src/utils/retry.js +0 -29
  321. package/dist/src/visualization/server.js +0 -270
  322. package/dist/src/work-continuity/brief-cache.js +0 -107
  323. package/dist/src/work-continuity/brief.js +0 -349
  324. package/dist/src/work-continuity/cli.js +0 -96
  325. package/dist/src/work-continuity/context-cli.js +0 -106
  326. package/dist/src/work-continuity/context-runtime-cli.js +0 -88
  327. package/dist/src/work-continuity/extractor.js +0 -339
  328. package/dist/src/work-continuity/handoff.js +0 -185
  329. package/dist/src/work-continuity/index.js +0 -14
  330. package/dist/src/work-continuity/injection.js +0 -84
  331. package/dist/src/work-continuity/journal.js +0 -49
  332. package/dist/src/work-continuity/learner.js +0 -127
  333. package/dist/src/work-continuity/reducer.js +0 -316
  334. package/dist/src/work-continuity/semantic-extractor.js +0 -360
  335. package/dist/src/work-continuity/semantic-journal.js +0 -55
  336. package/dist/src/work-continuity/semantic-learner.js +0 -125
  337. package/dist/src/work-continuity/semantic-reducer.js +0 -268
  338. package/dist/src/work-continuity/semantic-types.js +0 -1
  339. package/dist/src/work-continuity/types.js +0 -1
  340. package/dist/visualization/public/index.html +0 -2896
  341. package/dist/visualization/public/vendor/3d-force-graph.min.js +0 -5
@@ -1,55 +0,0 @@
1
- import { z, } from "zod";
2
- import { DeadCodeAnalyzer, } from "../../code-intelligence/analysis/dead-code-analyzer.js";
3
- export const deadCodeSchema = {
4
- confidence: z.enum([
5
- "high",
6
- "medium",
7
- "low",
8
- "all",
9
- ])
10
- .optional(),
11
- filePath: z.string()
12
- .min(1)
13
- .optional(),
14
- limit: z.number()
15
- .int()
16
- .min(1)
17
- .max(500)
18
- .optional(),
19
- };
20
- const RANK = {
21
- high: 3,
22
- medium: 2,
23
- low: 1,
24
- };
25
- export async function deadCode(ctx, input) {
26
- const analyzer = new DeadCodeAnalyzer(ctx.graph);
27
- let result = analyzer.analyze(ctx.project.id);
28
- if (input.confidence &&
29
- input.confidence !==
30
- "all") {
31
- const minimum = RANK[input.confidence];
32
- result =
33
- result.filter((item) => RANK[item.confidence] >= minimum);
34
- }
35
- if (input.filePath) {
36
- result =
37
- result.filter((item) => item.filePath ===
38
- input.filePath);
39
- }
40
- const total = result.length;
41
- const limit = input.limit ??
42
- 100;
43
- return {
44
- total,
45
- high: result.filter((item) => item.confidence ===
46
- "high").length,
47
- medium: result.filter((item) => item.confidence ===
48
- "medium").length,
49
- low: result.filter((item) => item.confidence ===
50
- "low").length,
51
- warning: "Dead-code results are candidates only. Verify before deleting code.",
52
- candidates: result
53
- .slice(0, limit),
54
- };
55
- }
@@ -1,24 +0,0 @@
1
- import { z, } from "zod";
2
- import { GraphQueryEngine, } from "../../code-intelligence/query/graph-query-engine.js";
3
- import { compactSymbol, resolveGraphSymbol, } from "./graph-query-utils.js";
4
- export const findCallersSchema = {
5
- symbolId: z.string().min(1),
6
- };
7
- export async function findCallers(ctx, input) {
8
- const symbol = resolveGraphSymbol(ctx, input.symbolId);
9
- if (!symbol) {
10
- return {
11
- found: false,
12
- query: input.symbolId,
13
- callers: [],
14
- };
15
- }
16
- const query = new GraphQueryEngine(ctx.graph);
17
- const callers = query.callers(ctx.project.id, symbol.id);
18
- return {
19
- found: true,
20
- symbol: compactSymbol(symbol),
21
- count: callers.length,
22
- callers: callers.map(compactSymbol),
23
- };
24
- }
@@ -1,57 +0,0 @@
1
- import { z, } from "zod";
2
- import { DependencyAnalyzer, } from "../../code-intelligence/analysis/dependency-analyzer.js";
3
- export const findDependenciesSchema = {
4
- filePath: z.string().min(1),
5
- direction: z.enum([
6
- "dependencies",
7
- "dependents",
8
- "both",
9
- ])
10
- .optional(),
11
- };
12
- export async function findDependencies(ctx, input) {
13
- const analyzer = new DependencyAnalyzer(ctx.graph);
14
- const record = analyzer
15
- .analyze(ctx.project.id)
16
- .find((item) => item.filePath ===
17
- input.filePath);
18
- if (!record) {
19
- return {
20
- found: false,
21
- filePath: input.filePath,
22
- dependencies: [],
23
- dependents: [],
24
- };
25
- }
26
- const fileSymbols = ctx.graph
27
- .allSymbols(ctx.project.id)
28
- .filter((symbol) => symbol.type === "file");
29
- const fileByPath = new Map(fileSymbols.map((symbol) => [
30
- symbol.filePath,
31
- symbol,
32
- ]));
33
- const formatFile = (filePath) => {
34
- const symbol = fileByPath.get(filePath);
35
- return {
36
- id: symbol?.id ??
37
- filePath,
38
- filePath,
39
- };
40
- };
41
- const direction = input.direction ??
42
- "both";
43
- return {
44
- found: true,
45
- filePath: record.filePath,
46
- outgoingEdges: record.outgoingEdges,
47
- incomingEdges: record.incomingEdges,
48
- dependencies: direction ===
49
- "dependents"
50
- ? []
51
- : record.dependencies.map(formatFile),
52
- dependents: direction ===
53
- "dependencies"
54
- ? []
55
- : record.dependents.map(formatFile),
56
- };
57
- }
@@ -1,7 +0,0 @@
1
- import { z } from "zod";
2
- export const findSymbolSchema = {
3
- name: z.string().min(1),
4
- };
5
- export async function findSymbol(ctx, input) {
6
- return ctx.graph.findByName(ctx.project.id, input.name);
7
- }
@@ -1,11 +0,0 @@
1
- import { getArchitecture, } from "../../code-intelligence/graph/architecture.js";
2
- export async function getProjectArchitecture(ctx) {
3
- return {
4
- project: {
5
- id: ctx.project.id,
6
- name: ctx.project.name,
7
- rootPath: ctx.project.rootPath,
8
- },
9
- architecture: getArchitecture(ctx.graph, ctx.project.id),
10
- };
11
- }
@@ -1,24 +0,0 @@
1
- import { z, } from "zod";
2
- import { GraphQueryEngine, } from "../../code-intelligence/query/graph-query-engine.js";
3
- import { compactSymbol, resolveGraphSymbol, } from "./graph-query-utils.js";
4
- export const graphDependentsSchema = {
5
- symbol: z.string().min(1),
6
- };
7
- export async function graphDependents(ctx, input) {
8
- const target = resolveGraphSymbol(ctx, input.symbol);
9
- if (!target) {
10
- return {
11
- found: false,
12
- query: input.symbol,
13
- dependents: [],
14
- };
15
- }
16
- const query = new GraphQueryEngine(ctx.graph);
17
- const dependents = query.dependents(ctx.project.id, target.id);
18
- return {
19
- found: true,
20
- symbol: compactSymbol(target),
21
- count: dependents.length,
22
- dependents: dependents.map(compactSymbol),
23
- };
24
- }
@@ -1,58 +0,0 @@
1
- import { z, } from "zod";
2
- import { GraphQueryEngine, } from "../../code-intelligence/query/graph-query-engine.js";
3
- import { compactSymbol, resolveGraphSymbol, } from "./graph-query-utils.js";
4
- export const graphNeighborhoodSchema = {
5
- symbol: z.string().min(1),
6
- depth: z.number()
7
- .int()
8
- .min(1)
9
- .max(5)
10
- .optional(),
11
- limit: z.number()
12
- .int()
13
- .min(1)
14
- .max(200)
15
- .optional(),
16
- };
17
- export async function graphNeighborhood(ctx, input) {
18
- const symbol = resolveGraphSymbol(ctx, input.symbol);
19
- if (!symbol) {
20
- return {
21
- found: false,
22
- query: input.symbol,
23
- };
24
- }
25
- const query = new GraphQueryEngine(ctx.graph);
26
- const result = query.neighborhood(ctx.project.id, symbol.id, input.depth ??
27
- 1);
28
- if (!result) {
29
- return {
30
- found: false,
31
- query: input.symbol,
32
- };
33
- }
34
- const limit = input.limit ??
35
- 50;
36
- return {
37
- found: true,
38
- center: compactSymbol(result.center),
39
- incomingCount: result.incoming.length,
40
- outgoingCount: result.outgoing.length,
41
- incoming: result.incoming
42
- .slice(0, limit)
43
- .map((item) => ({
44
- depth: item.depth,
45
- via: item.via
46
- ?.type,
47
- symbol: compactSymbol(item.symbol),
48
- })),
49
- outgoing: result.outgoing
50
- .slice(0, limit)
51
- .map((item) => ({
52
- depth: item.depth,
53
- via: item.via
54
- ?.type,
55
- symbol: compactSymbol(item.symbol),
56
- })),
57
- };
58
- }
@@ -1,43 +0,0 @@
1
- import { z, } from "zod";
2
- import { GraphQueryEngine, } from "../../code-intelligence/query/graph-query-engine.js";
3
- import { compactSymbol, resolveGraphSymbol, } from "./graph-query-utils.js";
4
- export const graphPathSchema = {
5
- from: z.string().min(1),
6
- to: z.string().min(1),
7
- maxDepth: z.number()
8
- .int()
9
- .min(1)
10
- .max(30)
11
- .optional(),
12
- };
13
- export async function graphPath(ctx, input) {
14
- const from = resolveGraphSymbol(ctx, input.from);
15
- const to = resolveGraphSymbol(ctx, input.to);
16
- if (!from ||
17
- !to) {
18
- return {
19
- found: false,
20
- fromFound: Boolean(from),
21
- toFound: Boolean(to),
22
- path: [],
23
- edges: [],
24
- };
25
- }
26
- const query = new GraphQueryEngine(ctx.graph);
27
- const result = query.shortestPath(ctx.project.id, from.id, to.id, input.maxDepth ??
28
- 12);
29
- return {
30
- found: result.found,
31
- distance: result.distance,
32
- from: compactSymbol(from),
33
- to: compactSymbol(to),
34
- path: result.symbols.map(compactSymbol),
35
- edges: result.edges.map((edge) => ({
36
- id: edge.id,
37
- type: edge.type,
38
- from: edge.from,
39
- to: edge.to,
40
- metadata: edge.metadata,
41
- })),
42
- };
43
- }
@@ -1,32 +0,0 @@
1
- import { GraphQueryEngine, } from "../../code-intelligence/query/graph-query-engine.js";
2
- export function resolveGraphSymbol(ctx, value) {
3
- const direct = ctx.graph.getSymbol(value);
4
- if (direct &&
5
- direct.projectId ===
6
- ctx.project.id) {
7
- return direct;
8
- }
9
- const query = new GraphQueryEngine(ctx.graph);
10
- const exact = query
11
- .findSymbols(ctx.project.id, value)
12
- .find((symbol) => symbol.name ===
13
- value ||
14
- symbol.qualifiedName ===
15
- value);
16
- if (exact) {
17
- return exact;
18
- }
19
- return (query.findSymbols(ctx.project.id, value)[0] ??
20
- null);
21
- }
22
- export function compactSymbol(symbol) {
23
- return {
24
- id: symbol.id,
25
- name: symbol.name,
26
- qualifiedName: symbol.qualifiedName,
27
- type: symbol.type,
28
- filePath: symbol.filePath,
29
- startLine: symbol.startLine,
30
- endLine: symbol.endLine,
31
- };
32
- }
@@ -1,34 +0,0 @@
1
- import { z, } from "zod";
2
- import { ImpactGuard, } from "../../code-intelligence/impact/impact-guard.js";
3
- export const impactGuardSchema = {
4
- mode: z.enum([
5
- "git_diff",
6
- "file",
7
- ])
8
- .optional(),
9
- filePath: z.string()
10
- .optional(),
11
- depth: z.number()
12
- .int()
13
- .min(1)
14
- .max(10)
15
- .optional(),
16
- };
17
- export async function impactGuard(ctx, input) {
18
- const guard = new ImpactGuard(ctx.graph);
19
- const mode = input.mode ??
20
- (input.filePath
21
- ? "file"
22
- : "git_diff");
23
- if (mode === "file") {
24
- if (!input.filePath) {
25
- throw new Error("filePath is required when mode=file");
26
- }
27
- return guard.analyzeFile(ctx.project.id, input.filePath, {
28
- maxDepth: input.depth,
29
- });
30
- }
31
- return guard.analyzeGitDiff(ctx.project.id, ctx.project.rootPath, {
32
- maxDepth: input.depth,
33
- });
34
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
1
- export * from "./memory-search.js";
2
- export * from "./memory-remember.js";
3
- export * from "./memory-forget.js";
4
- export * from "./find-symbol.js";
5
- export * from "./find-callers.js";
6
- export * from "./search-code.js";
7
- export * from "./project-context.js";
8
- export * from "./snapshot-create.js";
9
- export * from "./snapshot-list.js";
10
- export * from "./snapshot-restore.js";
11
- export * from "./trace-calls.js";
12
- export * from "./analyze-impact.js";
13
- export * from "./get-architecture.js";
14
- export * from "./find-dependencies.js";
15
- export * from "./semantic-code-search.js";
16
- export * from "./impact-guard.js";
17
- export * from "./graph-dependents.js";
18
- export * from "./graph-path.js";
19
- export * from "./graph-neighborhood.js";
20
- export * from "./dead-code.js";
@@ -1 +0,0 @@
1
- export {};
@@ -1,14 +0,0 @@
1
- import { z, } from "zod";
2
- export const memoryForgetSchema = {
3
- id: z.string().min(1),
4
- };
5
- export async function memoryForget(ctx, input) {
6
- const deleted = ctx.memory.delete(input.id);
7
- if (deleted &&
8
- ctx.memoryStore) {
9
- await ctx.memoryStore.save(ctx.project.id, ctx.memory.exportProject(ctx.project.id));
10
- }
11
- return {
12
- deleted,
13
- };
14
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,33 +0,0 @@
1
- import { z, } from "zod";
2
- export const memoryRememberSchema = {
3
- type: z.enum([
4
- "activity",
5
- "decision",
6
- "rule",
7
- "todo",
8
- "summary",
9
- ]),
10
- content: z.string()
11
- .min(1),
12
- tags: z.array(z.string()).optional(),
13
- importance: z.enum([
14
- "critical",
15
- "high",
16
- "normal",
17
- "temporary",
18
- ]).optional(),
19
- };
20
- export async function memoryRemember(ctx, input) {
21
- const record = ctx.memory.remember({
22
- projectId: ctx.project.id,
23
- type: input.type,
24
- content: input.content,
25
- tags: input.tags,
26
- importance: input.importance,
27
- source: "mcp",
28
- });
29
- if (ctx.memoryStore) {
30
- await ctx.memoryStore.save(ctx.project.id, ctx.memory.exportProject(ctx.project.id));
31
- }
32
- return record;
33
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- import { z } from "zod";
2
- export const memorySearchSchema = {
3
- query: z.string(),
4
- limit: z.number().int().min(1).max(20).optional(),
5
- };
6
- export async function memorySearch(ctx, input) {
7
- const results = ctx.retrieval.search(ctx.project.id, input.query, {
8
- topK: input.limit ?? 8,
9
- });
10
- return results.map((result) => ({
11
- id: result.memory.id,
12
- type: result.memory.type,
13
- content: result.memory.content,
14
- importance: result.memory.importance,
15
- score: result.score,
16
- tags: result.memory.tags,
17
- }));
18
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,25 +0,0 @@
1
- import { z } from "zod";
2
- import { getArchitecture } from "../../code-intelligence/graph/architecture.js";
3
- export const projectContextSchema = {
4
- query: z.string().optional(),
5
- memoryLimit: z.number().int().min(1).max(20).optional(),
6
- };
7
- export async function projectContext(ctx, input) {
8
- const architecture = getArchitecture(ctx.graph, ctx.project.id);
9
- const recent = ctx.memory.recent(ctx.project.id, 5);
10
- const relevant = input.query
11
- ? ctx.retrieval.search(ctx.project.id, input.query, {
12
- topK: input.memoryLimit ?? 5,
13
- })
14
- : [];
15
- return {
16
- project: {
17
- id: ctx.project.id,
18
- name: ctx.project.name,
19
- rootPath: ctx.project.rootPath,
20
- },
21
- architecture,
22
- recent,
23
- relevant: relevant.map((item) => item.memory),
24
- };
25
- }
@@ -1,21 +0,0 @@
1
- import { z } from "zod";
2
- export const searchCodeSchema = {
3
- query: z.string().min(1),
4
- limit: z.number().int().min(1).max(50).optional(),
5
- };
6
- export async function searchCode(ctx, input) {
7
- const q = input.query.toLowerCase();
8
- const limit = input.limit ?? 20;
9
- return ctx.graph
10
- .allSymbols(ctx.project.id)
11
- .filter((symbol) => symbol.name
12
- .toLowerCase()
13
- .includes(q) ||
14
- symbol.qualifiedName
15
- ?.toLowerCase()
16
- .includes(q) ||
17
- symbol.filePath
18
- .toLowerCase()
19
- .includes(q))
20
- .slice(0, limit);
21
- }
@@ -1,33 +0,0 @@
1
- import { z, } from "zod";
2
- export const semanticCodeSearchSchema = {
3
- query: z.string().min(1),
4
- limit: z.number()
5
- .int()
6
- .min(1)
7
- .max(20)
8
- .optional(),
9
- };
10
- export async function semanticCodeSearch(ctx, input) {
11
- if (!ctx.codeSemantic) {
12
- return {
13
- available: false,
14
- results: [],
15
- };
16
- }
17
- const results = await ctx.codeSemantic.search(input.query, input.limit ?? 8);
18
- return {
19
- available: true,
20
- results: results.map((result) => ({
21
- id: result.chunk.id,
22
- filePath: result.chunk.filePath,
23
- symbol: result.chunk.symbolName,
24
- symbolType: result.chunk.symbolType,
25
- startLine: result.chunk.startLine,
26
- endLine: result.chunk.endLine,
27
- score: result.score,
28
- vectorScore: result.vectorScore,
29
- lexicalScore: result.lexicalScore,
30
- content: result.chunk.content,
31
- })),
32
- };
33
- }
@@ -1,13 +0,0 @@
1
- import { z, } from "zod";
2
- import { SnapshotManager, } from "../../snapshot/index.js";
3
- export const snapshotCreateSchema = {
4
- reason: z.string()
5
- .optional(),
6
- };
7
- export async function snapshotCreate(ctx, input) {
8
- if (!ctx.storage) {
9
- throw new Error("Storage unavailable");
10
- }
11
- return new SnapshotManager(ctx.storage).create(ctx.project.id, input.reason ??
12
- "manual-mcp");
13
- }
@@ -1,7 +0,0 @@
1
- import { SnapshotManager, } from "../../snapshot/index.js";
2
- export async function snapshotList(ctx) {
3
- if (!ctx.storage) {
4
- throw new Error("Storage unavailable");
5
- }
6
- return new SnapshotManager(ctx.storage).list(ctx.project.id);
7
- }
@@ -1,13 +0,0 @@
1
- import { z, } from "zod";
2
- import { SnapshotManager, } from "../../snapshot/index.js";
3
- export const snapshotRestoreSchema = {
4
- snapshotId: z.string().min(1),
5
- };
6
- export async function snapshotRestore(ctx, input) {
7
- if (!ctx.storage) {
8
- throw new Error("Storage unavailable");
9
- }
10
- const manager = new SnapshotManager(ctx.storage);
11
- await manager.create(ctx.project.id, "before-rollback");
12
- return manager.restore(ctx.project.id, input.snapshotId);
13
- }
@@ -1,37 +0,0 @@
1
- import { z, } from "zod";
2
- import { CallGraphTracer, } from "../../code-intelligence/graph/trace.js";
3
- export const traceCallsSchema = {
4
- symbolId: z.string().min(1),
5
- direction: z.enum([
6
- "callers",
7
- "callees",
8
- ])
9
- .optional(),
10
- depth: z.number()
11
- .int()
12
- .min(1)
13
- .max(10)
14
- .optional(),
15
- };
16
- export async function traceCalls(ctx, input) {
17
- const tracer = new CallGraphTracer(ctx.graph);
18
- const direction = input.direction ??
19
- "callees";
20
- const depth = input.depth ?? 3;
21
- const results = direction === "callers"
22
- ? tracer.callers(ctx.project.id, input.symbolId, depth)
23
- : tracer.callees(ctx.project.id, input.symbolId, depth);
24
- return {
25
- direction,
26
- depth,
27
- results: results.map((item) => ({
28
- id: item.symbol.id,
29
- name: item.symbol.name,
30
- qualifiedName: item.symbol
31
- .qualifiedName,
32
- type: item.symbol.type,
33
- filePath: item.symbol.filePath,
34
- depth: item.depth,
35
- })),
36
- };
37
- }
@@ -1,5 +0,0 @@
1
- export function getActivity(engine, projectId, limit = 20) {
2
- return engine
3
- .byType(projectId, "activity")
4
- .slice(0, limit);
5
- }