neuronlayer 0.1.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +203 -123
  2. package/dist/index.js +635 -710
  3. package/dist/index.js.map +7 -0
  4. package/package.json +67 -63
  5. package/CONTRIBUTING.md +0 -127
  6. package/esbuild.config.js +0 -26
  7. package/src/cli/commands.ts +0 -382
  8. package/src/core/adr-exporter.ts +0 -253
  9. package/src/core/architecture/architecture-enforcement.ts +0 -228
  10. package/src/core/architecture/duplicate-detector.ts +0 -288
  11. package/src/core/architecture/index.ts +0 -6
  12. package/src/core/architecture/pattern-learner.ts +0 -306
  13. package/src/core/architecture/pattern-library.ts +0 -403
  14. package/src/core/architecture/pattern-validator.ts +0 -324
  15. package/src/core/change-intelligence/bug-correlator.ts +0 -444
  16. package/src/core/change-intelligence/change-intelligence.ts +0 -221
  17. package/src/core/change-intelligence/change-tracker.ts +0 -334
  18. package/src/core/change-intelligence/fix-suggester.ts +0 -340
  19. package/src/core/change-intelligence/index.ts +0 -5
  20. package/src/core/code-verifier.ts +0 -843
  21. package/src/core/confidence/confidence-scorer.ts +0 -251
  22. package/src/core/confidence/conflict-checker.ts +0 -289
  23. package/src/core/confidence/index.ts +0 -5
  24. package/src/core/confidence/source-tracker.ts +0 -263
  25. package/src/core/confidence/warning-detector.ts +0 -241
  26. package/src/core/context-rot/compaction.ts +0 -284
  27. package/src/core/context-rot/context-health.ts +0 -243
  28. package/src/core/context-rot/context-rot-prevention.ts +0 -213
  29. package/src/core/context-rot/critical-context.ts +0 -221
  30. package/src/core/context-rot/drift-detector.ts +0 -255
  31. package/src/core/context-rot/index.ts +0 -7
  32. package/src/core/context.ts +0 -263
  33. package/src/core/decision-extractor.ts +0 -339
  34. package/src/core/decisions.ts +0 -69
  35. package/src/core/deja-vu.ts +0 -421
  36. package/src/core/engine.ts +0 -1455
  37. package/src/core/feature-context.ts +0 -726
  38. package/src/core/ghost-mode.ts +0 -412
  39. package/src/core/learning.ts +0 -485
  40. package/src/core/living-docs/activity-tracker.ts +0 -296
  41. package/src/core/living-docs/architecture-generator.ts +0 -428
  42. package/src/core/living-docs/changelog-generator.ts +0 -348
  43. package/src/core/living-docs/component-generator.ts +0 -230
  44. package/src/core/living-docs/doc-engine.ts +0 -110
  45. package/src/core/living-docs/doc-validator.ts +0 -282
  46. package/src/core/living-docs/index.ts +0 -8
  47. package/src/core/project-manager.ts +0 -297
  48. package/src/core/summarizer.ts +0 -267
  49. package/src/core/test-awareness/change-validator.ts +0 -499
  50. package/src/core/test-awareness/index.ts +0 -5
  51. package/src/index.ts +0 -49
  52. package/src/indexing/ast.ts +0 -563
  53. package/src/indexing/embeddings.ts +0 -85
  54. package/src/indexing/indexer.ts +0 -245
  55. package/src/indexing/watcher.ts +0 -78
  56. package/src/server/gateways/aggregator.ts +0 -374
  57. package/src/server/gateways/index.ts +0 -473
  58. package/src/server/gateways/memory-ghost.ts +0 -343
  59. package/src/server/gateways/memory-query.ts +0 -452
  60. package/src/server/gateways/memory-record.ts +0 -346
  61. package/src/server/gateways/memory-review.ts +0 -410
  62. package/src/server/gateways/memory-status.ts +0 -517
  63. package/src/server/gateways/memory-verify.ts +0 -392
  64. package/src/server/gateways/router.ts +0 -434
  65. package/src/server/gateways/types.ts +0 -610
  66. package/src/server/mcp.ts +0 -154
  67. package/src/server/resources.ts +0 -85
  68. package/src/server/tools.ts +0 -2261
  69. package/src/storage/database.ts +0 -262
  70. package/src/storage/tier1.ts +0 -135
  71. package/src/storage/tier2.ts +0 -764
  72. package/src/storage/tier3.ts +0 -123
  73. package/src/types/documentation.ts +0 -619
  74. package/src/types/index.ts +0 -222
  75. package/src/utils/config.ts +0 -193
  76. package/src/utils/files.ts +0 -117
  77. package/src/utils/time.ts +0 -37
  78. package/src/utils/tokens.ts +0 -52
package/src/server/mcp.ts DELETED
@@ -1,154 +0,0 @@
1
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import {
4
- CallToolRequestSchema,
5
- ListToolsRequestSchema,
6
- ListResourcesRequestSchema,
7
- ReadResourceRequestSchema,
8
- } from '@modelcontextprotocol/sdk/types.js';
9
- import { MemoryLayerEngine } from '../core/engine.js';
10
- import {
11
- allToolDefinitions,
12
- handleGatewayCall,
13
- isGatewayTool,
14
- } from './gateways/index.js';
15
- import { handleToolCall } from './tools.js';
16
- import { resourceDefinitions, handleResourceRead } from './resources.js';
17
- import type { MemoryLayerConfig } from '../types/index.js';
18
-
19
- export class MCPServer {
20
- private server: Server;
21
- private engine: MemoryLayerEngine;
22
-
23
- constructor(config: MemoryLayerConfig) {
24
- this.engine = new MemoryLayerEngine(config);
25
-
26
- this.server = new Server(
27
- {
28
- name: 'memorylayer',
29
- version: '0.1.0'
30
- },
31
- {
32
- capabilities: {
33
- tools: {},
34
- resources: {}
35
- }
36
- }
37
- );
38
-
39
- this.setupHandlers();
40
- }
41
-
42
- private setupHandlers(): void {
43
- // List available tools - now using gateway pattern (10 tools instead of 51)
44
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
45
- return {
46
- tools: allToolDefinitions.map(t => ({
47
- name: t.name,
48
- description: t.description,
49
- inputSchema: t.inputSchema
50
- }))
51
- };
52
- });
53
-
54
- // Handle tool calls - route to gateways or standalone handlers
55
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
56
- const { name, arguments: args } = request.params;
57
-
58
- try {
59
- let result;
60
-
61
- // Check if it's a gateway tool
62
- if (isGatewayTool(name)) {
63
- result = await handleGatewayCall(this.engine, name, args || {});
64
- } else {
65
- // Standalone tools route to existing handler
66
- result = await handleToolCall(this.engine, name, args || {});
67
- }
68
-
69
- return {
70
- content: [
71
- {
72
- type: 'text',
73
- text: JSON.stringify(result, null, 2)
74
- }
75
- ]
76
- };
77
- } catch (error) {
78
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
79
- return {
80
- content: [
81
- {
82
- type: 'text',
83
- text: JSON.stringify({ error: errorMessage })
84
- }
85
- ],
86
- isError: true
87
- };
88
- }
89
- });
90
-
91
- // List available resources
92
- this.server.setRequestHandler(ListResourcesRequestSchema, async () => {
93
- return {
94
- resources: resourceDefinitions.map(r => ({
95
- uri: r.uri,
96
- name: r.name,
97
- description: r.description,
98
- mimeType: r.mimeType
99
- }))
100
- };
101
- });
102
-
103
- // Read resource content
104
- this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
105
- const { uri } = request.params;
106
-
107
- try {
108
- const result = await handleResourceRead(this.engine, uri);
109
-
110
- return {
111
- contents: [
112
- {
113
- uri,
114
- mimeType: result.mimeType,
115
- text: result.contents
116
- }
117
- ]
118
- };
119
- } catch (error) {
120
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
121
- throw new Error(errorMessage);
122
- }
123
- });
124
- }
125
-
126
- async start(): Promise<void> {
127
- // Connect to stdio transport FIRST (so we can respond to MCP immediately)
128
- const transport = new StdioServerTransport();
129
- await this.server.connect(transport);
130
-
131
- console.error('MemoryLayer MCP server started');
132
-
133
- // Initialize the engine in the background (indexing, etc.)
134
- // This allows MCP to respond while indexing happens
135
- this.engine.initialize().catch(err => {
136
- console.error('Engine initialization error:', err);
137
- });
138
-
139
- // Handle shutdown
140
- process.on('SIGINT', () => {
141
- this.shutdown();
142
- process.exit(0);
143
- });
144
-
145
- process.on('SIGTERM', () => {
146
- this.shutdown();
147
- process.exit(0);
148
- });
149
- }
150
-
151
- shutdown(): void {
152
- this.engine.shutdown();
153
- }
154
- }
@@ -1,85 +0,0 @@
1
- import type { MemoryLayerEngine } from '../core/engine.js';
2
-
3
- export interface ResourceDefinition {
4
- uri: string;
5
- name: string;
6
- description: string;
7
- mimeType: string;
8
- }
9
-
10
- export const resourceDefinitions: ResourceDefinition[] = [
11
- {
12
- uri: 'memorylayer://decisions/recent',
13
- name: 'Recent Decisions',
14
- description: 'Last 10 architectural decisions made in this project',
15
- mimeType: 'application/json'
16
- },
17
- {
18
- uri: 'memorylayer://project/overview',
19
- name: 'Project Overview',
20
- description: 'High-level project summary including languages, files, and structure',
21
- mimeType: 'text/markdown'
22
- }
23
- ];
24
-
25
- export async function handleResourceRead(
26
- engine: MemoryLayerEngine,
27
- uri: string
28
- ): Promise<{ contents: string; mimeType: string }> {
29
- switch (uri) {
30
- case 'memorylayer://decisions/recent': {
31
- const decisions = engine.getRecentDecisions(10);
32
-
33
- const contents = JSON.stringify(
34
- decisions.map(d => ({
35
- id: d.id,
36
- title: d.title,
37
- description: d.description,
38
- files: d.files,
39
- tags: d.tags,
40
- created_at: d.createdAt.toISOString()
41
- })),
42
- null,
43
- 2
44
- );
45
-
46
- return { contents, mimeType: 'application/json' };
47
- }
48
-
49
- case 'memorylayer://project/overview': {
50
- const summary = engine.getProjectSummary();
51
-
52
- const markdown = `# ${summary.name}
53
-
54
- ${summary.description || 'No description available.'}
55
-
56
- ## Statistics
57
- - **Total Files**: ${summary.totalFiles}
58
- - **Total Lines**: ${summary.totalLines.toLocaleString()}
59
- - **Languages**: ${summary.languages.join(', ') || 'Unknown'}
60
-
61
- ## Key Directories
62
- ${summary.keyDirectories.map(d => `- \`${d}/\``).join('\n') || 'None detected'}
63
-
64
- ## Dependencies
65
- ${summary.dependencies.slice(0, 10).map(d => `- ${d}`).join('\n') || 'None detected'}
66
- ${summary.dependencies.length > 10 ? `\n... and ${summary.dependencies.length - 10} more` : ''}
67
-
68
- ## Recent Decisions
69
- ${summary.recentDecisions.length > 0
70
- ? summary.recentDecisions.map(d => `### ${d.title}
71
- ${d.description}
72
- _${d.createdAt.toLocaleDateString()}_
73
- `).join('\n')
74
- : 'No decisions recorded yet.'}
75
-
76
- ${summary.architectureNotes ? `## Architecture Notes\n${summary.architectureNotes}` : ''}
77
- `;
78
-
79
- return { contents: markdown, mimeType: 'text/markdown' };
80
- }
81
-
82
- default:
83
- throw new Error(`Unknown resource: ${uri}`);
84
- }
85
- }