@vorionsys/atsf-core 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/README.md +77 -11
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/api/index.js +1 -1
  5. package/dist/api/server.d.ts +5 -2
  6. package/dist/api/server.d.ts.map +1 -1
  7. package/dist/api/server.js +186 -149
  8. package/dist/api/server.js.map +1 -1
  9. package/dist/arbitration/index.d.ts +4 -4
  10. package/dist/arbitration/index.d.ts.map +1 -1
  11. package/dist/arbitration/index.js +46 -41
  12. package/dist/arbitration/index.js.map +1 -1
  13. package/dist/arbitration/types.d.ts +10 -10
  14. package/dist/arbitration/types.d.ts.map +1 -1
  15. package/dist/basis/evaluator.d.ts +1 -1
  16. package/dist/basis/evaluator.d.ts.map +1 -1
  17. package/dist/basis/evaluator.js +56 -54
  18. package/dist/basis/evaluator.js.map +1 -1
  19. package/dist/basis/index.d.ts +3 -3
  20. package/dist/basis/index.js +3 -3
  21. package/dist/basis/parser.d.ts +16 -16
  22. package/dist/basis/parser.d.ts.map +1 -1
  23. package/dist/basis/parser.js +32 -25
  24. package/dist/basis/parser.js.map +1 -1
  25. package/dist/basis/types.d.ts +2 -2
  26. package/dist/chain/index.d.ts.map +1 -1
  27. package/dist/chain/index.js +16 -16
  28. package/dist/chain/index.js.map +1 -1
  29. package/dist/cognigate/index.d.ts +1 -1
  30. package/dist/cognigate/index.d.ts.map +1 -1
  31. package/dist/cognigate/index.js +44 -33
  32. package/dist/cognigate/index.js.map +1 -1
  33. package/dist/common/adapters.d.ts +18 -11
  34. package/dist/common/adapters.d.ts.map +1 -1
  35. package/dist/common/adapters.js +100 -79
  36. package/dist/common/adapters.js.map +1 -1
  37. package/dist/common/config.d.ts +67 -67
  38. package/dist/common/config.js +49 -49
  39. package/dist/common/config.js.map +1 -1
  40. package/dist/common/index.d.ts +4 -4
  41. package/dist/common/index.js +4 -4
  42. package/dist/common/logger.d.ts +1 -1
  43. package/dist/common/logger.js +8 -8
  44. package/dist/common/types.d.ts +8 -8
  45. package/dist/common/types.js +5 -5
  46. package/dist/containment/index.d.ts +3 -3
  47. package/dist/containment/index.d.ts.map +1 -1
  48. package/dist/containment/index.js +119 -105
  49. package/dist/containment/index.js.map +1 -1
  50. package/dist/containment/types.d.ts +11 -11
  51. package/dist/containment/types.d.ts.map +1 -1
  52. package/dist/contracts/index.d.ts +9 -9
  53. package/dist/contracts/index.d.ts.map +1 -1
  54. package/dist/contracts/index.js +59 -54
  55. package/dist/contracts/index.js.map +1 -1
  56. package/dist/contracts/types.d.ts +12 -12
  57. package/dist/contracts/types.d.ts.map +1 -1
  58. package/dist/crewai/callback.d.ts +91 -0
  59. package/dist/crewai/callback.d.ts.map +1 -0
  60. package/dist/crewai/callback.js +271 -0
  61. package/dist/crewai/callback.js.map +1 -0
  62. package/dist/crewai/executor.d.ts +135 -0
  63. package/dist/crewai/executor.d.ts.map +1 -0
  64. package/dist/crewai/executor.js +381 -0
  65. package/dist/crewai/executor.js.map +1 -0
  66. package/dist/crewai/index.d.ts +12 -0
  67. package/dist/crewai/index.d.ts.map +1 -0
  68. package/dist/crewai/index.js +12 -0
  69. package/dist/crewai/index.js.map +1 -0
  70. package/dist/crewai/tools.d.ts +21 -0
  71. package/dist/crewai/tools.d.ts.map +1 -0
  72. package/dist/crewai/tools.js +164 -0
  73. package/dist/crewai/tools.js.map +1 -0
  74. package/dist/crewai/types.d.ts +139 -0
  75. package/dist/crewai/types.d.ts.map +1 -0
  76. package/dist/crewai/types.js +9 -0
  77. package/dist/crewai/types.js.map +1 -0
  78. package/dist/enforce/index.d.ts +48 -222
  79. package/dist/enforce/index.d.ts.map +1 -1
  80. package/dist/enforce/index.js +144 -47
  81. package/dist/enforce/index.js.map +1 -1
  82. package/dist/enforce/trust-aware-enforcement-service.d.ts +121 -0
  83. package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -0
  84. package/dist/enforce/trust-aware-enforcement-service.js +601 -0
  85. package/dist/enforce/trust-aware-enforcement-service.js.map +1 -0
  86. package/dist/enforce/types.d.ts +234 -0
  87. package/dist/enforce/types.d.ts.map +1 -0
  88. package/dist/enforce/types.js +10 -0
  89. package/dist/enforce/types.js.map +1 -0
  90. package/dist/governance/fluid-workflow.d.ts +8 -8
  91. package/dist/governance/fluid-workflow.d.ts.map +1 -1
  92. package/dist/governance/fluid-workflow.js +114 -86
  93. package/dist/governance/fluid-workflow.js.map +1 -1
  94. package/dist/governance/index.d.ts +7 -7
  95. package/dist/governance/index.d.ts.map +1 -1
  96. package/dist/governance/index.js +81 -74
  97. package/dist/governance/index.js.map +1 -1
  98. package/dist/governance/proof-bridge.d.ts +6 -6
  99. package/dist/governance/proof-bridge.d.ts.map +1 -1
  100. package/dist/governance/proof-bridge.js +5 -5
  101. package/dist/governance/proof-bridge.js.map +1 -1
  102. package/dist/governance/types.d.ts +16 -9
  103. package/dist/governance/types.d.ts.map +1 -1
  104. package/dist/governance/types.js.map +1 -1
  105. package/dist/index.d.ts +29 -25
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +33 -23
  108. package/dist/index.js.map +1 -1
  109. package/dist/intent/index.d.ts +21 -56
  110. package/dist/intent/index.d.ts.map +1 -1
  111. package/dist/intent/index.js +58 -24
  112. package/dist/intent/index.js.map +1 -1
  113. package/dist/intent/persistent-intent-service.d.ts +68 -0
  114. package/dist/intent/persistent-intent-service.d.ts.map +1 -0
  115. package/dist/intent/persistent-intent-service.js +277 -0
  116. package/dist/intent/persistent-intent-service.js.map +1 -0
  117. package/dist/intent/types.d.ts +69 -0
  118. package/dist/intent/types.d.ts.map +1 -0
  119. package/dist/intent/types.js +10 -0
  120. package/dist/intent/types.js.map +1 -0
  121. package/dist/intent-gateway/index.d.ts +522 -0
  122. package/dist/intent-gateway/index.d.ts.map +1 -0
  123. package/dist/intent-gateway/index.js +1499 -0
  124. package/dist/intent-gateway/index.js.map +1 -0
  125. package/dist/langchain/callback.d.ts +2 -2
  126. package/dist/langchain/callback.d.ts.map +1 -1
  127. package/dist/langchain/callback.js +30 -30
  128. package/dist/langchain/callback.js.map +1 -1
  129. package/dist/langchain/executor.d.ts +4 -4
  130. package/dist/langchain/executor.d.ts.map +1 -1
  131. package/dist/langchain/executor.js +82 -80
  132. package/dist/langchain/executor.js.map +1 -1
  133. package/dist/langchain/index.d.ts +5 -5
  134. package/dist/langchain/index.js +5 -5
  135. package/dist/langchain/tools.d.ts +1 -1
  136. package/dist/langchain/tools.d.ts.map +1 -1
  137. package/dist/langchain/tools.js +33 -33
  138. package/dist/langchain/tools.js.map +1 -1
  139. package/dist/langchain/types.d.ts +3 -3
  140. package/dist/langchain/types.d.ts.map +1 -1
  141. package/dist/layers/implementations/L0-request-format.d.ts +37 -0
  142. package/dist/layers/implementations/L0-request-format.d.ts.map +1 -0
  143. package/dist/layers/implementations/L0-request-format.js +218 -0
  144. package/dist/layers/implementations/L0-request-format.js.map +1 -0
  145. package/dist/layers/implementations/L1-input-size.d.ts +36 -0
  146. package/dist/layers/implementations/L1-input-size.d.ts.map +1 -0
  147. package/dist/layers/implementations/L1-input-size.js +160 -0
  148. package/dist/layers/implementations/L1-input-size.js.map +1 -0
  149. package/dist/layers/implementations/L2-charset-sanitizer.d.ts +28 -0
  150. package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -0
  151. package/dist/layers/implementations/L2-charset-sanitizer.js +230 -0
  152. package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -0
  153. package/dist/layers/implementations/L3-schema-conformance.d.ts +47 -0
  154. package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -0
  155. package/dist/layers/implementations/L3-schema-conformance.js +267 -0
  156. package/dist/layers/implementations/L3-schema-conformance.js.map +1 -0
  157. package/dist/layers/implementations/L4-injection-detector.d.ts +47 -0
  158. package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -0
  159. package/dist/layers/implementations/L4-injection-detector.js +260 -0
  160. package/dist/layers/implementations/L4-injection-detector.js.map +1 -0
  161. package/dist/layers/implementations/L5-rate-limiter.d.ts +51 -0
  162. package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -0
  163. package/dist/layers/implementations/L5-rate-limiter.js +183 -0
  164. package/dist/layers/implementations/L5-rate-limiter.js.map +1 -0
  165. package/dist/layers/implementations/index.d.ts +16 -0
  166. package/dist/layers/implementations/index.d.ts.map +1 -0
  167. package/dist/layers/implementations/index.js +16 -0
  168. package/dist/layers/implementations/index.js.map +1 -0
  169. package/dist/layers/index.d.ts +3 -3
  170. package/dist/layers/index.d.ts.map +1 -1
  171. package/dist/layers/index.js +99 -71
  172. package/dist/layers/index.js.map +1 -1
  173. package/dist/layers/types.d.ts +16 -16
  174. package/dist/layers/types.d.ts.map +1 -1
  175. package/dist/persistence/file.d.ts +3 -3
  176. package/dist/persistence/file.d.ts.map +1 -1
  177. package/dist/persistence/file.js +32 -28
  178. package/dist/persistence/file.js.map +1 -1
  179. package/dist/persistence/index.d.ts +7 -7
  180. package/dist/persistence/index.d.ts.map +1 -1
  181. package/dist/persistence/index.js +18 -18
  182. package/dist/persistence/index.js.map +1 -1
  183. package/dist/persistence/memory.d.ts +3 -3
  184. package/dist/persistence/memory.d.ts.map +1 -1
  185. package/dist/persistence/memory.js +10 -8
  186. package/dist/persistence/memory.js.map +1 -1
  187. package/dist/persistence/sqlite.d.ts +3 -3
  188. package/dist/persistence/sqlite.d.ts.map +1 -1
  189. package/dist/persistence/sqlite.js +36 -36
  190. package/dist/persistence/sqlite.js.map +1 -1
  191. package/dist/persistence/supabase.d.ts +3 -3
  192. package/dist/persistence/supabase.d.ts.map +1 -1
  193. package/dist/persistence/supabase.js +41 -43
  194. package/dist/persistence/supabase.js.map +1 -1
  195. package/dist/persistence/types.d.ts +5 -5
  196. package/dist/phase6/ceiling.d.ts +5 -5
  197. package/dist/phase6/ceiling.d.ts.map +1 -1
  198. package/dist/phase6/ceiling.js +67 -34
  199. package/dist/phase6/ceiling.js.map +1 -1
  200. package/dist/phase6/context.d.ts +3 -3
  201. package/dist/phase6/context.d.ts.map +1 -1
  202. package/dist/phase6/context.js +91 -45
  203. package/dist/phase6/context.js.map +1 -1
  204. package/dist/phase6/index.d.ts +13 -13
  205. package/dist/phase6/index.d.ts.map +1 -1
  206. package/dist/phase6/index.js +16 -16
  207. package/dist/phase6/index.js.map +1 -1
  208. package/dist/phase6/presets.d.ts +2 -2
  209. package/dist/phase6/presets.d.ts.map +1 -1
  210. package/dist/phase6/presets.js +39 -33
  211. package/dist/phase6/presets.js.map +1 -1
  212. package/dist/phase6/provenance.d.ts +4 -4
  213. package/dist/phase6/provenance.d.ts.map +1 -1
  214. package/dist/phase6/provenance.js +42 -35
  215. package/dist/phase6/provenance.js.map +1 -1
  216. package/dist/phase6/role-gates/index.d.ts +2 -2
  217. package/dist/phase6/role-gates/index.js +2 -2
  218. package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
  219. package/dist/phase6/role-gates/kernel.js +16 -16
  220. package/dist/phase6/role-gates/kernel.js.map +1 -1
  221. package/dist/phase6/role-gates/policy.d.ts +2 -2
  222. package/dist/phase6/role-gates/policy.js +6 -6
  223. package/dist/phase6/role-gates.d.ts +4 -4
  224. package/dist/phase6/role-gates.d.ts.map +1 -1
  225. package/dist/phase6/role-gates.js +80 -58
  226. package/dist/phase6/role-gates.js.map +1 -1
  227. package/dist/phase6/types.d.ts +35 -35
  228. package/dist/phase6/types.d.ts.map +1 -1
  229. package/dist/phase6/types.js +166 -66
  230. package/dist/phase6/types.js.map +1 -1
  231. package/dist/phase6/weight-presets/canonical.d.ts +2 -2
  232. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
  233. package/dist/phase6/weight-presets/canonical.js +12 -12
  234. package/dist/phase6/weight-presets/canonical.js.map +1 -1
  235. package/dist/phase6/weight-presets/deltas.d.ts +2 -2
  236. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
  237. package/dist/phase6/weight-presets/deltas.js +27 -27
  238. package/dist/phase6/weight-presets/deltas.js.map +1 -1
  239. package/dist/phase6/weight-presets/index.d.ts +4 -4
  240. package/dist/phase6/weight-presets/index.js +4 -4
  241. package/dist/phase6/weight-presets/merger.d.ts +3 -3
  242. package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
  243. package/dist/phase6/weight-presets/merger.js +40 -44
  244. package/dist/phase6/weight-presets/merger.js.map +1 -1
  245. package/dist/proof/index.d.ts +3 -3
  246. package/dist/proof/index.d.ts.map +1 -1
  247. package/dist/proof/index.js +44 -38
  248. package/dist/proof/index.js.map +1 -1
  249. package/dist/proof/merkle.d.ts +3 -3
  250. package/dist/proof/merkle.d.ts.map +1 -1
  251. package/dist/proof/merkle.js +26 -25
  252. package/dist/proof/merkle.js.map +1 -1
  253. package/dist/proof/zk-proofs.d.ts +6 -6
  254. package/dist/proof/zk-proofs.d.ts.map +1 -1
  255. package/dist/proof/zk-proofs.js +42 -43
  256. package/dist/proof/zk-proofs.js.map +1 -1
  257. package/dist/provenance/index.d.ts +3 -3
  258. package/dist/provenance/index.d.ts.map +1 -1
  259. package/dist/provenance/index.js +19 -17
  260. package/dist/provenance/index.js.map +1 -1
  261. package/dist/provenance/types.d.ts +4 -4
  262. package/dist/provenance/types.d.ts.map +1 -1
  263. package/dist/sandbox-training/challenges.d.ts +1 -1
  264. package/dist/sandbox-training/challenges.d.ts.map +1 -1
  265. package/dist/sandbox-training/challenges.js +228 -228
  266. package/dist/sandbox-training/challenges.js.map +1 -1
  267. package/dist/sandbox-training/graduation.d.ts +1 -1
  268. package/dist/sandbox-training/graduation.d.ts.map +1 -1
  269. package/dist/sandbox-training/graduation.js +14 -15
  270. package/dist/sandbox-training/graduation.js.map +1 -1
  271. package/dist/sandbox-training/index.d.ts +9 -9
  272. package/dist/sandbox-training/index.d.ts.map +1 -1
  273. package/dist/sandbox-training/index.js +6 -6
  274. package/dist/sandbox-training/index.js.map +1 -1
  275. package/dist/sandbox-training/promotion-service.d.ts +4 -4
  276. package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
  277. package/dist/sandbox-training/promotion-service.js +5 -5
  278. package/dist/sandbox-training/promotion-service.js.map +1 -1
  279. package/dist/sandbox-training/runner.d.ts +1 -1
  280. package/dist/sandbox-training/runner.d.ts.map +1 -1
  281. package/dist/sandbox-training/runner.js +74 -73
  282. package/dist/sandbox-training/runner.js.map +1 -1
  283. package/dist/sandbox-training/scorer.d.ts +4 -4
  284. package/dist/sandbox-training/scorer.js +5 -5
  285. package/dist/sandbox-training/types.d.ts +4 -4
  286. package/dist/sandbox-training/types.d.ts.map +1 -1
  287. package/dist/sandbox-training/types.js +11 -7
  288. package/dist/sandbox-training/types.js.map +1 -1
  289. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -1
  290. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
  291. package/dist/trust-engine/ceiling-enforcement/audit.js +3 -4
  292. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
  293. package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
  294. package/dist/trust-engine/ceiling-enforcement/index.js +2 -2
  295. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +1 -1
  296. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
  297. package/dist/trust-engine/ceiling-enforcement/kernel.js +1 -1
  298. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
  299. package/dist/trust-engine/context-policy/factory.d.ts +1 -1
  300. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
  301. package/dist/trust-engine/context-policy/factory.js +1 -1
  302. package/dist/trust-engine/context-policy/factory.js.map +1 -1
  303. package/dist/trust-engine/context-policy/index.d.ts +2 -2
  304. package/dist/trust-engine/context-policy/index.js +2 -2
  305. package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
  306. package/dist/trust-engine/creation-modifiers/index.js +1 -1
  307. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
  308. package/dist/trust-engine/creation-modifiers/types.js +2 -3
  309. package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
  310. package/dist/trust-engine/decay-profiles.d.ts +1 -1
  311. package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
  312. package/dist/trust-engine/decay-profiles.js +4 -4
  313. package/dist/trust-engine/decay-profiles.js.map +1 -1
  314. package/dist/trust-engine/index.d.ts +111 -45
  315. package/dist/trust-engine/index.d.ts.map +1 -1
  316. package/dist/trust-engine/index.js +418 -61
  317. package/dist/trust-engine/index.js.map +1 -1
  318. package/dist/trust-engine/phase6-types.d.ts +10 -10
  319. package/dist/trust-engine/phase6-types.d.ts.map +1 -1
  320. package/dist/trust-engine/phase6-types.js +25 -23
  321. package/dist/trust-engine/phase6-types.js.map +1 -1
  322. package/dist/trust-engine/types.d.ts +77 -0
  323. package/dist/trust-engine/types.d.ts.map +1 -0
  324. package/dist/trust-engine/types.js +20 -0
  325. package/dist/trust-engine/types.js.map +1 -0
  326. package/package.json +5 -4
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Trust-Aware CrewAI Executor
3
+ *
4
+ * Wraps CrewAI crews and tasks with trust-based access control.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { createLogger } from "../common/logger.js";
9
+ import { TrustInsufficientError } from "../common/types.js";
10
+ import { TRUST_LEVEL_NAMES } from "../trust-engine/index.js";
11
+ import { createCrewTrustCallback, } from "./callback.js";
12
+ const logger = createLogger({ component: "crewai-executor" });
13
+ // =============================================================================
14
+ // CREW AGENT EXECUTOR
15
+ // =============================================================================
16
+ /**
17
+ * Trust-aware executor for a single crew agent
18
+ *
19
+ * Provides trust-gated task execution and delegation for CrewAI agents.
20
+ */
21
+ export class CrewAgentExecutor {
22
+ trustEngine;
23
+ callback;
24
+ config;
25
+ constructor(trustEngine, config) {
26
+ this.trustEngine = trustEngine;
27
+ this.config = config;
28
+ this.callback = createCrewTrustCallback(trustEngine, config);
29
+ }
30
+ /**
31
+ * Get the callback handler
32
+ */
33
+ get callbackHandler() {
34
+ return this.callback;
35
+ }
36
+ /**
37
+ * Get the agent ID
38
+ */
39
+ get agentId() {
40
+ return this.config.agentId;
41
+ }
42
+ /**
43
+ * Get the agent role
44
+ */
45
+ get role() {
46
+ return this.config.role;
47
+ }
48
+ /**
49
+ * Initialize the executor
50
+ */
51
+ async initialize() {
52
+ await this.callback.initialize();
53
+ }
54
+ /**
55
+ * Check if the agent has sufficient trust
56
+ */
57
+ async checkTrust(requiredLevel) {
58
+ const minLevel = requiredLevel ?? this.config.minTrustLevel ?? 1;
59
+ const record = await this.trustEngine.getScore(this.config.agentId);
60
+ if (!record) {
61
+ return {
62
+ allowed: false,
63
+ agentId: this.config.agentId,
64
+ currentLevel: 0,
65
+ currentScore: 0,
66
+ requiredLevel: minLevel,
67
+ reason: "Agent not initialized in trust engine",
68
+ };
69
+ }
70
+ const allowed = record.level >= minLevel;
71
+ return {
72
+ allowed,
73
+ agentId: this.config.agentId,
74
+ currentLevel: record.level,
75
+ currentScore: record.score,
76
+ requiredLevel: minLevel,
77
+ reason: allowed
78
+ ? `Trust level ${TRUST_LEVEL_NAMES[record.level]} meets requirement`
79
+ : `Trust level ${TRUST_LEVEL_NAMES[record.level]} below required ${TRUST_LEVEL_NAMES[minLevel]}`,
80
+ };
81
+ }
82
+ /**
83
+ * Execute a task with trust gating
84
+ *
85
+ * @param task - Task configuration
86
+ * @param fn - The function to execute (typically the actual CrewAI task runner)
87
+ * @throws TrustInsufficientError if trust is too low
88
+ */
89
+ async executeTask(task, fn) {
90
+ const requiredLevel = task.minTrustLevel ?? this.config.minTrustLevel ?? 1;
91
+ const trustCheck = await this.checkTrust(requiredLevel);
92
+ if (!trustCheck.allowed) {
93
+ logger.warn({
94
+ agentId: this.config.agentId,
95
+ taskId: task.taskId,
96
+ currentLevel: trustCheck.currentLevel,
97
+ requiredLevel: trustCheck.requiredLevel,
98
+ }, "Task execution blocked due to insufficient trust");
99
+ throw new TrustInsufficientError(trustCheck.requiredLevel, trustCheck.currentLevel);
100
+ }
101
+ const runId = crypto.randomUUID();
102
+ const initialSignals = this.callback.signalsRecorded;
103
+ await this.callback.handleTaskStart(task.taskId, runId);
104
+ try {
105
+ const result = await fn();
106
+ await this.callback.handleTaskEnd(task.taskId, runId);
107
+ const finalRecord = await this.trustEngine.getScore(this.config.agentId);
108
+ logger.info({
109
+ agentId: this.config.agentId,
110
+ taskId: task.taskId,
111
+ signalsRecorded: this.callback.signalsRecorded - initialSignals,
112
+ finalScore: finalRecord?.score,
113
+ }, "Trusted task execution completed");
114
+ return {
115
+ result,
116
+ taskId: task.taskId,
117
+ agentId: this.config.agentId,
118
+ trustCheck,
119
+ signalsRecorded: this.callback.signalsRecorded - initialSignals,
120
+ finalScore: finalRecord?.score ?? 0,
121
+ finalLevel: finalRecord?.level ?? 0,
122
+ };
123
+ }
124
+ catch (error) {
125
+ await this.callback.handleTaskError(task.taskId, error instanceof Error ? error : new Error(String(error)), runId);
126
+ throw error;
127
+ }
128
+ }
129
+ /**
130
+ * Delegate a task to another agent with trust gating on both sides
131
+ *
132
+ * @param task - Task to delegate
133
+ * @param targetExecutor - The target agent's executor
134
+ * @param fn - The function to execute on the target agent
135
+ * @throws TrustInsufficientError if either agent lacks trust
136
+ */
137
+ async delegateTask(task, targetExecutor, fn) {
138
+ if (this.config.allowDelegation === false) {
139
+ throw new Error(`Agent ${this.config.agentId} is not allowed to delegate tasks`);
140
+ }
141
+ // Check delegator trust
142
+ const delegatorCheck = await this.checkTrust();
143
+ if (!delegatorCheck.allowed) {
144
+ throw new TrustInsufficientError(delegatorCheck.requiredLevel, delegatorCheck.currentLevel);
145
+ }
146
+ // Check delegatee trust
147
+ const delegateeCheck = await targetExecutor.checkTrust(task.minTrustLevel ?? this.config.minTrustLevel ?? 1);
148
+ if (!delegateeCheck.allowed) {
149
+ throw new TrustInsufficientError(delegateeCheck.requiredLevel, delegateeCheck.currentLevel);
150
+ }
151
+ const runId = crypto.randomUUID();
152
+ await this.callback.handleDelegationStart(targetExecutor.agentId, task.taskId, runId);
153
+ try {
154
+ const result = await fn();
155
+ await this.callback.handleDelegationEnd(targetExecutor.agentId, task.taskId, runId);
156
+ logger.info({
157
+ from: this.config.agentId,
158
+ to: targetExecutor.agentId,
159
+ taskId: task.taskId,
160
+ }, "Task delegation completed");
161
+ return {
162
+ result,
163
+ fromAgentId: this.config.agentId,
164
+ toAgentId: targetExecutor.agentId,
165
+ trustCheck: delegatorCheck,
166
+ delegateeTrustCheck: delegateeCheck,
167
+ };
168
+ }
169
+ catch (error) {
170
+ await this.callback.handleDelegationError(targetExecutor.agentId, task.taskId, error instanceof Error ? error : new Error(String(error)), runId);
171
+ throw error;
172
+ }
173
+ }
174
+ /**
175
+ * Get current trust record for the agent
176
+ */
177
+ async getTrustRecord() {
178
+ return this.trustEngine.getScore(this.config.agentId);
179
+ }
180
+ /**
181
+ * Manually record a positive signal
182
+ */
183
+ async recordSuccess(type, value = 0.85) {
184
+ await this.trustEngine.recordSignal({
185
+ id: crypto.randomUUID(),
186
+ entityId: this.config.agentId,
187
+ type: `behavioral.${type}`,
188
+ value,
189
+ source: "crewai-manual",
190
+ timestamp: new Date().toISOString(),
191
+ metadata: { role: this.config.role },
192
+ });
193
+ }
194
+ /**
195
+ * Manually record a negative signal
196
+ */
197
+ async recordFailure(type, value = 0.1) {
198
+ await this.trustEngine.recordSignal({
199
+ id: crypto.randomUUID(),
200
+ entityId: this.config.agentId,
201
+ type: `behavioral.${type}`,
202
+ value,
203
+ source: "crewai-manual",
204
+ timestamp: new Date().toISOString(),
205
+ metadata: { role: this.config.role },
206
+ });
207
+ }
208
+ }
209
+ // =============================================================================
210
+ // CREW EXECUTOR
211
+ // =============================================================================
212
+ /**
213
+ * Trust-aware crew executor
214
+ *
215
+ * Manages a crew of agents with collective trust governance.
216
+ * Ensures all agents meet minimum trust requirements before crew execution.
217
+ */
218
+ export class CrewExecutor {
219
+ trustEngine;
220
+ config;
221
+ agents = new Map();
222
+ constructor(trustEngine, config) {
223
+ this.trustEngine = trustEngine;
224
+ this.config = {
225
+ crewId: config.crewId,
226
+ process: config.process ?? "sequential",
227
+ minCrewTrust: config.minCrewTrust ?? 1,
228
+ maxTaskFailures: config.maxTaskFailures ?? 0,
229
+ recordCrewEvents: config.recordCrewEvents ?? true,
230
+ };
231
+ }
232
+ /**
233
+ * Get the crew ID
234
+ */
235
+ get crewId() {
236
+ return this.config.crewId;
237
+ }
238
+ /**
239
+ * Get the execution process type
240
+ */
241
+ get process() {
242
+ return this.config.process;
243
+ }
244
+ /**
245
+ * Get all agent executors
246
+ */
247
+ get agentExecutors() {
248
+ return Array.from(this.agents.values());
249
+ }
250
+ /**
251
+ * Add an agent to the crew
252
+ */
253
+ addAgent(executor) {
254
+ this.agents.set(executor.agentId, executor);
255
+ }
256
+ /**
257
+ * Get an agent executor by ID
258
+ */
259
+ getAgent(agentId) {
260
+ return this.agents.get(agentId);
261
+ }
262
+ /**
263
+ * Initialize all agents in the crew
264
+ */
265
+ async initialize() {
266
+ for (const agent of this.agents.values()) {
267
+ await agent.initialize();
268
+ }
269
+ logger.info({ crewId: this.config.crewId, agentCount: this.agents.size }, "Crew initialized");
270
+ }
271
+ /**
272
+ * Get the average trust level across all crew members
273
+ */
274
+ async getCrewTrust() {
275
+ if (this.agents.size === 0) {
276
+ return { averageScore: 0, averageLevel: 0, allMeetMinimum: false };
277
+ }
278
+ let totalScore = 0;
279
+ let totalLevel = 0;
280
+ let allMeet = true;
281
+ for (const agent of this.agents.values()) {
282
+ const record = await this.trustEngine.getScore(agent.agentId);
283
+ const score = record?.score ?? 0;
284
+ const level = record?.level ?? 0;
285
+ totalScore += score;
286
+ totalLevel += level;
287
+ if (level < this.config.minCrewTrust) {
288
+ allMeet = false;
289
+ }
290
+ }
291
+ return {
292
+ averageScore: totalScore / this.agents.size,
293
+ averageLevel: totalLevel / this.agents.size,
294
+ allMeetMinimum: allMeet,
295
+ };
296
+ }
297
+ /**
298
+ * Execute a set of tasks with the crew
299
+ *
300
+ * Tasks are assigned to agents based on the configured process (sequential/hierarchical).
301
+ * All agents must meet the minimum crew trust requirement.
302
+ *
303
+ * @param tasks - Tasks to execute
304
+ * @param taskRunner - Function that runs a single task given task config and agent executor
305
+ * @throws TrustInsufficientError if any agent fails trust check
306
+ */
307
+ async kickoff(tasks, taskRunner) {
308
+ // Check crew-level trust
309
+ const crewTrust = await this.getCrewTrust();
310
+ if (!crewTrust.allMeetMinimum) {
311
+ throw new TrustInsufficientError(this.config.minCrewTrust, Math.floor(crewTrust.averageLevel));
312
+ }
313
+ const agentList = Array.from(this.agents.values());
314
+ if (agentList.length === 0) {
315
+ throw new Error("Crew has no agents");
316
+ }
317
+ const results = [];
318
+ let tasksFailed = 0;
319
+ for (let i = 0; i < tasks.length; i++) {
320
+ const task = tasks[i];
321
+ // Determine which agent handles this task
322
+ let agent;
323
+ if (task.assignedAgentId && this.agents.has(task.assignedAgentId)) {
324
+ agent = this.agents.get(task.assignedAgentId);
325
+ }
326
+ else {
327
+ // Round-robin assignment
328
+ agent = agentList[i % agentList.length];
329
+ }
330
+ try {
331
+ const taskResult = await agent.executeTask(task, () => taskRunner(task, agent));
332
+ results.push(taskResult);
333
+ }
334
+ catch (error) {
335
+ tasksFailed++;
336
+ if (tasksFailed > this.config.maxTaskFailures) {
337
+ logger.warn({
338
+ crewId: this.config.crewId,
339
+ tasksFailed,
340
+ maxAllowed: this.config.maxTaskFailures,
341
+ }, "Crew aborted due to too many task failures");
342
+ throw error;
343
+ }
344
+ logger.warn({
345
+ crewId: this.config.crewId,
346
+ taskId: task.taskId,
347
+ agentId: agent.agentId,
348
+ error: error instanceof Error ? error.message : String(error),
349
+ }, "Task failed within tolerance, continuing");
350
+ }
351
+ }
352
+ let totalSignals = 0;
353
+ for (const agent of this.agents.values()) {
354
+ totalSignals += agent.callbackHandler.signalsRecorded;
355
+ }
356
+ return {
357
+ results,
358
+ crewId: this.config.crewId,
359
+ crewTrust: crewTrust.averageScore,
360
+ totalSignalsRecorded: totalSignals,
361
+ tasksFailed,
362
+ tasksCompleted: results.length,
363
+ };
364
+ }
365
+ }
366
+ // =============================================================================
367
+ // FACTORY FUNCTIONS
368
+ // =============================================================================
369
+ /**
370
+ * Create a trust-aware crew agent executor
371
+ */
372
+ export function createCrewAgentExecutor(trustEngine, config) {
373
+ return new CrewAgentExecutor(trustEngine, config);
374
+ }
375
+ /**
376
+ * Create a trust-aware crew executor
377
+ */
378
+ export function createCrewExecutor(trustEngine, config) {
379
+ return new CrewExecutor(trustEngine, config);
380
+ }
381
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/crewai/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CrewAI Integration
3
+ *
4
+ * Trust-aware adapters for CrewAI multi-agent crews.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export * from "./types.js";
9
+ export * from "./callback.js";
10
+ export * from "./executor.js";
11
+ export * from "./tools.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crewai/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CrewAI Integration
3
+ *
4
+ * Trust-aware adapters for CrewAI multi-agent crews.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export * from "./types.js";
9
+ export * from "./callback.js";
10
+ export * from "./executor.js";
11
+ export * from "./tools.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crewai/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CrewAI Trust Tools
3
+ *
4
+ * Tools that allow crew agents to query trust information.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { TrustEngine } from "../trust-engine/index.js";
9
+ /**
10
+ * Tool definition compatible with CrewAI's tool interface
11
+ */
12
+ export interface CrewTrustToolDefinition {
13
+ name: string;
14
+ description: string;
15
+ func: (input: string) => Promise<string>;
16
+ }
17
+ /**
18
+ * Create trust query tools for crew agents
19
+ */
20
+ export declare function createCrewTrustTools(trustEngine: TrustEngine, agentId: string): CrewTrustToolDefinition[];
21
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/crewai/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GACd,uBAAuB,EAAE,CA8K3B"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * CrewAI Trust Tools
3
+ *
4
+ * Tools that allow crew agents to query trust information.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { TRUST_LEVEL_NAMES, TRUST_THRESHOLDS } from "../trust-engine/index.js";
9
+ /**
10
+ * Create trust query tools for crew agents
11
+ */
12
+ export function createCrewTrustTools(trustEngine, agentId) {
13
+ return [
14
+ {
15
+ name: "check_agent_trust",
16
+ description: "Check your current trust score and level within the crew. Returns your trust score (0-1000), " +
17
+ "trust level (L0-L5), and level name. Use this to understand your current permissions.",
18
+ func: async (_input) => {
19
+ const record = await trustEngine.getScore(agentId);
20
+ if (!record) {
21
+ return JSON.stringify({
22
+ error: "Trust record not found",
23
+ agentId,
24
+ });
25
+ }
26
+ return JSON.stringify({
27
+ agentId,
28
+ score: record.score,
29
+ level: record.level,
30
+ levelName: TRUST_LEVEL_NAMES[record.level],
31
+ components: record.components,
32
+ recentFailures: record.recentFailures.length,
33
+ acceleratedDecay: trustEngine.isAcceleratedDecayActive(agentId),
34
+ });
35
+ },
36
+ },
37
+ {
38
+ name: "check_crew_member_trust",
39
+ description: "Check the trust score for another crew member. " +
40
+ "Input should be the agent ID of the crew member to check. " +
41
+ "Useful for deciding whether to delegate tasks.",
42
+ func: async (input) => {
43
+ const targetId = input.trim();
44
+ const record = await trustEngine.getScore(targetId);
45
+ if (!record) {
46
+ return JSON.stringify({
47
+ error: "Crew member not found",
48
+ agentId: targetId,
49
+ });
50
+ }
51
+ return JSON.stringify({
52
+ agentId: targetId,
53
+ score: record.score,
54
+ level: record.level,
55
+ levelName: TRUST_LEVEL_NAMES[record.level],
56
+ lastCalculatedAt: record.lastCalculatedAt,
57
+ });
58
+ },
59
+ },
60
+ {
61
+ name: "check_delegation_allowed",
62
+ description: "Check if you can delegate a task to another crew member. " +
63
+ "Input should be the target agent ID. " +
64
+ "Returns whether the delegation is allowed based on both agents' trust levels.",
65
+ func: async (input) => {
66
+ const targetId = input.trim();
67
+ const myRecord = await trustEngine.getScore(agentId);
68
+ const targetRecord = await trustEngine.getScore(targetId);
69
+ if (!myRecord) {
70
+ return JSON.stringify({
71
+ allowed: false,
72
+ reason: "Your trust record not found",
73
+ });
74
+ }
75
+ if (!targetRecord) {
76
+ return JSON.stringify({
77
+ allowed: false,
78
+ reason: `Crew member ${targetId} not found in trust engine`,
79
+ });
80
+ }
81
+ const minDelegationLevel = 2;
82
+ const allowed = myRecord.level >= minDelegationLevel && targetRecord.level >= 1;
83
+ return JSON.stringify({
84
+ allowed,
85
+ yourLevel: myRecord.level,
86
+ yourLevelName: TRUST_LEVEL_NAMES[myRecord.level],
87
+ targetLevel: targetRecord.level,
88
+ targetLevelName: TRUST_LEVEL_NAMES[targetRecord.level],
89
+ reason: allowed
90
+ ? `Delegation allowed: you have ${TRUST_LEVEL_NAMES[myRecord.level]} trust, target has ${TRUST_LEVEL_NAMES[targetRecord.level]}`
91
+ : `Delegation blocked: requires ${TRUST_LEVEL_NAMES[minDelegationLevel]} trust for delegator`,
92
+ });
93
+ },
94
+ },
95
+ {
96
+ name: "get_trust_levels",
97
+ description: "Get information about all trust levels and their score ranges. " +
98
+ "Useful for understanding the trust tier system.",
99
+ func: async (_input) => {
100
+ const levels = Object.entries(TRUST_LEVEL_NAMES).map(([level, name]) => ({
101
+ level: parseInt(level),
102
+ name,
103
+ scoreRange: TRUST_THRESHOLDS[parseInt(level)],
104
+ }));
105
+ return JSON.stringify({
106
+ levels,
107
+ description: "Trust levels range from L0 (Sandbox) to L5 (Autonomous). " +
108
+ "Higher levels grant access to more sensitive tasks and delegation capabilities.",
109
+ });
110
+ },
111
+ },
112
+ {
113
+ name: "report_task_success",
114
+ description: "Report that you successfully completed a crew task. " +
115
+ "This will record a positive behavioral signal to improve your trust score. " +
116
+ "Input should be a brief description of what you accomplished.",
117
+ func: async (input) => {
118
+ await trustEngine.recordSignal({
119
+ id: crypto.randomUUID(),
120
+ entityId: agentId,
121
+ type: "behavioral.crew_task_completed",
122
+ value: 0.85,
123
+ source: "crewai-self-report",
124
+ timestamp: new Date().toISOString(),
125
+ metadata: { description: input },
126
+ });
127
+ const record = await trustEngine.getScore(agentId);
128
+ return JSON.stringify({
129
+ recorded: true,
130
+ newScore: record?.score,
131
+ newLevel: record?.level,
132
+ message: "Task success recorded. Your trust score may have improved.",
133
+ });
134
+ },
135
+ },
136
+ {
137
+ name: "report_task_failure",
138
+ description: "Report that you failed to complete a crew task. " +
139
+ "Honest self-reporting of failures helps maintain trust long-term. " +
140
+ "Input should be a brief description of what went wrong.",
141
+ func: async (input) => {
142
+ await trustEngine.recordSignal({
143
+ id: crypto.randomUUID(),
144
+ entityId: agentId,
145
+ type: "behavioral.crew_task_failed",
146
+ value: 0.2,
147
+ source: "crewai-self-report",
148
+ timestamp: new Date().toISOString(),
149
+ metadata: { description: input },
150
+ });
151
+ const record = await trustEngine.getScore(agentId);
152
+ return JSON.stringify({
153
+ recorded: true,
154
+ newScore: record?.score,
155
+ newLevel: record?.level,
156
+ acceleratedDecay: trustEngine.isAcceleratedDecayActive(agentId),
157
+ message: "Task failure recorded. Your trust score may have decreased. " +
158
+ "Honest reporting is valued in the trust system.",
159
+ });
160
+ },
161
+ },
162
+ ];
163
+ }
164
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/crewai/tools.ts"],"names":[],"mappings":"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"}