@decaf-ts/integrations 0.3.10 → 0.3.11

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 (226) hide show
  1. package/dist/integrations.cjs +1 -1
  2. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +102 -0
  3. package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
  4. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +355 -0
  5. package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
  6. package/lib/cjs/graph/engine/execution/index.cjs +2 -0
  7. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -1
  8. package/lib/cjs/graph/engine/index.cjs +2 -0
  9. package/lib/cjs/graph/engine/index.cjs.map +1 -1
  10. package/lib/cjs/graph/shared/nodes/flow-control.cjs +8 -6
  11. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -1
  12. package/lib/cjs/index.cjs +3 -3
  13. package/lib/cjs/namespaces/models/effective-permission.model.cjs +4 -4
  14. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
  15. package/lib/cjs/namespaces/models/group-membership.model.cjs +6 -6
  16. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
  17. package/lib/cjs/namespaces/models/group.model.cjs +6 -6
  18. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
  19. package/lib/cjs/namespaces/models/index.cjs +20 -20
  20. package/lib/cjs/namespaces/models/index.cjs.map +1 -1
  21. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +5 -5
  22. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
  23. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +5 -5
  24. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
  25. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +6 -6
  26. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
  27. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  28. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
  29. package/lib/cjs/namespaces/models/org-unit.model.cjs +11 -11
  30. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
  31. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  32. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
  33. package/lib/cjs/namespaces/models/principal.model.cjs +6 -6
  34. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
  35. package/lib/cjs/namespaces/models/protected-resource.model.cjs +8 -8
  36. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
  37. package/lib/cjs/namespaces/models/resource-grant.model.cjs +7 -7
  38. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
  39. package/lib/cjs/namespaces/models/role-assignment.model.cjs +6 -6
  40. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
  41. package/lib/cjs/namespaces/models/role-permission.model.cjs +4 -4
  42. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
  43. package/lib/cjs/namespaces/models/role.model.cjs +6 -6
  44. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
  45. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  46. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
  47. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +4 -4
  48. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
  49. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  50. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
  51. package/lib/cjs/namespaces/models/tenant.model.cjs +8 -8
  52. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
  53. package/lib/cjs/namespaces/models/user.model.cjs +4 -4
  54. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
  55. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +21 -21
  56. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -1
  57. package/lib/cjs/namespaces/services/bootstrap.service.cjs +24 -24
  58. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -1
  59. package/lib/cjs/namespaces/services/effective-permission.service.cjs +17 -17
  60. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -1
  61. package/lib/cjs/namespaces/services/group-membership.service.cjs +4 -4
  62. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -1
  63. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  64. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -1
  65. package/lib/cjs/namespaces/services/index.cjs +24 -24
  66. package/lib/cjs/namespaces/services/index.cjs.map +1 -1
  67. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  68. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -1
  69. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  70. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -1
  71. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  72. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -1
  73. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  74. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -1
  75. package/lib/cjs/namespaces/services/org-unit.service.cjs +11 -11
  76. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -1
  77. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  78. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -1
  79. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  80. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -1
  81. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  82. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -1
  83. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  84. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -1
  85. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +5 -5
  86. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -1
  87. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  88. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -1
  89. package/lib/cjs/namespaces/services/role-permission.service.cjs +6 -6
  90. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -1
  91. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  92. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -1
  93. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  94. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -1
  95. package/lib/cjs/namespaces/services/system-management.service.cjs +12 -12
  96. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -1
  97. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  98. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -1
  99. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  100. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -1
  101. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  102. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -1
  103. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  104. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -1
  105. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +11 -3
  106. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -1
  107. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +97 -0
  108. package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
  109. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +314 -0
  110. package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
  111. package/lib/esm/graph/engine/execution/index.js +2 -0
  112. package/lib/esm/graph/engine/execution/index.js.map +1 -1
  113. package/lib/esm/graph/engine/index.js +2 -0
  114. package/lib/esm/graph/engine/index.js.map +1 -1
  115. package/lib/esm/graph/shared/nodes/flow-control.js +8 -6
  116. package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -1
  117. package/lib/esm/index.js +3 -3
  118. package/lib/esm/namespaces/models/effective-permission.model.js +2 -2
  119. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
  120. package/lib/esm/namespaces/models/group-membership.model.js +3 -3
  121. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
  122. package/lib/esm/namespaces/models/group.model.js +3 -3
  123. package/lib/esm/namespaces/models/group.model.js.map +1 -1
  124. package/lib/esm/namespaces/models/index.js +20 -20
  125. package/lib/esm/namespaces/models/index.js.map +1 -1
  126. package/lib/esm/namespaces/models/inheritance-block.model.js +2 -2
  127. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
  128. package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -2
  129. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
  130. package/lib/esm/namespaces/models/org-unit-membership.model.js +3 -3
  131. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
  132. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  133. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
  134. package/lib/esm/namespaces/models/org-unit.model.js +5 -5
  135. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
  136. package/lib/esm/namespaces/models/permission.model.js +1 -1
  137. package/lib/esm/namespaces/models/permission.model.js.map +1 -1
  138. package/lib/esm/namespaces/models/principal.model.js +3 -3
  139. package/lib/esm/namespaces/models/principal.model.js.map +1 -1
  140. package/lib/esm/namespaces/models/protected-resource.model.js +4 -4
  141. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
  142. package/lib/esm/namespaces/models/resource-grant.model.js +3 -3
  143. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
  144. package/lib/esm/namespaces/models/role-assignment.model.js +3 -3
  145. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
  146. package/lib/esm/namespaces/models/role-permission.model.js +2 -2
  147. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
  148. package/lib/esm/namespaces/models/role.model.js +3 -3
  149. package/lib/esm/namespaces/models/role.model.js.map +1 -1
  150. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  151. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
  152. package/lib/esm/namespaces/models/tenant-membership.model.js +2 -2
  153. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
  154. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  155. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
  156. package/lib/esm/namespaces/models/tenant.model.js +4 -4
  157. package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
  158. package/lib/esm/namespaces/models/user.model.js +2 -2
  159. package/lib/esm/namespaces/models/user.model.js.map +1 -1
  160. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  161. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -1
  162. package/lib/esm/namespaces/services/bootstrap.service.js +12 -12
  163. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -1
  164. package/lib/esm/namespaces/services/effective-permission.service.js +8 -8
  165. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -1
  166. package/lib/esm/namespaces/services/group-membership.service.js +2 -2
  167. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -1
  168. package/lib/esm/namespaces/services/group.service.js +1 -1
  169. package/lib/esm/namespaces/services/group.service.js.map +1 -1
  170. package/lib/esm/namespaces/services/index.js +24 -24
  171. package/lib/esm/namespaces/services/index.js.map +1 -1
  172. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  173. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -1
  174. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  175. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -1
  176. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  177. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -1
  178. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  179. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -1
  180. package/lib/esm/namespaces/services/org-unit.service.js +3 -3
  181. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -1
  182. package/lib/esm/namespaces/services/permission.service.js +1 -1
  183. package/lib/esm/namespaces/services/permission.service.js.map +1 -1
  184. package/lib/esm/namespaces/services/principal.service.js +1 -1
  185. package/lib/esm/namespaces/services/principal.service.js.map +1 -1
  186. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  187. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -1
  188. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  189. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -1
  190. package/lib/esm/namespaces/services/resource-lifecycle.service.js +2 -2
  191. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -1
  192. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  193. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -1
  194. package/lib/esm/namespaces/services/role-permission.service.js +3 -3
  195. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -1
  196. package/lib/esm/namespaces/services/role.service.js +1 -1
  197. package/lib/esm/namespaces/services/role.service.js.map +1 -1
  198. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  199. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -1
  200. package/lib/esm/namespaces/services/system-management.service.js +6 -6
  201. package/lib/esm/namespaces/services/system-management.service.js.map +1 -1
  202. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  203. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -1
  204. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  205. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -1
  206. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  207. package/lib/esm/namespaces/services/tenant.service.js.map +1 -1
  208. package/lib/esm/namespaces/services/user.service.js +1 -1
  209. package/lib/esm/namespaces/services/user.service.js.map +1 -1
  210. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +12 -4
  211. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -1
  212. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +65 -0
  213. package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +65 -0
  214. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.cts +45 -0
  215. package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.mts +45 -0
  216. package/lib/types/graph/engine/execution/index.d.cts +2 -0
  217. package/lib/types/graph/engine/execution/index.d.mts +2 -0
  218. package/lib/types/graph/engine/index.d.cts +2 -0
  219. package/lib/types/graph/engine/index.d.mts +2 -0
  220. package/lib/types/graph/shared/nodes/flow-control.d.cts +7 -6
  221. package/lib/types/graph/shared/nodes/flow-control.d.mts +7 -6
  222. package/lib/types/index.d.cts +2 -2
  223. package/lib/types/index.d.mts +2 -2
  224. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +10 -3
  225. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +10 -3
  226. package/package.json +5 -1
@@ -94,13 +94,14 @@ export declare class ReturnFlowNode extends Model {
94
94
  result: unknown;
95
95
  }
96
96
  /**
97
- * Code — sandboxed JS/TS code execution (ALFRED-5 §7).
97
+ * Code — sandboxed JS/TS code execution (ALFRED-5 §7, DECAF-32 §22.4).
98
98
  *
99
- * The engine does not implement the sandbox directly (§22.4). A future
100
- * executor may wrap the `CodeSandbox` contract (ALFRED-5 §7.17) as a
101
- * pluggable executor. The placeholder syntax (`{{ $input }}`, `{{ $item }}`,
102
- * `{{ $index }}`, `{{ $vars }}`, `{{ $node["Name"].output }}`) is Mastra-
103
- * agnostic and lives in the downstream project's `modules/core` (ALFRED-6).
99
+ * The engine's {@link CodeGraphNodeExecutor} delegates to the pluggable
100
+ * {@link CodeSandboxEvaluator}. The default
101
+ * `IsolatedVmCodeSandboxEvaluator` (backed by `isolated-vm`) enforces the
102
+ * Code Node restrictions: no imports, no requires, pure functions only. The
103
+ * sandbox context exposes `$input`, `$vars`, `$item`, `$index`, `$node`, and
104
+ * `$output` as data variables. TypeScript is supported via transpilation.
104
105
  */
105
106
  export declare class CodeFlowNode extends Model {
106
107
  input: unknown;
@@ -6,6 +6,6 @@
6
6
  export * from "./utils.d.cts";
7
7
  export * from "./namespaces/index.d.cts";
8
8
  export declare const VERSION: string;
9
- export declare const COMMIT = "1deb3bb";
10
- export declare const FULL_VERSION = "0.3.9-1deb3bb";
9
+ export declare const COMMIT = "857014d";
10
+ export declare const FULL_VERSION = "0.3.10-857014d";
11
11
  export declare const PACKAGE_NAME: string;
@@ -6,6 +6,6 @@
6
6
  export * from "./utils.d.mts";
7
7
  export * from "./namespaces/index.d.mts";
8
8
  export declare const VERSION: string;
9
- export declare const COMMIT = "1deb3bb";
10
- export declare const FULL_VERSION = "0.3.9-1deb3bb";
9
+ export declare const COMMIT = "857014d";
10
+ export declare const FULL_VERSION = "0.3.10-857014d";
11
11
  export declare const PACKAGE_NAME: string;
@@ -7,7 +7,7 @@
7
7
  * the loop kinds. Additional executors can be registered on the returned
8
8
  * registry before it is handed to the {@link GraphExecutionEngine}.
9
9
  */
10
- import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor } from "../../graph/index.d.cts";
10
+ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor, IsolatedVmCodeSandboxEvaluator } from "../../graph/index.d.cts";
11
11
  /**
12
12
  * Builds a {@link GraphNodeExecutorRegistry} populated with the demo executors.
13
13
  *
@@ -21,7 +21,9 @@ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor
21
21
  * - `graph-intake-workflow`, `graph-planning-pipeline`, `graph-draft-node`,
22
22
  * `graph-review-node`, `graph-publish-workflow` — publishing workflow demo.
23
23
  * - `core.flow.*` — flow-control kinds (map, delay, return, merge, if, switch,
24
- * parallel, errorBoundary, humanApproval, code).
24
+ * parallel, errorBoundary, humanApproval). The `core.flow.code` kind is
25
+ * registered in `onEngineCreated` via the real {@link CodeGraphNodeExecutor}
26
+ * because it needs the engine's `codeSandboxEvaluator`.
25
27
  * - `core.agent` — agent node.
26
28
  * - `core.loop.foreach`, `core.loop.while`, `core.loop.until` — loop executors
27
29
  * (registered after the engine is created via `onEngineCreated`).
@@ -32,7 +34,11 @@ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor
32
34
  export declare function createGraphExecutorRegistry(extra?: Record<string, GraphNodeExecutor>): GraphNodeExecutorRegistry;
33
35
  /**
34
36
  * Builds a {@link GraphExecutionEngineConfig} populated with all demo executors
35
- * including loop executors that need a back-reference to the engine.
37
+ * including loop executors that need a back-reference to the engine and the
38
+ * Code node executor that needs the engine's `codeSandboxEvaluator`.
39
+ *
40
+ * The config wires an {@link IsolatedVmCodeSandboxEvaluator} (backed by
41
+ * `isolated-vm`) so the Code Node runs in a truly isolated V8 sandbox.
36
42
  *
37
43
  * @returns A config object ready for `new GraphExecutionEngine(config)`.
38
44
  */
@@ -41,5 +47,6 @@ export declare function createDemoEngineConfig(): {
41
47
  defaultOptions: {
42
48
  failFast: boolean;
43
49
  };
50
+ codeSandboxEvaluator: IsolatedVmCodeSandboxEvaluator;
44
51
  onEngineCreated: (engine: GraphExecutionEngine) => void;
45
52
  };
@@ -7,7 +7,7 @@
7
7
  * the loop kinds. Additional executors can be registered on the returned
8
8
  * registry before it is handed to the {@link GraphExecutionEngine}.
9
9
  */
10
- import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor } from "../../graph/index.d.mts";
10
+ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor, IsolatedVmCodeSandboxEvaluator } from "../../graph/index.d.mts";
11
11
  /**
12
12
  * Builds a {@link GraphNodeExecutorRegistry} populated with the demo executors.
13
13
  *
@@ -21,7 +21,9 @@ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor
21
21
  * - `graph-intake-workflow`, `graph-planning-pipeline`, `graph-draft-node`,
22
22
  * `graph-review-node`, `graph-publish-workflow` — publishing workflow demo.
23
23
  * - `core.flow.*` — flow-control kinds (map, delay, return, merge, if, switch,
24
- * parallel, errorBoundary, humanApproval, code).
24
+ * parallel, errorBoundary, humanApproval). The `core.flow.code` kind is
25
+ * registered in `onEngineCreated` via the real {@link CodeGraphNodeExecutor}
26
+ * because it needs the engine's `codeSandboxEvaluator`.
25
27
  * - `core.agent` — agent node.
26
28
  * - `core.loop.foreach`, `core.loop.while`, `core.loop.until` — loop executors
27
29
  * (registered after the engine is created via `onEngineCreated`).
@@ -32,7 +34,11 @@ import { GraphNodeExecutorRegistry, GraphExecutionEngine, type GraphNodeExecutor
32
34
  export declare function createGraphExecutorRegistry(extra?: Record<string, GraphNodeExecutor>): GraphNodeExecutorRegistry;
33
35
  /**
34
36
  * Builds a {@link GraphExecutionEngineConfig} populated with all demo executors
35
- * including loop executors that need a back-reference to the engine.
37
+ * including loop executors that need a back-reference to the engine and the
38
+ * Code node executor that needs the engine's `codeSandboxEvaluator`.
39
+ *
40
+ * The config wires an {@link IsolatedVmCodeSandboxEvaluator} (backed by
41
+ * `isolated-vm`) so the Code Node runs in a truly isolated V8 sandbox.
36
42
  *
37
43
  * @returns A config object ready for `new GraphExecutionEngine(config)`.
38
44
  */
@@ -41,5 +47,6 @@ export declare function createDemoEngineConfig(): {
41
47
  defaultOptions: {
42
48
  failFast: boolean;
43
49
  };
50
+ codeSandboxEvaluator: IsolatedVmCodeSandboxEvaluator;
44
51
  onEngineCreated: (engine: GraphExecutionEngine) => void;
45
52
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/integrations",
3
- "version": "0.3.10",
3
+ "version": "0.3.11",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.mts",
@@ -293,9 +293,13 @@
293
293
  "@decaf-ts/logging": "latest",
294
294
  "@decaf-ts/transactional-decorators": "latest",
295
295
  "@decaf-ts/ui-decorators": "latest",
296
+ "acorn": "^8.17.0",
297
+ "acorn-walk": "^8.3.5",
296
298
  "axios": "^1.7.9",
299
+ "isolated-vm": "^6.1.2",
297
300
  "node-fetch": "^3.3.2",
298
301
  "tslib": "^2.8.1",
302
+ "typescript": "^5.9.3",
299
303
  "uuid": "^11.1.1"
300
304
  },
301
305
  "devDependencies": {