@memberjunction/db-auto-doc 6.2.0-edge.4 → 6.2.0-edge.5

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 (112) hide show
  1. package/README.md +95 -0
  2. package/dist/commands/analyze.d.ts +1 -0
  3. package/dist/commands/analyze.d.ts.map +1 -1
  4. package/dist/commands/analyze.js +6 -0
  5. package/dist/commands/analyze.js.map +1 -1
  6. package/dist/commands/export.d.ts +28 -19
  7. package/dist/commands/export.d.ts.map +1 -1
  8. package/dist/commands/export.js +91 -12
  9. package/dist/commands/export.js.map +1 -1
  10. package/dist/core/AnalysisEngine.d.ts +15 -6
  11. package/dist/core/AnalysisEngine.d.ts.map +1 -1
  12. package/dist/core/AnalysisEngine.js +41 -40
  13. package/dist/core/AnalysisEngine.js.map +1 -1
  14. package/dist/core/AnalysisOrchestrator.d.ts +20 -1
  15. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
  16. package/dist/core/AnalysisOrchestrator.js +131 -27
  17. package/dist/core/AnalysisOrchestrator.js.map +1 -1
  18. package/dist/core/PKProposalGate.d.ts +22 -0
  19. package/dist/core/PKProposalGate.d.ts.map +1 -0
  20. package/dist/core/PKProposalGate.js +52 -0
  21. package/dist/core/PKProposalGate.js.map +1 -0
  22. package/dist/database/Database.d.ts +8 -0
  23. package/dist/database/Database.d.ts.map +1 -1
  24. package/dist/database/Database.js +23 -1
  25. package/dist/database/Database.js.map +1 -1
  26. package/dist/discovery/EnumCandidateGate.d.ts +19 -0
  27. package/dist/discovery/EnumCandidateGate.d.ts.map +1 -1
  28. package/dist/discovery/EnumCandidateGate.js +47 -5
  29. package/dist/discovery/EnumCandidateGate.js.map +1 -1
  30. package/dist/discovery/FKGraphWalker.d.ts +35 -0
  31. package/dist/discovery/FKGraphWalker.d.ts.map +1 -1
  32. package/dist/discovery/FKGraphWalker.js +113 -12
  33. package/dist/discovery/FKGraphWalker.js.map +1 -1
  34. package/dist/discovery/LLMDiscoveryValidator.d.ts +2 -0
  35. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -1
  36. package/dist/discovery/LLMDiscoveryValidator.js +20 -9
  37. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -1
  38. package/dist/discovery/OrganicKeyDetector.d.ts.map +1 -1
  39. package/dist/discovery/OrganicKeyDetector.js +8 -2
  40. package/dist/discovery/OrganicKeyDetector.js.map +1 -1
  41. package/dist/discovery/StructuralPhase.d.ts +27 -5
  42. package/dist/discovery/StructuralPhase.d.ts.map +1 -1
  43. package/dist/discovery/StructuralPhase.js +42 -9
  44. package/dist/discovery/StructuralPhase.js.map +1 -1
  45. package/dist/discovery/TransitiveBridgeDetector.d.ts +5 -1
  46. package/dist/discovery/TransitiveBridgeDetector.d.ts.map +1 -1
  47. package/dist/discovery/TransitiveBridgeDetector.js +25 -3
  48. package/dist/discovery/TransitiveBridgeDetector.js.map +1 -1
  49. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -1
  50. package/dist/drivers/BaseAutoDocDriver.js +3 -5
  51. package/dist/drivers/BaseAutoDocDriver.js.map +1 -1
  52. package/dist/drivers/PostgreSQLDriver.d.ts +9 -1
  53. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -1
  54. package/dist/drivers/PostgreSQLDriver.js +41 -19
  55. package/dist/drivers/PostgreSQLDriver.js.map +1 -1
  56. package/dist/drivers/SQLServerDriver.d.ts.map +1 -1
  57. package/dist/drivers/SQLServerDriver.js +2 -1
  58. package/dist/drivers/SQLServerDriver.js.map +1 -1
  59. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts +34 -0
  60. package/dist/generators/AdditionalSchemaInfoGenerator.d.ts.map +1 -1
  61. package/dist/generators/AdditionalSchemaInfoGenerator.js +85 -4
  62. package/dist/generators/AdditionalSchemaInfoGenerator.js.map +1 -1
  63. package/dist/generators/ErdClusterGenerator.d.ts +44 -0
  64. package/dist/generators/ErdClusterGenerator.d.ts.map +1 -0
  65. package/dist/generators/ErdClusterGenerator.js +216 -0
  66. package/dist/generators/ErdClusterGenerator.js.map +1 -0
  67. package/dist/generators/ErdClusterer.d.ts +130 -0
  68. package/dist/generators/ErdClusterer.d.ts.map +1 -0
  69. package/dist/generators/ErdClusterer.js +308 -0
  70. package/dist/generators/ErdClusterer.js.map +1 -0
  71. package/dist/generators/HTMLGenerator.d.ts +6 -0
  72. package/dist/generators/HTMLGenerator.d.ts.map +1 -1
  73. package/dist/generators/HTMLGenerator.js +41 -6
  74. package/dist/generators/HTMLGenerator.js.map +1 -1
  75. package/dist/generators/MermaidGenerator.d.ts +3 -0
  76. package/dist/generators/MermaidGenerator.d.ts.map +1 -1
  77. package/dist/generators/MermaidGenerator.js +4 -0
  78. package/dist/generators/MermaidGenerator.js.map +1 -1
  79. package/dist/generators/index.d.ts +2 -0
  80. package/dist/generators/index.d.ts.map +1 -1
  81. package/dist/generators/index.js +2 -0
  82. package/dist/generators/index.js.map +1 -1
  83. package/dist/types/analysis.d.ts +2 -0
  84. package/dist/types/analysis.d.ts.map +1 -1
  85. package/dist/types/config.d.ts +46 -0
  86. package/dist/types/config.d.ts.map +1 -1
  87. package/dist/types/config.js +7 -1
  88. package/dist/types/config.js.map +1 -1
  89. package/dist/types/discovery.d.ts +2 -0
  90. package/dist/types/discovery.d.ts.map +1 -1
  91. package/dist/types/state.d.ts +27 -0
  92. package/dist/types/state.d.ts.map +1 -1
  93. package/dist/utils/config-loader.d.ts +5 -0
  94. package/dist/utils/config-loader.d.ts.map +1 -1
  95. package/dist/utils/config-loader.js +37 -0
  96. package/dist/utils/config-loader.js.map +1 -1
  97. package/dist/utils/index-hints.d.ts +36 -0
  98. package/dist/utils/index-hints.d.ts.map +1 -0
  99. package/dist/utils/index-hints.js +65 -0
  100. package/dist/utils/index-hints.js.map +1 -0
  101. package/dist/utils/index.d.ts +1 -0
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/index.js +1 -0
  104. package/dist/utils/index.js.map +1 -1
  105. package/dist/utils/llm-factory.d.ts +1 -0
  106. package/dist/utils/llm-factory.d.ts.map +1 -1
  107. package/dist/utils/llm-factory.js +6 -1
  108. package/dist/utils/llm-factory.js.map +1 -1
  109. package/package.json +5 -5
  110. package/prompts/fk-pruning-table.md +13 -1
  111. package/prompts/pk-pruning-table.md +10 -0
  112. package/prompts/table-analysis.md +11 -0
package/README.md CHANGED
@@ -164,6 +164,38 @@ This will:
164
164
  - Perform sanity checks
165
165
  - Save state to `db-doc-state.json`
166
166
 
167
+ #### Large databases
168
+
169
+ ```bash
170
+ # Skip the table data sampling pass (row counts, distinct counts, sample values)
171
+ db-auto-doc analyze --skip-sampling # or "analysis": { "skipSampling": true }
172
+
173
+ # An interrupted sampling pass resumes where it stopped: state is saved every 25 tables and a
174
+ # resume samples only the tables that have no statistics yet
175
+ db-auto-doc analyze --resume ./output/run-3/state.json
176
+ ```
177
+
178
+ Sampling is what the enum/value-list verdicts and the organic-key cardinality gate are based on, so with
179
+ `--skip-sampling` those verdicts fall back to the LLM's judgement. Organic-key detection is skipped with
180
+ a warning when no table has column statistics; on a `--resume --skip-sampling` of a run that already
181
+ sampled, the earlier statistics are kept and detection still runs.
182
+
183
+ #### Seed context from files
184
+
185
+ Long-form context (a data dictionary, an engineering assessment) can live in files instead of inline
186
+ `customInstructions`; their contents are appended to it:
187
+
188
+ ```json
189
+ "seedContext": {
190
+ "overallPurpose": "Association management system",
191
+ "file": "./context/data-dictionary.md",
192
+ "files": ["./context/assessment.md", "./context/glossary.md"]
193
+ }
194
+ ```
195
+
196
+ Paths are relative to `config.json`. The text is sent with every table prompt, so keep it to what the
197
+ model needs for descriptions rather than a full specification.
198
+
167
199
  ### 3. Generate Sample Queries (Optional)
168
200
 
169
201
  Generate reference SQL queries for AI agent training:
@@ -330,6 +362,59 @@ db-auto-doc export --state-file ./output/run-1/state.json --format index-migrati
330
362
 
331
363
  Dialect-specific formats take the database platform from the state file; override it with `--provider sqlserver|postgresql|mysql`. `--file-prefix` replaces a format's default file-name prefix (for example a migration version such as `V202610081500__`).
332
364
 
365
+ #### Subject-area diagrams for large schemas
366
+
367
+ Mermaid refuses a diagram whose source exceeds ~50,000 characters, and a schema of a few hundred tables
368
+ passes that long before it becomes readable. `--erd-mode clusters` splits the foreign-key graph into
369
+ hub-centred subject areas and writes one diagram per area to `erd/`, with an index and a "Subject Areas"
370
+ section in `documentation.html`:
371
+
372
+ ```bash
373
+ db-auto-doc export --html --mermaid --erd-mode clusters
374
+ db-auto-doc export --mermaid --erd-mode both --erd-columns keys # keep the full diagram too
375
+ ```
376
+
377
+ How the areas are chosen:
378
+
379
+ 1. **Reference tables** — tables that reference nothing and hold fewer than `lookupMaxRows` rows
380
+ (status codes, types, flags) — are listed beside each diagram rather than drawn. Left in, a flag table
381
+ referenced by sixty others links every area to every other.
382
+ 2. **Hubs** are tables referenced by at least `hubMinInbound` other tables.
383
+ 3. Every other connected table joins its nearest hub; an area smaller than `minClusterSize` folds into
384
+ the neighbour it links to most.
385
+ 4. An area larger than `pageSize` is paginated, with the hub on every page.
386
+
387
+ Defaults live in `config.json` and any of them can be overridden per run:
388
+
389
+ ```json
390
+ "output": {
391
+ "erd": {
392
+ "mode": "clusters",
393
+ "columns": "keys",
394
+ "hubMinInbound": 8,
395
+ "lookupMaxRows": 5000,
396
+ "pageSize": 50,
397
+ "minClusterSize": 4,
398
+ "hubs": ["Invoice"],
399
+ "lookupTables": ["AuditFlag"],
400
+ "excludeTables": ["Customer.bak"]
401
+ }
402
+ }
403
+ ```
404
+
405
+ | Flag | Overrides |
406
+ |------|-----------|
407
+ | `--erd-mode full\|clusters\|both` | `erd.mode` |
408
+ | `--erd-columns all\|keys\|none` | `erd.columns` (clusters default to `keys`) |
409
+ | `--erd-hub-min-inbound N` | `erd.hubMinInbound` |
410
+ | `--erd-lookup-max-rows N` | `erd.lookupMaxRows` |
411
+ | `--erd-page-size N` | `erd.pageSize` |
412
+ | `--erd-min-cluster-size N` | `erd.minClusterSize` |
413
+
414
+ `erd/index.md` names every area's members, the reference tables, the tables with no foreign keys and any
415
+ connected tables that reached no hub, so a wrong-looking split can be traced to a threshold or pinned with
416
+ `hubs` / `lookupTables` / `excludeTables`.
417
+
333
418
  ### 5. Export Sample Queries to Metadata (Optional)
334
419
 
335
420
  Transform generated sample queries into MemberJunction metadata format for syncing to the database:
@@ -428,6 +513,16 @@ Triggered automatically when:
428
513
  - Tables lack primary key constraints
429
514
  - Insufficient foreign key relationships detected (below threshold)
430
515
 
516
+ ### Existing Indexes as Evidence
517
+
518
+ Databases often have indexes where no key is declared: developers index the columns they join and filter on. DBAutoDoc reads every table's indexes right after introspection and stores them in the state file (`schemas[].tables[].indexes`). The LLM sees them in the discovery validation pass, table analysis, and PK/FK pruning:
519
+
520
+ - A `UNIQUE` index or primary key on non-null columns is strong evidence for the primary key (or an alternate key).
521
+ - A non-unique index led by an ID- or code-like column often marks a foreign key.
522
+ - In FK pruning, each candidate says whether its target column has a unique index.
523
+
524
+ They are hints, not proof, and are weighed with names, statistics and value overlap. Turn this off with `"analysis": { "useExistingIndexes": false }`. A resumed run reads indexes for any table whose state has none yet. If a schema's catalog can't be read, the run continues without its indexes.
525
+
431
526
  ### Organic Key Detection (Optional)
432
527
 
433
528
  Foreign keys require **shared exact values**. Organic keys (MemberJunction [PR #2193](https://github.com/MemberJunction/MJ/pull/2193)) capture the weaker-but-broader condition of **shared identity**: two columns refer to the same real-world thing once each is canonicalized through its own transformation. That joins far more cross-system data than exact-match FKs -- e.g. the same phone number stored as `+1 (555) 123-4567`, `5551234567`, and `555.123.4567` across HubSpot, Zendesk, and QuickBooks.
@@ -11,6 +11,7 @@ export default class Analyze extends Command {
11
11
  'max-iterations': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
12
  'reanalyze-below': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
13
  'pruning-only': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
+ 'skip-sampling': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
15
  };
15
16
  static args: {};
16
17
  run(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAiD;IAEnE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;MAwBV;IAEF,MAAM,CAAC,IAAI,KAAM;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqE3B"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAiD;IAEnE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;MA4BV;IAEF,MAAM,CAAC,IAAI,KAAM;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuE3B"}
@@ -39,6 +39,10 @@ export default class Analyze extends Command {
39
39
  'pruning-only': Flags.boolean({
40
40
  description: 'Skip discovery and analysis iterations. Only run the FK pruning pass on an existing state file. Requires --resume.',
41
41
  default: false
42
+ }),
43
+ 'skip-sampling': Flags.boolean({
44
+ description: 'Skip table data sampling pass (useful for large databases or when schema/dictionary is already provided)',
45
+ default: false
42
46
  })
43
47
  }; }
44
48
  static { this.args = {}; }
@@ -68,6 +72,8 @@ export default class Analyze extends Command {
68
72
  resumeFromState: flags.resume,
69
73
  reanalyzeBelowConfidence,
70
74
  maxIterations,
75
+ // --pruning-only runs the FK pruning pass alone; sampling would be new work it never asked for
76
+ skipSampling: flags['skip-sampling'] || flags['pruning-only'],
71
77
  onProgress: (message, data) => {
72
78
  if (data) {
73
79
  spinner.succeed(`${message}: ${JSON.stringify(data)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;aACnC,gBAAW,GAAG,6CAA6C,CAAC;aAE5D,aAAQ,GAAG;QAChB,uBAAuB;QACvB,iDAAiD;QACjD,gEAAgE;QAChE,mFAAmF;QACnF,sFAAsF;QACtF,+EAA+E;KAChF,CAAC;aAEK,UAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,yGAAyG;YACtH,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,eAAe;SACzB,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC9B,WAAW,EAAE,wHAAwH;YACrI,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,WAAW,EAAE,oHAAoH;YACjI,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;aAEK,SAAI,GAAG,EAAE,CAAC;IAEjB,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC;YACH,qBAAqB;YACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAExC,8CAA8C;YAC9C,MAAM,wBAAwB,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,IAAI;gBAC/D,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC;YAEd,yEAAyE;YACzE,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE5B,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC;gBAC5C,MAAM;gBACN,eAAe,EAAE,KAAK,CAAC,MAAM;gBAC7B,wBAAwB;gBACxB,aAAa;gBACb,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;oBAC5B,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,mBAAmB;YACnB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBACjN,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAE7B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;YAChD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,40 @@
1
1
  /**
2
2
  * Export command - Generate SQL and Markdown documentation
3
3
  */
4
- import { Command } from '@oclif/core';
4
+ import { Command, Interfaces } from '@oclif/core';
5
+ import { ErdColumnMode, ErdMode } from '../types/config.js';
5
6
  export default class Export extends Command {
6
7
  static description: string;
7
8
  static examples: string[];
8
9
  static flags: {
9
- 'state-file': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
- 'output-dir': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
- sql: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
- markdown: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
- html: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
- csv: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
15
- mermaid: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
16
- report: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
17
- 'schema-info': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
18
- 'schema-info-discovered-only': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
- 'schema-info-confirmed-only': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
20
- apply: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
21
- 'approved-only': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
22
- 'confidence-threshold': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
- format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
- 'list-formats': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
25
- provider: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
- 'file-prefix': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ 'state-file': Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
11
+ 'output-dir': Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
12
+ sql: Interfaces.BooleanFlag<boolean>;
13
+ markdown: Interfaces.BooleanFlag<boolean>;
14
+ html: Interfaces.BooleanFlag<boolean>;
15
+ csv: Interfaces.BooleanFlag<boolean>;
16
+ mermaid: Interfaces.BooleanFlag<boolean>;
17
+ report: Interfaces.BooleanFlag<boolean>;
18
+ 'schema-info': Interfaces.BooleanFlag<boolean>;
19
+ 'schema-info-discovered-only': Interfaces.BooleanFlag<boolean>;
20
+ 'schema-info-confirmed-only': Interfaces.BooleanFlag<boolean>;
21
+ apply: Interfaces.BooleanFlag<boolean>;
22
+ 'approved-only': Interfaces.BooleanFlag<boolean>;
23
+ 'confidence-threshold': Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
24
+ 'erd-mode': Interfaces.OptionFlag<ErdMode, Interfaces.CustomOptions>;
25
+ 'erd-columns': Interfaces.OptionFlag<ErdColumnMode, Interfaces.CustomOptions>;
26
+ 'erd-hub-min-inbound': Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
27
+ 'erd-lookup-max-rows': Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
28
+ 'erd-page-size': Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
29
+ 'erd-min-cluster-size': Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
30
+ format: Interfaces.OptionFlag<string[], Interfaces.CustomOptions>;
31
+ 'list-formats': Interfaces.BooleanFlag<boolean>;
32
+ provider: Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
33
+ 'file-prefix': Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
27
34
  };
28
35
  run(): Promise<void>;
36
+ /** Merge the ERD settings: defaults, then config.output.erd, then the export flags. */
37
+ private resolveErdConfig;
29
38
  /** Loads built-in plugins plus any external plugin modules named in the config. */
30
39
  private loadPluginExporters;
31
40
  private listFormats;
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAmB7C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAAkF;IAEpG,MAAM,CAAC,QAAQ,WAQb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;MAyBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAqM1B,mFAAmF;YACrE,mBAAmB;IAMjC,OAAO,CAAC,WAAW;YAUL,gBAAgB;CAsB/B"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,UAAU,EAAE,MAAM,aAAa,CAAC;AAezD,OAAO,EAAgB,aAAa,EAAa,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAerF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAAkF;IAEpG,MAAM,CAAC,QAAQ,WAUb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;MA+CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0O1B,uFAAuF;IACvF,OAAO,CAAC,gBAAgB;IAYxB,mFAAmF;YACrE,mBAAmB;IAMjC,OAAO,CAAC,WAAW;YAUL,gBAAgB;CAsB/B"}
@@ -14,9 +14,16 @@ import { ReportGenerator } from '../generators/ReportGenerator.js';
14
14
  import { HTMLGenerator } from '../generators/HTMLGenerator.js';
15
15
  import { CSVGenerator } from '../generators/CSVGenerator.js';
16
16
  import { MermaidGenerator } from '../generators/MermaidGenerator.js';
17
+ import { ErdClusterer } from '../generators/ErdClusterer.js';
18
+ import { ErdClusterGenerator } from '../generators/ErdClusterGenerator.js';
19
+ import { ERD_DEFAULTS } from '../types/config.js';
17
20
  import { AdditionalSchemaInfoGenerator } from '../generators/AdditionalSchemaInfoGenerator.js';
18
21
  import { PluginManager } from '../plugins/PluginManager.js';
19
22
  // DatabaseConnection is lazy-imported only when --apply is used (requires DB credentials)
23
+ /** Sub-directory of the output directory that holds the subject-area diagrams. */
24
+ const ERD_CLUSTER_DIR = 'erd';
25
+ const ERD_MODES = ['full', 'clusters', 'both'];
26
+ const ERD_COLUMN_MODES = ['all', 'keys', 'none'];
20
27
  export default class Export extends Command {
21
28
  static { this.description = 'Export documentation in multiple formats (SQL, Markdown, HTML, CSV, Mermaid)'; }
22
29
  static { this.examples = [
@@ -26,7 +33,9 @@ export default class Export extends Command {
26
33
  '$ db-auto-doc export --html',
27
34
  '$ db-auto-doc export --csv',
28
35
  '$ db-auto-doc export --mermaid',
29
- '$ db-auto-doc export --sql --markdown --html --csv --mermaid --apply'
36
+ '$ db-auto-doc export --sql --markdown --html --csv --mermaid --apply',
37
+ '$ db-auto-doc export --mermaid --erd-mode clusters',
38
+ '$ db-auto-doc export --html --mermaid --erd-mode clusters --erd-hub-min-inbound 12 --erd-page-size 40'
30
39
  ]; }
31
40
  static { this.flags = {
32
41
  'state-file': Flags.string({ description: 'Path to state JSON file', char: 's' }),
@@ -43,6 +52,28 @@ export default class Export extends Command {
43
52
  apply: Flags.boolean({ description: 'Apply SQL to database', default: false }),
44
53
  'approved-only': Flags.boolean({ description: 'Only export approved items', default: false }),
45
54
  'confidence-threshold': Flags.string({ description: 'Minimum confidence threshold', default: '0' }),
55
+ 'erd-mode': Flags.custom({ options: ERD_MODES })({
56
+ description: 'ERD layout: full (one diagram), clusters (one per subject area), both. Overrides output.erd.mode'
57
+ }),
58
+ 'erd-columns': Flags.custom({ options: ERD_COLUMN_MODES })({
59
+ description: 'Columns drawn per entity: all, keys (PK/FK only), none. Overrides output.erd.columns'
60
+ }),
61
+ 'erd-hub-min-inbound': Flags.integer({
62
+ min: 1,
63
+ description: `A table referenced by at least this many tables is a subject-area hub (default ${ERD_DEFAULTS.hubMinInbound})`
64
+ }),
65
+ 'erd-lookup-max-rows': Flags.integer({
66
+ min: 1,
67
+ description: `A table that references nothing and has fewer rows than this is a reference table, listed not drawn (default ${ERD_DEFAULTS.lookupMaxRows})`
68
+ }),
69
+ 'erd-page-size': Flags.integer({
70
+ min: 1,
71
+ description: `Tables per diagram page beyond the hub (default ${ERD_DEFAULTS.pageSize})`
72
+ }),
73
+ 'erd-min-cluster-size': Flags.integer({
74
+ min: 1,
75
+ description: `Subject areas smaller than this fold into a neighbour (default ${ERD_DEFAULTS.minClusterSize})`
76
+ }),
46
77
  format: Flags.string({
47
78
  description: 'Plugin export format to generate (repeatable). See --list-formats.',
48
79
  multiple: true
@@ -160,11 +191,29 @@ export default class Export extends Command {
160
191
  await fs.writeFile(mdPath, markdown, 'utf-8');
161
192
  spinner.succeed(`Markdown documentation saved to ${mdPath}`);
162
193
  }
194
+ // ERD options: export flags override config.output.erd, which overrides the defaults.
195
+ const erd = this.resolveErdConfig(config?.output?.erd, flags);
196
+ // The plan is built whenever an output needs it: the HTML's Subject Areas section links to the
197
+ // cluster pages, so requesting --html in clusters mode also writes them.
198
+ let clusterPlan = (generateMermaid || generateHTML) && erd.mode !== 'full'
199
+ ? new ErdClusterer().Plan(state, erd)
200
+ : undefined;
201
+ for (const warning of clusterPlan?.Warnings ?? []) {
202
+ this.warn(`ERD ${warning}`);
203
+ }
204
+ if (clusterPlan && clusterPlan.Clusters.length === 0) {
205
+ // Nothing is referenced often enough to anchor an area: fall back to the single diagram
206
+ // rather than leaving the documentation with no ERD at all.
207
+ this.warn(`ERD: no table is referenced by at least ${clusterPlan.Options.hubMinInbound} others, so there are no subject areas; `
208
+ + 'drawing the full diagram instead (lower --erd-hub-min-inbound to cluster)');
209
+ clusterPlan = undefined;
210
+ erd.mode = 'full';
211
+ }
163
212
  // Generate HTML
164
213
  if (generateHTML) {
165
214
  spinner.start('Generating HTML documentation');
166
215
  const htmlGen = new HTMLGenerator();
167
- const html = htmlGen.generate(state, generatorOptions);
216
+ const html = htmlGen.generate(state, { ...generatorOptions, clusterPlan, clusterDir: ERD_CLUSTER_DIR });
168
217
  const htmlPath = path.join(outputDir, 'documentation.html');
169
218
  await fs.writeFile(htmlPath, html, 'utf-8');
170
219
  spinner.succeed(`HTML documentation saved to ${htmlPath}`);
@@ -180,17 +229,35 @@ export default class Export extends Command {
180
229
  await fs.writeFile(columnsPath, csvExport.columns, 'utf-8');
181
230
  spinner.succeed(`CSV exports saved to ${tablesPath} and ${columnsPath}`);
182
231
  }
183
- // Generate Mermaid
232
+ // Generate Mermaid: the schema-wide diagram, the clustered subject areas, or both
184
233
  if (generateMermaid) {
185
- spinner.start('Generating Mermaid diagram');
186
- const mermaidGen = new MermaidGenerator();
187
- const mermaidDiagram = mermaidGen.generate(state, generatorOptions);
188
- const mermaidHtml = mermaidGen.generateHtml(state, generatorOptions);
189
- const mermaidPath = path.join(outputDir, 'erd.mmd');
190
- const mermaidHtmlPath = path.join(outputDir, 'erd.html');
191
- await fs.writeFile(mermaidPath, mermaidDiagram, 'utf-8');
192
- await fs.writeFile(mermaidHtmlPath, mermaidHtml, 'utf-8');
193
- spinner.succeed(`Mermaid diagram saved to ${mermaidPath} and ${mermaidHtmlPath}`);
234
+ if (erd.mode === 'full' || erd.mode === 'both') {
235
+ spinner.start('Generating Mermaid diagram');
236
+ const mermaidGen = new MermaidGenerator();
237
+ const fullOptions = { ...generatorOptions, columns: erd.columns === 'keys' || erd.columns === 'none' ? erd.columns : 'all' };
238
+ const mermaidDiagram = mermaidGen.generate(state, fullOptions);
239
+ const mermaidHtml = mermaidGen.generateHtml(state, fullOptions);
240
+ const mermaidPath = path.join(outputDir, 'erd.mmd');
241
+ const mermaidHtmlPath = path.join(outputDir, 'erd.html');
242
+ await fs.writeFile(mermaidPath, mermaidDiagram, 'utf-8');
243
+ await fs.writeFile(mermaidHtmlPath, mermaidHtml, 'utf-8');
244
+ spinner.succeed(`Mermaid diagram saved to ${mermaidPath} and ${mermaidHtmlPath}`);
245
+ }
246
+ }
247
+ if (clusterPlan) {
248
+ spinner.start('Generating subject-area diagrams');
249
+ const clusterGen = new ErdClusterGenerator();
250
+ const output = clusterGen.Generate(state, clusterPlan, { columns: erd.columns ?? 'keys' });
251
+ const clusterDir = path.join(outputDir, ERD_CLUSTER_DIR);
252
+ await fs.mkdir(clusterDir, { recursive: true });
253
+ for (const file of output.Files) {
254
+ await fs.writeFile(path.join(clusterDir, `${file.BaseName}.mmd`), file.Mermaid, 'utf-8');
255
+ await fs.writeFile(path.join(clusterDir, `${file.BaseName}.html`), file.Html, 'utf-8');
256
+ }
257
+ await fs.writeFile(path.join(clusterDir, 'index.html'), output.IndexHtml, 'utf-8');
258
+ await fs.writeFile(path.join(clusterDir, 'index.md'), output.IndexMarkdown, 'utf-8');
259
+ const largest = output.Files.reduce((n, f) => Math.max(n, f.Mermaid.length), 0);
260
+ spinner.succeed(`${clusterPlan.Clusters.length} subject areas (${output.Files.length} diagram pages, largest ${largest.toLocaleString()} chars) saved to ${clusterDir}`);
194
261
  }
195
262
  // Generate Report
196
263
  if (flags.report) {
@@ -222,6 +289,18 @@ export default class Export extends Command {
222
289
  this.error(error.message);
223
290
  }
224
291
  }
292
+ /** Merge the ERD settings: defaults, then config.output.erd, then the export flags. */
293
+ resolveErdConfig(configured, flags) {
294
+ return {
295
+ ...configured,
296
+ mode: flags['erd-mode'] ?? configured?.mode ?? 'full',
297
+ columns: flags['erd-columns'] ?? configured?.columns,
298
+ hubMinInbound: flags['erd-hub-min-inbound'] ?? configured?.hubMinInbound,
299
+ lookupMaxRows: flags['erd-lookup-max-rows'] ?? configured?.lookupMaxRows,
300
+ pageSize: flags['erd-page-size'] ?? configured?.pageSize,
301
+ minClusterSize: flags['erd-min-cluster-size'] ?? configured?.minClusterSize,
302
+ };
303
+ }
225
304
  /** Loads built-in plugins plus any external plugin modules named in the config. */
226
305
  async loadPluginExporters(entries) {
227
306
  const plugins = new PluginManager();
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@
2
2
  * Main analysis orchestrator
3
3
  * Coordinates the entire documentation generation workflow
4
4
  */
5
- import { DatabaseDocumentation, AnalysisRun, SchemaDefinition } from '../types/state.js';
5
+ import { DatabaseDocumentation, AnalysisRun, SchemaDefinition, TableDefinition } from '../types/state.js';
6
+ import type { BaseAutoDocDriver } from "../drivers/BaseAutoDocDriver.js";
6
7
  import { TableNode, BackpropagationTrigger } from '../types/analysis.js';
8
+ import { ColumnDescriptionPromptResult } from '../types/prompts.js';
7
9
  import { DBAutoDocConfig } from '../types/config.js';
8
10
  import { PromptEngine } from '../prompts/PromptEngine.js';
9
11
  import { StateManager } from '../state/StateManager.js';
@@ -13,6 +15,8 @@ export declare class AnalysisEngine {
13
15
  private promptEngine;
14
16
  private stateManager;
15
17
  private iterationTracker;
18
+ /** Database access for checks the LLM's proposals must pass (composite PK uniqueness). Optional: without it, composite PK proposals are rejected. */
19
+ private driver?;
16
20
  private backpropagationEngine;
17
21
  private convergenceDetector;
18
22
  private guardrailsManager;
@@ -20,7 +24,9 @@ export declare class AnalysisEngine {
20
24
  private startTime;
21
25
  private currentRun?;
22
26
  private onProgress;
23
- constructor(config: DBAutoDocConfig, promptEngine: PromptEngine, stateManager: StateManager, iterationTracker: IterationTracker, onProgress?: (message: string, data?: Record<string, unknown>) => void);
27
+ constructor(config: DBAutoDocConfig, promptEngine: PromptEngine, stateManager: StateManager, iterationTracker: IterationTracker, onProgress?: (message: string, data?: Record<string, unknown>) => void,
28
+ /** Database access for checks the LLM's proposals must pass (composite PK uniqueness). Optional: without it, composite PK proposals are rejected. */
29
+ driver?: BaseAutoDocDriver);
24
30
  /**
25
31
  * Initialize timing for guardrails and set current run
26
32
  */
@@ -99,6 +105,8 @@ export declare class AnalysisEngine {
99
105
  * Build context for table analysis
100
106
  */
101
107
  private buildTableContext;
108
+ /** The table's existing indexes as prompt lines, or undefined when there are none to show. */
109
+ private indexHintLines;
102
110
  /**
103
111
  * Build FK candidate stats from the discovery phase for this table.
104
112
  * Provides the LLM with cross-table relationship evidence (value overlap,
@@ -109,7 +117,7 @@ export declare class AnalysisEngine {
109
117
  * Persist enum/value-list verdicts from LLM response onto ColumnDefinition.
110
118
  * Keeps the highest-confidence verdict across multiple iterations.
111
119
  */
112
- private persistEnumVerdicts;
120
+ protected persistEnumVerdicts(table: TableDefinition, columnDescriptions: ColumnDescriptionPromptResult[] | undefined, modelUsed: string): void;
113
121
  /**
114
122
  * Sanitize LLM-returned enum values: trim whitespace, drop empties and null sentinels.
115
123
  */
@@ -177,9 +185,10 @@ export declare class AnalysisEngine {
177
185
  */
178
186
  private extractAndFeedbackFKInsights;
179
187
  /**
180
- * Process PK proposal from LLM. The LLM can propose a PK, but ALL proposed columns
181
- * must pass deterministic eligibility: zero nulls, zero blanks, 100% unique values.
182
- * If any column fails, the entire proposal is rejected.
188
+ * Process PK proposal from LLM. The LLM can propose a PK, but it must pass deterministic
189
+ * eligibility: every column exists and has no nulls, and the key is unique — a single column
190
+ * by its own statistics, a composite key as a combination (checked in the database).
191
+ * If any check fails, the entire proposal is rejected.
183
192
  */
184
193
  private processPKInsightFromLLM;
185
194
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisEngine.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalysisEngine.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisEngine.ts"],"names":[],"mappings":"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"}