claude-brain 0.30.2 → 0.30.3
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 +241 -191
- package/VERSION +1 -1
- package/assets/CLAUDE-unified.md +11 -11
- package/assets/CLAUDE.md +29 -29
- package/package.json +7 -3
- 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 +531 -531
- package/src/automation/decision-detector.ts +452 -452
- 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 +210 -205
- package/src/cli/auto-setup.ts +75 -75
- package/src/cli/auto-start.ts +266 -266
- package/src/cli/bin.ts +264 -264
- package/src/cli/commands/autostart.ts +90 -90
- package/src/cli/commands/chroma.ts +578 -577
- package/src/cli/commands/export-training.ts +70 -70
- package/src/cli/commands/export.ts +130 -130
- package/src/cli/commands/git-hook.ts +183 -183
- package/src/cli/commands/hooks.ts +217 -217
- package/src/cli/commands/init.ts +123 -123
- package/src/cli/commands/install-mcp.ts +122 -111
- package/src/cli/commands/models.ts +979 -979
- package/src/cli/commands/pack.ts +200 -200
- package/src/cli/commands/refresh.ts +344 -339
- package/src/cli/commands/reindex.ts +120 -120
- package/src/cli/commands/serve.ts +466 -463
- package/src/cli/commands/start.ts +44 -44
- package/src/cli/commands/status.ts +220 -203
- package/src/cli/commands/uninstall-mcp.ts +45 -41
- package/src/cli/commands/update.ts +130 -124
- package/src/cli/migrate-chroma.ts +106 -106
- 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/code-intelligence/indexer.ts +352 -352
- package/src/code-intelligence/linker.ts +178 -178
- package/src/code-intelligence/parser.ts +484 -484
- package/src/code-intelligence/query.ts +291 -291
- package/src/code-intelligence/schema.ts +83 -83
- package/src/code-intelligence/types.ts +95 -95
- package/src/config/defaults.ts +52 -52
- package/src/config/home.ts +56 -56
- package/src/config/index.ts +5 -5
- package/src/config/loader.ts +192 -192
- package/src/config/schema.ts +446 -415
- package/src/config/validator.ts +182 -182
- package/src/context/assembler.ts +407 -400
- package/src/context/index.ts +79 -79
- package/src/context/progress-tracker.ts +174 -174
- package/src/context/standards-manager.ts +287 -287
- package/src/context/validator.ts +58 -58
- package/src/diagnostics/index.ts +122 -121
- package/src/health/index.ts +233 -232
- package/src/hooks/brain-hook.ts +134 -131
- package/src/hooks/capture.ts +168 -168
- package/src/hooks/claude-code-mastery.md +112 -112
- package/src/hooks/context-hook.ts +260 -245
- package/src/hooks/deduplicator.ts +72 -72
- package/src/hooks/git-capture.ts +109 -109
- package/src/hooks/git-hook-installer.ts +211 -207
- package/src/hooks/index.ts +20 -20
- package/src/hooks/installer.ts +306 -288
- package/src/hooks/interceptor-hook.ts +204 -201
- package/src/hooks/passive-classifier.ts +397 -397
- package/src/hooks/queue.ts +160 -129
- package/src/hooks/session-tracker.ts +312 -312
- package/src/hooks/types.ts +52 -52
- package/src/index.ts +7 -7
- package/src/intelligence/cross-project/generalizer.ts +283 -283
- package/src/intelligence/cross-project/index.ts +7 -7
- package/src/intelligence/hf-downloader.ts +222 -222
- package/src/intelligence/hf-manifest.json +78 -78
- package/src/intelligence/index.ts +24 -24
- package/src/intelligence/inference-router.ts +762 -762
- package/src/intelligence/model-manager.ts +263 -245
- package/src/intelligence/optimization/index.ts +10 -10
- package/src/intelligence/optimization/precompute.ts +202 -202
- package/src/intelligence/optimization/semantic-cache.ts +213 -207
- package/src/intelligence/prediction/index.ts +7 -7
- package/src/intelligence/prediction/recommender.ts +276 -268
- package/src/intelligence/reasoning/chain-retrieval.ts +243 -247
- package/src/intelligence/reasoning/index.ts +7 -7
- package/src/intelligence/temporal/evolution.ts +193 -197
- package/src/intelligence/temporal/index.ts +16 -16
- package/src/intelligence/temporal/query-processor.ts +190 -190
- package/src/intelligence/temporal/timeline.ts +272 -259
- package/src/intelligence/temporal/trends.ts +263 -263
- package/src/intelligence/tokenizer.ts +118 -118
- package/src/knowledge/entity-extractor.ts +447 -443
- 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 +166 -166
- package/src/knowledge/relationship-extractor.ts +108 -108
- package/src/memory/chroma/client.ts +211 -192
- package/src/memory/chroma/collection-manager.ts +92 -92
- package/src/memory/chroma/config.ts +57 -57
- package/src/memory/chroma/embeddings.ts +177 -175
- 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 +319 -315
- package/src/memory/chroma/store.ts +755 -747
- package/src/memory/compression.ts +121 -121
- package/src/memory/consolidation/archiver.ts +162 -165
- package/src/memory/consolidation/merger.ts +182 -186
- package/src/memory/consolidation/scorer.ts +136 -136
- package/src/memory/database.ts +9 -0
- package/src/memory/dual-write.ts +145 -0
- package/src/memory/embeddings.ts +226 -226
- package/src/memory/episodic/detector.ts +108 -108
- package/src/memory/episodic/manager.ts +347 -351
- package/src/memory/episodic/summarizer.ts +179 -179
- package/src/memory/episodic/types.ts +52 -52
- package/src/memory/fts5-search.ts +692 -633
- package/src/memory/index.ts +943 -1060
- package/src/memory/migrations/add-fts5.ts +118 -108
- package/src/memory/patterns.ts +438 -438
- package/src/memory/pruning.ts +60 -60
- package/src/memory/schema.ts +88 -88
- package/src/memory/store.ts +911 -787
- package/src/orchestrator/handlers/decision-handler.ts +204 -204
- 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 -297
- package/src/retrieval/bm25/tokenizer.ts +184 -184
- package/src/retrieval/feedback/adaptive.ts +221 -221
- package/src/retrieval/feedback/index.ts +16 -16
- package/src/retrieval/feedback/metrics.ts +221 -221
- package/src/retrieval/feedback/store.ts +283 -283
- package/src/retrieval/fusion/index.ts +194 -194
- package/src/retrieval/fusion/rrf.ts +165 -165
- package/src/retrieval/index.ts +12 -12
- package/src/retrieval/pipeline.ts +375 -375
- package/src/retrieval/query/expander.ts +203 -203
- package/src/retrieval/query/index.ts +27 -27
- package/src/retrieval/query/intent-classifier.ts +252 -252
- package/src/retrieval/query/temporal-parser.ts +295 -295
- package/src/retrieval/reranker/index.ts +189 -188
- package/src/retrieval/reranker/model.ts +99 -95
- package/src/retrieval/service.ts +125 -125
- package/src/retrieval/types.ts +162 -162
- package/src/routing/entity-extractor.ts +454 -454
- package/src/routing/handlers/exploration-handler.ts +369 -0
- package/src/routing/handlers/index.ts +19 -0
- package/src/routing/handlers/memory-handler.ts +273 -0
- package/src/routing/handlers/mutation-handler.ts +241 -0
- package/src/routing/handlers/recall-handler.ts +642 -0
- package/src/routing/handlers/shared.ts +515 -0
- package/src/routing/handlers/types.ts +48 -0
- package/src/routing/intent-classifier.ts +552 -552
- package/src/routing/response-filter.ts +399 -391
- package/src/routing/router.ts +245 -2193
- package/src/routing/search-engine.ts +521 -514
- package/src/routing/types.ts +104 -94
- package/src/scripts/health-check.ts +118 -118
- package/src/scripts/setup.ts +122 -122
- package/src/server/auto-updater.ts +283 -276
- package/src/server/handlers/call-tool.ts +159 -159
- package/src/server/handlers/list-tools.ts +35 -35
- package/src/server/handlers/tools/auto-remember.ts +165 -165
- package/src/server/handlers/tools/brain.ts +86 -86
- package/src/server/handlers/tools/create-project.ts +135 -135
- package/src/server/handlers/tools/get-code-standards.ts +123 -123
- package/src/server/handlers/tools/get-corrections.ts +152 -152
- package/src/server/handlers/tools/get-patterns.ts +156 -156
- package/src/server/handlers/tools/get-project-context.ts +75 -75
- package/src/server/handlers/tools/index.ts +30 -30
- package/src/server/handlers/tools/init-project.ts +756 -756
- package/src/server/handlers/tools/list-projects.ts +126 -126
- package/src/server/handlers/tools/recall-similar.ts +87 -87
- package/src/server/handlers/tools/recognize-pattern.ts +132 -132
- package/src/server/handlers/tools/record-correction.ts +131 -131
- package/src/server/handlers/tools/remember-decision.ts +168 -168
- package/src/server/handlers/tools/schemas.ts +179 -179
- package/src/server/handlers/tools/search-code.ts +122 -122
- package/src/server/handlers/tools/smart-context.ts +146 -146
- package/src/server/handlers/tools/update-progress.ts +131 -131
- package/src/server/http-api.ts +215 -1229
- package/src/server/mcp-proxy.ts +85 -84
- package/src/server/mcp-server.ts +285 -284
- package/src/server/middleware/auth.ts +39 -0
- package/src/server/middleware/error-handler.ts +37 -0
- package/src/server/middleware/rate-limit.ts +53 -0
- package/src/server/middleware/validate.ts +42 -0
- package/src/server/pid-manager.ts +137 -136
- package/src/server/providers/resources.ts +581 -581
- package/src/server/routes/code.ts +228 -0
- package/src/server/routes/context.ts +26 -0
- package/src/server/routes/health.ts +19 -0
- package/src/server/routes/helpers.ts +100 -0
- package/src/server/routes/hooks.ts +197 -0
- package/src/server/routes/mcp.ts +47 -0
- package/src/server/routes/memory.ts +397 -0
- package/src/server/routes/models.ts +96 -0
- package/src/server/routes/projects.ts +89 -0
- package/src/server/routes/types.ts +21 -0
- package/src/server/schemas/api-schemas.ts +202 -0
- package/src/server/services.ts +720 -720
- package/src/server/utils/memory-indicator.ts +84 -84
- package/src/server/utils/response-formatter.ts +129 -129
- package/src/server/web-viewer.ts +1145 -1115
- package/src/setup/index.ts +38 -38
- package/src/tools/registry.ts +115 -115
- package/src/tools/schemas.ts +666 -666
- package/src/tools/types.ts +412 -412
- package/src/training/data-store.ts +320 -298
- package/src/training/retrain-pipeline.ts +399 -394
- package/src/utils/error-handler.ts +136 -136
- package/src/utils/index.ts +58 -58
- package/src/utils/kill-port.ts +55 -53
- package/src/utils/phase12-helper.ts +56 -56
- package/src/utils/safe-path.ts +43 -0
- package/src/utils/timing.ts +47 -47
- package/src/utils/transaction.ts +63 -63
- package/src/vault/index.ts +4 -3
- package/src/vault/paths.ts +106 -106
- package/src/vault/query.ts +4 -1
- package/src/vault/reader.ts +44 -1
- package/src/vault/watcher.ts +24 -1
- package/src/vault/writer.ts +487 -413
- package/skills/persistent-memory/SKILL.md +0 -148
- package/skills/persistent-memory/references/tool-reference.md +0 -90
package/src/retrieval/service.ts
CHANGED
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieval Service
|
|
3
|
-
* Main service for hybrid retrieval and feedback collection
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { Logger } from 'pino'
|
|
7
|
-
import type { CollectionManager } from '@/memory/chroma/collection-manager'
|
|
8
|
-
import type { EmbeddingProvider } from '@/memory/chroma/embeddings'
|
|
9
|
-
import type { RetrievalConfig } from '@/config/schema'
|
|
10
|
-
import { FeedbackStore } from './feedback/store'
|
|
11
|
-
import type { RateMemoryInput } from './types'
|
|
12
|
-
|
|
13
|
-
export class RetrievalService {
|
|
14
|
-
private logger: Logger
|
|
15
|
-
private collections: CollectionManager
|
|
16
|
-
private embeddings: EmbeddingProvider
|
|
17
|
-
private config: RetrievalConfig
|
|
18
|
-
private feedbackStore: FeedbackStore | null = null
|
|
19
|
-
private initialized: boolean = false
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
logger: Logger,
|
|
23
|
-
collections: CollectionManager,
|
|
24
|
-
embeddings: EmbeddingProvider,
|
|
25
|
-
config: RetrievalConfig
|
|
26
|
-
) {
|
|
27
|
-
this.logger = logger.child({ component: 'retrieval-service' })
|
|
28
|
-
this.collections = collections
|
|
29
|
-
this.embeddings = embeddings
|
|
30
|
-
this.config = config
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async initialize(): Promise<void> {
|
|
34
|
-
if (this.initialized) {
|
|
35
|
-
return
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
this.logger.info({ config: this.config }, 'Initializing retrieval service')
|
|
39
|
-
|
|
40
|
-
// Initialize feedback store if enabled
|
|
41
|
-
if (this.config.feedback.enabled) {
|
|
42
|
-
this.feedbackStore = new FeedbackStore(
|
|
43
|
-
this.logger,
|
|
44
|
-
this.collections,
|
|
45
|
-
this.embeddings
|
|
46
|
-
)
|
|
47
|
-
this.logger.info('Feedback store initialized')
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
this.initialized = true
|
|
51
|
-
this.logger.info('Retrieval service initialized')
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Store feedback for a memory retrieval
|
|
56
|
-
*/
|
|
57
|
-
async storeFeedback(input: RateMemoryInput): Promise<string> {
|
|
58
|
-
if (!this.feedbackStore) {
|
|
59
|
-
throw new Error('Feedback collection is not enabled')
|
|
60
|
-
}
|
|
61
|
-
return this.feedbackStore.storeFeedback(input)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Get feedback statistics
|
|
66
|
-
*/
|
|
67
|
-
async getFeedbackStats() {
|
|
68
|
-
if (!this.feedbackStore) {
|
|
69
|
-
return null
|
|
70
|
-
}
|
|
71
|
-
return this.feedbackStore.getStats()
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Check if feedback is enabled
|
|
76
|
-
*/
|
|
77
|
-
isFeedbackEnabled(): boolean {
|
|
78
|
-
return this.feedbackStore !== null
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Check if hybrid retrieval is enabled
|
|
83
|
-
*/
|
|
84
|
-
isHybridEnabled(): boolean {
|
|
85
|
-
return this.config.enabled
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get current configuration
|
|
90
|
-
*/
|
|
91
|
-
getConfig(): RetrievalConfig {
|
|
92
|
-
return this.config
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Get retrieval status for phase12 status report
|
|
97
|
-
*/
|
|
98
|
-
async getStatus(): Promise<{
|
|
99
|
-
enabled: boolean
|
|
100
|
-
hybridEnabled: boolean
|
|
101
|
-
feedbackEnabled: boolean
|
|
102
|
-
sparseEnabled: boolean
|
|
103
|
-
rerankerEnabled: boolean
|
|
104
|
-
feedbackStats?: {
|
|
105
|
-
totalFeedback: number
|
|
106
|
-
avgRating: number
|
|
107
|
-
positiveRate: number
|
|
108
|
-
}
|
|
109
|
-
}> {
|
|
110
|
-
const feedbackStats = await this.getFeedbackStats()
|
|
111
|
-
|
|
112
|
-
return {
|
|
113
|
-
enabled: this.initialized,
|
|
114
|
-
hybridEnabled: this.config.enabled,
|
|
115
|
-
feedbackEnabled: this.config.feedback.enabled,
|
|
116
|
-
sparseEnabled: this.config.sparse.enabled,
|
|
117
|
-
rerankerEnabled: this.config.reranker.enabled,
|
|
118
|
-
feedbackStats: feedbackStats ? {
|
|
119
|
-
totalFeedback: feedbackStats.totalFeedback,
|
|
120
|
-
avgRating: feedbackStats.avgRating,
|
|
121
|
-
positiveRate: feedbackStats.positiveRate
|
|
122
|
-
} : undefined
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Retrieval Service
|
|
3
|
+
* Main service for hybrid retrieval and feedback collection
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Logger } from 'pino'
|
|
7
|
+
import type { CollectionManager } from '@/memory/chroma/collection-manager'
|
|
8
|
+
import type { EmbeddingProvider } from '@/memory/chroma/embeddings'
|
|
9
|
+
import type { RetrievalConfig } from '@/config/schema'
|
|
10
|
+
import { FeedbackStore } from './feedback/store'
|
|
11
|
+
import type { RateMemoryInput } from './types'
|
|
12
|
+
|
|
13
|
+
export class RetrievalService {
|
|
14
|
+
private logger: Logger
|
|
15
|
+
private collections: CollectionManager
|
|
16
|
+
private embeddings: EmbeddingProvider
|
|
17
|
+
private config: RetrievalConfig
|
|
18
|
+
private feedbackStore: FeedbackStore | null = null
|
|
19
|
+
private initialized: boolean = false
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
logger: Logger,
|
|
23
|
+
collections: CollectionManager,
|
|
24
|
+
embeddings: EmbeddingProvider,
|
|
25
|
+
config: RetrievalConfig
|
|
26
|
+
) {
|
|
27
|
+
this.logger = logger.child({ component: 'retrieval-service' })
|
|
28
|
+
this.collections = collections
|
|
29
|
+
this.embeddings = embeddings
|
|
30
|
+
this.config = config
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async initialize(): Promise<void> {
|
|
34
|
+
if (this.initialized) {
|
|
35
|
+
return
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
this.logger.info({ config: this.config }, 'Initializing retrieval service')
|
|
39
|
+
|
|
40
|
+
// Initialize feedback store if enabled
|
|
41
|
+
if (this.config.feedback.enabled) {
|
|
42
|
+
this.feedbackStore = new FeedbackStore(
|
|
43
|
+
this.logger,
|
|
44
|
+
this.collections,
|
|
45
|
+
this.embeddings
|
|
46
|
+
)
|
|
47
|
+
this.logger.info('Feedback store initialized')
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
this.initialized = true
|
|
51
|
+
this.logger.info('Retrieval service initialized')
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Store feedback for a memory retrieval
|
|
56
|
+
*/
|
|
57
|
+
async storeFeedback(input: RateMemoryInput): Promise<string> {
|
|
58
|
+
if (!this.feedbackStore) {
|
|
59
|
+
throw new Error('Feedback collection is not enabled')
|
|
60
|
+
}
|
|
61
|
+
return this.feedbackStore.storeFeedback(input)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Get feedback statistics
|
|
66
|
+
*/
|
|
67
|
+
async getFeedbackStats() {
|
|
68
|
+
if (!this.feedbackStore) {
|
|
69
|
+
return null
|
|
70
|
+
}
|
|
71
|
+
return this.feedbackStore.getStats()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Check if feedback is enabled
|
|
76
|
+
*/
|
|
77
|
+
isFeedbackEnabled(): boolean {
|
|
78
|
+
return this.feedbackStore !== null
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Check if hybrid retrieval is enabled
|
|
83
|
+
*/
|
|
84
|
+
isHybridEnabled(): boolean {
|
|
85
|
+
return this.config.enabled
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Get current configuration
|
|
90
|
+
*/
|
|
91
|
+
getConfig(): RetrievalConfig {
|
|
92
|
+
return this.config
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get retrieval status for phase12 status report
|
|
97
|
+
*/
|
|
98
|
+
async getStatus(): Promise<{
|
|
99
|
+
enabled: boolean
|
|
100
|
+
hybridEnabled: boolean
|
|
101
|
+
feedbackEnabled: boolean
|
|
102
|
+
sparseEnabled: boolean
|
|
103
|
+
rerankerEnabled: boolean
|
|
104
|
+
feedbackStats?: {
|
|
105
|
+
totalFeedback: number
|
|
106
|
+
avgRating: number
|
|
107
|
+
positiveRate: number
|
|
108
|
+
}
|
|
109
|
+
}> {
|
|
110
|
+
const feedbackStats = await this.getFeedbackStats()
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
enabled: this.initialized,
|
|
114
|
+
hybridEnabled: this.config.enabled,
|
|
115
|
+
feedbackEnabled: this.config.feedback.enabled,
|
|
116
|
+
sparseEnabled: this.config.sparse.enabled,
|
|
117
|
+
rerankerEnabled: this.config.reranker.enabled,
|
|
118
|
+
feedbackStats: feedbackStats ? {
|
|
119
|
+
totalFeedback: feedbackStats.totalFeedback,
|
|
120
|
+
avgRating: feedbackStats.avgRating,
|
|
121
|
+
positiveRate: feedbackStats.positiveRate
|
|
122
|
+
} : undefined
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
package/src/retrieval/types.ts
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Retrieval Types
|
|
3
|
-
* TypeScript interfaces for the hybrid retrieval system
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Core search result from hybrid retrieval pipeline
|
|
8
|
-
*/
|
|
9
|
-
export interface HybridSearchResult {
|
|
10
|
-
id: string
|
|
11
|
-
content: string
|
|
12
|
-
metadata: Record<string, unknown>
|
|
13
|
-
scores: {
|
|
14
|
-
/** Dense (semantic) search score (0-1) */
|
|
15
|
-
dense: number
|
|
16
|
-
/** Sparse (BM25) search score (normalized) */
|
|
17
|
-
sparse: number
|
|
18
|
-
/** Fusion combined score */
|
|
19
|
-
fusion: number
|
|
20
|
-
/** Cross-encoder reranked score (optional) */
|
|
21
|
-
reranked?: number
|
|
22
|
-
/** Final score after all processing */
|
|
23
|
-
final: number
|
|
24
|
-
}
|
|
25
|
-
/** Where this result came from */
|
|
26
|
-
provenance: 'dense' | 'sparse' | 'both'
|
|
27
|
-
/** Original collection this result came from */
|
|
28
|
-
collection: string
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Memory feedback for adaptive learning
|
|
33
|
-
*/
|
|
34
|
-
export interface MemoryFeedback {
|
|
35
|
-
id: string
|
|
36
|
-
memoryId: string
|
|
37
|
-
queryId: string
|
|
38
|
-
query: string
|
|
39
|
-
rating: 1 | 2 | 3 | 4 | 5
|
|
40
|
-
wasUsed: boolean
|
|
41
|
-
feedbackText?: string
|
|
42
|
-
project?: string
|
|
43
|
-
timestamp: string
|
|
44
|
-
collectionType: 'decisions' | 'memories' | 'patterns' | 'corrections'
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Input for rate_memory tool
|
|
49
|
-
*/
|
|
50
|
-
export interface RateMemoryInput {
|
|
51
|
-
memory_id: string
|
|
52
|
-
rating: 1 | 2 | 3 | 4 | 5
|
|
53
|
-
query: string
|
|
54
|
-
was_used?: boolean
|
|
55
|
-
feedback_text?: string
|
|
56
|
-
project_name?: string
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Query intent classification result
|
|
61
|
-
*/
|
|
62
|
-
export interface QueryIntent {
|
|
63
|
-
/** Primary intent type */
|
|
64
|
-
type: 'factual' | 'decision' | 'pattern' | 'comparison' | 'temporal' | 'exploratory'
|
|
65
|
-
/** Confidence in classification (0-1) */
|
|
66
|
-
confidence: number
|
|
67
|
-
/** Additional intent metadata */
|
|
68
|
-
metadata?: {
|
|
69
|
-
temporalRange?: { start?: Date; end?: Date }
|
|
70
|
-
comparisonTerms?: string[]
|
|
71
|
-
entities?: string[]
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Query expansion result
|
|
77
|
-
*/
|
|
78
|
-
export interface ExpandedQuery {
|
|
79
|
-
/** Original query */
|
|
80
|
-
original: string
|
|
81
|
-
/** Expanded terms and synonyms */
|
|
82
|
-
expansions: string[]
|
|
83
|
-
/** Combined query for search */
|
|
84
|
-
combined: string
|
|
85
|
-
/** Weight for original vs expanded terms */
|
|
86
|
-
originalWeight: number
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Temporal parse result
|
|
91
|
-
*/
|
|
92
|
-
export interface TemporalParse {
|
|
93
|
-
/** Whether temporal references were found */
|
|
94
|
-
hasTemporal: boolean
|
|
95
|
-
/** Start of time range (if any) */
|
|
96
|
-
start?: Date
|
|
97
|
-
/** End of time range (if any) */
|
|
98
|
-
end?: Date
|
|
99
|
-
/** Original temporal expression */
|
|
100
|
-
expression?: string
|
|
101
|
-
/** Query with temporal references removed */
|
|
102
|
-
cleanedQuery: string
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Search options for hybrid pipeline
|
|
107
|
-
*/
|
|
108
|
-
export interface HybridSearchOptions {
|
|
109
|
-
/** Project to filter by */
|
|
110
|
-
project?: string
|
|
111
|
-
/** Collections to search */
|
|
112
|
-
collections?: ('decisions' | 'memories' | 'patterns' | 'corrections')[]
|
|
113
|
-
/** Maximum results to return */
|
|
114
|
-
limit?: number
|
|
115
|
-
/** Minimum final score threshold */
|
|
116
|
-
minScore?: number
|
|
117
|
-
/** Whether to use reranking */
|
|
118
|
-
useReranker?: boolean
|
|
119
|
-
/** Whether to use query understanding */
|
|
120
|
-
useQueryUnderstanding?: boolean
|
|
121
|
-
/** Date range filter */
|
|
122
|
-
dateRange?: {
|
|
123
|
-
start?: string
|
|
124
|
-
end?: string
|
|
125
|
-
}
|
|
126
|
-
/** Tags to filter by */
|
|
127
|
-
tags?: string[]
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Retrieval metrics for evaluation
|
|
132
|
-
*/
|
|
133
|
-
export interface RetrievalMetrics {
|
|
134
|
-
/** Mean Reciprocal Rank */
|
|
135
|
-
mrr: number
|
|
136
|
-
/** Precision at K */
|
|
137
|
-
precisionAtK: Record<number, number>
|
|
138
|
-
/** Normalized Discounted Cumulative Gain */
|
|
139
|
-
ndcg: number
|
|
140
|
-
/** Total queries evaluated */
|
|
141
|
-
queryCount: number
|
|
142
|
-
/** Average latency in ms */
|
|
143
|
-
avgLatencyMs: number
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Adaptive thresholds learned from feedback
|
|
148
|
-
*/
|
|
149
|
-
export interface AdaptiveThresholds {
|
|
150
|
-
/** Minimum similarity threshold for dense search */
|
|
151
|
-
denseMinSimilarity: number
|
|
152
|
-
/** Dense search weight in fusion */
|
|
153
|
-
denseWeight: number
|
|
154
|
-
/** Sparse search weight in fusion */
|
|
155
|
-
sparseWeight: number
|
|
156
|
-
/** RRF k parameter */
|
|
157
|
-
rrfK: number
|
|
158
|
-
/** Number of feedback samples used */
|
|
159
|
-
feedbackCount: number
|
|
160
|
-
/** Last updated timestamp */
|
|
161
|
-
lastUpdated: string
|
|
162
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Retrieval Types
|
|
3
|
+
* TypeScript interfaces for the hybrid retrieval system
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Core search result from hybrid retrieval pipeline
|
|
8
|
+
*/
|
|
9
|
+
export interface HybridSearchResult {
|
|
10
|
+
id: string
|
|
11
|
+
content: string
|
|
12
|
+
metadata: Record<string, unknown>
|
|
13
|
+
scores: {
|
|
14
|
+
/** Dense (semantic) search score (0-1) */
|
|
15
|
+
dense: number
|
|
16
|
+
/** Sparse (BM25) search score (normalized) */
|
|
17
|
+
sparse: number
|
|
18
|
+
/** Fusion combined score */
|
|
19
|
+
fusion: number
|
|
20
|
+
/** Cross-encoder reranked score (optional) */
|
|
21
|
+
reranked?: number
|
|
22
|
+
/** Final score after all processing */
|
|
23
|
+
final: number
|
|
24
|
+
}
|
|
25
|
+
/** Where this result came from */
|
|
26
|
+
provenance: 'dense' | 'sparse' | 'both'
|
|
27
|
+
/** Original collection this result came from */
|
|
28
|
+
collection: string
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Memory feedback for adaptive learning
|
|
33
|
+
*/
|
|
34
|
+
export interface MemoryFeedback {
|
|
35
|
+
id: string
|
|
36
|
+
memoryId: string
|
|
37
|
+
queryId: string
|
|
38
|
+
query: string
|
|
39
|
+
rating: 1 | 2 | 3 | 4 | 5
|
|
40
|
+
wasUsed: boolean
|
|
41
|
+
feedbackText?: string
|
|
42
|
+
project?: string
|
|
43
|
+
timestamp: string
|
|
44
|
+
collectionType: 'decisions' | 'memories' | 'patterns' | 'corrections'
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Input for rate_memory tool
|
|
49
|
+
*/
|
|
50
|
+
export interface RateMemoryInput {
|
|
51
|
+
memory_id: string
|
|
52
|
+
rating: 1 | 2 | 3 | 4 | 5
|
|
53
|
+
query: string
|
|
54
|
+
was_used?: boolean
|
|
55
|
+
feedback_text?: string
|
|
56
|
+
project_name?: string
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Query intent classification result
|
|
61
|
+
*/
|
|
62
|
+
export interface QueryIntent {
|
|
63
|
+
/** Primary intent type */
|
|
64
|
+
type: 'factual' | 'decision' | 'pattern' | 'comparison' | 'temporal' | 'exploratory'
|
|
65
|
+
/** Confidence in classification (0-1) */
|
|
66
|
+
confidence: number
|
|
67
|
+
/** Additional intent metadata */
|
|
68
|
+
metadata?: {
|
|
69
|
+
temporalRange?: { start?: Date; end?: Date }
|
|
70
|
+
comparisonTerms?: string[]
|
|
71
|
+
entities?: string[]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Query expansion result
|
|
77
|
+
*/
|
|
78
|
+
export interface ExpandedQuery {
|
|
79
|
+
/** Original query */
|
|
80
|
+
original: string
|
|
81
|
+
/** Expanded terms and synonyms */
|
|
82
|
+
expansions: string[]
|
|
83
|
+
/** Combined query for search */
|
|
84
|
+
combined: string
|
|
85
|
+
/** Weight for original vs expanded terms */
|
|
86
|
+
originalWeight: number
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Temporal parse result
|
|
91
|
+
*/
|
|
92
|
+
export interface TemporalParse {
|
|
93
|
+
/** Whether temporal references were found */
|
|
94
|
+
hasTemporal: boolean
|
|
95
|
+
/** Start of time range (if any) */
|
|
96
|
+
start?: Date
|
|
97
|
+
/** End of time range (if any) */
|
|
98
|
+
end?: Date
|
|
99
|
+
/** Original temporal expression */
|
|
100
|
+
expression?: string
|
|
101
|
+
/** Query with temporal references removed */
|
|
102
|
+
cleanedQuery: string
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Search options for hybrid pipeline
|
|
107
|
+
*/
|
|
108
|
+
export interface HybridSearchOptions {
|
|
109
|
+
/** Project to filter by */
|
|
110
|
+
project?: string
|
|
111
|
+
/** Collections to search */
|
|
112
|
+
collections?: ('decisions' | 'memories' | 'patterns' | 'corrections')[]
|
|
113
|
+
/** Maximum results to return */
|
|
114
|
+
limit?: number
|
|
115
|
+
/** Minimum final score threshold */
|
|
116
|
+
minScore?: number
|
|
117
|
+
/** Whether to use reranking */
|
|
118
|
+
useReranker?: boolean
|
|
119
|
+
/** Whether to use query understanding */
|
|
120
|
+
useQueryUnderstanding?: boolean
|
|
121
|
+
/** Date range filter */
|
|
122
|
+
dateRange?: {
|
|
123
|
+
start?: string
|
|
124
|
+
end?: string
|
|
125
|
+
}
|
|
126
|
+
/** Tags to filter by */
|
|
127
|
+
tags?: string[]
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Retrieval metrics for evaluation
|
|
132
|
+
*/
|
|
133
|
+
export interface RetrievalMetrics {
|
|
134
|
+
/** Mean Reciprocal Rank */
|
|
135
|
+
mrr: number
|
|
136
|
+
/** Precision at K */
|
|
137
|
+
precisionAtK: Record<number, number>
|
|
138
|
+
/** Normalized Discounted Cumulative Gain */
|
|
139
|
+
ndcg: number
|
|
140
|
+
/** Total queries evaluated */
|
|
141
|
+
queryCount: number
|
|
142
|
+
/** Average latency in ms */
|
|
143
|
+
avgLatencyMs: number
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Adaptive thresholds learned from feedback
|
|
148
|
+
*/
|
|
149
|
+
export interface AdaptiveThresholds {
|
|
150
|
+
/** Minimum similarity threshold for dense search */
|
|
151
|
+
denseMinSimilarity: number
|
|
152
|
+
/** Dense search weight in fusion */
|
|
153
|
+
denseWeight: number
|
|
154
|
+
/** Sparse search weight in fusion */
|
|
155
|
+
sparseWeight: number
|
|
156
|
+
/** RRF k parameter */
|
|
157
|
+
rrfK: number
|
|
158
|
+
/** Number of feedback samples used */
|
|
159
|
+
feedbackCount: number
|
|
160
|
+
/** Last updated timestamp */
|
|
161
|
+
lastUpdated: string
|
|
162
|
+
}
|