claude-brain 0.14.2 → 0.14.4
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 +11 -11
- package/bunfig.toml +8 -8
- package/package.json +80 -80
- 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/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 +202 -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/serve.ts +167 -167
- package/src/cli/commands/start.ts +42 -42
- package/src/cli/commands/uninstall-mcp.ts +41 -41
- package/src/cli/commands/update.ts +121 -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 +112 -112
- package/src/hooks/capture.ts +168 -168
- 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 +191 -194
- package/src/hooks/passive-classifier.ts +366 -366
- package/src/hooks/queue.ts +129 -129
- package/src/hooks/session-tracker.ts +275 -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 +153 -153
- 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 +436 -436
- package/src/routing/response-filter.ts +258 -254
- package/src/routing/router.ts +1322 -1314
- package/src/routing/search-engine.ts +475 -475
- package/src/routing/types.ts +94 -84
- 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 -124
- 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/context/types.ts
CHANGED
|
@@ -1,252 +1,252 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Management System Types
|
|
3
|
-
* Phase 5: Intelligent context assembly for Claude Brain
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* A single context layer with priority
|
|
8
|
-
*/
|
|
9
|
-
export interface ContextLayer {
|
|
10
|
-
level: 'global' | 'project' | 'file' | 'function'
|
|
11
|
-
priority: number
|
|
12
|
-
content: Record<string, unknown>
|
|
13
|
-
metadata: ContextMetadata
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Metadata for context entries
|
|
18
|
-
*/
|
|
19
|
-
export interface ContextMetadata {
|
|
20
|
-
source: string
|
|
21
|
-
timestamp: Date
|
|
22
|
-
version: number
|
|
23
|
-
tags: string[]
|
|
24
|
-
relevance?: number
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Global context shared across all projects
|
|
29
|
-
*/
|
|
30
|
-
export interface GlobalContext {
|
|
31
|
-
standards: CodeStandards
|
|
32
|
-
patterns: DesignPatterns
|
|
33
|
-
bestPractices: BestPractices
|
|
34
|
-
commonPitfalls: string[]
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Project-specific context
|
|
39
|
-
*/
|
|
40
|
-
export interface ProjectContext {
|
|
41
|
-
name: string
|
|
42
|
-
description: string
|
|
43
|
-
techStack: string[]
|
|
44
|
-
architecture: string
|
|
45
|
-
goals: string[]
|
|
46
|
-
constraints: string[]
|
|
47
|
-
currentPhase: string
|
|
48
|
-
progress: ProgressState
|
|
49
|
-
decisions: DecisionSummary[]
|
|
50
|
-
standards: CodeStandards
|
|
51
|
-
teamPreferences: Record<string, unknown>
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* File-level context
|
|
56
|
-
*/
|
|
57
|
-
export interface FileContext {
|
|
58
|
-
path: string
|
|
59
|
-
purpose: string
|
|
60
|
-
dependencies: string[]
|
|
61
|
-
relatedFiles: string[]
|
|
62
|
-
lastModified: Date
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Complete code standards definition
|
|
67
|
-
*/
|
|
68
|
-
export interface CodeStandards {
|
|
69
|
-
languages: LanguageStandards[]
|
|
70
|
-
frameworks: FrameworkStandards[]
|
|
71
|
-
naming: NamingConventions
|
|
72
|
-
formatting: FormattingRules
|
|
73
|
-
testing: TestingStandards
|
|
74
|
-
documentation: DocumentationStandards
|
|
75
|
-
security: SecurityStandards
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Language-specific coding standards
|
|
80
|
-
*/
|
|
81
|
-
export interface LanguageStandards {
|
|
82
|
-
language: string
|
|
83
|
-
version: string
|
|
84
|
-
style: string
|
|
85
|
-
linting: Record<string, unknown>
|
|
86
|
-
conventions: string[]
|
|
87
|
-
antiPatterns: string[]
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Framework-specific standards
|
|
92
|
-
*/
|
|
93
|
-
export interface FrameworkStandards {
|
|
94
|
-
framework: string
|
|
95
|
-
version: string
|
|
96
|
-
patterns: string[]
|
|
97
|
-
bestPractices: string[]
|
|
98
|
-
conventions: string[]
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Project progress tracking
|
|
103
|
-
*/
|
|
104
|
-
export interface ProgressState {
|
|
105
|
-
currentPhase: string
|
|
106
|
-
completionPercentage: number
|
|
107
|
-
completedTasks: TaskSummary[]
|
|
108
|
-
currentTasks: TaskSummary[]
|
|
109
|
-
nextSteps: string[]
|
|
110
|
-
blockers: Blocker[]
|
|
111
|
-
velocity: number
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Task summary for progress tracking
|
|
116
|
-
*/
|
|
117
|
-
export interface TaskSummary {
|
|
118
|
-
id: string
|
|
119
|
-
title: string
|
|
120
|
-
status: string
|
|
121
|
-
completedAt?: Date
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Project blocker
|
|
126
|
-
*/
|
|
127
|
-
export interface Blocker {
|
|
128
|
-
description: string
|
|
129
|
-
severity: 'low' | 'medium' | 'high' | 'critical'
|
|
130
|
-
since: Date
|
|
131
|
-
owner?: string
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Decision summary for context
|
|
136
|
-
*/
|
|
137
|
-
export interface DecisionSummary {
|
|
138
|
-
id: string
|
|
139
|
-
title: string
|
|
140
|
-
decision: string
|
|
141
|
-
date: Date
|
|
142
|
-
impact: string
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Completely assembled context for a project
|
|
147
|
-
*/
|
|
148
|
-
export interface AssembledContext {
|
|
149
|
-
project: ProjectContext
|
|
150
|
-
global: GlobalContext
|
|
151
|
-
memories: MemoryContext[]
|
|
152
|
-
progress: ProgressState
|
|
153
|
-
standards: CodeStandards
|
|
154
|
-
metadata: {
|
|
155
|
-
assembledAt: Date
|
|
156
|
-
tokenCount: number
|
|
157
|
-
sources: string[]
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Memory context with relevance score
|
|
163
|
-
*/
|
|
164
|
-
export interface MemoryContext {
|
|
165
|
-
content: string
|
|
166
|
-
similarity: number
|
|
167
|
-
date: Date
|
|
168
|
-
tags: string[]
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Options for context assembly
|
|
173
|
-
*/
|
|
174
|
-
export interface ContextOptions {
|
|
175
|
-
includeMemories: boolean
|
|
176
|
-
includeProgress: boolean
|
|
177
|
-
includeStandards: boolean
|
|
178
|
-
maxTokens?: number
|
|
179
|
-
relevanceThreshold?: number
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Design patterns and their usage
|
|
184
|
-
*/
|
|
185
|
-
export interface DesignPatterns {
|
|
186
|
-
[patternName: string]: {
|
|
187
|
-
description: string
|
|
188
|
-
whenToUse: string[]
|
|
189
|
-
examples: string[]
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Best practices organized by category
|
|
195
|
-
*/
|
|
196
|
-
export interface BestPractices {
|
|
197
|
-
[category: string]: string[]
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Naming conventions
|
|
202
|
-
*/
|
|
203
|
-
export interface NamingConventions {
|
|
204
|
-
variables: string
|
|
205
|
-
functions: string
|
|
206
|
-
classes: string
|
|
207
|
-
constants: string
|
|
208
|
-
interfaces: string
|
|
209
|
-
types: string
|
|
210
|
-
files: string
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Formatting rules
|
|
215
|
-
*/
|
|
216
|
-
export interface FormattingRules {
|
|
217
|
-
indentSize: number
|
|
218
|
-
indentStyle: 'spaces' | 'tabs'
|
|
219
|
-
maxLineLength: number
|
|
220
|
-
trailingCommas: boolean
|
|
221
|
-
semicolons: boolean
|
|
222
|
-
quotes: 'single' | 'double' | 'backtick'
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Testing standards
|
|
227
|
-
*/
|
|
228
|
-
export interface TestingStandards {
|
|
229
|
-
framework: string
|
|
230
|
-
coverageTarget: number
|
|
231
|
-
testFilePattern: string
|
|
232
|
-
namingConvention: string
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Documentation standards
|
|
237
|
-
*/
|
|
238
|
-
export interface DocumentationStandards {
|
|
239
|
-
jsdoc: boolean
|
|
240
|
-
readmeSections: string[]
|
|
241
|
-
apiDocs: boolean
|
|
242
|
-
inlineComments: boolean
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Security standards
|
|
247
|
-
*/
|
|
248
|
-
export interface SecurityStandards {
|
|
249
|
-
auditCommands: string[]
|
|
250
|
-
sensitivePatterns: string[]
|
|
251
|
-
dependencyChecks: boolean
|
|
252
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Context Management System Types
|
|
3
|
+
* Phase 5: Intelligent context assembly for Claude Brain
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A single context layer with priority
|
|
8
|
+
*/
|
|
9
|
+
export interface ContextLayer {
|
|
10
|
+
level: 'global' | 'project' | 'file' | 'function'
|
|
11
|
+
priority: number
|
|
12
|
+
content: Record<string, unknown>
|
|
13
|
+
metadata: ContextMetadata
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Metadata for context entries
|
|
18
|
+
*/
|
|
19
|
+
export interface ContextMetadata {
|
|
20
|
+
source: string
|
|
21
|
+
timestamp: Date
|
|
22
|
+
version: number
|
|
23
|
+
tags: string[]
|
|
24
|
+
relevance?: number
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Global context shared across all projects
|
|
29
|
+
*/
|
|
30
|
+
export interface GlobalContext {
|
|
31
|
+
standards: CodeStandards
|
|
32
|
+
patterns: DesignPatterns
|
|
33
|
+
bestPractices: BestPractices
|
|
34
|
+
commonPitfalls: string[]
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Project-specific context
|
|
39
|
+
*/
|
|
40
|
+
export interface ProjectContext {
|
|
41
|
+
name: string
|
|
42
|
+
description: string
|
|
43
|
+
techStack: string[]
|
|
44
|
+
architecture: string
|
|
45
|
+
goals: string[]
|
|
46
|
+
constraints: string[]
|
|
47
|
+
currentPhase: string
|
|
48
|
+
progress: ProgressState
|
|
49
|
+
decisions: DecisionSummary[]
|
|
50
|
+
standards: CodeStandards
|
|
51
|
+
teamPreferences: Record<string, unknown>
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* File-level context
|
|
56
|
+
*/
|
|
57
|
+
export interface FileContext {
|
|
58
|
+
path: string
|
|
59
|
+
purpose: string
|
|
60
|
+
dependencies: string[]
|
|
61
|
+
relatedFiles: string[]
|
|
62
|
+
lastModified: Date
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Complete code standards definition
|
|
67
|
+
*/
|
|
68
|
+
export interface CodeStandards {
|
|
69
|
+
languages: LanguageStandards[]
|
|
70
|
+
frameworks: FrameworkStandards[]
|
|
71
|
+
naming: NamingConventions
|
|
72
|
+
formatting: FormattingRules
|
|
73
|
+
testing: TestingStandards
|
|
74
|
+
documentation: DocumentationStandards
|
|
75
|
+
security: SecurityStandards
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Language-specific coding standards
|
|
80
|
+
*/
|
|
81
|
+
export interface LanguageStandards {
|
|
82
|
+
language: string
|
|
83
|
+
version: string
|
|
84
|
+
style: string
|
|
85
|
+
linting: Record<string, unknown>
|
|
86
|
+
conventions: string[]
|
|
87
|
+
antiPatterns: string[]
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Framework-specific standards
|
|
92
|
+
*/
|
|
93
|
+
export interface FrameworkStandards {
|
|
94
|
+
framework: string
|
|
95
|
+
version: string
|
|
96
|
+
patterns: string[]
|
|
97
|
+
bestPractices: string[]
|
|
98
|
+
conventions: string[]
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Project progress tracking
|
|
103
|
+
*/
|
|
104
|
+
export interface ProgressState {
|
|
105
|
+
currentPhase: string
|
|
106
|
+
completionPercentage: number
|
|
107
|
+
completedTasks: TaskSummary[]
|
|
108
|
+
currentTasks: TaskSummary[]
|
|
109
|
+
nextSteps: string[]
|
|
110
|
+
blockers: Blocker[]
|
|
111
|
+
velocity: number
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Task summary for progress tracking
|
|
116
|
+
*/
|
|
117
|
+
export interface TaskSummary {
|
|
118
|
+
id: string
|
|
119
|
+
title: string
|
|
120
|
+
status: string
|
|
121
|
+
completedAt?: Date
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Project blocker
|
|
126
|
+
*/
|
|
127
|
+
export interface Blocker {
|
|
128
|
+
description: string
|
|
129
|
+
severity: 'low' | 'medium' | 'high' | 'critical'
|
|
130
|
+
since: Date
|
|
131
|
+
owner?: string
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Decision summary for context
|
|
136
|
+
*/
|
|
137
|
+
export interface DecisionSummary {
|
|
138
|
+
id: string
|
|
139
|
+
title: string
|
|
140
|
+
decision: string
|
|
141
|
+
date: Date
|
|
142
|
+
impact: string
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Completely assembled context for a project
|
|
147
|
+
*/
|
|
148
|
+
export interface AssembledContext {
|
|
149
|
+
project: ProjectContext
|
|
150
|
+
global: GlobalContext
|
|
151
|
+
memories: MemoryContext[]
|
|
152
|
+
progress: ProgressState
|
|
153
|
+
standards: CodeStandards
|
|
154
|
+
metadata: {
|
|
155
|
+
assembledAt: Date
|
|
156
|
+
tokenCount: number
|
|
157
|
+
sources: string[]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Memory context with relevance score
|
|
163
|
+
*/
|
|
164
|
+
export interface MemoryContext {
|
|
165
|
+
content: string
|
|
166
|
+
similarity: number
|
|
167
|
+
date: Date
|
|
168
|
+
tags: string[]
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Options for context assembly
|
|
173
|
+
*/
|
|
174
|
+
export interface ContextOptions {
|
|
175
|
+
includeMemories: boolean
|
|
176
|
+
includeProgress: boolean
|
|
177
|
+
includeStandards: boolean
|
|
178
|
+
maxTokens?: number
|
|
179
|
+
relevanceThreshold?: number
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Design patterns and their usage
|
|
184
|
+
*/
|
|
185
|
+
export interface DesignPatterns {
|
|
186
|
+
[patternName: string]: {
|
|
187
|
+
description: string
|
|
188
|
+
whenToUse: string[]
|
|
189
|
+
examples: string[]
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Best practices organized by category
|
|
195
|
+
*/
|
|
196
|
+
export interface BestPractices {
|
|
197
|
+
[category: string]: string[]
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Naming conventions
|
|
202
|
+
*/
|
|
203
|
+
export interface NamingConventions {
|
|
204
|
+
variables: string
|
|
205
|
+
functions: string
|
|
206
|
+
classes: string
|
|
207
|
+
constants: string
|
|
208
|
+
interfaces: string
|
|
209
|
+
types: string
|
|
210
|
+
files: string
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Formatting rules
|
|
215
|
+
*/
|
|
216
|
+
export interface FormattingRules {
|
|
217
|
+
indentSize: number
|
|
218
|
+
indentStyle: 'spaces' | 'tabs'
|
|
219
|
+
maxLineLength: number
|
|
220
|
+
trailingCommas: boolean
|
|
221
|
+
semicolons: boolean
|
|
222
|
+
quotes: 'single' | 'double' | 'backtick'
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Testing standards
|
|
227
|
+
*/
|
|
228
|
+
export interface TestingStandards {
|
|
229
|
+
framework: string
|
|
230
|
+
coverageTarget: number
|
|
231
|
+
testFilePattern: string
|
|
232
|
+
namingConvention: string
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Documentation standards
|
|
237
|
+
*/
|
|
238
|
+
export interface DocumentationStandards {
|
|
239
|
+
jsdoc: boolean
|
|
240
|
+
readmeSections: string[]
|
|
241
|
+
apiDocs: boolean
|
|
242
|
+
inlineComments: boolean
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Security standards
|
|
247
|
+
*/
|
|
248
|
+
export interface SecurityStandards {
|
|
249
|
+
auditCommands: string[]
|
|
250
|
+
sensitivePatterns: string[]
|
|
251
|
+
dependencyChecks: boolean
|
|
252
|
+
}
|
package/src/context/validator.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Schema Validator
|
|
3
|
-
* Validates context structures using Zod schemas
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { z } from 'zod'
|
|
7
|
-
|
|
8
|
-
export const ProjectContextSchema = z.object({
|
|
9
|
-
name: z.string().min(1),
|
|
10
|
-
description: z.string(),
|
|
11
|
-
techStack: z.array(z.string()),
|
|
12
|
-
architecture: z.string(),
|
|
13
|
-
goals: z.array(z.string()),
|
|
14
|
-
constraints: z.array(z.string()),
|
|
15
|
-
currentPhase: z.string(),
|
|
16
|
-
progress: z.object({
|
|
17
|
-
currentPhase: z.string(),
|
|
18
|
-
completionPercentage: z.number().min(0).max(100),
|
|
19
|
-
completedTasks: z.array(z.any()),
|
|
20
|
-
currentTasks: z.array(z.any()),
|
|
21
|
-
nextSteps: z.array(z.string()),
|
|
22
|
-
blockers: z.array(z.any()),
|
|
23
|
-
velocity: z.number()
|
|
24
|
-
}),
|
|
25
|
-
decisions: z.array(z.any()),
|
|
26
|
-
standards: z.any(),
|
|
27
|
-
teamPreferences: z.record(z.any())
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
export const CodeStandardsSchema = z.object({
|
|
31
|
-
languages: z.array(z.any()),
|
|
32
|
-
frameworks: z.array(z.any()),
|
|
33
|
-
naming: z.any(),
|
|
34
|
-
formatting: z.any(),
|
|
35
|
-
testing: z.any(),
|
|
36
|
-
documentation: z.any(),
|
|
37
|
-
security: z.any()
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
export class ContextValidator {
|
|
41
|
-
static validateProjectContext(data: unknown): boolean {
|
|
42
|
-
try {
|
|
43
|
-
ProjectContextSchema.parse(data)
|
|
44
|
-
return true
|
|
45
|
-
} catch {
|
|
46
|
-
return false
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
static validateCodeStandards(data: unknown): boolean {
|
|
51
|
-
try {
|
|
52
|
-
CodeStandardsSchema.parse(data)
|
|
53
|
-
return true
|
|
54
|
-
} catch {
|
|
55
|
-
return false
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Context Schema Validator
|
|
3
|
+
* Validates context structures using Zod schemas
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
|
|
8
|
+
export const ProjectContextSchema = z.object({
|
|
9
|
+
name: z.string().min(1),
|
|
10
|
+
description: z.string(),
|
|
11
|
+
techStack: z.array(z.string()),
|
|
12
|
+
architecture: z.string(),
|
|
13
|
+
goals: z.array(z.string()),
|
|
14
|
+
constraints: z.array(z.string()),
|
|
15
|
+
currentPhase: z.string(),
|
|
16
|
+
progress: z.object({
|
|
17
|
+
currentPhase: z.string(),
|
|
18
|
+
completionPercentage: z.number().min(0).max(100),
|
|
19
|
+
completedTasks: z.array(z.any()),
|
|
20
|
+
currentTasks: z.array(z.any()),
|
|
21
|
+
nextSteps: z.array(z.string()),
|
|
22
|
+
blockers: z.array(z.any()),
|
|
23
|
+
velocity: z.number()
|
|
24
|
+
}),
|
|
25
|
+
decisions: z.array(z.any()),
|
|
26
|
+
standards: z.any(),
|
|
27
|
+
teamPreferences: z.record(z.any())
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
export const CodeStandardsSchema = z.object({
|
|
31
|
+
languages: z.array(z.any()),
|
|
32
|
+
frameworks: z.array(z.any()),
|
|
33
|
+
naming: z.any(),
|
|
34
|
+
formatting: z.any(),
|
|
35
|
+
testing: z.any(),
|
|
36
|
+
documentation: z.any(),
|
|
37
|
+
security: z.any()
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
export class ContextValidator {
|
|
41
|
+
static validateProjectContext(data: unknown): boolean {
|
|
42
|
+
try {
|
|
43
|
+
ProjectContextSchema.parse(data)
|
|
44
|
+
return true
|
|
45
|
+
} catch {
|
|
46
|
+
return false
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static validateCodeStandards(data: unknown): boolean {
|
|
51
|
+
try {
|
|
52
|
+
CodeStandardsSchema.parse(data)
|
|
53
|
+
return true
|
|
54
|
+
} catch {
|
|
55
|
+
return false
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|