@ninebix/nmt-system 1.0.4 → 2.0.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 (101) hide show
  1. package/README.md +30 -22
  2. package/dashboard-lite/index.html +458 -0
  3. package/dist/bin/nmt.js +225 -6
  4. package/dist/bin/nmt.js.map +1 -1
  5. package/dist/src/api/cli-server.d.ts.map +1 -1
  6. package/dist/src/api/cli-server.js +327 -30
  7. package/dist/src/api/cli-server.js.map +1 -1
  8. package/dist/src/cli/commands/db.d.ts +33 -0
  9. package/dist/src/cli/commands/db.d.ts.map +1 -0
  10. package/dist/src/cli/commands/db.js +197 -0
  11. package/dist/src/cli/commands/db.js.map +1 -0
  12. package/dist/src/cli/commands/infer.d.ts.map +1 -1
  13. package/dist/src/cli/commands/infer.js +8 -2
  14. package/dist/src/cli/commands/infer.js.map +1 -1
  15. package/dist/src/cli/commands/learn.d.ts.map +1 -1
  16. package/dist/src/cli/commands/learn.js +25 -1
  17. package/dist/src/cli/commands/learn.js.map +1 -1
  18. package/dist/src/cli/commands/sync.d.ts +14 -0
  19. package/dist/src/cli/commands/sync.d.ts.map +1 -1
  20. package/dist/src/cli/commands/sync.js +12 -7
  21. package/dist/src/cli/commands/sync.js.map +1 -1
  22. package/dist/src/connectors/index.d.ts +11 -0
  23. package/dist/src/connectors/index.d.ts.map +1 -0
  24. package/dist/src/connectors/index.js +24 -0
  25. package/dist/src/connectors/index.js.map +1 -0
  26. package/dist/src/connectors/mongodb-connector.d.ts +29 -0
  27. package/dist/src/connectors/mongodb-connector.d.ts.map +1 -0
  28. package/dist/src/connectors/mongodb-connector.js +286 -0
  29. package/dist/src/connectors/mongodb-connector.js.map +1 -0
  30. package/dist/src/connectors/mysql-connector.d.ts +29 -0
  31. package/dist/src/connectors/mysql-connector.d.ts.map +1 -0
  32. package/dist/src/connectors/mysql-connector.js +357 -0
  33. package/dist/src/connectors/mysql-connector.js.map +1 -0
  34. package/dist/src/connectors/types.d.ts +174 -0
  35. package/dist/src/connectors/types.d.ts.map +1 -0
  36. package/dist/src/connectors/types.js +6 -0
  37. package/dist/src/connectors/types.js.map +1 -0
  38. package/dist/src/core/attractor-model.d.ts +6 -2
  39. package/dist/src/core/attractor-model.d.ts.map +1 -1
  40. package/dist/src/core/attractor-model.js +260 -16
  41. package/dist/src/core/attractor-model.js.map +1 -1
  42. package/dist/src/core/hnsw-index.d.ts.map +1 -1
  43. package/dist/src/core/hnsw-index.js +16 -9
  44. package/dist/src/core/hnsw-index.js.map +1 -1
  45. package/dist/src/core/neuron-graph.d.ts +130 -1
  46. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  47. package/dist/src/core/neuron-graph.js +299 -1
  48. package/dist/src/core/neuron-graph.js.map +1 -1
  49. package/dist/src/core/probabilistic-neuron.d.ts.map +1 -1
  50. package/dist/src/core/probabilistic-neuron.js +24 -4
  51. package/dist/src/core/probabilistic-neuron.js.map +1 -1
  52. package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -1
  53. package/dist/src/core/probabilistic-orchestrator.js +17 -13
  54. package/dist/src/core/probabilistic-orchestrator.js.map +1 -1
  55. package/dist/src/extensions/clustering/index.d.ts +0 -7
  56. package/dist/src/extensions/clustering/index.d.ts.map +1 -1
  57. package/dist/src/extensions/clustering/index.js.map +1 -1
  58. package/dist/src/mcp/server.js +4 -0
  59. package/dist/src/mcp/server.js.map +1 -1
  60. package/dist/src/services/db-bridge.d.ts +46 -0
  61. package/dist/src/services/db-bridge.d.ts.map +1 -0
  62. package/dist/src/services/db-bridge.js +524 -0
  63. package/dist/src/services/db-bridge.js.map +1 -0
  64. package/dist/src/services/embedding-provider.d.ts +11 -1
  65. package/dist/src/services/embedding-provider.d.ts.map +1 -1
  66. package/dist/src/services/embedding-provider.js +78 -21
  67. package/dist/src/services/embedding-provider.js.map +1 -1
  68. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  69. package/dist/src/services/four-stage-learning.js +20 -9
  70. package/dist/src/services/four-stage-learning.js.map +1 -1
  71. package/dist/src/services/ingestion.d.ts +20 -1
  72. package/dist/src/services/ingestion.d.ts.map +1 -1
  73. package/dist/src/services/ingestion.js +92 -62
  74. package/dist/src/services/ingestion.js.map +1 -1
  75. package/dist/src/services/query.d.ts +57 -3
  76. package/dist/src/services/query.d.ts.map +1 -1
  77. package/dist/src/services/query.js +264 -42
  78. package/dist/src/services/query.js.map +1 -1
  79. package/dist/src/services/text-embedding.d.ts +1 -1
  80. package/dist/src/services/text-embedding.d.ts.map +1 -1
  81. package/dist/src/services/text-embedding.js +62 -3
  82. package/dist/src/services/text-embedding.js.map +1 -1
  83. package/dist/src/storage/neuron-store.d.ts +12 -1
  84. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  85. package/dist/src/storage/neuron-store.js +12 -1
  86. package/dist/src/storage/neuron-store.js.map +1 -1
  87. package/dist/src/sync/change-journal.d.ts.map +1 -1
  88. package/dist/src/sync/change-journal.js +63 -37
  89. package/dist/src/sync/change-journal.js.map +1 -1
  90. package/dist/src/sync/state-sync.d.ts +5 -0
  91. package/dist/src/sync/state-sync.d.ts.map +1 -1
  92. package/dist/src/sync/state-sync.js +9 -2
  93. package/dist/src/sync/state-sync.js.map +1 -1
  94. package/dist/src/types/index.d.ts +73 -3
  95. package/dist/src/types/index.d.ts.map +1 -1
  96. package/dist/src/types/index.js +7 -0
  97. package/dist/src/types/index.js.map +1 -1
  98. package/dist/src/utils/hash.d.ts.map +1 -1
  99. package/dist/src/utils/hash.js +3 -3
  100. package/dist/src/utils/hash.js.map +1 -1
  101. package/package.json +5 -1
@@ -5,38 +5,7 @@
5
5
  import { ChunkEngine } from '../core/chunk-engine.js';
6
6
  import { generateUUID } from '../utils/uuid.js';
7
7
  import { now } from '../utils/index.js';
8
- /**
9
- * Default embedding provider (placeholder - returns random embeddings)
10
- */
11
- class DefaultEmbeddingProvider {
12
- async embed(text) {
13
- // Generate deterministic pseudo-random embedding from text
14
- const embedding = new Float32Array(384);
15
- let hash = 0;
16
- for (let i = 0; i < text.length; i++) {
17
- hash = ((hash << 5) - hash) + text.charCodeAt(i);
18
- hash |= 0;
19
- }
20
- for (let i = 0; i < 384; i++) {
21
- hash = ((hash << 5) - hash) + i;
22
- hash |= 0;
23
- embedding[i] = (hash % 1000) / 1000 - 0.5;
24
- }
25
- // Normalize
26
- let norm = 0;
27
- for (let i = 0; i < 384; i++) {
28
- norm += embedding[i] * embedding[i];
29
- }
30
- norm = Math.sqrt(norm);
31
- for (let i = 0; i < 384; i++) {
32
- embedding[i] /= norm;
33
- }
34
- return embedding;
35
- }
36
- async embedBatch(texts) {
37
- return Promise.all(texts.map(t => this.embed(t)));
38
- }
39
- }
8
+ import { DeterministicEmbeddingProvider } from './embedding-provider.js';
40
9
  /**
41
10
  * Ingestion Service
42
11
  */
@@ -52,7 +21,7 @@ export class IngestionService {
52
21
  this.merkleEngine = merkleEngine;
53
22
  this.graphManager = graphManager;
54
23
  this.chunkStore = chunkStore;
55
- this.embeddingProvider = embeddingProvider ?? new DefaultEmbeddingProvider();
24
+ this.embeddingProvider = embeddingProvider ?? new DeterministicEmbeddingProvider();
56
25
  this.jobs = new Map();
57
26
  }
58
27
  /**
@@ -79,32 +48,54 @@ export class IngestionService {
79
48
  this.jobs.set(jobId, job);
80
49
  try {
81
50
  job.status = 'RUNNING';
82
- // Configure chunk engine
83
- if (options.useCDC !== undefined || options.chunkSize !== undefined) {
84
- this.chunkEngine = new ChunkEngine({
85
- useCDC: options.useCDC,
86
- chunkSize: options.chunkSize
87
- });
51
+ // ── Step 1: Generate embedding first (required for dedup check) ──────
52
+ const text = data.toString('utf-8');
53
+ const embedding = await this.embeddingProvider.embed(text);
54
+ job.progress = 30;
55
+ // ── Step 2: Semantic deduplication check ─────────────────────────────
56
+ // Default threshold: 0.95 (near-exact semantic duplicates only).
57
+ // Set deduplicationThreshold: 0 in options to skip.
58
+ const dedupThreshold = options.deduplicationThreshold ?? 0.95;
59
+ if (dedupThreshold > 0) {
60
+ const duplicate = await this.graphManager.findDuplicate(embedding, dedupThreshold);
61
+ if (duplicate) {
62
+ // Merge any new tags into the existing neuron
63
+ if (options.tags?.length) {
64
+ await this.graphManager.mergeTags(duplicate.id, options.tags);
65
+ }
66
+ job.neuronId = duplicate.id;
67
+ job.status = 'COMPLETED';
68
+ job.progress = 100;
69
+ job.completedAt = now();
70
+ return duplicate;
71
+ }
88
72
  }
89
- // Chunk the data
90
- const chunks = this.chunkEngine.chunk(data);
73
+ // ── Step 3: No duplicate — chunk and store ───────────────────────────
74
+ // CDC auto-detection: enable for files ≥ 32 KB.
75
+ // Content-defined boundaries produce stable chunk hashes across
76
+ // document versions, enabling cross-document byte dedup in ChunkStore.
77
+ // Fixed chunking is retained for small files (lower overhead, typically
78
+ // produces a single chunk anyway).
79
+ const CDC_AUTO_THRESHOLD = 32 * 1024; // 32 KB
80
+ const useCDC = options.useCDC ?? (data.length >= CDC_AUTO_THRESHOLD);
81
+ // Create a per-call engine so concurrent ingests don't race on this.chunkEngine
82
+ const chunkEngine = new ChunkEngine({
83
+ useCDC,
84
+ chunkSize: options.chunkSize
85
+ });
86
+ const chunks = chunkEngine.chunk(data);
91
87
  job.totalChunks = chunks.length;
92
- // Store chunks
93
88
  for (const chunk of chunks) {
94
89
  await this.chunkStore.put(chunk);
95
90
  job.processedChunks++;
96
- job.progress = (job.processedChunks / job.totalChunks) * 50;
91
+ job.progress = 30 + (job.processedChunks / job.totalChunks) * 40;
97
92
  }
98
- // Build Merkle tree from chunk hashes
93
+ // ── Step 4: Build Merkle tree ─────────────────────────────────────────
99
94
  const chunkHashes = chunks.map(c => c.hash);
100
95
  const merkleTree = this.merkleEngine.buildTree(chunkHashes);
101
96
  job.merkleRoot = merkleTree.root;
102
- job.progress = 60;
103
- // Generate embedding from text content
104
- const text = data.toString('utf-8');
105
- const embedding = await this.embeddingProvider.embed(text);
106
97
  job.progress = 80;
107
- // Create neuron
98
+ // ── Step 5: Create neuron ─────────────────────────────────────────────
108
99
  const neuron = await this.graphManager.createNeuron({
109
100
  embedding,
110
101
  chunkHashes,
@@ -112,7 +103,18 @@ export class IngestionService {
112
103
  sourceType: options.sourceType ?? 'text',
113
104
  tags: options.tags,
114
105
  autoConnect: options.autoConnect,
115
- connectionThreshold: options.connectionThreshold
106
+ connectionThreshold: options.connectionThreshold,
107
+ sourceRow: options.sourceRow,
108
+ sourceColumns: options.sourceColumns,
109
+ sourceForeignKeys: options.sourceForeignKeys,
110
+ sourceIndexes: options.sourceIndexes,
111
+ sourceChecks: options.sourceChecks,
112
+ sourceTriggers: options.sourceTriggers,
113
+ sourceTable: options.sourceTable,
114
+ sourceEngine: options.sourceEngine,
115
+ sourceCharset: options.sourceCharset,
116
+ sourcePath: options.sourcePath,
117
+ sourceName: options.sourceName,
116
118
  });
117
119
  job.neuronId = neuron.id;
118
120
  job.status = 'COMPLETED';
@@ -170,7 +172,7 @@ export class IngestionService {
170
172
  if (!job || job.status !== 'RUNNING') {
171
173
  return false;
172
174
  }
173
- job.status = 'FAILED';
175
+ job.status = 'CANCELLED';
174
176
  job.error = 'Cancelled by user';
175
177
  job.completedAt = now();
176
178
  return true;
@@ -208,27 +210,44 @@ export class IngestionService {
208
210
  const job = this.jobs.get(jobId);
209
211
  try {
210
212
  job.status = 'RUNNING';
211
- // Chunk the data
212
- const chunks = this.chunkEngine.chunk(data);
213
+ // ── Step 1: Embedding first ───────────────────────────────────────────
214
+ const text = data.toString('utf-8');
215
+ const embedding = await this.embeddingProvider.embed(text);
216
+ job.progress = 30;
217
+ // ── Step 2: Semantic deduplication check ─────────────────────────────
218
+ const dedupThreshold = options.deduplicationThreshold ?? 0.95;
219
+ if (dedupThreshold > 0) {
220
+ const duplicate = await this.graphManager.findDuplicate(embedding, dedupThreshold);
221
+ if (duplicate) {
222
+ if (options.tags?.length) {
223
+ await this.graphManager.mergeTags(duplicate.id, options.tags);
224
+ }
225
+ job.neuronId = duplicate.id;
226
+ job.status = 'COMPLETED';
227
+ job.progress = 100;
228
+ job.completedAt = now();
229
+ return;
230
+ }
231
+ }
232
+ // ── Step 3: Chunk and store ───────────────────────────────────────────
233
+ const CDC_AUTO_THRESHOLD = 32 * 1024;
234
+ const useCDC = options.useCDC ?? (data.length >= CDC_AUTO_THRESHOLD);
235
+ const chunkEngine = new ChunkEngine({ useCDC, chunkSize: options.chunkSize });
236
+ const chunks = chunkEngine.chunk(data);
213
237
  job.totalChunks = chunks.length;
214
- // Store chunks
215
238
  for (const chunk of chunks) {
216
239
  if (job.status !== 'RUNNING')
217
240
  return; // Check for cancellation
218
241
  await this.chunkStore.put(chunk);
219
242
  job.processedChunks++;
220
- job.progress = (job.processedChunks / job.totalChunks) * 50;
243
+ job.progress = 30 + (job.processedChunks / job.totalChunks) * 40;
221
244
  }
222
- // Build Merkle tree
245
+ // ── Step 4: Merkle tree ───────────────────────────────────────────────
223
246
  const chunkHashes = chunks.map(c => c.hash);
224
247
  const merkleTree = this.merkleEngine.buildTree(chunkHashes);
225
248
  job.merkleRoot = merkleTree.root;
226
- job.progress = 60;
227
- // Generate embedding
228
- const text = data.toString('utf-8');
229
- const embedding = await this.embeddingProvider.embed(text);
230
249
  job.progress = 80;
231
- // Create neuron
250
+ // ── Step 5: Create neuron ─────────────────────────────────────────────
232
251
  const neuron = await this.graphManager.createNeuron({
233
252
  embedding,
234
253
  chunkHashes,
@@ -236,7 +255,18 @@ export class IngestionService {
236
255
  sourceType: options.sourceType ?? 'text',
237
256
  tags: options.tags,
238
257
  autoConnect: options.autoConnect,
239
- connectionThreshold: options.connectionThreshold
258
+ connectionThreshold: options.connectionThreshold,
259
+ sourceRow: options.sourceRow,
260
+ sourceColumns: options.sourceColumns,
261
+ sourceForeignKeys: options.sourceForeignKeys,
262
+ sourceIndexes: options.sourceIndexes,
263
+ sourceChecks: options.sourceChecks,
264
+ sourceTriggers: options.sourceTriggers,
265
+ sourceTable: options.sourceTable,
266
+ sourceEngine: options.sourceEngine,
267
+ sourceCharset: options.sourceCharset,
268
+ sourcePath: options.sourcePath,
269
+ sourceName: options.sourceName,
240
270
  });
241
271
  job.neuronId = neuron.id;
242
272
  job.status = 'COMPLETED';
@@ -1 +1 @@
1
- {"version":3,"file":"ingestion.js","sourceRoot":"","sources":["../../../src/services/ingestion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingestion.js","sourceRoot":"","sources":["../../../src/services/ingestion.ts"],"names":[],"mappings":"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"}
@@ -41,15 +41,47 @@ export declare class QueryService {
41
41
  private chunkStore;
42
42
  private neuronStore;
43
43
  private embeddingProvider;
44
+ private workingMemory;
45
+ private episodeBuffer;
46
+ private readonly MAX_EPISODES;
47
+ private dopamineLevel;
48
+ private readonly DOPAMINE_DECAY;
49
+ private readonly DOPAMINE_RISE;
50
+ private readonly DOPAMINE_DROP;
44
51
  constructor(graphManager: NeuronGraphManager, merkleEngine: MerkleEngine, chunkStore: IChunkStore, neuronStore: INeuronStore, embeddingProvider?: QueryEmbeddingProvider);
52
+ /** Current working memory contents (newest last) */
53
+ getWorkingMemory(): UUID[];
54
+ /** Clear working memory (e.g., on topic change) */
55
+ clearWorkingMemory(): void;
56
+ /** Current dopamine level (0–1) */
57
+ getDopamineLevel(): number;
58
+ /** Update working memory with newly accessed neurons (LRU eviction) */
59
+ private updateWorkingMemory;
60
+ /** Compute max synapse weight from working memory to a candidate neuron */
61
+ private workingMemoryBoost;
45
62
  /**
46
- * Search by text query
63
+ * Compute a simple TF-normalized keyword overlap score between query and content.
64
+ * Returns a value in [0, 1] where 1 means all query terms appear frequently.
65
+ */
66
+ private computeKeywordScore;
67
+ /**
68
+ * Search by text query with optional hybrid keyword reranking
47
69
  */
48
70
  search(query: string, options?: SearchOptions): Promise<QueryResult[]>;
49
71
  /**
50
- * Search by embedding vector
72
+ * Search by embedding vector with optional hybrid reranking.
73
+ *
74
+ * Pipeline:
75
+ * 1. Pattern completion (Hopfield refinement) — if index has >1 node
76
+ * 2. HNSW semantic search
77
+ * 3. BM25 keyword hybrid reranking
78
+ * 4. Synapse-weight boost (Hebbian signal)
79
+ * 5. Inhibitory penalty
80
+ * 6. Working memory context boost
81
+ * 7. Fire-and-forget: Hebbian reinforce + inhibit + episode encode
82
+ * 8. Update working memory + decay dopamine
51
83
  */
52
- searchByEmbedding(embedding: Embedding384, options?: SearchOptions): Promise<QueryResult[]>;
84
+ searchByEmbedding(embedding: Embedding384, options?: SearchOptions, queryText?: string): Promise<QueryResult[]>;
53
85
  /**
54
86
  * Search by neuron ID (find similar)
55
87
  */
@@ -94,6 +126,28 @@ export declare class QueryService {
94
126
  * Set embedding provider
95
127
  */
96
128
  setEmbeddingProvider(provider: QueryEmbeddingProvider): void;
129
+ /**
130
+ * Online embedding learning — adjust a neuron's embedding vector based on
131
+ * user relevance feedback.
132
+ *
133
+ * Biological analogy: Long-Term Potentiation (LTP) / Long-Term Depression (LTD).
134
+ * Positive feedback moves the neuron toward the query, negative moves it away.
135
+ *
136
+ * Formula: new_emb = L2_normalize(emb + α * direction * (query_emb - emb))
137
+ * direction = +1 for relevant, -1 for irrelevant
138
+ * α (learning rate) = 0.01 (small step — prevents catastrophic forgetting)
139
+ *
140
+ * @param neuronId Target neuron to adjust
141
+ * @param query The query text that elicited the feedback
142
+ * @param relevant true → neuron should rank higher for this query
143
+ * false → neuron should rank lower
144
+ */
145
+ recordFeedback(neuronId: UUID, query: string, relevant: boolean): Promise<{
146
+ neuronId: UUID;
147
+ embeddingDrift: number;
148
+ feedbackCount: number;
149
+ dopamineLevel: number;
150
+ }>;
97
151
  }
98
152
  /**
99
153
  * Create a QueryService instance
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/services/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/services/query.ts"],"names":[],"mappings":"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"}