sqlew 4.0.1 → 4.0.3
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 +127 -0
- package/README.md +29 -113
- package/assets/claude-md-snippets/plan-mode-integration.md +13 -0
- package/assets/sample-commands/sqlew.md +144 -0
- package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +55 -0
- package/dist/cli/db-dump.d.ts +4 -0
- package/dist/cli/db-dump.d.ts.map +1 -1
- package/dist/cli/db-dump.js +89 -114
- package/dist/cli/db-dump.js.map +1 -1
- package/dist/cli/db-export.d.ts +1 -0
- package/dist/cli/db-export.d.ts.map +1 -1
- package/dist/cli/db-export.js +46 -80
- package/dist/cli/db-export.js.map +1 -1
- package/dist/cli/db-import.d.ts +1 -0
- package/dist/cli/db-import.d.ts.map +1 -1
- package/dist/cli/db-import.js +52 -90
- package/dist/cli/db-import.js.map +1 -1
- package/dist/cli.d.ts +10 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +57 -59
- package/dist/cli.js.map +1 -1
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts.map +1 -1
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js +7 -4
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js.map +1 -1
- package/dist/database/operations/inserts.d.ts.map +1 -1
- package/dist/database/operations/inserts.js +7 -0
- package/dist/database/operations/inserts.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -48
- package/dist/index.js.map +1 -1
- package/dist/init-commands.d.ts +5 -2
- package/dist/init-commands.d.ts.map +1 -1
- package/dist/init-commands.js +36 -175
- package/dist/init-commands.js.map +1 -1
- package/dist/init-skills.d.ts +19 -0
- package/dist/init-skills.d.ts.map +1 -0
- package/dist/init-skills.js +104 -0
- package/dist/init-skills.js.map +1 -0
- package/dist/server/setup.d.ts.map +1 -1
- package/dist/server/setup.js +9 -0
- package/dist/server/setup.js.map +1 -1
- package/dist/tests/database/testing-config.d.ts +4 -0
- package/dist/tests/database/testing-config.d.ts.map +1 -1
- package/dist/tests/database/testing-config.js +1 -1
- package/dist/tests/database/testing-config.js.map +1 -1
- package/dist/tests/docker/native/test-harness.d.ts +56 -1
- package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
- package/dist/tests/docker/native/test-harness.js +221 -5
- package/dist/tests/docker/native/test-harness.js.map +1 -1
- package/dist/tests/unit/case-insensitive-validator.test.d.ts +14 -0
- package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -0
- package/dist/tests/unit/case-insensitive-validator.test.js +390 -0
- package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -0
- package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +2 -0
- package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/case-insensitive-validator.test.js +97 -0
- package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +1 -0
- package/dist/tools/context/actions/create-policy.d.ts.map +1 -1
- package/dist/tools/context/actions/create-policy.js +5 -1
- package/dist/tools/context/actions/create-policy.js.map +1 -1
- package/dist/tools/tasks/actions/get.d.ts.map +1 -1
- package/dist/tools/tasks/actions/get.js +1 -4
- package/dist/tools/tasks/actions/get.js.map +1 -1
- package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -1
- package/dist/tools/tasks/internal/task-queries.js +2 -8
- package/dist/tools/tasks/internal/task-queries.js.map +1 -1
- package/dist/types.d.ts +10 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/case-insensitive-validator.d.ts +102 -0
- package/dist/utils/case-insensitive-validator.d.ts.map +1 -0
- package/dist/utils/case-insensitive-validator.js +144 -0
- package/dist/utils/case-insensitive-validator.js.map +1 -0
- package/dist/utils/exporter/export.d.ts +22 -7
- package/dist/utils/exporter/export.d.ts.map +1 -1
- package/dist/utils/exporter/export.js +33 -49
- package/dist/utils/exporter/export.js.map +1 -1
- package/dist/utils/importer/import.js +64 -27
- package/dist/utils/importer/import.js.map +1 -1
- package/dist/utils/importer/master-tables.d.ts +3 -1
- package/dist/utils/importer/master-tables.d.ts.map +1 -1
- package/dist/utils/importer/master-tables.js +7 -29
- package/dist/utils/importer/master-tables.js.map +1 -1
- package/dist/utils/sql-dump/core/generate-dump.d.ts.map +1 -1
- package/dist/utils/sql-dump/core/generate-dump.js +25 -5
- package/dist/utils/sql-dump/core/generate-dump.js.map +1 -1
- package/dist/utils/sql-dump/core/index-export.d.ts +3 -2
- package/dist/utils/sql-dump/core/index-export.d.ts.map +1 -1
- package/dist/utils/sql-dump/core/index-export.js +9 -9
- package/dist/utils/sql-dump/core/index-export.js.map +1 -1
- package/dist/utils/sql-dump/schema/indexes.d.ts +14 -0
- package/dist/utils/sql-dump/schema/indexes.d.ts.map +1 -1
- package/dist/utils/sql-dump/schema/indexes.js +81 -15
- package/dist/utils/sql-dump/schema/indexes.js.map +1 -1
- package/dist/utils/sql-dump/schema/tables.d.ts +4 -1
- package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -1
- package/dist/utils/sql-dump/schema/tables.js +81 -51
- package/dist/utils/sql-dump/schema/tables.js.map +1 -1
- package/docs/SLASH_COMMANDS.md +192 -478
- package/docs/SPECIALIZED_AGENTS.md +81 -43
- package/docs/cli/DATABASE_MIGRATION.md +62 -58
- package/docs/cli/DATA_EXPORT_IMPORT.md +403 -103
- package/docs/cli/README.md +95 -45
- package/package.json +4 -6
- package/assets/sample-commands/sqw-documentor.md +0 -204
- package/assets/sample-commands/sqw-plan.md +0 -348
- package/assets/sample-commands/sqw-research.md +0 -359
- package/assets/sample-commands/sqw-review.md +0 -377
- package/assets/sample-commands/sqw-scrum.md +0 -457
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
package/dist/index.js
CHANGED
|
@@ -2,50 +2,78 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Shared Context Server - Entry Point
|
|
4
4
|
* Provides context management tools via Model Context Protocol
|
|
5
|
+
*
|
|
6
|
+
* Unified entry point (v4.0.2+):
|
|
7
|
+
* - No args or MCP args: Start MCP server
|
|
8
|
+
* - CLI commands (db:export, db:import, db:dump, query): Delegate to CLI
|
|
5
9
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// CLI Command Detection (must be first, before any MCP imports)
|
|
12
|
+
// ============================================================================
|
|
13
|
+
const rawArgs = process.argv.slice(2);
|
|
14
|
+
const firstArg = rawArgs[0] || '';
|
|
15
|
+
// Check if this is a CLI command
|
|
16
|
+
const cliCommands = ['db:dump', 'db:export', 'db:import', 'query'];
|
|
17
|
+
const isCliCommand = cliCommands.includes(firstArg);
|
|
18
|
+
if (isCliCommand) {
|
|
19
|
+
// Delegate to CLI module
|
|
20
|
+
import('./cli.js').then(async (cli) => {
|
|
21
|
+
await cli.runCli(rawArgs);
|
|
22
|
+
}).catch((error) => {
|
|
23
|
+
console.error('CLI Error:', error instanceof Error ? error.message : String(error));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
});
|
|
21
26
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
else {
|
|
28
|
+
// Start MCP Server
|
|
29
|
+
startMcpServer();
|
|
25
30
|
}
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// MCP Server
|
|
33
|
+
// ============================================================================
|
|
34
|
+
async function startMcpServer() {
|
|
35
|
+
const { Server } = await import('@modelcontextprotocol/sdk/server/index.js');
|
|
36
|
+
const { StdioServerTransport } = await import('@modelcontextprotocol/sdk/server/stdio.js');
|
|
37
|
+
const { CallToolRequestSchema, ListToolsRequestSchema, } = await import('@modelcontextprotocol/sdk/types.js');
|
|
38
|
+
const { parseArgs, validateArgs } = await import('./server/arg-parser.js');
|
|
39
|
+
const { getToolRegistry } = await import('./server/tool-registry.js');
|
|
40
|
+
const { handleToolCall } = await import('./server/tool-handlers.js');
|
|
41
|
+
const { initializeServer, startFileWatcher } = await import('./server/setup.js');
|
|
42
|
+
const { registerShutdownHandlers, performCleanup } = await import('./server/shutdown.js');
|
|
43
|
+
const { handleInitializationError, safeConsoleError } = await import('./utils/error-handler.js');
|
|
44
|
+
// Parse command-line arguments
|
|
45
|
+
const args = process.argv.slice(2);
|
|
46
|
+
const parsedArgs = parseArgs(args);
|
|
47
|
+
// Validate arguments (throws if invalid)
|
|
48
|
+
try {
|
|
49
|
+
validateArgs(parsedArgs);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
// Create MCP server
|
|
56
|
+
const server = new Server({
|
|
57
|
+
name: 'mcp-sqlew',
|
|
58
|
+
version: '4.0.2',
|
|
59
|
+
}, {
|
|
60
|
+
capabilities: {
|
|
61
|
+
tools: {},
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
// Handle tool listing
|
|
65
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
66
|
+
return {
|
|
67
|
+
tools: getToolRegistry(),
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
// Handle tool execution
|
|
71
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
72
|
+
return await handleToolCall(request);
|
|
73
|
+
});
|
|
74
|
+
// Setup centralized global error handlers
|
|
75
|
+
registerShutdownHandlers();
|
|
76
|
+
// Start server
|
|
49
77
|
let debugLoggerInitialized = false;
|
|
50
78
|
try {
|
|
51
79
|
// Initialize server (database, config, project context)
|
|
@@ -87,11 +115,5 @@ async function main() {
|
|
|
87
115
|
process.exit(1);
|
|
88
116
|
}
|
|
89
117
|
}
|
|
90
|
-
|
|
91
|
-
// Use centralized initialization error handler (writes to log file)
|
|
92
|
-
safeConsoleError('\n❌ FATAL ERROR:');
|
|
93
|
-
handleInitializationError(error);
|
|
94
|
-
performCleanup();
|
|
95
|
-
process.exit(1);
|
|
96
|
-
});
|
|
118
|
+
export {};
|
|
97
119
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/init-commands.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* CLI tool
|
|
4
|
-
*
|
|
3
|
+
* CLI tool for sqlew slash commands
|
|
4
|
+
* @deprecated v4.1.0 - Slash commands replaced by Plan Mode Integration
|
|
5
|
+
*
|
|
6
|
+
* This command now only displays deprecation notice.
|
|
7
|
+
* sqlew tools are automatically recommended during Plan mode.
|
|
5
8
|
*/
|
|
6
9
|
export {};
|
|
7
10
|
//# sourceMappingURL=init-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-commands.d.ts","sourceRoot":"","sources":["../src/init-commands.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"init-commands.d.ts","sourceRoot":"","sources":["../src/init-commands.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
|
package/dist/init-commands.js
CHANGED
|
@@ -1,185 +1,46 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* CLI tool
|
|
4
|
-
*
|
|
3
|
+
* CLI tool for sqlew slash commands
|
|
4
|
+
* @deprecated v4.1.0 - Slash commands replaced by Plan Mode Integration
|
|
5
|
+
*
|
|
6
|
+
* This command now only displays deprecation notice.
|
|
7
|
+
* sqlew tools are automatically recommended during Plan mode.
|
|
5
8
|
*/
|
|
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
9
|
function printHelp() {
|
|
35
|
-
console.log(`
|
|
36
|
-
mcp-sqlew init-commands - Initialize slash commands for mcp-sqlew
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
npx mcp-sqlew init-commands
|
|
49
|
-
|
|
50
|
-
# Install to custom location
|
|
51
|
-
npx mcp-sqlew init-commands --path /path/to/commands
|
|
52
|
-
|
|
53
|
-
SLASH COMMANDS:
|
|
54
|
-
- /sqw-documentor Document architectural decisions
|
|
55
|
-
- /sqw-secretary Record decisions (meeting minutes)
|
|
56
|
-
- /sqw-plan Planning workflow (architecture + tasks)
|
|
57
|
-
- /sqw-research Search decision/task history
|
|
58
|
-
- /sqw-review Validate architectural consistency
|
|
59
|
-
- /sqw-scrum Task management + agent coordination
|
|
10
|
+
console.log(`
|
|
11
|
+
mcp-sqlew init-commands - Initialize slash commands for mcp-sqlew
|
|
12
|
+
|
|
13
|
+
NOTE: As of v4.1.0, slash commands have been replaced by:
|
|
14
|
+
1. Plan Mode Integration (auto-added to CLAUDE.md on server startup)
|
|
15
|
+
2. Skills (.claude/skills/sqw-plan-guidance/)
|
|
16
|
+
|
|
17
|
+
The sqlew MCP tools are automatically recommended when Plan mode is active.
|
|
18
|
+
No manual command installation is required.
|
|
19
|
+
|
|
20
|
+
For more information, see:
|
|
21
|
+
- .claude/skills/sqw-plan-guidance/SKILL.md
|
|
22
|
+
- CLAUDE.md (Plan Mode Integration section)
|
|
60
23
|
`);
|
|
61
24
|
}
|
|
62
|
-
function getDefaultTargetPath() {
|
|
63
|
-
return path.join(process.cwd(), '.claude', 'commands');
|
|
64
|
-
}
|
|
65
|
-
function getSourcePath() {
|
|
66
|
-
const distDir = __dirname; // .../dist
|
|
67
|
-
const packageRoot = path.dirname(distDir); // .../mcp-sqlew
|
|
68
|
-
return path.join(packageRoot, 'assets', 'sample-commands');
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Ensure config.toml exists, create if missing
|
|
72
|
-
*/
|
|
73
|
-
function ensureConfigExists() {
|
|
74
|
-
const projectRoot = process.cwd();
|
|
75
|
-
const created = createMinimalConfigIfNotExists(projectRoot);
|
|
76
|
-
if (created) {
|
|
77
|
-
console.log('✓ Created: .sqlew/config.toml (minimal defaults)');
|
|
78
|
-
console.log(' Edit [commands] section to customize command selection\n');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get list of command files to install based on config
|
|
83
|
-
*/
|
|
84
|
-
function getCommandsToInstall() {
|
|
85
|
-
const config = loadConfigFile();
|
|
86
|
-
const commandConfig = config.commands || {};
|
|
87
|
-
const files = [];
|
|
88
|
-
const installed = [];
|
|
89
|
-
if (commandConfig.documentor !== false) {
|
|
90
|
-
files.push('sqw-documentor.md');
|
|
91
|
-
installed.push('Documentor');
|
|
92
|
-
}
|
|
93
|
-
if (commandConfig.secretary !== false) {
|
|
94
|
-
files.push('sqw-secretary.md');
|
|
95
|
-
installed.push('Secretary');
|
|
96
|
-
}
|
|
97
|
-
if (commandConfig.plan !== false) {
|
|
98
|
-
files.push('sqw-plan.md');
|
|
99
|
-
installed.push('Plan');
|
|
100
|
-
}
|
|
101
|
-
if (commandConfig.research !== false) {
|
|
102
|
-
files.push('sqw-research.md');
|
|
103
|
-
installed.push('Research');
|
|
104
|
-
}
|
|
105
|
-
if (commandConfig.review !== false) {
|
|
106
|
-
files.push('sqw-review.md');
|
|
107
|
-
installed.push('Review');
|
|
108
|
-
}
|
|
109
|
-
if (commandConfig.scrum !== false) {
|
|
110
|
-
files.push('sqw-scrum.md');
|
|
111
|
-
installed.push('Scrum');
|
|
112
|
-
}
|
|
113
|
-
const summary = installed.length > 0 ? installed.join(', ') : 'None';
|
|
114
|
-
return { files, summary };
|
|
115
|
-
}
|
|
116
|
-
function copyCommandFiles(sourcePath, targetPath, filesToCopy) {
|
|
117
|
-
if (!fs.existsSync(targetPath)) {
|
|
118
|
-
fs.mkdirSync(targetPath, { recursive: true });
|
|
119
|
-
console.log(`✓ Created directory: ${targetPath}`);
|
|
120
|
-
}
|
|
121
|
-
const copiedFiles = [];
|
|
122
|
-
for (const file of filesToCopy) {
|
|
123
|
-
const sourceFile = path.join(sourcePath, file);
|
|
124
|
-
const targetFile = path.join(targetPath, file);
|
|
125
|
-
if (!fs.existsSync(sourceFile)) {
|
|
126
|
-
console.warn(`⚠ Skipping missing file: ${file}`);
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
fs.copyFileSync(sourceFile, targetFile);
|
|
130
|
-
copiedFiles.push(file);
|
|
131
|
-
}
|
|
132
|
-
console.log(`\n✓ Copied ${copiedFiles.length} files to: ${targetPath}\n`);
|
|
133
|
-
console.log('Files installed:');
|
|
134
|
-
copiedFiles.forEach(file => {
|
|
135
|
-
console.log(` • ${file}`);
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
25
|
function main() {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
: getDefaultTargetPath();
|
|
157
|
-
const sourcePath = getSourcePath();
|
|
158
|
-
if (!fs.existsSync(sourcePath)) {
|
|
159
|
-
throw new Error(`Source directory not found: ${sourcePath}`);
|
|
160
|
-
}
|
|
161
|
-
console.log(`Source: ${sourcePath}`);
|
|
162
|
-
console.log(`Target: ${targetPath}\n`);
|
|
163
|
-
copyCommandFiles(sourcePath, targetPath, files);
|
|
164
|
-
console.log(`\n✓ Installation complete!\n`);
|
|
165
|
-
console.log('NEXT STEPS:');
|
|
166
|
-
console.log(' 1. Use slash commands with / prefix:');
|
|
167
|
-
if (files.includes('sqw-plan.md')) {
|
|
168
|
-
console.log(' /sqw-plan "Implement feature X"');
|
|
169
|
-
}
|
|
170
|
-
if (files.includes('sqw-documentor.md')) {
|
|
171
|
-
console.log(' /sqw-documentor "Document API design"');
|
|
172
|
-
}
|
|
173
|
-
if (files.includes('sqw-scrum.md')) {
|
|
174
|
-
console.log(' /sqw-scrum "Review sprint tasks"');
|
|
175
|
-
}
|
|
176
|
-
console.log('\n 2. Customize command selection:');
|
|
177
|
-
console.log(' Edit .sqlew/config.toml → [commands] section\n');
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
console.error(`\n❌ Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
181
|
-
process.exit(1);
|
|
182
|
-
}
|
|
26
|
+
const args = process.argv.slice(2);
|
|
27
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
28
|
+
printHelp();
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
console.log('mcp-sqlew init-commands\n');
|
|
32
|
+
console.log('⚠ DEPRECATED: Slash commands have been replaced in v4.1.0\n');
|
|
33
|
+
console.log('The sqlew MCP tools are now automatically recommended when Plan mode is active.');
|
|
34
|
+
console.log('No manual command installation is required.\n');
|
|
35
|
+
console.log('NEW APPROACH:');
|
|
36
|
+
console.log(' 1. Plan Mode Integration');
|
|
37
|
+
console.log(' - Automatically added to CLAUDE.md on server startup');
|
|
38
|
+
console.log(' - sqlew tools are recommended during plan mode phases\n');
|
|
39
|
+
console.log(' 2. Skills Reference');
|
|
40
|
+
console.log(' - .claude/skills/sqw-plan-guidance/SKILL.md');
|
|
41
|
+
console.log(' - Auto-installed on first server startup\n');
|
|
42
|
+
console.log('For more information, run: npx sqlew init-commands --help\n');
|
|
183
43
|
}
|
|
184
44
|
main();
|
|
45
|
+
export {};
|
|
185
46
|
//# sourceMappingURL=init-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-commands.js","sourceRoot":"","sources":["../src/init-commands.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"init-commands.js","sourceRoot":"","sources":["../src/init-commands.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;CAab,CAAC,CAAC;AACH,CAAC;AAED,SAAS,IAAI;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-initialize sqlew skills and CLAUDE.md integration on server startup
|
|
3
|
+
* Copies skills from assets if not present, appends to CLAUDE.md if section missing
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Initialize skills in project's .claude/skills directory
|
|
7
|
+
* Only copies if skill directory doesn't exist
|
|
8
|
+
*/
|
|
9
|
+
export declare function initializeSkills(projectRoot: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Append Plan Mode Integration section to CLAUDE.md if not present
|
|
12
|
+
*/
|
|
13
|
+
export declare function initializeClaudeMd(projectRoot: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize all sqlew integrations (skills + CLAUDE.md)
|
|
16
|
+
* Called during server startup
|
|
17
|
+
*/
|
|
18
|
+
export declare function initializeSqlewIntegrations(projectRoot: string): void;
|
|
19
|
+
//# sourceMappingURL=init-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-skills.d.ts","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuC1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQrE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-initialize sqlew skills and CLAUDE.md integration on server startup
|
|
3
|
+
* Copies skills from assets if not present, appends to CLAUDE.md if section missing
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
8
|
+
import { debugLog } from './utils/debug-logger.js';
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = path.dirname(__filename);
|
|
11
|
+
/**
|
|
12
|
+
* Get path to assets directory (relative to dist/)
|
|
13
|
+
*/
|
|
14
|
+
function getAssetsPath() {
|
|
15
|
+
const distDir = __dirname; // .../dist
|
|
16
|
+
const packageRoot = path.dirname(distDir); // .../mcp-sqlew
|
|
17
|
+
return path.join(packageRoot, 'assets');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Initialize skills in project's .claude/skills directory
|
|
21
|
+
* Only copies if skill directory doesn't exist
|
|
22
|
+
*/
|
|
23
|
+
export function initializeSkills(projectRoot) {
|
|
24
|
+
const skillsSourceDir = path.join(getAssetsPath(), 'sample-skills');
|
|
25
|
+
const skillsTargetDir = path.join(projectRoot, '.claude', 'skills');
|
|
26
|
+
// Check if source exists
|
|
27
|
+
if (!fs.existsSync(skillsSourceDir)) {
|
|
28
|
+
debugLog('WARN', 'Skills source directory not found', { skillsSourceDir });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Get list of skill directories to copy
|
|
32
|
+
const skillDirs = fs.readdirSync(skillsSourceDir, { withFileTypes: true })
|
|
33
|
+
.filter(dirent => dirent.isDirectory())
|
|
34
|
+
.map(dirent => dirent.name);
|
|
35
|
+
for (const skillName of skillDirs) {
|
|
36
|
+
const sourceSkillDir = path.join(skillsSourceDir, skillName);
|
|
37
|
+
const targetSkillDir = path.join(skillsTargetDir, skillName);
|
|
38
|
+
// Only copy if target doesn't exist
|
|
39
|
+
if (!fs.existsSync(targetSkillDir)) {
|
|
40
|
+
try {
|
|
41
|
+
// Create target directory
|
|
42
|
+
fs.mkdirSync(targetSkillDir, { recursive: true });
|
|
43
|
+
// Copy all files in skill directory
|
|
44
|
+
const files = fs.readdirSync(sourceSkillDir);
|
|
45
|
+
for (const file of files) {
|
|
46
|
+
const sourceFile = path.join(sourceSkillDir, file);
|
|
47
|
+
const targetFile = path.join(targetSkillDir, file);
|
|
48
|
+
fs.copyFileSync(sourceFile, targetFile);
|
|
49
|
+
}
|
|
50
|
+
debugLog('INFO', `Skill initialized: ${skillName}`, { targetSkillDir });
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
debugLog('WARN', `Failed to initialize skill: ${skillName}`, { error });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Append Plan Mode Integration section to CLAUDE.md if not present
|
|
60
|
+
*/
|
|
61
|
+
export function initializeClaudeMd(projectRoot) {
|
|
62
|
+
const claudeMdPath = path.join(projectRoot, 'CLAUDE.md');
|
|
63
|
+
const snippetPath = path.join(getAssetsPath(), 'claude-md-snippets', 'plan-mode-integration.md');
|
|
64
|
+
// Check if snippet source exists
|
|
65
|
+
if (!fs.existsSync(snippetPath)) {
|
|
66
|
+
debugLog('WARN', 'CLAUDE.md snippet not found', { snippetPath });
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Check if CLAUDE.md exists
|
|
70
|
+
if (!fs.existsSync(claudeMdPath)) {
|
|
71
|
+
debugLog('INFO', 'CLAUDE.md not found, skipping integration', { claudeMdPath });
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// Read current CLAUDE.md content
|
|
75
|
+
const currentContent = fs.readFileSync(claudeMdPath, 'utf-8');
|
|
76
|
+
// Check if Plan Mode Integration section already exists
|
|
77
|
+
if (currentContent.includes('## Plan Mode Integration')) {
|
|
78
|
+
debugLog('DEBUG', 'Plan Mode Integration section already present in CLAUDE.md');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// Read snippet content
|
|
82
|
+
const snippetContent = fs.readFileSync(snippetPath, 'utf-8');
|
|
83
|
+
// Append snippet to CLAUDE.md
|
|
84
|
+
try {
|
|
85
|
+
const newContent = currentContent.trimEnd() + '\n\n' + snippetContent;
|
|
86
|
+
fs.writeFileSync(claudeMdPath, newContent, 'utf-8');
|
|
87
|
+
debugLog('INFO', 'Plan Mode Integration section added to CLAUDE.md', { claudeMdPath });
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
debugLog('WARN', 'Failed to update CLAUDE.md', { error });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Initialize all sqlew integrations (skills + CLAUDE.md)
|
|
95
|
+
* Called during server startup
|
|
96
|
+
*/
|
|
97
|
+
export function initializeSqlewIntegrations(projectRoot) {
|
|
98
|
+
debugLog('DEBUG', 'Initializing sqlew integrations', { projectRoot });
|
|
99
|
+
// Initialize skills
|
|
100
|
+
initializeSkills(projectRoot);
|
|
101
|
+
// Initialize CLAUDE.md integration
|
|
102
|
+
initializeClaudeMd(projectRoot);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=init-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-skills.js","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/server/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAgE,MAAM,gBAAgB,CAAC;AAG/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAM7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/server/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAgE,MAAM,gBAAgB,CAAC;AAG/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAM7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,eAAe,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE;QACZ,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAqLnF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGtD"}
|
package/dist/server/setup.js
CHANGED
|
@@ -12,6 +12,7 @@ import { FileWatcher } from '../watcher/index.js';
|
|
|
12
12
|
import { initDebugLogger, debugLog } from '../utils/debug-logger.js';
|
|
13
13
|
import { ensureSqlewDirectory } from '../config/example-generator.js';
|
|
14
14
|
import { determineProjectRoot } from '../utils/project-root.js';
|
|
15
|
+
import { initializeSqlewIntegrations } from '../init-skills.js';
|
|
15
16
|
/**
|
|
16
17
|
* Initialize server: database, config, project context, file watcher
|
|
17
18
|
* Returns initialized components for server startup
|
|
@@ -166,6 +167,14 @@ export async function initializeServer(parsedArgs) {
|
|
|
166
167
|
autoDeleteConfig: { messageHours, fileHistoryDays, ignoreWeekend },
|
|
167
168
|
debugLogLevel: debugLogLevel
|
|
168
169
|
});
|
|
170
|
+
// 5. Initialize sqlew integrations (skills + CLAUDE.md) - silent, non-blocking
|
|
171
|
+
try {
|
|
172
|
+
initializeSqlewIntegrations(finalProjectRoot);
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
debugLog('WARN', 'Failed to initialize sqlew integrations', { error });
|
|
176
|
+
// Non-fatal - continue server startup
|
|
177
|
+
}
|
|
169
178
|
return {
|
|
170
179
|
db,
|
|
171
180
|
fileConfig,
|
package/dist/server/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/server/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/server/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,10 @@ export interface DockerContainerConfig {
|
|
|
28
28
|
password: string;
|
|
29
29
|
database: string;
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Database configurations for testing environments
|
|
33
|
+
*/
|
|
34
|
+
export declare const TEST_CONFIGS: Record<DatabaseType, Knex.Config | DockerContainerConfig>;
|
|
31
35
|
/**
|
|
32
36
|
* Get Knex configuration for the specified database type
|
|
33
37
|
*
|