codehere 0.2.2 → 0.3.0-rc.1

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.
Files changed (235) hide show
  1. package/README.md +88 -68
  2. package/dist/domain/entities/task.js +4 -4
  3. package/dist/error-handler.js +4 -9
  4. package/dist/index.js +253 -1219
  5. package/dist/infrastructure/config/product-context.js +7 -6
  6. package/dist/infrastructure/hooks/claude-sdk-hook.js +335 -63
  7. package/dist/infrastructure/observability/execution-tracer.js +11 -6
  8. package/dist/infrastructure/orchestration/agent-adapter.js +13 -0
  9. package/dist/infrastructure/orchestration/agent-installer.js +101 -0
  10. package/dist/infrastructure/orchestration/agents-config-seed.js +56 -0
  11. package/dist/infrastructure/orchestration/aider-adapter.js +319 -0
  12. package/dist/infrastructure/orchestration/artifacts-extractor.js +175 -0
  13. package/dist/infrastructure/orchestration/claude-code-adapter.js +352 -0
  14. package/dist/infrastructure/orchestration/codex-adapter.js +310 -0
  15. package/dist/infrastructure/orchestration/generic-cli-adapter.js +553 -0
  16. package/dist/infrastructure/orchestration/opencode-adapter.js +275 -0
  17. package/dist/infrastructure/orchestration/progress-aggregator.js +189 -0
  18. package/dist/infrastructure/orchestration/readiness.js +106 -0
  19. package/dist/infrastructure/orchestration/session-manager.js +272 -0
  20. package/dist/infrastructure/orchestration/session-persistence.js +109 -0
  21. package/dist/infrastructure/protocols/mcp-helpers.js +10 -30
  22. package/dist/infrastructure/protocols/mcp-server-impl.js +359 -21
  23. package/dist/infrastructure/protocols/ui-page.js +1827 -0
  24. package/dist/infrastructure/security/file-collection.js +115 -0
  25. package/dist/infrastructure/security/trust-scorer.js +301 -56
  26. package/dist/infrastructure/storage/task-repository.js +8 -7
  27. package/dist/monitoring.js +9 -38
  28. package/dist/presentation/cli/commands/help-command.js +96 -139
  29. package/dist/presentation/cli/commands/hook-command.js +17 -24
  30. package/dist/presentation/cli/commands/report-command.js +59 -72
  31. package/dist/presentation/cli/commands/setup-command.js +4 -4
  32. package/dist/presentation/cli/commands/status-command.js +321 -30
  33. package/dist/presentation/cli/commands/trust-command.js +84 -72
  34. package/dist/presentation/cli/error-display.js +17 -21
  35. package/dist/ui.js +11 -11
  36. package/package.json +24 -62
  37. package/dist/agents/base.js +0 -101
  38. package/dist/agents/orchestrator-model-driven.js +0 -141
  39. package/dist/agents/react-orchestrator-agent.js +0 -54
  40. package/dist/application/agents/execution-agent.js +0 -508
  41. package/dist/application/agents/multi-agent-orchestrator.js +0 -295
  42. package/dist/application/agents/planning-agent.js +0 -433
  43. package/dist/application/agents/validation-agent.js +0 -317
  44. package/dist/application/architectures/plan-and-act.js +0 -242
  45. package/dist/application/index.js +0 -12
  46. package/dist/application/services/agent-factory.js +0 -28
  47. package/dist/application/services/dependency-container.js +0 -596
  48. package/dist/application/services/git-context-service.js +0 -83
  49. package/dist/application/services/intelligent-router.js +0 -934
  50. package/dist/application/services/tool-executor-service.js +0 -94
  51. package/dist/application/use-cases/ask-question-use-case.js +0 -338
  52. package/dist/application/use-cases/edit-file-use-case.js +0 -830
  53. package/dist/application/use-cases/explain-file-use-case.js +0 -50
  54. package/dist/application/use-cases/index-codebase-use-case.js +0 -113
  55. package/dist/application/use-cases/planning-use-case.js +0 -276
  56. package/dist/application/use-cases/react-orchestration-use-case.js +0 -329
  57. package/dist/application/use-cases/reflexion-use-case.js +0 -30
  58. package/dist/application/workflows/deterministic-workflows.js +0 -189
  59. package/dist/ast-parser.js +0 -331
  60. package/dist/cache.js +0 -180
  61. package/dist/chat.js +0 -251
  62. package/dist/code-analysis.js +0 -327
  63. package/dist/context.js +0 -187
  64. package/dist/docs.js +0 -146
  65. package/dist/domain/entities/code-chunk.js +0 -6
  66. package/dist/domain/entities/decision.js +0 -9
  67. package/dist/domain/entities/edit.js +0 -6
  68. package/dist/domain/entities/knowledge-node.js +0 -9
  69. package/dist/domain/entities/knowledge-preservation.js +0 -10
  70. package/dist/domain/entities/memory.js +0 -6
  71. package/dist/domain/entities/pattern.js +0 -7
  72. package/dist/domain/entities/plan.js +0 -6
  73. package/dist/domain/entities/query.js +0 -6
  74. package/dist/domain/errors/embeddings-not-found-error.js +0 -13
  75. package/dist/domain/index.js +0 -19
  76. package/dist/domain/interfaces/ai-service.interface.js +0 -6
  77. package/dist/domain/interfaces/code-analyzer.interface.js +0 -6
  78. package/dist/domain/interfaces/decision-repository.interface.js +0 -9
  79. package/dist/domain/interfaces/embedding-repository.interface.js +0 -6
  80. package/dist/domain/interfaces/knowledge-graph-repository.interface.js +0 -9
  81. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +0 -8
  82. package/dist/domain/interfaces/memory-repository.interface.js +0 -6
  83. package/dist/domain/interfaces/pattern-repository.interface.js +0 -6
  84. package/dist/domain/interfaces/verification-service.interface.js +0 -6
  85. package/dist/domain/services/cross-team-pattern-sharing.js +0 -125
  86. package/dist/domain/services/decision-recorder.js +0 -223
  87. package/dist/domain/services/decision-retriever.js +0 -133
  88. package/dist/domain/services/environment-mode-manager.js +0 -22
  89. package/dist/domain/services/graded-memory-activation.js +0 -69
  90. package/dist/domain/services/knowledge-access.js +0 -132
  91. package/dist/domain/services/knowledge-extractor.js +0 -247
  92. package/dist/domain/services/knowledge-graph-builder.js +0 -268
  93. package/dist/domain/services/knowledge-graph-query.js +0 -187
  94. package/dist/domain/services/memory-retriever.js +0 -82
  95. package/dist/domain/services/memory-synthesizer.js +0 -91
  96. package/dist/domain/services/pattern-extractor.js +0 -442
  97. package/dist/domain/services/query-intent-classifier.js +0 -140
  98. package/dist/domain/services/react-loop.js +0 -186
  99. package/dist/domain/services/risk-tier-detector.js +0 -78
  100. package/dist/edit.js +0 -319
  101. package/dist/embed.js +0 -459
  102. package/dist/formatter.js +0 -168
  103. package/dist/git.js +0 -198
  104. package/dist/infrastructure/ai/cohere-ai-service.js +0 -607
  105. package/dist/infrastructure/ai/command-r-evaluation.js +0 -206
  106. package/dist/infrastructure/ai/model-config.js +0 -84
  107. package/dist/infrastructure/ai/provider-ai-service.js +0 -477
  108. package/dist/infrastructure/cache/embedding-cache.js +0 -175
  109. package/dist/infrastructure/cache/query-result-cache.js +0 -66
  110. package/dist/infrastructure/cache/response-cache.js +0 -48
  111. package/dist/infrastructure/cache/security-scan-cache.js +0 -47
  112. package/dist/infrastructure/chunking/ast-code-chunker.js +0 -19
  113. package/dist/infrastructure/chunking/code-aware-chunker.js +0 -397
  114. package/dist/infrastructure/context/context-compressor.js +0 -329
  115. package/dist/infrastructure/context/conversation-context.js +0 -128
  116. package/dist/infrastructure/context/session-manager.js +0 -94
  117. package/dist/infrastructure/cost/cost-tracker.js +0 -360
  118. package/dist/infrastructure/file-scanner/file-scanner.js +0 -106
  119. package/dist/infrastructure/governance/nist-ai-rmf.js +0 -292
  120. package/dist/infrastructure/governance/policy-as-code.js +0 -258
  121. package/dist/infrastructure/governance/prompt-to-code-lineage.js +0 -239
  122. package/dist/infrastructure/index.js +0 -7
  123. package/dist/infrastructure/observability/prompt-versioner.js +0 -145
  124. package/dist/infrastructure/protocols/a2a-metadata.js +0 -137
  125. package/dist/infrastructure/protocols/a2a-protocol.js +0 -314
  126. package/dist/infrastructure/protocols/mcp-oauth.js +0 -184
  127. package/dist/infrastructure/protocols/mcp-server.js +0 -333
  128. package/dist/infrastructure/protocols/streaming-handler.js +0 -103
  129. package/dist/infrastructure/providers/cohere-provider.js +0 -444
  130. package/dist/infrastructure/providers/fake-provider.js +0 -130
  131. package/dist/infrastructure/providers/local-llm-provider.js +0 -330
  132. package/dist/infrastructure/providers/model-config.types.js +0 -9
  133. package/dist/infrastructure/providers/model-provider.interface.js +0 -8
  134. package/dist/infrastructure/providers/openai-provider.js +0 -413
  135. package/dist/infrastructure/providers/openrouter-provider.js +0 -399
  136. package/dist/infrastructure/providers/operation-provider-resolver.js +0 -105
  137. package/dist/infrastructure/providers/provider-config-loader.js +0 -120
  138. package/dist/infrastructure/providers/provider-registry.js +0 -88
  139. package/dist/infrastructure/safety/pattern-detector.js +0 -133
  140. package/dist/infrastructure/security/ai-sast-scanner.js +0 -290
  141. package/dist/infrastructure/security/docker-sandbox.js +0 -178
  142. package/dist/infrastructure/security/enhanced-security-gate.js +0 -151
  143. package/dist/infrastructure/security/license-scanner.js +0 -167
  144. package/dist/infrastructure/security/provider-bias-detector.js +0 -164
  145. package/dist/infrastructure/security/sandbox-executor.js +0 -64
  146. package/dist/infrastructure/serialization/toon-serializer.js +0 -119
  147. package/dist/infrastructure/storage/memory-stream-service.js +0 -204
  148. package/dist/infrastructure/storage/plan-repository.js +0 -96
  149. package/dist/infrastructure/storage/sqlite-decision-repository.js +0 -232
  150. package/dist/infrastructure/storage/sqlite-embedding-repository.js +0 -311
  151. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +0 -417
  152. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +0 -230
  153. package/dist/infrastructure/storage/sqlite-memory-repository.js +0 -229
  154. package/dist/infrastructure/storage/sqlite-pattern-repository.js +0 -249
  155. package/dist/infrastructure/storage/task-helpers.js +0 -197
  156. package/dist/infrastructure/telemetry/telemetry-service.js +0 -167
  157. package/dist/infrastructure/ux/appropriate-friction.js +0 -213
  158. package/dist/infrastructure/ux/bi-directional-learning.js +0 -337
  159. package/dist/infrastructure/ux/capability-boundaries.js +0 -42
  160. package/dist/infrastructure/ux/comprehensive-formatter.js +0 -117
  161. package/dist/infrastructure/ux/contextual-feature-discovery.js +0 -10
  162. package/dist/infrastructure/ux/expectation-management.js +0 -327
  163. package/dist/infrastructure/ux/feature-discovery.js +0 -14
  164. package/dist/infrastructure/ux/feedback-prompt.js +0 -45
  165. package/dist/infrastructure/ux/hitl-validation.js +0 -297
  166. package/dist/infrastructure/ux/progress-indicator.js +0 -116
  167. package/dist/infrastructure/ux/progressive-disclosure.js +0 -236
  168. package/dist/infrastructure/ux/review-checkpoint.js +0 -72
  169. package/dist/infrastructure/ux/staged-feature-intro.js +0 -24
  170. package/dist/infrastructure/ux/stream-markdown.js +0 -151
  171. package/dist/infrastructure/ux/syntax-highlighter.js +0 -91
  172. package/dist/infrastructure/ux/team-standards.js +0 -196
  173. package/dist/infrastructure/ux/transparency.js +0 -71
  174. package/dist/infrastructure/validation/agent-feedback.js +0 -55
  175. package/dist/infrastructure/validation/agent-validation-helper.js +0 -137
  176. package/dist/infrastructure/validation/review-handler.js +0 -40
  177. package/dist/infrastructure/validation/summary-aggregator.js +0 -70
  178. package/dist/infrastructure/validation/summary-extractor.js +0 -45
  179. package/dist/infrastructure/validation/trace-summary.js +0 -52
  180. package/dist/infrastructure/verification/verification-service.js +0 -47
  181. package/dist/infrastructure/xai/attention-visualizer.js +0 -172
  182. package/dist/infrastructure/xai/cot-visualizer.js +0 -283
  183. package/dist/infrastructure/xai/decision-tree-log.js +0 -212
  184. package/dist/infrastructure/xai/interactive-xai.js +0 -260
  185. package/dist/infrastructure/xai/uncertainty-quantifier.js +0 -198
  186. package/dist/intelligent-retrieval.js +0 -272
  187. package/dist/intent/classifier.js +0 -2
  188. package/dist/intent/context.js +0 -2
  189. package/dist/iterative-refinement.js +0 -189
  190. package/dist/learning.js +0 -232
  191. package/dist/log.js +0 -31
  192. package/dist/migrate.js +0 -133
  193. package/dist/parallel-processor.js +0 -534
  194. package/dist/planner.js +0 -198
  195. package/dist/policy.js +0 -26
  196. package/dist/presentation/cli/commands/ask-command.js +0 -314
  197. package/dist/presentation/cli/commands/cost-command.js +0 -191
  198. package/dist/presentation/cli/commands/decision-command.js +0 -207
  199. package/dist/presentation/cli/commands/docs-command.js +0 -25
  200. package/dist/presentation/cli/commands/fix-command.js +0 -53
  201. package/dist/presentation/cli/commands/knowledge-command.js +0 -129
  202. package/dist/presentation/cli/commands/learning-dashboard-command.js +0 -183
  203. package/dist/presentation/cli/commands/models-command.js +0 -194
  204. package/dist/presentation/cli/commands/orchestrate-command.js +0 -207
  205. package/dist/presentation/cli/commands/plan-command.js +0 -246
  206. package/dist/presentation/cli/commands/product-command.js +0 -199
  207. package/dist/presentation/cli/commands/react-command.js +0 -181
  208. package/dist/presentation/cli/commands/review-command.js +0 -154
  209. package/dist/presentation/cli/commands/run-command.js +0 -188
  210. package/dist/presentation/cli/commands/smart-command.js +0 -395
  211. package/dist/presentation/cli/commands/suggest-command.js +0 -138
  212. package/dist/presentation/cli/commands/trace-command.js +0 -129
  213. package/dist/presentation/cli/commands/undo-command.js +0 -150
  214. package/dist/query-optimizer.js +0 -205
  215. package/dist/refactor.js +0 -116
  216. package/dist/review.js +0 -206
  217. package/dist/search.js +0 -163
  218. package/dist/session.js +0 -704
  219. package/dist/task-verification.js +0 -336
  220. package/dist/testgen.js +0 -166
  221. package/dist/token-optimizer.js +0 -277
  222. package/dist/tools/bash.js +0 -213
  223. package/dist/tools/edit.js +0 -235
  224. package/dist/tools/executor.js +0 -153
  225. package/dist/tools/git-tool.js +0 -292
  226. package/dist/tools/parser.js +0 -158
  227. package/dist/tools/registry.js +0 -302
  228. package/dist/tools/search.js +0 -100
  229. package/dist/types.js +0 -2
  230. package/dist/utils/check-api-status.js +0 -100
  231. package/dist/utils/diff-parser.js +0 -162
  232. package/dist/verification/backup.js +0 -259
  233. package/dist/verification/compiler.js +0 -264
  234. package/dist/verification/index.js +0 -273
  235. package/dist/verification/test-runner.js +0 -379
@@ -1,187 +0,0 @@
1
- /**
2
- * Domain Service: KnowledgeGraphQuery
3
- * Query and analyze knowledge graph
4
- *
5
- * Clean Architecture: Domain Layer
6
- *
7
- * Responsibilities:
8
- * - Find related patterns
9
- * - Discover dependencies
10
- * - Identify architectural relationships
11
- * - Graph traversal and analysis
12
- */
13
- /**
14
- * Knowledge Graph Query Service
15
- * Provides query and analysis capabilities for the knowledge graph
16
- */
17
- export class KnowledgeGraphQuery {
18
- graphRepository;
19
- constructor(graphRepository) {
20
- this.graphRepository = graphRepository;
21
- }
22
- /**
23
- * Find patterns related to a given pattern
24
- */
25
- async findRelatedPatterns(patternId, maxDepth = 2) {
26
- // Get neighbors (directly connected patterns)
27
- const neighbors = await this.graphRepository.getNeighbors(patternId, 'both');
28
- // Filter to only pattern nodes
29
- const patternNeighbors = neighbors.filter(n => n.type === 'pattern' || n.type === 'pattern-instance');
30
- // Get edges connecting to these patterns
31
- const edges = [];
32
- for (const neighbor of patternNeighbors) {
33
- if (neighbor.id) {
34
- const fromEdges = await this.graphRepository.findEdgesFromNode(patternId);
35
- const toEdges = await this.graphRepository.findEdgesToNode(patternId);
36
- edges.push(...fromEdges, ...toEdges);
37
- }
38
- }
39
- // Get nodes within N hops for deeper relationships
40
- const nodesWithinHops = await this.graphRepository.getNodesWithinHops(patternId, maxDepth);
41
- const relatedPatterns = nodesWithinHops.filter(n => n.type === 'pattern' || n.type === 'pattern-instance');
42
- return {
43
- patterns: relatedPatterns,
44
- relationships: edges,
45
- };
46
- }
47
- /**
48
- * Discover dependencies for a pattern or node
49
- */
50
- async discoverDependencies(nodeId, maxDepth = 3) {
51
- // Get outgoing edges (dependencies)
52
- const outgoingEdges = await this.graphRepository.findEdgesFromNode(nodeId);
53
- const dependencyIds = new Set();
54
- for (const edge of outgoingEdges) {
55
- if (edge.type === 'depends-on' || edge.type === 'uses' || edge.type === 'imports') {
56
- dependencyIds.add(edge.toNodeId);
57
- }
58
- }
59
- // Get incoming edges (dependents)
60
- const incomingEdges = await this.graphRepository.findEdgesToNode(nodeId);
61
- const dependentIds = new Set();
62
- for (const edge of incomingEdges) {
63
- if (edge.type === 'depends-on' || edge.type === 'uses' || edge.type === 'imports') {
64
- dependentIds.add(edge.fromNodeId);
65
- }
66
- }
67
- // Get nodes within maxDepth for transitive dependencies
68
- const nodesWithinHops = await this.graphRepository.getNodesWithinHops(nodeId, maxDepth);
69
- const allDependencyIds = new Set(dependencyIds);
70
- const allDependentIds = new Set(dependentIds);
71
- // Add transitive dependencies
72
- for (const node of nodesWithinHops) {
73
- if (node.id) {
74
- const nodeEdges = await this.graphRepository.findEdgesFromNode(node.id);
75
- for (const edge of nodeEdges) {
76
- if (edge.type === 'depends-on' || edge.type === 'uses') {
77
- allDependencyIds.add(edge.toNodeId);
78
- }
79
- }
80
- }
81
- }
82
- // Fetch dependency nodes
83
- const dependencies = [];
84
- for (const id of allDependencyIds) {
85
- const node = await this.graphRepository.getNodeById(id);
86
- if (node) {
87
- dependencies.push(node);
88
- }
89
- }
90
- // Fetch dependent nodes
91
- const dependents = [];
92
- for (const id of allDependentIds) {
93
- const node = await this.graphRepository.getNodeById(id);
94
- if (node) {
95
- dependents.push(node);
96
- }
97
- }
98
- return {
99
- dependencies,
100
- dependents,
101
- depth: maxDepth,
102
- };
103
- }
104
- /**
105
- * Identify architectural relationships
106
- */
107
- async identifyArchitecturalRelationships(codebaseId) {
108
- // Get all pattern nodes
109
- const patterns = await this.graphRepository.findNodesByType(codebaseId, 'pattern');
110
- // Group patterns by architectural layer (based on metadata or type)
111
- const layers = [];
112
- const architecturalPatterns = [];
113
- const structuralPatterns = [];
114
- const behavioralPatterns = [];
115
- for (const pattern of patterns) {
116
- if (pattern.type === 'pattern') {
117
- // Categorize based on pattern metadata or content
118
- if (pattern.content.toLowerCase().includes('architectural') ||
119
- pattern.content.toLowerCase().includes('architecture') ||
120
- pattern.content.toLowerCase().includes('layer')) {
121
- architecturalPatterns.push(pattern);
122
- }
123
- else if (pattern.content.toLowerCase().includes('structure') ||
124
- pattern.content.toLowerCase().includes('organization')) {
125
- structuralPatterns.push(pattern);
126
- }
127
- else {
128
- behavioralPatterns.push(pattern);
129
- }
130
- }
131
- }
132
- if (architecturalPatterns.length > 0)
133
- layers.push(architecturalPatterns);
134
- if (structuralPatterns.length > 0)
135
- layers.push(structuralPatterns);
136
- if (behavioralPatterns.length > 0)
137
- layers.push(behavioralPatterns);
138
- // Get relationships between architectural patterns
139
- const relationships = [];
140
- for (const pattern of architecturalPatterns) {
141
- if (pattern.id) {
142
- const edges = await this.graphRepository.findEdgesFromNode(pattern.id);
143
- relationships.push(...edges.filter(e => e.type === 'depends-on' || e.type === 'uses' || e.type === 'implements'));
144
- }
145
- }
146
- return { layers, relationships };
147
- }
148
- /**
149
- * Find shortest path between two nodes
150
- */
151
- async findPath(fromNodeId, toNodeId) {
152
- return await this.graphRepository.findShortestPath(fromNodeId, toNodeId);
153
- }
154
- /**
155
- * Get all nodes of a specific type
156
- */
157
- async getNodesByType(codebaseId, type) {
158
- return await this.graphRepository.findNodesByType(codebaseId, type);
159
- }
160
- /**
161
- * Search nodes by query
162
- */
163
- async searchNodes(codebaseId, query) {
164
- return await this.graphRepository.searchNodes(codebaseId, query);
165
- }
166
- /**
167
- * Get graph statistics
168
- */
169
- async getGraphStatistics(codebaseId) {
170
- const graph = await this.graphRepository.getGraphByCodebase(codebaseId);
171
- if (!graph.metadata) {
172
- return {
173
- nodeCount: graph.nodes.length,
174
- edgeCount: graph.edges.length,
175
- nodeTypes: {},
176
- relationshipTypes: {},
177
- };
178
- }
179
- return {
180
- nodeCount: graph.metadata.nodeCount,
181
- edgeCount: graph.metadata.edgeCount,
182
- nodeTypes: graph.metadata.nodeTypes,
183
- relationshipTypes: graph.metadata.relationshipTypes,
184
- };
185
- }
186
- }
187
- //# sourceMappingURL=knowledge-graph-query.js.map
@@ -1,82 +0,0 @@
1
- /**
2
- * Domain Service: MemoryRetriever
3
- * Retrieves relevant memories using 3-factor scoring + Graded Activation
4
- * (Recency × Importance × Relevance × Activation)
5
- *
6
- * Pure domain logic - no external dependencies
7
- */
8
- import { GradedMemoryActivation } from './graded-memory-activation.js';
9
- export class MemoryRetriever {
10
- DECAY_CONSTANT = 86400000; // 24 hours in ms
11
- gradedActivation;
12
- constructor() {
13
- this.gradedActivation = new GradedMemoryActivation();
14
- }
15
- /**
16
- * Retrieve relevant memories with 3-factor scoring + graded activation
17
- * @param memories - All available memories
18
- * @param queryEmbedding - Pre-computed query embedding vector
19
- * @param limit - Maximum number of memories to return
20
- * @param useGradedActivation - Whether to apply g(t) function (default: true)
21
- */
22
- retrieve(memories, queryEmbedding, limit, useGradedActivation = true) {
23
- if (memories.length === 0) {
24
- return [];
25
- }
26
- // Score each memory with 3-factor scoring
27
- const scored = memories.map((memory) => {
28
- const recency = this.calculateRecency(memory.lastAccessed);
29
- const importance = memory.importance / 10; // Normalize to 0-1
30
- const relevance = this.cosineSimilarity(queryEmbedding, memory.embedding);
31
- const baseScore = recency * importance * relevance;
32
- return { memory, baseScore };
33
- });
34
- // Apply graded activation if enabled
35
- let finalScored;
36
- if (useGradedActivation && memories.length > 10) {
37
- // Use graded activation for strategic learning
38
- finalScored = this.gradedActivation.applyGradedActivation(scored);
39
- }
40
- else {
41
- finalScored = scored.map(({ memory, baseScore }) => ({
42
- memory,
43
- finalScore: baseScore,
44
- }));
45
- }
46
- // Sort by final score and return top N
47
- return finalScored
48
- .sort((a, b) => b.finalScore - a.finalScore)
49
- .slice(0, limit)
50
- .map(({ memory }) => memory);
51
- }
52
- /**
53
- * Calculate recency score (exponential decay)
54
- */
55
- calculateRecency(lastAccessed) {
56
- const now = Date.now();
57
- const timeSinceAccess = now - lastAccessed.getTime();
58
- return Math.exp(-timeSinceAccess / this.DECAY_CONSTANT);
59
- }
60
- /**
61
- * Calculate cosine similarity
62
- */
63
- cosineSimilarity(a, b) {
64
- if (a.length !== b.length) {
65
- return 0;
66
- }
67
- let dotProduct = 0;
68
- let normA = 0;
69
- let normB = 0;
70
- for (let i = 0; i < a.length; i++) {
71
- dotProduct += a[i] * b[i];
72
- normA += a[i] * a[i];
73
- normB += b[i] * b[i];
74
- }
75
- const denominator = Math.sqrt(normA) * Math.sqrt(normB);
76
- if (denominator === 0) {
77
- return 0;
78
- }
79
- return dotProduct / denominator;
80
- }
81
- }
82
- //# sourceMappingURL=memory-retriever.js.map
@@ -1,91 +0,0 @@
1
- /**
2
- * Domain Service: Memory Synthesizer
3
- * Synthesizes episodic memories into higher-level reflections
4
- */
5
- /**
6
- * Synthesize memories into hierarchical reflections
7
- * Process:
8
- * 1. Query recent memories to identify salient questions
9
- * 2. Use questions to retrieve relevant memories
10
- * 3. Extract insights and cite evidence
11
- * 4. Create trees of reflections (non-leaf nodes = abstract thoughts)
12
- */
13
- export class MemorySynthesizer {
14
- patternExtractor;
15
- constructor(patternExtractor) {
16
- this.patternExtractor = patternExtractor;
17
- }
18
- /**
19
- * Generate salient questions from recent memories
20
- * These questions help identify what high-level insights can be extracted
21
- */
22
- generateSalientQuestions(memories, maxQuestions = 5) {
23
- // This will be implemented using AI in the application layer
24
- // For now, return placeholder
25
- return [];
26
- }
27
- /**
28
- * Extract patterns from memory reflections (if pattern extractor available)
29
- */
30
- async extractPatternsFromReflections(memories, codebaseId, codebasePath) {
31
- if (!this.patternExtractor) {
32
- return; // Pattern extraction not available
33
- }
34
- try {
35
- // Extract patterns from memory reflections
36
- await this.patternExtractor.extractFromMemory(memories, codebaseId, codebasePath);
37
- }
38
- catch (error) {
39
- // Don't fail memory synthesis if pattern extraction fails
40
- console.warn('Pattern extraction from memories failed (non-critical):', error);
41
- }
42
- }
43
- /**
44
- * Synthesize memories into reflections
45
- * Takes raw observations and creates higher-level insights
46
- */
47
- synthesizeReflections(memories, questions) {
48
- // This will be implemented using AI in the application layer
49
- // Returns reflections with evidence citations
50
- return [];
51
- }
52
- /**
53
- * Build trees of reflections
54
- * Non-leaf nodes represent abstract thoughts that influence future decisions
55
- */
56
- buildReflectionTree(reflections) {
57
- // Organize reflections hierarchically
58
- // Parent reflections are more abstract, children are more specific
59
- const tree = [];
60
- const byParent = new Map();
61
- // Group by parent
62
- for (const reflection of reflections) {
63
- if (reflection.parentReflectionId) {
64
- if (!byParent.has(reflection.parentReflectionId)) {
65
- byParent.set(reflection.parentReflectionId, []);
66
- }
67
- byParent.get(reflection.parentReflectionId).push(reflection);
68
- }
69
- else {
70
- tree.push(reflection);
71
- }
72
- }
73
- // Attach children to parents
74
- const attachChildren = (parent) => {
75
- const children = byParent.get(parent.id) || [];
76
- // In a full implementation, we'd attach children here
77
- return parent;
78
- };
79
- return tree.map(attachChildren);
80
- }
81
- /**
82
- * Retrieve relevant memories for planning context
83
- * Uses 3-factor scoring: Recency × Importance × Relevance
84
- */
85
- retrieveForPlanning(query, allMemories, maxMemories = 100) {
86
- // This uses the same 3-factor scoring as MemoryRetriever
87
- // Will be implemented in application layer with actual retrieval
88
- return allMemories.slice(0, maxMemories);
89
- }
90
- }
91
- //# sourceMappingURL=memory-synthesizer.js.map