agentic-qe 3.6.15 → 3.6.17
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/.claude/agents/v3/qe-queen-coordinator.md +9 -3
- package/.claude/skills/skills-manifest.json +1 -1
- package/package.json +1 -1
- package/v3/CHANGELOG.md +45 -0
- package/v3/assets/agents/v3/qe-queen-coordinator.md +9 -3
- package/v3/dist/cli/bundle.js +1944 -685
- package/v3/dist/cli/commands/sync.d.ts.map +1 -1
- package/v3/dist/cli/commands/sync.js +83 -1
- package/v3/dist/cli/commands/sync.js.map +1 -1
- package/v3/dist/cli/completions/index.d.ts +1 -1
- package/v3/dist/cli/completions/index.d.ts.map +1 -1
- package/v3/dist/cli/completions/index.js +1 -1
- package/v3/dist/cli/completions/index.js.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.js +8 -1
- package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
- package/v3/dist/coordination/task-executor.js.map +1 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js +4 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.js +26 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/index.d.ts +1 -0
- package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/index.js +1 -0
- package/v3/dist/domains/test-generation/generators/index.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +26 -2
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/mocha-generator.js +50 -5
- package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts +54 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.js +222 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/pytest-generator.js +47 -5
- package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +1 -1
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/interfaces.d.ts +2 -2
- package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/plugin.js.map +1 -1
- package/v3/dist/domains/test-generation/services/pattern-matcher.js +32 -6
- package/v3/dist/domains/test-generation/services/pattern-matcher.js.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.js +31 -6
- package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
- package/v3/dist/mcp/bundle.js +666 -46
- package/v3/dist/mcp/handlers/agent-handlers.d.ts +3 -0
- package/v3/dist/mcp/handlers/agent-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/agent-handlers.js +16 -9
- package/v3/dist/mcp/handlers/agent-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.d.ts +32 -0
- package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/core-handlers.js +45 -1
- package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
- package/v3/dist/mcp/handlers/handler-factory.d.ts +9 -1
- package/v3/dist/mcp/handlers/handler-factory.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/handler-factory.js +94 -2
- package/v3/dist/mcp/handlers/handler-factory.js.map +1 -1
- package/v3/dist/mcp/handlers/memory-handlers.d.ts +2 -0
- package/v3/dist/mcp/handlers/memory-handlers.d.ts.map +1 -1
- package/v3/dist/mcp/handlers/memory-handlers.js +90 -1
- package/v3/dist/mcp/handlers/memory-handlers.js.map +1 -1
- package/v3/dist/mcp/protocol-server.d.ts +7 -0
- package/v3/dist/mcp/protocol-server.d.ts.map +1 -1
- package/v3/dist/mcp/protocol-server.js +56 -2
- package/v3/dist/mcp/protocol-server.js.map +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
- package/v3/dist/mcp/transport/stdio.d.ts +18 -0
- package/v3/dist/mcp/transport/stdio.d.ts.map +1 -1
- package/v3/dist/mcp/transport/stdio.js +72 -5
- package/v3/dist/mcp/transport/stdio.js.map +1 -1
- package/v3/dist/mcp/types.d.ts +2 -0
- package/v3/dist/mcp/types.d.ts.map +1 -1
- package/v3/dist/sync/cloud/index.d.ts +1 -0
- package/v3/dist/sync/cloud/index.d.ts.map +1 -1
- package/v3/dist/sync/cloud/index.js +1 -0
- package/v3/dist/sync/cloud/index.js.map +1 -1
- package/v3/dist/sync/cloud/postgres-reader.d.ts +63 -0
- package/v3/dist/sync/cloud/postgres-reader.d.ts.map +1 -0
- package/v3/dist/sync/cloud/postgres-reader.js +225 -0
- package/v3/dist/sync/cloud/postgres-reader.js.map +1 -0
- package/v3/dist/sync/index.d.ts +5 -2
- package/v3/dist/sync/index.d.ts.map +1 -1
- package/v3/dist/sync/index.js +7 -2
- package/v3/dist/sync/index.js.map +1 -1
- package/v3/dist/sync/interfaces.d.ts +49 -0
- package/v3/dist/sync/interfaces.d.ts.map +1 -1
- package/v3/dist/sync/interfaces.js +160 -0
- package/v3/dist/sync/interfaces.js.map +1 -1
- package/v3/dist/sync/pull-agent.d.ts +102 -0
- package/v3/dist/sync/pull-agent.d.ts.map +1 -0
- package/v3/dist/sync/pull-agent.js +354 -0
- package/v3/dist/sync/pull-agent.js.map +1 -0
- package/v3/dist/sync/sync-agent.d.ts.map +1 -1
- package/v3/dist/sync/sync-agent.js +9 -0
- package/v3/dist/sync/sync-agent.js.map +1 -1
- package/v3/dist/sync/writers/index.d.ts +7 -0
- package/v3/dist/sync/writers/index.d.ts.map +1 -0
- package/v3/dist/sync/writers/index.js +7 -0
- package/v3/dist/sync/writers/index.js.map +1 -0
- package/v3/dist/sync/writers/sqlite-writer.d.ts +69 -0
- package/v3/dist/sync/writers/sqlite-writer.d.ts.map +1 -0
- package/v3/dist/sync/writers/sqlite-writer.js +249 -0
- package/v3/dist/sync/writers/sqlite-writer.js.map +1 -0
- package/v3/package.json +1 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Local Writer
|
|
3
|
+
*
|
|
4
|
+
* Writes records into local SQLite database with upsert (INSERT OR REPLACE) semantics.
|
|
5
|
+
* Used by PullSyncAgent for cloud → local data flow.
|
|
6
|
+
*/
|
|
7
|
+
import { openDatabase } from '../../shared/safe-db.js';
|
|
8
|
+
import { validateTableName, validateIdentifier } from '../../shared/sql-safety.js';
|
|
9
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
10
|
+
import { LoggerFactory } from '../../logging/index.js';
|
|
11
|
+
import * as fs from 'fs';
|
|
12
|
+
const logger = LoggerFactory.create('sqlite-writer');
|
|
13
|
+
/**
|
|
14
|
+
* SQLite writer for local database
|
|
15
|
+
*/
|
|
16
|
+
export class SQLiteWriter {
|
|
17
|
+
db = null;
|
|
18
|
+
dbPath;
|
|
19
|
+
batchSize;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.dbPath = config.dbPath;
|
|
22
|
+
this.batchSize = config.batchSize || 500;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Connect to (open) the local SQLite database
|
|
26
|
+
*/
|
|
27
|
+
async connect() {
|
|
28
|
+
if (this.db)
|
|
29
|
+
return;
|
|
30
|
+
if (!fs.existsSync(this.dbPath)) {
|
|
31
|
+
throw new Error(`SQLite database not found: ${this.dbPath}. Run 'aqe init' to create it.`);
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
this.db = openDatabase(this.dbPath);
|
|
35
|
+
this.db.pragma('journal_mode = WAL');
|
|
36
|
+
this.db.pragma('synchronous = NORMAL');
|
|
37
|
+
logger.debug(`Opened SQLite database: ${this.dbPath}`);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Failed to open SQLite database ${this.dbPath}: ${toErrorMessage(error)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Upsert records into a local table using INSERT OR REPLACE.
|
|
45
|
+
* Returns the number of records written.
|
|
46
|
+
*/
|
|
47
|
+
async upsert(table, records) {
|
|
48
|
+
if (!this.db)
|
|
49
|
+
throw new Error('Not connected');
|
|
50
|
+
if (records.length === 0)
|
|
51
|
+
return 0;
|
|
52
|
+
const safeTable = validateTableName(table);
|
|
53
|
+
// Verify table exists — warn loudly so callers know data was dropped
|
|
54
|
+
if (!this.tableExists(table)) {
|
|
55
|
+
console.warn(`[SQLiteWriter] Table '${table}' does not exist in local database — ${records.length} records skipped. Run 'aqe init' to create schema.`);
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
// Get actual local columns to filter records
|
|
59
|
+
const localColumns = this.getTableColumns(table);
|
|
60
|
+
if (localColumns.length === 0) {
|
|
61
|
+
logger.debug(`No columns found for table ${table}`);
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
const localColumnSet = new Set(localColumns);
|
|
65
|
+
let totalWritten = 0;
|
|
66
|
+
// Process in batches
|
|
67
|
+
for (let i = 0; i < records.length; i += this.batchSize) {
|
|
68
|
+
const batch = records.slice(i, i + this.batchSize);
|
|
69
|
+
try {
|
|
70
|
+
const written = this.upsertBatch(safeTable, batch, localColumnSet);
|
|
71
|
+
totalWritten += written;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
// Retry individually on batch failure
|
|
75
|
+
const batchNum = Math.floor(i / this.batchSize) + 1;
|
|
76
|
+
logger.debug(`Batch ${batchNum} failed for ${table}, retrying individually`, {
|
|
77
|
+
error: toErrorMessage(error),
|
|
78
|
+
});
|
|
79
|
+
let recovered = 0;
|
|
80
|
+
for (const record of batch) {
|
|
81
|
+
try {
|
|
82
|
+
recovered += this.upsertBatch(safeTable, [record], localColumnSet);
|
|
83
|
+
}
|
|
84
|
+
catch (retryError) {
|
|
85
|
+
const recordId = record['id'] || record['key'] || '?';
|
|
86
|
+
logger.debug(`Skipped record ${String(recordId).slice(0, 50)} in ${table}`, {
|
|
87
|
+
error: toErrorMessage(retryError),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
totalWritten += recovered;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return totalWritten;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get the record count for a table
|
|
98
|
+
*/
|
|
99
|
+
async count(table) {
|
|
100
|
+
if (!this.db)
|
|
101
|
+
throw new Error('Not connected');
|
|
102
|
+
if (!this.tableExists(table))
|
|
103
|
+
return 0;
|
|
104
|
+
try {
|
|
105
|
+
const safeTable = validateTableName(table);
|
|
106
|
+
const row = this.db.prepare(`SELECT COUNT(*) as count FROM ${safeTable}`).get();
|
|
107
|
+
return row.count;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Close the database connection
|
|
115
|
+
*/
|
|
116
|
+
async close() {
|
|
117
|
+
if (this.db) {
|
|
118
|
+
this.db.close();
|
|
119
|
+
this.db = null;
|
|
120
|
+
logger.debug('SQLite writer closed');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if a table exists
|
|
125
|
+
*/
|
|
126
|
+
tableExists(table) {
|
|
127
|
+
if (!this.db)
|
|
128
|
+
return false;
|
|
129
|
+
try {
|
|
130
|
+
const result = this.db.prepare(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`).get(table);
|
|
131
|
+
return !!result;
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get column names for a table
|
|
139
|
+
*/
|
|
140
|
+
getTableColumns(table) {
|
|
141
|
+
if (!this.db)
|
|
142
|
+
return [];
|
|
143
|
+
try {
|
|
144
|
+
const safeTable = validateTableName(table);
|
|
145
|
+
const columns = this.db.prepare(`PRAGMA table_info(${safeTable})`).all();
|
|
146
|
+
return columns.map(c => c.name);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get the primary key column(s) for a table
|
|
154
|
+
*/
|
|
155
|
+
getPrimaryKeyColumns(table) {
|
|
156
|
+
if (!this.db)
|
|
157
|
+
return [];
|
|
158
|
+
try {
|
|
159
|
+
const safeTable = validateTableName(table);
|
|
160
|
+
const columns = this.db.prepare(`PRAGMA table_info(${safeTable})`).all();
|
|
161
|
+
const pkCols = columns.filter(c => c.pk > 0).sort((a, b) => a.pk - b.pk).map(c => c.name);
|
|
162
|
+
return pkCols;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Upsert a batch of records.
|
|
170
|
+
* Uses INSERT ... ON CONFLICT(pk) DO UPDATE SET for mapped columns only,
|
|
171
|
+
* preserving any local columns not present in the cloud record.
|
|
172
|
+
* Falls back to INSERT OR IGNORE when no primary key is found (append-mode tables).
|
|
173
|
+
*/
|
|
174
|
+
upsertBatch(safeTable, records, localColumnSet) {
|
|
175
|
+
if (!this.db || records.length === 0)
|
|
176
|
+
return 0;
|
|
177
|
+
// Filter record keys to only include columns that exist in the local table
|
|
178
|
+
const firstRecord = records[0];
|
|
179
|
+
const columns = Object.keys(firstRecord).filter(k => localColumnSet.has(k));
|
|
180
|
+
if (columns.length === 0)
|
|
181
|
+
return 0;
|
|
182
|
+
const safeColumns = columns.map(validateIdentifier);
|
|
183
|
+
const placeholders = columns.map(() => '?').join(', ');
|
|
184
|
+
// Determine primary key for ON CONFLICT clause
|
|
185
|
+
// Extract raw table name from potentially validated identifier
|
|
186
|
+
const rawTable = safeTable.replace(/"/g, '');
|
|
187
|
+
const pkColumns = this.getPrimaryKeyColumns(rawTable);
|
|
188
|
+
let sql;
|
|
189
|
+
if (pkColumns.length > 0) {
|
|
190
|
+
const safePkColumns = pkColumns.map(validateIdentifier);
|
|
191
|
+
// ON CONFLICT: only update the columns we're providing, leave others intact
|
|
192
|
+
const updateColumns = columns.filter(c => !pkColumns.includes(c));
|
|
193
|
+
if (updateColumns.length > 0) {
|
|
194
|
+
const updateSet = updateColumns.map(c => `${validateIdentifier(c)} = excluded.${validateIdentifier(c)}`).join(', ');
|
|
195
|
+
sql = `INSERT INTO ${safeTable} (${safeColumns.join(', ')}) VALUES (${placeholders}) ON CONFLICT(${safePkColumns.join(', ')}) DO UPDATE SET ${updateSet}`;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
// All columns are PK columns — just ignore duplicates
|
|
199
|
+
sql = `INSERT OR IGNORE INTO ${safeTable} (${safeColumns.join(', ')}) VALUES (${placeholders})`;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// No primary key found — use INSERT OR IGNORE to avoid duplicates
|
|
204
|
+
sql = `INSERT OR IGNORE INTO ${safeTable} (${safeColumns.join(', ')}) VALUES (${placeholders})`;
|
|
205
|
+
}
|
|
206
|
+
const stmt = this.db.prepare(sql);
|
|
207
|
+
const insertMany = this.db.transaction((recs) => {
|
|
208
|
+
let count = 0;
|
|
209
|
+
for (const record of recs) {
|
|
210
|
+
const values = columns.map(col => this.serializeValue(record[col]));
|
|
211
|
+
stmt.run(...values);
|
|
212
|
+
count++;
|
|
213
|
+
}
|
|
214
|
+
return count;
|
|
215
|
+
});
|
|
216
|
+
return insertMany(records);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Serialize a value for SQLite insertion
|
|
220
|
+
*/
|
|
221
|
+
serializeValue(value) {
|
|
222
|
+
if (value === null || value === undefined)
|
|
223
|
+
return null;
|
|
224
|
+
// Objects/arrays → JSON string
|
|
225
|
+
if (typeof value === 'object' && !Buffer.isBuffer(value) && !(value instanceof Date)) {
|
|
226
|
+
return JSON.stringify(value);
|
|
227
|
+
}
|
|
228
|
+
// Date → ISO string
|
|
229
|
+
if (value instanceof Date) {
|
|
230
|
+
return value.toISOString();
|
|
231
|
+
}
|
|
232
|
+
// Boolean → integer
|
|
233
|
+
if (typeof value === 'boolean') {
|
|
234
|
+
return value ? 1 : 0;
|
|
235
|
+
}
|
|
236
|
+
// Buffer (BLOB) stays as-is
|
|
237
|
+
if (Buffer.isBuffer(value)) {
|
|
238
|
+
return value;
|
|
239
|
+
}
|
|
240
|
+
return value;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Create a SQLite writer
|
|
245
|
+
*/
|
|
246
|
+
export function createSQLiteWriter(config) {
|
|
247
|
+
return new SQLiteWriter(config);
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=sqlite-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-writer.js","sourceRoot":"","sources":["../../../src/sync/writers/sqlite-writer.ts"],"names":[],"mappings":"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"}
|
package/v3/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentic-qe/v3",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.17",
|
|
4
4
|
"description": "Agentic QE v3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 59 specialized QE agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|