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,253 +1,253 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod Validation Schemas for Tool Handlers
|
|
3
|
-
* Provides input validation for all MCP tool handlers
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { z } from 'zod'
|
|
7
|
-
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// Project Context & Management
|
|
10
|
-
// ============================================================================
|
|
11
|
-
|
|
12
|
-
export const GetProjectContextSchema = z.object({
|
|
13
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
14
|
-
include_memories: z.boolean().optional().default(true),
|
|
15
|
-
memory_limit: z.number().int().min(1).max(100).optional().default(5)
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
export const ListProjectsSchema = z.object({
|
|
19
|
-
status_filter: z.enum(['active', 'archived', 'planning', 'all']).optional().default('active')
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
export const CreateProjectSchema = z.object({
|
|
23
|
-
project_name: z.string().min(1, 'project_name is required')
|
|
24
|
-
.regex(/^[a-z0-9-]+$/, 'project_name must be lowercase with hyphens only'),
|
|
25
|
-
description: z.string().optional(),
|
|
26
|
-
tech_stack: z.array(z.string()).optional().default([]),
|
|
27
|
-
status: z.enum(['planning', 'active', 'on-hold', 'completed']).optional().default('planning'),
|
|
28
|
-
tags: z.array(z.string()).optional().default([])
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
export const InitProjectSchema = z.object({
|
|
32
|
-
project_path: z.string().optional(),
|
|
33
|
-
project_name: z.string().optional(),
|
|
34
|
-
save_to_memory: z.boolean().optional().default(true)
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
// ============================================================================
|
|
38
|
-
// Decision & Memory
|
|
39
|
-
// ============================================================================
|
|
40
|
-
|
|
41
|
-
export const RememberDecisionSchema = z.object({
|
|
42
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
43
|
-
context: z.string().min(1, 'context is required'),
|
|
44
|
-
decision: z.string().min(1, 'decision is required'),
|
|
45
|
-
reasoning: z.string().min(1, 'reasoning is required'),
|
|
46
|
-
alternatives_considered: z.string().optional(),
|
|
47
|
-
tags: z.array(z.string()).optional().default([])
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
export const RecallSimilarSchema = z.object({
|
|
51
|
-
query: z.string().min(1, 'query is required'),
|
|
52
|
-
project_filter: z.string().optional(),
|
|
53
|
-
limit: z.number().int().min(1).max(50).optional().default(5),
|
|
54
|
-
min_similarity: z.number().min(0).max(1).optional().default(0.3)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
// ============================================================================
|
|
58
|
-
// Smart Context & Automation
|
|
59
|
-
// ============================================================================
|
|
60
|
-
|
|
61
|
-
export const SmartContextSchema = z.object({
|
|
62
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
63
|
-
current_task: z.string().min(1, 'current_task is required'),
|
|
64
|
-
min_similarity: z.number().min(0).max(1).optional().default(0.3)
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
export const AutoRememberSchema = z.object({
|
|
68
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
69
|
-
text: z.string().min(1, 'text is required'),
|
|
70
|
-
confidence_threshold: z.number().min(0).max(1).optional().default(0.7)
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
// ============================================================================
|
|
74
|
-
// Code Standards
|
|
75
|
-
// ============================================================================
|
|
76
|
-
|
|
77
|
-
export const GetCodeStandardsSchema = z.object({
|
|
78
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
79
|
-
language: z.string().optional()
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
// ============================================================================
|
|
83
|
-
// Progress Tracking
|
|
84
|
-
// ============================================================================
|
|
85
|
-
|
|
86
|
-
export const UpdateProgressSchema = z.object({
|
|
87
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
88
|
-
completed_task: z.string().min(1, 'completed_task is required'),
|
|
89
|
-
next_steps: z.string().min(1, 'next_steps is required'),
|
|
90
|
-
notes: z.string().optional()
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
// ============================================================================
|
|
94
|
-
// Patterns & Corrections
|
|
95
|
-
// ============================================================================
|
|
96
|
-
|
|
97
|
-
export const RecognizePatternSchema = z.object({
|
|
98
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
99
|
-
pattern_type: z.enum(['solution', 'anti-pattern', 'best-practice', 'common-issue']),
|
|
100
|
-
description: z.string().min(1, 'description is required'),
|
|
101
|
-
example: z.string().optional(),
|
|
102
|
-
confidence: z.number().min(0).max(1).optional().default(0.8),
|
|
103
|
-
context: z.string().optional()
|
|
104
|
-
})
|
|
105
|
-
|
|
106
|
-
export const RecordCorrectionSchema = z.object({
|
|
107
|
-
project_name: z.string().min(1, 'project_name is required'),
|
|
108
|
-
original: z.string().min(1, 'original is required'),
|
|
109
|
-
correction: z.string().min(1, 'correction is required'),
|
|
110
|
-
reasoning: z.string().min(1, 'reasoning is required'),
|
|
111
|
-
context: z.string().optional(),
|
|
112
|
-
confidence: z.number().min(0).max(1).optional().default(0.9)
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
export const GetPatternsSchema = z.object({
|
|
116
|
-
project_name: z.string().optional(),
|
|
117
|
-
pattern_type: z.enum(['solution', 'anti-pattern', 'best-practice', 'common-issue']).optional(),
|
|
118
|
-
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
119
|
-
query: z.string().optional()
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
export const GetCorrectionsSchema = z.object({
|
|
123
|
-
project_name: z.string().optional(),
|
|
124
|
-
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
125
|
-
query: z.string().optional()
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
// ============================================================================
|
|
129
|
-
// Phase 12 Status
|
|
130
|
-
// ============================================================================
|
|
131
|
-
|
|
132
|
-
export const GetPhase12StatusSchema = z.object({})
|
|
133
|
-
|
|
134
|
-
// ============================================================================
|
|
135
|
-
// Phase 13 Retrieval Feedback
|
|
136
|
-
// ============================================================================
|
|
137
|
-
|
|
138
|
-
export const RateMemorySchema = z.object({
|
|
139
|
-
memory_id: z.string().min(1, 'memory_id is required'),
|
|
140
|
-
rating: z.number().int().min(1).max(5) as z.ZodType<1 | 2 | 3 | 4 | 5>,
|
|
141
|
-
query: z.string().min(1, 'query is required'),
|
|
142
|
-
was_used: z.boolean().optional().default(true),
|
|
143
|
-
feedback_text: z.string().optional(),
|
|
144
|
-
project_name: z.string().optional()
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
// ============================================================================
|
|
148
|
-
// Phase 14 Knowledge Graph & Episodic Memory
|
|
149
|
-
// ============================================================================
|
|
150
|
-
|
|
151
|
-
export const SearchKnowledgeGraphSchema = z.object({
|
|
152
|
-
query: z.string().optional(),
|
|
153
|
-
node_type: z.enum(['project', 'technology', 'concept', 'person', 'file', 'decision', 'pattern', 'correction', 'date']).optional(),
|
|
154
|
-
start_node_id: z.string().optional(),
|
|
155
|
-
hops: z.number().int().min(1).max(10).optional().default(2),
|
|
156
|
-
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
export const GetEpisodeSchema = z.object({
|
|
160
|
-
episode_id: z.string().optional(),
|
|
161
|
-
project_name: z.string().optional()
|
|
162
|
-
})
|
|
163
|
-
|
|
164
|
-
export const ListEpisodesSchema = z.object({
|
|
165
|
-
project_name: z.string().optional(),
|
|
166
|
-
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
167
|
-
status: z.enum(['active', 'completed']).optional()
|
|
168
|
-
})
|
|
169
|
-
|
|
170
|
-
// ============================================================================
|
|
171
|
-
// Phase 15 - Advanced Intelligence & Temporal Reasoning
|
|
172
|
-
// ============================================================================
|
|
173
|
-
|
|
174
|
-
export const GetDecisionTimelineSchema = z.object({
|
|
175
|
-
project_name: z.string().optional(),
|
|
176
|
-
topic: z.string().optional(),
|
|
177
|
-
time_range: z.string().optional(),
|
|
178
|
-
limit: z.number().int().min(1).max(200).optional().default(50)
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
export const AnalyzeDecisionEvolutionSchema = z.object({
|
|
182
|
-
topic: z.string().min(1, 'topic is required'),
|
|
183
|
-
project_name: z.string().optional(),
|
|
184
|
-
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
185
|
-
})
|
|
186
|
-
|
|
187
|
-
export const DetectTrendsSchema = z.object({
|
|
188
|
-
project_name: z.string().optional(),
|
|
189
|
-
period_days: z.number().int().min(1).max(3650).optional().default(90),
|
|
190
|
-
min_occurrences: z.number().int().min(1).optional().default(2),
|
|
191
|
-
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
192
|
-
})
|
|
193
|
-
|
|
194
|
-
export const WhatIfAnalysisSchema = z.object({
|
|
195
|
-
change: z.string().min(1, 'change description is required'),
|
|
196
|
-
project_name: z.string().optional(),
|
|
197
|
-
max_results: z.number().int().min(1).max(100).optional().default(20)
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
export const GetRecommendationsSchema = z.object({
|
|
201
|
-
query: z.string().min(1, 'query is required'),
|
|
202
|
-
project_name: z.string().optional(),
|
|
203
|
-
limit: z.number().int().min(1).max(50).optional().default(10)
|
|
204
|
-
})
|
|
205
|
-
|
|
206
|
-
export const FindCrossProjectPatternsSchema = z.object({
|
|
207
|
-
min_projects: z.number().int().min(1).max(50).optional().default(2),
|
|
208
|
-
limit: z.number().int().min(1).max(100).optional().default(20),
|
|
209
|
-
query: z.string().optional()
|
|
210
|
-
})
|
|
211
|
-
|
|
212
|
-
// ============================================================================
|
|
213
|
-
// Phase 16 - Unified Brain Tool
|
|
214
|
-
// ============================================================================
|
|
215
|
-
|
|
216
|
-
export const BrainSchema = z.object({
|
|
217
|
-
message: z.string().min(1, 'message is required'),
|
|
218
|
-
project: z.string().optional()
|
|
219
|
-
})
|
|
220
|
-
|
|
221
|
-
// ============================================================================
|
|
222
|
-
// Type exports for validated inputs
|
|
223
|
-
// ============================================================================
|
|
224
|
-
|
|
225
|
-
export type ValidatedGetProjectContext = z.infer<typeof GetProjectContextSchema>
|
|
226
|
-
export type ValidatedListProjects = z.infer<typeof ListProjectsSchema>
|
|
227
|
-
export type ValidatedCreateProject = z.infer<typeof CreateProjectSchema>
|
|
228
|
-
export type ValidatedInitProject = z.infer<typeof InitProjectSchema>
|
|
229
|
-
export type ValidatedRememberDecision = z.infer<typeof RememberDecisionSchema>
|
|
230
|
-
export type ValidatedRecallSimilar = z.infer<typeof RecallSimilarSchema>
|
|
231
|
-
export type ValidatedSmartContext = z.infer<typeof SmartContextSchema>
|
|
232
|
-
export type ValidatedAutoRemember = z.infer<typeof AutoRememberSchema>
|
|
233
|
-
export type ValidatedGetCodeStandards = z.infer<typeof GetCodeStandardsSchema>
|
|
234
|
-
export type ValidatedUpdateProgress = z.infer<typeof UpdateProgressSchema>
|
|
235
|
-
export type ValidatedRecognizePattern = z.infer<typeof RecognizePatternSchema>
|
|
236
|
-
export type ValidatedRecordCorrection = z.infer<typeof RecordCorrectionSchema>
|
|
237
|
-
export type ValidatedGetPatterns = z.infer<typeof GetPatternsSchema>
|
|
238
|
-
export type ValidatedGetCorrections = z.infer<typeof GetCorrectionsSchema>
|
|
239
|
-
export type ValidatedRateMemory = z.infer<typeof RateMemorySchema>
|
|
240
|
-
export type ValidatedSearchKnowledgeGraph = z.infer<typeof SearchKnowledgeGraphSchema>
|
|
241
|
-
export type ValidatedGetEpisode = z.infer<typeof GetEpisodeSchema>
|
|
242
|
-
export type ValidatedListEpisodes = z.infer<typeof ListEpisodesSchema>
|
|
243
|
-
|
|
244
|
-
// Phase 15
|
|
245
|
-
export type ValidatedGetDecisionTimeline = z.infer<typeof GetDecisionTimelineSchema>
|
|
246
|
-
export type ValidatedAnalyzeDecisionEvolution = z.infer<typeof AnalyzeDecisionEvolutionSchema>
|
|
247
|
-
export type ValidatedDetectTrends = z.infer<typeof DetectTrendsSchema>
|
|
248
|
-
export type ValidatedWhatIfAnalysis = z.infer<typeof WhatIfAnalysisSchema>
|
|
249
|
-
export type ValidatedGetRecommendations = z.infer<typeof GetRecommendationsSchema>
|
|
250
|
-
export type ValidatedFindCrossProjectPatterns = z.infer<typeof FindCrossProjectPatternsSchema>
|
|
251
|
-
|
|
252
|
-
// Phase 16
|
|
253
|
-
export type ValidatedBrain = z.infer<typeof BrainSchema>
|
|
1
|
+
/**
|
|
2
|
+
* Zod Validation Schemas for Tool Handlers
|
|
3
|
+
* Provides input validation for all MCP tool handlers
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Project Context & Management
|
|
10
|
+
// ============================================================================
|
|
11
|
+
|
|
12
|
+
export const GetProjectContextSchema = z.object({
|
|
13
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
14
|
+
include_memories: z.boolean().optional().default(true),
|
|
15
|
+
memory_limit: z.number().int().min(1).max(100).optional().default(5)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export const ListProjectsSchema = z.object({
|
|
19
|
+
status_filter: z.enum(['active', 'archived', 'planning', 'all']).optional().default('active')
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
export const CreateProjectSchema = z.object({
|
|
23
|
+
project_name: z.string().min(1, 'project_name is required')
|
|
24
|
+
.regex(/^[a-z0-9-]+$/, 'project_name must be lowercase with hyphens only'),
|
|
25
|
+
description: z.string().optional(),
|
|
26
|
+
tech_stack: z.array(z.string()).optional().default([]),
|
|
27
|
+
status: z.enum(['planning', 'active', 'on-hold', 'completed']).optional().default('planning'),
|
|
28
|
+
tags: z.array(z.string()).optional().default([])
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export const InitProjectSchema = z.object({
|
|
32
|
+
project_path: z.string().optional(),
|
|
33
|
+
project_name: z.string().optional(),
|
|
34
|
+
save_to_memory: z.boolean().optional().default(true)
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Decision & Memory
|
|
39
|
+
// ============================================================================
|
|
40
|
+
|
|
41
|
+
export const RememberDecisionSchema = z.object({
|
|
42
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
43
|
+
context: z.string().min(1, 'context is required'),
|
|
44
|
+
decision: z.string().min(1, 'decision is required'),
|
|
45
|
+
reasoning: z.string().min(1, 'reasoning is required'),
|
|
46
|
+
alternatives_considered: z.string().optional(),
|
|
47
|
+
tags: z.array(z.string()).optional().default([])
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
export const RecallSimilarSchema = z.object({
|
|
51
|
+
query: z.string().min(1, 'query is required'),
|
|
52
|
+
project_filter: z.string().optional(),
|
|
53
|
+
limit: z.number().int().min(1).max(50).optional().default(5),
|
|
54
|
+
min_similarity: z.number().min(0).max(1).optional().default(0.3)
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// ============================================================================
|
|
58
|
+
// Smart Context & Automation
|
|
59
|
+
// ============================================================================
|
|
60
|
+
|
|
61
|
+
export const SmartContextSchema = z.object({
|
|
62
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
63
|
+
current_task: z.string().min(1, 'current_task is required'),
|
|
64
|
+
min_similarity: z.number().min(0).max(1).optional().default(0.3)
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
export const AutoRememberSchema = z.object({
|
|
68
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
69
|
+
text: z.string().min(1, 'text is required'),
|
|
70
|
+
confidence_threshold: z.number().min(0).max(1).optional().default(0.7)
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
// ============================================================================
|
|
74
|
+
// Code Standards
|
|
75
|
+
// ============================================================================
|
|
76
|
+
|
|
77
|
+
export const GetCodeStandardsSchema = z.object({
|
|
78
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
79
|
+
language: z.string().optional()
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Progress Tracking
|
|
84
|
+
// ============================================================================
|
|
85
|
+
|
|
86
|
+
export const UpdateProgressSchema = z.object({
|
|
87
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
88
|
+
completed_task: z.string().min(1, 'completed_task is required'),
|
|
89
|
+
next_steps: z.string().min(1, 'next_steps is required'),
|
|
90
|
+
notes: z.string().optional()
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
// ============================================================================
|
|
94
|
+
// Patterns & Corrections
|
|
95
|
+
// ============================================================================
|
|
96
|
+
|
|
97
|
+
export const RecognizePatternSchema = z.object({
|
|
98
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
99
|
+
pattern_type: z.enum(['solution', 'anti-pattern', 'best-practice', 'common-issue']),
|
|
100
|
+
description: z.string().min(1, 'description is required'),
|
|
101
|
+
example: z.string().optional(),
|
|
102
|
+
confidence: z.number().min(0).max(1).optional().default(0.8),
|
|
103
|
+
context: z.string().optional()
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
export const RecordCorrectionSchema = z.object({
|
|
107
|
+
project_name: z.string().min(1, 'project_name is required'),
|
|
108
|
+
original: z.string().min(1, 'original is required'),
|
|
109
|
+
correction: z.string().min(1, 'correction is required'),
|
|
110
|
+
reasoning: z.string().min(1, 'reasoning is required'),
|
|
111
|
+
context: z.string().optional(),
|
|
112
|
+
confidence: z.number().min(0).max(1).optional().default(0.9)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
export const GetPatternsSchema = z.object({
|
|
116
|
+
project_name: z.string().optional(),
|
|
117
|
+
pattern_type: z.enum(['solution', 'anti-pattern', 'best-practice', 'common-issue']).optional(),
|
|
118
|
+
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
119
|
+
query: z.string().optional()
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
export const GetCorrectionsSchema = z.object({
|
|
123
|
+
project_name: z.string().optional(),
|
|
124
|
+
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
125
|
+
query: z.string().optional()
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
// ============================================================================
|
|
129
|
+
// Phase 12 Status
|
|
130
|
+
// ============================================================================
|
|
131
|
+
|
|
132
|
+
export const GetPhase12StatusSchema = z.object({})
|
|
133
|
+
|
|
134
|
+
// ============================================================================
|
|
135
|
+
// Phase 13 Retrieval Feedback
|
|
136
|
+
// ============================================================================
|
|
137
|
+
|
|
138
|
+
export const RateMemorySchema = z.object({
|
|
139
|
+
memory_id: z.string().min(1, 'memory_id is required'),
|
|
140
|
+
rating: z.number().int().min(1).max(5) as z.ZodType<1 | 2 | 3 | 4 | 5>,
|
|
141
|
+
query: z.string().min(1, 'query is required'),
|
|
142
|
+
was_used: z.boolean().optional().default(true),
|
|
143
|
+
feedback_text: z.string().optional(),
|
|
144
|
+
project_name: z.string().optional()
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
// ============================================================================
|
|
148
|
+
// Phase 14 Knowledge Graph & Episodic Memory
|
|
149
|
+
// ============================================================================
|
|
150
|
+
|
|
151
|
+
export const SearchKnowledgeGraphSchema = z.object({
|
|
152
|
+
query: z.string().optional(),
|
|
153
|
+
node_type: z.enum(['project', 'technology', 'concept', 'person', 'file', 'decision', 'pattern', 'correction', 'date']).optional(),
|
|
154
|
+
start_node_id: z.string().optional(),
|
|
155
|
+
hops: z.number().int().min(1).max(10).optional().default(2),
|
|
156
|
+
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
export const GetEpisodeSchema = z.object({
|
|
160
|
+
episode_id: z.string().optional(),
|
|
161
|
+
project_name: z.string().optional()
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
export const ListEpisodesSchema = z.object({
|
|
165
|
+
project_name: z.string().optional(),
|
|
166
|
+
limit: z.number().int().min(1).max(100).optional().default(10),
|
|
167
|
+
status: z.enum(['active', 'completed']).optional()
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
// ============================================================================
|
|
171
|
+
// Phase 15 - Advanced Intelligence & Temporal Reasoning
|
|
172
|
+
// ============================================================================
|
|
173
|
+
|
|
174
|
+
export const GetDecisionTimelineSchema = z.object({
|
|
175
|
+
project_name: z.string().optional(),
|
|
176
|
+
topic: z.string().optional(),
|
|
177
|
+
time_range: z.string().optional(),
|
|
178
|
+
limit: z.number().int().min(1).max(200).optional().default(50)
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
export const AnalyzeDecisionEvolutionSchema = z.object({
|
|
182
|
+
topic: z.string().min(1, 'topic is required'),
|
|
183
|
+
project_name: z.string().optional(),
|
|
184
|
+
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
export const DetectTrendsSchema = z.object({
|
|
188
|
+
project_name: z.string().optional(),
|
|
189
|
+
period_days: z.number().int().min(1).max(3650).optional().default(90),
|
|
190
|
+
min_occurrences: z.number().int().min(1).optional().default(2),
|
|
191
|
+
limit: z.number().int().min(1).max(100).optional().default(20)
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
export const WhatIfAnalysisSchema = z.object({
|
|
195
|
+
change: z.string().min(1, 'change description is required'),
|
|
196
|
+
project_name: z.string().optional(),
|
|
197
|
+
max_results: z.number().int().min(1).max(100).optional().default(20)
|
|
198
|
+
})
|
|
199
|
+
|
|
200
|
+
export const GetRecommendationsSchema = z.object({
|
|
201
|
+
query: z.string().min(1, 'query is required'),
|
|
202
|
+
project_name: z.string().optional(),
|
|
203
|
+
limit: z.number().int().min(1).max(50).optional().default(10)
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
export const FindCrossProjectPatternsSchema = z.object({
|
|
207
|
+
min_projects: z.number().int().min(1).max(50).optional().default(2),
|
|
208
|
+
limit: z.number().int().min(1).max(100).optional().default(20),
|
|
209
|
+
query: z.string().optional()
|
|
210
|
+
})
|
|
211
|
+
|
|
212
|
+
// ============================================================================
|
|
213
|
+
// Phase 16 - Unified Brain Tool
|
|
214
|
+
// ============================================================================
|
|
215
|
+
|
|
216
|
+
export const BrainSchema = z.object({
|
|
217
|
+
message: z.string().min(1, 'message is required'),
|
|
218
|
+
project: z.string().optional()
|
|
219
|
+
})
|
|
220
|
+
|
|
221
|
+
// ============================================================================
|
|
222
|
+
// Type exports for validated inputs
|
|
223
|
+
// ============================================================================
|
|
224
|
+
|
|
225
|
+
export type ValidatedGetProjectContext = z.infer<typeof GetProjectContextSchema>
|
|
226
|
+
export type ValidatedListProjects = z.infer<typeof ListProjectsSchema>
|
|
227
|
+
export type ValidatedCreateProject = z.infer<typeof CreateProjectSchema>
|
|
228
|
+
export type ValidatedInitProject = z.infer<typeof InitProjectSchema>
|
|
229
|
+
export type ValidatedRememberDecision = z.infer<typeof RememberDecisionSchema>
|
|
230
|
+
export type ValidatedRecallSimilar = z.infer<typeof RecallSimilarSchema>
|
|
231
|
+
export type ValidatedSmartContext = z.infer<typeof SmartContextSchema>
|
|
232
|
+
export type ValidatedAutoRemember = z.infer<typeof AutoRememberSchema>
|
|
233
|
+
export type ValidatedGetCodeStandards = z.infer<typeof GetCodeStandardsSchema>
|
|
234
|
+
export type ValidatedUpdateProgress = z.infer<typeof UpdateProgressSchema>
|
|
235
|
+
export type ValidatedRecognizePattern = z.infer<typeof RecognizePatternSchema>
|
|
236
|
+
export type ValidatedRecordCorrection = z.infer<typeof RecordCorrectionSchema>
|
|
237
|
+
export type ValidatedGetPatterns = z.infer<typeof GetPatternsSchema>
|
|
238
|
+
export type ValidatedGetCorrections = z.infer<typeof GetCorrectionsSchema>
|
|
239
|
+
export type ValidatedRateMemory = z.infer<typeof RateMemorySchema>
|
|
240
|
+
export type ValidatedSearchKnowledgeGraph = z.infer<typeof SearchKnowledgeGraphSchema>
|
|
241
|
+
export type ValidatedGetEpisode = z.infer<typeof GetEpisodeSchema>
|
|
242
|
+
export type ValidatedListEpisodes = z.infer<typeof ListEpisodesSchema>
|
|
243
|
+
|
|
244
|
+
// Phase 15
|
|
245
|
+
export type ValidatedGetDecisionTimeline = z.infer<typeof GetDecisionTimelineSchema>
|
|
246
|
+
export type ValidatedAnalyzeDecisionEvolution = z.infer<typeof AnalyzeDecisionEvolutionSchema>
|
|
247
|
+
export type ValidatedDetectTrends = z.infer<typeof DetectTrendsSchema>
|
|
248
|
+
export type ValidatedWhatIfAnalysis = z.infer<typeof WhatIfAnalysisSchema>
|
|
249
|
+
export type ValidatedGetRecommendations = z.infer<typeof GetRecommendationsSchema>
|
|
250
|
+
export type ValidatedFindCrossProjectPatterns = z.infer<typeof FindCrossProjectPatternsSchema>
|
|
251
|
+
|
|
252
|
+
// Phase 16
|
|
253
|
+
export type ValidatedBrain = z.infer<typeof BrainSchema>
|