@vorionsys/atsf-core 0.2.0 → 0.2.2

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/CHANGELOG.md +67 -0
  2. package/LICENSE +190 -0
  3. package/README.md +305 -181
  4. package/dist/api/server.d.ts.map +1 -1
  5. package/dist/api/server.js +86 -4
  6. package/dist/api/server.js.map +1 -1
  7. package/dist/basis/parser.d.ts +210 -210
  8. package/dist/basis/parser.js.map +1 -1
  9. package/dist/chain/index.d.ts +147 -0
  10. package/dist/chain/index.d.ts.map +1 -0
  11. package/dist/chain/index.js +219 -0
  12. package/dist/chain/index.js.map +1 -0
  13. package/dist/common/adapters.d.ts +9 -9
  14. package/dist/common/adapters.d.ts.map +1 -1
  15. package/dist/common/adapters.js +6 -6
  16. package/dist/common/config.d.ts +152 -152
  17. package/dist/common/types.d.ts +35 -15
  18. package/dist/common/types.d.ts.map +1 -1
  19. package/dist/common/types.js.map +1 -1
  20. package/dist/enforce/index.d.ts +226 -16
  21. package/dist/enforce/index.d.ts.map +1 -1
  22. package/dist/enforce/index.js +196 -49
  23. package/dist/enforce/index.js.map +1 -1
  24. package/dist/governance/index.d.ts +2 -0
  25. package/dist/governance/index.d.ts.map +1 -1
  26. package/dist/governance/index.js +1 -0
  27. package/dist/governance/index.js.map +1 -1
  28. package/dist/governance/proof-bridge.d.ts +86 -0
  29. package/dist/governance/proof-bridge.d.ts.map +1 -0
  30. package/dist/governance/proof-bridge.js +139 -0
  31. package/dist/governance/proof-bridge.js.map +1 -0
  32. package/dist/index.d.ts +11 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +17 -4
  35. package/dist/index.js.map +1 -1
  36. package/dist/intent/index.d.ts +127 -10
  37. package/dist/intent/index.d.ts.map +1 -1
  38. package/dist/intent/index.js +121 -16
  39. package/dist/intent/index.js.map +1 -1
  40. package/dist/langchain/executor.d.ts +19 -5
  41. package/dist/langchain/executor.d.ts.map +1 -1
  42. package/dist/langchain/executor.js +287 -36
  43. package/dist/langchain/executor.js.map +1 -1
  44. package/dist/langchain/index.d.ts +2 -1
  45. package/dist/langchain/index.d.ts.map +1 -1
  46. package/dist/langchain/index.js +3 -1
  47. package/dist/langchain/index.js.map +1 -1
  48. package/dist/langchain/tools.d.ts.map +1 -1
  49. package/dist/langchain/tools.js +2 -1
  50. package/dist/langchain/tools.js.map +1 -1
  51. package/dist/langchain/types.d.ts +41 -0
  52. package/dist/langchain/types.d.ts.map +1 -1
  53. package/dist/layers/index.d.ts +1 -1
  54. package/dist/layers/index.d.ts.map +1 -1
  55. package/dist/persistence/file.d.ts +35 -3
  56. package/dist/persistence/file.d.ts.map +1 -1
  57. package/dist/persistence/file.js +138 -11
  58. package/dist/persistence/file.js.map +1 -1
  59. package/dist/persistence/index.d.ts +10 -1
  60. package/dist/persistence/index.d.ts.map +1 -1
  61. package/dist/persistence/index.js +15 -1
  62. package/dist/persistence/index.js.map +1 -1
  63. package/dist/persistence/sqlite.d.ts +135 -0
  64. package/dist/persistence/sqlite.d.ts.map +1 -0
  65. package/dist/persistence/sqlite.js +372 -0
  66. package/dist/persistence/sqlite.js.map +1 -0
  67. package/dist/phase6/ceiling.d.ts +177 -0
  68. package/dist/phase6/ceiling.d.ts.map +1 -0
  69. package/dist/phase6/ceiling.js +463 -0
  70. package/dist/phase6/ceiling.js.map +1 -0
  71. package/dist/phase6/context.d.ts +207 -0
  72. package/dist/phase6/context.d.ts.map +1 -0
  73. package/dist/phase6/context.js +603 -0
  74. package/dist/phase6/context.js.map +1 -0
  75. package/dist/phase6/index.d.ts +79 -0
  76. package/dist/phase6/index.d.ts.map +1 -0
  77. package/dist/phase6/index.js +152 -0
  78. package/dist/phase6/index.js.map +1 -0
  79. package/dist/phase6/presets.d.ts +148 -0
  80. package/dist/phase6/presets.d.ts.map +1 -0
  81. package/dist/phase6/presets.js +467 -0
  82. package/dist/phase6/presets.js.map +1 -0
  83. package/dist/phase6/provenance.d.ts +148 -0
  84. package/dist/phase6/provenance.d.ts.map +1 -0
  85. package/dist/phase6/provenance.js +545 -0
  86. package/dist/phase6/provenance.js.map +1 -0
  87. package/dist/phase6/role-gates/index.d.ts +7 -0
  88. package/dist/phase6/role-gates/index.d.ts.map +1 -0
  89. package/dist/phase6/role-gates/index.js +7 -0
  90. package/dist/phase6/role-gates/index.js.map +1 -0
  91. package/dist/phase6/role-gates/kernel.d.ts +84 -0
  92. package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
  93. package/dist/phase6/role-gates/kernel.js +258 -0
  94. package/dist/phase6/role-gates/kernel.js.map +1 -0
  95. package/dist/phase6/role-gates/policy.d.ts +110 -0
  96. package/dist/phase6/role-gates/policy.d.ts.map +1 -0
  97. package/dist/phase6/role-gates/policy.js +157 -0
  98. package/dist/phase6/role-gates/policy.js.map +1 -0
  99. package/dist/phase6/role-gates.d.ts +164 -0
  100. package/dist/phase6/role-gates.d.ts.map +1 -0
  101. package/dist/phase6/role-gates.js +536 -0
  102. package/dist/phase6/role-gates.js.map +1 -0
  103. package/dist/phase6/types.d.ts +1829 -0
  104. package/dist/phase6/types.d.ts.map +1 -0
  105. package/dist/phase6/types.js +452 -0
  106. package/dist/phase6/types.js.map +1 -0
  107. package/dist/phase6/weight-presets/canonical.d.ts +93 -0
  108. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
  109. package/dist/phase6/weight-presets/canonical.js +122 -0
  110. package/dist/phase6/weight-presets/canonical.js.map +1 -0
  111. package/dist/phase6/weight-presets/deltas.d.ts +144 -0
  112. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
  113. package/dist/phase6/weight-presets/deltas.js +184 -0
  114. package/dist/phase6/weight-presets/deltas.js.map +1 -0
  115. package/dist/phase6/weight-presets/index.d.ts +8 -0
  116. package/dist/phase6/weight-presets/index.d.ts.map +1 -0
  117. package/dist/phase6/weight-presets/index.js +8 -0
  118. package/dist/phase6/weight-presets/index.js.map +1 -0
  119. package/dist/phase6/weight-presets/merger.d.ts +79 -0
  120. package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
  121. package/dist/phase6/weight-presets/merger.js +161 -0
  122. package/dist/phase6/weight-presets/merger.js.map +1 -0
  123. package/dist/proof/index.d.ts +6 -0
  124. package/dist/proof/index.d.ts.map +1 -1
  125. package/dist/proof/index.js +56 -6
  126. package/dist/proof/index.js.map +1 -1
  127. package/dist/proof/merkle.d.ts +195 -0
  128. package/dist/proof/merkle.d.ts.map +1 -0
  129. package/dist/proof/merkle.js +412 -0
  130. package/dist/proof/merkle.js.map +1 -0
  131. package/dist/proof/zk-proofs.d.ts +218 -0
  132. package/dist/proof/zk-proofs.d.ts.map +1 -0
  133. package/dist/proof/zk-proofs.js +531 -0
  134. package/dist/proof/zk-proofs.js.map +1 -0
  135. package/dist/sandbox-training/challenges.d.ts +16 -0
  136. package/dist/sandbox-training/challenges.d.ts.map +1 -0
  137. package/dist/sandbox-training/challenges.js +561 -0
  138. package/dist/sandbox-training/challenges.js.map +1 -0
  139. package/dist/sandbox-training/graduation.d.ts +25 -0
  140. package/dist/sandbox-training/graduation.d.ts.map +1 -0
  141. package/dist/sandbox-training/graduation.js +143 -0
  142. package/dist/sandbox-training/graduation.js.map +1 -0
  143. package/dist/sandbox-training/index.d.ts +19 -0
  144. package/dist/sandbox-training/index.d.ts.map +1 -0
  145. package/dist/sandbox-training/index.js +22 -0
  146. package/dist/sandbox-training/index.js.map +1 -0
  147. package/dist/sandbox-training/promotion-service.d.ts +76 -0
  148. package/dist/sandbox-training/promotion-service.d.ts.map +1 -0
  149. package/dist/sandbox-training/promotion-service.js +117 -0
  150. package/dist/sandbox-training/promotion-service.js.map +1 -0
  151. package/dist/sandbox-training/runner.d.ts +58 -0
  152. package/dist/sandbox-training/runner.d.ts.map +1 -0
  153. package/dist/sandbox-training/runner.js +388 -0
  154. package/dist/sandbox-training/runner.js.map +1 -0
  155. package/dist/sandbox-training/scorer.d.ts +40 -0
  156. package/dist/sandbox-training/scorer.d.ts.map +1 -0
  157. package/dist/sandbox-training/scorer.js +79 -0
  158. package/dist/sandbox-training/scorer.js.map +1 -0
  159. package/dist/sandbox-training/types.d.ts +162 -0
  160. package/dist/sandbox-training/types.d.ts.map +1 -0
  161. package/dist/sandbox-training/types.js +32 -0
  162. package/dist/sandbox-training/types.js.map +1 -0
  163. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
  164. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
  165. package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
  166. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
  167. package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
  168. package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
  169. package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
  170. package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
  171. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
  172. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
  173. package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
  174. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
  175. package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
  176. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
  177. package/dist/trust-engine/context-policy/enforcement.js +104 -0
  178. package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
  179. package/dist/trust-engine/context-policy/factory.d.ts +75 -0
  180. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
  181. package/dist/trust-engine/context-policy/factory.js +130 -0
  182. package/dist/trust-engine/context-policy/factory.js.map +1 -0
  183. package/dist/trust-engine/context-policy/index.d.ts +6 -0
  184. package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
  185. package/dist/trust-engine/context-policy/index.js +6 -0
  186. package/dist/trust-engine/context-policy/index.js.map +1 -0
  187. package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
  188. package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
  189. package/dist/trust-engine/creation-modifiers/index.js +5 -0
  190. package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
  191. package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
  192. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
  193. package/dist/trust-engine/creation-modifiers/types.js +166 -0
  194. package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
  195. package/dist/trust-engine/index.d.ts +54 -1
  196. package/dist/trust-engine/index.d.ts.map +1 -1
  197. package/dist/trust-engine/index.js +118 -1
  198. package/dist/trust-engine/index.js.map +1 -1
  199. package/dist/trust-engine/phase6-types.d.ts +123 -0
  200. package/dist/trust-engine/phase6-types.d.ts.map +1 -0
  201. package/dist/trust-engine/phase6-types.js +88 -0
  202. package/dist/trust-engine/phase6-types.js.map +1 -0
  203. package/package.json +42 -12
  204. package/dist/audit/key-manager.d.ts +0 -118
  205. package/dist/audit/key-manager.d.ts.map +0 -1
  206. package/dist/audit/key-manager.js +0 -565
  207. package/dist/audit/key-manager.js.map +0 -1
  208. package/dist/carbon-aware/carbon-metrics.d.ts +0 -151
  209. package/dist/carbon-aware/carbon-metrics.d.ts.map +0 -1
  210. package/dist/carbon-aware/carbon-metrics.js +0 -370
  211. package/dist/carbon-aware/carbon-metrics.js.map +0 -1
  212. package/dist/carbon-aware/carbon-router.d.ts +0 -101
  213. package/dist/carbon-aware/carbon-router.d.ts.map +0 -1
  214. package/dist/carbon-aware/carbon-router.js +0 -400
  215. package/dist/carbon-aware/carbon-router.js.map +0 -1
@@ -1,64 +1,169 @@
1
1
  /**
2
- * INTENT - Goal Processing
2
+ * INTENT - Goal Processing (SDK Package)
3
3
  *
4
- * Processes and validates incoming intents from AI agents.
4
+ * This module provides intent handling for the @vorionsys/atsf-core SDK.
5
+ *
6
+ * For production use with persistence, use the full implementation from the
7
+ * vorion core package. This SDK package provides:
8
+ * - Type definitions aligned with @vorion/contracts
9
+ * - In-memory mock for testing
10
+ * - Interface definitions for custom implementations
5
11
  *
6
12
  * @packageDocumentation
7
13
  */
8
14
  import { createLogger } from '../common/logger.js';
9
15
  const logger = createLogger({ component: 'intent' });
16
+ // =============================================================================
17
+ // CANONICAL FIELD ENUMS (aligned with @vorion/contracts)
18
+ // =============================================================================
19
+ /**
20
+ * Action types for categorizing intents
21
+ */
22
+ export const ActionType = {
23
+ READ: 'read',
24
+ WRITE: 'write',
25
+ DELETE: 'delete',
26
+ EXECUTE: 'execute',
27
+ COMMUNICATE: 'communicate',
28
+ TRANSFER: 'transfer',
29
+ };
10
30
  /**
11
- * Intent service for managing intent lifecycle
31
+ * Data sensitivity levels
12
32
  */
13
- export class IntentService {
33
+ export const DataSensitivity = {
34
+ PUBLIC: 'PUBLIC',
35
+ INTERNAL: 'INTERNAL',
36
+ CONFIDENTIAL: 'CONFIDENTIAL',
37
+ RESTRICTED: 'RESTRICTED',
38
+ };
39
+ /**
40
+ * Action reversibility classification
41
+ */
42
+ export const Reversibility = {
43
+ REVERSIBLE: 'REVERSIBLE',
44
+ PARTIALLY_REVERSIBLE: 'PARTIALLY_REVERSIBLE',
45
+ IRREVERSIBLE: 'IRREVERSIBLE',
46
+ };
47
+ // =============================================================================
48
+ // IN-MEMORY MOCK IMPLEMENTATION
49
+ // =============================================================================
50
+ /**
51
+ * In-memory intent service for testing and development
52
+ *
53
+ * WARNING: This is NOT suitable for production use.
54
+ * For production, connect to the Vorion API or use the full
55
+ * implementation from the vorion core package.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // For testing
60
+ * const mockService = new MockIntentService();
61
+ * const intent = await mockService.submit({
62
+ * entityId: 'agent-123',
63
+ * goal: 'Send notification',
64
+ * context: { channel: 'email' },
65
+ * actionType: ActionType.COMMUNICATE,
66
+ * dataSensitivity: DataSensitivity.INTERNAL,
67
+ * reversibility: Reversibility.REVERSIBLE,
68
+ * }, { tenantId: 'tenant-1' });
69
+ * ```
70
+ */
71
+ export class MockIntentService {
14
72
  intents = new Map();
15
73
  /**
16
- * Submit a new intent for governance
74
+ * Submit a new intent (in-memory)
17
75
  */
18
- async submit(submission) {
76
+ async submit(submission, options) {
77
+ const now = new Date().toISOString();
78
+ const correlationId = submission.correlationId ?? crypto.randomUUID();
19
79
  const intent = {
20
80
  id: crypto.randomUUID(),
81
+ tenantId: options.tenantId,
21
82
  entityId: submission.entityId,
22
83
  goal: submission.goal,
23
84
  context: submission.context,
24
85
  metadata: submission.metadata ?? {},
25
86
  status: 'pending',
26
- createdAt: new Date().toISOString(),
27
- updatedAt: new Date().toISOString(),
87
+ createdAt: now,
88
+ updatedAt: now,
89
+ trustSnapshot: options.trustSnapshot ?? null,
90
+ trustLevel: options.trustLevel ?? null,
91
+ // Canonical fields
92
+ correlationId,
93
+ actionType: submission.actionType ?? null,
94
+ resourceScope: submission.resourceScope ?? null,
95
+ dataSensitivity: submission.dataSensitivity ?? null,
96
+ reversibility: submission.reversibility ?? null,
97
+ expiresAt: submission.expiresIn
98
+ ? new Date(Date.now() + submission.expiresIn).toISOString()
99
+ : null,
100
+ source: submission.source ?? null,
28
101
  };
29
102
  this.intents.set(intent.id, intent);
30
- logger.info({ intentId: intent.id, goal: intent.goal }, 'Intent submitted');
103
+ logger.info({ intentId: intent.id, goal: intent.goal, correlationId }, 'Intent submitted (mock)');
31
104
  return intent;
32
105
  }
33
106
  /**
34
107
  * Get an intent by ID
35
108
  */
36
- async get(id) {
37
- return this.intents.get(id);
109
+ async get(id, tenantId) {
110
+ const intent = this.intents.get(id);
111
+ if (intent && intent.tenantId === tenantId) {
112
+ return intent;
113
+ }
114
+ return undefined;
38
115
  }
39
116
  /**
40
117
  * Update intent status
41
118
  */
42
- async updateStatus(id, status) {
119
+ async updateStatus(id, tenantId, status) {
43
120
  const intent = this.intents.get(id);
44
- if (!intent)
121
+ if (!intent || intent.tenantId !== tenantId)
45
122
  return undefined;
46
123
  intent.status = status;
47
124
  intent.updatedAt = new Date().toISOString();
48
- logger.info({ intentId: id, status }, 'Intent status updated');
125
+ logger.info({ intentId: id, status }, 'Intent status updated (mock)');
49
126
  return intent;
50
127
  }
51
128
  /**
52
129
  * List intents for an entity
53
130
  */
54
- async listByEntity(entityId) {
55
- return Array.from(this.intents.values()).filter((i) => i.entityId === entityId);
131
+ async listByEntity(entityId, tenantId) {
132
+ return Array.from(this.intents.values()).filter((i) => i.entityId === entityId && i.tenantId === tenantId);
133
+ }
134
+ /**
135
+ * Clear all intents (useful for test cleanup)
136
+ */
137
+ clear() {
138
+ this.intents.clear();
139
+ }
140
+ /**
141
+ * Get total count of intents (useful for testing)
142
+ */
143
+ count() {
144
+ return this.intents.size;
56
145
  }
57
146
  }
147
+ // =============================================================================
148
+ // BACKWARDS COMPATIBLE EXPORTS
149
+ // =============================================================================
150
+ /**
151
+ * Intent service class
152
+ *
153
+ * @deprecated Use MockIntentService explicitly for testing, or implement
154
+ * IIntentService for production use with the Vorion API.
155
+ */
156
+ export class IntentService extends MockIntentService {
157
+ }
58
158
  /**
59
159
  * Create a new intent service instance
160
+ *
161
+ * @deprecated Use new MockIntentService() for testing, or implement
162
+ * IIntentService for production use.
60
163
  */
61
164
  export function createIntentService() {
165
+ logger.warn('createIntentService() creates an in-memory mock. ' +
166
+ 'For production, connect to the Vorion API.');
62
167
  return new IntentService();
63
168
  }
64
169
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intent/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;AAYrD;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,UAA4B;QACvC,MAAM,MAAM,GAAW;YACrB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;YACnC,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAE5E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAM;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,EAAM,EAAE,MAAoB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAE/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAY;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC/B,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intent/index.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,30 @@
1
1
  /**
2
2
  * Trust-Aware LangChain Executor
3
3
  *
4
- * Wraps LangChain agents with trust-based access control.
4
+ * Wraps LangChain agents with trust-based access control and robust error handling.
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
8
  import type { TrustLevel } from '../common/types.js';
9
9
  import type { TrustEngine, TrustRecord } from '../trust-engine/index.js';
10
10
  import { TrustCallbackHandler } from './callback.js';
11
- import type { TrustAwareAgentConfig, TrustCheckResult, TrustedExecutionResult } from './types.js';
11
+ import type { TrustAwareAgentConfig, TrustCheckResult, TrustedExecutionResult, ClassifiedLLMError, TrustAwareAgentConfigWithRetry } from './types.js';
12
+ /**
13
+ * Classify an error into a known LLM error type
14
+ */
15
+ export declare function classifyLLMError(error: Error): ClassifiedLLMError;
12
16
  /**
13
17
  * Trust-aware agent executor
14
18
  *
15
- * Provides trust-gated execution for LangChain agents.
19
+ * Provides trust-gated execution for LangChain agents with robust error handling.
16
20
  */
17
21
  export declare class TrustAwareExecutor {
18
22
  private trustEngine;
19
23
  private callback;
20
24
  private config;
21
- constructor(trustEngine: TrustEngine, config: TrustAwareAgentConfig);
25
+ private retryConfig;
26
+ private errorClassifier;
27
+ constructor(trustEngine: TrustEngine, config: TrustAwareAgentConfigWithRetry);
22
28
  /**
23
29
  * Get the callback handler for use with LangChain
24
30
  */
@@ -36,13 +42,21 @@ export declare class TrustAwareExecutor {
36
42
  */
37
43
  checkTrust(requiredLevel?: TrustLevel): Promise<TrustCheckResult>;
38
44
  /**
39
- * Execute a function with trust gating
45
+ * Execute a function with trust gating and automatic retry
40
46
  *
41
47
  * @param fn - The function to execute (typically agent.invoke)
42
48
  * @param requiredLevel - Override minimum trust level for this execution
43
49
  * @throws TrustInsufficientError if trust is too low
44
50
  */
45
51
  execute<T>(fn: () => Promise<T>, requiredLevel?: TrustLevel): Promise<TrustedExecutionResult<T>>;
52
+ /**
53
+ * Execute a function with automatic retry for transient errors
54
+ */
55
+ private executeWithRetry;
56
+ /**
57
+ * Record a classified failure signal
58
+ */
59
+ private recordClassifiedFailure;
46
60
  /**
47
61
  * Get current trust record for the agent
48
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/langchain/executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAwB;gBAE1B,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB;IAMnE;;OAEG;IACH,IAAI,eAAe,IAAI,oBAAoB,CAE1C;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,UAAU,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6BvE;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,aAAa,CAAC,EAAE,UAAU,GACzB,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAiErC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIxD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,GAC5B,kBAAkB,CAEpB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/langchain/executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAGlB,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AA0BpB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB,CAqKjE;AA4BD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAsF;IACzG,OAAO,CAAC,eAAe,CAAuC;gBAElD,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,8BAA8B;IAe5E;;OAEG;IACH,IAAI,eAAe,IAAI,oBAAoB,CAE1C;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,UAAU,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6BvE;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,aAAa,CAAC,EAAE,UAAU,GACzB,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IA8CrC;;OAEG;YACW,gBAAgB;IAuE9B;;OAEG;YACW,uBAAuB;IAyBrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIxD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7D;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,GAC5B,kBAAkB,CAEpB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Trust-Aware LangChain Executor
3
3
  *
4
- * Wraps LangChain agents with trust-based access control.
4
+ * Wraps LangChain agents with trust-based access control and robust error handling.
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
@@ -10,19 +10,207 @@ import { TrustInsufficientError } from '../common/types.js';
10
10
  import { TRUST_LEVEL_NAMES } from '../trust-engine/index.js';
11
11
  import { createTrustCallback } from './callback.js';
12
12
  const logger = createLogger({ component: 'langchain-executor' });
13
+ /**
14
+ * Default retryable error types
15
+ */
16
+ const DEFAULT_RETRYABLE_ERRORS = [
17
+ 'rate_limit',
18
+ 'timeout',
19
+ 'network',
20
+ 'server_error',
21
+ 'model_unavailable',
22
+ ];
23
+ /**
24
+ * Default retry configuration
25
+ */
26
+ const DEFAULT_RETRY_CONFIG = {
27
+ maxRetries: 3,
28
+ baseDelayMs: 1000,
29
+ maxDelayMs: 30000,
30
+ backoffMultiplier: 2,
31
+ retryableErrors: DEFAULT_RETRYABLE_ERRORS,
32
+ };
33
+ /**
34
+ * Classify an error into a known LLM error type
35
+ */
36
+ export function classifyLLMError(error) {
37
+ const message = error.message.toLowerCase();
38
+ const name = error.name.toLowerCase();
39
+ // Rate limit errors
40
+ if (message.includes('rate limit') ||
41
+ message.includes('rate_limit') ||
42
+ message.includes('too many requests') ||
43
+ message.includes('429')) {
44
+ // Try to extract retry-after header
45
+ const retryMatch = message.match(/retry after (\d+)/i);
46
+ const retryAfterMs = retryMatch ? parseInt(retryMatch[1], 10) * 1000 : undefined;
47
+ return {
48
+ type: 'rate_limit',
49
+ message: 'API rate limit exceeded',
50
+ originalError: error,
51
+ retryable: true,
52
+ retryAfterMs,
53
+ metadata: { originalMessage: error.message },
54
+ };
55
+ }
56
+ // Context length errors
57
+ if (message.includes('context length') ||
58
+ message.includes('maximum context') ||
59
+ message.includes('too long') ||
60
+ message.includes('token limit') ||
61
+ message.includes('max_tokens')) {
62
+ return {
63
+ type: 'context_length',
64
+ message: 'Input or output exceeds maximum context length',
65
+ originalError: error,
66
+ retryable: false,
67
+ metadata: { originalMessage: error.message },
68
+ };
69
+ }
70
+ // Authentication errors
71
+ if (message.includes('unauthorized') ||
72
+ message.includes('invalid api key') ||
73
+ message.includes('authentication') ||
74
+ message.includes('401') ||
75
+ message.includes('403')) {
76
+ return {
77
+ type: 'authentication',
78
+ message: 'API authentication failed',
79
+ originalError: error,
80
+ retryable: false,
81
+ metadata: { originalMessage: error.message },
82
+ };
83
+ }
84
+ // Model unavailable
85
+ if (message.includes('model not found') ||
86
+ message.includes('model_not_available') ||
87
+ message.includes('overloaded') ||
88
+ message.includes('capacity')) {
89
+ return {
90
+ type: 'model_unavailable',
91
+ message: 'Model is unavailable or overloaded',
92
+ originalError: error,
93
+ retryable: true,
94
+ metadata: { originalMessage: error.message },
95
+ };
96
+ }
97
+ // Content filter errors
98
+ if (message.includes('content filter') ||
99
+ message.includes('content_policy') ||
100
+ message.includes('safety') ||
101
+ message.includes('blocked')) {
102
+ return {
103
+ type: 'content_filter',
104
+ message: 'Content blocked by safety filters',
105
+ originalError: error,
106
+ retryable: false,
107
+ metadata: { originalMessage: error.message },
108
+ };
109
+ }
110
+ // Timeout errors
111
+ if (message.includes('timeout') ||
112
+ message.includes('timed out') ||
113
+ name.includes('timeout') ||
114
+ message.includes('econnreset')) {
115
+ return {
116
+ type: 'timeout',
117
+ message: 'Request timed out',
118
+ originalError: error,
119
+ retryable: true,
120
+ metadata: { originalMessage: error.message },
121
+ };
122
+ }
123
+ // Network errors
124
+ if (message.includes('network') ||
125
+ message.includes('enotfound') ||
126
+ message.includes('econnrefused') ||
127
+ message.includes('socket') ||
128
+ name.includes('fetch')) {
129
+ return {
130
+ type: 'network',
131
+ message: 'Network connectivity error',
132
+ originalError: error,
133
+ retryable: true,
134
+ metadata: { originalMessage: error.message },
135
+ };
136
+ }
137
+ // Invalid request errors
138
+ if (message.includes('invalid') ||
139
+ message.includes('bad request') ||
140
+ message.includes('400')) {
141
+ return {
142
+ type: 'invalid_request',
143
+ message: 'Invalid request format',
144
+ originalError: error,
145
+ retryable: false,
146
+ metadata: { originalMessage: error.message },
147
+ };
148
+ }
149
+ // Server errors
150
+ if (message.includes('500') ||
151
+ message.includes('502') ||
152
+ message.includes('503') ||
153
+ message.includes('504') ||
154
+ message.includes('internal server error') ||
155
+ message.includes('service unavailable')) {
156
+ return {
157
+ type: 'server_error',
158
+ message: 'Provider server error',
159
+ originalError: error,
160
+ retryable: true,
161
+ metadata: { originalMessage: error.message },
162
+ };
163
+ }
164
+ // Unknown error
165
+ return {
166
+ type: 'unknown',
167
+ message: error.message,
168
+ originalError: error,
169
+ retryable: false,
170
+ metadata: { originalMessage: error.message, errorName: error.name },
171
+ };
172
+ }
173
+ /**
174
+ * Calculate delay for retry with exponential backoff
175
+ */
176
+ function calculateRetryDelay(attempt, config, classifiedError) {
177
+ // Use retry-after if provided by the error
178
+ if (classifiedError?.retryAfterMs) {
179
+ return Math.min(classifiedError.retryAfterMs, config.maxDelayMs);
180
+ }
181
+ // Exponential backoff with jitter
182
+ const exponentialDelay = config.baseDelayMs * Math.pow(config.backoffMultiplier, attempt - 1);
183
+ const jitter = Math.random() * 0.1 * exponentialDelay; // 10% jitter
184
+ return Math.min(exponentialDelay + jitter, config.maxDelayMs);
185
+ }
186
+ /**
187
+ * Sleep for a given number of milliseconds
188
+ */
189
+ function sleep(ms) {
190
+ return new Promise((resolve) => setTimeout(resolve, ms));
191
+ }
13
192
  /**
14
193
  * Trust-aware agent executor
15
194
  *
16
- * Provides trust-gated execution for LangChain agents.
195
+ * Provides trust-gated execution for LangChain agents with robust error handling.
17
196
  */
18
197
  export class TrustAwareExecutor {
19
198
  trustEngine;
20
199
  callback;
21
200
  config;
201
+ retryConfig;
202
+ errorClassifier;
22
203
  constructor(trustEngine, config) {
23
204
  this.trustEngine = trustEngine;
24
205
  this.config = config;
25
206
  this.callback = createTrustCallback(trustEngine, config);
207
+ // Set up retry configuration
208
+ this.retryConfig = {
209
+ ...DEFAULT_RETRY_CONFIG,
210
+ ...config.retryConfig,
211
+ };
212
+ // Set up error classifier
213
+ this.errorClassifier = config.errorClassifier ?? classifyLLMError;
26
214
  }
27
215
  /**
28
216
  * Get the callback handler for use with LangChain
@@ -71,7 +259,7 @@ export class TrustAwareExecutor {
71
259
  };
72
260
  }
73
261
  /**
74
- * Execute a function with trust gating
262
+ * Execute a function with trust gating and automatic retry
75
263
  *
76
264
  * @param fn - The function to execute (typically agent.invoke)
77
265
  * @param requiredLevel - Override minimum trust level for this execution
@@ -89,41 +277,104 @@ export class TrustAwareExecutor {
89
277
  throw new TrustInsufficientError(trustCheck.requiredLevel, trustCheck.currentLevel);
90
278
  }
91
279
  const initialSignals = this.callback.signalsRecorded;
92
- try {
93
- // Execute the function
94
- const result = await fn();
95
- // Get final trust state
96
- const finalRecord = await this.trustEngine.getScore(this.config.agentId);
97
- logger.info({
98
- agentId: this.config.agentId,
99
- signalsRecorded: this.callback.signalsRecorded - initialSignals,
100
- finalScore: finalRecord?.score,
101
- }, 'Trusted execution completed');
102
- return {
103
- result,
104
- trustCheck,
105
- signalsRecorded: this.callback.signalsRecorded - initialSignals,
106
- finalScore: finalRecord?.score ?? 0,
107
- finalLevel: finalRecord?.level ?? 0,
108
- };
109
- }
110
- catch (error) {
111
- // Record failure signal
112
- if (this.config.recordErrors !== false) {
113
- await this.trustEngine.recordSignal({
114
- id: crypto.randomUUID(),
115
- entityId: this.config.agentId,
116
- type: 'behavioral.execution_failure',
117
- value: 0.1,
118
- source: 'langchain-executor',
119
- timestamp: new Date().toISOString(),
120
- metadata: {
121
- error: error instanceof Error ? error.message : String(error),
122
- },
123
- });
280
+ // Execute with retry logic
281
+ const result = await this.executeWithRetry(fn);
282
+ // Get final trust state
283
+ const finalRecord = await this.trustEngine.getScore(this.config.agentId);
284
+ logger.info({
285
+ agentId: this.config.agentId,
286
+ signalsRecorded: this.callback.signalsRecorded - initialSignals,
287
+ finalScore: finalRecord?.score,
288
+ }, 'Trusted execution completed');
289
+ return {
290
+ result,
291
+ trustCheck,
292
+ signalsRecorded: this.callback.signalsRecorded - initialSignals,
293
+ finalScore: finalRecord?.score ?? 0,
294
+ finalLevel: finalRecord?.level ?? 0,
295
+ };
296
+ }
297
+ /**
298
+ * Execute a function with automatic retry for transient errors
299
+ */
300
+ async executeWithRetry(fn) {
301
+ let lastError;
302
+ for (let attempt = 1; attempt <= this.retryConfig.maxRetries + 1; attempt++) {
303
+ try {
304
+ return await fn();
124
305
  }
125
- throw error;
306
+ catch (error) {
307
+ const classifiedError = this.errorClassifier(error instanceof Error ? error : new Error(String(error)));
308
+ lastError = classifiedError;
309
+ // Log the error with classification
310
+ logger.warn({
311
+ agentId: this.config.agentId,
312
+ attempt,
313
+ maxAttempts: this.retryConfig.maxRetries + 1,
314
+ errorType: classifiedError.type,
315
+ retryable: classifiedError.retryable,
316
+ message: classifiedError.message,
317
+ }, 'Execution attempt failed');
318
+ // Check if we should retry
319
+ const isRetryableType = this.retryConfig.retryableErrors.includes(classifiedError.type);
320
+ const hasRetriesLeft = attempt <= this.retryConfig.maxRetries;
321
+ const shouldRetry = classifiedError.retryable && isRetryableType && hasRetriesLeft;
322
+ if (!shouldRetry) {
323
+ // Record failure signal with classification
324
+ await this.recordClassifiedFailure(classifiedError);
325
+ throw classifiedError.originalError;
326
+ }
327
+ // Calculate delay and wait
328
+ const delayMs = calculateRetryDelay(attempt, this.retryConfig, classifiedError);
329
+ logger.info({
330
+ agentId: this.config.agentId,
331
+ attempt,
332
+ delayMs,
333
+ errorType: classifiedError.type,
334
+ }, 'Retrying after delay');
335
+ // Call retry callback if configured
336
+ if (this.retryConfig.onRetry) {
337
+ try {
338
+ this.retryConfig.onRetry(classifiedError, attempt, delayMs);
339
+ }
340
+ catch (callbackError) {
341
+ logger.warn({ callbackError }, 'Error in onRetry callback');
342
+ }
343
+ }
344
+ await sleep(delayMs);
345
+ }
346
+ }
347
+ // Should never reach here, but just in case
348
+ if (lastError) {
349
+ await this.recordClassifiedFailure(lastError);
350
+ throw lastError.originalError;
126
351
  }
352
+ throw new Error('Execution failed with no error captured');
353
+ }
354
+ /**
355
+ * Record a classified failure signal
356
+ */
357
+ async recordClassifiedFailure(classifiedError) {
358
+ if (this.config.recordErrors === false) {
359
+ return;
360
+ }
361
+ // Determine signal value based on error type
362
+ // Non-retryable errors have lower trust impact (not the agent's fault)
363
+ const signalValue = classifiedError.retryable ? 0.1 : 0.2;
364
+ await this.trustEngine.recordSignal({
365
+ id: crypto.randomUUID(),
366
+ entityId: this.config.agentId,
367
+ type: `behavioral.execution_failure.${classifiedError.type}`,
368
+ value: signalValue,
369
+ source: 'langchain-executor',
370
+ timestamp: new Date().toISOString(),
371
+ metadata: {
372
+ errorType: classifiedError.type,
373
+ errorMessage: classifiedError.message,
374
+ retryable: classifiedError.retryable,
375
+ ...classifiedError.metadata,
376
+ },
377
+ });
127
378
  }
128
379
  /**
129
380
  * Get current trust record for the agent
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/langchain/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/langchain/executor.ts"],"names":[],"mappings":"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"}