@vorionsys/atsf-core 0.1.0 → 0.2.1

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 (215) hide show
  1. package/README.md +12 -12
  2. package/dist/api/server.d.ts.map +1 -1
  3. package/dist/api/server.js +463 -35
  4. package/dist/api/server.js.map +1 -1
  5. package/dist/arbitration/index.d.ts.map +1 -1
  6. package/dist/arbitration/index.js +8 -6
  7. package/dist/arbitration/index.js.map +1 -1
  8. package/dist/audit/key-manager.d.ts +118 -0
  9. package/dist/audit/key-manager.d.ts.map +1 -0
  10. package/dist/audit/key-manager.js +565 -0
  11. package/dist/audit/key-manager.js.map +1 -0
  12. package/dist/basis/evaluator.d.ts +31 -0
  13. package/dist/basis/evaluator.d.ts.map +1 -1
  14. package/dist/basis/evaluator.js +205 -10
  15. package/dist/basis/evaluator.js.map +1 -1
  16. package/dist/basis/parser.d.ts +210 -210
  17. package/dist/basis/parser.js.map +1 -1
  18. package/dist/carbon-aware/carbon-metrics.d.ts +151 -0
  19. package/dist/carbon-aware/carbon-metrics.d.ts.map +1 -0
  20. package/dist/carbon-aware/carbon-metrics.js +370 -0
  21. package/dist/carbon-aware/carbon-metrics.js.map +1 -0
  22. package/dist/carbon-aware/carbon-router.d.ts +101 -0
  23. package/dist/carbon-aware/carbon-router.d.ts.map +1 -0
  24. package/dist/carbon-aware/carbon-router.js +400 -0
  25. package/dist/carbon-aware/carbon-router.js.map +1 -0
  26. package/dist/chain/index.d.ts +147 -0
  27. package/dist/chain/index.d.ts.map +1 -0
  28. package/dist/chain/index.js +219 -0
  29. package/dist/chain/index.js.map +1 -0
  30. package/dist/cognigate/index.d.ts +33 -4
  31. package/dist/cognigate/index.d.ts.map +1 -1
  32. package/dist/cognigate/index.js +199 -24
  33. package/dist/cognigate/index.js.map +1 -1
  34. package/dist/common/adapters.d.ts +172 -0
  35. package/dist/common/adapters.d.ts.map +1 -0
  36. package/dist/common/adapters.js +329 -0
  37. package/dist/common/adapters.js.map +1 -0
  38. package/dist/common/config.d.ts +168 -163
  39. package/dist/common/config.d.ts.map +1 -1
  40. package/dist/common/config.js +2 -0
  41. package/dist/common/config.js.map +1 -1
  42. package/dist/common/index.d.ts +1 -0
  43. package/dist/common/index.d.ts.map +1 -1
  44. package/dist/common/index.js +1 -0
  45. package/dist/common/index.js.map +1 -1
  46. package/dist/common/types.d.ts +67 -16
  47. package/dist/common/types.d.ts.map +1 -1
  48. package/dist/common/types.js +4 -0
  49. package/dist/common/types.js.map +1 -1
  50. package/dist/enforce/index.d.ts +226 -16
  51. package/dist/enforce/index.d.ts.map +1 -1
  52. package/dist/enforce/index.js +196 -49
  53. package/dist/enforce/index.js.map +1 -1
  54. package/dist/governance/fluid-workflow.d.ts +217 -0
  55. package/dist/governance/fluid-workflow.d.ts.map +1 -0
  56. package/dist/governance/fluid-workflow.js +491 -0
  57. package/dist/governance/fluid-workflow.js.map +1 -0
  58. package/dist/governance/index.d.ts +1 -0
  59. package/dist/governance/index.d.ts.map +1 -1
  60. package/dist/governance/index.js +1 -0
  61. package/dist/governance/index.js.map +1 -1
  62. package/dist/index.d.ts +9 -3
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +14 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/intent/index.d.ts +127 -10
  67. package/dist/intent/index.d.ts.map +1 -1
  68. package/dist/intent/index.js +121 -16
  69. package/dist/intent/index.js.map +1 -1
  70. package/dist/langchain/executor.d.ts +19 -5
  71. package/dist/langchain/executor.d.ts.map +1 -1
  72. package/dist/langchain/executor.js +287 -36
  73. package/dist/langchain/executor.js.map +1 -1
  74. package/dist/langchain/index.d.ts +2 -1
  75. package/dist/langchain/index.d.ts.map +1 -1
  76. package/dist/langchain/index.js +3 -1
  77. package/dist/langchain/index.js.map +1 -1
  78. package/dist/langchain/tools.d.ts.map +1 -1
  79. package/dist/langchain/tools.js +2 -1
  80. package/dist/langchain/tools.js.map +1 -1
  81. package/dist/langchain/types.d.ts +41 -0
  82. package/dist/langchain/types.d.ts.map +1 -1
  83. package/dist/layers/index.d.ts +1 -1
  84. package/dist/layers/index.d.ts.map +1 -1
  85. package/dist/persistence/file.d.ts +35 -3
  86. package/dist/persistence/file.d.ts.map +1 -1
  87. package/dist/persistence/file.js +138 -11
  88. package/dist/persistence/file.js.map +1 -1
  89. package/dist/persistence/index.d.ts +11 -1
  90. package/dist/persistence/index.d.ts.map +1 -1
  91. package/dist/persistence/index.js +25 -1
  92. package/dist/persistence/index.js.map +1 -1
  93. package/dist/persistence/sqlite.d.ts +135 -0
  94. package/dist/persistence/sqlite.d.ts.map +1 -0
  95. package/dist/persistence/sqlite.js +372 -0
  96. package/dist/persistence/sqlite.js.map +1 -0
  97. package/dist/persistence/supabase.d.ts +93 -0
  98. package/dist/persistence/supabase.d.ts.map +1 -0
  99. package/dist/persistence/supabase.js +219 -0
  100. package/dist/persistence/supabase.js.map +1 -0
  101. package/dist/persistence/types.d.ts +5 -1
  102. package/dist/persistence/types.d.ts.map +1 -1
  103. package/dist/phase6/ceiling.d.ts +177 -0
  104. package/dist/phase6/ceiling.d.ts.map +1 -0
  105. package/dist/phase6/ceiling.js +463 -0
  106. package/dist/phase6/ceiling.js.map +1 -0
  107. package/dist/phase6/context.d.ts +207 -0
  108. package/dist/phase6/context.d.ts.map +1 -0
  109. package/dist/phase6/context.js +603 -0
  110. package/dist/phase6/context.js.map +1 -0
  111. package/dist/phase6/index.d.ts +79 -0
  112. package/dist/phase6/index.d.ts.map +1 -0
  113. package/dist/phase6/index.js +152 -0
  114. package/dist/phase6/index.js.map +1 -0
  115. package/dist/phase6/presets.d.ts +148 -0
  116. package/dist/phase6/presets.d.ts.map +1 -0
  117. package/dist/phase6/presets.js +467 -0
  118. package/dist/phase6/presets.js.map +1 -0
  119. package/dist/phase6/provenance.d.ts +148 -0
  120. package/dist/phase6/provenance.d.ts.map +1 -0
  121. package/dist/phase6/provenance.js +545 -0
  122. package/dist/phase6/provenance.js.map +1 -0
  123. package/dist/phase6/role-gates/index.d.ts +7 -0
  124. package/dist/phase6/role-gates/index.d.ts.map +1 -0
  125. package/dist/phase6/role-gates/index.js +7 -0
  126. package/dist/phase6/role-gates/index.js.map +1 -0
  127. package/dist/phase6/role-gates/kernel.d.ts +84 -0
  128. package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
  129. package/dist/phase6/role-gates/kernel.js +258 -0
  130. package/dist/phase6/role-gates/kernel.js.map +1 -0
  131. package/dist/phase6/role-gates/policy.d.ts +110 -0
  132. package/dist/phase6/role-gates/policy.d.ts.map +1 -0
  133. package/dist/phase6/role-gates/policy.js +157 -0
  134. package/dist/phase6/role-gates/policy.js.map +1 -0
  135. package/dist/phase6/role-gates.d.ts +164 -0
  136. package/dist/phase6/role-gates.d.ts.map +1 -0
  137. package/dist/phase6/role-gates.js +536 -0
  138. package/dist/phase6/role-gates.js.map +1 -0
  139. package/dist/phase6/types.d.ts +1827 -0
  140. package/dist/phase6/types.d.ts.map +1 -0
  141. package/dist/phase6/types.js +450 -0
  142. package/dist/phase6/types.js.map +1 -0
  143. package/dist/phase6/weight-presets/canonical.d.ts +93 -0
  144. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
  145. package/dist/phase6/weight-presets/canonical.js +122 -0
  146. package/dist/phase6/weight-presets/canonical.js.map +1 -0
  147. package/dist/phase6/weight-presets/deltas.d.ts +144 -0
  148. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
  149. package/dist/phase6/weight-presets/deltas.js +184 -0
  150. package/dist/phase6/weight-presets/deltas.js.map +1 -0
  151. package/dist/phase6/weight-presets/index.d.ts +8 -0
  152. package/dist/phase6/weight-presets/index.d.ts.map +1 -0
  153. package/dist/phase6/weight-presets/index.js +8 -0
  154. package/dist/phase6/weight-presets/index.js.map +1 -0
  155. package/dist/phase6/weight-presets/merger.d.ts +79 -0
  156. package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
  157. package/dist/phase6/weight-presets/merger.js +161 -0
  158. package/dist/phase6/weight-presets/merger.js.map +1 -0
  159. package/dist/proof/index.d.ts +50 -1
  160. package/dist/proof/index.d.ts.map +1 -1
  161. package/dist/proof/index.js +122 -3
  162. package/dist/proof/index.js.map +1 -1
  163. package/dist/proof/merkle.d.ts +195 -0
  164. package/dist/proof/merkle.d.ts.map +1 -0
  165. package/dist/proof/merkle.js +412 -0
  166. package/dist/proof/merkle.js.map +1 -0
  167. package/dist/proof/zk-proofs.d.ts +218 -0
  168. package/dist/proof/zk-proofs.d.ts.map +1 -0
  169. package/dist/proof/zk-proofs.js +531 -0
  170. package/dist/proof/zk-proofs.js.map +1 -0
  171. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
  172. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
  173. package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
  174. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
  175. package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
  176. package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
  177. package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
  178. package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
  179. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
  180. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
  181. package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
  182. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
  183. package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
  184. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
  185. package/dist/trust-engine/context-policy/enforcement.js +104 -0
  186. package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
  187. package/dist/trust-engine/context-policy/factory.d.ts +75 -0
  188. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
  189. package/dist/trust-engine/context-policy/factory.js +130 -0
  190. package/dist/trust-engine/context-policy/factory.js.map +1 -0
  191. package/dist/trust-engine/context-policy/index.d.ts +6 -0
  192. package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
  193. package/dist/trust-engine/context-policy/index.js +6 -0
  194. package/dist/trust-engine/context-policy/index.js.map +1 -0
  195. package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
  196. package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
  197. package/dist/trust-engine/creation-modifiers/index.js +5 -0
  198. package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
  199. package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
  200. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
  201. package/dist/trust-engine/creation-modifiers/types.js +166 -0
  202. package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
  203. package/dist/trust-engine/decay-profiles.d.ts +159 -0
  204. package/dist/trust-engine/decay-profiles.d.ts.map +1 -0
  205. package/dist/trust-engine/decay-profiles.js +210 -0
  206. package/dist/trust-engine/decay-profiles.js.map +1 -0
  207. package/dist/trust-engine/index.d.ts +144 -5
  208. package/dist/trust-engine/index.d.ts.map +1 -1
  209. package/dist/trust-engine/index.js +320 -15
  210. package/dist/trust-engine/index.js.map +1 -1
  211. package/dist/trust-engine/phase6-types.d.ts +123 -0
  212. package/dist/trust-engine/phase6-types.d.ts.map +1 -0
  213. package/dist/trust-engine/phase6-types.js +88 -0
  214. package/dist/trust-engine/phase6-types.js.map +1 -0
  215. package/package.json +26 -10
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Supabase/PostgreSQL Persistence Provider
3
+ *
4
+ * Database-backed storage for trust records using Supabase or any PostgreSQL client.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { createLogger } from '../common/logger.js';
9
+ const logger = createLogger({ component: 'persistence-supabase' });
10
+ /**
11
+ * Supabase/PostgreSQL persistence provider
12
+ */
13
+ export class SupabasePersistenceProvider {
14
+ name = 'supabase';
15
+ client;
16
+ tableName;
17
+ debug;
18
+ constructor(config) {
19
+ this.client = config.client;
20
+ this.tableName = config.tableName ?? 'trust_scores';
21
+ this.debug = config.debug ?? false;
22
+ }
23
+ async initialize() {
24
+ // Verify connection by attempting a simple query
25
+ try {
26
+ const result = await this.client
27
+ .from(this.tableName)
28
+ .select('entity_id')
29
+ .range(0, 0);
30
+ if (result.error) {
31
+ // Table might not exist, log warning but don't fail
32
+ logger.warn({ table: this.tableName, error: result.error.message }, 'Trust scores table may not exist. Run migrations to create it.');
33
+ }
34
+ else {
35
+ logger.info({ table: this.tableName }, 'Supabase persistence initialized');
36
+ }
37
+ }
38
+ catch (err) {
39
+ logger.warn({ err }, 'Failed to verify Supabase connection');
40
+ }
41
+ }
42
+ async save(record) {
43
+ const row = this.recordToRow(record);
44
+ const result = await this.client
45
+ .from(this.tableName)
46
+ .upsert(row, { onConflict: 'entity_id' });
47
+ if (result.error) {
48
+ logger.error({ error: result.error, entityId: record.entityId }, 'Failed to save trust record');
49
+ throw new Error(`Failed to save trust record: ${result.error.message}`);
50
+ }
51
+ if (this.debug) {
52
+ logger.debug({ entityId: record.entityId, score: record.score }, 'Saved trust record');
53
+ }
54
+ }
55
+ async get(entityId) {
56
+ const result = await this.client
57
+ .from(this.tableName)
58
+ .select('*')
59
+ .eq('entity_id', entityId)
60
+ .single();
61
+ if (result.error) {
62
+ if (result.error.code === 'PGRST116') {
63
+ // No rows found
64
+ return undefined;
65
+ }
66
+ logger.error({ error: result.error, entityId }, 'Failed to get trust record');
67
+ throw new Error(`Failed to get trust record: ${result.error.message}`);
68
+ }
69
+ if (!result.data) {
70
+ return undefined;
71
+ }
72
+ return this.rowToRecord(result.data);
73
+ }
74
+ async delete(entityId) {
75
+ const result = await this.client
76
+ .from(this.tableName)
77
+ .delete()
78
+ .eq('entity_id', entityId);
79
+ if (result.error) {
80
+ logger.error({ error: result.error, entityId }, 'Failed to delete trust record');
81
+ throw new Error(`Failed to delete trust record: ${result.error.message}`);
82
+ }
83
+ return true;
84
+ }
85
+ async listIds() {
86
+ const result = await this.client
87
+ .from(this.tableName)
88
+ .select('entity_id');
89
+ if (result.error) {
90
+ logger.error({ error: result.error }, 'Failed to list entity IDs');
91
+ throw new Error(`Failed to list entity IDs: ${result.error.message}`);
92
+ }
93
+ const data = result.data;
94
+ return data?.map((row) => row.entity_id) ?? [];
95
+ }
96
+ async query(options = {}) {
97
+ let query = this.client.from(this.tableName).select('*');
98
+ // Apply filters
99
+ if (options.minLevel !== undefined) {
100
+ query = query.gte('level', options.minLevel);
101
+ }
102
+ if (options.maxLevel !== undefined) {
103
+ query = query.lte('level', options.maxLevel);
104
+ }
105
+ if (options.minScore !== undefined) {
106
+ query = query.gte('score', options.minScore);
107
+ }
108
+ if (options.maxScore !== undefined) {
109
+ query = query.lte('score', options.maxScore);
110
+ }
111
+ // Apply sorting
112
+ const sortBy = options.sortBy ?? 'score';
113
+ const sortOrder = options.sortOrder ?? 'desc';
114
+ const columnMap = {
115
+ score: 'score',
116
+ level: 'level',
117
+ lastCalculatedAt: 'last_calculated_at',
118
+ };
119
+ query = query.order(columnMap[sortBy] ?? 'score', { ascending: sortOrder === 'asc' });
120
+ // Apply pagination
121
+ if (options.limit !== undefined || options.offset !== undefined) {
122
+ const offset = options.offset ?? 0;
123
+ const limit = options.limit ?? 100;
124
+ query = query.range(offset, offset + limit - 1);
125
+ }
126
+ const result = await query;
127
+ if (result.error) {
128
+ logger.error({ error: result.error }, 'Failed to query trust records');
129
+ throw new Error(`Failed to query trust records: ${result.error.message}`);
130
+ }
131
+ const rows = result.data;
132
+ return rows?.map((row) => this.rowToRecord(row)) ?? [];
133
+ }
134
+ async exists(entityId) {
135
+ const result = await this.client
136
+ .from(this.tableName)
137
+ .select('entity_id')
138
+ .eq('entity_id', entityId)
139
+ .single();
140
+ return !result.error && result.data !== null;
141
+ }
142
+ async count() {
143
+ const result = await this.client
144
+ .from(this.tableName)
145
+ .select('entity_id');
146
+ if (result.error) {
147
+ logger.error({ error: result.error }, 'Failed to count trust records');
148
+ throw new Error(`Failed to count trust records: ${result.error.message}`);
149
+ }
150
+ const data = result.data;
151
+ return data?.length ?? 0;
152
+ }
153
+ async clear() {
154
+ // Delete all records - be careful with this!
155
+ const result = await this.client
156
+ .from(this.tableName)
157
+ .delete()
158
+ .gte('score', 0); // This matches all records
159
+ if (result.error) {
160
+ logger.error({ error: result.error }, 'Failed to clear trust records');
161
+ throw new Error(`Failed to clear trust records: ${result.error.message}`);
162
+ }
163
+ logger.info({ table: this.tableName }, 'Cleared all trust records');
164
+ }
165
+ async close() {
166
+ // Supabase client doesn't need explicit closing
167
+ logger.info('Supabase persistence closed');
168
+ }
169
+ /**
170
+ * Convert a TrustRecord to a database row
171
+ */
172
+ recordToRow(record) {
173
+ return {
174
+ entity_id: record.entityId,
175
+ score: record.score,
176
+ level: record.level,
177
+ components: { ...record.components },
178
+ signals: record.signals,
179
+ last_calculated_at: record.lastCalculatedAt,
180
+ history: record.history,
181
+ recent_failures: record.recentFailures,
182
+ recent_successes: record.recentSuccesses ?? [],
183
+ peak_score: record.peakScore ?? record.score,
184
+ consecutive_successes: record.consecutiveSuccesses ?? 0,
185
+ updated_at: new Date().toISOString(),
186
+ };
187
+ }
188
+ /**
189
+ * Convert a database row to a TrustRecord
190
+ */
191
+ rowToRecord(row) {
192
+ const components = row.components;
193
+ return {
194
+ entityId: row.entity_id,
195
+ score: row.score,
196
+ level: row.level,
197
+ components: {
198
+ behavioral: components.behavioral ?? 0.5,
199
+ compliance: components.compliance ?? 0.5,
200
+ identity: components.identity ?? 0.5,
201
+ context: components.context ?? 0.5,
202
+ },
203
+ signals: row.signals,
204
+ lastCalculatedAt: row.last_calculated_at,
205
+ history: row.history,
206
+ recentFailures: row.recent_failures ?? [],
207
+ recentSuccesses: row.recent_successes ?? [],
208
+ peakScore: row.peak_score ?? row.score,
209
+ consecutiveSuccesses: row.consecutive_successes ?? 0,
210
+ };
211
+ }
212
+ }
213
+ /**
214
+ * Create a new Supabase persistence provider
215
+ */
216
+ export function createSupabaseProvider(config) {
217
+ return new SupabasePersistenceProvider(config);
218
+ }
219
+ //# sourceMappingURL=supabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/persistence/supabase.ts"],"names":[],"mappings":"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"}
@@ -80,10 +80,14 @@ export interface PersistenceProvider {
80
80
  */
81
81
  export interface PersistenceConfig {
82
82
  /** Provider type */
83
- type: 'memory' | 'file' | 'sqlite';
83
+ type: 'memory' | 'file' | 'sqlite' | 'supabase';
84
84
  /** File path for file/sqlite providers */
85
85
  path?: string;
86
86
  /** Auto-save interval in ms (0 = disabled) */
87
87
  autoSaveIntervalMs?: number;
88
+ /** Database client for supabase provider */
89
+ client?: unknown;
90
+ /** Table name for supabase provider */
91
+ tableName?: string;
88
92
  }
89
93
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAChD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAChD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Q1: Ceiling Enforcement (Hybrid Dual-Layer + Regulatory Observability)
3
+ *
4
+ * Implements three-layer enforcement:
5
+ * - Kernel Layer: Structure validation (cannot bypass)
6
+ * - Policy Layer: Authorization via governance rules
7
+ * - Regulatory Layer: Observability for gaming detection
8
+ *
9
+ * Key Features:
10
+ * - Dual logging (raw + clamped scores)
11
+ * - Gaming detection via variance analysis
12
+ * - Regulatory audit ledger with retention
13
+ * - Hash-chained event immutability
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ import { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type AgentContext, TrustTier, RegulatoryFramework } from './types.js';
18
+ /**
19
+ * Ceiling sources in priority order (lowest ceiling wins)
20
+ */
21
+ export interface CeilingContext {
22
+ agentContext: AgentContext;
23
+ attestationCeiling?: number;
24
+ customCeiling?: number;
25
+ }
26
+ /**
27
+ * Calculate effective ceiling from all sources
28
+ */
29
+ export declare function calculateEffectiveCeiling(context: CeilingContext): CeilingSource;
30
+ /**
31
+ * Kernel validation result
32
+ */
33
+ export interface KernelValidationResult {
34
+ valid: boolean;
35
+ rawScore: number;
36
+ clampedScore: number;
37
+ ceilingApplied: boolean;
38
+ ceilingSource: CeilingSource;
39
+ reason?: string;
40
+ }
41
+ /**
42
+ * Kernel layer enforcement - validates structure and applies ceiling
43
+ * This layer cannot be bypassed.
44
+ */
45
+ export declare function enforceKernelCeiling(rawScore: number, ceilingContext: CeilingContext): KernelValidationResult;
46
+ /**
47
+ * Policy layer context
48
+ */
49
+ export interface PolicyContext {
50
+ agentId: string;
51
+ requestedAction?: string;
52
+ requiredTier?: TrustTier;
53
+ policyOverrides?: Map<string, unknown>;
54
+ }
55
+ /**
56
+ * Policy validation result
57
+ */
58
+ export interface PolicyValidationResult {
59
+ valid: boolean;
60
+ appliedPolicies: string[];
61
+ deniedBy?: string;
62
+ reason?: string;
63
+ }
64
+ /**
65
+ * Policy layer enforcement - applies policy-as-code rules
66
+ */
67
+ export declare function enforcePolicyCeiling(clampedScore: number, tier: TrustTier, policyContext: PolicyContext): PolicyValidationResult;
68
+ /**
69
+ * Gaming detection thresholds
70
+ */
71
+ export declare const GAMING_DETECTION_THRESHOLDS: {
72
+ varianceAnomaly: number;
73
+ frequencyAnomaly: number;
74
+ patternWindowMs: number;
75
+ oscillationThreshold: number;
76
+ };
77
+ /**
78
+ * Gaming detection state per agent
79
+ */
80
+ interface GamingDetectionState {
81
+ recentEvents: Array<{
82
+ timestamp: Date;
83
+ rawScore: number;
84
+ clampedScore: number;
85
+ tier: TrustTier;
86
+ }>;
87
+ lastCleanup: Date;
88
+ }
89
+ /**
90
+ * Detect gaming indicators
91
+ */
92
+ export declare function detectGamingIndicators(rawScore: number, clampedScore: number, tier: TrustTier, state: GamingDetectionState): {
93
+ varianceAnomaly: boolean;
94
+ frequencyAnomaly: boolean;
95
+ patternAnomaly: boolean;
96
+ };
97
+ /**
98
+ * Determine retention requirements
99
+ */
100
+ export declare function getRetentionRequirements(framework: RegulatoryFramework, hasAnomaly: boolean): {
101
+ required: boolean;
102
+ retentionDays: number;
103
+ };
104
+ /**
105
+ * Create trust computation event with dual logging
106
+ */
107
+ export declare function createTrustComputationEvent(agentId: string, rawScore: number, ceilingContext: CeilingContext, policyContext: PolicyContext, previousEventHash?: string): Promise<TrustComputationEvent>;
108
+ /**
109
+ * Create regulatory audit entry
110
+ */
111
+ export declare function createRegulatoryAuditEntry(event: TrustComputationEvent, gamingIndicators: {
112
+ varianceAnomaly: boolean;
113
+ frequencyAnomaly: boolean;
114
+ patternAnomaly: boolean;
115
+ }, framework: RegulatoryFramework, ledgerSequence: number, previousEntryHash?: string): Promise<RegulatoryAuditEntry>;
116
+ /**
117
+ * Service for managing ceiling enforcement and regulatory audit
118
+ */
119
+ export declare class CeilingEnforcementService {
120
+ private events;
121
+ private lastEventHash;
122
+ private auditLedger;
123
+ private gamingState;
124
+ private regulatoryFramework;
125
+ constructor(framework?: RegulatoryFramework);
126
+ /**
127
+ * Compute trust with ceiling enforcement
128
+ */
129
+ computeTrust(agentId: string, rawScore: number, ceilingContext: CeilingContext, policyContext?: PolicyContext): Promise<{
130
+ event: TrustComputationEvent;
131
+ auditEntry: RegulatoryAuditEntry;
132
+ }>;
133
+ /**
134
+ * Get computation events for an agent
135
+ */
136
+ getEvents(agentId: string): readonly TrustComputationEvent[];
137
+ /**
138
+ * Get audit ledger entries
139
+ */
140
+ getAuditLedger(filter?: {
141
+ agentId?: string;
142
+ complianceStatus?: RegulatoryAuditEntry['complianceStatus'];
143
+ startDate?: Date;
144
+ endDate?: Date;
145
+ }): readonly RegulatoryAuditEntry[];
146
+ /**
147
+ * Verify audit ledger integrity
148
+ */
149
+ verifyLedgerIntegrity(): Promise<{
150
+ valid: boolean;
151
+ brokenAt?: number;
152
+ issues: string[];
153
+ }>;
154
+ /**
155
+ * Get agents with gaming flags
156
+ */
157
+ getGamingAlerts(): Array<{
158
+ agentId: string;
159
+ alertCount: number;
160
+ latestStatus: RegulatoryAuditEntry['complianceStatus'];
161
+ }>;
162
+ /**
163
+ * Get statistics
164
+ */
165
+ getStats(): {
166
+ totalEvents: number;
167
+ totalAuditEntries: number;
168
+ complianceBreakdown: Record<RegulatoryAuditEntry['complianceStatus'], number>;
169
+ agentsWithAlerts: number;
170
+ };
171
+ }
172
+ /**
173
+ * Create a new ceiling enforcement service
174
+ */
175
+ export declare function createCeilingEnforcementService(framework?: RegulatoryFramework): CeilingEnforcementService;
176
+ export { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type EnforcementLayer, RegulatoryFramework, } from './types.js';
177
+ //# sourceMappingURL=ceiling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../src/phase6/ceiling.ts"],"names":[],"mappings":"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"}