ai-mind-map 1.1.0

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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +554 -0
  3. package/dist/change-tracker/change-log.d.ts +160 -0
  4. package/dist/change-tracker/change-log.d.ts.map +1 -0
  5. package/dist/change-tracker/change-log.js +507 -0
  6. package/dist/change-tracker/change-log.js.map +1 -0
  7. package/dist/change-tracker/diff-engine.d.ts +149 -0
  8. package/dist/change-tracker/diff-engine.d.ts.map +1 -0
  9. package/dist/change-tracker/diff-engine.js +530 -0
  10. package/dist/change-tracker/diff-engine.js.map +1 -0
  11. package/dist/change-tracker/watcher.d.ts +137 -0
  12. package/dist/change-tracker/watcher.d.ts.map +1 -0
  13. package/dist/change-tracker/watcher.js +300 -0
  14. package/dist/change-tracker/watcher.js.map +1 -0
  15. package/dist/cli.d.ts +20 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +937 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/config.d.ts +38 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +222 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context/compressor.d.ts +49 -0
  24. package/dist/context/compressor.d.ts.map +1 -0
  25. package/dist/context/compressor.js +769 -0
  26. package/dist/context/compressor.js.map +1 -0
  27. package/dist/context/progressive-disclosure.d.ts +71 -0
  28. package/dist/context/progressive-disclosure.d.ts.map +1 -0
  29. package/dist/context/progressive-disclosure.js +470 -0
  30. package/dist/context/progressive-disclosure.js.map +1 -0
  31. package/dist/context/token-budget.d.ts +121 -0
  32. package/dist/context/token-budget.d.ts.map +1 -0
  33. package/dist/context/token-budget.js +282 -0
  34. package/dist/context/token-budget.js.map +1 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +944 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/install.d.ts +66 -0
  40. package/dist/install.d.ts.map +1 -0
  41. package/dist/install.js +946 -0
  42. package/dist/install.js.map +1 -0
  43. package/dist/knowledge-graph/architecture.d.ts +213 -0
  44. package/dist/knowledge-graph/architecture.d.ts.map +1 -0
  45. package/dist/knowledge-graph/architecture.js +585 -0
  46. package/dist/knowledge-graph/architecture.js.map +1 -0
  47. package/dist/knowledge-graph/cypher.d.ts +113 -0
  48. package/dist/knowledge-graph/cypher.d.ts.map +1 -0
  49. package/dist/knowledge-graph/cypher.js +1051 -0
  50. package/dist/knowledge-graph/cypher.js.map +1 -0
  51. package/dist/knowledge-graph/dead-code.d.ts +121 -0
  52. package/dist/knowledge-graph/dead-code.d.ts.map +1 -0
  53. package/dist/knowledge-graph/dead-code.js +331 -0
  54. package/dist/knowledge-graph/dead-code.js.map +1 -0
  55. package/dist/knowledge-graph/flow-analyzer.d.ts +167 -0
  56. package/dist/knowledge-graph/flow-analyzer.d.ts.map +1 -0
  57. package/dist/knowledge-graph/flow-analyzer.js +739 -0
  58. package/dist/knowledge-graph/flow-analyzer.js.map +1 -0
  59. package/dist/knowledge-graph/graph.d.ts +291 -0
  60. package/dist/knowledge-graph/graph.d.ts.map +1 -0
  61. package/dist/knowledge-graph/graph.js +978 -0
  62. package/dist/knowledge-graph/graph.js.map +1 -0
  63. package/dist/knowledge-graph/index.d.ts +17 -0
  64. package/dist/knowledge-graph/index.d.ts.map +1 -0
  65. package/dist/knowledge-graph/index.js +14 -0
  66. package/dist/knowledge-graph/index.js.map +1 -0
  67. package/dist/knowledge-graph/indexer.d.ts +112 -0
  68. package/dist/knowledge-graph/indexer.d.ts.map +1 -0
  69. package/dist/knowledge-graph/indexer.js +506 -0
  70. package/dist/knowledge-graph/indexer.js.map +1 -0
  71. package/dist/knowledge-graph/pagerank.d.ts +141 -0
  72. package/dist/knowledge-graph/pagerank.d.ts.map +1 -0
  73. package/dist/knowledge-graph/pagerank.js +493 -0
  74. package/dist/knowledge-graph/pagerank.js.map +1 -0
  75. package/dist/knowledge-graph/parser.d.ts +55 -0
  76. package/dist/knowledge-graph/parser.d.ts.map +1 -0
  77. package/dist/knowledge-graph/parser.js +1090 -0
  78. package/dist/knowledge-graph/parser.js.map +1 -0
  79. package/dist/knowledge-graph/snapshot.d.ts +107 -0
  80. package/dist/knowledge-graph/snapshot.d.ts.map +1 -0
  81. package/dist/knowledge-graph/snapshot.js +435 -0
  82. package/dist/knowledge-graph/snapshot.js.map +1 -0
  83. package/dist/memory/decision-log.d.ts +151 -0
  84. package/dist/memory/decision-log.d.ts.map +1 -0
  85. package/dist/memory/decision-log.js +482 -0
  86. package/dist/memory/decision-log.js.map +1 -0
  87. package/dist/memory/persistent-memory.d.ts +182 -0
  88. package/dist/memory/persistent-memory.d.ts.map +1 -0
  89. package/dist/memory/persistent-memory.js +579 -0
  90. package/dist/memory/persistent-memory.js.map +1 -0
  91. package/dist/memory/session-memory.d.ts +165 -0
  92. package/dist/memory/session-memory.d.ts.map +1 -0
  93. package/dist/memory/session-memory.js +382 -0
  94. package/dist/memory/session-memory.js.map +1 -0
  95. package/dist/stress-test.d.ts +10 -0
  96. package/dist/stress-test.d.ts.map +1 -0
  97. package/dist/stress-test.js +258 -0
  98. package/dist/stress-test.js.map +1 -0
  99. package/dist/tools/advanced-tools.d.ts +32 -0
  100. package/dist/tools/advanced-tools.d.ts.map +1 -0
  101. package/dist/tools/advanced-tools.js +480 -0
  102. package/dist/tools/advanced-tools.js.map +1 -0
  103. package/dist/tools/change-tools.d.ts +76 -0
  104. package/dist/tools/change-tools.d.ts.map +1 -0
  105. package/dist/tools/change-tools.js +93 -0
  106. package/dist/tools/change-tools.js.map +1 -0
  107. package/dist/tools/context-tools.d.ts +68 -0
  108. package/dist/tools/context-tools.d.ts.map +1 -0
  109. package/dist/tools/context-tools.js +141 -0
  110. package/dist/tools/context-tools.js.map +1 -0
  111. package/dist/tools/debug-tools.d.ts +25 -0
  112. package/dist/tools/debug-tools.d.ts.map +1 -0
  113. package/dist/tools/debug-tools.js +286 -0
  114. package/dist/tools/debug-tools.js.map +1 -0
  115. package/dist/tools/evolving-tools.d.ts +23 -0
  116. package/dist/tools/evolving-tools.d.ts.map +1 -0
  117. package/dist/tools/evolving-tools.js +207 -0
  118. package/dist/tools/evolving-tools.js.map +1 -0
  119. package/dist/tools/flow-tools.d.ts +24 -0
  120. package/dist/tools/flow-tools.d.ts.map +1 -0
  121. package/dist/tools/flow-tools.js +265 -0
  122. package/dist/tools/flow-tools.js.map +1 -0
  123. package/dist/tools/graph-tools.d.ts +71 -0
  124. package/dist/tools/graph-tools.d.ts.map +1 -0
  125. package/dist/tools/graph-tools.js +165 -0
  126. package/dist/tools/graph-tools.js.map +1 -0
  127. package/dist/tools/memory-tools.d.ts +62 -0
  128. package/dist/tools/memory-tools.d.ts.map +1 -0
  129. package/dist/tools/memory-tools.js +195 -0
  130. package/dist/tools/memory-tools.js.map +1 -0
  131. package/dist/tools/smart-tools.d.ts +23 -0
  132. package/dist/tools/smart-tools.d.ts.map +1 -0
  133. package/dist/tools/smart-tools.js +482 -0
  134. package/dist/tools/smart-tools.js.map +1 -0
  135. package/dist/tools/snapshot-tools.d.ts +19 -0
  136. package/dist/tools/snapshot-tools.d.ts.map +1 -0
  137. package/dist/tools/snapshot-tools.js +149 -0
  138. package/dist/tools/snapshot-tools.js.map +1 -0
  139. package/dist/types.d.ts +181 -0
  140. package/dist/types.d.ts.map +1 -0
  141. package/dist/types.js +45 -0
  142. package/dist/types.js.map +1 -0
  143. package/dist/utils/logger.d.ts +59 -0
  144. package/dist/utils/logger.d.ts.map +1 -0
  145. package/dist/utils/logger.js +142 -0
  146. package/dist/utils/logger.js.map +1 -0
  147. package/dist/utils/token-counter.d.ts +51 -0
  148. package/dist/utils/token-counter.d.ts.map +1 -0
  149. package/dist/utils/token-counter.js +181 -0
  150. package/dist/utils/token-counter.js.map +1 -0
  151. package/install.ps1 +321 -0
  152. package/install.sh +345 -0
  153. package/package.json +94 -0
  154. package/setup.bat +62 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * AI Mind Map — Flow Analyzer & Interaction Map
3
+ *
4
+ * Maps the BEHAVIORAL flow of an application:
5
+ * Button click → event handler → API call → DB write → UI update
6
+ *
7
+ * This goes beyond structural analysis (what calls what) to map the
8
+ * full user-interaction pipeline:
9
+ * - UI events → handlers → side effects
10
+ * - API routes → controllers → services → data layer
11
+ * - State changes → re-renders → UI updates
12
+ * - Event emitters → listeners → cascading effects
13
+ *
14
+ * The AI agent can ask "what happens when the user clicks Save?"
15
+ * and get the full pipeline without reading any code.
16
+ */
17
+ import { KnowledgeGraph } from './graph.js';
18
+ /** A single step in a user-interaction pipeline */
19
+ export interface FlowStep {
20
+ /** Position in the pipeline (0 = trigger) */
21
+ order: number;
22
+ /** What happens at this step */
23
+ action: string;
24
+ /** The layer this belongs to */
25
+ layer: FlowLayer;
26
+ /** File where this step lives */
27
+ filePath: string;
28
+ /** Function/method name */
29
+ symbolName: string;
30
+ /** The function signature */
31
+ signature: string;
32
+ /** Line number in source */
33
+ line: number;
34
+ /** What this step produces (output) */
35
+ produces?: string;
36
+ /** Node ID in the knowledge graph */
37
+ nodeId?: string;
38
+ }
39
+ /** Application layers (for classifying each step) */
40
+ export type FlowLayer = 'ui_event' | 'ui_component' | 'event_handler' | 'state_update' | 'api_call' | 'route' | 'controller' | 'service' | 'repository' | 'database' | 'middleware' | 'validator' | 'util' | 'unknown';
41
+ /** A complete interaction flow from trigger to final effect */
42
+ export interface InteractionFlow {
43
+ /** Human-readable name: "Save Note", "Delete User", "Login" */
44
+ name: string;
45
+ /** The trigger (button, route, event) */
46
+ trigger: string;
47
+ /** Full pipeline of steps */
48
+ steps: FlowStep[];
49
+ /** Which files are touched in this flow */
50
+ filesInvolved: string[];
51
+ /** Risk level if this flow breaks */
52
+ riskLevel: 'low' | 'medium' | 'high' | 'critical';
53
+ /** What data/state this flow modifies */
54
+ sideEffects: string[];
55
+ }
56
+ /** A component's interaction map */
57
+ export interface ComponentMap {
58
+ /** Component name */
59
+ name: string;
60
+ /** File path */
61
+ filePath: string;
62
+ /** Props/inputs this component accepts */
63
+ inputs: Array<{
64
+ name: string;
65
+ type: string;
66
+ }>;
67
+ /** Events/actions this component can trigger */
68
+ actions: Array<{
69
+ trigger: string;
70
+ handler: string;
71
+ flow: InteractionFlow;
72
+ }>;
73
+ /** State this component manages */
74
+ state: string[];
75
+ /** Child components it renders */
76
+ children: string[];
77
+ /** Data sources (API calls, store reads) */
78
+ dataSources: string[];
79
+ }
80
+ /** Full application interaction map */
81
+ export interface AppInteractionMap {
82
+ /** All detected routes with their full pipelines */
83
+ routes: InteractionFlow[];
84
+ /** All detected UI event handlers with pipelines */
85
+ eventHandlers: InteractionFlow[];
86
+ /** Component-level interaction maps */
87
+ components: ComponentMap[];
88
+ /** Layer summary: how many symbols per layer */
89
+ layerSummary: Record<FlowLayer, number>;
90
+ /** Files grouped by layer */
91
+ filesByLayer: Record<string, FlowLayer>;
92
+ }
93
+ export declare class FlowAnalyzer {
94
+ private readonly graph;
95
+ private readonly projectRoot;
96
+ constructor(graph: KnowledgeGraph, projectRoot: string);
97
+ /**
98
+ * Build the complete interaction map for the application.
99
+ */
100
+ buildInteractionMap(): AppInteractionMap;
101
+ /**
102
+ * Trace a complete flow starting from a specific symbol.
103
+ * "What happens when createNote() is called?"
104
+ */
105
+ traceFlow(startSymbol: string, maxDepth?: number): InteractionFlow;
106
+ /**
107
+ * Trace a flow starting from a route.
108
+ * "What happens when someone hits POST /api/notes?"
109
+ */
110
+ traceRoute(routePattern: string): InteractionFlow;
111
+ /**
112
+ * Classify a single file by its layer using weighted multi-signal scoring.
113
+ */
114
+ classifyFile(filePath: string): FlowLayer;
115
+ /**
116
+ * Full classification with confidence details.
117
+ * Returns the winning layer, confidence score, all signal hits, and runner-up layers.
118
+ */
119
+ getFileClassification(filePath: string): {
120
+ layer: FlowLayer;
121
+ confidence: number;
122
+ signals: Array<{
123
+ source: string;
124
+ layer: FlowLayer;
125
+ weight: number;
126
+ }>;
127
+ runnerUp?: FlowLayer;
128
+ };
129
+ /**
130
+ * Get a summary of how the app is structured by layers.
131
+ */
132
+ getLayerOverview(): Array<{
133
+ layer: FlowLayer;
134
+ fileCount: number;
135
+ symbolCount: number;
136
+ files: string[];
137
+ keySymbols: string[];
138
+ }>;
139
+ private traceFromNode;
140
+ /**
141
+ * When the graph has no explicit 'calls' edges (common in C# partial classes),
142
+ * read the method body and search for method names that exist in the same class
143
+ * across any partial class file.
144
+ *
145
+ * E.g., NotesToggle_Click() calls OpenNotesPanel() which is in a different
146
+ * partial class file — the static parser may not have created an edge.
147
+ */
148
+ private discoverInlineCalls;
149
+ private escapeRegex;
150
+ private detectRoutes;
151
+ private detectEventHandlers;
152
+ private buildComponentMaps;
153
+ /** Score a file across ALL layers and return the best match */
154
+ private scoreFile;
155
+ /** File classification cache to avoid re-reading files */
156
+ private fileClassCache;
157
+ private classifyFilesByLayer;
158
+ private classifySymbol;
159
+ private buildLayerSummary;
160
+ private describeAction;
161
+ private inferProduces;
162
+ private assessRisk;
163
+ private generateFlowName;
164
+ private emptyFlow;
165
+ private getAllNodes;
166
+ }
167
+ //# sourceMappingURL=flow-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-analyzer.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/flow-analyzer.ts"],"names":[],"mappings":"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"}