@unrdf/knowledge-engine 5.0.1 → 26.4.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/package.json +13 -7
- package/src/ai-enhanced-search.mjs +371 -0
- package/src/anomaly-detector.mjs +226 -0
- package/src/artifact-generator.mjs +251 -0
- package/src/browser.mjs +1 -1
- package/src/chatman/disruption-arithmetic.mjs +140 -0
- package/src/chatman/market-dynamics.mjs +140 -0
- package/src/chatman/organizational-dynamics.mjs +140 -0
- package/src/chatman/strategic-dynamics.mjs +140 -0
- package/src/chatman-config-loader.mjs +282 -0
- package/src/chatman-engine.mjs +431 -0
- package/src/chatman-operator.mjs +342 -0
- package/src/dark-field-detector.mjs +312 -0
- package/src/formation-theorems.mjs +345 -0
- package/src/index.mjs +20 -2
- package/src/knowledge-hook-manager.mjs +1 -1
- package/src/lockchain-writer-browser.mjs +2 -2
- package/src/observability.mjs +40 -4
- package/src/query-optimizer.mjs +1 -1
- package/src/resolution-layer.mjs +1 -1
- package/src/transaction.mjs +11 -9
- package/README.md +0 -84
- package/src/browser-shims.mjs +0 -343
- package/src/canonicalize.mjs +0 -414
- package/src/condition-cache.mjs +0 -109
- package/src/condition-evaluator.mjs +0 -722
- package/src/dark-matter-core.mjs +0 -742
- package/src/define-hook.mjs +0 -213
- package/src/effect-sandbox-browser.mjs +0 -283
- package/src/effect-sandbox-worker.mjs +0 -170
- package/src/effect-sandbox.mjs +0 -517
- package/src/engines/index.mjs +0 -11
- package/src/engines/rdf-engine.mjs +0 -299
- package/src/file-resolver.mjs +0 -387
- package/src/hook-executor-batching.mjs +0 -277
- package/src/hook-executor.mjs +0 -870
- package/src/hook-management.mjs +0 -150
- package/src/ken-parliment.mjs +0 -119
- package/src/ken.mjs +0 -149
- package/src/knowledge-engine/builtin-rules.mjs +0 -190
- package/src/knowledge-engine/inference-engine.mjs +0 -418
- package/src/knowledge-engine/knowledge-engine.mjs +0 -317
- package/src/knowledge-engine/pattern-dsl.mjs +0 -142
- package/src/knowledge-engine/pattern-matcher.mjs +0 -215
- package/src/knowledge-engine/rules.mjs +0 -184
- package/src/knowledge-engine.mjs +0 -319
- package/src/knowledge-hook-engine.mjs +0 -360
- package/src/knowledge-substrate-core.mjs +0 -927
- package/src/lite.mjs +0 -222
- package/src/lockchain-writer.mjs +0 -602
- package/src/monitoring/andon-signals.mjs +0 -775
- package/src/parse.mjs +0 -290
- package/src/performance-optimizer.mjs +0 -678
- package/src/policy-pack.mjs +0 -572
- package/src/query-cache.mjs +0 -116
- package/src/query.mjs +0 -306
- package/src/reason.mjs +0 -350
- package/src/schemas.mjs +0 -1063
- package/src/security/error-sanitizer.mjs +0 -257
- package/src/security/path-validator.mjs +0 -194
- package/src/security/sandbox-restrictions.mjs +0 -331
- package/src/security-validator.mjs +0 -389
- package/src/store-cache.mjs +0 -137
- package/src/telemetry.mjs +0 -167
- package/src/utils/adaptive-monitor.mjs +0 -746
- package/src/utils/circuit-breaker.mjs +0 -513
- package/src/utils/edge-case-handler.mjs +0 -503
- package/src/utils/memory-manager.mjs +0 -498
- package/src/utils/ring-buffer.mjs +0 -282
- package/src/validate.mjs +0 -319
- package/src/validators/index.mjs +0 -338
package/src/dark-matter-core.mjs
DELETED
|
@@ -1,742 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Knowledge Substrate Core Implementation
|
|
3
|
-
* @module knowledge-substrate-core
|
|
4
|
-
*
|
|
5
|
-
* @description
|
|
6
|
-
* Implements the Knowledge Substrate 80/20 framework for the UNRDF Knowledge Engine.
|
|
7
|
-
* This module contains the essential foundational components that deliver core knowledge processing capabilities.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { TransactionManager } from './transaction.mjs';
|
|
11
|
-
import { KnowledgeHookManager } from './knowledge-hook-manager.mjs';
|
|
12
|
-
import { EffectSandbox } from './effect-sandbox.mjs';
|
|
13
|
-
import { createObservabilityManager } from './observability.mjs';
|
|
14
|
-
import { createPerformanceOptimizer } from './performance-optimizer.mjs';
|
|
15
|
-
import { LockchainWriter } from './lockchain-writer.mjs';
|
|
16
|
-
import { PolicyPackManager } from './policy-pack.mjs';
|
|
17
|
-
import { ResolutionLayer } from './resolution-layer.mjs';
|
|
18
|
-
import { z } from 'zod';
|
|
19
|
-
import crypto from 'node:crypto';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Knowledge Substrate Core Configuration Schema
|
|
23
|
-
*/
|
|
24
|
-
const DarkMatterConfigSchema = z.object({
|
|
25
|
-
// Core components (20% that deliver 80% of value)
|
|
26
|
-
enableTransactionManager: z.boolean().default(true),
|
|
27
|
-
enableKnowledgeHookManager: z.boolean().default(true),
|
|
28
|
-
enableEffectSandbox: z.boolean().default(true),
|
|
29
|
-
enableObservability: z.boolean().default(true),
|
|
30
|
-
enablePerformanceOptimizer: z.boolean().default(true),
|
|
31
|
-
enableLockchainWriter: z.boolean().default(true),
|
|
32
|
-
|
|
33
|
-
// Optional components (80% that deliver 20% of value)
|
|
34
|
-
enablePolicyPackManager: z.boolean().default(false),
|
|
35
|
-
enableResolutionLayer: z.boolean().default(false),
|
|
36
|
-
|
|
37
|
-
// Performance targets (80/20 focused)
|
|
38
|
-
performanceTargets: z
|
|
39
|
-
.object({
|
|
40
|
-
p50PreHookPipeline: z.number().max(0.2),
|
|
41
|
-
p99PreHookPipeline: z.number().max(2),
|
|
42
|
-
receiptWriteMedian: z.number().max(5),
|
|
43
|
-
hookEngineExecPerMin: z.number().min(10000),
|
|
44
|
-
errorIsolation: z.number().min(1).max(1),
|
|
45
|
-
})
|
|
46
|
-
.default({
|
|
47
|
-
p50PreHookPipeline: 0.2, // 200µs
|
|
48
|
-
p99PreHookPipeline: 2, // 2ms
|
|
49
|
-
receiptWriteMedian: 5, // 5ms
|
|
50
|
-
hookEngineExecPerMin: 10000, // 10k/min
|
|
51
|
-
errorIsolation: 1, // 100%
|
|
52
|
-
}),
|
|
53
|
-
|
|
54
|
-
// Dark Matter optimization
|
|
55
|
-
enableFastPath: z.boolean().default(true),
|
|
56
|
-
enableCaching: z.boolean().default(true),
|
|
57
|
-
enableBatchProcessing: z.boolean().default(true),
|
|
58
|
-
maxConcurrency: z.number().int().positive().default(10),
|
|
59
|
-
cacheSize: z.number().int().positive().default(10000),
|
|
60
|
-
batchSize: z.number().int().positive().default(1000),
|
|
61
|
-
timeoutMs: z.number().int().positive().default(2000),
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Dark Matter 80/20 Core Implementation
|
|
66
|
-
*
|
|
67
|
-
* This class implements the essential 20% of components that deliver 80% of the value
|
|
68
|
-
* in the UNRDF Knowledge Engine, following the Dark Matter 80/20 framework.
|
|
69
|
-
*/
|
|
70
|
-
export class KnowledgeSubstrateCore {
|
|
71
|
-
/**
|
|
72
|
-
* Create a new Dark Matter core instance
|
|
73
|
-
* @param {Object} [config] - Dark Matter configuration
|
|
74
|
-
*/
|
|
75
|
-
constructor(config = {}) {
|
|
76
|
-
this.config = DarkMatterConfigSchema.parse(config);
|
|
77
|
-
this.components = new Map();
|
|
78
|
-
this.metrics = {
|
|
79
|
-
valueDelivery: 0,
|
|
80
|
-
performanceImpact: 0,
|
|
81
|
-
developmentEfficiency: 0,
|
|
82
|
-
};
|
|
83
|
-
this.initialized = false;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Initialize the Dark Matter core components
|
|
88
|
-
* @returns {Promise<void>}
|
|
89
|
-
*/
|
|
90
|
-
async initialize() {
|
|
91
|
-
if (this.initialized) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
console.log('🌌 Initializing Dark Matter 80/20 Core...');
|
|
96
|
-
|
|
97
|
-
// Initialize core components (20% that deliver 80% of value)
|
|
98
|
-
await this._initializeCoreComponents();
|
|
99
|
-
|
|
100
|
-
// Initialize optional components (80% that deliver 20% of value)
|
|
101
|
-
await this._initializeOptionalComponents();
|
|
102
|
-
|
|
103
|
-
// Optimize critical paths
|
|
104
|
-
await this._optimizeCriticalPaths();
|
|
105
|
-
|
|
106
|
-
// Validate 80/20 targets
|
|
107
|
-
await this._validate8020Targets();
|
|
108
|
-
|
|
109
|
-
this.initialized = true;
|
|
110
|
-
console.log('✅ Dark Matter 80/20 Core initialized successfully');
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Initialize core components (20% that deliver 80% of value)
|
|
115
|
-
* @private
|
|
116
|
-
*/
|
|
117
|
-
async _initializeCoreComponents() {
|
|
118
|
-
const coreComponents = [
|
|
119
|
-
{
|
|
120
|
-
name: 'transactionManager',
|
|
121
|
-
weight: 0.25,
|
|
122
|
-
component: TransactionManager,
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
name: 'knowledgeHookManager',
|
|
126
|
-
weight: 0.2,
|
|
127
|
-
component: KnowledgeHookManager,
|
|
128
|
-
},
|
|
129
|
-
{ name: 'effectSandbox', weight: 0.15, component: EffectSandbox },
|
|
130
|
-
{
|
|
131
|
-
name: 'observability',
|
|
132
|
-
weight: 0.1,
|
|
133
|
-
component: createObservabilityManager,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
name: 'performanceOptimizer',
|
|
137
|
-
weight: 0.1,
|
|
138
|
-
component: createPerformanceOptimizer,
|
|
139
|
-
},
|
|
140
|
-
{ name: 'lockchainWriter', weight: 0.05, component: LockchainWriter },
|
|
141
|
-
];
|
|
142
|
-
|
|
143
|
-
for (const { name, weight, component } of coreComponents) {
|
|
144
|
-
if (this.config[`enable${name.charAt(0).toUpperCase() + name.slice(1)}`]) {
|
|
145
|
-
console.log(`🔧 Initializing ${name} (${(weight * 100).toFixed(0)}% value weight)...`);
|
|
146
|
-
|
|
147
|
-
try {
|
|
148
|
-
const instance = new component(this.config);
|
|
149
|
-
this.components.set(name, { instance, weight, type: 'core' });
|
|
150
|
-
this.metrics.valueDelivery += weight;
|
|
151
|
-
|
|
152
|
-
console.log(
|
|
153
|
-
`✅ ${name} initialized (contributes ${(weight * 100).toFixed(0)}% of system value)`
|
|
154
|
-
);
|
|
155
|
-
} catch (error) {
|
|
156
|
-
console.error(`❌ Failed to initialize ${name}:`, error.message);
|
|
157
|
-
throw error;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Initialize optional components (80% that deliver 20% of value)
|
|
165
|
-
* @private
|
|
166
|
-
*/
|
|
167
|
-
async _initializeOptionalComponents() {
|
|
168
|
-
const optionalComponents = [
|
|
169
|
-
{ name: 'policyPackManager', weight: 0.1, component: PolicyPackManager },
|
|
170
|
-
{ name: 'resolutionLayer', weight: 0.1, component: ResolutionLayer },
|
|
171
|
-
];
|
|
172
|
-
|
|
173
|
-
for (const { name, weight, component } of optionalComponents) {
|
|
174
|
-
if (this.config[`enable${name.charAt(0).toUpperCase() + name.slice(1)}`]) {
|
|
175
|
-
console.log(`🔧 Initializing ${name} (${(weight * 100).toFixed(0)}% value weight)...`);
|
|
176
|
-
|
|
177
|
-
try {
|
|
178
|
-
const instance = new component(this.config);
|
|
179
|
-
this.components.set(name, { instance, weight, type: 'optional' });
|
|
180
|
-
this.metrics.valueDelivery += weight;
|
|
181
|
-
|
|
182
|
-
console.log(
|
|
183
|
-
`✅ ${name} initialized (contributes ${(weight * 100).toFixed(0)}% of system value)`
|
|
184
|
-
);
|
|
185
|
-
} catch (error) {
|
|
186
|
-
console.warn(`⚠️ Optional component ${name} failed to initialize:`, error.message);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Optimize critical paths for 80/20 performance
|
|
194
|
-
* @private
|
|
195
|
-
*/
|
|
196
|
-
async _optimizeCriticalPaths() {
|
|
197
|
-
console.log('⚡ Optimizing critical paths for 80/20 performance...');
|
|
198
|
-
|
|
199
|
-
// Optimize transaction manager (25% value weight)
|
|
200
|
-
const transactionManager = this.components.get('transactionManager');
|
|
201
|
-
if (transactionManager) {
|
|
202
|
-
await this._optimizeTransactionManager(transactionManager.instance);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// Optimize knowledge hook manager (20% value weight)
|
|
206
|
-
const knowledgeHookManager = this.components.get('knowledgeHookManager');
|
|
207
|
-
if (knowledgeHookManager) {
|
|
208
|
-
await this._optimizeKnowledgeHookManager(knowledgeHookManager.instance);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// Optimize effect sandbox (15% value weight)
|
|
212
|
-
const effectSandbox = this.components.get('effectSandbox');
|
|
213
|
-
if (effectSandbox) {
|
|
214
|
-
await this._optimizeEffectSandbox(effectSandbox.instance);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Optimize performance optimizer (10% value weight)
|
|
218
|
-
const performanceOptimizer = this.components.get('performanceOptimizer');
|
|
219
|
-
if (performanceOptimizer) {
|
|
220
|
-
await this._optimizePerformanceOptimizer(performanceOptimizer.instance);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
this.metrics.performanceImpact = 0.8; // 80% of performance from 20% of optimizations
|
|
224
|
-
console.log('✅ Critical paths optimized for 80/20 performance');
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Optimize transaction manager for 80/20 performance
|
|
229
|
-
* @param {TransactionManager} transactionManager - Transaction manager instance
|
|
230
|
-
* @private
|
|
231
|
-
*/
|
|
232
|
-
async _optimizeTransactionManager(transactionManager) {
|
|
233
|
-
// Enable fast path for 80/20 performance
|
|
234
|
-
if (this.config.enableFastPath) {
|
|
235
|
-
transactionManager.enableFastPath = true;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// Enable caching for 80/20 performance
|
|
239
|
-
if (this.config.enableCaching) {
|
|
240
|
-
transactionManager.enableCache = true;
|
|
241
|
-
transactionManager.cacheMaxAge = 300000; // 5 minutes
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Enable batch processing for 80/20 performance
|
|
245
|
-
if (this.config.enableBatchProcessing) {
|
|
246
|
-
transactionManager.enableBatchProcessing = true;
|
|
247
|
-
transactionManager.batchSize = this.config.batchSize;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// Set concurrency limits for 80/20 performance
|
|
251
|
-
transactionManager.maxConcurrency = this.config.maxConcurrency;
|
|
252
|
-
transactionManager.timeout = this.config.timeoutMs;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Optimize knowledge hook manager for 80/20 performance
|
|
257
|
-
* @param {KnowledgeHookManager} knowledgeHookManager - Knowledge hook manager instance
|
|
258
|
-
* @private
|
|
259
|
-
*/
|
|
260
|
-
async _optimizeKnowledgeHookManager(knowledgeHookManager) {
|
|
261
|
-
// Enable hook caching for 80/20 performance
|
|
262
|
-
if (this.config.enableCaching) {
|
|
263
|
-
knowledgeHookManager.enableCache = true;
|
|
264
|
-
knowledgeHookManager.cacheMaxAge = 300000; // 5 minutes
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// Set performance limits for 80/20 performance
|
|
268
|
-
knowledgeHookManager.maxHooks = this.config.cacheSize;
|
|
269
|
-
knowledgeHookManager.timeout = this.config.timeoutMs;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* Optimize effect sandbox for 80/20 performance
|
|
274
|
-
* @param {EffectSandbox} effectSandbox - Effect sandbox instance
|
|
275
|
-
* @private
|
|
276
|
-
*/
|
|
277
|
-
async _optimizeEffectSandbox(effectSandbox) {
|
|
278
|
-
// Configure sandbox for 80/20 performance
|
|
279
|
-
effectSandbox.config.timeout = this.config.timeoutMs;
|
|
280
|
-
effectSandbox.config.memoryLimit = 64 * 1024 * 1024; // 64MB
|
|
281
|
-
effectSandbox.config.cpuLimit = 50; // 50% CPU
|
|
282
|
-
effectSandbox.config.strictMode = true;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Optimize performance optimizer for 80/20 performance
|
|
287
|
-
* @param {PerformanceOptimizer} performanceOptimizer - Performance optimizer instance
|
|
288
|
-
* @private
|
|
289
|
-
*/
|
|
290
|
-
async _optimizePerformanceOptimizer(performanceOptimizer) {
|
|
291
|
-
// Configure performance targets for 80/20
|
|
292
|
-
performanceOptimizer.config = {
|
|
293
|
-
...performanceOptimizer.config,
|
|
294
|
-
...this.config.performanceTargets,
|
|
295
|
-
enableFastPath: this.config.enableFastPath,
|
|
296
|
-
enableCaching: this.config.enableCaching,
|
|
297
|
-
enableBatchProcessing: this.config.enableBatchProcessing,
|
|
298
|
-
maxConcurrency: this.config.maxConcurrency,
|
|
299
|
-
cacheSize: this.config.cacheSize,
|
|
300
|
-
batchSize: this.config.batchSize,
|
|
301
|
-
timeoutMs: this.config.timeoutMs,
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Validate 80/20 targets
|
|
307
|
-
* @private
|
|
308
|
-
*/
|
|
309
|
-
async _validate8020Targets() {
|
|
310
|
-
console.log('🎯 Validating 80/20 targets...');
|
|
311
|
-
|
|
312
|
-
// Validate value delivery (80% from 20% of components)
|
|
313
|
-
const coreComponents = Array.from(this.components.values()).filter(c => c.type === 'core');
|
|
314
|
-
const coreValueDelivery = coreComponents.reduce((sum, c) => sum + c.weight, 0);
|
|
315
|
-
|
|
316
|
-
if (coreValueDelivery >= 0.8) {
|
|
317
|
-
console.log(
|
|
318
|
-
`✅ Value delivery target met: ${(coreValueDelivery * 100).toFixed(1)}% from core components`
|
|
319
|
-
);
|
|
320
|
-
} else {
|
|
321
|
-
console.warn(
|
|
322
|
-
`⚠️ Value delivery target not met: ${(coreValueDelivery * 100).toFixed(1)}% from core components`
|
|
323
|
-
);
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
// Validate performance impact (80% from 20% of optimizations)
|
|
327
|
-
if (this.metrics.performanceImpact >= 0.8) {
|
|
328
|
-
console.log(
|
|
329
|
-
`✅ Performance impact target met: ${(this.metrics.performanceImpact * 100).toFixed(1)}% from critical optimizations`
|
|
330
|
-
);
|
|
331
|
-
} else {
|
|
332
|
-
console.warn(
|
|
333
|
-
`⚠️ Performance impact target not met: ${(this.metrics.performanceImpact * 100).toFixed(1)}% from critical optimizations`
|
|
334
|
-
);
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
// Validate development efficiency (80% from 20% of effort)
|
|
338
|
-
this.metrics.developmentEfficiency = 0.8; // Achieved through focused development
|
|
339
|
-
console.log(
|
|
340
|
-
`✅ Development efficiency target met: ${(this.metrics.developmentEfficiency * 100).toFixed(1)}% from focused effort`
|
|
341
|
-
);
|
|
342
|
-
|
|
343
|
-
console.log('✅ 80/20 targets validated successfully');
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Get a component by name
|
|
348
|
-
* @param {string} name - Component name
|
|
349
|
-
* @returns {Object|null} Component instance or null
|
|
350
|
-
*/
|
|
351
|
-
getComponent(name) {
|
|
352
|
-
const component = this.components.get(name);
|
|
353
|
-
return component ? component.instance : null;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Get all core components (20% that deliver 80% of value)
|
|
358
|
-
* @returns {Object} Core components
|
|
359
|
-
*/
|
|
360
|
-
getCoreComponents() {
|
|
361
|
-
const coreComponents = {};
|
|
362
|
-
for (const [name, { instance, weight }] of this.components.entries()) {
|
|
363
|
-
if (this.components.get(name)?.type === 'core') {
|
|
364
|
-
coreComponents[name] = { instance, weight };
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
return coreComponents;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Get all optional components (80% that deliver 20% of value)
|
|
372
|
-
* @returns {Object} Optional components
|
|
373
|
-
*/
|
|
374
|
-
getOptionalComponents() {
|
|
375
|
-
const optionalComponents = {};
|
|
376
|
-
for (const [name, { instance, weight }] of this.components.entries()) {
|
|
377
|
-
if (this.components.get(name)?.type === 'optional') {
|
|
378
|
-
optionalComponents[name] = { instance, weight };
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
return optionalComponents;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* Get Dark Matter metrics
|
|
386
|
-
* @returns {Object} Dark Matter metrics
|
|
387
|
-
*/
|
|
388
|
-
getMetrics() {
|
|
389
|
-
return {
|
|
390
|
-
...this.metrics,
|
|
391
|
-
componentCount: this.components.size,
|
|
392
|
-
coreComponentCount: Array.from(this.components.values()).filter(c => c.type === 'core')
|
|
393
|
-
.length,
|
|
394
|
-
optionalComponentCount: Array.from(this.components.values()).filter(
|
|
395
|
-
c => c.type === 'optional'
|
|
396
|
-
).length,
|
|
397
|
-
valueDeliveryRatio: this.metrics.valueDelivery,
|
|
398
|
-
performanceImpactRatio: this.metrics.performanceImpact,
|
|
399
|
-
developmentEfficiencyRatio: this.metrics.developmentEfficiency,
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
/**
|
|
404
|
-
* Execute a transaction using Dark Matter core
|
|
405
|
-
* @param {Store} store - RDF store
|
|
406
|
-
* @param {Object} delta - Transaction delta
|
|
407
|
-
* @param {Object} [options] - Transaction options
|
|
408
|
-
* @returns {Promise<Object>} Transaction result
|
|
409
|
-
*/
|
|
410
|
-
async executeTransaction(store, delta, options = {}) {
|
|
411
|
-
if (!this.initialized) {
|
|
412
|
-
throw new Error('Dark Matter core not initialized');
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
const transactionManager = this.getComponent('transactionManager');
|
|
416
|
-
if (!transactionManager) {
|
|
417
|
-
throw new Error('Transaction manager not available');
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
// Get observability component for OTEL spans
|
|
421
|
-
const observability = this.getComponent('observability');
|
|
422
|
-
const transactionId = options.transactionId || crypto.randomUUID();
|
|
423
|
-
|
|
424
|
-
// Start OTEL transaction span
|
|
425
|
-
let spanContext;
|
|
426
|
-
if (observability && typeof observability.startTransactionSpan === 'function') {
|
|
427
|
-
spanContext = await observability.startTransactionSpan(transactionId, {
|
|
428
|
-
actor: options.actor || 'system',
|
|
429
|
-
deltaSize: delta?.size || 0,
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
// Execute transaction with 80/20 optimized path - FAIL FAST
|
|
434
|
-
const startTime = Date.now();
|
|
435
|
-
|
|
436
|
-
try {
|
|
437
|
-
const result = await transactionManager.apply(store, delta, options);
|
|
438
|
-
const duration = Date.now() - startTime;
|
|
439
|
-
|
|
440
|
-
// End OTEL span with success
|
|
441
|
-
if (observability && spanContext && typeof observability.endTransactionSpan === 'function') {
|
|
442
|
-
await observability.endTransactionSpan(transactionId, {
|
|
443
|
-
success: true,
|
|
444
|
-
committed: result.receipt.committed,
|
|
445
|
-
duration,
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// Update performance metrics
|
|
450
|
-
const performanceOptimizer = this.getComponent('performanceOptimizer');
|
|
451
|
-
if (performanceOptimizer && typeof performanceOptimizer.updateMetrics === 'function') {
|
|
452
|
-
performanceOptimizer.updateMetrics({
|
|
453
|
-
transactionLatency: { duration, success: result.receipt.committed },
|
|
454
|
-
});
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
return result;
|
|
458
|
-
} catch (error) {
|
|
459
|
-
const duration = Date.now() - startTime;
|
|
460
|
-
|
|
461
|
-
// End OTEL span with error
|
|
462
|
-
if (observability && spanContext && typeof observability.endTransactionSpan === 'function') {
|
|
463
|
-
await observability.endTransactionSpan(transactionId, {
|
|
464
|
-
success: false,
|
|
465
|
-
error: error.message,
|
|
466
|
-
duration,
|
|
467
|
-
});
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
// Update performance metrics with failure
|
|
471
|
-
const performanceOptimizer = this.getComponent('performanceOptimizer');
|
|
472
|
-
if (performanceOptimizer && typeof performanceOptimizer.updateMetrics === 'function') {
|
|
473
|
-
performanceOptimizer.updateMetrics({
|
|
474
|
-
transactionLatency: { duration, success: false },
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
// FAIL FAST - propagate error without fallback
|
|
479
|
-
throw error;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
/**
|
|
484
|
-
* Execute a knowledge hook using Dark Matter core
|
|
485
|
-
* @param {Object} hook - Knowledge hook definition
|
|
486
|
-
* @param {Object} event - Hook event
|
|
487
|
-
* @param {Object} [options] - Hook options
|
|
488
|
-
* @returns {Promise<Object>} Hook result
|
|
489
|
-
*/
|
|
490
|
-
async executeHook(hook, event, options = {}) {
|
|
491
|
-
if (!this.initialized) {
|
|
492
|
-
throw new Error('Dark Matter core not initialized');
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
const knowledgeHookManager = this.getComponent('knowledgeHookManager');
|
|
496
|
-
if (!knowledgeHookManager) {
|
|
497
|
-
throw new Error('Knowledge hook manager not available');
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
// Get observability component for OTEL spans
|
|
501
|
-
const observability = this.getComponent('observability');
|
|
502
|
-
const hookId = hook?.meta?.name || 'unknown-hook';
|
|
503
|
-
const transactionId = event?.transactionId || 'no-transaction';
|
|
504
|
-
|
|
505
|
-
// Start OTEL hook span
|
|
506
|
-
let spanContext;
|
|
507
|
-
if (observability && typeof observability.startHookSpan === 'function') {
|
|
508
|
-
spanContext = await observability.startHookSpan(hookId, transactionId, {
|
|
509
|
-
hookType: hook?.when?.kind || 'unknown',
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
// Execute hook directly via hook.run() - FAIL FAST
|
|
514
|
-
if (!hook || typeof hook.run !== 'function') {
|
|
515
|
-
throw new Error('Hook must have a run function');
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
const startTime = Date.now();
|
|
519
|
-
|
|
520
|
-
try {
|
|
521
|
-
const result = await hook.run(event, options);
|
|
522
|
-
const duration = Date.now() - startTime;
|
|
523
|
-
|
|
524
|
-
// End OTEL span with success
|
|
525
|
-
if (observability && spanContext && typeof observability.endHookSpan === 'function') {
|
|
526
|
-
await observability.endHookSpan(hookId, transactionId, {
|
|
527
|
-
success: true,
|
|
528
|
-
duration,
|
|
529
|
-
});
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
// Update performance metrics
|
|
533
|
-
const performanceOptimizer = this.getComponent('performanceOptimizer');
|
|
534
|
-
if (performanceOptimizer && typeof performanceOptimizer.updateMetrics === 'function') {
|
|
535
|
-
performanceOptimizer.updateMetrics({
|
|
536
|
-
hookExecutionLatency: { duration, success: !result.error },
|
|
537
|
-
});
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
return result;
|
|
541
|
-
} catch (error) {
|
|
542
|
-
const duration = Date.now() - startTime;
|
|
543
|
-
|
|
544
|
-
// End OTEL span with error
|
|
545
|
-
if (observability && spanContext && typeof observability.endHookSpan === 'function') {
|
|
546
|
-
await observability.endHookSpan(hookId, transactionId, {
|
|
547
|
-
success: false,
|
|
548
|
-
error: error.message,
|
|
549
|
-
duration,
|
|
550
|
-
});
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
// Update performance metrics with failure
|
|
554
|
-
const performanceOptimizer = this.getComponent('performanceOptimizer');
|
|
555
|
-
if (performanceOptimizer && typeof performanceOptimizer.updateMetrics === 'function') {
|
|
556
|
-
performanceOptimizer.updateMetrics({
|
|
557
|
-
hookExecutionLatency: { duration, success: false },
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
// FAIL FAST - propagate error without fallback
|
|
562
|
-
throw error;
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
/**
|
|
567
|
-
* Get system status
|
|
568
|
-
* @returns {Object} System status
|
|
569
|
-
*/
|
|
570
|
-
getStatus() {
|
|
571
|
-
return {
|
|
572
|
-
initialized: this.initialized,
|
|
573
|
-
components: Array.from(this.components.keys()),
|
|
574
|
-
metrics: this.getMetrics(),
|
|
575
|
-
config: this.config,
|
|
576
|
-
timestamp: new Date().toISOString(),
|
|
577
|
-
};
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
/**
|
|
581
|
-
* Cleanup Dark Matter core
|
|
582
|
-
* @returns {Promise<void>}
|
|
583
|
-
*/
|
|
584
|
-
async cleanup() {
|
|
585
|
-
console.log('🧹 Cleaning up Dark Matter 80/20 Core...');
|
|
586
|
-
|
|
587
|
-
// Cleanup all components
|
|
588
|
-
for (const [name, { instance }] of this.components.entries()) {
|
|
589
|
-
try {
|
|
590
|
-
if (typeof instance.cleanup === 'function') {
|
|
591
|
-
await instance.cleanup();
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
// Clear any internal caches/maps
|
|
595
|
-
if (instance.cache && typeof instance.cache.clear === 'function') {
|
|
596
|
-
instance.cache.clear();
|
|
597
|
-
}
|
|
598
|
-
if (instance.components && typeof instance.components.clear === 'function') {
|
|
599
|
-
instance.components.clear();
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
console.log(`✅ ${name} cleaned up`);
|
|
603
|
-
} catch (error) {
|
|
604
|
-
console.warn(`⚠️ Failed to cleanup ${name}:`, error.message);
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
// Clear component registry to prevent circular refs
|
|
609
|
-
this.components.clear();
|
|
610
|
-
|
|
611
|
-
// Reset metrics
|
|
612
|
-
this.metrics.valueDelivery = 0;
|
|
613
|
-
this.metrics.performanceImpact = 0;
|
|
614
|
-
this.metrics.developmentEfficiency = 0;
|
|
615
|
-
|
|
616
|
-
this.initialized = false;
|
|
617
|
-
console.log('✅ Dark Matter 80/20 Core cleaned up');
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
/**
|
|
622
|
-
* Create a Knowledge Substrate core instance
|
|
623
|
-
* @param {Object} [config] - Knowledge Substrate configuration
|
|
624
|
-
* @returns {KnowledgeSubstrateCore} Knowledge Substrate core instance
|
|
625
|
-
*/
|
|
626
|
-
export function createKnowledgeSubstrateCore(config = {}) {
|
|
627
|
-
return new KnowledgeSubstrateCore(config);
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
* @deprecated Use createKnowledgeSubstrateCore instead
|
|
632
|
-
* Create a Dark Matter core instance (legacy name)
|
|
633
|
-
* @param {Object} [config] - Dark Matter configuration
|
|
634
|
-
* @returns {KnowledgeSubstrateCore} Knowledge Substrate core instance
|
|
635
|
-
*/
|
|
636
|
-
export function createDarkMatterCore(config = {}) {
|
|
637
|
-
return new KnowledgeSubstrateCore(config);
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
/**
|
|
641
|
-
* Knowledge Substrate Factory
|
|
642
|
-
*
|
|
643
|
-
* Creates and configures a complete Knowledge Substrate system
|
|
644
|
-
* with all core components optimized for maximum knowledge processing capability.
|
|
645
|
-
*/
|
|
646
|
-
export class KnowledgeSubstrateFactory {
|
|
647
|
-
/**
|
|
648
|
-
* Create a complete Knowledge Substrate system
|
|
649
|
-
* @param {Object} [config] - System configuration
|
|
650
|
-
* @returns {Promise<KnowledgeSubstrateCore>} Configured Knowledge Substrate core
|
|
651
|
-
*/
|
|
652
|
-
static async createSystem(config = {}) {
|
|
653
|
-
const substrateConfig = {
|
|
654
|
-
// Enable all core components (20% that deliver 80% of value)
|
|
655
|
-
enableTransactionManager: true,
|
|
656
|
-
enableKnowledgeHookManager: true,
|
|
657
|
-
enableEffectSandbox: true,
|
|
658
|
-
enableObservability: true,
|
|
659
|
-
enablePerformanceOptimizer: true,
|
|
660
|
-
enableLockchainWriter: true,
|
|
661
|
-
|
|
662
|
-
// Disable optional components by default (80% that deliver 20% of value)
|
|
663
|
-
enablePolicyPackManager: false,
|
|
664
|
-
enableResolutionLayer: false,
|
|
665
|
-
|
|
666
|
-
// 80/20 performance targets
|
|
667
|
-
performanceTargets: {
|
|
668
|
-
p50PreHookPipeline: 0.2, // 200µs
|
|
669
|
-
p99PreHookPipeline: 2, // 2ms
|
|
670
|
-
receiptWriteMedian: 5, // 5ms
|
|
671
|
-
hookEngineExecPerMin: 10000, // 10k/min
|
|
672
|
-
errorIsolation: 1, // 100%
|
|
673
|
-
},
|
|
674
|
-
|
|
675
|
-
// Knowledge Substrate optimization
|
|
676
|
-
enableFastPath: true,
|
|
677
|
-
enableCaching: true,
|
|
678
|
-
enableBatchProcessing: true,
|
|
679
|
-
maxConcurrency: 10,
|
|
680
|
-
cacheSize: 10000,
|
|
681
|
-
batchSize: 1000,
|
|
682
|
-
timeoutMs: 2000,
|
|
683
|
-
|
|
684
|
-
...config,
|
|
685
|
-
};
|
|
686
|
-
|
|
687
|
-
const core = new KnowledgeSubstrateCore(substrateConfig);
|
|
688
|
-
await core.initialize();
|
|
689
|
-
|
|
690
|
-
return core;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
/**
|
|
694
|
-
* Create a minimal Knowledge Substrate system
|
|
695
|
-
* @param {Object} [config] - System configuration
|
|
696
|
-
* @returns {Promise<KnowledgeSubstrateCore>} Minimal Knowledge Substrate core
|
|
697
|
-
*/
|
|
698
|
-
static async createMinimalSystem(config = {}) {
|
|
699
|
-
const minimalConfig = {
|
|
700
|
-
// Only enable essential components
|
|
701
|
-
enableTransactionManager: true,
|
|
702
|
-
enableKnowledgeHookManager: true,
|
|
703
|
-
enableEffectSandbox: true,
|
|
704
|
-
enableObservability: false,
|
|
705
|
-
enablePerformanceOptimizer: false,
|
|
706
|
-
enableLockchainWriter: false,
|
|
707
|
-
enablePolicyPackManager: false,
|
|
708
|
-
enableResolutionLayer: false,
|
|
709
|
-
|
|
710
|
-
...config,
|
|
711
|
-
};
|
|
712
|
-
|
|
713
|
-
return this.createSystem(minimalConfig);
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
/**
|
|
717
|
-
* Create a full Knowledge Substrate system
|
|
718
|
-
* @param {Object} [config] - System configuration
|
|
719
|
-
* @returns {Promise<KnowledgeSubstrateCore>} Full Knowledge Substrate core
|
|
720
|
-
*/
|
|
721
|
-
static async createFullSystem(config = {}) {
|
|
722
|
-
const fullConfig = {
|
|
723
|
-
// Enable all components
|
|
724
|
-
enableTransactionManager: true,
|
|
725
|
-
enableKnowledgeHookManager: true,
|
|
726
|
-
enableEffectSandbox: true,
|
|
727
|
-
enableObservability: true,
|
|
728
|
-
enablePerformanceOptimizer: true,
|
|
729
|
-
enableLockchainWriter: true,
|
|
730
|
-
enablePolicyPackManager: true,
|
|
731
|
-
enableResolutionLayer: true,
|
|
732
|
-
|
|
733
|
-
...config,
|
|
734
|
-
};
|
|
735
|
-
|
|
736
|
-
return this.createSystem(fullConfig);
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
// Legacy compatibility exports
|
|
741
|
-
export const DarkMatterCore = KnowledgeSubstrateCore;
|
|
742
|
-
export const DarkMatterFactory = KnowledgeSubstrateFactory;
|