@vorionsys/atsf-core 0.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 (150) hide show
  1. package/README.md +308 -0
  2. package/dist/api/index.d.ts +5 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +5 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/api/server.d.ts +17 -0
  7. package/dist/api/server.d.ts.map +1 -0
  8. package/dist/api/server.js +124 -0
  9. package/dist/api/server.js.map +1 -0
  10. package/dist/arbitration/index.d.ts +124 -0
  11. package/dist/arbitration/index.d.ts.map +1 -0
  12. package/dist/arbitration/index.js +696 -0
  13. package/dist/arbitration/index.js.map +1 -0
  14. package/dist/arbitration/types.d.ts +260 -0
  15. package/dist/arbitration/types.d.ts.map +1 -0
  16. package/dist/arbitration/types.js +10 -0
  17. package/dist/arbitration/types.js.map +1 -0
  18. package/dist/basis/evaluator.d.ts +57 -0
  19. package/dist/basis/evaluator.d.ts.map +1 -0
  20. package/dist/basis/evaluator.js +244 -0
  21. package/dist/basis/evaluator.js.map +1 -0
  22. package/dist/basis/index.d.ts +12 -0
  23. package/dist/basis/index.d.ts.map +1 -0
  24. package/dist/basis/index.js +12 -0
  25. package/dist/basis/index.js.map +1 -0
  26. package/dist/basis/parser.d.ts +376 -0
  27. package/dist/basis/parser.d.ts.map +1 -0
  28. package/dist/basis/parser.js +150 -0
  29. package/dist/basis/parser.js.map +1 -0
  30. package/dist/basis/types.d.ts +115 -0
  31. package/dist/basis/types.d.ts.map +1 -0
  32. package/dist/basis/types.js +5 -0
  33. package/dist/basis/types.js.map +1 -0
  34. package/dist/cognigate/index.d.ts +85 -0
  35. package/dist/cognigate/index.d.ts.map +1 -0
  36. package/dist/cognigate/index.js +139 -0
  37. package/dist/cognigate/index.js.map +1 -0
  38. package/dist/common/config.d.ts +252 -0
  39. package/dist/common/config.d.ts.map +1 -0
  40. package/dist/common/config.js +128 -0
  41. package/dist/common/config.js.map +1 -0
  42. package/dist/common/index.d.ts +7 -0
  43. package/dist/common/index.d.ts.map +1 -0
  44. package/dist/common/index.js +7 -0
  45. package/dist/common/index.js.map +1 -0
  46. package/dist/common/logger.d.ts +11 -0
  47. package/dist/common/logger.d.ts.map +1 -0
  48. package/dist/common/logger.js +29 -0
  49. package/dist/common/logger.js.map +1 -0
  50. package/dist/common/types.d.ts +196 -0
  51. package/dist/common/types.d.ts.map +1 -0
  52. package/dist/common/types.js +41 -0
  53. package/dist/common/types.js.map +1 -0
  54. package/dist/containment/index.d.ts +120 -0
  55. package/dist/containment/index.d.ts.map +1 -0
  56. package/dist/containment/index.js +717 -0
  57. package/dist/containment/index.js.map +1 -0
  58. package/dist/containment/types.d.ts +260 -0
  59. package/dist/containment/types.d.ts.map +1 -0
  60. package/dist/containment/types.js +21 -0
  61. package/dist/containment/types.js.map +1 -0
  62. package/dist/contracts/index.d.ts +237 -0
  63. package/dist/contracts/index.d.ts.map +1 -0
  64. package/dist/contracts/index.js +594 -0
  65. package/dist/contracts/index.js.map +1 -0
  66. package/dist/contracts/types.d.ts +374 -0
  67. package/dist/contracts/types.d.ts.map +1 -0
  68. package/dist/contracts/types.js +10 -0
  69. package/dist/contracts/types.js.map +1 -0
  70. package/dist/enforce/index.d.ts +58 -0
  71. package/dist/enforce/index.d.ts.map +1 -0
  72. package/dist/enforce/index.js +77 -0
  73. package/dist/enforce/index.js.map +1 -0
  74. package/dist/governance/index.d.ts +133 -0
  75. package/dist/governance/index.d.ts.map +1 -0
  76. package/dist/governance/index.js +630 -0
  77. package/dist/governance/index.js.map +1 -0
  78. package/dist/governance/types.d.ts +362 -0
  79. package/dist/governance/types.d.ts.map +1 -0
  80. package/dist/governance/types.js +21 -0
  81. package/dist/governance/types.js.map +1 -0
  82. package/dist/index.d.ts +27 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +43 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/intent/index.d.ts +44 -0
  87. package/dist/intent/index.d.ts.map +1 -0
  88. package/dist/intent/index.js +64 -0
  89. package/dist/intent/index.js.map +1 -0
  90. package/dist/langchain/callback.d.ts +115 -0
  91. package/dist/langchain/callback.d.ts.map +1 -0
  92. package/dist/langchain/callback.js +264 -0
  93. package/dist/langchain/callback.js.map +1 -0
  94. package/dist/langchain/executor.d.ts +63 -0
  95. package/dist/langchain/executor.d.ts.map +1 -0
  96. package/dist/langchain/executor.js +169 -0
  97. package/dist/langchain/executor.js.map +1 -0
  98. package/dist/langchain/index.d.ts +12 -0
  99. package/dist/langchain/index.d.ts.map +1 -0
  100. package/dist/langchain/index.js +12 -0
  101. package/dist/langchain/index.js.map +1 -0
  102. package/dist/langchain/tools.d.ts +25 -0
  103. package/dist/langchain/tools.d.ts.map +1 -0
  104. package/dist/langchain/tools.js +167 -0
  105. package/dist/langchain/tools.js.map +1 -0
  106. package/dist/langchain/types.d.ts +72 -0
  107. package/dist/langchain/types.d.ts.map +1 -0
  108. package/dist/langchain/types.js +9 -0
  109. package/dist/langchain/types.js.map +1 -0
  110. package/dist/layers/index.d.ts +147 -0
  111. package/dist/layers/index.d.ts.map +1 -0
  112. package/dist/layers/index.js +565 -0
  113. package/dist/layers/index.js.map +1 -0
  114. package/dist/layers/types.d.ts +336 -0
  115. package/dist/layers/types.d.ts.map +1 -0
  116. package/dist/layers/types.js +10 -0
  117. package/dist/layers/types.js.map +1 -0
  118. package/dist/persistence/file.d.ts +55 -0
  119. package/dist/persistence/file.d.ts.map +1 -0
  120. package/dist/persistence/file.js +176 -0
  121. package/dist/persistence/file.js.map +1 -0
  122. package/dist/persistence/index.d.ts +16 -0
  123. package/dist/persistence/index.d.ts.map +1 -0
  124. package/dist/persistence/index.js +34 -0
  125. package/dist/persistence/index.js.map +1 -0
  126. package/dist/persistence/memory.d.ts +32 -0
  127. package/dist/persistence/memory.d.ts.map +1 -0
  128. package/dist/persistence/memory.js +91 -0
  129. package/dist/persistence/memory.js.map +1 -0
  130. package/dist/persistence/types.d.ts +89 -0
  131. package/dist/persistence/types.d.ts.map +1 -0
  132. package/dist/persistence/types.js +9 -0
  133. package/dist/persistence/types.js.map +1 -0
  134. package/dist/proof/index.d.ts +87 -0
  135. package/dist/proof/index.d.ts.map +1 -0
  136. package/dist/proof/index.js +179 -0
  137. package/dist/proof/index.js.map +1 -0
  138. package/dist/provenance/index.d.ts +135 -0
  139. package/dist/provenance/index.d.ts.map +1 -0
  140. package/dist/provenance/index.js +356 -0
  141. package/dist/provenance/index.js.map +1 -0
  142. package/dist/provenance/types.d.ts +217 -0
  143. package/dist/provenance/types.d.ts.map +1 -0
  144. package/dist/provenance/types.js +10 -0
  145. package/dist/provenance/types.js.map +1 -0
  146. package/dist/trust-engine/index.d.ts +273 -0
  147. package/dist/trust-engine/index.d.ts.map +1 -0
  148. package/dist/trust-engine/index.js +515 -0
  149. package/dist/trust-engine/index.js.map +1 -0
  150. package/package.json +100 -0
@@ -0,0 +1,515 @@
1
+ /**
2
+ * Trust Engine - Behavioral Trust Scoring
3
+ *
4
+ * Calculates and maintains trust scores for entities based on behavioral signals.
5
+ * Features 6-tier trust system with event emission for observability.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import { createLogger } from '../common/logger.js';
11
+ const logger = createLogger({ component: 'trust-engine' });
12
+ /**
13
+ * Trust level thresholds (6 tiers) - per BASIS specification
14
+ */
15
+ export const TRUST_THRESHOLDS = {
16
+ 0: { min: 0, max: 99 }, // Sandbox
17
+ 1: { min: 100, max: 299 }, // Provisional
18
+ 2: { min: 300, max: 499 }, // Standard
19
+ 3: { min: 500, max: 699 }, // Trusted
20
+ 4: { min: 700, max: 899 }, // Certified
21
+ 5: { min: 900, max: 1000 }, // Autonomous
22
+ };
23
+ /**
24
+ * Trust level names (6 tiers) - per BASIS specification
25
+ */
26
+ export const TRUST_LEVEL_NAMES = {
27
+ 0: 'Sandbox',
28
+ 1: 'Provisional',
29
+ 2: 'Standard',
30
+ 3: 'Trusted',
31
+ 4: 'Certified',
32
+ 5: 'Autonomous',
33
+ };
34
+ /**
35
+ * Signal weights for score calculation
36
+ */
37
+ export const SIGNAL_WEIGHTS = {
38
+ behavioral: 0.4,
39
+ compliance: 0.25,
40
+ identity: 0.2,
41
+ context: 0.15,
42
+ };
43
+ /**
44
+ * Trust Engine service with event emission
45
+ */
46
+ export class TrustEngine extends EventEmitter {
47
+ records = new Map();
48
+ _decayRate;
49
+ _decayIntervalMs;
50
+ _failureThreshold;
51
+ _acceleratedDecayMultiplier;
52
+ _failureWindowMs;
53
+ _minFailuresForAcceleration;
54
+ _persistence;
55
+ _autoPersist;
56
+ constructor(config = {}) {
57
+ super();
58
+ this._decayRate = config.decayRate ?? 0.01;
59
+ this._decayIntervalMs = config.decayIntervalMs ?? 60000;
60
+ this._failureThreshold = config.failureThreshold ?? 0.3;
61
+ this._acceleratedDecayMultiplier = config.acceleratedDecayMultiplier ?? 3.0;
62
+ this._failureWindowMs = config.failureWindowMs ?? 3600000; // 1 hour
63
+ this._minFailuresForAcceleration = config.minFailuresForAcceleration ?? 2;
64
+ this._persistence = config.persistence;
65
+ this._autoPersist = config.autoPersist ?? (config.persistence !== undefined);
66
+ }
67
+ /**
68
+ * Get the current decay rate
69
+ */
70
+ get decayRate() {
71
+ return this._decayRate;
72
+ }
73
+ /**
74
+ * Get the decay interval in milliseconds
75
+ */
76
+ get decayIntervalMs() {
77
+ return this._decayIntervalMs;
78
+ }
79
+ /**
80
+ * Get the failure threshold
81
+ */
82
+ get failureThreshold() {
83
+ return this._failureThreshold;
84
+ }
85
+ /**
86
+ * Get the accelerated decay multiplier
87
+ */
88
+ get acceleratedDecayMultiplier() {
89
+ return this._acceleratedDecayMultiplier;
90
+ }
91
+ /**
92
+ * Get the persistence provider
93
+ */
94
+ get persistence() {
95
+ return this._persistence;
96
+ }
97
+ /**
98
+ * Load all records from persistence
99
+ */
100
+ async loadFromPersistence() {
101
+ if (!this._persistence) {
102
+ throw new Error('No persistence provider configured');
103
+ }
104
+ const records = await this._persistence.query();
105
+ this.records.clear();
106
+ for (const record of records) {
107
+ this.records.set(record.entityId, record);
108
+ }
109
+ logger.info({ count: records.length }, 'Loaded trust records from persistence');
110
+ return records.length;
111
+ }
112
+ /**
113
+ * Save all records to persistence
114
+ */
115
+ async saveToPersistence() {
116
+ if (!this._persistence) {
117
+ throw new Error('No persistence provider configured');
118
+ }
119
+ let count = 0;
120
+ for (const record of this.records.values()) {
121
+ await this._persistence.save(record);
122
+ count++;
123
+ }
124
+ logger.info({ count }, 'Saved trust records to persistence');
125
+ return count;
126
+ }
127
+ /**
128
+ * Persist a single record if auto-persist is enabled
129
+ */
130
+ async autoPersistRecord(record) {
131
+ if (this._persistence && this._autoPersist) {
132
+ await this._persistence.save(record);
133
+ }
134
+ }
135
+ /**
136
+ * Close the trust engine and persistence provider
137
+ */
138
+ async close() {
139
+ if (this._persistence) {
140
+ await this._persistence.close();
141
+ }
142
+ this.removeAllListeners();
143
+ }
144
+ /**
145
+ * Emit a trust event
146
+ */
147
+ emitTrustEvent(event) {
148
+ this.emit(event.type, event);
149
+ this.emit('trust:*', event); // Wildcard for all events
150
+ logger.debug({ event }, 'Trust event emitted');
151
+ }
152
+ /**
153
+ * Calculate trust score for an entity
154
+ */
155
+ async calculate(entityId) {
156
+ const record = this.records.get(entityId);
157
+ const signals = record?.signals ?? [];
158
+ // Calculate component scores
159
+ const components = this.calculateComponents(signals);
160
+ // Calculate weighted total
161
+ const score = Math.round(components.behavioral * SIGNAL_WEIGHTS.behavioral * 1000 +
162
+ components.compliance * SIGNAL_WEIGHTS.compliance * 1000 +
163
+ components.identity * SIGNAL_WEIGHTS.identity * 1000 +
164
+ components.context * SIGNAL_WEIGHTS.context * 1000);
165
+ // Clamp to valid range
166
+ const clampedScore = Math.max(0, Math.min(1000, score));
167
+ const level = this.scoreToLevel(clampedScore);
168
+ const factors = this.getSignificantFactors(components);
169
+ logger.debug({ entityId, score: clampedScore, level, components }, 'Trust calculated');
170
+ return {
171
+ score: clampedScore,
172
+ level,
173
+ components,
174
+ factors,
175
+ };
176
+ }
177
+ /**
178
+ * Check if an entity has accelerated decay active
179
+ */
180
+ hasAcceleratedDecay(record) {
181
+ const now = Date.now();
182
+ const recentFailures = record.recentFailures.filter((timestamp) => now - new Date(timestamp).getTime() < this._failureWindowMs);
183
+ return recentFailures.length >= this._minFailuresForAcceleration;
184
+ }
185
+ /**
186
+ * Clean up old failure timestamps outside the window
187
+ */
188
+ cleanupFailures(record) {
189
+ const now = Date.now();
190
+ record.recentFailures = record.recentFailures.filter((timestamp) => now - new Date(timestamp).getTime() < this._failureWindowMs);
191
+ }
192
+ /**
193
+ * Get trust score for an entity (with automatic decay)
194
+ */
195
+ async getScore(entityId) {
196
+ const record = this.records.get(entityId);
197
+ if (record) {
198
+ // Clean up old failures
199
+ this.cleanupFailures(record);
200
+ // Apply decay if stale
201
+ const staleness = Date.now() - new Date(record.lastCalculatedAt).getTime();
202
+ if (staleness > this._decayIntervalMs) {
203
+ const previousScore = record.score;
204
+ const previousLevel = record.level;
205
+ // Check if accelerated decay should apply
206
+ const accelerated = this.hasAcceleratedDecay(record);
207
+ const effectiveDecayRate = accelerated
208
+ ? this._decayRate * this._acceleratedDecayMultiplier
209
+ : this._decayRate;
210
+ // Apply decay based on staleness
211
+ const decayPeriods = Math.floor(staleness / this._decayIntervalMs);
212
+ const decayMultiplier = Math.pow(1 - effectiveDecayRate, decayPeriods);
213
+ const decayedScore = Math.round(record.score * decayMultiplier);
214
+ const clampedScore = Math.max(0, decayedScore);
215
+ record.score = clampedScore;
216
+ record.level = this.scoreToLevel(clampedScore);
217
+ record.lastCalculatedAt = new Date().toISOString();
218
+ // Emit decay event
219
+ if (previousScore !== record.score) {
220
+ this.emitTrustEvent({
221
+ type: 'trust:decay_applied',
222
+ entityId,
223
+ timestamp: new Date().toISOString(),
224
+ previousScore,
225
+ newScore: record.score,
226
+ decayAmount: previousScore - record.score,
227
+ stalenessMs: staleness,
228
+ accelerated,
229
+ });
230
+ // Emit tier change if applicable
231
+ if (previousLevel !== record.level) {
232
+ this.emitTrustEvent({
233
+ type: 'trust:tier_changed',
234
+ entityId,
235
+ timestamp: new Date().toISOString(),
236
+ previousLevel,
237
+ newLevel: record.level,
238
+ previousLevelName: TRUST_LEVEL_NAMES[previousLevel],
239
+ newLevelName: TRUST_LEVEL_NAMES[record.level],
240
+ direction: record.level < previousLevel ? 'demoted' : 'promoted',
241
+ });
242
+ }
243
+ // Auto-persist after decay
244
+ await this.autoPersistRecord(record);
245
+ }
246
+ }
247
+ }
248
+ return record;
249
+ }
250
+ /**
251
+ * Record a trust signal
252
+ */
253
+ async recordSignal(signal) {
254
+ let record = this.records.get(signal.entityId);
255
+ let isNewEntity = false;
256
+ if (!record) {
257
+ record = this.createInitialRecord(signal.entityId);
258
+ this.records.set(signal.entityId, record);
259
+ isNewEntity = true;
260
+ }
261
+ const previousScore = record.score;
262
+ const previousLevel = record.level;
263
+ // Detect failure signals
264
+ if (signal.value < this._failureThreshold) {
265
+ record.recentFailures.push(signal.timestamp);
266
+ this.cleanupFailures(record);
267
+ const acceleratedDecayActive = this.hasAcceleratedDecay(record);
268
+ this.emitTrustEvent({
269
+ type: 'trust:failure_detected',
270
+ entityId: signal.entityId,
271
+ timestamp: new Date().toISOString(),
272
+ signal,
273
+ failureCount: record.recentFailures.length,
274
+ acceleratedDecayActive,
275
+ });
276
+ logger.warn({
277
+ entityId: signal.entityId,
278
+ signalType: signal.type,
279
+ signalValue: signal.value,
280
+ failureCount: record.recentFailures.length,
281
+ acceleratedDecayActive,
282
+ }, 'Failure signal detected');
283
+ }
284
+ // Add signal
285
+ record.signals.push(signal);
286
+ // Keep only recent signals (last 1000)
287
+ if (record.signals.length > 1000) {
288
+ record.signals = record.signals.slice(-1000);
289
+ }
290
+ // Recalculate
291
+ const calculation = await this.calculate(signal.entityId);
292
+ // Update record
293
+ record.score = calculation.score;
294
+ record.level = calculation.level;
295
+ record.components = calculation.components;
296
+ record.lastCalculatedAt = new Date().toISOString();
297
+ // Record history if significant change
298
+ if (Math.abs(calculation.score - previousScore) >= 10) {
299
+ record.history.push({
300
+ score: calculation.score,
301
+ level: calculation.level,
302
+ reason: `Signal: ${signal.type}`,
303
+ timestamp: new Date().toISOString(),
304
+ });
305
+ // Keep last 100 history entries
306
+ if (record.history.length > 100) {
307
+ record.history = record.history.slice(-100);
308
+ }
309
+ }
310
+ // Emit signal recorded event
311
+ this.emitTrustEvent({
312
+ type: 'trust:signal_recorded',
313
+ entityId: signal.entityId,
314
+ timestamp: new Date().toISOString(),
315
+ signal,
316
+ previousScore,
317
+ newScore: calculation.score,
318
+ });
319
+ // Emit score changed event if significant
320
+ if (Math.abs(calculation.score - previousScore) >= 5) {
321
+ this.emitTrustEvent({
322
+ type: 'trust:score_changed',
323
+ entityId: signal.entityId,
324
+ timestamp: new Date().toISOString(),
325
+ previousScore,
326
+ newScore: calculation.score,
327
+ delta: calculation.score - previousScore,
328
+ reason: `Signal: ${signal.type}`,
329
+ });
330
+ }
331
+ // Emit tier changed event if applicable
332
+ if (previousLevel !== calculation.level && !isNewEntity) {
333
+ this.emitTrustEvent({
334
+ type: 'trust:tier_changed',
335
+ entityId: signal.entityId,
336
+ timestamp: new Date().toISOString(),
337
+ previousLevel,
338
+ newLevel: calculation.level,
339
+ previousLevelName: TRUST_LEVEL_NAMES[previousLevel],
340
+ newLevelName: TRUST_LEVEL_NAMES[calculation.level],
341
+ direction: calculation.level > previousLevel ? 'promoted' : 'demoted',
342
+ });
343
+ }
344
+ // Auto-persist if enabled
345
+ await this.autoPersistRecord(record);
346
+ logger.debug({
347
+ entityId: signal.entityId,
348
+ signalType: signal.type,
349
+ newScore: calculation.score,
350
+ }, 'Signal recorded');
351
+ }
352
+ /**
353
+ * Initialize trust for a new entity
354
+ */
355
+ async initializeEntity(entityId, initialLevel = 1) {
356
+ const score = TRUST_THRESHOLDS[initialLevel].min;
357
+ const record = {
358
+ entityId,
359
+ score,
360
+ level: initialLevel,
361
+ components: {
362
+ behavioral: 0.5,
363
+ compliance: 0.5,
364
+ identity: 0.5,
365
+ context: 0.5,
366
+ },
367
+ signals: [],
368
+ lastCalculatedAt: new Date().toISOString(),
369
+ history: [
370
+ {
371
+ score,
372
+ level: initialLevel,
373
+ reason: 'Initial registration',
374
+ timestamp: new Date().toISOString(),
375
+ },
376
+ ],
377
+ recentFailures: [],
378
+ };
379
+ this.records.set(entityId, record);
380
+ // Auto-persist if enabled
381
+ await this.autoPersistRecord(record);
382
+ // Emit initialized event
383
+ this.emitTrustEvent({
384
+ type: 'trust:initialized',
385
+ entityId,
386
+ timestamp: new Date().toISOString(),
387
+ initialScore: score,
388
+ initialLevel,
389
+ });
390
+ logger.info({ entityId, initialLevel }, 'Entity trust initialized');
391
+ return record;
392
+ }
393
+ /**
394
+ * Get all entity IDs
395
+ */
396
+ getEntityIds() {
397
+ return Array.from(this.records.keys());
398
+ }
399
+ /**
400
+ * Get trust level name
401
+ */
402
+ getLevelName(level) {
403
+ return TRUST_LEVEL_NAMES[level];
404
+ }
405
+ /**
406
+ * Convert score to trust level
407
+ */
408
+ scoreToLevel(score) {
409
+ for (const [level, { min, max }] of Object.entries(TRUST_THRESHOLDS)) {
410
+ if (score >= min && score <= max) {
411
+ return parseInt(level);
412
+ }
413
+ }
414
+ return 0;
415
+ }
416
+ /**
417
+ * Calculate component scores from signals
418
+ */
419
+ calculateComponents(signals) {
420
+ // Group signals by type
421
+ const behavioral = signals.filter((s) => s.type.startsWith('behavioral.'));
422
+ const compliance = signals.filter((s) => s.type.startsWith('compliance.'));
423
+ const identity = signals.filter((s) => s.type.startsWith('identity.'));
424
+ const context = signals.filter((s) => s.type.startsWith('context.'));
425
+ return {
426
+ behavioral: this.averageSignalValue(behavioral, 0.5),
427
+ compliance: this.averageSignalValue(compliance, 0.5),
428
+ identity: this.averageSignalValue(identity, 0.5),
429
+ context: this.averageSignalValue(context, 0.5),
430
+ };
431
+ }
432
+ /**
433
+ * Calculate average signal value with default
434
+ */
435
+ averageSignalValue(signals, defaultValue) {
436
+ if (signals.length === 0)
437
+ return defaultValue;
438
+ // Weight recent signals more heavily
439
+ const now = Date.now();
440
+ let weightedSum = 0;
441
+ let totalWeight = 0;
442
+ for (const signal of signals) {
443
+ const age = now - new Date(signal.timestamp).getTime();
444
+ const weight = Math.exp(-age / (7 * 24 * 60 * 60 * 1000)); // 7-day half-life
445
+ weightedSum += signal.value * weight;
446
+ totalWeight += weight;
447
+ }
448
+ return totalWeight > 0 ? weightedSum / totalWeight : defaultValue;
449
+ }
450
+ /**
451
+ * Get significant factors affecting the score
452
+ */
453
+ getSignificantFactors(components) {
454
+ const factors = [];
455
+ if (components.behavioral < 0.3) {
456
+ factors.push('Low behavioral trust');
457
+ }
458
+ if (components.compliance < 0.3) {
459
+ factors.push('Low compliance score');
460
+ }
461
+ if (components.identity < 0.3) {
462
+ factors.push('Weak identity verification');
463
+ }
464
+ if (components.context < 0.3) {
465
+ factors.push('Unusual context signals');
466
+ }
467
+ return factors;
468
+ }
469
+ /**
470
+ * Create initial trust record
471
+ */
472
+ createInitialRecord(entityId) {
473
+ return {
474
+ entityId,
475
+ score: TRUST_THRESHOLDS[1].min, // Start at L1 (Provisional) minimum
476
+ level: 1,
477
+ components: {
478
+ behavioral: 0.5,
479
+ compliance: 0.5,
480
+ identity: 0.5,
481
+ context: 0.5,
482
+ },
483
+ signals: [],
484
+ lastCalculatedAt: new Date().toISOString(),
485
+ history: [],
486
+ recentFailures: [],
487
+ };
488
+ }
489
+ /**
490
+ * Check if accelerated decay is currently active for an entity
491
+ */
492
+ isAcceleratedDecayActive(entityId) {
493
+ const record = this.records.get(entityId);
494
+ if (!record)
495
+ return false;
496
+ return this.hasAcceleratedDecay(record);
497
+ }
498
+ /**
499
+ * Get current failure count for an entity
500
+ */
501
+ getFailureCount(entityId) {
502
+ const record = this.records.get(entityId);
503
+ if (!record)
504
+ return 0;
505
+ this.cleanupFailures(record);
506
+ return record.recentFailures.length;
507
+ }
508
+ }
509
+ /**
510
+ * Create a new Trust Engine instance
511
+ */
512
+ export function createTrustEngine(config) {
513
+ return new TrustEngine(config);
514
+ }
515
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trust-engine/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,100 @@
1
+ {
2
+ "name": "@vorionsys/atsf-core",
3
+ "version": "0.1.0",
4
+ "description": "Agentic Trust Scoring Framework - Core runtime for AI agent governance",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./trust-engine": {
14
+ "types": "./dist/trust-engine/index.d.ts",
15
+ "import": "./dist/trust-engine/index.js"
16
+ },
17
+ "./basis": {
18
+ "types": "./dist/basis/index.d.ts",
19
+ "import": "./dist/basis/index.js"
20
+ },
21
+ "./intent": {
22
+ "types": "./dist/intent/index.d.ts",
23
+ "import": "./dist/intent/index.js"
24
+ },
25
+ "./enforce": {
26
+ "types": "./dist/enforce/index.d.ts",
27
+ "import": "./dist/enforce/index.js"
28
+ },
29
+ "./proof": {
30
+ "types": "./dist/proof/index.d.ts",
31
+ "import": "./dist/proof/index.js"
32
+ },
33
+ "./cognigate": {
34
+ "types": "./dist/cognigate/index.d.ts",
35
+ "import": "./dist/cognigate/index.js"
36
+ },
37
+ "./types": {
38
+ "types": "./dist/common/types.d.ts",
39
+ "import": "./dist/common/types.js"
40
+ },
41
+ "./persistence": {
42
+ "types": "./dist/persistence/index.d.ts",
43
+ "import": "./dist/persistence/index.js"
44
+ },
45
+ "./langchain": {
46
+ "types": "./dist/langchain/index.d.ts",
47
+ "import": "./dist/langchain/index.js"
48
+ }
49
+ },
50
+ "files": [
51
+ "dist"
52
+ ],
53
+ "scripts": {
54
+ "build": "tsc",
55
+ "dev": "tsc --watch",
56
+ "test": "vitest run",
57
+ "test:watch": "vitest",
58
+ "typecheck": "tsc --noEmit",
59
+ "lint": "eslint src",
60
+ "clean": "rm -rf dist"
61
+ },
62
+ "dependencies": {
63
+ "pino": "^9.0.0",
64
+ "pino-pretty": "^11.0.0",
65
+ "zod": "^3.24.1",
66
+ "fastify": "^5.0.0",
67
+ "@fastify/cors": "^10.0.0",
68
+ "@fastify/helmet": "^12.0.0",
69
+ "@fastify/rate-limit": "^10.0.0"
70
+ },
71
+ "devDependencies": {
72
+ "@types/node": "^22.10.5",
73
+ "typescript": "^5.7.2",
74
+ "vitest": "^2.1.8"
75
+ },
76
+ "peerDependencies": {
77
+ "typescript": "^5.0.0",
78
+ "@langchain/core": ">=0.2.0"
79
+ },
80
+ "peerDependenciesMeta": {
81
+ "@langchain/core": {
82
+ "optional": true
83
+ }
84
+ },
85
+ "keywords": [
86
+ "ai",
87
+ "agent",
88
+ "trust",
89
+ "governance",
90
+ "atsf",
91
+ "vorion"
92
+ ],
93
+ "author": "Vorion",
94
+ "license": "MIT",
95
+ "repository": {
96
+ "type": "git",
97
+ "url": "https://github.com/voriongit/vorion.git",
98
+ "directory": "packages/atsf-core"
99
+ }
100
+ }