@memberjunction/db-auto-doc 2.118.0 β 2.120.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.
- package/README.md +154 -3
- package/dist/commands/generate-queries.d.ts +17 -0
- package/dist/commands/generate-queries.d.ts.map +1 -0
- package/dist/commands/generate-queries.js +182 -0
- package/dist/commands/generate-queries.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +53 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/AnalysisOrchestrator.d.ts +4 -0
- package/dist/core/AnalysisOrchestrator.d.ts.map +1 -1
- package/dist/core/AnalysisOrchestrator.js +83 -0
- package/dist/core/AnalysisOrchestrator.js.map +1 -1
- package/dist/generators/SampleQueryGenerator.d.ts +64 -0
- package/dist/generators/SampleQueryGenerator.d.ts.map +1 -0
- package/dist/generators/SampleQueryGenerator.js +500 -0
- package/dist/generators/SampleQueryGenerator.js.map +1 -0
- package/dist/prompts/PromptEngine.d.ts.map +1 -1
- package/dist/prompts/PromptEngine.js +34 -11
- package/dist/prompts/PromptEngine.js.map +1 -1
- package/dist/types/config.d.ts +11 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/sample-queries.d.ts +172 -0
- package/dist/types/sample-queries.d.ts.map +1 -0
- package/dist/types/sample-queries.js +7 -0
- package/dist/types/sample-queries.js.map +1 -0
- package/dist/types/state.d.ts +13 -0
- package/dist/types/state.d.ts.map +1 -1
- package/package.json +8 -4
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ Automatically generate comprehensive documentation for SQL Server, MySQL, and Po
|
|
|
21
21
|
|
|
22
22
|
### Advanced Features
|
|
23
23
|
- **π Relationship Discovery** - Automatically detect missing primary and foreign keys using statistical analysis and LLM validation
|
|
24
|
+
- **π― Sample Query Generation** - Generate reference SQL queries for AI agents with alignment tracking
|
|
24
25
|
- **π‘οΈ Granular Guardrails** - Multi-level resource controls (run, phase, iteration limits)
|
|
25
26
|
- **βΈοΈ Resume Capability** - Pause and resume analysis from checkpoint state files
|
|
26
27
|
- **π¦ Programmatic API** - Use as a library in your own applications
|
|
@@ -84,7 +85,90 @@ This will:
|
|
|
84
85
|
- Perform sanity checks
|
|
85
86
|
- Save state to `db-doc-state.json`
|
|
86
87
|
|
|
87
|
-
### 3.
|
|
88
|
+
### 3. Generate Sample Queries (Optional)
|
|
89
|
+
|
|
90
|
+
Generate reference SQL queries for AI agent training:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# During analysis (if enabled in config)
|
|
94
|
+
db-auto-doc analyze # Automatically generates queries
|
|
95
|
+
|
|
96
|
+
# Or generate separately from existing state
|
|
97
|
+
db-auto-doc generate-queries --from-state ./output/run-1/state.json
|
|
98
|
+
|
|
99
|
+
# With custom settings
|
|
100
|
+
db-auto-doc generate-queries --from-state ./output/run-1/state.json \
|
|
101
|
+
--queries-per-table 10 \
|
|
102
|
+
--max-execution-time 60000 \
|
|
103
|
+
--output-dir ./queries
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This generates:
|
|
107
|
+
- **sample-queries.json**: Full query specifications with SQL, metadata, and alignment info
|
|
108
|
+
- **sample-queries-summary.json**: Execution statistics, token usage, and cost breakdown
|
|
109
|
+
|
|
110
|
+
**Configuration Options:**
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"analysis": {
|
|
114
|
+
"sampleQueryGeneration": {
|
|
115
|
+
"enabled": true, // Enable sample query generation
|
|
116
|
+
"queriesPerTable": 5, // Number of queries per table
|
|
117
|
+
"maxTables": 10, // Max tables to process (0 = all tables)
|
|
118
|
+
"tokenBudget": 100000, // Token limit (0 = unlimited)
|
|
119
|
+
"maxExecutionTime": 30000, // Query validation timeout (ms)
|
|
120
|
+
"includeMultiQueryPatterns": true, // Generate related query patterns
|
|
121
|
+
"validateAlignment": true, // Validate alignment between queries
|
|
122
|
+
"maxRowsInSample": 10 // Sample result rows to capture
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Key Configuration Settings:**
|
|
129
|
+
- **`maxTables`**: Controls table selection
|
|
130
|
+
- `10` (default) - Generate queries for top 10 most important tables
|
|
131
|
+
- `0` - Generate queries for **all tables** with data
|
|
132
|
+
- Custom value - Generate queries for top N tables
|
|
133
|
+
|
|
134
|
+
- **`tokenBudget`**: Controls LLM token usage and cost
|
|
135
|
+
- `100000` (default) - Limit to 100K tokens (~$0.50-1.00 with GPT-4o)
|
|
136
|
+
- `0` - **Unlimited** token budget (useful with `maxTables: 0`)
|
|
137
|
+
- Custom value - Set specific token limit for cost control
|
|
138
|
+
|
|
139
|
+
**Example Configurations:**
|
|
140
|
+
|
|
141
|
+
*Cost-conscious (default):*
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"maxTables": 10,
|
|
145
|
+
"tokenBudget": 100000
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
*Medium coverage (~25 tables):*
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"maxTables": 25,
|
|
153
|
+
"tokenBudget": 500000
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
*Complete coverage (all tables):*
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"maxTables": 0,
|
|
161
|
+
"tokenBudget": 0
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Model Recommendations:**
|
|
166
|
+
- β
**GPT-4o** - Best balance of speed, cost, and quality (~$6-10 for 50 tables)
|
|
167
|
+
- β
**Claude 3.5 Sonnet** - High quality, good reasoning about alignment
|
|
168
|
+
- β οΈ **GPT-5** - Very slow (reasoning model), doesn't support JSON format, expensive
|
|
169
|
+
- β οΈ **Groq** - Fast and cheap but may struggle with complex alignment
|
|
170
|
+
|
|
171
|
+
### 4. Export
|
|
88
172
|
|
|
89
173
|
```bash
|
|
90
174
|
db-auto-doc export --sql --markdown --html --csv --mermaid
|
|
@@ -103,7 +187,7 @@ Optionally apply directly to database:
|
|
|
103
187
|
db-auto-doc export --sql --apply
|
|
104
188
|
```
|
|
105
189
|
|
|
106
|
-
###
|
|
190
|
+
### 5. Check Status
|
|
107
191
|
|
|
108
192
|
```bash
|
|
109
193
|
db-auto-doc status
|
|
@@ -116,7 +200,7 @@ Shows:
|
|
|
116
200
|
- Token usage, cost, and duration
|
|
117
201
|
- Guardrail status and warnings
|
|
118
202
|
|
|
119
|
-
###
|
|
203
|
+
### 6. Resume Analysis
|
|
120
204
|
|
|
121
205
|
```bash
|
|
122
206
|
db-auto-doc analyze --resume ./db-doc-state.json
|
|
@@ -157,6 +241,41 @@ Triggered automatically when:
|
|
|
157
241
|
- Tables lack primary key constraints
|
|
158
242
|
- Insufficient foreign key relationships detected (below threshold)
|
|
159
243
|
|
|
244
|
+
### Sample Query Generation
|
|
245
|
+
|
|
246
|
+
DBAutoDoc can generate reference SQL queries for AI agents, solving the **query alignment problem** where multi-query patterns (summary + detail) have inconsistent filtering logic:
|
|
247
|
+
|
|
248
|
+
**The Problem:**
|
|
249
|
+
```sql
|
|
250
|
+
-- Summary query
|
|
251
|
+
SELECT COUNT(*) FROM Registrations -- All registrations
|
|
252
|
+
|
|
253
|
+
-- Detail query
|
|
254
|
+
SELECT * FROM Registrations WHERE Status='Attended' -- Only attended
|
|
255
|
+
|
|
256
|
+
-- Result: Numbers don't match! Bad UX.
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**The Solution:**
|
|
260
|
+
DBAutoDoc generates "gold standard" reference queries with:
|
|
261
|
+
- **Explicit Filtering Rules** - Documents filter logic for consistency
|
|
262
|
+
- **Alignment Tracking** - Links related queries via `relatedQueryIds`
|
|
263
|
+
- **Query Patterns** - Summary+Detail, Multi-Entity Drilldown, Time Series, etc.
|
|
264
|
+
- **Validation** - Executes queries and validates results
|
|
265
|
+
- **Few-Shot Training** - Use as examples for AI agent prompting
|
|
266
|
+
|
|
267
|
+
**Two-Prompt Architecture:**
|
|
268
|
+
1. **Planning Phase** - AI designs what queries to create (lightweight, ~4K tokens)
|
|
269
|
+
2. **Generation Phase** - AI generates SQL for each query individually (~3K tokens each)
|
|
270
|
+
|
|
271
|
+
This approach prevents JSON truncation issues while maintaining alignment context between related queries.
|
|
272
|
+
|
|
273
|
+
**Use Cases:**
|
|
274
|
+
- Training AI agents like Skip to generate consistent multi-query patterns
|
|
275
|
+
- Creating reference examples for few-shot prompting
|
|
276
|
+
- Documenting common query patterns for your database
|
|
277
|
+
- Validating that related queries use consistent filtering logic
|
|
278
|
+
|
|
160
279
|
### Backpropagation
|
|
161
280
|
|
|
162
281
|
After analyzing child tables, DBAutoDoc can detect insights about parent tables and trigger re-analysis:
|
|
@@ -253,6 +372,15 @@ This rich context enables AI to make accurate inferences.
|
|
|
253
372
|
"schemaLevel": true,
|
|
254
373
|
"crossSchema": true
|
|
255
374
|
},
|
|
375
|
+
"sampleQueryGeneration": {
|
|
376
|
+
"enabled": true,
|
|
377
|
+
"queriesPerTable": 5,
|
|
378
|
+
"maxExecutionTime": 30000,
|
|
379
|
+
"includeMultiQueryPatterns": true,
|
|
380
|
+
"validateAlignment": true,
|
|
381
|
+
"tokenBudget": 100000,
|
|
382
|
+
"maxRowsInSample": 10
|
|
383
|
+
},
|
|
256
384
|
"guardrails": {
|
|
257
385
|
"enabled": true,
|
|
258
386
|
"stopOnExceeded": true,
|
|
@@ -623,6 +751,16 @@ Typical costs (will vary by database size and complexity):
|
|
|
623
751
|
|
|
624
752
|
**With Relationship Discovery**: Add 25-40% to token/cost estimates for databases with missing constraints.
|
|
625
753
|
|
|
754
|
+
**With Sample Query Generation** (5 queries/table, GPT-4o):
|
|
755
|
+
|
|
756
|
+
| Database Size | Tables | Additional Tokens | Additional Cost |
|
|
757
|
+
|---------------|--------|-------------------|-----------------|
|
|
758
|
+
| Small | 10-20 | ~100K | $0.50-1.00 |
|
|
759
|
+
| Medium | 50-100 | ~500K | $2.50-5.00 |
|
|
760
|
+
| Large | 200+ | ~2M | $10-20 |
|
|
761
|
+
|
|
762
|
+
Note: Sample query generation uses ~6Γ more API calls than description generation (planning + individual SQL generation for each query), adding ~50% to total token usage.
|
|
763
|
+
|
|
626
764
|
**Guardrails** help control costs by setting hard limits on token usage and runtime.
|
|
627
765
|
|
|
628
766
|
## Best Practices
|
|
@@ -638,6 +776,19 @@ Typical costs (will vary by database size and complexity):
|
|
|
638
776
|
9. **Use appropriate models** - Balance cost vs. quality (GPT-4 vs. Groq)
|
|
639
777
|
10. **Export multiple formats** - HTML for browsing, CSV for analysis, SQL for database
|
|
640
778
|
|
|
779
|
+
### Sample Query Generation Best Practices
|
|
780
|
+
|
|
781
|
+
1. **Use GPT-4o or Claude 3.5** - Best balance of quality, speed, and cost
|
|
782
|
+
2. **Set token budget** - Prevents runaway costs (default: 100K tokens)
|
|
783
|
+
3. **Start with 5 queries/table** - Good balance of coverage and cost
|
|
784
|
+
4. **Enable alignment validation** - Ensures related queries use consistent logic
|
|
785
|
+
5. **Review generated queries** - Verify SQL correctness before using for training
|
|
786
|
+
6. **Use for few-shot prompting** - Include in AI agent system prompts as examples
|
|
787
|
+
7. **Generate separately** - Use `generate-queries` command on existing state to avoid re-running full analysis
|
|
788
|
+
8. **Focus on complex tables** - Skip simple lookup tables to save costs
|
|
789
|
+
9. **Validate execution** - Enable `maxExecutionTime` to test queries run successfully
|
|
790
|
+
10. **Document patterns** - Use generated queries to document common query patterns for your domain
|
|
791
|
+
|
|
641
792
|
## Troubleshooting
|
|
642
793
|
|
|
643
794
|
### "Connection failed"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate Queries command - Generate sample SQL queries from existing state
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from '@oclif/core';
|
|
5
|
+
export default class GenerateQueries extends Command {
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
'from-state': 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 | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
config: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
'queries-per-table': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
'max-execution-time': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=generate-queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-queries.d.ts","sourceRoot":"","sources":["../../src/commands/generate-queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAa7C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,SAA8D;IAEhF,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;MAsBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4I3B"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generate Queries command - Generate sample SQL queries from existing state
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
const core_1 = require("@oclif/core");
|
|
33
|
+
const ora_1 = __importDefault(require("ora"));
|
|
34
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
35
|
+
const fs = __importStar(require("fs/promises"));
|
|
36
|
+
const path = __importStar(require("path"));
|
|
37
|
+
const config_loader_js_1 = require("../utils/config-loader.js");
|
|
38
|
+
const Database_js_1 = require("../database/Database.js");
|
|
39
|
+
const PromptEngine_js_1 = require("../prompts/PromptEngine.js");
|
|
40
|
+
const SampleQueryGenerator_js_1 = require("../generators/SampleQueryGenerator.js");
|
|
41
|
+
class GenerateQueries extends core_1.Command {
|
|
42
|
+
async run() {
|
|
43
|
+
const { flags } = await this.parse(GenerateQueries);
|
|
44
|
+
const spinner = (0, ora_1.default)();
|
|
45
|
+
try {
|
|
46
|
+
// Load configuration for database connection and AI settings
|
|
47
|
+
spinner.start('Loading configuration');
|
|
48
|
+
const config = await config_loader_js_1.ConfigLoader.load(flags.config);
|
|
49
|
+
spinner.succeed('Configuration loaded');
|
|
50
|
+
// Load existing state
|
|
51
|
+
spinner.start('Loading existing analysis state');
|
|
52
|
+
const stateJson = await fs.readFile(flags['from-state'], 'utf-8');
|
|
53
|
+
const state = JSON.parse(stateJson);
|
|
54
|
+
spinner.succeed(`State loaded: ${state.schemas.length} schemas, ${state.schemas.reduce((sum, s) => sum + s.tables.length, 0)} tables`);
|
|
55
|
+
// Determine output directory
|
|
56
|
+
const outputDir = flags['output-dir'] || path.dirname(flags['from-state']);
|
|
57
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
58
|
+
// Connect to database
|
|
59
|
+
spinner.start('Connecting to database');
|
|
60
|
+
const driverConfig = {
|
|
61
|
+
provider: config.database.provider || 'sqlserver',
|
|
62
|
+
host: config.database.server,
|
|
63
|
+
port: config.database.port,
|
|
64
|
+
database: config.database.database,
|
|
65
|
+
user: config.database.user,
|
|
66
|
+
password: config.database.password,
|
|
67
|
+
encrypt: config.database.encrypt,
|
|
68
|
+
trustServerCertificate: config.database.trustServerCertificate,
|
|
69
|
+
connectionTimeout: config.database.connectionTimeout,
|
|
70
|
+
requestTimeout: config.database.requestTimeout,
|
|
71
|
+
maxConnections: config.database.maxConnections,
|
|
72
|
+
minConnections: config.database.minConnections,
|
|
73
|
+
idleTimeoutMillis: config.database.idleTimeoutMillis
|
|
74
|
+
};
|
|
75
|
+
const db = new Database_js_1.DatabaseConnection(driverConfig);
|
|
76
|
+
await db.connect();
|
|
77
|
+
const testResult = await db.test();
|
|
78
|
+
if (!testResult.success) {
|
|
79
|
+
throw new Error(`Database connection failed: ${testResult.message}`);
|
|
80
|
+
}
|
|
81
|
+
spinner.succeed('Connected to database');
|
|
82
|
+
// Initialize prompt engine
|
|
83
|
+
spinner.start('Initializing AI prompt engine');
|
|
84
|
+
const promptsDir = path.join(__dirname, '../../prompts');
|
|
85
|
+
const promptEngine = new PromptEngine_js_1.PromptEngine(config.ai, promptsDir);
|
|
86
|
+
await promptEngine.initialize();
|
|
87
|
+
spinner.succeed('Prompt engine ready');
|
|
88
|
+
// Build query generation config
|
|
89
|
+
const queryConfig = {
|
|
90
|
+
enabled: true,
|
|
91
|
+
queriesPerTable: flags['queries-per-table'] || config.analysis.sampleQueryGeneration?.queriesPerTable || 5,
|
|
92
|
+
maxExecutionTime: flags['max-execution-time'] || config.analysis.sampleQueryGeneration?.maxExecutionTime || 30000,
|
|
93
|
+
includeMultiQueryPatterns: config.analysis.sampleQueryGeneration?.includeMultiQueryPatterns !== false,
|
|
94
|
+
validateAlignment: config.analysis.sampleQueryGeneration?.validateAlignment !== false,
|
|
95
|
+
tokenBudget: config.analysis.sampleQueryGeneration?.tokenBudget || 100000,
|
|
96
|
+
maxRowsInSample: config.analysis.sampleQueryGeneration?.maxRowsInSample || 10,
|
|
97
|
+
maxTables: config.analysis.sampleQueryGeneration?.maxTables // Optional, defaults to 10 in generator
|
|
98
|
+
};
|
|
99
|
+
// Use AI config from main settings
|
|
100
|
+
const model = config.ai.model;
|
|
101
|
+
const effortLevel = config.ai.effortLevel || 75;
|
|
102
|
+
const maxTokens = config.ai.maxTokens || 16000; // Use config value or default
|
|
103
|
+
// Determine output file paths for incremental writes
|
|
104
|
+
const queriesPath = path.join(outputDir, 'sample-queries.json');
|
|
105
|
+
const summaryPath = path.join(outputDir, 'sample-queries-summary.json');
|
|
106
|
+
// Create generator
|
|
107
|
+
spinner.start('Generating sample queries');
|
|
108
|
+
const generator = new SampleQueryGenerator_js_1.SampleQueryGenerator(queryConfig, promptEngine, db.getDriver(), model, effortLevel, maxTokens, queriesPath, // Pass queries output path for incremental writes
|
|
109
|
+
summaryPath // Pass summary output path for incremental writes
|
|
110
|
+
);
|
|
111
|
+
// Generate queries
|
|
112
|
+
const result = await generator.generateQueries(state.schemas);
|
|
113
|
+
await db.close();
|
|
114
|
+
if (result.success) {
|
|
115
|
+
// Save queries and summary (final write to ensure we have the complete set)
|
|
116
|
+
// Note: Both were already written incrementally during generation
|
|
117
|
+
await fs.writeFile(queriesPath, JSON.stringify(result.queries, null, 2), 'utf-8');
|
|
118
|
+
await fs.writeFile(summaryPath, JSON.stringify(result.summary, null, 2), 'utf-8');
|
|
119
|
+
spinner.succeed('Sample queries generated!');
|
|
120
|
+
this.log(chalk_1.default.green('\nβ Query generation complete!'));
|
|
121
|
+
this.log(` Total queries: ${result.summary.totalQueriesGenerated}`);
|
|
122
|
+
this.log(` Validated: ${result.summary.queriesValidated}`);
|
|
123
|
+
this.log(` Failed validation: ${result.summary.queriesFailed}`);
|
|
124
|
+
this.log(` Tokens used: ${result.summary.tokensUsed.toLocaleString()}`);
|
|
125
|
+
this.log(` Estimated cost: $${result.summary.estimatedCost.toFixed(2)}`);
|
|
126
|
+
this.log(` Average confidence: ${(result.summary.averageConfidence * 100).toFixed(1)}%`);
|
|
127
|
+
this.log(` Execution time: ${(result.summary.totalExecutionTime / 1000).toFixed(1)}s`);
|
|
128
|
+
this.log(`\n Output files:`);
|
|
129
|
+
this.log(` - ${queriesPath}`);
|
|
130
|
+
this.log(` - ${summaryPath}`);
|
|
131
|
+
this.log(chalk_1.default.blue('\n Query breakdown:'));
|
|
132
|
+
this.log(` By type:`);
|
|
133
|
+
Object.entries(result.summary.queriesByType).forEach(([type, count]) => {
|
|
134
|
+
this.log(` ${type}: ${count}`);
|
|
135
|
+
});
|
|
136
|
+
this.log(` By complexity:`);
|
|
137
|
+
Object.entries(result.summary.queriesByComplexity).forEach(([complexity, count]) => {
|
|
138
|
+
this.log(` ${complexity}: ${count}`);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
spinner.fail('Query generation failed');
|
|
143
|
+
this.error(result.errorMessage || 'Unknown error');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
spinner.fail('Command failed');
|
|
148
|
+
this.error(error.message);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
GenerateQueries.description = 'Generate sample SQL queries from existing analysis state';
|
|
153
|
+
GenerateQueries.examples = [
|
|
154
|
+
'$ db-auto-doc generate-queries --from-state ./output/run-1/state.json',
|
|
155
|
+
'$ db-auto-doc generate-queries --from-state ./output/run-1/state.json --output-dir ./queries',
|
|
156
|
+
'$ db-auto-doc generate-queries --from-state ./output/run-1/state.json --queries-per-table 10'
|
|
157
|
+
];
|
|
158
|
+
GenerateQueries.flags = {
|
|
159
|
+
'from-state': core_1.Flags.string({
|
|
160
|
+
description: 'Path to existing state.json file from previous analysis',
|
|
161
|
+
required: true
|
|
162
|
+
}),
|
|
163
|
+
'output-dir': core_1.Flags.string({
|
|
164
|
+
description: 'Output directory for generated queries',
|
|
165
|
+
required: false
|
|
166
|
+
}),
|
|
167
|
+
config: core_1.Flags.string({
|
|
168
|
+
char: 'c',
|
|
169
|
+
description: 'Path to config file (for database connection and AI settings)',
|
|
170
|
+
default: './config.json'
|
|
171
|
+
}),
|
|
172
|
+
'queries-per-table': core_1.Flags.integer({
|
|
173
|
+
description: 'Number of queries to generate per table',
|
|
174
|
+
required: false
|
|
175
|
+
}),
|
|
176
|
+
'max-execution-time': core_1.Flags.integer({
|
|
177
|
+
description: 'Maximum execution time for query validation (ms)',
|
|
178
|
+
required: false
|
|
179
|
+
})
|
|
180
|
+
};
|
|
181
|
+
exports.default = GenerateQueries;
|
|
182
|
+
//# sourceMappingURL=generate-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-queries.js","sourceRoot":"","sources":["../../src/commands/generate-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,QAAQ,WAA0B;IAEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,QAAQ,WAA0B;IAEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyN3B"}
|
package/dist/commands/init.js
CHANGED
|
@@ -129,6 +129,46 @@ class Init extends core_1.Command {
|
|
|
129
129
|
when: (answers) => answers.addContext
|
|
130
130
|
}
|
|
131
131
|
]);
|
|
132
|
+
// Sample query generation options
|
|
133
|
+
const queryAnswers = await inquirer_1.default.prompt([
|
|
134
|
+
{
|
|
135
|
+
type: 'confirm',
|
|
136
|
+
name: 'enableSampleQueries',
|
|
137
|
+
message: 'Generate sample queries for each table?',
|
|
138
|
+
default: false
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'number',
|
|
142
|
+
name: 'queriesPerTable',
|
|
143
|
+
message: 'Number of queries to generate per table:',
|
|
144
|
+
default: 5,
|
|
145
|
+
when: (answers) => answers.enableSampleQueries,
|
|
146
|
+
validate: (input) => input > 0 || 'Must be greater than 0'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'number',
|
|
150
|
+
name: 'maxTables',
|
|
151
|
+
message: 'Max number of tables to generate queries for (0 = all tables):',
|
|
152
|
+
default: 10,
|
|
153
|
+
when: (answers) => answers.enableSampleQueries,
|
|
154
|
+
validate: (input) => input >= 0 || 'Must be 0 or greater'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'number',
|
|
158
|
+
name: 'tokenBudget',
|
|
159
|
+
message: 'Token budget for query generation (0 = unlimited):',
|
|
160
|
+
default: 100000,
|
|
161
|
+
when: (answers) => answers.enableSampleQueries,
|
|
162
|
+
validate: (input) => input >= 0 || 'Must be 0 or greater'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'number',
|
|
166
|
+
name: 'maxExecutionTime',
|
|
167
|
+
message: 'Max execution time for query validation (ms):',
|
|
168
|
+
default: 30000,
|
|
169
|
+
when: (answers) => answers.enableSampleQueries
|
|
170
|
+
}
|
|
171
|
+
]);
|
|
132
172
|
// Create configuration
|
|
133
173
|
const config = config_loader_js_1.ConfigLoader.createDefault();
|
|
134
174
|
// Update with user inputs
|
|
@@ -158,6 +198,19 @@ class Init extends core_1.Command {
|
|
|
158
198
|
industryContext: contextAnswers.industryContext || undefined
|
|
159
199
|
};
|
|
160
200
|
}
|
|
201
|
+
// Add sample query generation config if enabled
|
|
202
|
+
if (queryAnswers.enableSampleQueries) {
|
|
203
|
+
config.analysis.sampleQueryGeneration = {
|
|
204
|
+
enabled: true,
|
|
205
|
+
queriesPerTable: queryAnswers.queriesPerTable || 5,
|
|
206
|
+
maxExecutionTime: queryAnswers.maxExecutionTime || 30000,
|
|
207
|
+
includeMultiQueryPatterns: true,
|
|
208
|
+
validateAlignment: true,
|
|
209
|
+
tokenBudget: queryAnswers.tokenBudget !== undefined ? queryAnswers.tokenBudget : 100000,
|
|
210
|
+
maxRowsInSample: 10,
|
|
211
|
+
maxTables: queryAnswers.maxTables !== undefined ? queryAnswers.maxTables : 10
|
|
212
|
+
};
|
|
213
|
+
}
|
|
161
214
|
// Save configuration
|
|
162
215
|
await config_loader_js_1.ConfigLoader.save(config, './config.json');
|
|
163
216
|
this.log(chalk_1.default.green('\nβ Configuration saved to config.json'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,5 +33,9 @@ export declare class AnalysisOrchestrator {
|
|
|
33
33
|
* Create run-numbered folder for this analysis run
|
|
34
34
|
*/
|
|
35
35
|
private createRunFolder;
|
|
36
|
+
/**
|
|
37
|
+
* Generate sample queries for AI agents (like Skip)
|
|
38
|
+
*/
|
|
39
|
+
private generateSampleQueries;
|
|
36
40
|
}
|
|
37
41
|
//# sourceMappingURL=AnalysisOrchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalysisOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"AnalysisOrchestrator.d.ts","sourceRoot":"","sources":["../../src/core/AnalysisOrchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIvE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,UAAU,CAAwC;gBAE9C,OAAO,EAAE,eAAe;IAMpC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA6QnD;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;YACW,eAAe;IAqB7B;;OAEG;YACW,qBAAqB;CA4FpC"}
|
|
@@ -38,6 +38,7 @@ const PromptEngine_js_1 = require("../prompts/PromptEngine.js");
|
|
|
38
38
|
const AnalysisEngine_js_1 = require("./AnalysisEngine.js");
|
|
39
39
|
const SQLGenerator_js_1 = require("../generators/SQLGenerator.js");
|
|
40
40
|
const MarkdownGenerator_js_1 = require("../generators/MarkdownGenerator.js");
|
|
41
|
+
const SampleQueryGenerator_js_1 = require("../generators/SampleQueryGenerator.js");
|
|
41
42
|
const DiscoveryTriggerAnalyzer_js_1 = require("../discovery/DiscoveryTriggerAnalyzer.js");
|
|
42
43
|
const DiscoveryEngine_js_1 = require("../discovery/DiscoveryEngine.js");
|
|
43
44
|
class AnalysisOrchestrator {
|
|
@@ -223,6 +224,13 @@ class AnalysisOrchestrator {
|
|
|
223
224
|
if (!converged) {
|
|
224
225
|
iterationTracker.completeRun(run, false, 'Max iterations reached');
|
|
225
226
|
}
|
|
227
|
+
// Sample Query Generation (if enabled)
|
|
228
|
+
if (this.config.analysis.sampleQueryGeneration?.enabled) {
|
|
229
|
+
this.onProgress('Generating sample queries');
|
|
230
|
+
await this.generateSampleQueries(state, promptEngine, db.getDriver(), runFolder);
|
|
231
|
+
stateManager.updateSummary(state);
|
|
232
|
+
await stateManager.save(state);
|
|
233
|
+
}
|
|
226
234
|
// Final state update
|
|
227
235
|
stateManager.updateSummary(state);
|
|
228
236
|
await stateManager.save(state);
|
|
@@ -289,6 +297,81 @@ class AnalysisOrchestrator {
|
|
|
289
297
|
await fs.mkdir(runFolder, { recursive: true });
|
|
290
298
|
return runFolder;
|
|
291
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Generate sample queries for AI agents (like Skip)
|
|
302
|
+
*/
|
|
303
|
+
async generateSampleQueries(state, promptEngine, driver, runFolder) {
|
|
304
|
+
const config = this.config.analysis.sampleQueryGeneration;
|
|
305
|
+
if (!config)
|
|
306
|
+
return;
|
|
307
|
+
// Use main AI config model, effortLevel, and maxTokens
|
|
308
|
+
const model = this.config.ai.model;
|
|
309
|
+
const effortLevel = this.config.ai.effortLevel || 75;
|
|
310
|
+
const maxTokens = this.config.ai.maxTokens || 16000;
|
|
311
|
+
// Determine output file paths for incremental writes
|
|
312
|
+
const queriesPath = path.join(runFolder, 'sample-queries.json');
|
|
313
|
+
const summaryPath = path.join(runFolder, 'sample-queries-summary.json');
|
|
314
|
+
const generator = new SampleQueryGenerator_js_1.SampleQueryGenerator(config, promptEngine, driver, model, effortLevel, maxTokens, queriesPath, summaryPath);
|
|
315
|
+
try {
|
|
316
|
+
const result = await generator.generateQueries(state.schemas);
|
|
317
|
+
if (result.success) {
|
|
318
|
+
state.phases.sampleQueryGeneration = {
|
|
319
|
+
startedAt: new Date().toISOString(),
|
|
320
|
+
completedAt: new Date().toISOString(),
|
|
321
|
+
status: 'completed',
|
|
322
|
+
queries: result.queries,
|
|
323
|
+
summary: result.summary
|
|
324
|
+
};
|
|
325
|
+
// Save queries and summary (final write to ensure we have the complete set)
|
|
326
|
+
// Note: Both were already written incrementally during generation
|
|
327
|
+
await fs.writeFile(queriesPath, JSON.stringify(result.queries, null, 2), 'utf-8');
|
|
328
|
+
await fs.writeFile(summaryPath, JSON.stringify(result.summary, null, 2), 'utf-8');
|
|
329
|
+
this.onProgress('Sample queries generated', {
|
|
330
|
+
total: result.summary.totalQueriesGenerated,
|
|
331
|
+
validated: result.summary.queriesValidated,
|
|
332
|
+
tokens: result.summary.tokensUsed,
|
|
333
|
+
cost: result.summary.estimatedCost
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
state.phases.sampleQueryGeneration = {
|
|
338
|
+
startedAt: new Date().toISOString(),
|
|
339
|
+
completedAt: new Date().toISOString(),
|
|
340
|
+
status: 'failed',
|
|
341
|
+
queries: [],
|
|
342
|
+
summary: result.summary,
|
|
343
|
+
errorMessage: result.errorMessage
|
|
344
|
+
};
|
|
345
|
+
this.onProgress('Sample query generation failed', {
|
|
346
|
+
error: result.errorMessage
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
state.phases.sampleQueryGeneration = {
|
|
352
|
+
startedAt: new Date().toISOString(),
|
|
353
|
+
completedAt: new Date().toISOString(),
|
|
354
|
+
status: 'failed',
|
|
355
|
+
queries: [],
|
|
356
|
+
summary: {
|
|
357
|
+
totalQueriesGenerated: 0,
|
|
358
|
+
queriesValidated: 0,
|
|
359
|
+
queriesFailed: 0,
|
|
360
|
+
totalExecutionTime: 0,
|
|
361
|
+
tokensUsed: 0,
|
|
362
|
+
estimatedCost: 0,
|
|
363
|
+
averageConfidence: 0,
|
|
364
|
+
queriesByType: {},
|
|
365
|
+
queriesByPattern: {},
|
|
366
|
+
queriesByComplexity: {}
|
|
367
|
+
},
|
|
368
|
+
errorMessage: error.message
|
|
369
|
+
};
|
|
370
|
+
this.onProgress('Sample query generation error', {
|
|
371
|
+
error: error.message
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}
|
|
292
375
|
}
|
|
293
376
|
exports.AnalysisOrchestrator = AnalysisOrchestrator;
|
|
294
377
|
//# sourceMappingURL=AnalysisOrchestrator.js.map
|