sqlew 3.6.3 → 3.6.6
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/CHANGELOG.md +89 -0
- package/LICENSE +52 -52
- package/README.md +45 -3
- package/assets/config.example.toml +41 -0
- package/assets/sample-agents/README.md +38 -0
- package/assets/sample-agents/sqlew-architect.md +247 -0
- package/assets/sample-agents/sqlew-researcher.md +189 -0
- package/assets/sample-agents/sqlew-scrum-master.md +236 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +13 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/minimal-generator.d.ts +25 -0
- package/dist/config/minimal-generator.d.ts.map +1 -0
- package/dist/config/minimal-generator.js +103 -0
- package/dist/config/minimal-generator.js.map +1 -0
- package/dist/config/types.d.ts +13 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +5 -0
- package/dist/config/types.js.map +1 -1
- package/dist/database.d.ts +6 -9
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +30 -106
- package/dist/database.js.map +1 -1
- package/dist/index.js +36 -72
- package/dist/index.js.map +1 -1
- package/dist/init-agents.d.ts +7 -0
- package/dist/init-agents.d.ts.map +1 -0
- package/dist/init-agents.js +207 -0
- package/dist/init-agents.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -1
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js +49 -34
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -1
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -1
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js +211 -175
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -1
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts +23 -0
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js +44 -0
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
- package/dist/sync-agents.d.ts +13 -0
- package/dist/sync-agents.d.ts.map +1 -0
- package/dist/sync-agents.js +112 -0
- package/dist/sync-agents.js.map +1 -0
- package/dist/tests/all-features.test.js +0 -71
- package/dist/tests/all-features.test.js.map +1 -1
- package/dist/tests/parameter-validation.test.d.ts +8 -0
- package/dist/tests/parameter-validation.test.d.ts.map +1 -0
- package/dist/tests/parameter-validation.test.js +461 -0
- package/dist/tests/parameter-validation.test.js.map +1 -0
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +7 -8
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +68 -39
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +9 -7
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/help-queries.d.ts.map +1 -1
- package/dist/tools/help-queries.js +20 -14
- package/dist/tools/help-queries.js.map +1 -1
- package/dist/tools/messaging.d.ts +4 -0
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +38 -0
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +13 -0
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +15 -12
- package/dist/tools/utils.js.map +1 -1
- package/dist/types.d.ts +93 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-specs.d.ts +46 -0
- package/dist/utils/action-specs.d.ts.map +1 -0
- package/dist/utils/action-specs.js +527 -0
- package/dist/utils/action-specs.js.map +1 -0
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +41 -24
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/parameter-validator.d.ts +53 -0
- package/dist/utils/parameter-validator.d.ts.map +1 -0
- package/dist/utils/parameter-validator.js +286 -0
- package/dist/utils/parameter-validator.js.map +1 -0
- package/dist/watcher/file-watcher.d.ts +11 -5
- package/dist/watcher/file-watcher.d.ts.map +1 -1
- package/dist/watcher/file-watcher.js +43 -10
- package/dist/watcher/file-watcher.js.map +1 -1
- package/docs/BEST_PRACTICES.md +69 -0
- package/docs/CONFIGURATION.md +35 -19
- package/docs/SPECIALIZED_AGENTS.md +576 -0
- package/docs/TOOL_REFERENCE.md +178 -0
- package/package.json +86 -85
- package/dist/tests/agent-reuse.test.d.ts +0 -6
- package/dist/tests/agent-reuse.test.d.ts.map +0 -1
- package/dist/tests/agent-reuse.test.js +0 -242
- package/dist/tests/agent-reuse.test.js.map +0 -1
- package/dist/tools/config.d.ts +0 -50
- package/dist/tools/config.d.ts.map +0 -1
- package/dist/tools/config.js +0 -170
- package/dist/tools/config.js.map +0 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLI tool to initialize sqlew specialized agents
|
|
4
|
+
* Usage: npx mcp-sqlew init-agents [--path <custom-path>]
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
import { createMinimalConfigIfNotExists } from './config/minimal-generator.js';
|
|
10
|
+
import { loadConfigFile } from './config/loader.js';
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = path.dirname(__filename);
|
|
13
|
+
function parseArgs() {
|
|
14
|
+
const args = process.argv.slice(2);
|
|
15
|
+
const options = {};
|
|
16
|
+
for (let i = 0; i < args.length; i++) {
|
|
17
|
+
switch (args[i]) {
|
|
18
|
+
case '--path':
|
|
19
|
+
options.targetPath = args[++i];
|
|
20
|
+
break;
|
|
21
|
+
case '--project':
|
|
22
|
+
case '--local':
|
|
23
|
+
options.projectLocal = true;
|
|
24
|
+
break;
|
|
25
|
+
case '--help':
|
|
26
|
+
case '-h':
|
|
27
|
+
printHelp();
|
|
28
|
+
process.exit(0);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return options;
|
|
33
|
+
}
|
|
34
|
+
function printHelp() {
|
|
35
|
+
console.log(`
|
|
36
|
+
mcp-sqlew init-agents - Initialize specialized agents for mcp-sqlew
|
|
37
|
+
|
|
38
|
+
USAGE:
|
|
39
|
+
npx mcp-sqlew init-agents [OPTIONS]
|
|
40
|
+
|
|
41
|
+
OPTIONS:
|
|
42
|
+
--path <path> Custom target directory (default: ~/.claude/agents)
|
|
43
|
+
--project, --local Install to current project (.claude/agents)
|
|
44
|
+
--help, -h Show this help message
|
|
45
|
+
|
|
46
|
+
EXAMPLES:
|
|
47
|
+
# Install to global Claude Code agents directory
|
|
48
|
+
npx mcp-sqlew init-agents
|
|
49
|
+
|
|
50
|
+
# Install to current project
|
|
51
|
+
npx mcp-sqlew init-agents --project
|
|
52
|
+
|
|
53
|
+
# Install to custom location
|
|
54
|
+
npx mcp-sqlew init-agents --path /path/to/agents
|
|
55
|
+
|
|
56
|
+
AGENT FILES:
|
|
57
|
+
- sqlew-scrum-master.md Multi-agent coordination, task management
|
|
58
|
+
- sqlew-researcher.md Query decisions, analyze patterns
|
|
59
|
+
- sqlew-architect.md Document decisions, enforce constraints
|
|
60
|
+
- QUICK_START.md Usage guide with examples
|
|
61
|
+
- README.md Overview and best practices
|
|
62
|
+
`);
|
|
63
|
+
}
|
|
64
|
+
function getDefaultTargetPath() {
|
|
65
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
66
|
+
if (!home) {
|
|
67
|
+
throw new Error('Could not determine home directory');
|
|
68
|
+
}
|
|
69
|
+
return path.join(home, '.claude', 'agents');
|
|
70
|
+
}
|
|
71
|
+
function getSourcePath() {
|
|
72
|
+
// When running from npm package: node_modules/mcp-sqlew/dist/init-agents.js
|
|
73
|
+
// Source files are in: node_modules/mcp-sqlew/assets/sample-agents/
|
|
74
|
+
const distDir = __dirname; // .../dist
|
|
75
|
+
const packageRoot = path.dirname(distDir); // .../mcp-sqlew
|
|
76
|
+
return path.join(packageRoot, 'assets', 'sample-agents');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Ensure config.toml exists, create if missing
|
|
80
|
+
*/
|
|
81
|
+
function ensureConfigExists() {
|
|
82
|
+
const projectRoot = process.cwd();
|
|
83
|
+
const created = createMinimalConfigIfNotExists(projectRoot);
|
|
84
|
+
if (created) {
|
|
85
|
+
console.log('✓ Created: .sqlew/config.toml (minimal defaults)');
|
|
86
|
+
console.log(' Edit [agents] section to customize agent selection\n');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get list of agent files to install based on config
|
|
91
|
+
*/
|
|
92
|
+
function getAgentsToInstall() {
|
|
93
|
+
const config = loadConfigFile();
|
|
94
|
+
const agentConfig = config.agents || {};
|
|
95
|
+
const files = [];
|
|
96
|
+
const installed = [];
|
|
97
|
+
// Add agents based on config (default: true)
|
|
98
|
+
if (agentConfig.scrum_master !== false) {
|
|
99
|
+
files.push('sqlew-scrum-master.md');
|
|
100
|
+
installed.push('Scrum Master (12KB)');
|
|
101
|
+
}
|
|
102
|
+
if (agentConfig.researcher !== false) {
|
|
103
|
+
files.push('sqlew-researcher.md');
|
|
104
|
+
installed.push('Researcher (14KB)');
|
|
105
|
+
}
|
|
106
|
+
if (agentConfig.architect !== false) {
|
|
107
|
+
files.push('sqlew-architect.md');
|
|
108
|
+
installed.push('Architect (20KB)');
|
|
109
|
+
}
|
|
110
|
+
// NOTE: Documentation is now centralized in docs/SPECIALIZED_AGENTS.md
|
|
111
|
+
// No longer installing README/QUICK_START to agent directories
|
|
112
|
+
const summary = installed.length > 0 ? installed.join(', ') : 'None';
|
|
113
|
+
return { files, summary };
|
|
114
|
+
}
|
|
115
|
+
function copyAgentFiles(sourcePath, targetPath, filesToCopy) {
|
|
116
|
+
// Ensure target directory exists
|
|
117
|
+
if (!fs.existsSync(targetPath)) {
|
|
118
|
+
fs.mkdirSync(targetPath, { recursive: true });
|
|
119
|
+
console.log(`✓ Created directory: ${targetPath}`);
|
|
120
|
+
}
|
|
121
|
+
// Copy only specified files
|
|
122
|
+
const copiedFiles = [];
|
|
123
|
+
for (const file of filesToCopy) {
|
|
124
|
+
const sourceFile = path.join(sourcePath, file);
|
|
125
|
+
const targetFile = path.join(targetPath, file);
|
|
126
|
+
// Skip if source file doesn't exist
|
|
127
|
+
if (!fs.existsSync(sourceFile)) {
|
|
128
|
+
console.warn(`⚠ Skipping missing file: ${file}`);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// Copy file
|
|
132
|
+
fs.copyFileSync(sourceFile, targetFile);
|
|
133
|
+
copiedFiles.push(file);
|
|
134
|
+
}
|
|
135
|
+
console.log(`\n✓ Copied ${copiedFiles.length} files to: ${targetPath}\n`);
|
|
136
|
+
// List copied files
|
|
137
|
+
console.log('Files installed:');
|
|
138
|
+
copiedFiles.forEach(file => {
|
|
139
|
+
console.log(` • ${file}`);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function main() {
|
|
143
|
+
try {
|
|
144
|
+
console.log('mcp-sqlew Agent Installer\n');
|
|
145
|
+
// STEP 1: Ensure minimal config.toml exists
|
|
146
|
+
ensureConfigExists();
|
|
147
|
+
// STEP 2: Parse arguments
|
|
148
|
+
const options = parseArgs();
|
|
149
|
+
// STEP 3: Get agents to install based on config
|
|
150
|
+
const { files, summary } = getAgentsToInstall();
|
|
151
|
+
if (files.length === 0) {
|
|
152
|
+
console.log('⚠ No agents enabled in .sqlew/config.toml\n');
|
|
153
|
+
console.log('To enable agents, edit .sqlew/config.toml:');
|
|
154
|
+
console.log('[agents]');
|
|
155
|
+
console.log('scrum_master = true');
|
|
156
|
+
console.log('researcher = true');
|
|
157
|
+
console.log('architect = true\n');
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
console.log(`Installing agents: ${summary}\n`);
|
|
161
|
+
// STEP 4: Determine target path
|
|
162
|
+
let targetPath;
|
|
163
|
+
if (options.targetPath) {
|
|
164
|
+
targetPath = path.resolve(options.targetPath);
|
|
165
|
+
}
|
|
166
|
+
else if (options.projectLocal) {
|
|
167
|
+
targetPath = path.join(process.cwd(), '.claude', 'agents');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
targetPath = getDefaultTargetPath();
|
|
171
|
+
}
|
|
172
|
+
// STEP 5: Get source path
|
|
173
|
+
const sourcePath = getSourcePath();
|
|
174
|
+
// Verify source exists
|
|
175
|
+
if (!fs.existsSync(sourcePath)) {
|
|
176
|
+
throw new Error(`Source directory not found: ${sourcePath}\nThis may indicate an installation issue.`);
|
|
177
|
+
}
|
|
178
|
+
console.log(`Source: ${sourcePath}`);
|
|
179
|
+
console.log(`Target: ${targetPath}\n`);
|
|
180
|
+
// STEP 6: Copy selected files
|
|
181
|
+
copyAgentFiles(sourcePath, targetPath, files);
|
|
182
|
+
// STEP 7: Success message
|
|
183
|
+
console.log(`\n✓ Installation complete!\n`);
|
|
184
|
+
console.log('NEXT STEPS:');
|
|
185
|
+
console.log(' 1. Restart Claude Code (if running)');
|
|
186
|
+
console.log(' 2. Use agents with @ prefix:');
|
|
187
|
+
if (files.includes('sqlew-scrum-master.md')) {
|
|
188
|
+
console.log(' @sqlew-scrum-master "Plan the sprint"');
|
|
189
|
+
}
|
|
190
|
+
if (files.includes('sqlew-researcher.md')) {
|
|
191
|
+
console.log(' @sqlew-researcher "Query past decisions"');
|
|
192
|
+
}
|
|
193
|
+
if (files.includes('sqlew-architect.md')) {
|
|
194
|
+
console.log(' @sqlew-architect "Document architecture"');
|
|
195
|
+
}
|
|
196
|
+
console.log('\n 3. Customize agent selection:');
|
|
197
|
+
console.log(' Edit .sqlew/config.toml → [agents] section');
|
|
198
|
+
console.log(' Disable unused agents to reduce token consumption\n');
|
|
199
|
+
console.log('For more info: https://github.com/sin5ddd/mcp-sqlew\n');
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error(`\n❌ Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
main();
|
|
207
|
+
//# sourceMappingURL=init-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-agents.js","sourceRoot":"","sources":["../src/init-agents.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAO3C,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5B,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Bb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa;IACpB,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,WAAW;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IAExC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,6CAA6C;IAC7C,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,WAAW,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,+DAA+D;IAE/D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAErE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,UAAkB,EAAE,WAAqB;IACnF,iCAAiC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE/C,oCAAoC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,YAAY;QACZ,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,MAAM,cAAc,UAAU,IAAI,CAAC,CAAC;IAE1E,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,IAAI;IACX,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,4CAA4C;QAC5C,kBAAkB,EAAE,CAAC;QAErB,0BAA0B;QAC1B,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAE5B,gDAAgD;QAChD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAEhD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;QAE/C,gCAAgC;QAChC,IAAI,UAAkB,CAAC;QACvB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACtC,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,4CAA4C,CAAC,CAAC;QACzG,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC;QAEvC,8BAA8B;QAC9B,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE9C,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IAEvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"20251025020452_create_master_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"20251025020452_create_master_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ElD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAapD"}
|
|
@@ -3,48 +3,63 @@ export async function up(knex) {
|
|
|
3
3
|
// Master Tables (m_ prefix) - Normalization Layer
|
|
4
4
|
// ============================================================================
|
|
5
5
|
// Agent Management
|
|
6
|
-
await knex.schema.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
if (!(await knex.schema.hasTable('m_agents'))) {
|
|
7
|
+
await knex.schema.createTable('m_agents', (table) => {
|
|
8
|
+
table.increments('id').primary();
|
|
9
|
+
table.string('name', 100).unique().notNullable();
|
|
10
|
+
});
|
|
11
|
+
}
|
|
10
12
|
// File Path Management
|
|
11
|
-
await knex.schema.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (!(await knex.schema.hasTable('m_files'))) {
|
|
14
|
+
await knex.schema.createTable('m_files', (table) => {
|
|
15
|
+
table.increments('id').primary();
|
|
16
|
+
table.string('path', 1000).unique().notNullable();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
15
19
|
// Context Key Management
|
|
16
|
-
await knex.schema.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
if (!(await knex.schema.hasTable('m_context_keys'))) {
|
|
21
|
+
await knex.schema.createTable('m_context_keys', (table) => {
|
|
22
|
+
table.increments('id').primary();
|
|
23
|
+
table.string('key', 200).unique().notNullable();
|
|
24
|
+
});
|
|
25
|
+
}
|
|
20
26
|
// Constraint Category Management
|
|
21
|
-
await knex.schema.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
if (!(await knex.schema.hasTable('m_constraint_categories'))) {
|
|
28
|
+
await knex.schema.createTable('m_constraint_categories', (table) => {
|
|
29
|
+
table.increments('id').primary();
|
|
30
|
+
table.string('name', 100).unique().notNullable();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
25
33
|
// Layer Management (5 predefined layers)
|
|
26
|
-
await knex.schema.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
if (!(await knex.schema.hasTable('m_layers'))) {
|
|
35
|
+
await knex.schema.createTable('m_layers', (table) => {
|
|
36
|
+
table.increments('id').primary();
|
|
37
|
+
table.string('name', 50).unique().notNullable();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
30
40
|
// Tag Management
|
|
31
|
-
await knex.schema.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
if (!(await knex.schema.hasTable('m_tags'))) {
|
|
42
|
+
await knex.schema.createTable('m_tags', (table) => {
|
|
43
|
+
table.increments('id').primary();
|
|
44
|
+
table.string('name', 100).unique().notNullable();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
35
47
|
// Scope Management
|
|
36
|
-
await knex.schema.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
if (!(await knex.schema.hasTable('m_scopes'))) {
|
|
49
|
+
await knex.schema.createTable('m_scopes', (table) => {
|
|
50
|
+
table.increments('id').primary();
|
|
51
|
+
table.string('name', 200).unique().notNullable();
|
|
52
|
+
});
|
|
53
|
+
}
|
|
40
54
|
// Configuration Management (key-value store)
|
|
41
|
-
await knex.schema.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
55
|
+
if (!(await knex.schema.hasTable('m_config'))) {
|
|
56
|
+
await knex.schema.createTable('m_config', (table) => {
|
|
57
|
+
table.string('key').primary();
|
|
58
|
+
table.text('value').notNullable();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
45
61
|
// Task Statuses (enum-like table)
|
|
46
|
-
|
|
47
|
-
if (!hasTaskStatuses) {
|
|
62
|
+
if (!(await knex.schema.hasTable('m_task_statuses'))) {
|
|
48
63
|
await knex.schema.createTable('m_task_statuses', (table) => {
|
|
49
64
|
table.integer('id').primary();
|
|
50
65
|
table.string('name', 50).unique().notNullable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,kDAAkD;IAClD,+EAA+E;IAE/E,mBAAmB;IACnB,MAAM,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,kDAAkD;IAClD,+EAA+E;IAE/E,mBAAmB;IACnB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACjD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAChD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACtD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,+CAA+C;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"20251025021152_create_transaction_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"20251025021152_create_transaction_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0QlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpD"}
|