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/vault/templates.ts
CHANGED
|
@@ -1,186 +1,186 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vault File Templates
|
|
3
|
-
* Template definitions for project files with YAML frontmatter
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export const TEMPLATES = {
|
|
7
|
-
PROJECT_CONTEXT: `---
|
|
8
|
-
type: project-context
|
|
9
|
-
project: {{PROJECT_NAME}}
|
|
10
|
-
status: planning
|
|
11
|
-
created: {{DATE}}
|
|
12
|
-
updated: {{DATE}}
|
|
13
|
-
tech_stack: []
|
|
14
|
-
tags: []
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# {{PROJECT_TITLE}}
|
|
18
|
-
|
|
19
|
-
## Overview
|
|
20
|
-
<!-- Project description and goals -->
|
|
21
|
-
|
|
22
|
-
## Tech Stack
|
|
23
|
-
<!-- Technologies and frameworks used -->
|
|
24
|
-
|
|
25
|
-
## Architecture
|
|
26
|
-
<!-- High-level architecture overview -->
|
|
27
|
-
|
|
28
|
-
## Key Decisions
|
|
29
|
-
<!-- Link to major architectural decisions -->
|
|
30
|
-
`,
|
|
31
|
-
|
|
32
|
-
DECISIONS_LOG: `---
|
|
33
|
-
type: decision-log
|
|
34
|
-
project: {{PROJECT_NAME}}
|
|
35
|
-
decision_count: 0
|
|
36
|
-
last_updated: {{DATE}}
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
# Decision Log: {{PROJECT_TITLE}}
|
|
40
|
-
|
|
41
|
-
<!-- Decision entries will be appended below -->
|
|
42
|
-
`,
|
|
43
|
-
|
|
44
|
-
PROGRESS_TRACKER: `---
|
|
45
|
-
type: progress-tracker
|
|
46
|
-
project: {{PROJECT_NAME}}
|
|
47
|
-
status: in-progress
|
|
48
|
-
current_phase: setup
|
|
49
|
-
completion_percentage: 0
|
|
50
|
-
last_updated: {{DATE}}
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
# Progress: {{PROJECT_TITLE}}
|
|
54
|
-
|
|
55
|
-
## Current Status
|
|
56
|
-
**Phase:** Setup
|
|
57
|
-
**Status:** In Progress
|
|
58
|
-
**Last Updated:** {{DATE}}
|
|
59
|
-
|
|
60
|
-
## Completed Tasks
|
|
61
|
-
<!-- Tasks will be appended here -->
|
|
62
|
-
|
|
63
|
-
## Next Steps
|
|
64
|
-
<!-- Next steps will be updated here -->
|
|
65
|
-
|
|
66
|
-
## Blockers
|
|
67
|
-
<!-- Any blockers will be noted here -->
|
|
68
|
-
`,
|
|
69
|
-
|
|
70
|
-
CODING_STANDARDS: `---
|
|
71
|
-
type: coding-standards
|
|
72
|
-
project: {{PROJECT_NAME}}
|
|
73
|
-
languages: []
|
|
74
|
-
frameworks: []
|
|
75
|
-
last_updated: {{DATE}}
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
# Coding Standards: {{PROJECT_TITLE}}
|
|
79
|
-
|
|
80
|
-
## General Principles
|
|
81
|
-
<!-- General coding principles -->
|
|
82
|
-
|
|
83
|
-
## Language-Specific Standards
|
|
84
|
-
<!-- Standards by language -->
|
|
85
|
-
|
|
86
|
-
## Framework-Specific Patterns
|
|
87
|
-
<!-- Framework-specific patterns and conventions -->
|
|
88
|
-
|
|
89
|
-
## Common Anti-Patterns to Avoid
|
|
90
|
-
<!-- Things to avoid -->
|
|
91
|
-
`,
|
|
92
|
-
|
|
93
|
-
PATTERNS_LOG: `---
|
|
94
|
-
type: pattern-log
|
|
95
|
-
project: {{PROJECT_NAME}}
|
|
96
|
-
pattern_count: 0
|
|
97
|
-
last_updated: {{DATE}}
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
# Patterns: {{PROJECT_TITLE}}
|
|
101
|
-
|
|
102
|
-
<!-- Pattern entries will be appended below -->
|
|
103
|
-
`,
|
|
104
|
-
|
|
105
|
-
CORRECTIONS_LOG: `---
|
|
106
|
-
type: correction-log
|
|
107
|
-
project: {{PROJECT_NAME}}
|
|
108
|
-
correction_count: 0
|
|
109
|
-
last_updated: {{DATE}}
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
# Corrections: {{PROJECT_TITLE}}
|
|
113
|
-
|
|
114
|
-
<!-- Correction entries will be appended below -->
|
|
115
|
-
`,
|
|
116
|
-
|
|
117
|
-
DECISION_ENTRY: `
|
|
118
|
-
## Decision {{DECISION_NUMBER}}: {{DECISION_TITLE}}
|
|
119
|
-
|
|
120
|
-
**Date:** {{DATE}}
|
|
121
|
-
**Status:** {{STATUS}}
|
|
122
|
-
**Context:** {{CONTEXT}}
|
|
123
|
-
|
|
124
|
-
### Decision
|
|
125
|
-
{{DECISION}}
|
|
126
|
-
|
|
127
|
-
### Consequences
|
|
128
|
-
{{CONSEQUENCES}}
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
`,
|
|
132
|
-
|
|
133
|
-
PROGRESS_ENTRY: `
|
|
134
|
-
### {{DATE}} - {{TITLE}}
|
|
135
|
-
|
|
136
|
-
{{DESCRIPTION}}
|
|
137
|
-
|
|
138
|
-
**Status:** {{STATUS}}
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
`
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Render a template with variable substitution
|
|
146
|
-
*/
|
|
147
|
-
export function renderTemplate(
|
|
148
|
-
template: string,
|
|
149
|
-
variables: Record<string, string>
|
|
150
|
-
): string {
|
|
151
|
-
let result = template
|
|
152
|
-
for (const [key, value] of Object.entries(variables)) {
|
|
153
|
-
result = result.replace(new RegExp(`{{${key}}}`, 'g'), value)
|
|
154
|
-
}
|
|
155
|
-
return result
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Get today's date in YYYY-MM-DD format
|
|
160
|
-
*/
|
|
161
|
-
export function getTodayDate(): string {
|
|
162
|
-
const isoDate = new Date().toISOString()
|
|
163
|
-
const datePart = isoDate.split('T')[0]
|
|
164
|
-
return datePart ?? isoDate.substring(0, 10)
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Convert project name to title case
|
|
169
|
-
*/
|
|
170
|
-
export function projectNameToTitle(projectName: string): string {
|
|
171
|
-
return projectName
|
|
172
|
-
.split('-')
|
|
173
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
174
|
-
.join(' ')
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Create standard template variables for a project
|
|
179
|
-
*/
|
|
180
|
-
export function createProjectVariables(projectName: string): Record<string, string> {
|
|
181
|
-
return {
|
|
182
|
-
PROJECT_NAME: projectName,
|
|
183
|
-
PROJECT_TITLE: projectNameToTitle(projectName),
|
|
184
|
-
DATE: getTodayDate()
|
|
185
|
-
}
|
|
186
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Vault File Templates
|
|
3
|
+
* Template definitions for project files with YAML frontmatter
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export const TEMPLATES = {
|
|
7
|
+
PROJECT_CONTEXT: `---
|
|
8
|
+
type: project-context
|
|
9
|
+
project: {{PROJECT_NAME}}
|
|
10
|
+
status: planning
|
|
11
|
+
created: {{DATE}}
|
|
12
|
+
updated: {{DATE}}
|
|
13
|
+
tech_stack: []
|
|
14
|
+
tags: []
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# {{PROJECT_TITLE}}
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
<!-- Project description and goals -->
|
|
21
|
+
|
|
22
|
+
## Tech Stack
|
|
23
|
+
<!-- Technologies and frameworks used -->
|
|
24
|
+
|
|
25
|
+
## Architecture
|
|
26
|
+
<!-- High-level architecture overview -->
|
|
27
|
+
|
|
28
|
+
## Key Decisions
|
|
29
|
+
<!-- Link to major architectural decisions -->
|
|
30
|
+
`,
|
|
31
|
+
|
|
32
|
+
DECISIONS_LOG: `---
|
|
33
|
+
type: decision-log
|
|
34
|
+
project: {{PROJECT_NAME}}
|
|
35
|
+
decision_count: 0
|
|
36
|
+
last_updated: {{DATE}}
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
# Decision Log: {{PROJECT_TITLE}}
|
|
40
|
+
|
|
41
|
+
<!-- Decision entries will be appended below -->
|
|
42
|
+
`,
|
|
43
|
+
|
|
44
|
+
PROGRESS_TRACKER: `---
|
|
45
|
+
type: progress-tracker
|
|
46
|
+
project: {{PROJECT_NAME}}
|
|
47
|
+
status: in-progress
|
|
48
|
+
current_phase: setup
|
|
49
|
+
completion_percentage: 0
|
|
50
|
+
last_updated: {{DATE}}
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
# Progress: {{PROJECT_TITLE}}
|
|
54
|
+
|
|
55
|
+
## Current Status
|
|
56
|
+
**Phase:** Setup
|
|
57
|
+
**Status:** In Progress
|
|
58
|
+
**Last Updated:** {{DATE}}
|
|
59
|
+
|
|
60
|
+
## Completed Tasks
|
|
61
|
+
<!-- Tasks will be appended here -->
|
|
62
|
+
|
|
63
|
+
## Next Steps
|
|
64
|
+
<!-- Next steps will be updated here -->
|
|
65
|
+
|
|
66
|
+
## Blockers
|
|
67
|
+
<!-- Any blockers will be noted here -->
|
|
68
|
+
`,
|
|
69
|
+
|
|
70
|
+
CODING_STANDARDS: `---
|
|
71
|
+
type: coding-standards
|
|
72
|
+
project: {{PROJECT_NAME}}
|
|
73
|
+
languages: []
|
|
74
|
+
frameworks: []
|
|
75
|
+
last_updated: {{DATE}}
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
# Coding Standards: {{PROJECT_TITLE}}
|
|
79
|
+
|
|
80
|
+
## General Principles
|
|
81
|
+
<!-- General coding principles -->
|
|
82
|
+
|
|
83
|
+
## Language-Specific Standards
|
|
84
|
+
<!-- Standards by language -->
|
|
85
|
+
|
|
86
|
+
## Framework-Specific Patterns
|
|
87
|
+
<!-- Framework-specific patterns and conventions -->
|
|
88
|
+
|
|
89
|
+
## Common Anti-Patterns to Avoid
|
|
90
|
+
<!-- Things to avoid -->
|
|
91
|
+
`,
|
|
92
|
+
|
|
93
|
+
PATTERNS_LOG: `---
|
|
94
|
+
type: pattern-log
|
|
95
|
+
project: {{PROJECT_NAME}}
|
|
96
|
+
pattern_count: 0
|
|
97
|
+
last_updated: {{DATE}}
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
# Patterns: {{PROJECT_TITLE}}
|
|
101
|
+
|
|
102
|
+
<!-- Pattern entries will be appended below -->
|
|
103
|
+
`,
|
|
104
|
+
|
|
105
|
+
CORRECTIONS_LOG: `---
|
|
106
|
+
type: correction-log
|
|
107
|
+
project: {{PROJECT_NAME}}
|
|
108
|
+
correction_count: 0
|
|
109
|
+
last_updated: {{DATE}}
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
# Corrections: {{PROJECT_TITLE}}
|
|
113
|
+
|
|
114
|
+
<!-- Correction entries will be appended below -->
|
|
115
|
+
`,
|
|
116
|
+
|
|
117
|
+
DECISION_ENTRY: `
|
|
118
|
+
## Decision {{DECISION_NUMBER}}: {{DECISION_TITLE}}
|
|
119
|
+
|
|
120
|
+
**Date:** {{DATE}}
|
|
121
|
+
**Status:** {{STATUS}}
|
|
122
|
+
**Context:** {{CONTEXT}}
|
|
123
|
+
|
|
124
|
+
### Decision
|
|
125
|
+
{{DECISION}}
|
|
126
|
+
|
|
127
|
+
### Consequences
|
|
128
|
+
{{CONSEQUENCES}}
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
`,
|
|
132
|
+
|
|
133
|
+
PROGRESS_ENTRY: `
|
|
134
|
+
### {{DATE}} - {{TITLE}}
|
|
135
|
+
|
|
136
|
+
{{DESCRIPTION}}
|
|
137
|
+
|
|
138
|
+
**Status:** {{STATUS}}
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
`
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Render a template with variable substitution
|
|
146
|
+
*/
|
|
147
|
+
export function renderTemplate(
|
|
148
|
+
template: string,
|
|
149
|
+
variables: Record<string, string>
|
|
150
|
+
): string {
|
|
151
|
+
let result = template
|
|
152
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
153
|
+
result = result.replace(new RegExp(`{{${key}}}`, 'g'), value)
|
|
154
|
+
}
|
|
155
|
+
return result
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Get today's date in YYYY-MM-DD format
|
|
160
|
+
*/
|
|
161
|
+
export function getTodayDate(): string {
|
|
162
|
+
const isoDate = new Date().toISOString()
|
|
163
|
+
const datePart = isoDate.split('T')[0]
|
|
164
|
+
return datePart ?? isoDate.substring(0, 10)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Convert project name to title case
|
|
169
|
+
*/
|
|
170
|
+
export function projectNameToTitle(projectName: string): string {
|
|
171
|
+
return projectName
|
|
172
|
+
.split('-')
|
|
173
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
174
|
+
.join(' ')
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Create standard template variables for a project
|
|
179
|
+
*/
|
|
180
|
+
export function createProjectVariables(projectName: string): Record<string, string> {
|
|
181
|
+
return {
|
|
182
|
+
PROJECT_NAME: projectName,
|
|
183
|
+
PROJECT_TITLE: projectNameToTitle(projectName),
|
|
184
|
+
DATE: getTodayDate()
|
|
185
|
+
}
|
|
186
|
+
}
|
package/src/vault/types.ts
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vault Integration Types
|
|
3
|
-
* Type definitions for the Obsidian vault integration layer
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface VaultPaths {
|
|
7
|
-
root: string
|
|
8
|
-
projects: string
|
|
9
|
-
global: string
|
|
10
|
-
templates: string
|
|
11
|
-
memory: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface ProjectPaths {
|
|
15
|
-
root: string
|
|
16
|
-
context: string
|
|
17
|
-
decisions: string
|
|
18
|
-
progress: string
|
|
19
|
-
standards: string
|
|
20
|
-
patterns: string
|
|
21
|
-
corrections: string
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface Frontmatter {
|
|
25
|
-
type?: string
|
|
26
|
-
project?: string
|
|
27
|
-
status?: string
|
|
28
|
-
created?: string
|
|
29
|
-
updated?: string
|
|
30
|
-
tags?: string[]
|
|
31
|
-
tech_stack?: string[]
|
|
32
|
-
languages?: string[]
|
|
33
|
-
frameworks?: string[]
|
|
34
|
-
decision_count?: number
|
|
35
|
-
last_updated?: string
|
|
36
|
-
current_phase?: string
|
|
37
|
-
completion_percentage?: number
|
|
38
|
-
[key: string]: unknown
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface MarkdownFile {
|
|
42
|
-
path: string
|
|
43
|
-
frontmatter: Frontmatter
|
|
44
|
-
content: string
|
|
45
|
-
rawContent: string
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export type ProjectStatus = 'active' | 'planning' | 'archived'
|
|
49
|
-
export type ProgressStatus = 'in-progress' | 'blocked' | 'completed'
|
|
50
|
-
|
|
51
|
-
export interface ProjectMetadata {
|
|
52
|
-
name: string
|
|
53
|
-
status: ProjectStatus
|
|
54
|
-
techStack: string[]
|
|
55
|
-
tags: string[]
|
|
56
|
-
created: Date
|
|
57
|
-
updated: Date
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface VaultStructureConfig {
|
|
61
|
-
projectsDir: string
|
|
62
|
-
globalDir: string
|
|
63
|
-
templatesDir: string
|
|
64
|
-
memoryDir: string
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export interface VaultConfig {
|
|
68
|
-
root: string
|
|
69
|
-
backupDir: string
|
|
70
|
-
cacheEnabled: boolean
|
|
71
|
-
watchEnabled: boolean
|
|
72
|
-
debounceMs: number
|
|
73
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Vault Integration Types
|
|
3
|
+
* Type definitions for the Obsidian vault integration layer
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface VaultPaths {
|
|
7
|
+
root: string
|
|
8
|
+
projects: string
|
|
9
|
+
global: string
|
|
10
|
+
templates: string
|
|
11
|
+
memory: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface ProjectPaths {
|
|
15
|
+
root: string
|
|
16
|
+
context: string
|
|
17
|
+
decisions: string
|
|
18
|
+
progress: string
|
|
19
|
+
standards: string
|
|
20
|
+
patterns: string
|
|
21
|
+
corrections: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface Frontmatter {
|
|
25
|
+
type?: string
|
|
26
|
+
project?: string
|
|
27
|
+
status?: string
|
|
28
|
+
created?: string
|
|
29
|
+
updated?: string
|
|
30
|
+
tags?: string[]
|
|
31
|
+
tech_stack?: string[]
|
|
32
|
+
languages?: string[]
|
|
33
|
+
frameworks?: string[]
|
|
34
|
+
decision_count?: number
|
|
35
|
+
last_updated?: string
|
|
36
|
+
current_phase?: string
|
|
37
|
+
completion_percentage?: number
|
|
38
|
+
[key: string]: unknown
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface MarkdownFile {
|
|
42
|
+
path: string
|
|
43
|
+
frontmatter: Frontmatter
|
|
44
|
+
content: string
|
|
45
|
+
rawContent: string
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type ProjectStatus = 'active' | 'planning' | 'archived'
|
|
49
|
+
export type ProgressStatus = 'in-progress' | 'blocked' | 'completed'
|
|
50
|
+
|
|
51
|
+
export interface ProjectMetadata {
|
|
52
|
+
name: string
|
|
53
|
+
status: ProjectStatus
|
|
54
|
+
techStack: string[]
|
|
55
|
+
tags: string[]
|
|
56
|
+
created: Date
|
|
57
|
+
updated: Date
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface VaultStructureConfig {
|
|
61
|
+
projectsDir: string
|
|
62
|
+
globalDir: string
|
|
63
|
+
templatesDir: string
|
|
64
|
+
memoryDir: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface VaultConfig {
|
|
68
|
+
root: string
|
|
69
|
+
backupDir: string
|
|
70
|
+
cacheEnabled: boolean
|
|
71
|
+
watchEnabled: boolean
|
|
72
|
+
debounceMs: number
|
|
73
|
+
}
|