@memberjunction/db-auto-doc 2.116.0 → 2.118.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 (251) hide show
  1. package/README.md +652 -165
  2. package/bin/run.js +7 -0
  3. package/dist/api/DBAutoDocAPI.d.ts +252 -0
  4. package/dist/api/DBAutoDocAPI.d.ts.map +1 -0
  5. package/dist/api/DBAutoDocAPI.js +530 -0
  6. package/dist/api/DBAutoDocAPI.js.map +1 -0
  7. package/dist/api/index.d.ts +7 -0
  8. package/dist/api/index.d.ts.map +1 -0
  9. package/dist/api/index.js +10 -0
  10. package/dist/api/index.js.map +1 -0
  11. package/dist/commands/analyze.d.ts +6 -4
  12. package/dist/commands/analyze.d.ts.map +1 -1
  13. package/dist/commands/analyze.js +58 -71
  14. package/dist/commands/analyze.js.map +1 -1
  15. package/dist/commands/export.d.ts +14 -4
  16. package/dist/commands/export.d.ts.map +1 -1
  17. package/dist/commands/export.js +156 -61
  18. package/dist/commands/export.js.map +1 -1
  19. package/dist/commands/init.d.ts +3 -4
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +155 -146
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/reset.d.ts +4 -1
  24. package/dist/commands/reset.d.ts.map +1 -1
  25. package/dist/commands/reset.js +33 -19
  26. package/dist/commands/reset.js.map +1 -1
  27. package/dist/commands/status.d.ts +10 -0
  28. package/dist/commands/status.d.ts.map +1 -0
  29. package/dist/commands/status.js +66 -0
  30. package/dist/commands/status.js.map +1 -0
  31. package/dist/core/AnalysisEngine.d.ts +108 -0
  32. package/dist/core/AnalysisEngine.d.ts.map +1 -0
  33. package/dist/core/AnalysisEngine.js +716 -0
  34. package/dist/core/AnalysisEngine.js.map +1 -0
  35. package/dist/core/AnalysisOrchestrator.d.ts +37 -0
  36. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -0
  37. package/dist/core/AnalysisOrchestrator.js +294 -0
  38. package/dist/core/AnalysisOrchestrator.js.map +1 -0
  39. package/dist/core/BackpropagationEngine.d.ts +32 -0
  40. package/dist/core/BackpropagationEngine.d.ts.map +1 -0
  41. package/dist/core/BackpropagationEngine.js +121 -0
  42. package/dist/core/BackpropagationEngine.js.map +1 -0
  43. package/dist/core/ConvergenceDetector.d.ts +27 -0
  44. package/dist/core/ConvergenceDetector.d.ts.map +1 -0
  45. package/dist/core/ConvergenceDetector.js +92 -0
  46. package/dist/core/ConvergenceDetector.js.map +1 -0
  47. package/dist/core/GuardrailsManager.d.ts +78 -0
  48. package/dist/core/GuardrailsManager.d.ts.map +1 -0
  49. package/dist/core/GuardrailsManager.js +367 -0
  50. package/dist/core/GuardrailsManager.js.map +1 -0
  51. package/dist/core/index.d.ts +7 -0
  52. package/dist/core/index.d.ts.map +1 -0
  53. package/dist/core/index.js +13 -0
  54. package/dist/core/index.js.map +1 -0
  55. package/dist/database/Database.d.ts +56 -0
  56. package/dist/database/Database.d.ts.map +1 -0
  57. package/dist/database/Database.js +172 -0
  58. package/dist/database/Database.js.map +1 -0
  59. package/dist/database/TopologicalSorter.d.ts +25 -0
  60. package/dist/database/TopologicalSorter.d.ts.map +1 -0
  61. package/dist/database/TopologicalSorter.js +150 -0
  62. package/dist/database/TopologicalSorter.js.map +1 -0
  63. package/dist/database/index.d.ts +6 -0
  64. package/dist/database/index.d.ts.map +1 -0
  65. package/dist/database/index.js +14 -0
  66. package/dist/database/index.js.map +1 -0
  67. package/dist/discovery/ColumnStatsCache.d.ts +91 -0
  68. package/dist/discovery/ColumnStatsCache.d.ts.map +1 -0
  69. package/dist/discovery/ColumnStatsCache.js +231 -0
  70. package/dist/discovery/ColumnStatsCache.js.map +1 -0
  71. package/dist/discovery/DiscoveryEngine.d.ts +100 -0
  72. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -0
  73. package/dist/discovery/DiscoveryEngine.js +726 -0
  74. package/dist/discovery/DiscoveryEngine.js.map +1 -0
  75. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts +57 -0
  76. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts.map +1 -0
  77. package/dist/discovery/DiscoveryTriggerAnalyzer.js +186 -0
  78. package/dist/discovery/DiscoveryTriggerAnalyzer.js.map +1 -0
  79. package/dist/discovery/FKDetector.d.ts +47 -0
  80. package/dist/discovery/FKDetector.d.ts.map +1 -0
  81. package/dist/discovery/FKDetector.js +317 -0
  82. package/dist/discovery/FKDetector.js.map +1 -0
  83. package/dist/discovery/LLMDiscoveryValidator.d.ts +64 -0
  84. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -0
  85. package/dist/discovery/LLMDiscoveryValidator.js +431 -0
  86. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -0
  87. package/dist/discovery/LLMSanityChecker.d.ts +38 -0
  88. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -0
  89. package/dist/discovery/LLMSanityChecker.js +156 -0
  90. package/dist/discovery/LLMSanityChecker.js.map +1 -0
  91. package/dist/discovery/PKDetector.d.ts +62 -0
  92. package/dist/discovery/PKDetector.d.ts.map +1 -0
  93. package/dist/discovery/PKDetector.js +436 -0
  94. package/dist/discovery/PKDetector.js.map +1 -0
  95. package/dist/discovery/index.d.ts +9 -0
  96. package/dist/discovery/index.d.ts.map +1 -0
  97. package/dist/discovery/index.js +25 -0
  98. package/dist/discovery/index.js.map +1 -0
  99. package/dist/drivers/BaseAutoDocDriver.d.ts +132 -0
  100. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -0
  101. package/dist/drivers/BaseAutoDocDriver.js +121 -0
  102. package/dist/drivers/BaseAutoDocDriver.js.map +1 -0
  103. package/dist/drivers/MySQLDriver.d.ts +61 -0
  104. package/dist/drivers/MySQLDriver.d.ts.map +1 -0
  105. package/dist/drivers/MySQLDriver.js +668 -0
  106. package/dist/drivers/MySQLDriver.js.map +1 -0
  107. package/dist/drivers/PostgreSQLDriver.d.ts +65 -0
  108. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -0
  109. package/dist/drivers/PostgreSQLDriver.js +704 -0
  110. package/dist/drivers/PostgreSQLDriver.js.map +1 -0
  111. package/dist/drivers/SQLServerDriver.d.ts +61 -0
  112. package/dist/drivers/SQLServerDriver.d.ts.map +1 -0
  113. package/dist/drivers/SQLServerDriver.js +667 -0
  114. package/dist/drivers/SQLServerDriver.js.map +1 -0
  115. package/dist/generators/CSVGenerator.d.ts +35 -0
  116. package/dist/generators/CSVGenerator.d.ts.map +1 -0
  117. package/dist/generators/CSVGenerator.js +154 -0
  118. package/dist/generators/CSVGenerator.js.map +1 -0
  119. package/dist/generators/HTMLGenerator.d.ts +29 -0
  120. package/dist/generators/HTMLGenerator.d.ts.map +1 -0
  121. package/dist/generators/HTMLGenerator.js +710 -0
  122. package/dist/generators/HTMLGenerator.js.map +1 -0
  123. package/dist/generators/MarkdownGenerator.d.ts +27 -0
  124. package/dist/generators/MarkdownGenerator.d.ts.map +1 -0
  125. package/dist/generators/MarkdownGenerator.js +361 -0
  126. package/dist/generators/MarkdownGenerator.js.map +1 -0
  127. package/dist/generators/MermaidGenerator.d.ts +35 -0
  128. package/dist/generators/MermaidGenerator.d.ts.map +1 -0
  129. package/dist/generators/MermaidGenerator.js +321 -0
  130. package/dist/generators/MermaidGenerator.js.map +1 -0
  131. package/dist/generators/ReportGenerator.d.ts +22 -0
  132. package/dist/generators/ReportGenerator.d.ts.map +1 -0
  133. package/dist/generators/ReportGenerator.js +176 -0
  134. package/dist/generators/ReportGenerator.js.map +1 -0
  135. package/dist/generators/SQLGenerator.d.ts +31 -0
  136. package/dist/generators/SQLGenerator.d.ts.map +1 -0
  137. package/dist/generators/SQLGenerator.js +168 -0
  138. package/dist/generators/SQLGenerator.js.map +1 -0
  139. package/dist/generators/index.d.ts +10 -0
  140. package/dist/generators/index.d.ts.map +1 -0
  141. package/dist/generators/index.js +19 -0
  142. package/dist/generators/index.js.map +1 -0
  143. package/dist/index.d.ts +11 -20
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +19 -20
  146. package/dist/index.js.map +1 -1
  147. package/dist/prompts/PromptEngine.d.ts +65 -0
  148. package/dist/prompts/PromptEngine.d.ts.map +1 -0
  149. package/dist/prompts/PromptEngine.js +282 -0
  150. package/dist/prompts/PromptEngine.js.map +1 -0
  151. package/dist/prompts/PromptFileLoader.d.ts +21 -0
  152. package/dist/prompts/PromptFileLoader.d.ts.map +1 -0
  153. package/dist/prompts/PromptFileLoader.js +74 -0
  154. package/dist/prompts/PromptFileLoader.js.map +1 -0
  155. package/dist/prompts/index.d.ts +6 -0
  156. package/dist/prompts/index.d.ts.map +1 -0
  157. package/dist/prompts/index.js +11 -0
  158. package/dist/prompts/index.js.map +1 -0
  159. package/dist/state/IterationTracker.d.ts +64 -0
  160. package/dist/state/IterationTracker.d.ts.map +1 -0
  161. package/dist/state/IterationTracker.js +136 -0
  162. package/dist/state/IterationTracker.js.map +1 -0
  163. package/dist/state/StateManager.d.ts +79 -0
  164. package/dist/state/StateManager.d.ts.map +1 -0
  165. package/dist/state/StateManager.js +348 -0
  166. package/dist/state/StateManager.js.map +1 -0
  167. package/dist/state/StateValidator.d.ts +24 -0
  168. package/dist/state/StateValidator.d.ts.map +1 -0
  169. package/dist/state/StateValidator.js +147 -0
  170. package/dist/state/StateValidator.js.map +1 -0
  171. package/dist/state/index.d.ts +7 -0
  172. package/dist/state/index.d.ts.map +1 -0
  173. package/dist/state/index.js +13 -0
  174. package/dist/state/index.js.map +1 -0
  175. package/dist/types/analysis.d.ts +76 -0
  176. package/dist/types/analysis.d.ts.map +1 -0
  177. package/dist/types/analysis.js +6 -0
  178. package/dist/types/analysis.js.map +1 -0
  179. package/dist/types/config.d.ts +132 -0
  180. package/dist/types/config.d.ts.map +1 -0
  181. package/dist/types/config.js +7 -0
  182. package/dist/types/config.js.map +1 -0
  183. package/dist/types/discovery.d.ts +277 -0
  184. package/dist/types/discovery.d.ts.map +1 -0
  185. package/dist/types/discovery.js +7 -0
  186. package/dist/types/discovery.js.map +1 -0
  187. package/dist/types/driver.d.ts +148 -0
  188. package/dist/types/driver.d.ts.map +1 -0
  189. package/dist/types/driver.js +7 -0
  190. package/dist/types/driver.js.map +1 -0
  191. package/dist/types/index.d.ts +8 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +24 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/prompts.d.ts +158 -0
  196. package/dist/types/prompts.d.ts.map +1 -0
  197. package/dist/types/prompts.js +6 -0
  198. package/dist/types/prompts.js.map +1 -0
  199. package/dist/types/state.d.ts +278 -0
  200. package/dist/types/state.d.ts.map +1 -0
  201. package/dist/types/state.js +7 -0
  202. package/dist/types/state.js.map +1 -0
  203. package/dist/utils/config-loader.d.ts +29 -0
  204. package/dist/utils/config-loader.d.ts.map +1 -0
  205. package/dist/utils/config-loader.js +163 -0
  206. package/dist/utils/config-loader.js.map +1 -0
  207. package/dist/utils/index.d.ts +5 -0
  208. package/dist/utils/index.d.ts.map +1 -0
  209. package/dist/utils/index.js +9 -0
  210. package/dist/utils/index.js.map +1 -0
  211. package/package.json +24 -3
  212. package/dist/ai/simple-ai-client.d.ts +0 -70
  213. package/dist/ai/simple-ai-client.d.ts.map +0 -1
  214. package/dist/ai/simple-ai-client.js +0 -181
  215. package/dist/ai/simple-ai-client.js.map +0 -1
  216. package/dist/analyzers/analyzer.d.ts +0 -23
  217. package/dist/analyzers/analyzer.d.ts.map +0 -1
  218. package/dist/analyzers/analyzer.js +0 -127
  219. package/dist/analyzers/analyzer.js.map +0 -1
  220. package/dist/cli-old/cli.d.ts +0 -3
  221. package/dist/cli-old/cli.d.ts.map +0 -1
  222. package/dist/cli-old/cli.js +0 -388
  223. package/dist/cli-old/cli.js.map +0 -1
  224. package/dist/commands/review.d.ts +0 -11
  225. package/dist/commands/review.d.ts.map +0 -1
  226. package/dist/commands/review.js +0 -82
  227. package/dist/commands/review.js.map +0 -1
  228. package/dist/database/connection.d.ts +0 -40
  229. package/dist/database/connection.d.ts.map +0 -1
  230. package/dist/database/connection.js +0 -136
  231. package/dist/database/connection.js.map +0 -1
  232. package/dist/database/introspection.d.ts +0 -59
  233. package/dist/database/introspection.d.ts.map +0 -1
  234. package/dist/database/introspection.js +0 -124
  235. package/dist/database/introspection.js.map +0 -1
  236. package/dist/generators/markdown-generator.d.ts +0 -8
  237. package/dist/generators/markdown-generator.d.ts.map +0 -1
  238. package/dist/generators/markdown-generator.js +0 -106
  239. package/dist/generators/markdown-generator.js.map +0 -1
  240. package/dist/generators/sql-generator.d.ts +0 -20
  241. package/dist/generators/sql-generator.d.ts.map +0 -1
  242. package/dist/generators/sql-generator.js +0 -83
  243. package/dist/generators/sql-generator.js.map +0 -1
  244. package/dist/state/state-manager.d.ts +0 -95
  245. package/dist/state/state-manager.d.ts.map +0 -1
  246. package/dist/state/state-manager.js +0 -236
  247. package/dist/state/state-manager.js.map +0 -1
  248. package/dist/types/state-file.d.ts +0 -124
  249. package/dist/types/state-file.d.ts.map +0 -1
  250. package/dist/types/state-file.js +0 -79
  251. package/dist/types/state-file.js.map +0 -1
@@ -1,95 +0,0 @@
1
- import { StateFile, RunHistoryEntry } from '../types/state-file';
2
- export interface StateManagerOptions {
3
- stateFilePath?: string;
4
- }
5
- /**
6
- * State file manager - handles read/write/merge of db-doc-state.json
7
- */
8
- export declare class StateManager {
9
- private stateFilePath;
10
- private state?;
11
- constructor(options?: StateManagerOptions);
12
- /**
13
- * Load state file (or create if doesn't exist)
14
- */
15
- load(server?: string, database?: string): Promise<StateFile>;
16
- /**
17
- * Save state file
18
- */
19
- save(): Promise<void>;
20
- /**
21
- * Get current state
22
- */
23
- getState(): StateFile;
24
- /**
25
- * Update table with AI-generated documentation
26
- */
27
- updateTableAI(schemaName: string, tableName: string, aiDoc: {
28
- description: string;
29
- purpose?: string;
30
- usageNotes?: string;
31
- businessDomain?: string;
32
- confidence: number;
33
- model: string;
34
- tokensUsed?: number;
35
- relationships?: Array<{
36
- type: 'parent' | 'child';
37
- table: string;
38
- description: string;
39
- }>;
40
- }): void;
41
- /**
42
- * Update column with AI-generated documentation
43
- */
44
- updateColumnAI(schemaName: string, tableName: string, columnName: string, aiDoc: {
45
- description: string;
46
- purpose?: string;
47
- validValues?: string;
48
- usageNotes?: string;
49
- confidence: number;
50
- model: string;
51
- }): void;
52
- /**
53
- * Mark table as user approved
54
- */
55
- approveTable(schemaName: string, tableName: string): void;
56
- /**
57
- * Mark column as user approved
58
- */
59
- approveColumn(schemaName: string, tableName: string, columnName: string): void;
60
- /**
61
- * Add user notes to table
62
- */
63
- addTableNotes(schemaName: string, tableName: string, notes: string): void;
64
- /**
65
- * Add user notes to column
66
- */
67
- addColumnNotes(schemaName: string, tableName: string, columnName: string, notes: string): void;
68
- /**
69
- * Add run history entry
70
- */
71
- addRunHistory(entry: RunHistoryEntry): void;
72
- /**
73
- * Get tables that need processing (no AI generation yet)
74
- */
75
- getTablesNeedingProcessing(schemaName?: string): Array<{
76
- schema: string;
77
- table: string;
78
- }>;
79
- /**
80
- * Get unapproved tables
81
- */
82
- getUnapprovedTables(schemaName?: string): Array<{
83
- schema: string;
84
- table: string;
85
- }>;
86
- /**
87
- * Check if state file exists
88
- */
89
- exists(): Promise<boolean>;
90
- /**
91
- * Reset state file
92
- */
93
- reset(server: string, database: string): Promise<void>;
94
- }
95
- //# sourceMappingURL=state-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAQT,eAAe,EAEhB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAC,CAAY;gBAEd,OAAO,GAAE,mBAAwB;IAI7C;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAgBlE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACH,QAAQ,IAAI,SAAS;IAOrB;;OAEG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,KAAK,CAAC;YACpB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,GACA,IAAI;IA4BP;;OAEG;IACH,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,GACA,IAAI;IA2BP;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUzD;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAW9E;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBzE;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB9F;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAK3C;;OAEG;IACH,0BAA0B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBzF;;OAEG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBlF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShC;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7D"}
@@ -1,236 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.StateManager = void 0;
27
- const fs = __importStar(require("fs/promises"));
28
- const path = __importStar(require("path"));
29
- const state_file_1 = require("../types/state-file");
30
- /**
31
- * State file manager - handles read/write/merge of db-doc-state.json
32
- */
33
- class StateManager {
34
- constructor(options = {}) {
35
- this.stateFilePath = options.stateFilePath || path.join(process.cwd(), 'db-doc-state.json');
36
- }
37
- /**
38
- * Load state file (or create if doesn't exist)
39
- */
40
- async load(server, database) {
41
- try {
42
- const content = await fs.readFile(this.stateFilePath, 'utf-8');
43
- this.state = JSON.parse(content);
44
- return this.state;
45
- }
46
- catch (error) {
47
- // File doesn't exist, create new
48
- if (server && database) {
49
- this.state = (0, state_file_1.createEmptyStateFile)(server, database);
50
- await this.save();
51
- return this.state;
52
- }
53
- throw new Error(`State file not found at ${this.stateFilePath} and no server/database provided`);
54
- }
55
- }
56
- /**
57
- * Save state file
58
- */
59
- async save() {
60
- if (!this.state) {
61
- throw new Error('No state to save');
62
- }
63
- this.state.lastModified = new Date().toISOString();
64
- const content = JSON.stringify(this.state, null, 2);
65
- await fs.writeFile(this.stateFilePath, content, 'utf-8');
66
- }
67
- /**
68
- * Get current state
69
- */
70
- getState() {
71
- if (!this.state) {
72
- throw new Error('State not loaded');
73
- }
74
- return this.state;
75
- }
76
- /**
77
- * Update table with AI-generated documentation
78
- */
79
- updateTableAI(schemaName, tableName, aiDoc) {
80
- if (!this.state)
81
- throw new Error('State not loaded');
82
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
83
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
84
- table.aiGenerated = {
85
- description: aiDoc.description,
86
- purpose: aiDoc.purpose,
87
- usageNotes: aiDoc.usageNotes,
88
- businessDomain: aiDoc.businessDomain,
89
- confidence: aiDoc.confidence,
90
- generatedAt: new Date().toISOString(),
91
- model: aiDoc.model,
92
- tokensUsed: aiDoc.tokensUsed,
93
- relationships: aiDoc.relationships,
94
- };
95
- table.lastModified = new Date().toISOString();
96
- // Update final description
97
- table.finalDescription = (0, state_file_1.mergeFinalDescription)(table.userDescription, table.userNotes, table.aiGenerated.description);
98
- }
99
- /**
100
- * Update column with AI-generated documentation
101
- */
102
- updateColumnAI(schemaName, tableName, columnName, aiDoc) {
103
- if (!this.state)
104
- throw new Error('State not loaded');
105
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
106
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
107
- const column = (0, state_file_1.getOrCreateColumn)(table, columnName);
108
- column.aiGenerated = {
109
- description: aiDoc.description,
110
- purpose: aiDoc.purpose,
111
- validValues: aiDoc.validValues,
112
- usageNotes: aiDoc.usageNotes,
113
- confidence: aiDoc.confidence,
114
- generatedAt: new Date().toISOString(),
115
- model: aiDoc.model,
116
- };
117
- column.lastModified = new Date().toISOString();
118
- // Update final description
119
- column.finalDescription = (0, state_file_1.mergeFinalDescription)(column.userDescription, column.userNotes, column.aiGenerated.description);
120
- }
121
- /**
122
- * Mark table as user approved
123
- */
124
- approveTable(schemaName, tableName) {
125
- if (!this.state)
126
- throw new Error('State not loaded');
127
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
128
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
129
- table.userApproved = true;
130
- table.lastModified = new Date().toISOString();
131
- }
132
- /**
133
- * Mark column as user approved
134
- */
135
- approveColumn(schemaName, tableName, columnName) {
136
- if (!this.state)
137
- throw new Error('State not loaded');
138
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
139
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
140
- const column = (0, state_file_1.getOrCreateColumn)(table, columnName);
141
- column.userApproved = true;
142
- column.lastModified = new Date().toISOString();
143
- }
144
- /**
145
- * Add user notes to table
146
- */
147
- addTableNotes(schemaName, tableName, notes) {
148
- if (!this.state)
149
- throw new Error('State not loaded');
150
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
151
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
152
- table.userNotes = notes;
153
- table.lastModified = new Date().toISOString();
154
- // Update final description
155
- table.finalDescription = (0, state_file_1.mergeFinalDescription)(table.userDescription, table.userNotes, table.aiGenerated?.description);
156
- }
157
- /**
158
- * Add user notes to column
159
- */
160
- addColumnNotes(schemaName, tableName, columnName, notes) {
161
- if (!this.state)
162
- throw new Error('State not loaded');
163
- const schema = (0, state_file_1.getOrCreateSchema)(this.state, schemaName);
164
- const table = (0, state_file_1.getOrCreateTable)(schema, tableName);
165
- const column = (0, state_file_1.getOrCreateColumn)(table, columnName);
166
- column.userNotes = notes;
167
- column.lastModified = new Date().toISOString();
168
- // Update final description
169
- column.finalDescription = (0, state_file_1.mergeFinalDescription)(column.userDescription, column.userNotes, column.aiGenerated?.description);
170
- }
171
- /**
172
- * Add run history entry
173
- */
174
- addRunHistory(entry) {
175
- if (!this.state)
176
- throw new Error('State not loaded');
177
- this.state.runHistory.push(entry);
178
- }
179
- /**
180
- * Get tables that need processing (no AI generation yet)
181
- */
182
- getTablesNeedingProcessing(schemaName) {
183
- if (!this.state)
184
- throw new Error('State not loaded');
185
- const tables = [];
186
- for (const [schema, schemaState] of Object.entries(this.state.schemas)) {
187
- if (schemaName && schema !== schemaName)
188
- continue;
189
- for (const [table, tableState] of Object.entries(schemaState.tables)) {
190
- if (!tableState.aiGenerated) {
191
- tables.push({ schema, table });
192
- }
193
- }
194
- }
195
- return tables;
196
- }
197
- /**
198
- * Get unapproved tables
199
- */
200
- getUnapprovedTables(schemaName) {
201
- if (!this.state)
202
- throw new Error('State not loaded');
203
- const tables = [];
204
- for (const [schema, schemaState] of Object.entries(this.state.schemas)) {
205
- if (schemaName && schema !== schemaName)
206
- continue;
207
- for (const [table, tableState] of Object.entries(schemaState.tables)) {
208
- if (tableState.aiGenerated && !tableState.userApproved) {
209
- tables.push({ schema, table });
210
- }
211
- }
212
- }
213
- return tables;
214
- }
215
- /**
216
- * Check if state file exists
217
- */
218
- async exists() {
219
- try {
220
- await fs.access(this.stateFilePath);
221
- return true;
222
- }
223
- catch {
224
- return false;
225
- }
226
- }
227
- /**
228
- * Reset state file
229
- */
230
- async reset(server, database) {
231
- this.state = (0, state_file_1.createEmptyStateFile)(server, database);
232
- await this.save();
233
- }
234
- }
235
- exports.StateManager = StateManager;
236
- //# sourceMappingURL=state-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
1
- /**
2
- * State file type definitions for SQL Server Documentation Generator
3
- * This file is persisted as db-doc-state.json and tracks all documentation state
4
- */
5
- /**
6
- * AI-generated documentation with metadata
7
- */
8
- export interface AIGenerated {
9
- description: string;
10
- confidence: number;
11
- generatedAt: string;
12
- model: string;
13
- tokensUsed?: number;
14
- }
15
- /**
16
- * Column state in the documentation
17
- */
18
- export interface ColumnState {
19
- userNotes?: string;
20
- userDescription?: string;
21
- userApproved?: boolean;
22
- aiGenerated?: AIGenerated & {
23
- purpose?: string;
24
- validValues?: string;
25
- usageNotes?: string;
26
- };
27
- finalDescription?: string;
28
- lastModified?: string;
29
- }
30
- /**
31
- * Table state in the documentation
32
- */
33
- export interface TableState {
34
- userNotes?: string;
35
- userDescription?: string;
36
- userApproved?: boolean;
37
- userBusinessDomain?: string;
38
- aiGenerated?: AIGenerated & {
39
- purpose?: string;
40
- usageNotes?: string;
41
- businessDomain?: string;
42
- relationships?: Array<{
43
- type: 'parent' | 'child';
44
- table: string;
45
- description: string;
46
- }>;
47
- };
48
- finalDescription?: string;
49
- columns: Record<string, ColumnState>;
50
- lastModified?: string;
51
- lastAnalyzed?: string;
52
- }
53
- /**
54
- * Schema state in the documentation
55
- */
56
- export interface SchemaState {
57
- description?: string;
58
- businessDomain?: string;
59
- userNotes?: string;
60
- tables: Record<string, TableState>;
61
- }
62
- /**
63
- * Seed context provided by user
64
- */
65
- export interface SeedContext {
66
- overallPurpose?: string;
67
- businessDomains?: string[];
68
- customInstructions?: string;
69
- industryContext?: string;
70
- }
71
- /**
72
- * Run history entry
73
- */
74
- export interface RunHistoryEntry {
75
- timestamp: string;
76
- phase: 'analyze' | 'review' | 'export';
77
- tablesProcessed?: number;
78
- schemasProcessed?: number;
79
- tokensUsed?: number;
80
- cost?: number;
81
- duration?: number;
82
- errors?: string[];
83
- }
84
- /**
85
- * Database connection info (no credentials - those go in .env)
86
- */
87
- export interface DatabaseInfo {
88
- server: string;
89
- database: string;
90
- lastConnected?: string;
91
- }
92
- /**
93
- * Complete state file structure
94
- */
95
- export interface StateFile {
96
- version: string;
97
- database: DatabaseInfo;
98
- seedContext?: SeedContext;
99
- schemas: Record<string, SchemaState>;
100
- runHistory: RunHistoryEntry[];
101
- createdAt: string;
102
- lastModified: string;
103
- }
104
- /**
105
- * Default empty state file
106
- */
107
- export declare function createEmptyStateFile(server: string, database: string): StateFile;
108
- /**
109
- * Helper to get or create schema state
110
- */
111
- export declare function getOrCreateSchema(state: StateFile, schemaName: string): SchemaState;
112
- /**
113
- * Helper to get or create table state
114
- */
115
- export declare function getOrCreateTable(schema: SchemaState, tableName: string): TableState;
116
- /**
117
- * Helper to get or create column state
118
- */
119
- export declare function getOrCreateColumn(table: TableState, columnName: string): ColumnState;
120
- /**
121
- * Merge AI-generated description with user input to create final description
122
- */
123
- export declare function mergeFinalDescription(userDescription?: string, userNotes?: string, aiDescription?: string): string | undefined;
124
- //# sourceMappingURL=state-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-file.d.ts","sourceRoot":"","sources":["../../src/types/state-file.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- /**
3
- * State file type definitions for SQL Server Documentation Generator
4
- * This file is persisted as db-doc-state.json and tracks all documentation state
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.mergeFinalDescription = exports.getOrCreateColumn = exports.getOrCreateTable = exports.getOrCreateSchema = exports.createEmptyStateFile = void 0;
8
- /**
9
- * Default empty state file
10
- */
11
- function createEmptyStateFile(server, database) {
12
- const now = new Date().toISOString();
13
- return {
14
- version: '1.0',
15
- database: {
16
- server,
17
- database,
18
- lastConnected: now,
19
- },
20
- schemas: {},
21
- runHistory: [],
22
- createdAt: now,
23
- lastModified: now,
24
- };
25
- }
26
- exports.createEmptyStateFile = createEmptyStateFile;
27
- /**
28
- * Helper to get or create schema state
29
- */
30
- function getOrCreateSchema(state, schemaName) {
31
- if (!state.schemas[schemaName]) {
32
- state.schemas[schemaName] = {
33
- tables: {},
34
- };
35
- }
36
- return state.schemas[schemaName];
37
- }
38
- exports.getOrCreateSchema = getOrCreateSchema;
39
- /**
40
- * Helper to get or create table state
41
- */
42
- function getOrCreateTable(schema, tableName) {
43
- if (!schema.tables[tableName]) {
44
- schema.tables[tableName] = {
45
- columns: {},
46
- };
47
- }
48
- return schema.tables[tableName];
49
- }
50
- exports.getOrCreateTable = getOrCreateTable;
51
- /**
52
- * Helper to get or create column state
53
- */
54
- function getOrCreateColumn(table, columnName) {
55
- if (!table.columns[columnName]) {
56
- table.columns[columnName] = {};
57
- }
58
- return table.columns[columnName];
59
- }
60
- exports.getOrCreateColumn = getOrCreateColumn;
61
- /**
62
- * Merge AI-generated description with user input to create final description
63
- */
64
- function mergeFinalDescription(userDescription, userNotes, aiDescription) {
65
- // Priority: user description > AI description
66
- if (userDescription) {
67
- return userDescription;
68
- }
69
- if (aiDescription) {
70
- // If user notes exist, prepend them
71
- if (userNotes) {
72
- return `${userNotes}. ${aiDescription}`;
73
- }
74
- return aiDescription;
75
- }
76
- return undefined;
77
- }
78
- exports.mergeFinalDescription = mergeFinalDescription;
79
- //# sourceMappingURL=state-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-file.js","sourceRoot":"","sources":["../../src/types/state-file.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAiIH;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAAc,EAAE,QAAgB;IACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE;YACR,MAAM;YACN,QAAQ;YACR,aAAa,EAAE,GAAG;SACnB;QACD,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,GAAG;QACd,YAAY,EAAE,GAAG;KAClB,CAAC;AACJ,CAAC;AAfD,oDAeC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAgB,EAAE,UAAkB;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;YAC1B,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAPD,8CAOC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAmB,EAAE,SAAiB;IACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG;YACzB,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAPD,4CAOC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAiB,EAAE,UAAkB;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AALD,8CAKC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,eAAwB,EACxB,SAAkB,EAClB,aAAsB;IAEtB,8CAA8C;IAC9C,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,oCAAoC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,SAAS,KAAK,aAAa,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAnBD,sDAmBC"}