@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
package/README.md ADDED
@@ -0,0 +1,308 @@
1
+ # @vorion/atsf-core
2
+
3
+ Agentic Trust Scoring Framework - Core runtime for AI agent governance, trust scoring, and policy enforcement.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @vorion/atsf-core
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```typescript
14
+ import {
15
+ TrustEngine,
16
+ createTrustEngine,
17
+ IntentService,
18
+ createIntentService,
19
+ EnforcementService,
20
+ createEnforcementService,
21
+ } from '@vorion/atsf-core';
22
+
23
+ // Create a trust engine
24
+ const trustEngine = createTrustEngine();
25
+
26
+ // Initialize an agent with trust
27
+ const agent = await trustEngine.initializeEntity('agent-001', 1);
28
+ console.log(agent.score); // 200 (L1 minimum)
29
+
30
+ // Record behavioral signals
31
+ await trustEngine.recordSignal({
32
+ id: crypto.randomUUID(),
33
+ entityId: 'agent-001',
34
+ type: 'behavioral.task_completed',
35
+ value: 0.9,
36
+ source: 'system',
37
+ timestamp: new Date().toISOString(),
38
+ metadata: {},
39
+ });
40
+
41
+ // Get updated score
42
+ const record = await trustEngine.getScore('agent-001');
43
+ console.log(record?.score, record?.level);
44
+ ```
45
+
46
+ ## Modules
47
+
48
+ ### Trust Engine
49
+
50
+ 0-1000 trust scoring with 6 tiers, time-based decay, and accelerated decay on failure.
51
+
52
+ ```typescript
53
+ import { TrustEngine, createTrustEngine } from '@vorion/atsf-core';
54
+
55
+ // Basic usage
56
+ const engine = createTrustEngine();
57
+
58
+ // With full configuration
59
+ const configuredEngine = createTrustEngine({
60
+ decayRate: 0.01, // 1% decay per interval
61
+ decayIntervalMs: 60000, // 1 minute intervals
62
+ failureThreshold: 0.3, // Signals below 0.3 = failure
63
+ acceleratedDecayMultiplier: 3.0, // 3x decay on failure
64
+ failureWindowMs: 3600000, // 1 hour failure window
65
+ minFailuresForAcceleration: 2,// 2+ failures = accelerated
66
+ });
67
+ ```
68
+
69
+ ### BASIS Rule Engine
70
+
71
+ Constraint evaluation for governance policies.
72
+
73
+ ```typescript
74
+ import { createEvaluator, parseNamespace } from '@vorion/atsf-core';
75
+
76
+ const evaluator = createEvaluator();
77
+ evaluator.registerNamespace(parseNamespace(ruleDefinition));
78
+ const result = await evaluator.evaluate(context);
79
+ ```
80
+
81
+ ### Intent Service
82
+
83
+ Submit and track agent intents through the governance pipeline.
84
+
85
+ ```typescript
86
+ import { createIntentService } from '@vorion/atsf-core';
87
+
88
+ const intentService = createIntentService();
89
+ const intent = await intentService.submit({
90
+ entityId: 'agent-001',
91
+ goal: 'Send email to user',
92
+ context: { recipient: 'user@example.com' },
93
+ });
94
+ ```
95
+
96
+ ### Enforcement Service
97
+
98
+ Policy decision point for allow/deny/escalate decisions.
99
+
100
+ ```typescript
101
+ import { createEnforcementService } from '@vorion/atsf-core';
102
+
103
+ const enforcer = createEnforcementService({
104
+ defaultAction: 'deny',
105
+ requireMinTrustLevel: 2,
106
+ });
107
+ const decision = await enforcer.decide(context);
108
+ ```
109
+
110
+ ### Proof Service
111
+
112
+ Immutable audit chain with SHA-256 hashing.
113
+
114
+ ```typescript
115
+ import { createProofService } from '@vorion/atsf-core';
116
+
117
+ const proofService = createProofService();
118
+ const proof = await proofService.create({ intent, decision, inputs, outputs });
119
+ const verification = await proofService.verify(proof.id);
120
+ ```
121
+
122
+ ### Cognigate Runtime
123
+
124
+ Constrained execution with resource limits.
125
+
126
+ ```typescript
127
+ import { createGateway } from '@vorion/atsf-core';
128
+
129
+ const gateway = createGateway({
130
+ maxMemoryMb: 256,
131
+ timeoutMs: 30000,
132
+ });
133
+ gateway.registerHandler('email', emailHandler);
134
+ const result = await gateway.execute(context);
135
+ ```
136
+
137
+ ## Trust Levels (6 Tiers)
138
+
139
+ | Level | Name | Score Range |
140
+ |-------|------|-------------|
141
+ | 0 | Untrusted | 0-166 |
142
+ | 1 | Observed | 167-332 |
143
+ | 2 | Limited | 333-499 |
144
+ | 3 | Standard | 500-665 |
145
+ | 4 | Trusted | 666-832 |
146
+ | 5 | Certified | 833-1000 |
147
+
148
+ ## Events
149
+
150
+ The Trust Engine extends `EventEmitter` and emits the following events:
151
+
152
+ ```typescript
153
+ import { TrustEngine } from '@vorion/atsf-core';
154
+
155
+ const engine = new TrustEngine();
156
+
157
+ // Listen for all trust events
158
+ engine.on('trust:*', (event) => {
159
+ console.log('Trust event:', event);
160
+ });
161
+
162
+ // Listen for specific events
163
+ engine.on('trust:initialized', (event) => {
164
+ console.log(`Entity ${event.entityId} initialized at L${event.initialLevel}`);
165
+ });
166
+
167
+ engine.on('trust:tier_changed', (event) => {
168
+ console.log(`${event.entityId} ${event.direction}: ${event.previousLevelName} → ${event.newLevelName}`);
169
+ });
170
+
171
+ engine.on('trust:decay_applied', (event) => {
172
+ console.log(`Decay: ${event.entityId} lost ${event.decayAmount} points`);
173
+ });
174
+
175
+ engine.on('trust:score_changed', (event) => {
176
+ console.log(`Score: ${event.entityId} changed by ${event.delta}`);
177
+ });
178
+
179
+ engine.on('trust:signal_recorded', (event) => {
180
+ console.log(`Signal: ${event.signal.type} for ${event.entityId}`);
181
+ });
182
+ ```
183
+
184
+ ### Event Types
185
+
186
+ | Event | Description |
187
+ |-------|-------------|
188
+ | `trust:initialized` | New entity registered |
189
+ | `trust:signal_recorded` | Behavioral signal recorded |
190
+ | `trust:score_changed` | Score changed by ≥5 points |
191
+ | `trust:tier_changed` | Entity promoted or demoted |
192
+ | `trust:decay_applied` | Trust decayed due to staleness (includes `accelerated` flag) |
193
+ | `trust:failure_detected` | Low-value signal detected as failure |
194
+ | `trust:*` | Wildcard - all events |
195
+
196
+ ### Accelerated Decay
197
+
198
+ When an entity accumulates failures (signals with value < 0.3), the decay rate increases:
199
+
200
+ ```typescript
201
+ engine.on('trust:failure_detected', (event) => {
202
+ console.log(`Failure #${event.failureCount} for ${event.entityId}`);
203
+ if (event.acceleratedDecayActive) {
204
+ console.log('Accelerated decay is now active (3x normal rate)');
205
+ }
206
+ });
207
+
208
+ engine.on('trust:decay_applied', (event) => {
209
+ if (event.accelerated) {
210
+ console.log(`Accelerated decay: -${event.decayAmount} points`);
211
+ }
212
+ });
213
+
214
+ // Check status
215
+ const isAccelerated = engine.isAcceleratedDecayActive('agent-001');
216
+ const failureCount = engine.getFailureCount('agent-001');
217
+ ```
218
+
219
+ ## Persistence
220
+
221
+ Trust records can be persisted using pluggable storage backends:
222
+
223
+ ```typescript
224
+ import {
225
+ createTrustEngine,
226
+ createFileProvider,
227
+ createMemoryProvider,
228
+ } from '@vorion/atsf-core';
229
+
230
+ // File-based persistence
231
+ const fileProvider = createFileProvider({
232
+ path: './trust-records.json',
233
+ autoSaveIntervalMs: 5000, // Auto-save every 5 seconds
234
+ });
235
+ await fileProvider.initialize();
236
+
237
+ const engine = createTrustEngine({
238
+ persistence: fileProvider,
239
+ autoPersist: true, // Auto-save on changes
240
+ });
241
+
242
+ // Load existing records
243
+ await engine.loadFromPersistence();
244
+
245
+ // Records are automatically saved on changes
246
+ await engine.initializeEntity('agent-001', 2);
247
+
248
+ // Manual save/close
249
+ await engine.saveToPersistence();
250
+ await engine.close();
251
+ ```
252
+
253
+ Available providers:
254
+ - `MemoryPersistenceProvider` - Fast, non-persistent (default)
255
+ - `FilePersistenceProvider` - JSON file storage
256
+
257
+ ## LangChain Integration
258
+
259
+ Integrate trust scoring with LangChain agents:
260
+
261
+ ```typescript
262
+ import {
263
+ createTrustEngine,
264
+ createTrustAwareExecutor,
265
+ createTrustTools,
266
+ } from '@vorion/atsf-core';
267
+
268
+ // Create trust-aware executor
269
+ const engine = createTrustEngine();
270
+ const executor = createTrustAwareExecutor(engine, {
271
+ agentId: 'my-agent',
272
+ initialTrustLevel: 2,
273
+ minTrustLevel: 2,
274
+ recordToolUsage: true,
275
+ recordLlmCalls: true,
276
+ recordErrors: true,
277
+ });
278
+ await executor.initialize();
279
+
280
+ // Use callback handler with LangChain
281
+ const callbacks = [executor.callbackHandler];
282
+
283
+ // Execute with trust gating
284
+ const result = await executor.execute(async () => {
285
+ // Your agent execution here
286
+ return await agent.invoke({ input: 'Hello' }, { callbacks });
287
+ });
288
+
289
+ console.log(result.trustCheck.allowed);
290
+ console.log(result.finalScore);
291
+
292
+ // Add trust tools to your agent
293
+ const trustTools = createTrustTools(engine, 'my-agent');
294
+ // Tools: check_my_trust, check_trust_requirements, get_trust_levels,
295
+ // report_task_success, report_task_failure
296
+ ```
297
+
298
+ ### Trust-Aware Execution Flow
299
+
300
+ 1. **Check Trust** - Verify agent has sufficient trust level
301
+ 2. **Execute** - Run the agent with callback tracking
302
+ 3. **Record Signals** - Tool/LLM success/failure recorded automatically
303
+ 4. **Update Score** - Trust score updates based on behavior
304
+ 5. **Return Context** - Execution result includes trust state
305
+
306
+ ## License
307
+
308
+ MIT
@@ -0,0 +1,5 @@
1
+ /**
2
+ * API module exports
3
+ */
4
+ export * from './server.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * API module exports
3
+ */
4
+ export * from './server.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * API Server
3
+ *
4
+ * Fastify server providing REST API for Vorion platform.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { FastifyInstance } from 'fastify';
9
+ /**
10
+ * Create and configure the API server
11
+ */
12
+ export declare function createServer(): Promise<FastifyInstance>;
13
+ /**
14
+ * Start the API server
15
+ */
16
+ export declare function startServer(): Promise<void>;
17
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AASnD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAyG7D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBjD"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * API Server
3
+ *
4
+ * Fastify server providing REST API for Vorion platform.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import Fastify from 'fastify';
9
+ import cors from '@fastify/cors';
10
+ import helmet from '@fastify/helmet';
11
+ import rateLimit from '@fastify/rate-limit';
12
+ import { createLogger, logger } from '../common/logger.js';
13
+ import { getConfig } from '../common/config.js';
14
+ const apiLogger = createLogger({ component: 'api' });
15
+ /**
16
+ * Create and configure the API server
17
+ */
18
+ export async function createServer() {
19
+ const config = getConfig();
20
+ const server = Fastify({
21
+ logger: logger,
22
+ requestIdHeader: 'x-request-id',
23
+ requestIdLogLabel: 'requestId',
24
+ });
25
+ // Register plugins
26
+ await server.register(cors, {
27
+ origin: config.env === 'production' ? false : true,
28
+ credentials: true,
29
+ });
30
+ await server.register(helmet, {
31
+ contentSecurityPolicy: config.env === 'production',
32
+ });
33
+ await server.register(rateLimit, {
34
+ max: config.api.rateLimit,
35
+ timeWindow: '1 minute',
36
+ });
37
+ // Health check endpoint
38
+ server.get('/health', async () => ({
39
+ status: 'healthy',
40
+ version: process.env['npm_package_version'],
41
+ environment: config.env,
42
+ timestamp: new Date().toISOString(),
43
+ }));
44
+ // Ready check endpoint
45
+ server.get('/ready', async () => ({
46
+ status: 'ready',
47
+ checks: {
48
+ database: 'ok', // TODO: Implement actual checks
49
+ redis: 'ok',
50
+ proof: 'ok',
51
+ },
52
+ }));
53
+ // API routes
54
+ server.register(async (api) => {
55
+ // Intent routes
56
+ api.post('/intents', async (_request, _reply) => {
57
+ // TODO: Implement intent submission
58
+ return { message: 'Intent submission - not implemented' };
59
+ });
60
+ api.get('/intents/:id', async (_request, _reply) => {
61
+ // TODO: Implement intent retrieval
62
+ return { message: 'Intent retrieval - not implemented' };
63
+ });
64
+ // Proof routes
65
+ api.get('/proofs/:id', async (_request, _reply) => {
66
+ // TODO: Implement proof retrieval
67
+ return { message: 'Proof retrieval - not implemented' };
68
+ });
69
+ api.post('/proofs/:id/verify', async (_request, _reply) => {
70
+ // TODO: Implement proof verification
71
+ return { message: 'Proof verification - not implemented' };
72
+ });
73
+ // Trust routes
74
+ api.get('/trust/:entityId', async (_request, _reply) => {
75
+ // TODO: Implement trust retrieval
76
+ return { message: 'Trust retrieval - not implemented' };
77
+ });
78
+ // Constraint routes
79
+ api.post('/constraints/validate', async (_request, _reply) => {
80
+ // TODO: Implement constraint validation
81
+ return { message: 'Constraint validation - not implemented' };
82
+ });
83
+ }, { prefix: config.api.basePath });
84
+ // Error handler
85
+ server.setErrorHandler((error, request, reply) => {
86
+ apiLogger.error({
87
+ error: error.message,
88
+ stack: error.stack,
89
+ requestId: request.id,
90
+ }, 'Request error');
91
+ reply.status(error.statusCode ?? 500).send({
92
+ error: {
93
+ code: error.code ?? 'INTERNAL_ERROR',
94
+ message: config.env === 'production'
95
+ ? 'An error occurred'
96
+ : error.message,
97
+ },
98
+ });
99
+ });
100
+ return server;
101
+ }
102
+ /**
103
+ * Start the API server
104
+ */
105
+ export async function startServer() {
106
+ const config = getConfig();
107
+ const server = await createServer();
108
+ try {
109
+ await server.listen({
110
+ port: config.api.port,
111
+ host: config.api.host,
112
+ });
113
+ apiLogger.info({
114
+ port: config.api.port,
115
+ host: config.api.host,
116
+ environment: config.env,
117
+ }, 'Server started');
118
+ }
119
+ catch (error) {
120
+ apiLogger.error({ error }, 'Failed to start server');
121
+ process.exit(1);
122
+ }
123
+ }
124
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Multi-Agent Trust Arbitration Engine
3
+ *
4
+ * Resolves trust conflicts between agents using weighted voting,
5
+ * consensus building, and cross-agent confidence decay.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import type { ID, TrustLevel } from '../common/types.js';
10
+ import type { ArbitrationAgent, ArbitrationVote, TrustConflict, ArbitrationResult, ArbitrationMethod, ArbitrationConfig, ArbitrationRequest, ArbitrationQuery, AgentRole } from './types.js';
11
+ export * from './types.js';
12
+ /**
13
+ * Trust Arbitration Engine
14
+ */
15
+ export declare class TrustArbitrationEngine {
16
+ private config;
17
+ private history;
18
+ private agents;
19
+ constructor(config?: Partial<ArbitrationConfig>);
20
+ /**
21
+ * Register an agent for arbitration
22
+ */
23
+ registerAgent(agent: ArbitrationAgent): void;
24
+ /**
25
+ * Unregister an agent
26
+ */
27
+ unregisterAgent(agentId: ID): void;
28
+ /**
29
+ * Get a registered agent
30
+ */
31
+ getAgent(agentId: ID): ArbitrationAgent | undefined;
32
+ /**
33
+ * Arbitrate a trust conflict
34
+ */
35
+ arbitrate(request: ArbitrationRequest): Promise<ArbitrationResult>;
36
+ /**
37
+ * Weighted majority voting
38
+ */
39
+ private arbitrateWeightedMajority;
40
+ /**
41
+ * Unanimous voting (all must agree)
42
+ */
43
+ private arbitrateUnanimous;
44
+ /**
45
+ * Supervisor override - supervisor agent makes final call
46
+ */
47
+ private arbitrateSupervisorOverride;
48
+ /**
49
+ * Consensus building - iterative discussion
50
+ */
51
+ private arbitrateConsensusBuilding;
52
+ /**
53
+ * Escalate to human decision-maker
54
+ */
55
+ private arbitrateEscalateHuman;
56
+ /**
57
+ * Default to deny (most restrictive)
58
+ */
59
+ private arbitrateDefaultDeny;
60
+ /**
61
+ * Collect votes from initial positions
62
+ */
63
+ private collectVotes;
64
+ /**
65
+ * Apply confidence decay based on disagreement
66
+ */
67
+ private applyConfidenceDecay;
68
+ /**
69
+ * Create the final decision
70
+ */
71
+ private createDecision;
72
+ /**
73
+ * Generate explanation for decision
74
+ */
75
+ private generateExplanation;
76
+ /**
77
+ * Generate conditions that would invalidate the decision
78
+ */
79
+ private generateInvalidityConditions;
80
+ /**
81
+ * Calculate consensus metrics
82
+ */
83
+ private calculateConsensusMetrics;
84
+ /**
85
+ * Simulate vote adjustment in consensus building
86
+ */
87
+ private simulateVoteAdjustment;
88
+ /**
89
+ * Update agent accuracy based on arbitration result
90
+ */
91
+ private updateAgentAccuracy;
92
+ /**
93
+ * Query arbitration history
94
+ */
95
+ query(query: ArbitrationQuery): Promise<ArbitrationResult[]>;
96
+ /**
97
+ * Get arbitration statistics
98
+ */
99
+ getStats(): {
100
+ totalArbitrations: number;
101
+ byMethod: Record<ArbitrationMethod, number>;
102
+ consensusRate: number;
103
+ averageDurationMs: number;
104
+ agentCount: number;
105
+ };
106
+ }
107
+ /**
108
+ * Create a new trust arbitration engine
109
+ */
110
+ export declare function createTrustArbitrationEngine(config?: Partial<ArbitrationConfig>): TrustArbitrationEngine;
111
+ /**
112
+ * Helper to create an arbitration agent
113
+ */
114
+ export declare function createArbitrationAgent(agentId: ID, name: string, options: {
115
+ trustScore: number;
116
+ trustLevel: TrustLevel;
117
+ role: AgentRole;
118
+ historicalAccuracy?: number;
119
+ }): ArbitrationAgent;
120
+ /**
121
+ * Helper to create a trust conflict
122
+ */
123
+ export declare function createTrustConflict(conflictType: TrustConflict['conflictType'], subject: TrustConflict['subject'], agents: ArbitrationAgent[], initialPositions: ArbitrationVote[]): TrustConflict;
124
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arbitration/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,iBAAiB,EAGjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAIhB,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,cAAc,YAAY,CAAC;AAiC3B;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,MAAM,CAAwC;gBAE1C,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAInD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAY5C;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,gBAAgB,GAAG,SAAS;IAInD;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgExE;;OAEG;YACW,yBAAyB;IAoEvC;;OAEG;YACW,kBAAkB;IAiDhC;;OAEG;YACW,2BAA2B;IAgDzC;;OAEG;YACW,0BAA0B;IAoExC;;OAEG;YACW,sBAAsB;IAgCpC;;OAEG;YACW,oBAAoB;IAgClC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsF5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAmBpC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA2CjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsClE;;OAEG;IACH,QAAQ,IAAI;QACV,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC5C,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB;CA6BF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,sBAAsB,CAExB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,EAAE,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GACA,gBAAgB,CAWlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,EACjC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,gBAAgB,EAAE,eAAe,EAAE,GAClC,aAAa,CAef"}