@n8n/instance-ai 1.7.2 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/dist/agent/instance-agent.d.ts +1 -1
  2. package/dist/agent/instance-agent.js +88 -75
  3. package/dist/agent/instance-agent.js.map +1 -1
  4. package/dist/agent/mcp-tool-name-validation.d.ts +4 -2
  5. package/dist/agent/mcp-tool-name-validation.js +2 -2
  6. package/dist/agent/mcp-tool-name-validation.js.map +1 -1
  7. package/dist/agent/runtime-workspace.d.ts +6 -0
  8. package/dist/agent/runtime-workspace.js +14 -0
  9. package/dist/agent/runtime-workspace.js.map +1 -0
  10. package/dist/agent/sanitize-mcp-schemas.d.ts +4 -3
  11. package/dist/agent/sanitize-mcp-schemas.js +53 -24
  12. package/dist/agent/sanitize-mcp-schemas.js.map +1 -1
  13. package/dist/agent/sub-agent-debriefing.d.ts +2 -2
  14. package/dist/agent/sub-agent-factory.d.ts +7 -4
  15. package/dist/agent/sub-agent-factory.js +24 -13
  16. package/dist/agent/sub-agent-factory.js.map +1 -1
  17. package/dist/agent/system-prompt.js +18 -15
  18. package/dist/agent/system-prompt.js.map +1 -1
  19. package/dist/build.tsbuildinfo +1 -1
  20. package/dist/constants/max-steps.d.ts +1 -1
  21. package/dist/constants/max-steps.js +1 -1
  22. package/dist/constants/max-steps.js.map +1 -1
  23. package/dist/domain-access/domain-gating.d.ts +2 -2
  24. package/dist/error-formatting.d.ts +1 -0
  25. package/dist/error-formatting.js +159 -0
  26. package/dist/error-formatting.js.map +1 -0
  27. package/dist/index.d.ts +65 -24
  28. package/dist/index.js +96 -52
  29. package/dist/index.js.map +1 -1
  30. package/dist/mcp/mcp-client-manager.d.ts +5 -4
  31. package/dist/mcp/mcp-client-manager.js +42 -17
  32. package/dist/mcp/mcp-client-manager.js.map +1 -1
  33. package/dist/memory/title-utils.d.ts +4 -1
  34. package/dist/memory/title-utils.js +10 -2
  35. package/dist/memory/title-utils.js.map +1 -1
  36. package/dist/parsers/structured-file-parser.d.ts +5 -2
  37. package/dist/parsers/structured-file-parser.js +9 -2
  38. package/dist/parsers/structured-file-parser.js.map +1 -1
  39. package/dist/planned-tasks/planned-task-permissions.js +3 -5
  40. package/dist/planned-tasks/planned-task-permissions.js.map +1 -1
  41. package/dist/planned-tasks/planned-task-service.d.ts +1 -0
  42. package/dist/planned-tasks/planned-task-service.js +8 -0
  43. package/dist/planned-tasks/planned-task-service.js.map +1 -1
  44. package/dist/runtime/background-task-manager.d.ts +9 -2
  45. package/dist/runtime/background-task-manager.js +7 -2
  46. package/dist/runtime/background-task-manager.js.map +1 -1
  47. package/dist/runtime/liveness-policy.js +4 -3
  48. package/dist/runtime/liveness-policy.js.map +1 -1
  49. package/dist/runtime/resumable-stream-executor.d.ts +4 -24
  50. package/dist/runtime/resumable-stream-executor.js +103 -1318
  51. package/dist/runtime/resumable-stream-executor.js.map +1 -1
  52. package/dist/runtime/run-state-registry.d.ts +8 -2
  53. package/dist/runtime/run-state-registry.js +19 -1
  54. package/dist/runtime/run-state-registry.js.map +1 -1
  55. package/dist/runtime/stream-runner.d.ts +4 -4
  56. package/dist/runtime/stream-runner.js +11 -25
  57. package/dist/runtime/stream-runner.js.map +1 -1
  58. package/dist/skills/materialize-runtime-skills.d.ts +62 -0
  59. package/dist/skills/materialize-runtime-skills.js +467 -0
  60. package/dist/skills/materialize-runtime-skills.js.map +1 -0
  61. package/dist/skills/runtime-skills.d.ts +4 -0
  62. package/dist/skills/runtime-skills.js +17 -0
  63. package/dist/skills/runtime-skills.js.map +1 -0
  64. package/dist/source-map-filter.d.ts +17 -0
  65. package/dist/source-map-filter.js +39 -0
  66. package/dist/source-map-filter.js.map +1 -0
  67. package/dist/storage/agent-tree-snapshot.d.ts +2 -0
  68. package/dist/storage/index.d.ts +3 -3
  69. package/dist/storage/index.js +8 -7
  70. package/dist/storage/index.js.map +1 -1
  71. package/dist/storage/planned-task-storage.d.ts +3 -3
  72. package/dist/storage/planned-task-storage.js +3 -8
  73. package/dist/storage/planned-task-storage.js.map +1 -1
  74. package/dist/storage/terminal-outcome-storage.d.ts +4 -4
  75. package/dist/storage/terminal-outcome-storage.js +1 -1
  76. package/dist/storage/terminal-outcome-storage.js.map +1 -1
  77. package/dist/storage/{mastra-iteration-log-storage.d.ts → thread-iteration-log-storage.d.ts} +3 -3
  78. package/dist/storage/{mastra-iteration-log-storage.js → thread-iteration-log-storage.js} +5 -5
  79. package/dist/storage/thread-iteration-log-storage.js.map +1 -0
  80. package/dist/storage/thread-patch.d.ts +16 -10
  81. package/dist/storage/thread-patch.js +37 -36
  82. package/dist/storage/thread-patch.js.map +1 -1
  83. package/dist/storage/{mastra-task-storage.d.ts → thread-task-storage.d.ts} +3 -3
  84. package/dist/storage/{mastra-task-storage.js → thread-task-storage.js} +5 -5
  85. package/dist/storage/thread-task-storage.js.map +1 -0
  86. package/dist/storage/workflow-loop-storage.d.ts +28 -28
  87. package/dist/storage/workflow-loop-storage.js +1 -1
  88. package/dist/storage/workflow-loop-storage.js.map +1 -1
  89. package/dist/stream/consume-with-hitl.d.ts +11 -11
  90. package/dist/stream/consume-with-hitl.js +27 -15
  91. package/dist/stream/consume-with-hitl.js.map +1 -1
  92. package/dist/stream/map-chunk.d.ts +1 -1
  93. package/dist/stream/map-chunk.js +153 -36
  94. package/dist/stream/map-chunk.js.map +1 -1
  95. package/dist/tool-registry.d.ts +8 -0
  96. package/dist/tool-registry.js +45 -0
  97. package/dist/tool-registry.js.map +1 -0
  98. package/dist/tools/attachments/parse-file.tool.d.ts +42 -45
  99. package/dist/tools/attachments/parse-file.tool.js +140 -97
  100. package/dist/tools/attachments/parse-file.tool.js.map +1 -1
  101. package/dist/tools/credentials.tool.d.ts +5 -5
  102. package/dist/tools/credentials.tool.js +31 -34
  103. package/dist/tools/credentials.tool.js.map +1 -1
  104. package/dist/tools/data-tables.tool.d.ts +3 -2
  105. package/dist/tools/data-tables.tool.js +99 -100
  106. package/dist/tools/data-tables.tool.js.map +1 -1
  107. package/dist/tools/evals/apply-pin-data.service.d.ts +3 -0
  108. package/dist/tools/evals/apply-pin-data.service.js +19 -0
  109. package/dist/tools/evals/apply-pin-data.service.js.map +1 -0
  110. package/dist/tools/evals/column-ref-utils.d.ts +3 -0
  111. package/dist/tools/evals/column-ref-utils.js +205 -48
  112. package/dist/tools/evals/column-ref-utils.js.map +1 -1
  113. package/dist/tools/evals/detect-agent-named-refs.service.js +20 -4
  114. package/dist/tools/evals/detect-agent-named-refs.service.js.map +1 -1
  115. package/dist/tools/evals/ensure-eval-data-table.service.d.ts +15 -0
  116. package/dist/tools/evals/ensure-eval-data-table.service.js +83 -0
  117. package/dist/tools/evals/ensure-eval-data-table.service.js.map +1 -0
  118. package/dist/tools/evals/eval-data-requirements.service.d.ts +1 -0
  119. package/dist/tools/evals/eval-data-requirements.service.js +23 -4
  120. package/dist/tools/evals/eval-data-requirements.service.js.map +1 -1
  121. package/dist/tools/evals/evals.tool.d.ts +2 -0
  122. package/dist/tools/evals/evals.tool.js +452 -0
  123. package/dist/tools/evals/evals.tool.js.map +1 -0
  124. package/dist/tools/evals/extract-rows-from-history.service.d.ts +17 -0
  125. package/dist/tools/evals/extract-rows-from-history.service.js +103 -0
  126. package/dist/tools/evals/extract-rows-from-history.service.js.map +1 -0
  127. package/dist/tools/evals/format-eval-setup-task.d.ts +16 -0
  128. package/dist/tools/evals/format-eval-setup-task.js +167 -0
  129. package/dist/tools/evals/format-eval-setup-task.js.map +1 -0
  130. package/dist/tools/evals/generate-sample-rows.service.d.ts +35 -0
  131. package/dist/tools/evals/generate-sample-rows.service.js +278 -0
  132. package/dist/tools/evals/generate-sample-rows.service.js.map +1 -0
  133. package/dist/tools/evals/generate-tool-ref-pin-data.service.d.ts +11 -0
  134. package/dist/tools/evals/generate-tool-ref-pin-data.service.js +125 -0
  135. package/dist/tools/evals/generate-tool-ref-pin-data.service.js.map +1 -0
  136. package/dist/tools/evals/metric-catalog.d.ts +10 -4
  137. package/dist/tools/evals/metric-catalog.js.map +1 -1
  138. package/dist/tools/executions.tool.d.ts +1 -1
  139. package/dist/tools/executions.tool.js +25 -34
  140. package/dist/tools/executions.tool.js.map +1 -1
  141. package/dist/tools/filesystem/create-tools-from-mcp-server.d.ts +2 -3
  142. package/dist/tools/filesystem/create-tools-from-mcp-server.js +129 -67
  143. package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
  144. package/dist/tools/index.d.ts +4 -16
  145. package/dist/tools/index.js +102 -92
  146. package/dist/tools/index.js.map +1 -1
  147. package/dist/tools/nodes.tool.d.ts +1 -1
  148. package/dist/tools/nodes.tool.js +31 -33
  149. package/dist/tools/nodes.tool.js.map +1 -1
  150. package/dist/tools/orchestration/add-plan-item.tool.d.ts +2 -2
  151. package/dist/tools/orchestration/add-plan-item.tool.js +45 -49
  152. package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -1
  153. package/dist/tools/orchestration/agent-persistence.d.ts +14 -0
  154. package/dist/tools/orchestration/agent-persistence.js +43 -0
  155. package/dist/tools/orchestration/agent-persistence.js.map +1 -0
  156. package/dist/tools/orchestration/blueprint-accumulator.d.ts +4 -8
  157. package/dist/tools/orchestration/blueprint-accumulator.js +11 -78
  158. package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -1
  159. package/dist/tools/orchestration/blueprint.schema.d.ts +13 -147
  160. package/dist/tools/orchestration/blueprint.schema.js +4 -23
  161. package/dist/tools/orchestration/blueprint.schema.js.map +1 -1
  162. package/dist/tools/orchestration/browser-credential-setup.nudge.d.ts +2 -4
  163. package/dist/tools/orchestration/browser-credential-setup.nudge.js +1 -1
  164. package/dist/tools/orchestration/browser-credential-setup.nudge.js.map +1 -1
  165. package/dist/tools/orchestration/browser-credential-setup.tool.d.ts +10 -2
  166. package/dist/tools/orchestration/browser-credential-setup.tool.js +299 -270
  167. package/dist/tools/orchestration/browser-credential-setup.tool.js.map +1 -1
  168. package/dist/tools/orchestration/build-workflow-agent.prompt.d.ts +7 -1
  169. package/dist/tools/orchestration/build-workflow-agent.prompt.js +46 -20
  170. package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
  171. package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +50 -5
  172. package/dist/tools/orchestration/build-workflow-agent.tool.js +748 -605
  173. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
  174. package/dist/tools/orchestration/builder-memory-compaction.d.ts +6 -2
  175. package/dist/tools/orchestration/builder-memory-compaction.js +32 -46
  176. package/dist/tools/orchestration/builder-memory-compaction.js.map +1 -1
  177. package/dist/tools/orchestration/complete-checkpoint.tool.d.ts +1 -1
  178. package/dist/tools/orchestration/complete-checkpoint.tool.js +46 -47
  179. package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
  180. package/dist/tools/orchestration/delegate.tool.d.ts +1 -1
  181. package/dist/tools/orchestration/delegate.tool.js +170 -166
  182. package/dist/tools/orchestration/delegate.tool.js.map +1 -1
  183. package/dist/tools/orchestration/eval-data-agent.tool.d.ts +2 -0
  184. package/dist/tools/orchestration/eval-data-agent.tool.js +183 -0
  185. package/dist/tools/orchestration/eval-data-agent.tool.js.map +1 -0
  186. package/dist/tools/orchestration/eval-setup-agent.prompt.d.ts +1 -0
  187. package/dist/tools/orchestration/eval-setup-agent.prompt.js +238 -0
  188. package/dist/tools/orchestration/eval-setup-agent.prompt.js.map +1 -0
  189. package/dist/tools/orchestration/eval-setup-agent.tool.d.ts +31 -0
  190. package/dist/tools/orchestration/eval-setup-agent.tool.js +204 -0
  191. package/dist/tools/orchestration/eval-setup-agent.tool.js.map +1 -0
  192. package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -1
  193. package/dist/tools/orchestration/plan-agent-prompt.js +9 -9
  194. package/dist/tools/orchestration/plan-with-agent.tool.d.ts +1 -1
  195. package/dist/tools/orchestration/plan-with-agent.tool.js +210 -179
  196. package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -1
  197. package/dist/tools/orchestration/plan.tool.d.ts +5 -2
  198. package/dist/tools/orchestration/plan.tool.js +125 -105
  199. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  200. package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +3 -3
  201. package/dist/tools/orchestration/report-verification-verdict.tool.js +65 -66
  202. package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
  203. package/dist/tools/orchestration/submit-plan.tool.d.ts +1 -1
  204. package/dist/tools/orchestration/submit-plan.tool.js +83 -66
  205. package/dist/tools/orchestration/submit-plan.tool.js.map +1 -1
  206. package/dist/tools/orchestration/tracing-utils.d.ts +3 -2
  207. package/dist/tools/orchestration/tracing-utils.js +58 -39
  208. package/dist/tools/orchestration/tracing-utils.js.map +1 -1
  209. package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +5 -5
  210. package/dist/tools/orchestration/verify-built-workflow.tool.js +166 -166
  211. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  212. package/dist/tools/research.tool.d.ts +1 -1
  213. package/dist/tools/research.tool.js +59 -27
  214. package/dist/tools/research.tool.js.map +1 -1
  215. package/dist/tools/shared/ask-user.tool.d.ts +3 -2
  216. package/dist/tools/shared/ask-user.tool.js +61 -63
  217. package/dist/tools/shared/ask-user.tool.js.map +1 -1
  218. package/dist/tools/task-control.tool.d.ts +1 -1
  219. package/dist/tools/task-control.tool.js +15 -16
  220. package/dist/tools/task-control.tool.js.map +1 -1
  221. package/dist/tools/templates.tool.d.ts +1 -1
  222. package/dist/tools/templates.tool.js +6 -7
  223. package/dist/tools/templates.tool.js.map +1 -1
  224. package/dist/tools/tool-ids.d.ts +40 -0
  225. package/dist/tools/tool-ids.js +62 -0
  226. package/dist/tools/tool-ids.js.map +1 -0
  227. package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +3 -3
  228. package/dist/tools/workflows/apply-workflow-credentials.tool.js +72 -73
  229. package/dist/tools/workflows/apply-workflow-credentials.tool.js.map +1 -1
  230. package/dist/tools/workflows/build-workflow.tool.d.ts +3 -3
  231. package/dist/tools/workflows/build-workflow.tool.js +113 -114
  232. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  233. package/dist/tools/workflows/materialize-node-type.tool.d.ts +6 -6
  234. package/dist/tools/workflows/materialize-node-type.tool.js +64 -65
  235. package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
  236. package/dist/tools/workflows/resolve-credentials.d.ts +3 -5
  237. package/dist/tools/workflows/resolve-credentials.js +15 -6
  238. package/dist/tools/workflows/resolve-credentials.js.map +1 -1
  239. package/dist/tools/workflows/setup-workflow.schema.d.ts +2 -2
  240. package/dist/tools/workflows/submit-workflow-identity.d.ts +8 -9
  241. package/dist/tools/workflows/submit-workflow-identity.js +41 -27
  242. package/dist/tools/workflows/submit-workflow-identity.js.map +1 -1
  243. package/dist/tools/workflows/submit-workflow.tool.d.ts +10 -7
  244. package/dist/tools/workflows/submit-workflow.tool.js +224 -191
  245. package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
  246. package/dist/tools/workflows/validate-workflow.service.d.ts +15 -0
  247. package/dist/tools/workflows/validate-workflow.service.js +289 -0
  248. package/dist/tools/workflows/validate-workflow.service.js.map +1 -0
  249. package/dist/tools/workflows/write-sandbox-file.tool.d.ts +2 -2
  250. package/dist/tools/workflows/write-sandbox-file.tool.js +29 -30
  251. package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
  252. package/dist/tools/workflows.tool.d.ts +5 -2
  253. package/dist/tools/workflows.tool.js +184 -85
  254. package/dist/tools/workflows.tool.js.map +1 -1
  255. package/dist/tools/workspace.tool.d.ts +1 -1
  256. package/dist/tools/workspace.tool.js +49 -65
  257. package/dist/tools/workspace.tool.js.map +1 -1
  258. package/dist/tracing/langsmith-tracing.d.ts +17 -18
  259. package/dist/tracing/langsmith-tracing.js +941 -677
  260. package/dist/tracing/langsmith-tracing.js.map +1 -1
  261. package/dist/tracing/trace-labels.d.ts +5 -0
  262. package/dist/tracing/trace-labels.js +36 -0
  263. package/dist/tracing/trace-labels.js.map +1 -0
  264. package/dist/tracing/trace-payloads.d.ts +23 -0
  265. package/dist/tracing/trace-payloads.js +1008 -0
  266. package/dist/tracing/trace-payloads.js.map +1 -0
  267. package/dist/types.d.ts +57 -25
  268. package/dist/types.js +3 -0
  269. package/dist/types.js.map +1 -1
  270. package/dist/utils/eval-agents.js +1 -1
  271. package/dist/utils/eval-agents.js.map +1 -1
  272. package/dist/utils/scrub-secrets.js +1 -1
  273. package/dist/utils/scrub-secrets.js.map +1 -1
  274. package/dist/utils/stream-helpers.d.ts +2 -5
  275. package/dist/utils/stream-helpers.js +12 -1
  276. package/dist/utils/stream-helpers.js.map +1 -1
  277. package/dist/workflow-loop/workflow-loop-state.d.ts +18 -18
  278. package/dist/workspace/builder-templates-service.d.ts +54 -0
  279. package/dist/workspace/builder-templates-service.js +442 -0
  280. package/dist/workspace/builder-templates-service.js.map +1 -0
  281. package/dist/workspace/create-workspace.d.ts +16 -3
  282. package/dist/workspace/create-workspace.js +45 -21
  283. package/dist/workspace/create-workspace.js.map +1 -1
  284. package/dist/workspace/daytona-auth-manager.d.ts +26 -0
  285. package/dist/workspace/daytona-auth-manager.js +90 -0
  286. package/dist/workspace/daytona-auth-manager.js.map +1 -0
  287. package/dist/workspace/daytona-filesystem.d.ts +5 -4
  288. package/dist/workspace/daytona-filesystem.js +25 -15
  289. package/dist/workspace/daytona-filesystem.js.map +1 -1
  290. package/dist/workspace/daytona-sandbox.d.ts +65 -0
  291. package/dist/workspace/daytona-sandbox.js +314 -0
  292. package/dist/workspace/daytona-sandbox.js.map +1 -0
  293. package/dist/workspace/lazy-daytona.d.ts +2 -0
  294. package/dist/workspace/lazy-daytona.js +12 -0
  295. package/dist/workspace/lazy-daytona.js.map +1 -0
  296. package/dist/workspace/lazy-runtime-workspace.d.ts +8 -0
  297. package/dist/workspace/lazy-runtime-workspace.js +246 -0
  298. package/dist/workspace/lazy-runtime-workspace.js.map +1 -0
  299. package/dist/workspace/local-filesystem.d.ts +48 -0
  300. package/dist/workspace/local-filesystem.js +250 -0
  301. package/dist/workspace/local-filesystem.js.map +1 -0
  302. package/dist/workspace/local-sandbox.d.ts +28 -0
  303. package/dist/workspace/local-sandbox.js +121 -0
  304. package/dist/workspace/local-sandbox.js.map +1 -0
  305. package/dist/workspace/n8n-sandbox-filesystem.d.ts +3 -3
  306. package/dist/workspace/n8n-sandbox-filesystem.js +3 -3
  307. package/dist/workspace/n8n-sandbox-filesystem.js.map +1 -1
  308. package/dist/workspace/n8n-sandbox-sandbox.d.ts +12 -3
  309. package/dist/workspace/n8n-sandbox-sandbox.js +54 -10
  310. package/dist/workspace/n8n-sandbox-sandbox.js.map +1 -1
  311. package/dist/workspace/sandbox-fs.d.ts +35 -4
  312. package/dist/workspace/sandbox-fs.js +1 -1
  313. package/dist/workspace/sandbox-fs.js.map +1 -1
  314. package/dist/workspace/sandbox-setup.d.ts +13 -4
  315. package/dist/workspace/sandbox-setup.js +250 -36
  316. package/dist/workspace/sandbox-setup.js.map +1 -1
  317. package/dist/workspace/scoped-workspace.d.ts +2 -0
  318. package/dist/workspace/scoped-workspace.js +141 -0
  319. package/dist/workspace/scoped-workspace.js.map +1 -0
  320. package/dist/workspace/snapshot-manager.d.ts +11 -5
  321. package/dist/workspace/snapshot-manager.js +64 -17
  322. package/dist/workspace/snapshot-manager.js.map +1 -1
  323. package/dist/workspace/template-telemetry.d.ts +4 -4
  324. package/dist/workspace/template-telemetry.js +18 -6
  325. package/dist/workspace/template-telemetry.js.map +1 -1
  326. package/package.json +12 -15
  327. package/skills/data-table-manager/SKILL.md +119 -0
  328. package/skills/data-table-manager/references/data-table-playbook.md +212 -0
  329. package/dist/agent/register-with-mastra.d.ts +0 -3
  330. package/dist/agent/register-with-mastra.js +0 -15
  331. package/dist/agent/register-with-mastra.js.map +0 -1
  332. package/dist/compaction/compaction-helper.d.ts +0 -9
  333. package/dist/compaction/compaction-helper.js +0 -58
  334. package/dist/compaction/compaction-helper.js.map +0 -1
  335. package/dist/compaction/index.d.ts +0 -2
  336. package/dist/compaction/index.js +0 -6
  337. package/dist/compaction/index.js.map +0 -1
  338. package/dist/memory/memory-config.d.ts +0 -3
  339. package/dist/memory/memory-config.js +0 -27
  340. package/dist/memory/memory-config.js.map +0 -1
  341. package/dist/runtime/builder-sandbox-session-registry.d.ts +0 -47
  342. package/dist/runtime/builder-sandbox-session-registry.js +0 -166
  343. package/dist/runtime/builder-sandbox-session-registry.js.map +0 -1
  344. package/dist/storage/mastra-iteration-log-storage.js.map +0 -1
  345. package/dist/storage/mastra-task-storage.js.map +0 -1
  346. package/dist/tools/orchestration/data-table-agent.prompt.d.ts +0 -1
  347. package/dist/tools/orchestration/data-table-agent.prompt.js +0 -47
  348. package/dist/tools/orchestration/data-table-agent.prompt.js.map +0 -1
  349. package/dist/tools/orchestration/data-table-agent.tool.d.ts +0 -26
  350. package/dist/tools/orchestration/data-table-agent.tool.js +0 -174
  351. package/dist/tools/orchestration/data-table-agent.tool.js.map +0 -1
  352. package/dist/tools/orchestration/research-agent-prompt.d.ts +0 -1
  353. package/dist/tools/orchestration/research-agent-prompt.js +0 -26
  354. package/dist/tools/orchestration/research-agent-prompt.js.map +0 -1
  355. package/dist/tools/orchestration/research-with-agent.tool.d.ts +0 -30
  356. package/dist/tools/orchestration/research-with-agent.tool.js +0 -179
  357. package/dist/tools/orchestration/research-with-agent.tool.js.map +0 -1
  358. package/dist/workspace/builder-sandbox-factory.d.ts +0 -30
  359. package/dist/workspace/builder-sandbox-factory.js +0 -289
  360. package/dist/workspace/builder-sandbox-factory.js.map +0 -1
  361. package/dist/workspace/guarded-filesystem.d.ts +0 -10
  362. package/dist/workspace/guarded-filesystem.js +0 -136
  363. package/dist/workspace/guarded-filesystem.js.map +0 -1
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BuilderTemplatesService = void 0;
40
+ exports.builderTemplatesOptionsFromEnv = builderTemplatesOptionsFromEnv;
41
+ const package_json_1 = __importDefault(require("@n8n/workflow-sdk/package.json"));
42
+ const node_crypto_1 = require("node:crypto");
43
+ const fsp = __importStar(require("node:fs/promises"));
44
+ const os = __importStar(require("node:os"));
45
+ const path = __importStar(require("node:path"));
46
+ const DEFAULT_CDN_BASE_URL = 'https://sdk-templates.n8n.io';
47
+ const WORKFLOW_SDK_VERSION = package_json_1.default.version;
48
+ const DEFAULT_REFRESH_INTERVAL_MS = 24 * 60 * 60 * 1000;
49
+ const DEFAULT_FETCH_TIMEOUT_MS = 30_000;
50
+ const DEFAULT_MAX_ATTEMPTS = 3;
51
+ const DEFAULT_RETRY_BACKOFF_BASE_MS = 1_000;
52
+ const DEFAULT_FAILURE_RETRY_INTERVAL_MS = 5 * 60 * 1000;
53
+ const RETRY_BACKOFF_CAP_MS = 5_000;
54
+ const DEFAULT_CACHE_SUBDIR = 'n8n-sdk-templates';
55
+ const ARCHIVE_FILENAME = 'templates.tar.gz';
56
+ const ETAG_FILENAME = 'etag.txt';
57
+ const SHA256_FILENAME = 'templates.tar.gz.sha256';
58
+ const CHANNEL_FILENAME = 'channel.txt';
59
+ const EMPTY_BUNDLE = { archive: null, version: null };
60
+ class BuilderTemplatesService {
61
+ cdnBase;
62
+ versionPrefix;
63
+ sdkVersion;
64
+ cacheDir;
65
+ refreshIntervalMs;
66
+ fetchTimeoutMs;
67
+ maxAttempts;
68
+ retryBackoffBaseMs;
69
+ failureRetryIntervalMs;
70
+ disabled;
71
+ logger;
72
+ state = null;
73
+ hydratePromise = null;
74
+ backgroundRefresh = null;
75
+ lastHydrateFailureAt = null;
76
+ constructor(opts = {}) {
77
+ this.cdnBase = (opts.cdnBaseUrl ?? DEFAULT_CDN_BASE_URL).replace(/\/+$/, '');
78
+ this.sdkVersion = opts.sdkVersion ?? WORKFLOW_SDK_VERSION;
79
+ this.versionPrefix = sdkVersionToPrefix(this.sdkVersion);
80
+ this.cacheDir = opts.cacheDir ?? path.join(os.homedir(), '.n8n', DEFAULT_CACHE_SUBDIR);
81
+ this.refreshIntervalMs = opts.refreshIntervalMs ?? DEFAULT_REFRESH_INTERVAL_MS;
82
+ this.fetchTimeoutMs = opts.fetchTimeoutMs ?? DEFAULT_FETCH_TIMEOUT_MS;
83
+ this.maxAttempts = opts.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
84
+ this.retryBackoffBaseMs = opts.retryBackoffBaseMs ?? DEFAULT_RETRY_BACKOFF_BASE_MS;
85
+ this.failureRetryIntervalMs = opts.failureRetryIntervalMs ?? DEFAULT_FAILURE_RETRY_INTERVAL_MS;
86
+ this.disabled = opts.disabled ?? false;
87
+ this.logger = opts.logger;
88
+ }
89
+ channelPrefix(channel) {
90
+ return channel === 'exact' ? this.versionPrefix : 'latest';
91
+ }
92
+ archiveUrlFor(channel) {
93
+ return `${this.cdnBase}/${this.channelPrefix(channel)}/${ARCHIVE_FILENAME}`;
94
+ }
95
+ sha256UrlFor(channel) {
96
+ return `${this.cdnBase}/${this.channelPrefix(channel)}/${SHA256_FILENAME}`;
97
+ }
98
+ async getBundle() {
99
+ if (this.disabled)
100
+ return EMPTY_BUNDLE;
101
+ if (!this.state) {
102
+ if (!this.hydratePromise) {
103
+ if (this.isWithinHydrateFailureCooldown())
104
+ return EMPTY_BUNDLE;
105
+ this.hydratePromise = this.hydrate();
106
+ }
107
+ await this.hydratePromise;
108
+ if (this.state) {
109
+ this.lastHydrateFailureAt = null;
110
+ }
111
+ else {
112
+ this.lastHydrateFailureAt = Date.now();
113
+ this.hydratePromise = null;
114
+ return EMPTY_BUNDLE;
115
+ }
116
+ }
117
+ const state = this.state;
118
+ if (!state)
119
+ return EMPTY_BUNDLE;
120
+ if (Date.now() - state.lastFetched > this.refreshIntervalMs && !this.backgroundRefresh) {
121
+ this.backgroundRefresh = this.refresh({ isInitial: false }).finally(() => {
122
+ this.backgroundRefresh = null;
123
+ });
124
+ }
125
+ return state.bundle;
126
+ }
127
+ isWithinHydrateFailureCooldown() {
128
+ if (this.lastHydrateFailureAt === null)
129
+ return false;
130
+ return Date.now() - this.lastHydrateFailureAt < this.failureRetryIntervalMs;
131
+ }
132
+ getVersion() {
133
+ const state = this.state;
134
+ const raw = state?.bundle.version ?? null;
135
+ if (!raw || !state)
136
+ return null;
137
+ const normalised = raw.replace(/^W\//, '').replace(/^"|"$/g, '');
138
+ return `${this.channelPrefix(state.channel)}:${normalised}`;
139
+ }
140
+ async hydrate() {
141
+ const fromDisk = await this.loadFromDisk();
142
+ if (fromDisk) {
143
+ this.state = fromDisk;
144
+ if (Date.now() - fromDisk.lastFetched > this.refreshIntervalMs) {
145
+ this.backgroundRefresh = this.refresh({ isInitial: false }).finally(() => {
146
+ this.backgroundRefresh = null;
147
+ });
148
+ }
149
+ return;
150
+ }
151
+ await this.refresh({ isInitial: true });
152
+ }
153
+ async loadFromDisk() {
154
+ const archivePath = path.join(this.cacheDir, ARCHIVE_FILENAME);
155
+ try {
156
+ const stat = await fsp.stat(archivePath);
157
+ const buffer = await fsp.readFile(archivePath);
158
+ const actualSha = sha256Hex(buffer);
159
+ const expectedSha = await this.readSha256FromDisk();
160
+ if (expectedSha && expectedSha !== actualSha) {
161
+ this.logger?.warn('[builder-templates] disk cache sha256 mismatch, dropping cache', {
162
+ expected: expectedSha,
163
+ actual: actualSha,
164
+ });
165
+ return null;
166
+ }
167
+ const channel = await this.readChannelFromDisk();
168
+ if (!channel) {
169
+ this.logger?.debug('[builder-templates] disk cache missing channel.txt, treating as legacy and refetching');
170
+ return null;
171
+ }
172
+ const etag = await this.readEtagFromDisk();
173
+ return {
174
+ bundle: { archive: buffer, version: etag },
175
+ lastFetched: stat.mtimeMs,
176
+ sha256: actualSha,
177
+ channel,
178
+ };
179
+ }
180
+ catch (error) {
181
+ if (error.code !== 'ENOENT') {
182
+ this.logger?.warn('[builder-templates] failed to load disk cache', {
183
+ error: error instanceof Error ? error.message : String(error),
184
+ });
185
+ }
186
+ return null;
187
+ }
188
+ }
189
+ async readEtagFromDisk() {
190
+ try {
191
+ const raw = await fsp.readFile(path.join(this.cacheDir, ETAG_FILENAME), 'utf-8');
192
+ return raw.trim() || null;
193
+ }
194
+ catch {
195
+ return null;
196
+ }
197
+ }
198
+ async readSha256FromDisk() {
199
+ try {
200
+ const raw = await fsp.readFile(path.join(this.cacheDir, SHA256_FILENAME), 'utf-8');
201
+ return parseSha256(raw);
202
+ }
203
+ catch {
204
+ return null;
205
+ }
206
+ }
207
+ async readChannelFromDisk() {
208
+ try {
209
+ const raw = (await fsp.readFile(path.join(this.cacheDir, CHANNEL_FILENAME), 'utf-8')).trim();
210
+ if (raw === 'exact' || raw === 'latest')
211
+ return raw;
212
+ return null;
213
+ }
214
+ catch {
215
+ return null;
216
+ }
217
+ }
218
+ async refresh({ isInitial }) {
219
+ try {
220
+ const maxAttempts = isInitial ? this.maxAttempts : 1;
221
+ let outcome = await this.fetchBundleWithRetries('exact', maxAttempts);
222
+ let channel = 'exact';
223
+ if (outcome.kind === 'not-found') {
224
+ this.logger?.warn('[builder-templates] no archive at /v<minor>/, falling back to /latest/', { sdkVersion: this.sdkVersion });
225
+ outcome = await this.fetchBundleWithRetries('latest', maxAttempts);
226
+ channel = 'latest';
227
+ }
228
+ if (outcome.kind !== 'fetched')
229
+ return;
230
+ await this.persist(outcome.bundle.bundle.archive, outcome.bundle.bundle.version, outcome.bundle.sha256, channel);
231
+ this.state = {
232
+ bundle: outcome.bundle.bundle,
233
+ lastFetched: Date.now(),
234
+ sha256: outcome.bundle.sha256,
235
+ channel,
236
+ };
237
+ }
238
+ catch (error) {
239
+ this.logger?.warn('[builder-templates] refresh failed', {
240
+ error: error instanceof Error ? error.message : String(error),
241
+ });
242
+ }
243
+ }
244
+ async fetchBundleWithRetries(channel, maxAttempts) {
245
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
246
+ const outcome = await this.tryFetchBundleOnce(channel);
247
+ if (outcome.kind === 'fetched')
248
+ return outcome;
249
+ if (outcome.kind === 'not-modified')
250
+ return outcome;
251
+ if (outcome.kind === 'not-found')
252
+ return outcome;
253
+ if (!outcome.retryable || attempt === maxAttempts)
254
+ return { kind: 'failed' };
255
+ const delay = Math.min(this.retryBackoffBaseMs * 2 ** (attempt - 1), RETRY_BACKOFF_CAP_MS);
256
+ await sleep(delay);
257
+ }
258
+ return { kind: 'failed' };
259
+ }
260
+ async tryFetchBundleOnce(channel) {
261
+ const archiveUrl = this.archiveUrlFor(channel);
262
+ const headers = {};
263
+ const cachedEtag = this.state?.channel === channel ? (this.state.bundle.version ?? null) : null;
264
+ if (cachedEtag)
265
+ headers['If-None-Match'] = cachedEtag;
266
+ let response;
267
+ try {
268
+ response = await fetch(archiveUrl, {
269
+ headers,
270
+ signal: AbortSignal.timeout(this.fetchTimeoutMs),
271
+ });
272
+ }
273
+ catch (error) {
274
+ this.logger?.warn('[builder-templates] archive fetch threw', {
275
+ error: error instanceof Error ? error.message : String(error),
276
+ url: archiveUrl,
277
+ });
278
+ return { kind: 'failed', retryable: true };
279
+ }
280
+ if (response.status === 304 && this.state?.channel === channel) {
281
+ await touchArchiveFile(path.join(this.cacheDir, ARCHIVE_FILENAME));
282
+ this.state = { ...this.state, lastFetched: Date.now() };
283
+ return { kind: 'not-modified' };
284
+ }
285
+ if (response.status === 404) {
286
+ return { kind: 'not-found' };
287
+ }
288
+ if (!response.ok) {
289
+ this.logger?.warn('[builder-templates] archive fetch returned non-OK', {
290
+ status: response.status,
291
+ url: archiveUrl,
292
+ });
293
+ return { kind: 'failed', retryable: isRetryableStatus(response.status) };
294
+ }
295
+ const buffer = Buffer.from(await response.arrayBuffer());
296
+ const actualSha = sha256Hex(buffer);
297
+ const expectedSha = await this.fetchSha256Sidecar(channel);
298
+ if (expectedSha && expectedSha !== actualSha) {
299
+ this.logger?.warn('[builder-templates] sha256 mismatch on downloaded archive, rejecting', {
300
+ expected: expectedSha,
301
+ actual: actualSha,
302
+ url: archiveUrl,
303
+ });
304
+ return { kind: 'failed', retryable: false };
305
+ }
306
+ const etag = normaliseEtag(response.headers.get('etag'));
307
+ return {
308
+ kind: 'fetched',
309
+ bundle: {
310
+ bundle: { archive: buffer, version: etag },
311
+ sha256: actualSha,
312
+ },
313
+ };
314
+ }
315
+ async fetchSha256Sidecar(channel) {
316
+ const sha256Url = this.sha256UrlFor(channel);
317
+ try {
318
+ const response = await fetch(sha256Url, {
319
+ signal: AbortSignal.timeout(this.fetchTimeoutMs),
320
+ });
321
+ if (response.status === 404) {
322
+ this.logger?.warn('[builder-templates] sha256 sidecar missing — proceeding without integrity check', { url: sha256Url });
323
+ return null;
324
+ }
325
+ if (!response.ok) {
326
+ this.logger?.warn('[builder-templates] sha256 sidecar fetch returned non-OK — proceeding without integrity check', { status: response.status, url: sha256Url });
327
+ return null;
328
+ }
329
+ return parseSha256(await response.text());
330
+ }
331
+ catch (error) {
332
+ this.logger?.warn('[builder-templates] sha256 sidecar fetch threw — proceeding without integrity check', {
333
+ error: error instanceof Error ? error.message : String(error),
334
+ url: sha256Url,
335
+ });
336
+ return null;
337
+ }
338
+ }
339
+ async persist(buffer, etag, sha256, channel) {
340
+ if (!buffer)
341
+ return;
342
+ await fsp.mkdir(this.cacheDir, { recursive: true });
343
+ if (etag) {
344
+ await atomicWriteFile(path.join(this.cacheDir, ETAG_FILENAME), etag);
345
+ }
346
+ else {
347
+ await unlinkIfExists(path.join(this.cacheDir, ETAG_FILENAME));
348
+ }
349
+ if (sha256) {
350
+ await atomicWriteFile(path.join(this.cacheDir, SHA256_FILENAME), sha256);
351
+ }
352
+ else {
353
+ await unlinkIfExists(path.join(this.cacheDir, SHA256_FILENAME));
354
+ }
355
+ await atomicWriteFile(path.join(this.cacheDir, CHANNEL_FILENAME), channel);
356
+ await atomicWriteFile(path.join(this.cacheDir, ARCHIVE_FILENAME), buffer);
357
+ }
358
+ }
359
+ exports.BuilderTemplatesService = BuilderTemplatesService;
360
+ function sdkVersionToPrefix(sdkVersion) {
361
+ const match = sdkVersion.match(/^(\d+)\.(\d+)/);
362
+ if (!match)
363
+ return 'latest';
364
+ return `v${match[1]}.${match[2]}`;
365
+ }
366
+ function normaliseEtag(raw) {
367
+ if (!raw)
368
+ return null;
369
+ const trimmed = raw.trim();
370
+ if (!trimmed)
371
+ return null;
372
+ return trimmed;
373
+ }
374
+ function sha256Hex(buffer) {
375
+ return (0, node_crypto_1.createHash)('sha256').update(buffer).digest('hex');
376
+ }
377
+ function parseSha256(raw) {
378
+ const first = raw.trim().split(/\s+/, 1)[0];
379
+ if (!first || !/^[0-9a-fA-F]{64}$/.test(first))
380
+ return null;
381
+ return first.toLowerCase();
382
+ }
383
+ function isRetryableStatus(status) {
384
+ if (status >= 500)
385
+ return true;
386
+ return status === 408 || status === 429;
387
+ }
388
+ async function sleep(ms) {
389
+ await new Promise((resolve) => setTimeout(resolve, ms));
390
+ }
391
+ async function atomicWriteFile(target, contents) {
392
+ const tmp = `${target}.tmp-${process.pid}-${Date.now()}`;
393
+ try {
394
+ await fsp.writeFile(tmp, contents);
395
+ await fsp.rename(tmp, target);
396
+ }
397
+ catch (error) {
398
+ try {
399
+ await fsp.unlink(tmp);
400
+ }
401
+ catch {
402
+ }
403
+ throw error;
404
+ }
405
+ }
406
+ async function unlinkIfExists(target) {
407
+ try {
408
+ await fsp.unlink(target);
409
+ }
410
+ catch {
411
+ }
412
+ }
413
+ async function touchArchiveFile(target) {
414
+ const now = new Date();
415
+ try {
416
+ await fsp.utimes(target, now, now);
417
+ }
418
+ catch {
419
+ }
420
+ }
421
+ function builderTemplatesOptionsFromEnv({ logger, } = {}) {
422
+ const url = process.env.N8N_INSTANCE_AI_TEMPLATES_URL;
423
+ const hoursRaw = process.env.N8N_INSTANCE_AI_TEMPLATES_REFRESH_HOURS;
424
+ const disabled = process.env.N8N_INSTANCE_AI_TEMPLATES_DISABLED;
425
+ const refreshIntervalMs = parseRefreshHoursMs(hoursRaw, logger);
426
+ return {
427
+ ...(url ? { cdnBaseUrl: url } : {}),
428
+ ...(refreshIntervalMs !== null ? { refreshIntervalMs } : {}),
429
+ disabled: disabled === '1' || disabled?.toLowerCase() === 'true',
430
+ };
431
+ }
432
+ function parseRefreshHoursMs(raw, logger) {
433
+ if (raw === undefined || raw === '')
434
+ return null;
435
+ const hours = Number(raw);
436
+ if (!Number.isFinite(hours) || hours <= 0) {
437
+ logger?.warn('[builder-templates] ignoring invalid N8N_INSTANCE_AI_TEMPLATES_REFRESH_HOURS, using default', { value: raw });
438
+ return null;
439
+ }
440
+ return hours * 60 * 60 * 1000;
441
+ }
442
+ //# sourceMappingURL=builder-templates-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-templates-service.js","sourceRoot":"","sources":["../../src/workspace/builder-templates-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { Workspace, LocalSandbox } from '@mastra/core/workspace';
2
- import { DaytonaSandbox } from '@mastra/daytona';
1
+ import { Workspace } from '@n8n/agents';
2
+ import type { ErrorReporter, Logger } from '../logger';
3
+ import { DaytonaSandbox } from './daytona-sandbox';
4
+ import { LocalSandbox } from './local-sandbox';
3
5
  import { N8nSandboxServiceSandbox } from './n8n-sandbox-sandbox';
4
6
  export type SandboxProvider = 'daytona' | 'local' | 'n8n-sandbox';
5
7
  interface SandboxConfigBase {
@@ -12,12 +14,18 @@ interface DisabledSandboxConfig extends SandboxConfigBase {
12
14
  interface DaytonaSandboxConfig extends SandboxConfigBase {
13
15
  enabled: true;
14
16
  provider: 'daytona';
17
+ id?: string;
18
+ name?: string;
19
+ labels?: Record<string, string>;
15
20
  daytonaApiUrl?: string;
16
21
  daytonaApiKey?: string;
17
22
  image?: string;
18
23
  n8nVersion?: string;
24
+ namePrefix?: string;
19
25
  createTimeoutSeconds?: number;
20
26
  getAuthToken?: () => Promise<string>;
27
+ refreshSkewMs?: number;
28
+ logger?: Logger;
21
29
  }
22
30
  interface LocalSandboxConfig extends SandboxConfigBase {
23
31
  enabled: true;
@@ -30,6 +38,11 @@ interface N8nSandboxConfig extends SandboxConfigBase {
30
38
  apiKey?: string;
31
39
  }
32
40
  export type SandboxConfig = DisabledSandboxConfig | DaytonaSandboxConfig | LocalSandboxConfig | N8nSandboxConfig;
33
- export declare function createSandbox(config: SandboxConfig): Promise<DaytonaSandbox | LocalSandbox | N8nSandboxServiceSandbox | undefined>;
41
+ export interface CreateSandboxOptions {
42
+ logger?: Logger;
43
+ errorReporter?: ErrorReporter;
44
+ useSnapshotFallback?: boolean;
45
+ }
46
+ export declare function createSandbox(config: SandboxConfig, options?: CreateSandboxOptions): Promise<DaytonaSandbox | LocalSandbox | N8nSandboxServiceSandbox | undefined>;
34
47
  export declare function createWorkspace(sandbox: DaytonaSandbox | LocalSandbox | N8nSandboxServiceSandbox | undefined): Workspace | undefined;
35
48
  export {};
@@ -2,22 +2,54 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSandbox = createSandbox;
4
4
  exports.createWorkspace = createWorkspace;
5
- const workspace_1 = require("@mastra/core/workspace");
6
- const daytona_1 = require("@mastra/daytona");
5
+ const agents_1 = require("@n8n/agents");
7
6
  const daytona_filesystem_1 = require("./daytona-filesystem");
7
+ const daytona_sandbox_1 = require("./daytona-sandbox");
8
+ const lazy_daytona_1 = require("./lazy-daytona");
9
+ const local_filesystem_1 = require("./local-filesystem");
10
+ const local_sandbox_1 = require("./local-sandbox");
8
11
  const n8n_sandbox_filesystem_1 = require("./n8n-sandbox-filesystem");
9
12
  const n8n_sandbox_sandbox_1 = require("./n8n-sandbox-sandbox");
10
- async function createSandbox(config) {
13
+ const snapshot_manager_1 = require("./snapshot-manager");
14
+ const NOOP_LOGGER = {
15
+ info: () => { },
16
+ warn: () => { },
17
+ error: () => { },
18
+ debug: () => { },
19
+ };
20
+ async function createSandbox(config, options = {}) {
11
21
  if (!config.enabled)
12
22
  return undefined;
13
23
  if (config.provider === 'daytona') {
14
- const apiKey = config.getAuthToken ? await config.getAuthToken() : config.daytonaApiKey;
15
- return new daytona_1.DaytonaSandbox({
16
- apiKey,
24
+ const mode = config.getAuthToken ? 'proxy' : 'direct';
25
+ const logger = options.logger ?? config.logger;
26
+ const snapshotManager = options.useSnapshotFallback
27
+ ? new snapshot_manager_1.SnapshotManager(config.image, logger ?? NOOP_LOGGER, config.n8nVersion, options.errorReporter)
28
+ : undefined;
29
+ const snapshot = snapshotManager && mode === 'direct'
30
+ ? await snapshotManager.ensureSnapshot(new ((0, lazy_daytona_1.loadDaytona)().Daytona)({
31
+ apiKey: config.daytonaApiKey,
32
+ apiUrl: config.daytonaApiUrl,
33
+ }), mode)
34
+ : await snapshotManager?.ensureSnapshot(undefined, mode);
35
+ const image = snapshotManager ? await snapshotManager.ensureImage() : config.image;
36
+ return new daytona_sandbox_1.DaytonaSandbox({
37
+ id: config.id,
38
+ name: config.name,
39
+ apiKey: config.getAuthToken ? undefined : config.daytonaApiKey,
40
+ getAuthToken: config.getAuthToken,
41
+ refreshSkewMs: config.refreshSkewMs,
42
+ logger,
17
43
  apiUrl: config.daytonaApiUrl,
18
- ...(config.image ? { image: config.image } : {}),
44
+ labels: config.labels,
45
+ ...(image ? { image } : {}),
46
+ ...(snapshot ? { snapshot } : {}),
47
+ ephemeral: true,
19
48
  language: 'typescript',
20
49
  timeout: config.timeout ?? 300_000,
50
+ createTimeoutSeconds: config.createTimeoutSeconds ?? 300,
51
+ errorReporter: options.errorReporter,
52
+ createStrategyMode: mode,
21
53
  });
22
54
  }
23
55
  if (config.provider === 'n8n-sandbox') {
@@ -30,28 +62,20 @@ async function createSandbox(config) {
30
62
  if (process.env.NODE_ENV === 'production') {
31
63
  throw new Error('LocalSandbox (provider: "local") is not allowed in production. Use "daytona" provider for isolated sandbox execution.');
32
64
  }
33
- return new workspace_1.LocalSandbox({
65
+ return new local_sandbox_1.LocalSandbox({
34
66
  workingDirectory: './workspace',
35
67
  });
36
68
  }
37
69
  function createWorkspace(sandbox) {
38
70
  if (!sandbox)
39
71
  return undefined;
40
- if (sandbox instanceof workspace_1.LocalSandbox) {
41
- return new workspace_1.Workspace({
42
- sandbox,
43
- filesystem: new workspace_1.LocalFilesystem({ basePath: './workspace' }),
44
- });
72
+ const createWorkspaceWithFilesystem = (filesystem) => new agents_1.Workspace({ sandbox, filesystem });
73
+ if (sandbox instanceof local_sandbox_1.LocalSandbox) {
74
+ return createWorkspaceWithFilesystem(new local_filesystem_1.LocalFilesystem({ basePath: './workspace' }));
45
75
  }
46
76
  if (sandbox instanceof n8n_sandbox_sandbox_1.N8nSandboxServiceSandbox) {
47
- return new workspace_1.Workspace({
48
- sandbox,
49
- filesystem: new n8n_sandbox_filesystem_1.N8nSandboxFilesystem(sandbox),
50
- });
77
+ return createWorkspaceWithFilesystem(new n8n_sandbox_filesystem_1.N8nSandboxFilesystem(sandbox));
51
78
  }
52
- return new workspace_1.Workspace({
53
- sandbox,
54
- filesystem: new daytona_filesystem_1.DaytonaFilesystem(sandbox),
55
- });
79
+ return createWorkspaceWithFilesystem(new daytona_filesystem_1.DaytonaFilesystem(sandbox));
56
80
  }
57
81
  //# sourceMappingURL=create-workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-workspace.js","sourceRoot":"","sources":["../../src/workspace/create-workspace.ts"],"names":[],"mappings":";;AA8DA,sCAoCC;AAMD,0CAuBC;AA/HD,sDAAkF;AAClF,6CAAiD;AAEjD,6DAAyD;AACzD,qEAAgE;AAChE,+DAAiE;AAyD1D,KAAK,UAAU,aAAa,CAClC,MAAqB;IAErB,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAEtC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QACxF,OAAO,IAAI,wBAAc,CAAC;YACzB,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,aAAa;YAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;SAClC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACvC,OAAO,IAAI,8CAAwB,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;SAClC,CAAC,CAAC;IACJ,CAAC;IAID,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACd,uHAAuH,CACvH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,wBAAY,CAAC;QACvB,gBAAgB,EAAE,aAAa;KAC/B,CAAC,CAAC;AACJ,CAAC;AAMD,SAAgB,eAAe,CAC9B,OAA6E;IAE7E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,IAAI,OAAO,YAAY,wBAAY,EAAE,CAAC;QACrC,OAAO,IAAI,qBAAS,CAAC;YACpB,OAAO;YACP,UAAU,EAAE,IAAI,2BAAe,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;SAC5D,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,YAAY,8CAAwB,EAAE,CAAC;QACjD,OAAO,IAAI,qBAAS,CAAC;YACpB,OAAO;YACP,UAAU,EAAE,IAAI,6CAAoB,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,qBAAS,CAAC;QACpB,OAAO;QACP,UAAU,EAAE,IAAI,sCAAiB,CAAC,OAAO,CAAC;KAC1C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-workspace.js","sourceRoot":"","sources":["../../src/workspace/create-workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Daytona } from '@daytonaio/sdk';
2
+ import type { Logger } from '../logger';
3
+ export interface DaytonaAuthManagerOptions {
4
+ apiUrl?: string;
5
+ target?: string;
6
+ staticApiKey?: string;
7
+ getAuthToken?: () => Promise<string>;
8
+ refreshSkewMs?: number;
9
+ logger?: Logger;
10
+ sandboxName?: string;
11
+ now?: () => number;
12
+ }
13
+ export declare class DaytonaAuthManager {
14
+ private readonly options;
15
+ private readonly now;
16
+ private readonly refreshSkewMs;
17
+ private client?;
18
+ private expiresAt;
19
+ private pendingRefresh?;
20
+ private generation;
21
+ constructor(options: DaytonaAuthManagerOptions);
22
+ getClient(): Promise<Daytona>;
23
+ getGeneration(): number;
24
+ private refresh;
25
+ private doRefresh;
26
+ }