sqlew 5.0.5 → 5.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +5 -6
  3. package/dist/cli/hooks/on-prompt.d.ts +49 -0
  4. package/dist/cli/hooks/on-prompt.d.ts.map +1 -0
  5. package/dist/cli/hooks/on-prompt.js +104 -0
  6. package/dist/cli/hooks/on-prompt.js.map +1 -0
  7. package/dist/cli/hooks/stdin-parser.d.ts +11 -0
  8. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  9. package/dist/cli/hooks/stdin-parser.js +20 -0
  10. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  11. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  12. package/dist/cli/hooks/track-plan.js +19 -17
  13. package/dist/cli/hooks/track-plan.js.map +1 -1
  14. package/dist/cli.d.ts.map +1 -1
  15. package/dist/cli.js +14 -7
  16. package/dist/cli.js.map +1 -1
  17. package/dist/config/global-config.d.ts +2 -0
  18. package/dist/config/global-config.d.ts.map +1 -1
  19. package/dist/config/global-config.js.map +1 -1
  20. package/dist/index.js +10 -35
  21. package/dist/index.js.map +1 -1
  22. package/dist/init-rules.d.ts +15 -16
  23. package/dist/init-rules.d.ts.map +1 -1
  24. package/dist/init-rules.js +36 -92
  25. package/dist/init-rules.js.map +1 -1
  26. package/dist/server/tool-handlers.d.ts +3 -3
  27. package/dist/server/tool-handlers.d.ts.map +1 -1
  28. package/dist/server/tool-handlers.js +4 -4
  29. package/dist/server/tool-handlers.js.map +1 -1
  30. package/dist/server/tool-registration.d.ts +18 -0
  31. package/dist/server/tool-registration.d.ts.map +1 -0
  32. package/dist/server/tool-registration.js +42 -0
  33. package/dist/server/tool-registration.js.map +1 -0
  34. package/dist/server/tool-registry.d.ts +8 -3
  35. package/dist/server/tool-registry.d.ts.map +1 -1
  36. package/dist/server/tool-registry.js +15 -263
  37. package/dist/server/tool-registry.js.map +1 -1
  38. package/dist/server/tool-schemas.d.ts +141 -0
  39. package/dist/server/tool-schemas.d.ts.map +1 -0
  40. package/dist/server/tool-schemas.js +160 -0
  41. package/dist/server/tool-schemas.js.map +1 -0
  42. package/dist/tools/constraints/actions/get.js +5 -5
  43. package/package.json +3 -2
  44. package/assets/claude-md-snippets/plan-mode-integration.md +0 -107
  45. package/assets/claude-md-snippets/queue-monitoring.md +0 -84
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ const cliCommands = [
17
17
  'db:dump', 'db:export', 'db:import', 'query',
18
18
  'suggest', 'track-plan', 'save', 'check-completion', 'mark-done', 'init',
19
19
  // Hook events (v4.2.0+, v5.0.0+)
20
- 'on-subagent-stop', 'on-stop', 'on-enter-plan', 'on-exit-plan', 'on-session-start',
20
+ 'on-subagent-stop', 'on-stop', 'on-enter-plan', 'on-exit-plan', 'on-session-start', 'on-prompt',
21
21
  ];
22
22
  // CLI flags that should route to CLI (not MCP server)
23
23
  const cliFlags = ['--init', '--help', '--version'];
@@ -39,12 +39,10 @@ else {
39
39
  // MCP Server
40
40
  // ============================================================================
41
41
  async function startMcpServer() {
42
- const { Server } = await import('@modelcontextprotocol/sdk/server/index.js');
42
+ const { McpServer } = await import('@modelcontextprotocol/sdk/server/mcp.js');
43
43
  const { StdioServerTransport } = await import('@modelcontextprotocol/sdk/server/stdio.js');
44
- const { CallToolRequestSchema, ListToolsRequestSchema, } = await import('@modelcontextprotocol/sdk/types.js');
45
44
  const { parseArgs, validateArgs } = await import('./server/arg-parser.js');
46
- const { getToolRegistry } = await import('./server/tool-registry.js');
47
- const { handleToolCall } = await import('./server/tool-handlers.js');
45
+ const { registerAllTools } = await import('./server/tool-registration.js');
48
46
  const { initializeServer } = await import('./server/setup.js');
49
47
  const { registerShutdownHandlers, performCleanup } = await import('./server/shutdown.js');
50
48
  const { handleInitializationError, safeConsoleError } = await import('./utils/error-handler.js');
@@ -61,41 +59,18 @@ async function startMcpServer() {
61
59
  console.error('Error:', error instanceof Error ? error.message : String(error));
62
60
  process.exit(1);
63
61
  }
64
- // Create MCP server
65
- // TODO: Migrate from deprecated `Server` to `McpServer` (high-level API)
66
- // See: @modelcontextprotocol/sdk/server/mcp.js
67
- const server = new Server({
62
+ // Create MCP server (McpServer wraps the low-level Server)
63
+ const mcpServer = new McpServer({
68
64
  name: 'sqlew',
69
- version: '5.0.4',
65
+ version: '5.0.7',
70
66
  }, {
71
67
  capabilities: {
72
68
  tools: {},
73
69
  },
74
70
  });
75
- // Handle tool listing
76
- server.setRequestHandler(ListToolsRequestSchema, async () => {
77
- return {
78
- tools: getToolRegistry(),
79
- };
80
- });
81
- // Flag for one-time agent name initialization
82
- let agentNameInitialized = false;
83
- // Handle tool execution
84
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
85
- // Lazy initialization of agent name (after MCP handshake is complete)
86
- if (!agentNameInitialized) {
87
- agentNameInitialized = true;
88
- const clientVersion = server.getClientVersion();
89
- if (clientVersion?.name) {
90
- const { getBackend } = await import('./backend/backend-factory.js');
91
- const backend = getBackend();
92
- if (backend.setAgentName) {
93
- backend.setAgentName(clientVersion.name);
94
- }
95
- }
96
- }
97
- return await handleToolCall(request);
98
- });
71
+ // Register all tools via McpServer.registerTool() API
72
+ // Handles ListTools + CallTool automatically (no manual setRequestHandler needed)
73
+ registerAllTools(mcpServer);
99
74
  // Setup centralized global error handlers
100
75
  registerShutdownHandlers();
101
76
  // Start server
@@ -107,7 +82,7 @@ async function startMcpServer() {
107
82
  // Connect MCP server transport FIRST (before any stderr writes)
108
83
  // This prevents EPIPE errors with clients expecting pure JSON-RPC protocol
109
84
  const transport = new StdioServerTransport();
110
- await server.connect(transport);
85
+ await mcpServer.connect(transport);
111
86
  // NOW safe to write diagnostic messages (using EPIPE-safe wrapper)
112
87
  safeConsoleError('✓ MCP Shared Context Server running on stdio');
113
88
  const dbPath = parsedArgs.dbPath || setupResult.fileConfig.database?.path;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,33 @@
1
1
  /**
2
2
  * Auto-initialize sqlew on server startup
3
3
  *
4
- * As of v5.0.0, this module handles:
5
- * - Global CLAUDE.md injection (~/.claude/CLAUDE.md)
4
+ * As of v5.0.6, this module handles:
5
+ * - Cleanup of legacy CLAUDE.md injection (~/.claude/CLAUDE.md)
6
6
  * - Project .gitignore updates
7
7
  *
8
+ * Plan mode enforcement is now handled by:
9
+ * - UserPromptSubmit hook (on-prompt.ts) with permission_mode check
10
+ * - PreToolUse hook (track-plan.ts) for EnterPlanMode
11
+ * - Enhanced Skills (sqlew-decision-format, sqlew-plan-guidance)
12
+ *
8
13
  * Skills and Hooks are managed by the sqlew-plugin (Claude Code Plugin).
9
14
  * @see https://github.com/sqlew-io/sqlew-plugin for Skills/Hooks/Agents
10
15
  */
11
16
  /**
12
- * Inject sqlew snippets into global ~/.claude/CLAUDE.md
13
- *
14
- * As of v5.0.0, snippets are injected directly into CLAUDE.md instead of
15
- * being copied to ~/.claude/rules/sqlew/. This ensures higher priority
16
- * and better compatibility with other CLI tools (Codex, Gemini CLI).
17
+ * Clean up legacy sqlew injection from global ~/.claude/CLAUDE.md
17
18
  *
18
- * The injected section is wrapped with HTML comment markers for:
19
- * - Easy identification of auto-managed content
20
- * - Safe updates (replace existing section)
21
- * - No impact on Markdown rendering
19
+ * As of v5.0.6, plan mode enforcement is handled by Hooks (UserPromptSubmit)
20
+ * instead of CLAUDE.md injection. This function removes the legacy injected
21
+ * section (between <!-- sqlew:auto-injected:start/end --> markers).
22
22
  *
23
- * TODO: Add client detection to conditionally inject based on CLI type
24
- * Use server.getClientVersion() after MCP initialization
23
+ * Safe to call multiple times - does nothing if no markers found.
25
24
  */
26
- export declare function injectToGlobalClaudeMd(): void;
25
+ export declare function cleanupGlobalClaudeMd(): void;
27
26
  /**
28
27
  * Initialize sqlew on MCP server startup
29
28
  *
30
- * As of v5.0.0:
31
- * - Injects snippets into ~/.claude/CLAUDE.md (not rules/)
29
+ * As of v5.0.6:
30
+ * - Cleans up legacy CLAUDE.md injection (one-time)
32
31
  * - Updates project .gitignore
33
32
  *
34
33
  * @param projectRoot - Project root directory (for .gitignore updates)
@@ -1 +1 @@
1
- {"version":3,"file":"init-rules.d.ts","sourceRoot":"","sources":["../src/init-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwBH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAyE7C;AASD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS9D;AAoBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAkE7D"}
1
+ {"version":3,"file":"init-rules.d.ts","sourceRoot":"","sources":["../src/init-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA8B5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ9D;AAoBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAkE7D"}
@@ -1,133 +1,77 @@
1
1
  /**
2
2
  * Auto-initialize sqlew on server startup
3
3
  *
4
- * As of v5.0.0, this module handles:
5
- * - Global CLAUDE.md injection (~/.claude/CLAUDE.md)
4
+ * As of v5.0.6, this module handles:
5
+ * - Cleanup of legacy CLAUDE.md injection (~/.claude/CLAUDE.md)
6
6
  * - Project .gitignore updates
7
7
  *
8
+ * Plan mode enforcement is now handled by:
9
+ * - UserPromptSubmit hook (on-prompt.ts) with permission_mode check
10
+ * - PreToolUse hook (track-plan.ts) for EnterPlanMode
11
+ * - Enhanced Skills (sqlew-decision-format, sqlew-plan-guidance)
12
+ *
8
13
  * Skills and Hooks are managed by the sqlew-plugin (Claude Code Plugin).
9
14
  * @see https://github.com/sqlew-io/sqlew-plugin for Skills/Hooks/Agents
10
15
  */
11
16
  import * as fs from 'fs';
12
17
  import * as path from 'path';
13
18
  import * as os from 'os';
14
- import { fileURLToPath } from 'url';
15
19
  import { debugLog } from './utils/debug-logger.js';
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = path.dirname(__filename);
20
+ /** Marker for sqlew auto-injected section in CLAUDE.md (legacy) */
21
+ const CLAUDE_MD_MARKER_START = '<!-- sqlew:auto-injected:start -->';
22
+ const CLAUDE_MD_MARKER_END = '<!-- sqlew:auto-injected:end -->';
18
23
  /**
19
- * Get path to assets directory (relative to dist/)
24
+ * Escape special regex characters in a string
20
25
  */
21
- function getAssetsPath() {
22
- const distDir = __dirname; // .../dist
23
- const packageRoot = path.dirname(distDir); // .../mcp-sqlew
24
- return path.join(packageRoot, 'assets');
26
+ function escapeRegex(str) {
27
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
25
28
  }
26
- /** Marker for sqlew auto-injected section in CLAUDE.md */
27
- const CLAUDE_MD_MARKER_START = '<!-- sqlew:auto-injected:start -->';
28
- const CLAUDE_MD_MARKER_END = '<!-- sqlew:auto-injected:end -->';
29
29
  /**
30
- * Inject sqlew snippets into global ~/.claude/CLAUDE.md
30
+ * Clean up legacy sqlew injection from global ~/.claude/CLAUDE.md
31
31
  *
32
- * As of v5.0.0, snippets are injected directly into CLAUDE.md instead of
33
- * being copied to ~/.claude/rules/sqlew/. This ensures higher priority
34
- * and better compatibility with other CLI tools (Codex, Gemini CLI).
32
+ * As of v5.0.6, plan mode enforcement is handled by Hooks (UserPromptSubmit)
33
+ * instead of CLAUDE.md injection. This function removes the legacy injected
34
+ * section (between <!-- sqlew:auto-injected:start/end --> markers).
35
35
  *
36
- * The injected section is wrapped with HTML comment markers for:
37
- * - Easy identification of auto-managed content
38
- * - Safe updates (replace existing section)
39
- * - No impact on Markdown rendering
40
- *
41
- * TODO: Add client detection to conditionally inject based on CLI type
42
- * Use server.getClientVersion() after MCP initialization
36
+ * Safe to call multiple times - does nothing if no markers found.
43
37
  */
44
- export function injectToGlobalClaudeMd() {
38
+ export function cleanupGlobalClaudeMd() {
45
39
  const home = os.homedir();
46
- const claudeDir = path.join(home, '.claude');
47
- const claudeMdPath = path.join(claudeDir, 'CLAUDE.md');
48
- const snippetsDir = path.join(getAssetsPath(), 'claude-md-snippets');
49
- // Check if snippets directory exists
50
- if (!fs.existsSync(snippetsDir)) {
51
- debugLog('WARN', 'Claude MD snippets directory not found', { snippetsDir });
40
+ const claudeMdPath = path.join(home, '.claude', 'CLAUDE.md');
41
+ // Skip if file doesn't exist
42
+ if (!fs.existsSync(claudeMdPath)) {
52
43
  return;
53
44
  }
54
- // Create ~/.claude/ directory if needed
55
- if (!fs.existsSync(claudeDir)) {
56
- try {
57
- fs.mkdirSync(claudeDir, { recursive: true });
58
- debugLog('INFO', 'Created ~/.claude directory', { claudeDir });
59
- }
60
- catch (error) {
61
- debugLog('WARN', 'Failed to create ~/.claude directory', { error });
62
- return;
63
- }
64
- }
65
- // Read current CLAUDE.md content (or empty string if doesn't exist)
66
- let content = '';
67
- if (fs.existsSync(claudeMdPath)) {
68
- content = fs.readFileSync(claudeMdPath, 'utf-8');
69
- }
70
- else {
71
- debugLog('INFO', 'Creating new ~/.claude/CLAUDE.md', { claudeMdPath });
72
- }
73
- // Find all .md files in snippets directory
74
- const snippetFiles = fs.readdirSync(snippetsDir).filter(f => f.endsWith('.md'));
75
- if (snippetFiles.length === 0) {
76
- debugLog('WARN', 'No snippet files found', { snippetsDir });
45
+ const content = fs.readFileSync(claudeMdPath, 'utf-8');
46
+ // Skip if no markers found (already clean)
47
+ if (!content.includes(CLAUDE_MD_MARKER_START)) {
48
+ debugLog('DEBUG', 'CLAUDE.md has no sqlew injection markers (already clean)');
77
49
  return;
78
50
  }
79
- // Concatenate all snippet contents
80
- const snippetContent = snippetFiles
81
- .map(f => fs.readFileSync(path.join(snippetsDir, f), 'utf-8'))
82
- .join('\n\n');
83
- // Build the injected section
84
- const injectedSection = `${CLAUDE_MD_MARKER_START}\n${snippetContent}\n${CLAUDE_MD_MARKER_END}`;
85
- // Check if section already exists
86
- if (content.includes(CLAUDE_MD_MARKER_START)) {
87
- // Check if content is the same (no update needed)
88
- const regex = new RegExp(`${escapeRegex(CLAUDE_MD_MARKER_START)}[\\s\\S]*?${escapeRegex(CLAUDE_MD_MARKER_END)}`, 'g');
89
- const existingMatch = content.match(regex);
90
- if (existingMatch && existingMatch[0] === injectedSection) {
91
- debugLog('DEBUG', 'CLAUDE.md sqlew section is up-to-date');
92
- return;
93
- }
94
- // Replace existing section
95
- content = content.replace(regex, injectedSection);
96
- debugLog('INFO', 'Updated sqlew section in CLAUDE.md', { files: snippetFiles.length });
97
- }
98
- else {
99
- // Append new section
100
- content = content.trimEnd() + '\n\n' + injectedSection + '\n';
101
- debugLog('INFO', 'Injected sqlew section into CLAUDE.md', { files: snippetFiles.length });
102
- }
103
- // Write updated content
51
+ // Remove the injected section
52
+ const regex = new RegExp(`\\n?\\n?${escapeRegex(CLAUDE_MD_MARKER_START)}[\\s\\S]*?${escapeRegex(CLAUDE_MD_MARKER_END)}\\n?`, 'g');
53
+ const cleaned = content.replace(regex, '').trimEnd() + '\n';
104
54
  try {
105
- fs.writeFileSync(claudeMdPath, content, 'utf-8');
55
+ fs.writeFileSync(claudeMdPath, cleaned, 'utf-8');
56
+ debugLog('INFO', 'Removed legacy sqlew injection from ~/.claude/CLAUDE.md');
106
57
  }
107
58
  catch (error) {
108
- debugLog('WARN', 'Failed to write CLAUDE.md', { error });
59
+ debugLog('WARN', 'Failed to clean up CLAUDE.md', { error });
109
60
  }
110
61
  }
111
- /**
112
- * Escape special regex characters in a string
113
- */
114
- function escapeRegex(str) {
115
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
116
- }
117
62
  /**
118
63
  * Initialize sqlew on MCP server startup
119
64
  *
120
- * As of v5.0.0:
121
- * - Injects snippets into ~/.claude/CLAUDE.md (not rules/)
65
+ * As of v5.0.6:
66
+ * - Cleans up legacy CLAUDE.md injection (one-time)
122
67
  * - Updates project .gitignore
123
68
  *
124
69
  * @param projectRoot - Project root directory (for .gitignore updates)
125
70
  */
126
71
  export function initializeSqlewRules(projectRoot) {
127
72
  debugLog('DEBUG', 'Initializing sqlew', { projectRoot });
128
- // Inject snippets into global ~/.claude/CLAUDE.md
129
- // TODO: Add client detection to conditionally inject
130
- injectToGlobalClaudeMd();
73
+ // Clean up legacy CLAUDE.md injection (safe to call multiple times)
74
+ cleanupGlobalClaudeMd();
131
75
  // Initialize .gitignore entries for sqlew-generated files
132
76
  initializeGitignore(projectRoot);
133
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init-rules.js","sourceRoot":"","sources":["../src/init-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,SAAS,aAAa;IACpB,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,CAAC,CAAC;AAC1C,CAAC;AAED,0DAA0D;AAC1D,MAAM,sBAAsB,GAAG,oCAAoC,CAAC;AACpE,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAErE,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,EAAE,wCAAwC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAG,YAAY;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC7D,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,6BAA6B;IAC7B,MAAM,eAAe,GAAG,GAAG,sBAAsB,KAAK,cAAc,KAAK,oBAAoB,EAAE,CAAC;IAEhG,kCAAkC;IAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7C,kDAAkD;QAClD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,sBAAsB,CAAC,aAAa,WAAW,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtH,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;YAC1D,QAAQ,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAClD,QAAQ,CAAC,MAAM,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;QAC9D,QAAQ,CAAC,MAAM,EAAE,uCAAuC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAEzD,kDAAkD;IAClD,qDAAqD;IACrD,sBAAsB,EAAE,CAAC;IAEzB,0DAA0D;IAC1D,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,MAAM;IACN,OAAO;CACR,CAAC;AAEF,yCAAyC;AACzC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAExD,oCAAoC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,MAAM,EAAE,gDAAgD,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7C,uBAAuB;QACvB,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC;YAChE,MAAM,UAAU,GACd,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;gBAC7B,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7B,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,QAAQ,CAAC,MAAM,EAAE,kDAAkD,EAAE;gBACnE,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG;QACnB,sBAAsB;QACtB,GAAG,uBAAuB;KAC3B,CAAC;IAEF,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9F,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,QAAQ,CAAC,MAAM,EAAE,2BAA2B,EAAE;YAC5C,OAAO,EAAE,uBAAuB,CAAC,MAAM;SACxC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,MAAM,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init-rules.js","sourceRoot":"","sources":["../src/init-rules.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,15 @@
5
5
  * v4.4.0+: Uses ToolBackend pattern for Local/Plugin abstraction
6
6
  * All tool execution logic is delegated to the active backend.
7
7
  */
8
- import { CallToolRequest, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
8
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
9
9
  /**
10
- * Handle CallToolRequest - dispatch to appropriate tool action
10
+ * Handle tool call - dispatch to appropriate tool action
11
11
  *
12
12
  * Routes requests through the ToolBackend abstraction layer:
13
13
  * - LocalBackend: Executes against local database via Knex
14
14
  * - Plugin backends: Execute via plugin implementation (e.g., HTTP API)
15
15
  */
16
- export declare function handleToolCall(request: CallToolRequest): Promise<CallToolResult>;
16
+ export declare function handleToolCall(toolName: string, args: Record<string, unknown>): Promise<CallToolResult>;
17
17
  /**
18
18
  * Check if error requires fallback to LocalBackend
19
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAMrF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAiDtF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgB/D"}
1
+ {"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAMpE;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAiD7G;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgB/D"}
@@ -8,16 +8,16 @@
8
8
  import { debugLogToolCall, debugLogToolResponse } from '../utils/debug-logger.js';
9
9
  import { handleToolError } from '../utils/error-handler.js';
10
10
  import { getBackend, getBackendType } from '../backend/index.js';
11
- import { LocalBackend } from '../backend/local-backend.js';
11
+ import { LocalBackend } from '../backend/index.js';
12
12
  /**
13
- * Handle CallToolRequest - dispatch to appropriate tool action
13
+ * Handle tool call - dispatch to appropriate tool action
14
14
  *
15
15
  * Routes requests through the ToolBackend abstraction layer:
16
16
  * - LocalBackend: Executes against local database via Knex
17
17
  * - Plugin backends: Execute via plugin implementation (e.g., HTTP API)
18
18
  */
19
- export async function handleToolCall(request) {
20
- const { name, arguments: args } = request.params;
19
+ export async function handleToolCall(toolName, args) {
20
+ const name = toolName;
21
21
  const params = args;
22
22
  const action = params.action || 'N/A';
23
23
  // Debug logging: Tool call
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * MCP Server - Tool Registration
3
+ * Registers all tools via McpServer.registerTool() API.
4
+ *
5
+ * This replaces the manual setRequestHandler(ListToolsRequestSchema/CallToolRequestSchema)
6
+ * pattern. registerTool() automatically handles ListTools and CallTool requests.
7
+ */
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ /**
10
+ * Register all MCP tools on the given McpServer instance.
11
+ *
12
+ * Each tool is registered with:
13
+ * - Zod input schema (for validation + JSON Schema generation)
14
+ * - Description string
15
+ * - Callback that delegates to handleToolCall()
16
+ */
17
+ export declare function registerAllTools(mcpServer: McpServer): void;
18
+ //# sourceMappingURL=tool-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registration.d.ts","sourceRoot":"","sources":["../../src/server/tool-registration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CA0B3D"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * MCP Server - Tool Registration
3
+ * Registers all tools via McpServer.registerTool() API.
4
+ *
5
+ * This replaces the manual setRequestHandler(ListToolsRequestSchema/CallToolRequestSchema)
6
+ * pattern. registerTool() automatically handles ListTools and CallTool requests.
7
+ */
8
+ import { TOOL_SCHEMAS, TOOL_DESCRIPTIONS } from './tool-schemas.js';
9
+ import { handleToolCall } from './tool-handlers.js';
10
+ let agentNameInitialized = false;
11
+ /**
12
+ * Register all MCP tools on the given McpServer instance.
13
+ *
14
+ * Each tool is registered with:
15
+ * - Zod input schema (for validation + JSON Schema generation)
16
+ * - Description string
17
+ * - Callback that delegates to handleToolCall()
18
+ */
19
+ export function registerAllTools(mcpServer) {
20
+ for (const [name, schema] of Object.entries(TOOL_SCHEMAS)) {
21
+ mcpServer.registerTool(name, {
22
+ description: TOOL_DESCRIPTIONS[name],
23
+ inputSchema: schema,
24
+ }, async (args) => {
25
+ // Lazy initialization of agent name (after MCP handshake)
26
+ if (!agentNameInitialized) {
27
+ agentNameInitialized = true;
28
+ const clientVersion = mcpServer.server.getClientVersion();
29
+ if (clientVersion?.name) {
30
+ const { getBackend } = await import('../backend/backend-factory.js');
31
+ const backend = getBackend();
32
+ if (backend.setAgentName) {
33
+ backend.setAgentName(clientVersion.name);
34
+ }
35
+ }
36
+ }
37
+ // Args are already validated by registerTool's Zod schema
38
+ return await handleToolCall(name, args);
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=tool-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registration.js","sourceRoot":"","sources":["../../src/server/tool-registration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,SAAS,CAAC,YAAY,CACpB,IAAI,EACJ;YACE,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,MAAM;SACpB,EACD,KAAK,EAAE,IAAa,EAAE,EAAE;YACtB,0DAA0D;YAC1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,oBAAoB,GAAG,IAAI,CAAC;gBAC5B,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;oBACxB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBACzB,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,0DAA0D;YAC1D,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAC;QACrE,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,11 +1,16 @@
1
1
  /**
2
2
  * MCP Server - Tool Registry
3
- * Defines available MCP tools and their metadata
3
+ * Generates MCP Tool[] list from Zod schemas.
4
+ *
5
+ * Previously: hand-written JSON Schema (273 lines)
6
+ * Now: Zod schemas → toJSONSchema() + description
7
+ *
8
+ * Note: This function is no longer used by index.ts (registerTool handles ListTools
9
+ * automatically), but is retained for verification and external consumers.
4
10
  */
5
11
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
12
  /**
7
- * Get list of all available MCP tools
8
- * Used by ListToolsRequest handler
13
+ * Get list of all available MCP tools (JSON Schema format)
9
14
  */
10
15
  export declare function getToolRegistry(): Tool[];
11
16
  //# sourceMappingURL=tool-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,EAAE,CAqQxC"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI1D;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,EAAE,CAMxC"}