claude-brain 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +191 -191
- package/VERSION +1 -1
- package/assets/CLAUDE-unified.md +11 -11
- package/assets/CLAUDE.md +29 -11
- package/bunfig.toml +8 -8
- package/package.json +82 -82
- package/packs/backend/node.json +173 -173
- package/packs/core/javascript.json +176 -176
- package/packs/core/typescript.json +222 -222
- package/packs/frontend/react.json +254 -254
- package/packs/meta/testing.json +172 -172
- package/scripts/postinstall.mjs +341 -341
- package/src/automation/auto-context.ts +240 -240
- package/src/automation/decision-detector.ts +452 -452
- package/src/automation/index.ts +11 -11
- package/src/automation/phase12-manager.ts +456 -456
- package/src/automation/proactive-recall.ts +373 -373
- package/src/automation/project-detector.ts +310 -310
- package/src/automation/repo-scanner.ts +205 -205
- package/src/cli/auto-setup.ts +82 -82
- package/src/cli/bin.ts +209 -202
- package/src/cli/commands/chroma.ts +573 -573
- package/src/cli/commands/git-hook.ts +189 -189
- package/src/cli/commands/hooks.ts +213 -213
- package/src/cli/commands/init.ts +122 -122
- package/src/cli/commands/install-mcp.ts +92 -92
- package/src/cli/commands/pack.ts +197 -197
- package/src/cli/commands/refresh.ts +323 -0
- package/src/cli/commands/serve.ts +167 -173
- package/src/cli/commands/start.ts +42 -42
- package/src/cli/commands/uninstall-mcp.ts +41 -41
- package/src/cli/commands/update.ts +124 -121
- package/src/cli/diagnose.ts +4 -4
- package/src/cli/health-check.ts +4 -4
- package/src/cli/migrate-chroma.ts +106 -106
- package/src/cli/setup.ts +4 -4
- package/src/cli/ui/animations.ts +80 -80
- package/src/cli/ui/components.ts +82 -82
- package/src/cli/ui/index.ts +4 -4
- package/src/cli/ui/logo.ts +36 -36
- package/src/cli/ui/theme.ts +55 -55
- package/src/config/defaults.ts +50 -50
- package/src/config/home.ts +55 -55
- package/src/config/index.ts +7 -7
- package/src/config/loader.ts +166 -166
- package/src/config/migration.ts +76 -76
- package/src/config/schema.ts +360 -360
- package/src/config/validator.ts +184 -184
- package/src/config/watcher.ts +86 -86
- package/src/context/assembler.ts +398 -398
- package/src/context/cache-manager.ts +101 -101
- package/src/context/formatter.ts +84 -84
- package/src/context/hierarchy.ts +85 -85
- package/src/context/index.ts +83 -83
- package/src/context/progress-tracker.ts +174 -174
- package/src/context/standards-manager.ts +287 -287
- package/src/context/types.ts +252 -252
- package/src/context/validator.ts +58 -58
- package/src/diagnostics/index.ts +123 -123
- package/src/health/index.ts +229 -229
- package/src/hooks/brain-hook.ts +128 -112
- package/src/hooks/capture.ts +168 -205
- package/src/hooks/deduplicator.ts +72 -72
- package/src/hooks/git-capture.ts +109 -109
- package/src/hooks/git-hook-installer.ts +207 -207
- package/src/hooks/index.ts +20 -20
- package/src/hooks/installer.ts +194 -194
- package/src/hooks/passive-classifier.ts +404 -723
- package/src/hooks/queue.ts +129 -129
- package/src/hooks/session-tracker.ts +312 -275
- package/src/hooks/types.ts +47 -47
- package/src/index.ts +7 -7
- package/src/intelligence/cross-project/affinity.ts +162 -162
- package/src/intelligence/cross-project/generalizer.ts +283 -283
- package/src/intelligence/cross-project/index.ts +13 -13
- package/src/intelligence/cross-project/transfer.ts +201 -201
- package/src/intelligence/index.ts +24 -24
- package/src/intelligence/optimization/index.ts +10 -10
- package/src/intelligence/optimization/precompute.ts +202 -202
- package/src/intelligence/optimization/semantic-cache.ts +207 -207
- package/src/intelligence/prediction/context-anticipator.ts +198 -198
- package/src/intelligence/prediction/decision-predictor.ts +184 -184
- package/src/intelligence/prediction/index.ts +13 -13
- package/src/intelligence/prediction/recommender.ts +268 -268
- package/src/intelligence/reasoning/chain-retrieval.ts +247 -247
- package/src/intelligence/reasoning/counterfactual.ts +248 -248
- package/src/intelligence/reasoning/index.ts +13 -13
- package/src/intelligence/reasoning/synthesizer.ts +169 -169
- package/src/intelligence/temporal/evolution.ts +197 -197
- package/src/intelligence/temporal/index.ts +16 -16
- package/src/intelligence/temporal/query-processor.ts +190 -190
- package/src/intelligence/temporal/timeline.ts +259 -259
- package/src/intelligence/temporal/trends.ts +263 -263
- package/src/knowledge/entity-extractor.ts +416 -416
- package/src/knowledge/graph/builder.ts +185 -185
- package/src/knowledge/graph/linker.ts +201 -201
- package/src/knowledge/graph/memory-graph.ts +359 -359
- package/src/knowledge/graph/schema.ts +99 -99
- package/src/knowledge/graph/search.ts +168 -168
- package/src/knowledge/relationship-extractor.ts +108 -108
- package/src/memory/chroma/client.ts +174 -174
- package/src/memory/chroma/collection-manager.ts +94 -94
- package/src/memory/chroma/config.ts +57 -57
- package/src/memory/chroma/embeddings.ts +155 -155
- package/src/memory/chroma/index.ts +82 -82
- package/src/memory/chroma/migration.ts +270 -270
- package/src/memory/chroma/schemas.ts +69 -69
- package/src/memory/chroma/search.ts +315 -315
- package/src/memory/chroma/store.ts +741 -741
- package/src/memory/consolidation/archiver.ts +164 -164
- package/src/memory/consolidation/merger.ts +186 -186
- package/src/memory/consolidation/scorer.ts +138 -138
- package/src/memory/context-builder.ts +236 -236
- package/src/memory/database.ts +169 -169
- package/src/memory/embedding-utils.ts +156 -156
- package/src/memory/embeddings.ts +226 -226
- package/src/memory/episodic/detector.ts +108 -108
- package/src/memory/episodic/manager.ts +351 -351
- package/src/memory/episodic/summarizer.ts +179 -179
- package/src/memory/episodic/types.ts +52 -52
- package/src/memory/index.ts +582 -582
- package/src/memory/knowledge-extractor.ts +455 -455
- package/src/memory/learning.ts +378 -378
- package/src/memory/patterns.ts +396 -396
- package/src/memory/schema.ts +88 -88
- package/src/memory/search.ts +309 -309
- package/src/memory/store.ts +787 -787
- package/src/memory/types.ts +121 -121
- package/src/orchestrator/coordinator.ts +272 -272
- package/src/orchestrator/decision-logger.ts +228 -228
- package/src/orchestrator/event-emitter.ts +198 -198
- package/src/orchestrator/event-queue.ts +184 -184
- package/src/orchestrator/handlers/base-handler.ts +70 -70
- package/src/orchestrator/handlers/context-handler.ts +73 -73
- package/src/orchestrator/handlers/decision-handler.ts +204 -204
- package/src/orchestrator/handlers/index.ts +10 -10
- package/src/orchestrator/handlers/status-handler.ts +131 -131
- package/src/orchestrator/handlers/task-handler.ts +171 -171
- package/src/orchestrator/index.ts +275 -275
- package/src/orchestrator/task-parser.ts +284 -284
- package/src/orchestrator/types.ts +98 -98
- package/src/packs/index.ts +9 -9
- package/src/packs/loader.ts +134 -134
- package/src/packs/manager.ts +204 -204
- package/src/packs/ranker.ts +78 -78
- package/src/packs/types.ts +81 -81
- package/src/phase12/index.ts +5 -5
- package/src/retrieval/bm25/index.ts +300 -300
- package/src/retrieval/bm25/tokenizer.ts +184 -184
- package/src/retrieval/feedback/adaptive.ts +223 -223
- package/src/retrieval/feedback/index.ts +16 -16
- package/src/retrieval/feedback/metrics.ts +223 -223
- package/src/retrieval/feedback/store.ts +283 -283
- package/src/retrieval/fusion/index.ts +194 -194
- package/src/retrieval/fusion/rrf.ts +163 -163
- package/src/retrieval/index.ts +12 -12
- package/src/retrieval/pipeline.ts +375 -375
- package/src/retrieval/query/expander.ts +198 -198
- package/src/retrieval/query/index.ts +27 -27
- package/src/retrieval/query/intent-classifier.ts +236 -236
- package/src/retrieval/query/temporal-parser.ts +295 -295
- package/src/retrieval/reranker/index.ts +188 -188
- package/src/retrieval/reranker/model.ts +95 -95
- package/src/retrieval/service.ts +125 -125
- package/src/retrieval/types.ts +162 -162
- package/src/routing/entity-extractor.ts +428 -428
- package/src/routing/intent-classifier.ts +450 -436
- package/src/routing/response-filter.ts +261 -258
- package/src/routing/router.ts +1441 -1322
- package/src/routing/search-engine.ts +515 -475
- package/src/routing/types.ts +94 -94
- package/src/scripts/health-check.ts +118 -118
- package/src/scripts/setup.ts +122 -122
- package/src/server/handlers/call-tool.ts +156 -156
- package/src/server/handlers/index.ts +9 -9
- package/src/server/handlers/list-tools.ts +35 -35
- package/src/server/handlers/tools/analyze-decision-evolution.ts +151 -151
- package/src/server/handlers/tools/auto-remember.ts +200 -200
- package/src/server/handlers/tools/brain.ts +85 -85
- package/src/server/handlers/tools/create-project.ts +135 -135
- package/src/server/handlers/tools/detect-trends.ts +144 -144
- package/src/server/handlers/tools/find-cross-project-patterns.ts +168 -168
- package/src/server/handlers/tools/get-activity-log.ts +194 -194
- package/src/server/handlers/tools/get-code-standards.ts +124 -124
- package/src/server/handlers/tools/get-corrections.ts +154 -154
- package/src/server/handlers/tools/get-decision-timeline.ts +172 -172
- package/src/server/handlers/tools/get-episode.ts +103 -103
- package/src/server/handlers/tools/get-patterns.ts +158 -158
- package/src/server/handlers/tools/get-phase12-status.ts +63 -63
- package/src/server/handlers/tools/get-project-context.ts +75 -75
- package/src/server/handlers/tools/get-recommendations.ts +145 -145
- package/src/server/handlers/tools/index.ts +31 -31
- package/src/server/handlers/tools/init-project.ts +757 -757
- package/src/server/handlers/tools/list-episodes.ts +90 -90
- package/src/server/handlers/tools/list-projects.ts +125 -125
- package/src/server/handlers/tools/rate-memory.ts +101 -101
- package/src/server/handlers/tools/recall-similar.ts +87 -87
- package/src/server/handlers/tools/recognize-pattern.ts +126 -126
- package/src/server/handlers/tools/record-correction.ts +125 -125
- package/src/server/handlers/tools/remember-decision.ts +153 -153
- package/src/server/handlers/tools/schemas.ts +253 -253
- package/src/server/handlers/tools/search-knowledge-graph.ts +102 -102
- package/src/server/handlers/tools/smart-context.ts +146 -146
- package/src/server/handlers/tools/update-progress.ts +131 -131
- package/src/server/handlers/tools/what-if-analysis.ts +135 -135
- package/src/server/http-api.ts +693 -693
- package/src/server/index.ts +40 -40
- package/src/server/mcp-server.ts +283 -283
- package/src/server/providers/index.ts +7 -7
- package/src/server/providers/prompts.ts +327 -327
- package/src/server/providers/resources.ts +622 -622
- package/src/server/services.ts +468 -468
- package/src/server/types.ts +39 -39
- package/src/server/utils/error-handler.ts +155 -155
- package/src/server/utils/index.ts +13 -13
- package/src/server/utils/memory-indicator.ts +83 -83
- package/src/server/utils/request-context.ts +122 -122
- package/src/server/utils/response-formatter.ts +129 -129
- package/src/server/utils/validators.ts +210 -210
- package/src/setup/index.ts +48 -48
- package/src/setup/wizard.ts +461 -461
- package/src/tools/index.ts +24 -24
- package/src/tools/registry.ts +115 -115
- package/src/tools/schemas.test.ts +30 -30
- package/src/tools/schemas.ts +617 -617
- package/src/tools/types.ts +412 -412
- package/src/utils/circuit-breaker.ts +130 -130
- package/src/utils/cleanup.ts +34 -34
- package/src/utils/error-handler.ts +132 -132
- package/src/utils/error-messages.ts +60 -60
- package/src/utils/fallback.ts +45 -45
- package/src/utils/index.ts +54 -54
- package/src/utils/logger-utils.ts +80 -80
- package/src/utils/logger.ts +88 -88
- package/src/utils/phase12-helper.ts +56 -56
- package/src/utils/retry.ts +94 -94
- package/src/utils/timing.ts +47 -47
- package/src/utils/transaction.ts +63 -63
- package/src/vault/frontmatter.ts +264 -264
- package/src/vault/index.ts +318 -318
- package/src/vault/paths.ts +106 -106
- package/src/vault/query.ts +422 -422
- package/src/vault/reader.ts +264 -264
- package/src/vault/templates.ts +186 -186
- package/src/vault/types.ts +73 -73
- package/src/vault/watcher.ts +277 -277
- package/src/vault/writer.ts +413 -413
- package/tsconfig.json +30 -30
- package/src/cli/auto-update.ts +0 -157
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Call Tool Handler
|
|
3
|
-
* Routes tool calls to appropriate handlers
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'
|
|
7
|
-
import type { Logger } from 'pino'
|
|
8
|
-
import { ToolRegistry } from '@/tools/registry'
|
|
9
|
-
import type { ToolResponse } from '@/tools/types'
|
|
10
|
-
|
|
11
|
-
// Import tool handlers
|
|
12
|
-
import { handleGetProjectContext } from './tools/get-project-context'
|
|
13
|
-
import { handleUpdateProgress } from './tools/update-progress'
|
|
14
|
-
import { handleRememberDecision } from './tools/remember-decision'
|
|
15
|
-
import { handleRecallSimilar } from './tools/recall-similar'
|
|
16
|
-
import { handleGetCodeStandards } from './tools/get-code-standards'
|
|
17
|
-
import { handleListProjects } from './tools/list-projects'
|
|
18
|
-
|
|
19
|
-
// Phase 12 tool handlers
|
|
20
|
-
import { handleSmartContext } from './tools/smart-context'
|
|
21
|
-
import { handleAutoRemember } from './tools/auto-remember'
|
|
22
|
-
import { handleGetPhase12Status } from './tools/get-phase12-status'
|
|
23
|
-
|
|
24
|
-
// Pattern & Correction tool handlers
|
|
25
|
-
import { handleRecognizePattern } from './tools/recognize-pattern'
|
|
26
|
-
import { handleRecordCorrection } from './tools/record-correction'
|
|
27
|
-
import { handleGetPatterns } from './tools/get-patterns'
|
|
28
|
-
import { handleGetCorrections } from './tools/get-corrections'
|
|
29
|
-
|
|
30
|
-
// Project management handlers
|
|
31
|
-
import { handleCreateProject } from './tools/create-project'
|
|
32
|
-
import { handleInitProject } from './tools/init-project'
|
|
33
|
-
|
|
34
|
-
// Phase 16 Unified Brain Tool
|
|
35
|
-
// Phase 19: Removed 9 redundant tool handlers (rate_memory, search_knowledge_graph,
|
|
36
|
-
// get_episode, list_episodes, get_decision_timeline, analyze_decision_evolution,
|
|
37
|
-
// detect_trends, what_if_analysis, get_recommendations, find_cross_project_patterns).
|
|
38
|
-
// Their functionality is now absorbed into brain().
|
|
39
|
-
import { handleBrain } from './tools/brain'
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Handle tools/call request
|
|
43
|
-
* Validates that tool exists and routes to the appropriate handler
|
|
44
|
-
*
|
|
45
|
-
* @param name - Name of the tool to call
|
|
46
|
-
* @param args - Arguments for the tool
|
|
47
|
-
* @param logger - Logger instance for this request
|
|
48
|
-
* @returns Tool response
|
|
49
|
-
* @throws McpError if tool not found or handler fails
|
|
50
|
-
*/
|
|
51
|
-
export async function handleCallTool(
|
|
52
|
-
name: string,
|
|
53
|
-
args: Record<string, unknown>,
|
|
54
|
-
logger: Logger
|
|
55
|
-
): Promise<ToolResponse> {
|
|
56
|
-
logger.info({ toolName: name, args }, 'Tool called')
|
|
57
|
-
|
|
58
|
-
// Validate tool exists
|
|
59
|
-
if (!ToolRegistry.validateToolExists(name)) {
|
|
60
|
-
throw new McpError(
|
|
61
|
-
ErrorCode.MethodNotFound,
|
|
62
|
-
`Unknown tool: ${name}`
|
|
63
|
-
)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Validate required parameters
|
|
67
|
-
const validation = ToolRegistry.validateRequiredParams(name, args)
|
|
68
|
-
if (!validation.valid) {
|
|
69
|
-
throw new McpError(
|
|
70
|
-
ErrorCode.InvalidParams,
|
|
71
|
-
validation.error || 'Invalid parameters'
|
|
72
|
-
)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Route to specific handler based on tool name
|
|
76
|
-
try {
|
|
77
|
-
switch (name) {
|
|
78
|
-
case 'get_project_context':
|
|
79
|
-
return await handleGetProjectContext(args, logger)
|
|
80
|
-
|
|
81
|
-
case 'update_progress':
|
|
82
|
-
return await handleUpdateProgress(args, logger)
|
|
83
|
-
|
|
84
|
-
case 'remember_decision':
|
|
85
|
-
return await handleRememberDecision(args, logger)
|
|
86
|
-
|
|
87
|
-
case 'recall_similar':
|
|
88
|
-
return await handleRecallSimilar(args, logger)
|
|
89
|
-
|
|
90
|
-
case 'get_code_standards':
|
|
91
|
-
return await handleGetCodeStandards(args, logger)
|
|
92
|
-
|
|
93
|
-
case 'list_projects':
|
|
94
|
-
return await handleListProjects(args, logger)
|
|
95
|
-
|
|
96
|
-
// Phase 12 Tools
|
|
97
|
-
case 'smart_context':
|
|
98
|
-
return await handleSmartContext(args, logger)
|
|
99
|
-
|
|
100
|
-
case 'auto_remember':
|
|
101
|
-
return await handleAutoRemember(args, logger)
|
|
102
|
-
|
|
103
|
-
case 'get_phase12_status':
|
|
104
|
-
return await handleGetPhase12Status(args, logger)
|
|
105
|
-
|
|
106
|
-
case 'create_project':
|
|
107
|
-
return await handleCreateProject(args, logger)
|
|
108
|
-
|
|
109
|
-
case 'init_project':
|
|
110
|
-
return await handleInitProject(args, logger)
|
|
111
|
-
|
|
112
|
-
// Pattern & Correction Tools
|
|
113
|
-
case 'recognize_pattern':
|
|
114
|
-
return await handleRecognizePattern(args, logger)
|
|
115
|
-
|
|
116
|
-
case 'record_correction':
|
|
117
|
-
return await handleRecordCorrection(args, logger)
|
|
118
|
-
|
|
119
|
-
case 'get_patterns':
|
|
120
|
-
return await handleGetPatterns(args, logger)
|
|
121
|
-
|
|
122
|
-
case 'get_corrections':
|
|
123
|
-
return await handleGetCorrections(args, logger)
|
|
124
|
-
|
|
125
|
-
// Phase 16 Unified Brain Tool
|
|
126
|
-
case 'brain':
|
|
127
|
-
return await handleBrain(args, logger)
|
|
128
|
-
|
|
129
|
-
default:
|
|
130
|
-
// This should never happen if validateToolExists works correctly
|
|
131
|
-
throw new McpError(
|
|
132
|
-
ErrorCode.InternalError,
|
|
133
|
-
`Handler not implemented for tool: ${name}`
|
|
134
|
-
)
|
|
135
|
-
}
|
|
136
|
-
} catch (error) {
|
|
137
|
-
// Re-throw MCP errors as-is
|
|
138
|
-
if (error instanceof McpError) {
|
|
139
|
-
throw error
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Convert other errors to MCP errors
|
|
143
|
-
logger.error({
|
|
144
|
-
toolName: name,
|
|
145
|
-
error: error instanceof Error ? {
|
|
146
|
-
message: error.message,
|
|
147
|
-
stack: error.stack
|
|
148
|
-
} : error
|
|
149
|
-
}, 'Tool handler error')
|
|
150
|
-
|
|
151
|
-
throw new McpError(
|
|
152
|
-
ErrorCode.InternalError,
|
|
153
|
-
error instanceof Error ? error.message : 'An unknown error occurred'
|
|
154
|
-
)
|
|
155
|
-
}
|
|
156
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Call Tool Handler
|
|
3
|
+
* Routes tool calls to appropriate handlers
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'
|
|
7
|
+
import type { Logger } from 'pino'
|
|
8
|
+
import { ToolRegistry } from '@/tools/registry'
|
|
9
|
+
import type { ToolResponse } from '@/tools/types'
|
|
10
|
+
|
|
11
|
+
// Import tool handlers
|
|
12
|
+
import { handleGetProjectContext } from './tools/get-project-context'
|
|
13
|
+
import { handleUpdateProgress } from './tools/update-progress'
|
|
14
|
+
import { handleRememberDecision } from './tools/remember-decision'
|
|
15
|
+
import { handleRecallSimilar } from './tools/recall-similar'
|
|
16
|
+
import { handleGetCodeStandards } from './tools/get-code-standards'
|
|
17
|
+
import { handleListProjects } from './tools/list-projects'
|
|
18
|
+
|
|
19
|
+
// Phase 12 tool handlers
|
|
20
|
+
import { handleSmartContext } from './tools/smart-context'
|
|
21
|
+
import { handleAutoRemember } from './tools/auto-remember'
|
|
22
|
+
import { handleGetPhase12Status } from './tools/get-phase12-status'
|
|
23
|
+
|
|
24
|
+
// Pattern & Correction tool handlers
|
|
25
|
+
import { handleRecognizePattern } from './tools/recognize-pattern'
|
|
26
|
+
import { handleRecordCorrection } from './tools/record-correction'
|
|
27
|
+
import { handleGetPatterns } from './tools/get-patterns'
|
|
28
|
+
import { handleGetCorrections } from './tools/get-corrections'
|
|
29
|
+
|
|
30
|
+
// Project management handlers
|
|
31
|
+
import { handleCreateProject } from './tools/create-project'
|
|
32
|
+
import { handleInitProject } from './tools/init-project'
|
|
33
|
+
|
|
34
|
+
// Phase 16 Unified Brain Tool
|
|
35
|
+
// Phase 19: Removed 9 redundant tool handlers (rate_memory, search_knowledge_graph,
|
|
36
|
+
// get_episode, list_episodes, get_decision_timeline, analyze_decision_evolution,
|
|
37
|
+
// detect_trends, what_if_analysis, get_recommendations, find_cross_project_patterns).
|
|
38
|
+
// Their functionality is now absorbed into brain().
|
|
39
|
+
import { handleBrain } from './tools/brain'
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Handle tools/call request
|
|
43
|
+
* Validates that tool exists and routes to the appropriate handler
|
|
44
|
+
*
|
|
45
|
+
* @param name - Name of the tool to call
|
|
46
|
+
* @param args - Arguments for the tool
|
|
47
|
+
* @param logger - Logger instance for this request
|
|
48
|
+
* @returns Tool response
|
|
49
|
+
* @throws McpError if tool not found or handler fails
|
|
50
|
+
*/
|
|
51
|
+
export async function handleCallTool(
|
|
52
|
+
name: string,
|
|
53
|
+
args: Record<string, unknown>,
|
|
54
|
+
logger: Logger
|
|
55
|
+
): Promise<ToolResponse> {
|
|
56
|
+
logger.info({ toolName: name, args }, 'Tool called')
|
|
57
|
+
|
|
58
|
+
// Validate tool exists
|
|
59
|
+
if (!ToolRegistry.validateToolExists(name)) {
|
|
60
|
+
throw new McpError(
|
|
61
|
+
ErrorCode.MethodNotFound,
|
|
62
|
+
`Unknown tool: ${name}`
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Validate required parameters
|
|
67
|
+
const validation = ToolRegistry.validateRequiredParams(name, args)
|
|
68
|
+
if (!validation.valid) {
|
|
69
|
+
throw new McpError(
|
|
70
|
+
ErrorCode.InvalidParams,
|
|
71
|
+
validation.error || 'Invalid parameters'
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Route to specific handler based on tool name
|
|
76
|
+
try {
|
|
77
|
+
switch (name) {
|
|
78
|
+
case 'get_project_context':
|
|
79
|
+
return await handleGetProjectContext(args, logger)
|
|
80
|
+
|
|
81
|
+
case 'update_progress':
|
|
82
|
+
return await handleUpdateProgress(args, logger)
|
|
83
|
+
|
|
84
|
+
case 'remember_decision':
|
|
85
|
+
return await handleRememberDecision(args, logger)
|
|
86
|
+
|
|
87
|
+
case 'recall_similar':
|
|
88
|
+
return await handleRecallSimilar(args, logger)
|
|
89
|
+
|
|
90
|
+
case 'get_code_standards':
|
|
91
|
+
return await handleGetCodeStandards(args, logger)
|
|
92
|
+
|
|
93
|
+
case 'list_projects':
|
|
94
|
+
return await handleListProjects(args, logger)
|
|
95
|
+
|
|
96
|
+
// Phase 12 Tools
|
|
97
|
+
case 'smart_context':
|
|
98
|
+
return await handleSmartContext(args, logger)
|
|
99
|
+
|
|
100
|
+
case 'auto_remember':
|
|
101
|
+
return await handleAutoRemember(args, logger)
|
|
102
|
+
|
|
103
|
+
case 'get_phase12_status':
|
|
104
|
+
return await handleGetPhase12Status(args, logger)
|
|
105
|
+
|
|
106
|
+
case 'create_project':
|
|
107
|
+
return await handleCreateProject(args, logger)
|
|
108
|
+
|
|
109
|
+
case 'init_project':
|
|
110
|
+
return await handleInitProject(args, logger)
|
|
111
|
+
|
|
112
|
+
// Pattern & Correction Tools
|
|
113
|
+
case 'recognize_pattern':
|
|
114
|
+
return await handleRecognizePattern(args, logger)
|
|
115
|
+
|
|
116
|
+
case 'record_correction':
|
|
117
|
+
return await handleRecordCorrection(args, logger)
|
|
118
|
+
|
|
119
|
+
case 'get_patterns':
|
|
120
|
+
return await handleGetPatterns(args, logger)
|
|
121
|
+
|
|
122
|
+
case 'get_corrections':
|
|
123
|
+
return await handleGetCorrections(args, logger)
|
|
124
|
+
|
|
125
|
+
// Phase 16 Unified Brain Tool
|
|
126
|
+
case 'brain':
|
|
127
|
+
return await handleBrain(args, logger)
|
|
128
|
+
|
|
129
|
+
default:
|
|
130
|
+
// This should never happen if validateToolExists works correctly
|
|
131
|
+
throw new McpError(
|
|
132
|
+
ErrorCode.InternalError,
|
|
133
|
+
`Handler not implemented for tool: ${name}`
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
} catch (error) {
|
|
137
|
+
// Re-throw MCP errors as-is
|
|
138
|
+
if (error instanceof McpError) {
|
|
139
|
+
throw error
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Convert other errors to MCP errors
|
|
143
|
+
logger.error({
|
|
144
|
+
toolName: name,
|
|
145
|
+
error: error instanceof Error ? {
|
|
146
|
+
message: error.message,
|
|
147
|
+
stack: error.stack
|
|
148
|
+
} : error
|
|
149
|
+
}, 'Tool handler error')
|
|
150
|
+
|
|
151
|
+
throw new McpError(
|
|
152
|
+
ErrorCode.InternalError,
|
|
153
|
+
error instanceof Error ? error.message : 'An unknown error occurred'
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request Handlers Exports
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export { handleListTools } from './list-tools'
|
|
6
|
-
export { handleCallTool } from './call-tool'
|
|
7
|
-
|
|
8
|
-
// Re-export tool handlers
|
|
9
|
-
export * from './tools'
|
|
1
|
+
/**
|
|
2
|
+
* Request Handlers Exports
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export { handleListTools } from './list-tools'
|
|
6
|
+
export { handleCallTool } from './call-tool'
|
|
7
|
+
|
|
8
|
+
// Re-export tool handlers
|
|
9
|
+
export * from './tools'
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* List Tools Handler
|
|
3
|
-
* Handles the MCP tools/list request
|
|
4
|
-
*
|
|
5
|
-
* In unified tool mode (Phase 16), only the brain() tool is exposed.
|
|
6
|
-
* In legacy mode, all 25 tools + brain are exposed.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { ToolRegistry } from '@/tools/registry'
|
|
10
|
-
import { getServices, isServicesInitialized } from '@/server/services'
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Handle tools/list request
|
|
14
|
-
* Returns available tools in MCP format, filtered by config
|
|
15
|
-
*/
|
|
16
|
-
export async function handleListTools() {
|
|
17
|
-
// Check if unified tool mode is enabled
|
|
18
|
-
if (isServicesInitialized()) {
|
|
19
|
-
try {
|
|
20
|
-
const { config } = getServices()
|
|
21
|
-
if (config.unifiedToolMode) {
|
|
22
|
-
const brainTool = ToolRegistry.getToolByName('brain')
|
|
23
|
-
return {
|
|
24
|
-
tools: brainTool ? [brainTool] : []
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
} catch {
|
|
28
|
-
// Services not ready, fall through to default
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Default: return all tools (legacy + brain)
|
|
33
|
-
const tools = ToolRegistry.getToolsForListResponse()
|
|
34
|
-
return { tools }
|
|
35
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* List Tools Handler
|
|
3
|
+
* Handles the MCP tools/list request
|
|
4
|
+
*
|
|
5
|
+
* In unified tool mode (Phase 16), only the brain() tool is exposed.
|
|
6
|
+
* In legacy mode, all 25 tools + brain are exposed.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { ToolRegistry } from '@/tools/registry'
|
|
10
|
+
import { getServices, isServicesInitialized } from '@/server/services'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Handle tools/list request
|
|
14
|
+
* Returns available tools in MCP format, filtered by config
|
|
15
|
+
*/
|
|
16
|
+
export async function handleListTools() {
|
|
17
|
+
// Check if unified tool mode is enabled
|
|
18
|
+
if (isServicesInitialized()) {
|
|
19
|
+
try {
|
|
20
|
+
const { config } = getServices()
|
|
21
|
+
if (config.unifiedToolMode) {
|
|
22
|
+
const brainTool = ToolRegistry.getToolByName('brain')
|
|
23
|
+
return {
|
|
24
|
+
tools: brainTool ? [brainTool] : []
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
} catch {
|
|
28
|
+
// Services not ready, fall through to default
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Default: return all tools (legacy + brain)
|
|
33
|
+
const tools = ToolRegistry.getToolsForListResponse()
|
|
34
|
+
return { tools }
|
|
35
|
+
}
|