@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
@@ -60,7 +60,6 @@ const executorMap = {
60
60
  "core.flow.parallel": (input) => ({ branches: [input["value"] ?? input] }),
61
61
  "core.flow.errorBoundary": (input) => ({ result: input["value"] ?? input }),
62
62
  "core.flow.humanApproval": (input) => ({ approved: input["value"] ?? input }),
63
- "core.flow.code": (input) => ({ result: input["input"] ?? input }),
64
63
  "core.agent": (input) => ({
65
64
  response: `[Agent response] ${String(input["prompt"] ?? "")}`,
66
65
  actions: [],
@@ -79,7 +78,9 @@ const executorMap = {
79
78
  * - `graph-intake-workflow`, `graph-planning-pipeline`, `graph-draft-node`,
80
79
  * `graph-review-node`, `graph-publish-workflow` — publishing workflow demo.
81
80
  * - `core.flow.*` — flow-control kinds (map, delay, return, merge, if, switch,
82
- * parallel, errorBoundary, humanApproval, code).
81
+ * parallel, errorBoundary, humanApproval). The `core.flow.code` kind is
82
+ * registered in `onEngineCreated` via the real {@link CodeGraphNodeExecutor}
83
+ * because it needs the engine's `codeSandboxEvaluator`.
83
84
  * - `core.agent` — agent node.
84
85
  * - `core.loop.foreach`, `core.loop.while`, `core.loop.until` — loop executors
85
86
  * (registered after the engine is created via `onEngineCreated`).
@@ -101,19 +102,26 @@ function createGraphExecutorRegistry(extra) {
101
102
  }
102
103
  /**
103
104
  * Builds a {@link GraphExecutionEngineConfig} populated with all demo executors
104
- * including loop executors that need a back-reference to the engine.
105
+ * including loop executors that need a back-reference to the engine and the
106
+ * Code node executor that needs the engine's `codeSandboxEvaluator`.
107
+ *
108
+ * The config wires an {@link IsolatedVmCodeSandboxEvaluator} (backed by
109
+ * `isolated-vm`) so the Code Node runs in a truly isolated V8 sandbox.
105
110
  *
106
111
  * @returns A config object ready for `new GraphExecutionEngine(config)`.
107
112
  */
108
113
  function createDemoEngineConfig() {
109
114
  const registry = createGraphExecutorRegistry();
115
+ const codeSandboxEvaluator = new index_js_1.IsolatedVmCodeSandboxEvaluator();
110
116
  return {
111
117
  registry,
112
118
  defaultOptions: { failFast: false },
119
+ codeSandboxEvaluator,
113
120
  onEngineCreated: (engine) => {
114
121
  registry.register("core.loop.foreach", new index_js_1.ForeachGraphNodeExecutor(engine));
115
122
  registry.register("core.loop.while", new index_js_1.WhileGraphNodeExecutor(engine));
116
123
  registry.register("core.loop.until", new index_js_1.UntilGraphNodeExecutor(engine));
124
+ registry.register("core.flow.code", new index_js_1.CodeGraphNodeExecutor(engine));
117
125
  },
118
126
  };
119
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nest/graph/GraphExecutorRegistryFactory.cjs","sourceRoot":"","sources":["nest/graph/GraphExecutorRegistryFactory.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nest/graph/GraphExecutorRegistryFactory.cjs","sourceRoot":"","sources":["nest/graph/GraphExecutorRegistryFactory.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
2
+ import { GraphInputError } from "./../errors/GraphInputError.js";
3
+ /**
4
+ * Reads the Code node metadata from the node definition's graph metadata.
5
+ */
6
+ function readCodeMetadata(context) {
7
+ const meta = context.node.graph?.metadata;
8
+ if (!meta)
9
+ return {};
10
+ const codeMeta = meta["code"];
11
+ if (!codeMeta)
12
+ return {};
13
+ return codeMeta;
14
+ }
15
+ /**
16
+ * Executor for `core.flow.code` nodes.
17
+ *
18
+ * The Code Node runs user-authored JS/TS in a restricted sandbox. The engine
19
+ * does not implement the sandbox directly (§22.4); instead it delegates to the
20
+ * pluggable {@link CodeSandboxEvaluator} registered on the engine config. When
21
+ * no evaluator is registered, the executor throws
22
+ * `GRAPH_CODE_SANDBOX_NOT_CONFIGURED`.
23
+ *
24
+ * The sandbox context exposes:
25
+ * - `$input` — the value on the node's `input` port (or the full input object
26
+ * as a fallback when no `input` port is present).
27
+ * - `$vars` — workflow variables (sourced from `context.metadata.vars` when
28
+ * the engine populates it).
29
+ * - `$item` / `$index` — current loop item and index (sourced from
30
+ * `context.metadata` when the node executes inside a foreach body).
31
+ * - `$node` — outputs of upstream nodes (sourced from
32
+ * `context.metadata.nodes` when available).
33
+ * - `$output` — the current draft output (sourced from
34
+ * `context.metadata.output`).
35
+ *
36
+ * The evaluator's return value is forwarded verbatim on the `result` output
37
+ * port.
38
+ */
39
+ export class CodeGraphNodeExecutor {
40
+ /**
41
+ * @param engine - The graph execution engine (or any object exposing the
42
+ * optional `codeSandboxEvaluator`). This mirrors the pattern used by
43
+ * {@link SwitchGraphNodeExecutor} for code conditions.
44
+ */
45
+ constructor(engine) {
46
+ this.engine = engine;
47
+ }
48
+ async execute(input, context) {
49
+ const meta = readCodeMetadata(context);
50
+ const code = meta.code;
51
+ if (!code || typeof code !== "string" || code.trim().length === 0) {
52
+ throw new GraphInputError("Code node has no code to execute (metadata.code is empty)", { metadata: meta });
53
+ }
54
+ const evaluator = this.engine?.codeSandboxEvaluator;
55
+ if (!evaluator) {
56
+ throw new GraphExecutionError("Code node execution requires a CodeSandboxEvaluator to be registered in GraphExecutionEngineConfig.codeSandboxEvaluator", "GRAPH_CODE_SANDBOX_NOT_CONFIGURED", { code });
57
+ }
58
+ const sandboxContext = this.buildSandboxContext(input, context, meta);
59
+ await context.log("Executing code node", {
60
+ language: meta.language ?? "javascript",
61
+ length: code.length,
62
+ });
63
+ const result = await evaluator.evaluate(sandboxContext);
64
+ await context.log("Code node executed", { hasResult: result !== undefined });
65
+ return { result };
66
+ }
67
+ /**
68
+ * Builds the {@link CodeSandboxContext} from the executor input and the
69
+ * graph execution context.
70
+ *
71
+ * The `$input` value is resolved from the node's `input` port. When the node
72
+ * has no explicit `input` port, the full input values object is used as
73
+ * `$input` so the code can still access every resolved port value.
74
+ *
75
+ * The `$vars`, `$item`, `$index`, `$node`, and `$output` values are sourced
76
+ * from `context.metadata` — the engine (or a wrapping loop executor) may
77
+ * populate these when the Code node runs inside a loop body or a workflow
78
+ * with variables.
79
+ */
80
+ buildSandboxContext(input, context, meta) {
81
+ const inputPortValue = "input" in input ? input["input"] : input;
82
+ const md = context.metadata;
83
+ return {
84
+ code: meta.code,
85
+ language: meta.language ?? "javascript",
86
+ input: typeof inputPortValue === "object" && inputPortValue !== null
87
+ ? inputPortValue
88
+ : { value: inputPortValue },
89
+ vars: md?.vars ?? undefined,
90
+ item: md?.item,
91
+ index: md?.index,
92
+ nodes: md?.nodes ??
93
+ undefined,
94
+ };
95
+ }
96
+ }
97
+ //# sourceMappingURL=CodeGraphNodeExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeGraphNodeExecutor.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/CodeGraphNodeExecutor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,2CAAsC;AACpE,OAAO,EAAE,eAAe,EAAE,uCAAkC;AAY5D;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAA8B;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAEpB,CAAC;IACd,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAiC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,qBAAqB;IAChC;;;;OAIG;IACH,YACmB,MAAwD;QAAxD,WAAM,GAAN,MAAM,CAAkD;IACxE,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,KAA2B,EAC3B,OAA8B;QAE9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,eAAe,CACvB,2DAA2D,EAC3D,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,mBAAmB,CAC3B,yHAAyH,EACzH,mCAAmC,EACnC,EAAE,IAAI,EAAE,CACT,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAEtE,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,YAAY;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAExD,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;QAE7E,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,mBAAmB,CACzB,KAA2B,EAC3B,OAA8B,EAC9B,IAAsB;QAEtB,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,EAAE,GAAG,OAAO,CAAC,QAA+C,CAAC;QAEnE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,YAAY;YACvC,KAAK,EACH,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI;gBAC3D,CAAC,CAAE,cAA0C;gBAC7C,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE;YAC/B,IAAI,EAAG,EAAE,EAAE,IAA4C,IAAI,SAAS;YACpE,IAAI,EAAE,EAAE,EAAE,IAAI;YACd,KAAK,EAAE,EAAE,EAAE,KAA2B;YACtC,KAAK,EACF,EAAE,EAAE,KAA6D;gBAClE,SAAS;SACZ,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * @module integrations/graph/execution/IsolatedVmCodeSandboxEvaluator
3
+ * @summary {@link CodeSandboxEvaluator} backed by `isolated-vm` (ALFRED-5 §7).
4
+ * @description Provides a fully isolated V8 sandbox for the Code Node
5
+ * (DECAF-32 §22.4) and code-based conditions. Uses `isolated-vm` for true
6
+ * heap isolation (unlike Node's `vm` module which shares the host heap),
7
+ * `acorn` + `acorn-walk` for AST-based static validation, and `typescript`
8
+ * for TS transpilation.
9
+ *
10
+ * Restrictions enforced (ALFRED-5 §7.10–7.12, DECAF-34 §7.5):
11
+ *
12
+ * - **No imports** — `import` declarations are rejected by AST validation.
13
+ * - **No requires** — `require` is in the blocked-identifier set and is not
14
+ * exposed in the sandbox context.
15
+ * - **No exports** — `export` declarations are rejected by AST validation.
16
+ * - **Pure functions only** — no system API access. Blocked identifiers
17
+ * include `process`, `global`, `globalThis`, `Function`, `eval`, `fetch`,
18
+ * `XMLHttpRequest`, `WebSocket`, `Worker`, `Deno`, `Bun`, `module`,
19
+ * `exports`. The sandbox context exposes only the data variables
20
+ * (`$input`, `$vars`, `$item`, `$index`, `$node`, `$output`).
21
+ * - **No `eval()` / `new Function()`** — rejected by AST validation.
22
+ *
23
+ * The user code is transpiled (TS → JS) if needed, statically validated,
24
+ * wrapped in a strict-mode async function that receives the data variables as
25
+ * parameters, compiled in an isolated V8 instance, and executed with a
26
+ * timeout and memory limit. The result is copied back to the host heap.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const evaluator = new IsolatedVmCodeSandboxEvaluator();
31
+ * const result = await evaluator.evaluate({
32
+ * code: "return $input.a + $input.b;",
33
+ * input: { a: 2, b: 3 },
34
+ * });
35
+ * // result === 5
36
+ * ```
37
+ */
38
+ import ivm from "isolated-vm";
39
+ import * as acorn from "acorn";
40
+ import * as walk from "acorn-walk";
41
+ import * as ts from "typescript";
42
+ import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
43
+ /**
44
+ * Default sandbox execution timeout in milliseconds.
45
+ */
46
+ const DEFAULT_TIMEOUT_MS = 1000;
47
+ /**
48
+ * Default memory limit for the isolated V8 heap in MB.
49
+ */
50
+ const DEFAULT_MEMORY_MB = 32;
51
+ /**
52
+ * Maximum code length (characters) accepted by the evaluator.
53
+ */
54
+ const MAX_CODE_LENGTH = 100_000;
55
+ /**
56
+ * Identifiers that are forbidden in sandboxed code (ALFRED-5 §7.10).
57
+ *
58
+ * Any AST node of type `Identifier` whose `name` is in this set causes the
59
+ * validator to reject the code. This covers both free-standing references
60
+ * (`process.env`) and call targets (`require(...)`).
61
+ */
62
+ const BLOCKED_IDENTIFIERS = new Set([
63
+ "process",
64
+ "require",
65
+ "module",
66
+ "exports",
67
+ "global",
68
+ "globalThis",
69
+ "Function",
70
+ "eval",
71
+ "fetch",
72
+ "XMLHttpRequest",
73
+ "WebSocket",
74
+ "Worker",
75
+ "Deno",
76
+ "Bun",
77
+ ]);
78
+ /**
79
+ * Transpiles TypeScript code to JavaScript (ALFRED-5 §7.4).
80
+ *
81
+ * When the language is `'javascript'` the code is returned unchanged. For
82
+ * `'typescript'` the code is transpiled using the TypeScript compiler with
83
+ * module kind `None` (no import/export emitted) and target `ES2022`.
84
+ *
85
+ * @param code - The user-authored code.
86
+ * @param language - The code language (`'javascript'` or `'typescript'`).
87
+ * @returns Transpiled JavaScript code.
88
+ */
89
+ function transpileTypeScript(code, language) {
90
+ if (language === "javascript")
91
+ return code;
92
+ const result = ts.transpileModule(code, {
93
+ compilerOptions: {
94
+ target: ts.ScriptTarget.ES2022,
95
+ module: ts.ModuleKind.None,
96
+ strict: true,
97
+ noEmitHelpers: true,
98
+ importHelpers: false,
99
+ },
100
+ });
101
+ // Strip the "use strict"; directive that ts.transpileModule adds — the
102
+ // sandbox wrapper already enforces strict mode, and the directive breaks
103
+ // expression-mode wrapping (return (...)).
104
+ return result.outputText.replace(/^"use strict";\s*/, "");
105
+ }
106
+ /**
107
+ * Statically validates user code using an AST walk (ALFRED-5 §7.11).
108
+ *
109
+ * Rejects:
110
+ * - `ImportDeclaration` — no imports allowed.
111
+ * - `ExportNamedDeclaration` / `ExportDefaultDeclaration` — no exports.
112
+ * - `Identifier` whose name is in {@link BLOCKED_IDENTIFIERS}.
113
+ * - `NewExpression` with callee `Function` — no `new Function()`.
114
+ * - `CallExpression` with callee `eval` — no `eval()`.
115
+ *
116
+ * @param code - JavaScript code to validate (after TS transpilation).
117
+ * @throws {GraphExecutionError} when a forbidden construct is found.
118
+ */
119
+ function validateSafeCode(code) {
120
+ if (code.length > MAX_CODE_LENGTH) {
121
+ throw new GraphExecutionError(`Code exceeds the maximum length of ${MAX_CODE_LENGTH} characters`, "GRAPH_CODE_SANDBOX_CODE_TOO_LONG", { length: code.length });
122
+ }
123
+ let ast;
124
+ try {
125
+ // First, try parsing the code wrapped in a function with sourceType
126
+ // "script". This handles `return` statements (which are valid inside a
127
+ // function) and lets us detect blocked identifiers, eval(), and
128
+ // new Function() via the AST walk.
129
+ ast = acorn.parse(`async function __validate() {\n${code}\n}`, {
130
+ ecmaVersion: "latest",
131
+ sourceType: "script",
132
+ });
133
+ }
134
+ catch {
135
+ // If the function-wrapped parse fails (e.g. because the code has
136
+ // top-level `import` or `export` declarations which are invalid inside
137
+ // a function), try parsing the raw code with sourceType "module" so
138
+ // import/export declarations are recognised as AST nodes.
139
+ try {
140
+ ast = acorn.parse(code, {
141
+ ecmaVersion: "latest",
142
+ sourceType: "module",
143
+ });
144
+ }
145
+ catch (err) {
146
+ throw new GraphExecutionError(`Code failed to parse: ${err.message}`, "GRAPH_CODE_SANDBOX_PARSE_ERROR", { code, error: err.message });
147
+ }
148
+ }
149
+ walk.full(ast, (node) => {
150
+ const n = node;
151
+ if (n["type"] === "ImportDeclaration") {
152
+ throw new GraphExecutionError("Imports are not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "import" });
153
+ }
154
+ if (n["type"] === "ExportNamedDeclaration" ||
155
+ n["type"] === "ExportDefaultDeclaration") {
156
+ throw new GraphExecutionError("Exports are not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "export" });
157
+ }
158
+ if (n["type"] === "Identifier" &&
159
+ typeof n["name"] === "string" &&
160
+ BLOCKED_IDENTIFIERS.has(n["name"])) {
161
+ throw new GraphExecutionError(`Identifier "${n["name"]}" is not allowed in Code nodes.`, "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: n["name"] });
162
+ }
163
+ if (n["type"] === "NewExpression" &&
164
+ n["callee"]?.["name"] === "Function") {
165
+ throw new GraphExecutionError("new Function() is not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "Function" });
166
+ }
167
+ if (n["type"] === "CallExpression" &&
168
+ n["callee"]?.["name"] === "eval") {
169
+ throw new GraphExecutionError("eval() is not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "eval" });
170
+ }
171
+ });
172
+ }
173
+ /**
174
+ * Determines whether the given code contains a top-level `return` statement.
175
+ *
176
+ * When the code has no `return`, it is treated as a single expression and
177
+ * wrapped in `return (...)` so the user can write `($input.a + $input.b)`
178
+ * instead of `return $input.a + $input.b`.
179
+ */
180
+ function hasReturnStatement(code) {
181
+ return /\breturn\b[\s;]/.test(code);
182
+ }
183
+ /**
184
+ * `isolated-vm`-backed {@link CodeSandboxEvaluator} (ALFRED-5 §7.18).
185
+ *
186
+ * This evaluator provides a truly isolated V8 sandbox — the code runs in a
187
+ * separate isolate with its own heap, separate from the host process. The
188
+ * sandbox context exposes only the data variables (`$input`, `$vars`, `$item`,
189
+ * `$index`, `$node`, `$output`); no host globals are available.
190
+ *
191
+ * Execution pipeline:
192
+ * 1. **Transpile** — TypeScript code is transpiled to JavaScript via
193
+ * `typescript.transpileModule` (ALFRED-5 §7.4).
194
+ * 2. **Validate** — the JavaScript code is parsed with `acorn` and walked with
195
+ * `acorn-walk` to reject imports, exports, blocked identifiers, `eval()`,
196
+ * and `new Function()` (ALFRED-5 §7.11).
197
+ * 3. **Isolate** — a new `isolated-vm` `Isolate` is created with a memory
198
+ * limit. A context is created and the data variables are copied into the
199
+ * isolate's heap via `ExternalCopy`.
200
+ * 4. **Compile & run** — the wrapped code is compiled and executed with a
201
+ * timeout. The result is copied back to the host heap.
202
+ * 5. **Dispose** — the isolate is always disposed in a `finally` block.
203
+ *
204
+ * The user code is wrapped in a strict-mode async function:
205
+ *
206
+ * ```js
207
+ * "use strict";
208
+ * async function __userFunction($input, $vars, $item, $index, $node, $output) {
209
+ * <user code>
210
+ * }
211
+ * __userFunction($input, $vars, $item, $index, $node, $output);
212
+ * ```
213
+ *
214
+ * When the code has no `return` statement it is treated as a single expression
215
+ * and wrapped in `return (...)`.
216
+ */
217
+ export class IsolatedVmCodeSandboxEvaluator {
218
+ /**
219
+ * @param defaultTimeoutMs - Default execution timeout in milliseconds.
220
+ * @param defaultMemoryMb - Default isolate memory limit in MB.
221
+ */
222
+ constructor(defaultTimeoutMs = DEFAULT_TIMEOUT_MS, defaultMemoryMb = DEFAULT_MEMORY_MB) {
223
+ this.defaultTimeoutMs = defaultTimeoutMs;
224
+ this.defaultMemoryMb = defaultMemoryMb;
225
+ }
226
+ async evaluate(ctx) {
227
+ const code = ctx.code;
228
+ if (!code || typeof code !== "string" || code.trim().length === 0) {
229
+ throw new GraphExecutionError("Code sandbox received empty code", "GRAPH_CODE_SANDBOX_EMPTY_CODE");
230
+ }
231
+ const language = ctx.language ?? "javascript";
232
+ const jsCode = transpileTypeScript(code, language);
233
+ validateSafeCode(jsCode);
234
+ const expressionMode = !hasReturnStatement(jsCode);
235
+ const codeForMode = expressionMode
236
+ ? jsCode.replace(/[\s;]+$/, "")
237
+ : jsCode;
238
+ const sandboxVars = {
239
+ $input: ctx.input ?? {},
240
+ $vars: ctx.vars ?? {},
241
+ $item: ctx.item,
242
+ $index: ctx.index,
243
+ $node: ctx.nodes ?? {},
244
+ $output: undefined,
245
+ };
246
+ const paramNames = Object.keys(sandboxVars);
247
+ // const paramValues = Object.values(sandboxVars);
248
+ // Build the wrapped script. The user code runs inside an async function
249
+ // with named parameters. The result is JSON-stringified inside the isolate
250
+ // so it can be transferred back as a plain string (isolated-vm cannot
251
+ // deep-copy arbitrary objects via `script.run()` with `promise: true`).
252
+ // The spec requires JSON-serializable output, so this is safe.
253
+ const userBody = expressionMode ? `return (${codeForMode});` : codeForMode;
254
+ const wrapped = `"use strict";\nasync function __userFunction(${paramNames.join(", ")}) {\n${userBody}\n}\n__userFunction(${paramNames.join(", ")}).then(function(__r) { return JSON.stringify({ v: __r }); });`;
255
+ const isolate = new ivm.Isolate({ memoryLimit: this.defaultMemoryMb });
256
+ const context = await isolate.createContext();
257
+ try {
258
+ const jail = context.global;
259
+ for (const [name, value] of Object.entries(sandboxVars)) {
260
+ await jail.set(name, new ivm.ExternalCopy(value === undefined ? null : value).copyInto());
261
+ }
262
+ let script;
263
+ try {
264
+ script = await isolate.compileScript(wrapped, {
265
+ filename: "graph-code-node.js",
266
+ });
267
+ }
268
+ catch (err) {
269
+ if (expressionMode) {
270
+ const fallbackBody = codeForMode;
271
+ const fallbackWrapped = `"use strict";\nasync function __userFunction(${paramNames.join(", ")}) {\n${fallbackBody}\n}\n__userFunction(${paramNames.join(", ")}).then(function(__r) { return JSON.stringify({ v: __r }); });`;
272
+ try {
273
+ script = await isolate.compileScript(fallbackWrapped, {
274
+ filename: "graph-code-node.js",
275
+ });
276
+ }
277
+ catch (fallbackErr) {
278
+ throw new GraphExecutionError(`Code failed to compile: ${fallbackErr.message}`, "GRAPH_CODE_SANDBOX_COMPILE_ERROR", { code: jsCode, error: fallbackErr.message });
279
+ }
280
+ }
281
+ else {
282
+ throw new GraphExecutionError(`Code failed to compile: ${err.message}`, "GRAPH_CODE_SANDBOX_COMPILE_ERROR", { code: jsCode, error: err.message });
283
+ }
284
+ }
285
+ let rawResult;
286
+ try {
287
+ rawResult = await script.run(context, {
288
+ timeout: this.defaultTimeoutMs,
289
+ promise: true,
290
+ });
291
+ }
292
+ catch (err) {
293
+ const msg = err.message;
294
+ if (msg.includes("timed out") || msg.includes("timeout")) {
295
+ throw new GraphExecutionError(`Code execution timed out after ${this.defaultTimeoutMs} ms`, "GRAPH_CODE_SANDBOX_TIMEOUT", { timeoutMs: this.defaultTimeoutMs });
296
+ }
297
+ if (msg.includes("memory") || msg.includes("heap")) {
298
+ throw new GraphExecutionError(`Code exceeded the memory limit of ${this.defaultMemoryMb} MB`, "GRAPH_CODE_SANDBOX_MEMORY_LIMIT", { memoryMb: this.defaultMemoryMb });
299
+ }
300
+ throw new GraphExecutionError(`Code execution failed: ${msg}`, "GRAPH_CODE_SANDBOX_RUNTIME_ERROR", { code: jsCode, error: msg });
301
+ }
302
+ // The script returns a JSON string `{"v": <result>}`. Parse it back.
303
+ if (typeof rawResult !== "string") {
304
+ throw new GraphExecutionError("Code sandbox returned an unexpected non-string result", "GRAPH_CODE_SANDBOX_UNEXPECTED_RESULT", { result: rawResult });
305
+ }
306
+ return JSON.parse(rawResult).v;
307
+ }
308
+ finally {
309
+ context.release();
310
+ isolate.dispose();
311
+ }
312
+ }
313
+ }
314
+ //# sourceMappingURL=IsolatedVmCodeSandboxEvaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsolatedVmCodeSandboxEvaluator.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,6 @@ export * from "./GraphExecutionFrame.js";
10
10
  export * from "./GraphExecutionEngine.js";
11
11
  export * from "./CodeSandboxEvaluator.js";
12
12
  export * from "./SwitchGraphNodeExecutor.js";
13
+ export * from "./CodeGraphNodeExecutor.js";
14
+ export * from "./IsolatedVmCodeSandboxEvaluator.js";
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2CAAwC;AACxC,uCAAoC;AACpC,0CAAuC;AACvC,yCAAsC;AACtC,0CAAuC;AACvC,0CAAuC;AACvC,6CAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/graph/engine/execution/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,2CAAwC;AACxC,uCAAoC;AACpC,0CAAuC;AACvC,yCAAsC;AACtC,0CAAuC;AACvC,0CAAuC;AACvC,6CAA0C;AAC1C,2CAAwC;AACxC,oDAAiD"}
@@ -32,6 +32,8 @@ export * from "./execution/GraphExecutionResult.js";
32
32
  export * from "./execution/GraphExecutionEngine.js";
33
33
  export * from "./execution/CodeSandboxEvaluator.js";
34
34
  export * from "./execution/SwitchGraphNodeExecutor.js";
35
+ export * from "./execution/CodeGraphNodeExecutor.js";
36
+ export * from "./execution/IsolatedVmCodeSandboxEvaluator.js";
35
37
  export * from "./registry/GraphNodeExecutorRegistry.js";
36
38
  export * from "./registry/GraphNodeExecutorResolver.js";
37
39
  export * from "./store/GraphValueKey.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/graph/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,qCAA0B;AAE1B,+BAA4B;AAC5B,2BAAwB;AACxB,gCAA6B;AAE7B,gDAA6C;AAC7C,4CAAyC;AACzC,4CAAyC;AACzC,gDAA6C;AAC7C,8CAA2C;AAC3C,2CAAwC;AACxC,4CAAyC;AACzC,+CAA4C;AAE5C,gDAA6C;AAC7C,mDAAgD;AAChD,uDAAoD;AACpD,uDAAoD;AAEpD,qDAAkD;AAClD,iDAA8C;AAC9C,mDAAgD;AAChD,oDAAiD;AACjD,oDAAiD;AACjD,oDAAiD;AACjD,uDAAoD;AAEpD,wDAAqD;AACrD,wDAAqD;AAErD,yCAAsC;AACtC,4CAAyC;AACzC,kDAA+C;AAC/C,0DAAuD;AACvD,2CAAwC;AAExC,qDAAkD;AAClD,qDAAkD;AAClD,sDAAmD;AACnD,iDAA8C;AAC9C,oDAAiD;AACjD,oDAAiD;AACjD,4CAAyC;AAEzC,wBAAwB;AACxB,yDAAsD;AACtD,wDAAqD;AACrD,oDAAiD;AAEjD,mBAAmB;AACnB,mDAAgD;AAChD,wDAAqD;AACrD,qDAAkD;AAClD,oDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAE/C,yBAAyB;AACzB,kDAA+C;AAC/C,gDAA6C;AAC7C,4DAAyD;AACzD,iDAA8C;AAE9C,uBAAuB;AACvB,4DAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/graph/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,qCAA0B;AAE1B,+BAA4B;AAC5B,2BAAwB;AACxB,gCAA6B;AAE7B,gDAA6C;AAC7C,4CAAyC;AACzC,4CAAyC;AACzC,gDAA6C;AAC7C,8CAA2C;AAC3C,2CAAwC;AACxC,4CAAyC;AACzC,+CAA4C;AAE5C,gDAA6C;AAC7C,mDAAgD;AAChD,uDAAoD;AACpD,uDAAoD;AAEpD,qDAAkD;AAClD,iDAA8C;AAC9C,mDAAgD;AAChD,oDAAiD;AACjD,oDAAiD;AACjD,oDAAiD;AACjD,uDAAoD;AACpD,qDAAkD;AAClD,8DAA2D;AAE3D,wDAAqD;AACrD,wDAAqD;AAErD,yCAAsC;AACtC,4CAAyC;AACzC,kDAA+C;AAC/C,0DAAuD;AACvD,2CAAwC;AAExC,qDAAkD;AAClD,qDAAkD;AAClD,sDAAmD;AACnD,iDAA8C;AAC9C,oDAAiD;AACjD,oDAAiD;AACjD,4CAAyC;AAEzC,wBAAwB;AACxB,yDAAsD;AACtD,wDAAqD;AACrD,oDAAiD;AAEjD,mBAAmB;AACnB,mDAAgD;AAChD,wDAAqD;AACrD,qDAAkD;AAClD,oDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAE/C,yBAAyB;AACzB,kDAA+C;AAC/C,gDAA6C;AAC7C,4DAAyD;AACzD,iDAA8C;AAE9C,uBAAuB;AACvB,4DAAyD"}
@@ -396,13 +396,14 @@ ReturnFlowNode = __decorate([
396
396
  ], ReturnFlowNode);
397
397
  export { ReturnFlowNode };
398
398
  /**
399
- * Code — sandboxed JS/TS code execution (ALFRED-5 §7).
399
+ * Code — sandboxed JS/TS code execution (ALFRED-5 §7, DECAF-32 §22.4).
400
400
  *
401
- * The engine does not implement the sandbox directly (§22.4). A future
402
- * executor may wrap the `CodeSandbox` contract (ALFRED-5 §7.17) as a
403
- * pluggable executor. The placeholder syntax (`{{ $input }}`, `{{ $item }}`,
404
- * `{{ $index }}`, `{{ $vars }}`, `{{ $node["Name"].output }}`) is Mastra-
405
- * agnostic and lives in the downstream project's `modules/core` (ALFRED-6).
401
+ * The engine's {@link CodeGraphNodeExecutor} delegates to the pluggable
402
+ * {@link CodeSandboxEvaluator}. The default
403
+ * `IsolatedVmCodeSandboxEvaluator` (backed by `isolated-vm`) enforces the
404
+ * Code Node restrictions: no imports, no requires, pure functions only. The
405
+ * sandbox context exposes `$input`, `$vars`, `$item`, `$index`, `$node`, and
406
+ * `$output` as data variables. TypeScript is supported via transpilation.
406
407
  */
407
408
  let CodeFlowNode = class CodeFlowNode extends Model {
408
409
  };
@@ -432,6 +433,7 @@ CodeFlowNode = __decorate([
432
433
  description: "Runs user-authored JS/TS in a restricted VM sandbox. Supports placeholder syntax for workflow data references.",
433
434
  code: "",
434
435
  language: "javascript",
436
+ timeoutMs: 1000,
435
437
  },
436
438
  }),
437
439
  model()
@@ -1 +1 @@
1
- {"version":3,"file":"flow-control.js","sourceRoot":"","sources":["../../../../../src/graph/shared/nodes/flow-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-control.js","sourceRoot":"","sources":["../../../../../src/graph/shared/nodes/flow-control.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -5,8 +5,8 @@
5
5
  */
6
6
  export * from "./utils.js";
7
7
  export * from "./namespaces/index.js";
8
- export const VERSION = "0.3.9";
9
- export const COMMIT = "1deb3bb";
10
- export const FULL_VERSION = "0.3.9-1deb3bb";
8
+ export const VERSION = "0.3.10";
9
+ export const COMMIT = "857014d";
10
+ export const FULL_VERSION = "0.3.10-857014d";
11
11
  export const PACKAGE_NAME = "@decaf-ts/integrations";
12
12
  //# sourceMappingURL=index.js.map
@@ -12,8 +12,8 @@ import { model, option, required, type as typeOf } from "@decaf-ts/decorator-val
12
12
  import { ScopeKind, ScopeKindOptions } from "./../types.js";
13
13
  import { REL_CASCADE_DEPENDENT } from "./../utils.js";
14
14
  import { AuthorizationModel } from "./authorization-model.js";
15
- import { Tenant } from "./tenant.model";
16
- import { Principal } from "./principal.model";
15
+ import { Tenant } from "./tenant.model.js";
16
+ import { Principal } from "./principal.model.js";
17
17
  let EffectivePermission = class EffectivePermission extends AuthorizationModel {
18
18
  constructor(data) {
19
19
  super(data);