monomind 1.10.54 → 1.10.56

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 (405) hide show
  1. package/.claude/agents/optimization/benchmark-suite.md +2 -0
  2. package/.claude/agents/optimization/load-balancer.md +2 -0
  3. package/.claude/agents/optimization/performance-monitor.md +2 -0
  4. package/.claude/agents/optimization/resource-allocator.md +3 -1
  5. package/.claude/agents/optimization/topology-optimizer.md +2 -0
  6. package/.claude/commands/mastermind/_repeat.md +21 -0
  7. package/.claude/commands/mastermind/_taskfile.md +235 -0
  8. package/.claude/commands/mastermind/adr.md +11 -0
  9. package/.claude/commands/mastermind/approve.md +94 -0
  10. package/.claude/commands/mastermind/autodev.md +32 -0
  11. package/.claude/commands/mastermind/budget.md +7 -0
  12. package/.claude/commands/mastermind/code-review.md +317 -0
  13. package/.claude/commands/mastermind/createorg.md +40 -1
  14. package/.claude/commands/mastermind/createtask.md +383 -0
  15. package/.claude/commands/mastermind/debug.md +22 -0
  16. package/.claude/commands/mastermind/design.md +20 -0
  17. package/.claude/commands/mastermind/do.md +526 -0
  18. package/.claude/commands/mastermind/execute.md +20 -0
  19. package/.claude/commands/mastermind/finish.md +20 -0
  20. package/.claude/commands/mastermind/graph-status.md +7 -0
  21. package/.claude/commands/mastermind/help.md +118 -0
  22. package/.claude/commands/mastermind/ideate.md +261 -0
  23. package/.claude/commands/mastermind/improve.md +345 -0
  24. package/.claude/commands/mastermind/loops.md +7 -0
  25. package/.claude/commands/mastermind/master.md +186 -6
  26. package/.claude/commands/mastermind/memory.md +230 -0
  27. package/.claude/commands/mastermind/plan.md +26 -0
  28. package/.claude/commands/mastermind/receive-review.md +20 -0
  29. package/.claude/commands/mastermind/repeat.md +257 -0
  30. package/.claude/commands/mastermind/runorg.md +3 -0
  31. package/.claude/commands/mastermind/skill-builder.md +20 -0
  32. package/.claude/commands/mastermind/specialagents.md +125 -0
  33. package/.claude/commands/mastermind/swarm.md +161 -0
  34. package/.claude/commands/mastermind/taskdev.md +26 -0
  35. package/.claude/commands/mastermind/tdd.md +22 -0
  36. package/.claude/commands/mastermind/techport.md +4 -0
  37. package/.claude/commands/mastermind/understand.md +139 -0
  38. package/.claude/commands/mastermind/verify.md +22 -0
  39. package/.claude/commands/mastermind/worktree.md +20 -0
  40. package/.claude/helpers/handlers/graph-status-handler.cjs +2 -1
  41. package/.claude/helpers/hook-handler.cjs +19 -0
  42. package/.claude/helpers/skill-registry.json +23 -0
  43. package/.claude/helpers/statusline.cjs +1 -1
  44. package/.claude/scheduled_tasks.lock +1 -1
  45. package/.claude/skills/mastermind/approve.md +15 -7
  46. package/.claude/skills/mastermind/autodev.md +534 -0
  47. package/.claude/skills/mastermind/createorg.md +21 -5
  48. package/.claude/skills/mastermind/debug.md +232 -0
  49. package/.claude/skills/mastermind/design.md +187 -0
  50. package/.claude/skills/mastermind/execute.md +104 -0
  51. package/.claude/skills/mastermind/finish.md +251 -0
  52. package/.claude/skills/mastermind/plan.md +180 -0
  53. package/.claude/skills/mastermind/receive-review.md +213 -0
  54. package/.claude/skills/mastermind/runorg.md +23 -8
  55. package/.claude/skills/mastermind/skill-builder.md +274 -0
  56. package/.claude/skills/mastermind/taskdev.md +307 -0
  57. package/.claude/skills/mastermind/tdd.md +394 -0
  58. package/.claude/skills/mastermind/verify.md +196 -0
  59. package/.claude/skills/mastermind/worktree.md +160 -132
  60. package/.claude-plugin/docs/QUICKSTART.md +0 -3
  61. package/.claude-plugin/docs/STRUCTURE.md +1 -5
  62. package/.claude-plugin/scripts/verify.sh +0 -6
  63. package/README.md +320 -253
  64. package/package.json +1 -1
  65. package/packages/@monomind/cli/README.md +320 -253
  66. package/packages/@monomind/cli/dist/src/commands/analyze.js +9 -2
  67. package/packages/@monomind/cli/dist/src/commands/completions.js +1 -1
  68. package/packages/@monomind/cli/dist/src/commands/guidance.js +7 -7
  69. package/packages/@monomind/cli/dist/src/commands/hooks.js +16 -3
  70. package/packages/@monomind/cli/dist/src/commands/index.d.ts +3 -2
  71. package/packages/@monomind/cli/dist/src/commands/index.js +7 -0
  72. package/packages/@monomind/cli/dist/src/commands/init.js +47 -13
  73. package/packages/@monomind/cli/dist/src/commands/neural.js +100 -14
  74. package/packages/@monomind/cli/dist/src/commands/platforms.d.ts +11 -0
  75. package/packages/@monomind/cli/dist/src/commands/platforms.js +195 -0
  76. package/packages/@monomind/cli/dist/src/commands/update.js +6 -6
  77. package/packages/@monomind/cli/dist/src/init/executor.js +28 -0
  78. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +1 -1
  79. package/packages/@monomind/cli/dist/src/init/types.d.ts +1 -0
  80. package/packages/@monomind/cli/dist/src/mcp-server.js +92 -0
  81. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +52 -0
  82. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +106 -5
  83. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -5
  84. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -5
  85. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +507 -5587
  86. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +64 -4
  87. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +4 -4
  88. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
  89. package/packages/@monomind/cli/dist/src/memory/intelligence.js +108 -3
  90. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +1 -1
  91. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +1 -10
  92. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +0 -46
  93. package/packages/@monomind/cli/dist/src/runtime/headless.js +3 -3
  94. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +0 -2
  95. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +2 -14
  96. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +26 -9
  97. package/packages/@monomind/cli/dist/src/ruvector/index.js +3 -21
  98. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +2 -2
  99. package/packages/@monomind/cli/dist/src/types.d.ts +0 -15
  100. package/packages/@monomind/cli/dist/src/types.js +0 -18
  101. package/packages/@monomind/cli/dist/src/update/index.js +1 -1
  102. package/packages/@monomind/cli/dist/src/update/validator.js +8 -8
  103. package/packages/@monomind/cli/package.json +2 -2
  104. package/.claude/agents/academic/academic-anthropologist.md +0 -126
  105. package/.claude/agents/academic/academic-geographer.md +0 -128
  106. package/.claude/agents/academic/academic-historian.md +0 -124
  107. package/.claude/agents/academic/academic-narratologist.md +0 -119
  108. package/.claude/agents/academic/academic-psychologist.md +0 -119
  109. package/.claude/agents/analysis/analyze-code-quality.md +0 -58
  110. package/.claude/agents/analysis/code-analyzer.md +0 -189
  111. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
  112. package/.claude/agents/consensus/performance-benchmarker.md +0 -831
  113. package/.claude/agents/data/ml/data-ml-model.md +0 -76
  114. package/.claude/agents/development/dev-backend-api.md +0 -178
  115. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
  116. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
  117. package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
  118. package/.claude/agents/game-development/game-audio-engineer.md +0 -265
  119. package/.claude/agents/game-development/game-designer.md +0 -168
  120. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
  121. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
  122. package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
  123. package/.claude/agents/game-development/level-designer.md +0 -209
  124. package/.claude/agents/game-development/narrative-designer.md +0 -244
  125. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
  126. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
  127. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
  128. package/.claude/agents/game-development/technical-artist.md +0 -230
  129. package/.claude/agents/game-development/unity/unity-architect.md +0 -272
  130. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
  131. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
  132. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
  133. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
  134. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
  135. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
  136. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
  137. package/.claude/agents/github/release-swarm.md +0 -597
  138. package/.claude/agents/goal/agent.md +0 -804
  139. package/.claude/agents/goal/code-goal-planner.md +0 -445
  140. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
  141. package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
  142. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
  143. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
  144. package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
  145. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
  146. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
  147. package/.claude/agents/marketing/marketing-content-creator.md +0 -67
  148. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
  149. package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
  150. package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
  151. package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
  152. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
  153. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
  154. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
  155. package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
  156. package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
  157. package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
  158. package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
  159. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
  160. package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
  161. package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
  162. package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
  163. package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
  164. package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
  165. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
  166. package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
  167. package/.claude/agents/neural/safla-neural.md +0 -74
  168. package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
  169. package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
  170. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
  171. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
  172. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
  173. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
  174. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
  175. package/.claude/agents/payments/agentic-payments.md +0 -126
  176. package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
  177. package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
  178. package/.claude/agents/product/product-manager.md +0 -469
  179. package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
  180. package/.claude/agents/product/product-trend-researcher.md +0 -159
  181. package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
  182. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
  183. package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
  184. package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
  185. package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
  186. package/.claude/agents/project-management/project-manager-senior.md +0 -136
  187. package/.claude/agents/reasoning/agent.md +0 -804
  188. package/.claude/agents/reasoning/goal-planner.md +0 -73
  189. package/.claude/agents/sales/sales-account-strategist.md +0 -228
  190. package/.claude/agents/sales/sales-coach.md +0 -272
  191. package/.claude/agents/sales/sales-deal-strategist.md +0 -181
  192. package/.claude/agents/sales/sales-discovery-coach.md +0 -226
  193. package/.claude/agents/sales/sales-engineer.md +0 -183
  194. package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
  195. package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
  196. package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
  197. package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
  198. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
  199. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
  200. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
  201. package/.claude/agents/specialists/memory-specialist.md +0 -298
  202. package/.claude/agents/specialists/performance-engineer.md +0 -387
  203. package/.claude/agents/specialists/queen-coordinator.md +0 -67
  204. package/.claude/agents/specialists/security-architect.md +0 -154
  205. package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
  206. package/.claude/agents/specialized/corporate-training-designer.md +0 -193
  207. package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
  208. package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
  209. package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
  210. package/.claude/agents/specialized/recruitment-specialist.md +0 -510
  211. package/.claude/agents/specialized/report-distribution-agent.md +0 -66
  212. package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
  213. package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
  214. package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
  215. package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
  216. package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
  217. package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
  218. package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
  219. package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
  220. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
  221. package/.claude/agents/sublinear/performance-optimizer.md +0 -363
  222. package/.claude/agents/sublinear/trading-predictor.md +0 -242
  223. package/.claude/agents/support/support-analytics-reporter.md +0 -366
  224. package/.claude/agents/support/support-executive-summary-generator.md +0 -213
  225. package/.claude/agents/support/support-finance-tracker.md +0 -443
  226. package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
  227. package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
  228. package/.claude/agents/support/support-support-responder.md +0 -586
  229. package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
  230. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
  231. package/.claude/agents/templates/github-pr-manager.md +0 -155
  232. package/.claude/agents/templates/memory-coordinator.md +0 -163
  233. package/.claude/agents/templates/migration-plan.md +0 -724
  234. package/.claude/agents/templates/orchestrator-task.md +0 -120
  235. package/.claude/agents/templates/performance-analyzer.md +0 -179
  236. package/.claude/agents/templates/sparc-coordinator.md +0 -163
  237. package/.claude/agents/testing/testing-reality-checker.md +0 -237
  238. package/.claude/checkpoints/1767754460.json +0 -8
  239. package/.claude/commands/analysis/token-efficiency.md +0 -42
  240. package/.claude/commands/optimization/README.md +0 -73
  241. package/.claude/commands/optimization/parallel-execution.md +0 -76
  242. package/.claude/commands/swarm/swarm-analysis.md +0 -62
  243. package/.claude/commands/swarm/swarm-background.md +0 -65
  244. package/.claude/commands/swarm/swarm-modes.md +0 -67
  245. package/.claude/commands/swarm/swarm-monitor.md +0 -54
  246. package/.claude/commands/swarm/swarm-status.md +0 -44
  247. package/.claude/commands/swarm/swarm-strategies.md +0 -76
  248. package/.claude/commands/training/model-update.md +0 -78
  249. package/.claude/commands/training/pattern-learn.md +0 -69
  250. package/.claude/commands/training/specialization.md +0 -92
  251. package/.claude/commands/verify/check.md +0 -106
  252. package/.claude/commands/verify/start.md +0 -105
  253. package/.claude/config/v1-dependency-optimization.json +0 -266
  254. package/.claude/config/v1-performance-targets.json +0 -251
  255. package/.claude/helpers/README.md +0 -105
  256. package/.claude/helpers/context-persistence-hook.mjs +0 -1988
  257. package/.claude/helpers/intelligence.cjs +0 -247
  258. package/.claude/helpers/learning-service.mjs +0 -1302
  259. package/.claude/helpers/memory-palace.cjs +0 -461
  260. package/.claude/helpers/memory.cjs +0 -84
  261. package/.claude/helpers/metrics-db.mjs +0 -488
  262. package/.claude/helpers/router.cjs +0 -559
  263. package/.claude/helpers/session.cjs +0 -126
  264. package/.claude/helpers/swarm-hooks.sh +0 -761
  265. package/.claude/helpers/toggle-statusline.cjs +0 -58
  266. package/.claude/helpers/token-tracker.cjs +0 -934
  267. package/.claude/skills/agentdb-advanced/SKILL.md +0 -549
  268. package/.claude/skills/agentdb-learning/SKILL.md +0 -544
  269. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -337
  270. package/.claude/skills/agentdb-optimization/SKILL.md +0 -508
  271. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -335
  272. package/.claude/skills/agentic-integration/SKILL.md +0 -265
  273. package/.claude/skills/cli-modernization/SKILL.md +0 -950
  274. package/.claude/skills/core-implementation/SKILL.md +0 -892
  275. package/.claude/skills/ddd-architecture/SKILL.md +0 -444
  276. package/.claude/skills/github-code-review/SKILL.md +0 -1147
  277. package/.claude/skills/github-multi-repo/SKILL.md +0 -912
  278. package/.claude/skills/github-project-management/SKILL.md +0 -1245
  279. package/.claude/skills/github-release-management/SKILL.md +0 -1118
  280. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1107
  281. package/.claude/skills/mcp-optimization/SKILL.md +0 -837
  282. package/.claude/skills/memory-unification/SKILL.md +0 -196
  283. package/.claude/skills/performance-optimization/SKILL.md +0 -416
  284. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -444
  285. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -199
  286. package/.claude/skills/security-hardening/SKILL.md +0 -101
  287. package/.claude/skills/stream-chain/SKILL.md +0 -560
  288. package/.claude/skills/swarm-coordination/SKILL.md +0 -451
  289. package/.claude/statusline-command.sh +0 -176
  290. package/.claude/statusline.mjs +0 -109
  291. package/.claude/statusline.sh +0 -431
  292. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts +0 -32
  293. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts.map +0 -1
  294. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js +0 -297
  295. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js.map +0 -1
  296. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts +0 -8
  297. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts.map +0 -1
  298. package/packages/@monomind/cli/bundled-graph/dist/src/build.js.map +0 -1
  299. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts +0 -12
  300. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts.map +0 -1
  301. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js +0 -43
  302. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js.map +0 -1
  303. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts +0 -5
  304. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts.map +0 -1
  305. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js.map +0 -1
  306. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts +0 -21
  307. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts.map +0 -1
  308. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js +0 -195
  309. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js.map +0 -1
  310. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts +0 -21
  311. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts.map +0 -1
  312. package/packages/@monomind/cli/bundled-graph/dist/src/export.js +0 -68
  313. package/packages/@monomind/cli/bundled-graph/dist/src/export.js.map +0 -1
  314. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts +0 -20
  315. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts.map +0 -1
  316. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js +0 -158
  317. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js.map +0 -1
  318. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts +0 -3
  319. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts.map +0 -1
  320. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js +0 -88
  321. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js.map +0 -1
  322. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts +0 -3
  323. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +0 -1
  324. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js +0 -121
  325. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js.map +0 -1
  326. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts +0 -3
  327. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +0 -1
  328. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js +0 -121
  329. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js.map +0 -1
  330. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts +0 -3
  331. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts.map +0 -1
  332. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js +0 -181
  333. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js.map +0 -1
  334. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts +0 -3
  335. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts.map +0 -1
  336. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js +0 -117
  337. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js.map +0 -1
  338. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts +0 -3
  339. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +0 -1
  340. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js +0 -112
  341. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js.map +0 -1
  342. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts +0 -3
  343. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts.map +0 -1
  344. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js +0 -130
  345. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js.map +0 -1
  346. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts +0 -3
  347. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts.map +0 -1
  348. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js +0 -230
  349. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js.map +0 -1
  350. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts +0 -3
  351. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +0 -1
  352. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js +0 -120
  353. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js.map +0 -1
  354. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts +0 -3
  355. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts.map +0 -1
  356. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js +0 -195
  357. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js.map +0 -1
  358. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts +0 -3
  359. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts.map +0 -1
  360. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js +0 -110
  361. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js.map +0 -1
  362. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts +0 -3
  363. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts.map +0 -1
  364. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js +0 -122
  365. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js.map +0 -1
  366. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts +0 -3
  367. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +0 -1
  368. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js +0 -295
  369. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js.map +0 -1
  370. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts +0 -38
  371. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts.map +0 -1
  372. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js +0 -242
  373. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js.map +0 -1
  374. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +0 -48
  375. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +0 -1
  376. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js +0 -137
  377. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +0 -1
  378. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts +0 -7
  379. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts.map +0 -1
  380. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js +0 -2
  381. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js.map +0 -1
  382. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts +0 -28
  383. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts.map +0 -1
  384. package/packages/@monomind/cli/bundled-graph/dist/src/index.js +0 -26
  385. package/packages/@monomind/cli/bundled-graph/dist/src/index.js.map +0 -1
  386. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts +0 -27
  387. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts.map +0 -1
  388. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js +0 -269
  389. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js.map +0 -1
  390. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts +0 -26
  391. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts.map +0 -1
  392. package/packages/@monomind/cli/bundled-graph/dist/src/report.js +0 -214
  393. package/packages/@monomind/cli/bundled-graph/dist/src/report.js.map +0 -1
  394. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts +0 -124
  395. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts.map +0 -1
  396. package/packages/@monomind/cli/bundled-graph/dist/src/types.js +0 -2
  397. package/packages/@monomind/cli/bundled-graph/dist/src/types.js.map +0 -1
  398. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts +0 -4
  399. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts.map +0 -1
  400. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js +0 -574
  401. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js.map +0 -1
  402. package/packages/@monomind/cli/bundled-graph/dist/tsconfig.tsbuildinfo +0 -1
  403. package/packages/@monomind/shared/README.md +0 -322
  404. package/packages/@monomind/shared/package.json +0 -42
  405. package/packages/README.md +0 -513
@@ -1,48 +0,0 @@
1
- import type { ExtractionResult } from '../types.js';
2
- import type { LanguageExtractor } from './types.js';
3
- type ParserInstance = {
4
- setLanguage(lang: unknown): void;
5
- parse(src: string): {
6
- rootNode: SyntaxNodeLike;
7
- };
8
- };
9
- export type SyntaxNodeLike = {
10
- type: string;
11
- text: string;
12
- startPosition: {
13
- row: number;
14
- column: number;
15
- };
16
- endPosition: {
17
- row: number;
18
- column: number;
19
- };
20
- children: SyntaxNodeLike[];
21
- childForFieldName(name: string): SyntaxNodeLike | null;
22
- descendantsOfType(type: string | string[]): SyntaxNodeLike[];
23
- };
24
- /**
25
- * Returns true when node-tree-sitter is installed and loadable.
26
- */
27
- export declare function isTreeSitterAvailable(): boolean;
28
- /**
29
- * Attempts to create a configured Parser for the given language identifier.
30
- * Returns null when tree-sitter or the grammar is not installed.
31
- */
32
- export declare function tryLoadParser(language: string): ParserInstance | null;
33
- export declare function walk(node: SyntaxNodeLike, visitor: (n: SyntaxNodeLike) => void): void;
34
- /**
35
- * Parses a source file and delegates to the given LanguageExtractor.
36
- * The extractor receives the file path and raw content; it owns the AST
37
- * traversal internally (using tryLoadParser / walk from this module).
38
- *
39
- * Falls back gracefully: if tree-sitter cannot be loaded the extractor is still
40
- * called with the raw content and is expected to use its regex fallback.
41
- */
42
- export declare function parseFile(filePath: string, content: string, extractor: LanguageExtractor): ExtractionResult;
43
- /**
44
- * Convenience helper: read a file from disk and parse it.
45
- */
46
- export declare function parseFileFromDisk(filePath: string, extractor: LanguageExtractor): ExtractionResult;
47
- export {};
48
- //# sourceMappingURL=tree-sitter-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-sitter-runner.d.ts","sourceRoot":"","sources":["../../../src/extract/tree-sitter-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,KAAK,cAAc,GAAG;IACpB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,cAAc,CAAA;KAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IACvD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;CAC9D,CAAC;AA4BF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AAuBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA2BrE;AAID,wBAAgB,IAAI,CAClB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GACnC,IAAI,CAKN;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,GAC3B,gBAAgB,CAclB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,iBAAiB,GAC3B,gBAAgB,CAgBlB"}
@@ -1,137 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- // ---- availability probe ----
3
- let _treeSitterAvailable = null;
4
- let _ParserCtor = null;
5
- function probeTreeSitter() {
6
- if (_treeSitterAvailable !== null)
7
- return;
8
- try {
9
- // eslint-disable-next-line @typescript-eslint/no-var-requires
10
- const mod = require('node-tree-sitter');
11
- const ctor = mod.default !== undefined
12
- ? mod.default
13
- : mod;
14
- if (typeof ctor === 'function') {
15
- _ParserCtor = ctor;
16
- _treeSitterAvailable = true;
17
- }
18
- else {
19
- _treeSitterAvailable = false;
20
- }
21
- }
22
- catch {
23
- _treeSitterAvailable = false;
24
- }
25
- }
26
- /**
27
- * Returns true when node-tree-sitter is installed and loadable.
28
- */
29
- export function isTreeSitterAvailable() {
30
- probeTreeSitter();
31
- return _treeSitterAvailable === true;
32
- }
33
- // ---- language grammar loader ----
34
- const LANGUAGE_MODULE_MAP = {
35
- typescript: 'tree-sitter-typescript',
36
- tsx: 'tree-sitter-typescript',
37
- javascript: 'tree-sitter-javascript',
38
- jsx: 'tree-sitter-javascript',
39
- python: 'tree-sitter-python',
40
- go: 'tree-sitter-go',
41
- rust: 'tree-sitter-rust',
42
- java: 'tree-sitter-java',
43
- c: 'tree-sitter-c',
44
- cpp: 'tree-sitter-cpp',
45
- csharp: 'tree-sitter-c-sharp',
46
- ruby: 'tree-sitter-ruby',
47
- kotlin: 'tree-sitter-kotlin',
48
- swift: 'tree-sitter-swift',
49
- scala: 'tree-sitter-scala',
50
- php: 'tree-sitter-php',
51
- };
52
- /**
53
- * Attempts to create a configured Parser for the given language identifier.
54
- * Returns null when tree-sitter or the grammar is not installed.
55
- */
56
- export function tryLoadParser(language) {
57
- if (!isTreeSitterAvailable() || _ParserCtor === null)
58
- return null;
59
- const moduleName = LANGUAGE_MODULE_MAP[language];
60
- if (!moduleName)
61
- return null;
62
- try {
63
- // eslint-disable-next-line @typescript-eslint/no-var-requires
64
- const grammarMod = require(moduleName);
65
- // tree-sitter-typescript exposes { typescript, tsx } sub-grammars
66
- let grammar;
67
- if (language === 'typescript' || language === 'tsx') {
68
- grammar =
69
- grammarMod[language] ??
70
- grammarMod['default'] ??
71
- grammarMod;
72
- }
73
- else {
74
- grammar = grammarMod['default'] ?? grammarMod;
75
- }
76
- const parser = new _ParserCtor();
77
- parser.setLanguage(grammar);
78
- return parser;
79
- }
80
- catch {
81
- return null;
82
- }
83
- }
84
- // ---- depth-first AST walker ----
85
- export function walk(node, visitor) {
86
- visitor(node);
87
- for (const child of node.children) {
88
- walk(child, visitor);
89
- }
90
- }
91
- // ---- main entry point ----
92
- /**
93
- * Parses a source file and delegates to the given LanguageExtractor.
94
- * The extractor receives the file path and raw content; it owns the AST
95
- * traversal internally (using tryLoadParser / walk from this module).
96
- *
97
- * Falls back gracefully: if tree-sitter cannot be loaded the extractor is still
98
- * called with the raw content and is expected to use its regex fallback.
99
- */
100
- export function parseFile(filePath, content, extractor) {
101
- try {
102
- return extractor.extract(filePath, content);
103
- }
104
- catch (err) {
105
- return {
106
- nodes: [],
107
- edges: [],
108
- filesProcessed: 1,
109
- fromCache: 0,
110
- errors: [
111
- `parseFile error for ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
112
- ],
113
- };
114
- }
115
- }
116
- /**
117
- * Convenience helper: read a file from disk and parse it.
118
- */
119
- export function parseFileFromDisk(filePath, extractor) {
120
- let content;
121
- try {
122
- content = readFileSync(filePath, 'utf8');
123
- }
124
- catch (err) {
125
- return {
126
- nodes: [],
127
- edges: [],
128
- filesProcessed: 1,
129
- fromCache: 0,
130
- errors: [
131
- `Failed to read ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
132
- ],
133
- };
134
- }
135
- return parseFile(filePath, content, extractor);
136
- }
137
- //# sourceMappingURL=tree-sitter-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-sitter-runner.js","sourceRoot":"","sources":["../../../src/extract/tree-sitter-runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { ExtractionResult } from '../types.js';
2
- export interface LanguageExtractor {
3
- language: string;
4
- extensions: string[];
5
- extract(filePath: string, content: string): ExtractionResult;
6
- }
7
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extract/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAC9D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extract/types.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- export { buildGraph } from './pipeline.js';
2
- export { FileCache } from './cache.js';
3
- export { collectFiles, loadIgnorePatterns, corpusHealth } from './detect.js';
4
- export { buildGraph as buildGraphologyGraph } from './build.js';
5
- export { detectCommunities, cohesionScore, splitOversizedCommunities } from './cluster.js';
6
- export { buildAnalysis, godNodes, surprisingConnections, graphStats, suggestQuestions, graphDiff } from './analyze.js';
7
- export { saveGraph, loadGraph, graphExists, getGraphPath } from './export.js';
8
- export { exportHTML } from './visualize.js';
9
- export { generateReport } from './report.js';
10
- export { extractSemantic } from './extract/semantic.js';
11
- export type { SemanticFile, SemanticOptions } from './extract/semantic.js';
12
- export { isTreeSitterAvailable, tryLoadParser, parseFile, parseFileFromDisk } from './extract/tree-sitter-runner.js';
13
- export type { LanguageExtractor } from './extract/types.js';
14
- export { typescriptExtractor } from './extract/languages/typescript.js';
15
- export { pythonExtractor } from './extract/languages/python.js';
16
- export { goExtractor } from './extract/languages/go.js';
17
- export { rustExtractor } from './extract/languages/rust.js';
18
- export { javaExtractor } from './extract/languages/java.js';
19
- export { cExtractor } from './extract/languages/c.js';
20
- export { cppExtractor } from './extract/languages/cpp.js';
21
- export { csharpExtractor } from './extract/languages/csharp.js';
22
- export { rubyExtractor } from './extract/languages/ruby.js';
23
- export { kotlinExtractor } from './extract/languages/kotlin.js';
24
- export { swiftExtractor } from './extract/languages/swift.js';
25
- export { scalaExtractor } from './extract/languages/scala.js';
26
- export { phpExtractor } from './extract/languages/php.js';
27
- export type * from './types.js';
28
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACrH,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,mBAAmB,YAAY,CAAC"}
@@ -1,26 +0,0 @@
1
- export { buildGraph } from './pipeline.js';
2
- export { FileCache } from './cache.js';
3
- export { collectFiles, loadIgnorePatterns, corpusHealth } from './detect.js';
4
- export { buildGraph as buildGraphologyGraph } from './build.js';
5
- export { detectCommunities, cohesionScore, splitOversizedCommunities } from './cluster.js';
6
- export { buildAnalysis, godNodes, surprisingConnections, graphStats, suggestQuestions, graphDiff } from './analyze.js';
7
- export { saveGraph, loadGraph, graphExists, getGraphPath } from './export.js';
8
- export { exportHTML } from './visualize.js';
9
- export { generateReport } from './report.js';
10
- export { extractSemantic } from './extract/semantic.js';
11
- export { isTreeSitterAvailable, tryLoadParser, parseFile, parseFileFromDisk } from './extract/tree-sitter-runner.js';
12
- // Language extractors
13
- export { typescriptExtractor } from './extract/languages/typescript.js';
14
- export { pythonExtractor } from './extract/languages/python.js';
15
- export { goExtractor } from './extract/languages/go.js';
16
- export { rustExtractor } from './extract/languages/rust.js';
17
- export { javaExtractor } from './extract/languages/java.js';
18
- export { cExtractor } from './extract/languages/c.js';
19
- export { cppExtractor } from './extract/languages/cpp.js';
20
- export { csharpExtractor } from './extract/languages/csharp.js';
21
- export { rubyExtractor } from './extract/languages/ruby.js';
22
- export { kotlinExtractor } from './extract/languages/kotlin.js';
23
- export { swiftExtractor } from './extract/languages/swift.js';
24
- export { scalaExtractor } from './extract/languages/scala.js';
25
- export { phpExtractor } from './extract/languages/php.js';
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAErH,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { BuildOptions, GraphAnalysis, SerializedGraph, GraphQuestion } from './types.js';
2
- /**
3
- * Main entry point for building a knowledge graph from a codebase.
4
- *
5
- * Orchestrates file collection, per-file extraction (with caching),
6
- * graph construction via graphology, community detection, and serialisation.
7
- *
8
- * @param projectPath - Absolute path to the root of the codebase to analyse.
9
- * @param options - Optional build configuration.
10
- * @returns - Serialized graph + analysis summary.
11
- */
12
- export interface BuildResult {
13
- graph: SerializedGraph;
14
- analysis: GraphAnalysis;
15
- questions: GraphQuestion[];
16
- corpusWarnings: string[];
17
- filesProcessed: number;
18
- fromCache: number;
19
- graphPath: string;
20
- reportPath: string;
21
- /** Graph quality scalar: avgCohesion × ln(1 + avgDegree). Higher is better. */
22
- graphQuality: number;
23
- /** Experiment loop status — mirrors autoresearch's keep/discard protocol. */
24
- experimentStatus: 'BASELINE' | 'KEEP' | 'DISCARD';
25
- }
26
- export declare function buildGraph(projectPath: string, options?: BuildOptions): Promise<BuildResult>;
27
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EAEZ,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AA2HpB;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,gBAAgB,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;CACnD;AAED,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA+JtB"}
@@ -1,269 +0,0 @@
1
- import { join } from 'path';
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
3
- import { collectFiles, corpusHealth } from './detect.js';
4
- import { FileCache } from './cache.js';
5
- import { buildGraph as buildGraphologyGraph } from './build.js';
6
- import { detectCommunities, cohesionScore } from './cluster.js';
7
- import { buildAnalysis, suggestQuestions } from './analyze.js';
8
- import { saveGraph } from './export.js';
9
- import { exportHTML } from './visualize.js';
10
- import { generateReport } from './report.js';
11
- import { typescriptExtractor } from './extract/languages/typescript.js';
12
- import { parseFile } from './extract/tree-sitter-runner.js';
13
- const DEFAULT_OUTPUT_SUBDIR = '.monomind/graph';
14
- // ---------------------------------------------------------------------------
15
- // Experiment loop — adapted from autoresearch's program.md protocol
16
- //
17
- // Every buildGraph call appends one row to results.tsv with a quality scalar,
18
- // then decides BASELINE / KEEP / DISCARD by comparing against the best known
19
- // result. The quality metric mirrors autoresearch's val_bpb (a single number
20
- // to optimise), but for graph structure rather than language model perplexity.
21
- // ---------------------------------------------------------------------------
22
- const RESULTS_TSV_HEADER = 'timestamp\tnodes\tedges\tcommunities\tavg_cohesion\tavg_degree\tgraph_quality\tfiles_processed\tstatus\tdescription\n';
23
- /**
24
- * Graph quality scalar.
25
- *
26
- * avgCohesion × ln(1 + avgDegree)
27
- *
28
- * Rewards both tight community structure (cohesion) and overall connectivity
29
- * (avgDegree). Higher is better — directly comparable across builds, like
30
- * autoresearch's vocab-size-independent bits-per-byte metric.
31
- */
32
- function computeGraphQuality(avgCohesion, nodes, edges) {
33
- const avgDegree = nodes > 0 ? (2 * edges) / nodes : 0;
34
- return avgCohesion * Math.log(1 + avgDegree);
35
- }
36
- /** Read results.tsv and return the best graph_quality seen so far (BASELINE or KEEP rows). */
37
- function readBestQuality(tsvPath) {
38
- if (!existsSync(tsvPath))
39
- return -Infinity;
40
- try {
41
- const lines = readFileSync(tsvPath, 'utf-8').split('\n').filter(Boolean);
42
- let best = -Infinity;
43
- for (const line of lines.slice(1)) { // skip header
44
- const cols = line.split('\t');
45
- const status = cols[8]; // status column
46
- const quality = parseFloat(cols[6] ?? '0'); // graph_quality column
47
- if ((status === 'BASELINE' || status === 'KEEP') && !isNaN(quality)) {
48
- if (quality > best)
49
- best = quality;
50
- }
51
- }
52
- return best;
53
- }
54
- catch {
55
- return -Infinity;
56
- }
57
- }
58
- /** Append one experiment row to results.tsv. Creates file + header if needed. */
59
- function appendResultsTsv(tsvPath, metrics) {
60
- const avgDegree = metrics.nodes > 0 ? (2 * metrics.edges) / metrics.nodes : 0;
61
- const description = `${metrics.nodes}n/${metrics.edges}e coh=${metrics.avgCohesion.toFixed(3)} deg=${avgDegree.toFixed(1)}`;
62
- const row = [
63
- new Date().toISOString(),
64
- metrics.nodes,
65
- metrics.edges,
66
- metrics.communities,
67
- metrics.avgCohesion.toFixed(4),
68
- avgDegree.toFixed(2),
69
- metrics.graphQuality.toFixed(6),
70
- metrics.filesProcessed,
71
- metrics.status,
72
- description,
73
- ].join('\t') + '\n';
74
- try {
75
- if (!existsSync(tsvPath)) {
76
- writeFileSync(tsvPath, RESULTS_TSV_HEADER + row, 'utf-8');
77
- }
78
- else {
79
- const existing = readFileSync(tsvPath, 'utf-8');
80
- writeFileSync(tsvPath, existing + row, 'utf-8');
81
- }
82
- }
83
- catch { /* TSV tracking is non-fatal */ }
84
- }
85
- // Map language identifiers to the extractors we have available.
86
- // python and go extractors are loaded lazily when their modules exist.
87
- const EXTRACTOR_MAP = {
88
- typescript: typescriptExtractor,
89
- javascript: typescriptExtractor, // TS extractor handles JS via regex + tree-sitter-javascript
90
- };
91
- /** Attempt to load python/go extractors that may be present in the extract/languages dir. */
92
- async function tryLoadExtractor(language) {
93
- if (EXTRACTOR_MAP[language])
94
- return EXTRACTOR_MAP[language];
95
- try {
96
- const mod = await import(`./extract/languages/${language}.js`);
97
- const extractor = (mod[`${language}Extractor`] ?? mod['default']);
98
- if (extractor)
99
- EXTRACTOR_MAP[language] = extractor;
100
- return extractor;
101
- }
102
- catch {
103
- return undefined;
104
- }
105
- }
106
- export async function buildGraph(projectPath, options = {}) {
107
- // Resolve output directory
108
- const outputDir = options.outputDir ?? join(projectPath, DEFAULT_OUTPUT_SUBDIR);
109
- mkdirSync(outputDir, { recursive: true });
110
- const cache = new FileCache(outputDir);
111
- // 1. Collect files + corpus health check
112
- const files = collectFiles(projectPath, options);
113
- const corpusWarnings = corpusHealth(files);
114
- // 2. Extract nodes/edges from each file (cache-aware)
115
- const merged = {
116
- nodes: [],
117
- edges: [],
118
- hyperedges: [],
119
- filesProcessed: 0,
120
- fromCache: 0,
121
- errors: [],
122
- };
123
- for (const file of files) {
124
- let content;
125
- try {
126
- content = readFileSync(file.path, 'utf-8');
127
- }
128
- catch (err) {
129
- merged.errors.push(`Cannot read ${file.path}: ${String(err)}`);
130
- continue;
131
- }
132
- const cacheKey = cache.key(file.path, content);
133
- let result = cache.get(cacheKey);
134
- if (result) {
135
- merged.fromCache += 1;
136
- }
137
- else {
138
- const extractor = file.language
139
- ? await tryLoadExtractor(file.language)
140
- : undefined;
141
- if (extractor) {
142
- result = parseFile(file.path, content, extractor);
143
- }
144
- else {
145
- result = extractGeneric(file.path, content);
146
- }
147
- cache.set(cacheKey, result);
148
- }
149
- merged.nodes.push(...result.nodes);
150
- merged.edges.push(...result.edges);
151
- if (result.hyperedges)
152
- merged.hyperedges.push(...result.hyperedges);
153
- merged.filesProcessed += 1;
154
- merged.errors.push(...result.errors);
155
- }
156
- // 3. Build graphology graph (dedup + stub endpoints)
157
- const graph = buildGraphologyGraph(merged);
158
- // 4. Community detection (Louvain with directory-based fallback)
159
- await detectCommunities(graph);
160
- // 5. Degree annotation
161
- graph.forEachNode((id) => {
162
- graph.setNodeAttribute(id, 'degree', graph.degree(id));
163
- });
164
- // 6. Build analysis (god nodes, surprise edges, communities, stats)
165
- const analysis = buildAnalysis(graph, outputDir);
166
- // 6b. Suggest questions the graph can answer
167
- const questions = suggestQuestions(graph, analysis.communities);
168
- // 6c. Compute cohesion scores per community
169
- const cohesionScores = {};
170
- for (const [cidStr, memberIds] of Object.entries(analysis.communities)) {
171
- cohesionScores[Number(cidStr)] = cohesionScore(graph, memberIds);
172
- }
173
- // 6d. Graph quality metric + experiment loop (autoresearch protocol)
174
- const cohesionValues = Object.values(cohesionScores);
175
- const avgCohesion = cohesionValues.length > 0
176
- ? cohesionValues.reduce((a, b) => a + b, 0) / cohesionValues.length
177
- : 0;
178
- const graphQuality = computeGraphQuality(avgCohesion, graph.order, graph.size);
179
- const tsvPath = join(outputDir, 'results.tsv');
180
- const prevBest = readBestQuality(tsvPath);
181
- const experimentStatus = prevBest === -Infinity
182
- ? 'BASELINE'
183
- : graphQuality > prevBest * 1.001 // 0.1% improvement threshold
184
- ? 'KEEP'
185
- : 'DISCARD';
186
- appendResultsTsv(tsvPath, {
187
- nodes: graph.order,
188
- edges: graph.size,
189
- communities: analysis.stats.communities,
190
- avgCohesion,
191
- graphQuality,
192
- filesProcessed: merged.filesProcessed,
193
- status: experimentStatus,
194
- });
195
- // 7. Persist to disk
196
- saveGraph(graph, outputDir, projectPath);
197
- const graphPath = join(outputDir, 'graph.json');
198
- // 7b. Generate and save markdown report (non-fatal)
199
- const reportPath = join(outputDir, 'GRAPH_REPORT.md');
200
- try {
201
- const totalWords = merged.nodes.reduce((sum, n) => sum + (n.linesOfCode ?? 0) * 10, 0);
202
- const reportMd = generateReport(graph, analysis, cohesionScores, {
203
- projectPath,
204
- questions,
205
- corpusStats: corpusWarnings.length > 0
206
- ? { totalFiles: files.length, totalWords, warning: corpusWarnings[0] }
207
- : { totalFiles: files.length, totalWords },
208
- });
209
- writeFileSync(reportPath, reportMd, 'utf-8');
210
- }
211
- catch { /* report generation is non-fatal */ }
212
- // 8. Serialize to the public return type
213
- const serialized = {
214
- version: '1.0.0',
215
- builtAt: new Date().toISOString(),
216
- projectPath,
217
- directed: true,
218
- multigraph: false,
219
- nodes: graph.nodes().map((id) => ({
220
- id,
221
- ...graph.getNodeAttributes(id),
222
- })),
223
- links: graph.edges().map((edgeId) => ({
224
- source: graph.source(edgeId),
225
- target: graph.target(edgeId),
226
- ...graph.getEdgeAttributes(edgeId),
227
- })),
228
- };
229
- // 9. Generate interactive HTML visualization (non-fatal)
230
- try {
231
- exportHTML(serialized, outputDir);
232
- }
233
- catch {
234
- // Visualization is best-effort; never block the build
235
- }
236
- return {
237
- graph: serialized,
238
- analysis,
239
- questions,
240
- corpusWarnings,
241
- filesProcessed: merged.filesProcessed,
242
- fromCache: merged.fromCache,
243
- graphPath,
244
- reportPath,
245
- graphQuality,
246
- experimentStatus,
247
- };
248
- }
249
- // ---------------------------------------------------------------------------
250
- // Internal: minimal fallback for languages without a dedicated extractor
251
- // ---------------------------------------------------------------------------
252
- function extractGeneric(filePath, content) {
253
- return {
254
- nodes: [
255
- {
256
- id: filePath,
257
- label: filePath.split('/').pop() ?? filePath,
258
- fileType: 'code',
259
- sourceFile: filePath,
260
- linesOfCode: content.split('\n').length,
261
- },
262
- ],
263
- edges: [],
264
- filesProcessed: 1,
265
- fromCache: 0,
266
- errors: [],
267
- };
268
- }
269
- //# sourceMappingURL=pipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type Graph from 'graphology';
2
- import type { GraphAnalysis, GraphQuestion } from './types.js';
3
- export interface CorpusStats {
4
- totalFiles: number;
5
- totalWords: number;
6
- warning?: string;
7
- }
8
- export interface ReportOptions {
9
- projectPath?: string;
10
- tokenCost?: {
11
- input: number;
12
- output: number;
13
- };
14
- corpusStats?: CorpusStats;
15
- questions?: GraphQuestion[];
16
- }
17
- /**
18
- * Generate the full markdown report string.
19
- *
20
- * @param graph - The annotated Graphology graph (with `community` attributes set)
21
- * @param analysis - Result of buildAnalysis()
22
- * @param cohesionScores - Map of communityId → cohesion score (0–1)
23
- * @param options - Optional metadata (projectPath, tokenCost, corpusStats, questions)
24
- */
25
- export declare function generateReport(graph: Graph, analysis: GraphAnalysis, cohesionScores?: Record<number, number>, options?: ReportOptions): string;
26
- //# sourceMappingURL=report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/D,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AAkCD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkMR"}