@skaile/workspaces 3.3.0 → 3.4.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 (207) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/dist/{asset-feeds-AGAH5OHC.js → asset-feeds-SILUSNAL.js} +11 -11
  3. package/dist/{asset-feeds-AGAH5OHC.js.map → asset-feeds-SILUSNAL.js.map} +1 -1
  4. package/dist/asset-manager/catalog-deployer.js +7 -7
  5. package/dist/asset-manager/index.js +10 -10
  6. package/dist/asset-manager/installer.js +7 -7
  7. package/dist/bridge/drivers/claude-sdk.js +8 -8
  8. package/dist/bridge/drivers/codex.js +3 -3
  9. package/dist/bridge/drivers/continue.js +4 -4
  10. package/dist/bridge/drivers/echo.js +3 -3
  11. package/dist/bridge/drivers/gemini.js +5 -5
  12. package/dist/bridge/drivers/goose.js +4 -4
  13. package/dist/bridge/drivers/omp.js +3 -3
  14. package/dist/bridge/drivers/opencode.js +4 -4
  15. package/dist/bridge/drivers/qwen.js +5 -5
  16. package/dist/bridge/index.js +9 -9
  17. package/dist/{chunk-4GJLRYMB.js → chunk-33ZEIMFJ.js} +3 -3
  18. package/dist/{chunk-4GJLRYMB.js.map → chunk-33ZEIMFJ.js.map} +1 -1
  19. package/dist/{chunk-7GOCNYUV.js → chunk-3A5IKBHQ.js} +47 -47
  20. package/dist/{chunk-7GOCNYUV.js.map → chunk-3A5IKBHQ.js.map} +1 -1
  21. package/dist/{chunk-ZNIHTT22.js → chunk-3UU3D2Q3.js} +5 -5
  22. package/dist/{chunk-ZNIHTT22.js.map → chunk-3UU3D2Q3.js.map} +1 -1
  23. package/dist/{chunk-E5S2WGTS.js → chunk-4GYL5TCP.js} +103 -33
  24. package/dist/chunk-4GYL5TCP.js.map +1 -0
  25. package/dist/{chunk-CZZRDYT4.js → chunk-4VTBZ2MF.js} +4 -4
  26. package/dist/{chunk-CZZRDYT4.js.map → chunk-4VTBZ2MF.js.map} +1 -1
  27. package/dist/{chunk-VT6HDD2L.js → chunk-4YYJV6TW.js} +3 -3
  28. package/dist/{chunk-VT6HDD2L.js.map → chunk-4YYJV6TW.js.map} +1 -1
  29. package/dist/{chunk-S6GKHEMN.js → chunk-5JP7ZF5I.js} +10 -10
  30. package/dist/{chunk-S6GKHEMN.js.map → chunk-5JP7ZF5I.js.map} +1 -1
  31. package/dist/{chunk-U5POE4BA.js → chunk-5Q7HA4JP.js} +3 -3
  32. package/dist/{chunk-U5POE4BA.js.map → chunk-5Q7HA4JP.js.map} +1 -1
  33. package/dist/{chunk-I7MKEZ6J.js → chunk-7EUW3BBR.js} +3 -3
  34. package/dist/{chunk-I7MKEZ6J.js.map → chunk-7EUW3BBR.js.map} +1 -1
  35. package/dist/{chunk-P43HBWKK.js → chunk-AZPXCHDK.js} +36 -7
  36. package/dist/chunk-AZPXCHDK.js.map +1 -0
  37. package/dist/{chunk-PKEAYYEJ.js → chunk-BCXI27BH.js} +219 -4
  38. package/dist/chunk-BCXI27BH.js.map +1 -0
  39. package/dist/{chunk-PRKLFKNC.js → chunk-BSPOMUA7.js} +4 -4
  40. package/dist/{chunk-PRKLFKNC.js.map → chunk-BSPOMUA7.js.map} +1 -1
  41. package/dist/{chunk-MWFYXUFK.js → chunk-G2CXWUO5.js} +4 -4
  42. package/dist/{chunk-MWFYXUFK.js.map → chunk-G2CXWUO5.js.map} +1 -1
  43. package/dist/{chunk-BEAIJRVF.js → chunk-GHWJHOYX.js} +4 -4
  44. package/dist/{chunk-BEAIJRVF.js.map → chunk-GHWJHOYX.js.map} +1 -1
  45. package/dist/{chunk-5FLEP4X6.js → chunk-HBF7A7JB.js} +45 -5
  46. package/dist/chunk-HBF7A7JB.js.map +1 -0
  47. package/dist/{chunk-MJ77WSJC.js → chunk-HIFLMPNV.js} +6 -6
  48. package/dist/{chunk-MJ77WSJC.js.map → chunk-HIFLMPNV.js.map} +1 -1
  49. package/dist/{chunk-KPZZI2KG.js → chunk-HV3ZCE4M.js} +3 -3
  50. package/dist/{chunk-KPZZI2KG.js.map → chunk-HV3ZCE4M.js.map} +1 -1
  51. package/dist/{chunk-Q26C5GLO.js → chunk-IP3GXHOB.js} +3 -4
  52. package/dist/chunk-IP3GXHOB.js.map +1 -0
  53. package/dist/{chunk-RRCNMURJ.js → chunk-J7HJUX4W.js} +29 -21
  54. package/dist/chunk-J7HJUX4W.js.map +1 -0
  55. package/dist/{chunk-BK3WL3QK.js → chunk-JAHHMZWG.js} +3 -3
  56. package/dist/{chunk-BK3WL3QK.js.map → chunk-JAHHMZWG.js.map} +1 -1
  57. package/dist/{chunk-BOH6AG6Q.js → chunk-KHLEQB4F.js} +47 -37
  58. package/dist/chunk-KHLEQB4F.js.map +1 -0
  59. package/dist/chunk-M5D2QNTY.js +23 -0
  60. package/dist/chunk-M5D2QNTY.js.map +1 -0
  61. package/dist/{chunk-2OCYS5EP.js → chunk-O7WKKINT.js} +4 -4
  62. package/dist/{chunk-2OCYS5EP.js.map → chunk-O7WKKINT.js.map} +1 -1
  63. package/dist/{chunk-3HVASHBF.js → chunk-OCLCDB7G.js} +6 -15
  64. package/dist/chunk-OCLCDB7G.js.map +1 -0
  65. package/dist/{chunk-NU4E7C5I.js → chunk-PW4SJE3X.js} +3 -3
  66. package/dist/{chunk-NU4E7C5I.js.map → chunk-PW4SJE3X.js.map} +1 -1
  67. package/dist/{chunk-O6B3ZZ5S.js → chunk-QAH2DYIP.js} +4 -4
  68. package/dist/{chunk-O6B3ZZ5S.js.map → chunk-QAH2DYIP.js.map} +1 -1
  69. package/dist/{chunk-33GWB3RB.js → chunk-QEQ5I47S.js} +3 -3
  70. package/dist/{chunk-33GWB3RB.js.map → chunk-QEQ5I47S.js.map} +1 -1
  71. package/dist/{chunk-EP7VBFMN.js → chunk-R4BUI5BU.js} +7 -7
  72. package/dist/{chunk-EP7VBFMN.js.map → chunk-R4BUI5BU.js.map} +1 -1
  73. package/dist/{chunk-46LE3GNY.js → chunk-RUFTB7QN.js} +3 -3
  74. package/dist/{chunk-46LE3GNY.js.map → chunk-RUFTB7QN.js.map} +1 -1
  75. package/dist/{chunk-UFY2HFLO.js → chunk-SH572OBN.js} +4 -4
  76. package/dist/{chunk-UFY2HFLO.js.map → chunk-SH572OBN.js.map} +1 -1
  77. package/dist/{chunk-OD3ABXUO.js → chunk-UEH5XAQR.js} +8 -8
  78. package/dist/{chunk-OD3ABXUO.js.map → chunk-UEH5XAQR.js.map} +1 -1
  79. package/dist/{chunk-DYMWJAL4.js → chunk-VQ4P7UYE.js} +3 -3
  80. package/dist/{chunk-DYMWJAL4.js.map → chunk-VQ4P7UYE.js.map} +1 -1
  81. package/dist/{chunk-AM5LFRXJ.js → chunk-WAFHQDLK.js} +3 -3
  82. package/dist/{chunk-AM5LFRXJ.js.map → chunk-WAFHQDLK.js.map} +1 -1
  83. package/dist/{chunk-3KEJ2HJY.js → chunk-WC7Q6GMC.js} +3 -3
  84. package/dist/{chunk-3KEJ2HJY.js.map → chunk-WC7Q6GMC.js.map} +1 -1
  85. package/dist/cli/index.js +145 -170
  86. package/dist/cli/index.js.map +1 -1
  87. package/dist/cli/src/commands/run.d.ts.map +1 -1
  88. package/dist/cli/src/flow-discovery.d.ts +9 -9
  89. package/dist/cli/src/flow-discovery.d.ts.map +1 -1
  90. package/dist/cli/src/paths.d.ts +9 -33
  91. package/dist/cli/src/paths.d.ts.map +1 -1
  92. package/dist/connectors/config.js +7 -7
  93. package/dist/connectors/index.js +12 -12
  94. package/dist/core/index.js +6 -6
  95. package/dist/core/logging.js +2 -2
  96. package/dist/core/manifest.js +2 -2
  97. package/dist/core/runtime-assets.js +4 -4
  98. package/dist/core/src/asset-roots.d.ts +74 -0
  99. package/dist/core/src/asset-roots.d.ts.map +1 -0
  100. package/dist/core/src/index.d.ts +1 -0
  101. package/dist/core/src/index.d.ts.map +1 -1
  102. package/dist/core/src/workspace-config.d.ts +0 -2
  103. package/dist/core/src/workspace-config.d.ts.map +1 -1
  104. package/dist/core/workspace-config.js +3 -3
  105. package/dist/deploy/index.js +6 -6
  106. package/dist/discovery/index.js +3 -3
  107. package/dist/{ensure-sources-L2276FYP.js → ensure-sources-SZABN3WG.js} +13 -13
  108. package/dist/{ensure-sources-L2276FYP.js.map → ensure-sources-SZABN3WG.js.map} +1 -1
  109. package/dist/factory-assets/connectors/box.js +12 -12
  110. package/dist/factory-assets/connectors/deploy.js +12 -12
  111. package/dist/factory-assets/connectors/devserver.js +12 -12
  112. package/dist/factory-assets/connectors/flow/CONNECTOR.md +22 -2
  113. package/dist/factory-assets/connectors/flow/adapter.d.ts +1 -1
  114. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  115. package/dist/factory-assets/connectors/flow/adapter.js +12 -12
  116. package/dist/factory-assets/connectors/flow/engine/index.d.ts +1 -0
  117. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
  118. package/dist/factory-assets/connectors/flow/engine/locate.d.ts +75 -0
  119. package/dist/factory-assets/connectors/flow/engine/locate.d.ts.map +1 -0
  120. package/dist/factory-assets/connectors/flow/engine.js +7 -7
  121. package/dist/factory-assets/connectors/flow/index.d.ts +1 -1
  122. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -1
  123. package/dist/factory-assets/connectors/flow/node-executor.d.ts +23 -3
  124. package/dist/factory-assets/connectors/flow/node-executor.d.ts.map +1 -1
  125. package/dist/factory-assets/connectors/flow/run-flow.d.ts +9 -1
  126. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  127. package/dist/factory-assets/connectors/flow/run-flow.js +14 -14
  128. package/dist/factory-assets/connectors/flow.js +12 -12
  129. package/dist/factory-assets/connectors/git.js +12 -12
  130. package/dist/factory-assets/connectors/gmail.js +12 -12
  131. package/dist/factory-assets/connectors/googledrive.js +12 -12
  132. package/dist/factory-assets/connectors/local.js +12 -12
  133. package/dist/factory-assets/connectors/mattermost.js +12 -12
  134. package/dist/factory-assets/connectors/memory.js +12 -12
  135. package/dist/factory-assets/connectors/minio.js +12 -12
  136. package/dist/factory-assets/connectors/postgres.js +12 -12
  137. package/dist/factory-assets/connectors/s3.js +12 -12
  138. package/dist/factory-assets/connectors/sharepoint.js +12 -12
  139. package/dist/factory-assets/connectors/sqlite.js +12 -12
  140. package/dist/factory-assets/connectors/static-server.js +12 -12
  141. package/dist/factory-assets/connectors/tunnel.js +12 -12
  142. package/dist/factory-assets/connectors/webdav.js +12 -12
  143. package/dist/factory-assets/connectors/xstate-store.js +12 -12
  144. package/dist/factory-assets/connectors/xstate.js +12 -12
  145. package/dist/flows-4PIPK2S6.js +20 -0
  146. package/dist/{flows-7CZKSC64.js.map → flows-4PIPK2S6.js.map} +1 -1
  147. package/dist/{helpers-ZWHB5JHQ.js → helpers-XDIMXDTI.js} +13 -13
  148. package/dist/{helpers-ZWHB5JHQ.js.map → helpers-XDIMXDTI.js.map} +1 -1
  149. package/dist/library/index.js +8 -8
  150. package/dist/library/install.js +6 -6
  151. package/dist/library/src/config.d.ts +6 -6
  152. package/dist/library/src/config.d.ts.map +1 -1
  153. package/dist/{library-publish-CVYFMVGR.js → library-publish-HDYBQF46.js} +17 -17
  154. package/dist/{library-publish-CVYFMVGR.js.map → library-publish-HDYBQF46.js.map} +1 -1
  155. package/dist/{open-library-XB65LU3M.js → open-library-LAUJOTYJ.js} +15 -15
  156. package/dist/{open-library-XB65LU3M.js.map → open-library-LAUJOTYJ.js.map} +1 -1
  157. package/dist/paths-S7UESJKT.js +16 -0
  158. package/dist/{paths-B52KTS7N.js.map → paths-S7UESJKT.js.map} +1 -1
  159. package/dist/{plugin-store-EOP3S7OU.js → plugin-store-5SJX2PRR.js} +8 -8
  160. package/dist/{plugin-store-EOP3S7OU.js.map → plugin-store-5SJX2PRR.js.map} +1 -1
  161. package/dist/{project-E5LKCE7R.js → project-6IW2N3MX.js} +14 -14
  162. package/dist/{project-E5LKCE7R.js.map → project-6IW2N3MX.js.map} +1 -1
  163. package/dist/resolver/index.js +7 -7
  164. package/dist/runner/index.js +17 -17
  165. package/dist/runner/src/compaction/orchestrator.d.ts +14 -2
  166. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  167. package/dist/sdk/asset-manager.js +10 -10
  168. package/dist/sdk/bridge.js +9 -9
  169. package/dist/sdk/core.js +6 -6
  170. package/dist/sdk/flow.js +7 -7
  171. package/dist/sdk/index.js +17 -17
  172. package/dist/sdk/resolver.js +7 -7
  173. package/dist/sdk/runner.js +17 -17
  174. package/dist/sdk/session.js +1 -1
  175. package/dist/session/index.js +1 -1
  176. package/dist/session/src/dispatcher.d.ts +15 -0
  177. package/dist/session/src/dispatcher.d.ts.map +1 -1
  178. package/dist/session/src/workspace-change-digest.d.ts +34 -0
  179. package/dist/session/src/workspace-change-digest.d.ts.map +1 -0
  180. package/dist/{setup-XI7TCIGF.js → setup-YA2QHQ2N.js} +11 -11
  181. package/dist/{setup-XI7TCIGF.js.map → setup-YA2QHQ2N.js.map} +1 -1
  182. package/dist/skills-OBJX3VYG.js +20 -0
  183. package/dist/{skills-5PJ6YVM7.js.map → skills-OBJX3VYG.js.map} +1 -1
  184. package/dist/{source-7BNREKGK.js → source-FIE5KQS2.js} +16 -16
  185. package/dist/{source-7BNREKGK.js.map → source-FIE5KQS2.js.map} +1 -1
  186. package/dist/{source-manifest-publish-JGMHNADH.js → source-manifest-publish-64PTOEP2.js} +18 -18
  187. package/dist/{source-manifest-publish-JGMHNADH.js.map → source-manifest-publish-64PTOEP2.js.map} +1 -1
  188. package/dist/tui/index.js +17 -17
  189. package/dist/types/src/events.d.ts +1 -1
  190. package/dist/types/src/events.d.ts.map +1 -1
  191. package/dist/workspace-plugin/adapters/mcp.js +11 -11
  192. package/dist/workspace-plugin/adapters/omp.js +7 -7
  193. package/dist/workspace-plugin/index.js +3 -3
  194. package/package.json +1 -1
  195. package/dist/chunk-3HVASHBF.js.map +0 -1
  196. package/dist/chunk-5FLEP4X6.js.map +0 -1
  197. package/dist/chunk-6OMKIPIE.js +0 -42
  198. package/dist/chunk-6OMKIPIE.js.map +0 -1
  199. package/dist/chunk-BOH6AG6Q.js.map +0 -1
  200. package/dist/chunk-E5S2WGTS.js.map +0 -1
  201. package/dist/chunk-P43HBWKK.js.map +0 -1
  202. package/dist/chunk-PKEAYYEJ.js.map +0 -1
  203. package/dist/chunk-Q26C5GLO.js.map +0 -1
  204. package/dist/chunk-RRCNMURJ.js.map +0 -1
  205. package/dist/flows-7CZKSC64.js +0 -20
  206. package/dist/paths-B52KTS7N.js +0 -22
  207. package/dist/skills-5PJ6YVM7.js +0 -20
@@ -1,16 +1,16 @@
1
- import { resolveAuthRef } from './chunk-ZNIHTT22.js';
2
- import { EventNormalizer } from './chunk-KPZZI2KG.js';
1
+ import { resolveAuthRef } from './chunk-3UU3D2Q3.js';
2
+ import { EventNormalizer } from './chunk-HV3ZCE4M.js';
3
3
  import { resolveModelTier } from './chunk-V34ZEXSE.js';
4
- import { createDriver } from './chunk-VT6HDD2L.js';
4
+ import { createDriver } from './chunk-4YYJV6TW.js';
5
5
  import { pluginRegistry } from './chunk-6E6PKKAD.js';
6
6
  import { computeStimulus } from './chunk-IFGTRL2I.js';
7
- import { resolveNodeBindings, getConsumedOutputSchema, validateConsumedNodeOutput, appendAttempt, resolveTerminalFailureStatus, remainingActiveExecutionMs, interpolateNodeInstruction, deriveCheckEvidence, computeFlowStateFromSnapshots, availableRouterFrontier, evaluateRouterSelection, routerSelectionOutput, planRouterSkips, unsettledRouterBranchIds, countFailedAttempts, hasAutomaticRetryBudget, persistedRouterSelection } from './chunk-5FLEP4X6.js';
7
+ import { resolveNodeBindings, getConsumedOutputSchema, validateConsumedNodeOutput, appendAttempt, resolveTerminalFailureStatus, remainingActiveExecutionMs, interpolateNodeInstruction, deriveCheckEvidence, computeFlowStateFromSnapshots, availableRouterFrontier, evaluateRouterSelection, routerSelectionOutput, planRouterSkips, unsettledRouterBranchIds, countFailedAttempts, hasAutomaticRetryBudget, persistedRouterSelection } from './chunk-HBF7A7JB.js';
8
8
  import { parseFlowDefinition } from './chunk-B4J6TV4G.js';
9
9
  import { renderSubpromptPrompt, renderStimulusPrompt } from './chunk-HGFKNJA5.js';
10
10
  import { deterministicNodeKindLabel, flowDefaults, isAgentNode, isGateNode, isCheckNode, nodeRequiresApproval, isSubFlowNode, isFunctionNode, isSubpromptNode, nodeInstruction, isRouterNode, isActiveRuntimeNode, nodeIsOptional, nodeLabel, nodeAssets } from './chunk-ELPR5XBG.js';
11
- import { portableSpawn } from './chunk-P43HBWKK.js';
12
- import { withFsDeadline, tryWithFsDeadline, FsDeadlineError, fsDeadlineMs } from './chunk-DYMWJAL4.js';
13
- import { createLogger } from './chunk-7GOCNYUV.js';
11
+ import { portableSpawn } from './chunk-AZPXCHDK.js';
12
+ import { withFsDeadline, tryWithFsDeadline, FsDeadlineError, fsDeadlineMs } from './chunk-VQ4P7UYE.js';
13
+ import { createLogger } from './chunk-3A5IKBHQ.js';
14
14
  import { resolve, relative, sep, isAbsolute, join, dirname } from 'path';
15
15
  import { mkdir, rename, writeFile, readFile, stat, cp, readdir, chmod, realpath } from 'fs/promises';
16
16
  import * as z4 from 'zod';
@@ -346,6 +346,28 @@ function commandFor(node) {
346
346
  return ["python3", "-c", node.run.command];
347
347
  }
348
348
  }
349
+ var ABORT_SIGKILL_GRACE_MS = 2e3;
350
+ function abortError(nodeLabel2) {
351
+ const error = new Error(`${nodeLabel2} was aborted`);
352
+ error.name = "AbortError";
353
+ return error;
354
+ }
355
+ var liveDetachedChildren = /* @__PURE__ */ new Set();
356
+ var shutdownSweepInstalled = false;
357
+ function sweepOnShutdown(child) {
358
+ liveDetachedChildren.add(child);
359
+ void child.exited.then(() => liveDetachedChildren.delete(child));
360
+ if (shutdownSweepInstalled) return;
361
+ shutdownSweepInstalled = true;
362
+ globalThis.process.once("exit", () => {
363
+ for (const live of liveDetachedChildren) {
364
+ try {
365
+ live.kill("SIGKILL");
366
+ } catch {
367
+ }
368
+ }
369
+ });
370
+ }
349
371
  var SessionNodeExecutor = class {
350
372
  workspaceDir;
351
373
  /** Creates an executor scoped to one already-materialized session workspace. */
@@ -353,7 +375,7 @@ var SessionNodeExecutor = class {
353
375
  this.workspaceDir = resolve(options.workspaceDir);
354
376
  }
355
377
  /** Runs one function or check node process with session environment and binding overrides. */
356
- async execute(request) {
378
+ async execute(request, options) {
357
379
  const nodeLabel2 = `${deterministicNodeKindLabel(request.node.run.kind)} node ${request.node.id}`;
358
380
  const cwd = resolve(this.workspaceDir, request.node.run.cwd ?? ".");
359
381
  const workspaceRelative = relative(this.workspaceDir, cwd);
@@ -366,16 +388,35 @@ var SessionNodeExecutor = class {
366
388
  serializeEnvironmentInput(name, value, nodeLabel2)
367
389
  ])
368
390
  );
391
+ const signal = options?.signal;
392
+ if (signal?.aborted) throw abortError(nodeLabel2);
369
393
  const process2 = portableSpawn(commandFor(request.node), {
370
394
  cwd,
371
- env: { ...globalThis.process.env, ...boundEnvironment }
395
+ env: { ...globalThis.process.env, ...boundEnvironment },
396
+ detached: true
372
397
  });
373
- const [stdout, stderr, exitStatus] = await Promise.all([
374
- new Response(process2.stdout).text(),
375
- new Response(process2.stderr).text(),
376
- process2.exited
377
- ]);
378
- return { exitStatus, stdout, stderr };
398
+ sweepOnShutdown(process2);
399
+ let aborted = false;
400
+ let escalation;
401
+ const onAbort = () => {
402
+ aborted = true;
403
+ process2.kill("SIGTERM");
404
+ escalation = setTimeout(() => process2.kill("SIGKILL"), ABORT_SIGKILL_GRACE_MS);
405
+ escalation.unref?.();
406
+ };
407
+ signal?.addEventListener("abort", onAbort, { once: true });
408
+ try {
409
+ const [stdout, stderr, exitStatus] = await Promise.all([
410
+ new Response(process2.stdout).text(),
411
+ new Response(process2.stderr).text(),
412
+ process2.exited
413
+ ]);
414
+ if (aborted) throw abortError(nodeLabel2);
415
+ return { exitStatus, stdout, stderr };
416
+ } finally {
417
+ if (escalation) clearTimeout(escalation);
418
+ signal?.removeEventListener("abort", onAbort);
419
+ }
379
420
  }
380
421
  };
381
422
 
@@ -7584,6 +7625,18 @@ function raceWithTimeout(promise, ms, timeoutMessage) {
7584
7625
  );
7585
7626
  });
7586
7627
  }
7628
+ var ABORTED_ATTEMPT_SETTLE_MS = ABORT_SIGKILL_GRACE_MS + 1e3;
7629
+ function settleWithin(promise, ms) {
7630
+ return new Promise((resolve6) => {
7631
+ const timer = setTimeout(resolve6, ms);
7632
+ timer.unref?.();
7633
+ const settled = () => {
7634
+ clearTimeout(timer);
7635
+ resolve6();
7636
+ };
7637
+ promise.then(settled, settled);
7638
+ });
7639
+ }
7587
7640
  function mergeInteractionHistory(history, interaction) {
7588
7641
  if (!interaction) return history;
7589
7642
  const next = [...history];
@@ -8799,6 +8852,7 @@ var FlowAdapter = class extends AbstractConnector {
8799
8852
  }
8800
8853
  async drainAvailableRuntimeNodes(handle, includeRoutersAndGates) {
8801
8854
  const advancedSubFlows = /* @__PURE__ */ new Set();
8855
+ let abortedAttempt;
8802
8856
  while (true) {
8803
8857
  const state = this.s(handle);
8804
8858
  if (state.execution.status === "cancelled" || state.execution.status === "failed") break;
@@ -8874,7 +8928,7 @@ var FlowAdapter = class extends AbstractConnector {
8874
8928
  state.flowInputOrigins
8875
8929
  );
8876
8930
  subFlowInputOrigins = resolved.origins;
8877
- const runPromise = runner.run({
8931
+ const runPromise2 = runner.run({
8878
8932
  node,
8879
8933
  flowId: node.run.flow,
8880
8934
  inputs: resolved.values,
@@ -8892,10 +8946,10 @@ var FlowAdapter = class extends AbstractConnector {
8892
8946
  }
8893
8947
  });
8894
8948
  result = remainingMs !== void 0 ? await raceWithTimeout(
8895
- runPromise,
8949
+ runPromise2,
8896
8950
  Math.max(0, remainingMs),
8897
8951
  `Sub-flow node ${node.id} timed out after ${timeoutSec}s`
8898
- ) : await runPromise;
8952
+ ) : await runPromise2;
8899
8953
  } catch (error) {
8900
8954
  if (error instanceof NodeTimeoutError) {
8901
8955
  const target = state.inlineOperationTargets.get(node.id);
@@ -9015,17 +9069,17 @@ var FlowAdapter = class extends AbstractConnector {
9015
9069
  interpolateNodeInstruction(instruction, resolved.values),
9016
9070
  outputSchema
9017
9071
  );
9018
- const runPromise = runner.execute({
9072
+ const runPromise2 = runner.execute({
9019
9073
  node,
9020
9074
  prompt,
9021
9075
  inputs: resolved.values,
9022
9076
  inputOrigins: resolved.origins
9023
9077
  });
9024
9078
  const result = subpromptRemainingMs !== void 0 ? await raceWithTimeout(
9025
- runPromise,
9079
+ runPromise2,
9026
9080
  Math.max(0, subpromptRemainingMs),
9027
9081
  `Subprompt node ${node.id} timed out after ${subpromptTimeoutSec}s`
9028
- ) : await runPromise;
9082
+ ) : await runPromise2;
9029
9083
  subpromptOutput = subpromptNodeOutput(node, result.text);
9030
9084
  const validation = validateConsumedNodeOutput(
9031
9085
  state.flowDef,
@@ -9099,6 +9153,12 @@ var FlowAdapter = class extends AbstractConnector {
9099
9153
  continue;
9100
9154
  }
9101
9155
  if (!isFunctionNode(node) && !isCheckNode(node)) continue;
9156
+ if (abortedAttempt) {
9157
+ const settling = abortedAttempt;
9158
+ abortedAttempt = void 0;
9159
+ await settleWithin(settling, ABORTED_ATTEMPT_SETTLE_MS);
9160
+ continue;
9161
+ }
9102
9162
  this.mutate(
9103
9163
  handle,
9104
9164
  (current) => {
@@ -9129,6 +9189,8 @@ var FlowAdapter = class extends AbstractConnector {
9129
9189
  let capturedInputOrigins;
9130
9190
  let checkEvidence;
9131
9191
  let deterministicOutcome;
9192
+ const deterministicAbort = new AbortController();
9193
+ let runPromise;
9132
9194
  try {
9133
9195
  const executor = state.nodeExecutor;
9134
9196
  if (!executor)
@@ -9140,11 +9202,10 @@ var FlowAdapter = class extends AbstractConnector {
9140
9202
  state.flowInputOrigins
9141
9203
  );
9142
9204
  capturedInputOrigins = resolved.origins;
9143
- const runPromise = executor.execute({
9144
- node,
9145
- inputs: resolved.values,
9146
- inputOrigins: resolved.origins
9147
- });
9205
+ runPromise = executor.execute(
9206
+ { node, inputs: resolved.values, inputOrigins: resolved.origins },
9207
+ { signal: deterministicAbort.signal }
9208
+ );
9148
9209
  const result = deterministicRemainingMs !== void 0 ? await raceWithTimeout(
9149
9210
  runPromise,
9150
9211
  Math.max(0, deterministicRemainingMs),
@@ -9193,12 +9254,21 @@ var FlowAdapter = class extends AbstractConnector {
9193
9254
  deterministicOutcome = { kind: "success" };
9194
9255
  }
9195
9256
  } catch (error) {
9196
- deterministicOutcome = error instanceof NodeTimeoutError ? { kind: "failure", message: error.message } : {
9197
- kind: "failure",
9198
- message: `${deterministicKindLabel} node ${node.id} failed: ${error instanceof Error ? error.message : String(error)}`
9199
- };
9257
+ if (error instanceof NodeTimeoutError) {
9258
+ deterministicAbort.abort();
9259
+ abortedAttempt = runPromise;
9260
+ deterministicOutcome = { kind: "failure", message: error.message };
9261
+ } else {
9262
+ deterministicOutcome = {
9263
+ kind: "failure",
9264
+ message: `${deterministicKindLabel} node ${node.id} failed: ${error instanceof Error ? error.message : String(error)}`
9265
+ };
9266
+ }
9267
+ }
9268
+ if (this.s(handle).executionGeneration !== deterministicExecutionGeneration) {
9269
+ deterministicAbort.abort();
9270
+ break;
9200
9271
  }
9201
- if (this.s(handle).executionGeneration !== deterministicExecutionGeneration) break;
9202
9272
  if (deterministicOutcome.kind === "success") {
9203
9273
  this.mutate(
9204
9274
  handle,
@@ -9978,5 +10048,5 @@ function createConnector() {
9978
10048
  }
9979
10049
 
9980
10050
  export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, BoxConnector, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, DeployConnector, DevServerConnector, FlowAdapter, GitConnector, GmailConnector, GoogleDriveConnector, LocalConnector, LogBuffer, ManagedGitconfigCollisionError, MattermostConnector, MemoryConnector, MinIOConnector, PortPool, PostgresConnector, S3Connector, SQLiteConnector, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, SharePointConnector, StaticServerConnector, TunnelConnector, WebDAVConnector, XStateConnector, XStateStoreConnector, __test, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, buildSdkFlowTools, createConnector, createConnector10, createConnector11, createConnector12, createConnector13, createConnector14, createConnector15, createConnector16, createConnector17, createConnector18, createConnector19, createConnector2, createConnector20, createConnector3, createConnector4, createConnector5, createConnector6, createConnector7, createConnector8, createConnector9, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, readGitSyncStatus, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock };
9981
- //# sourceMappingURL=chunk-E5S2WGTS.js.map
9982
- //# sourceMappingURL=chunk-E5S2WGTS.js.map
10051
+ //# sourceMappingURL=chunk-4GYL5TCP.js.map
10052
+ //# sourceMappingURL=chunk-4GYL5TCP.js.map