@skaile/workspaces 1.10.3 → 1.11.0

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 (122) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/{asset-feeds-BQMXT42Z.js → asset-feeds-2DQJNYTO.js} +4 -4
  3. package/dist/{asset-feeds-BQMXT42Z.js.map → asset-feeds-2DQJNYTO.js.map} +1 -1
  4. package/dist/asset-manager/index.js +1 -1
  5. package/dist/bridge/drivers/claude-sdk.js +1 -1
  6. package/dist/bridge/drivers/codex.js +1 -1
  7. package/dist/bridge/drivers/continue.js +2 -2
  8. package/dist/bridge/drivers/echo.js +8 -6
  9. package/dist/bridge/drivers/echo.js.map +1 -1
  10. package/dist/bridge/drivers/gemini.js +3 -3
  11. package/dist/bridge/drivers/goose.js +2 -2
  12. package/dist/bridge/drivers/omp.js +1 -1
  13. package/dist/bridge/drivers/opencode.js +2 -2
  14. package/dist/bridge/drivers/qwen.js +3 -3
  15. package/dist/bridge/index.js +2 -2
  16. package/dist/bridge/src/drivers/echo.d.ts.map +1 -1
  17. package/dist/bridge/src/drivers/flow-script.d.ts +3 -2
  18. package/dist/bridge/src/drivers/flow-script.d.ts.map +1 -1
  19. package/dist/bridge/src/types.d.ts +7 -0
  20. package/dist/bridge/src/types.d.ts.map +1 -1
  21. package/dist/{chunk-NQD7INSF.js → chunk-25LDSYP4.js} +4 -4
  22. package/dist/{chunk-NQD7INSF.js.map → chunk-25LDSYP4.js.map} +1 -1
  23. package/dist/{chunk-DEYYRFQU.js → chunk-3EBFDMZC.js} +10 -7
  24. package/dist/chunk-3EBFDMZC.js.map +1 -0
  25. package/dist/{chunk-QHU6TM7D.js → chunk-A7GDV5BV.js} +2 -2
  26. package/dist/{chunk-QHU6TM7D.js.map → chunk-A7GDV5BV.js.map} +1 -1
  27. package/dist/{chunk-DFJUCT6V.js → chunk-AT3DUOZD.js} +3 -3
  28. package/dist/{chunk-DFJUCT6V.js.map → chunk-AT3DUOZD.js.map} +1 -1
  29. package/dist/{chunk-5RUKUVKQ.js → chunk-B2RBDYQS.js} +3 -3
  30. package/dist/{chunk-5RUKUVKQ.js.map → chunk-B2RBDYQS.js.map} +1 -1
  31. package/dist/{chunk-7BRSWDKY.js → chunk-D4IYQI4G.js} +6 -6
  32. package/dist/{chunk-7BRSWDKY.js.map → chunk-D4IYQI4G.js.map} +1 -1
  33. package/dist/{chunk-XVWK3VHH.js → chunk-GAA5W4VX.js} +3 -3
  34. package/dist/{chunk-XVWK3VHH.js.map → chunk-GAA5W4VX.js.map} +1 -1
  35. package/dist/{chunk-T5XXWWHT.js → chunk-H5XWVDL4.js} +3 -3
  36. package/dist/{chunk-T5XXWWHT.js.map → chunk-H5XWVDL4.js.map} +1 -1
  37. package/dist/{chunk-4N5XR5DQ.js → chunk-HPGV54O4.js} +12 -3
  38. package/dist/chunk-HPGV54O4.js.map +1 -0
  39. package/dist/{chunk-5RKAGH37.js → chunk-MTNGINBO.js} +9 -8
  40. package/dist/chunk-MTNGINBO.js.map +1 -0
  41. package/dist/{chunk-2QKVA5Y6.js → chunk-SPC3TJPZ.js} +2 -2
  42. package/dist/{chunk-2QKVA5Y6.js.map → chunk-SPC3TJPZ.js.map} +1 -1
  43. package/dist/{chunk-H6ICUWWL.js → chunk-TEU4LMJB.js} +6 -6
  44. package/dist/{chunk-H6ICUWWL.js.map → chunk-TEU4LMJB.js.map} +1 -1
  45. package/dist/{chunk-YODB4IHP.js → chunk-UFGWIXRA.js} +19 -7
  46. package/dist/chunk-UFGWIXRA.js.map +1 -0
  47. package/dist/{chunk-776EVMDG.js → chunk-XZ2ZXULF.js} +4 -4
  48. package/dist/{chunk-776EVMDG.js.map → chunk-XZ2ZXULF.js.map} +1 -1
  49. package/dist/{chunk-MCQHSNA2.js → chunk-YFXTWKCN.js} +5 -5
  50. package/dist/{chunk-MCQHSNA2.js.map → chunk-YFXTWKCN.js.map} +1 -1
  51. package/dist/{chunk-KF3KDVKT.js → chunk-YM5P2P4R.js} +2 -2
  52. package/dist/chunk-YM5P2P4R.js.map +1 -0
  53. package/dist/{chunk-QRHQY4IG.js → chunk-ZBUEGXBO.js} +2 -2
  54. package/dist/{chunk-QRHQY4IG.js.map → chunk-ZBUEGXBO.js.map} +1 -1
  55. package/dist/cli/index.js +29 -29
  56. package/dist/connectors/index.js +3 -3
  57. package/dist/{ensure-sources-WL442SHF.js → ensure-sources-UQRURIW2.js} +4 -4
  58. package/dist/{ensure-sources-WL442SHF.js.map → ensure-sources-UQRURIW2.js.map} +1 -1
  59. package/dist/factory-assets/connectors/box.js +3 -3
  60. package/dist/factory-assets/connectors/deploy.js +3 -3
  61. package/dist/factory-assets/connectors/devserver.js +3 -3
  62. package/dist/factory-assets/connectors/flow/adapter.d.ts +2 -0
  63. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  64. package/dist/factory-assets/connectors/flow/adapter.js +3 -3
  65. package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts +6 -0
  66. package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -1
  67. package/dist/factory-assets/connectors/flow/engine/types.d.ts +9 -0
  68. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -1
  69. package/dist/factory-assets/connectors/flow/engine.js +1 -1
  70. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -1
  71. package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
  72. package/dist/factory-assets/connectors/flow/run-flow.js +4 -4
  73. package/dist/factory-assets/connectors/flow.js +3 -3
  74. package/dist/factory-assets/connectors/git.js +3 -3
  75. package/dist/factory-assets/connectors/gmail.js +3 -3
  76. package/dist/factory-assets/connectors/googledrive.js +3 -3
  77. package/dist/factory-assets/connectors/local.js +3 -3
  78. package/dist/factory-assets/connectors/mattermost.js +3 -3
  79. package/dist/factory-assets/connectors/memory.js +3 -3
  80. package/dist/factory-assets/connectors/minio.js +3 -3
  81. package/dist/factory-assets/connectors/postgres.js +3 -3
  82. package/dist/factory-assets/connectors/s3.js +3 -3
  83. package/dist/factory-assets/connectors/sharepoint.js +3 -3
  84. package/dist/factory-assets/connectors/sqlite.js +3 -3
  85. package/dist/factory-assets/connectors/static-server.js +3 -3
  86. package/dist/factory-assets/connectors/tunnel.js +3 -3
  87. package/dist/factory-assets/connectors/webdav.js +3 -3
  88. package/dist/factory-assets/connectors/xstate-store.js +3 -3
  89. package/dist/factory-assets/connectors/xstate.js +3 -3
  90. package/dist/{flows-RR6R3WBL.js → flows-TIUWM7SZ.js} +3 -3
  91. package/dist/{flows-RR6R3WBL.js.map → flows-TIUWM7SZ.js.map} +1 -1
  92. package/dist/{helpers-AE7TFRJD.js → helpers-23SAM2P6.js} +4 -4
  93. package/dist/{helpers-AE7TFRJD.js.map → helpers-23SAM2P6.js.map} +1 -1
  94. package/dist/{library-publish-V4L2M5VY.js → library-publish-5BXJMSIR.js} +7 -7
  95. package/dist/{library-publish-V4L2M5VY.js.map → library-publish-5BXJMSIR.js.map} +1 -1
  96. package/dist/{open-library-KPK6NKIX.js → open-library-WV7GNUHL.js} +6 -6
  97. package/dist/{open-library-KPK6NKIX.js.map → open-library-WV7GNUHL.js.map} +1 -1
  98. package/dist/{project-NIFONZRU.js → project-CDUJVKCN.js} +5 -5
  99. package/dist/{project-NIFONZRU.js.map → project-CDUJVKCN.js.map} +1 -1
  100. package/dist/runner/index.js +7 -7
  101. package/dist/runner/src/serve.d.ts.map +1 -1
  102. package/dist/sdk/asset-manager.js +1 -1
  103. package/dist/sdk/bridge.js +2 -2
  104. package/dist/sdk/flow.js +1 -1
  105. package/dist/sdk/index.js +7 -7
  106. package/dist/sdk/runner.js +7 -7
  107. package/dist/{setup-M6QZBZSE.js → setup-RN2M4VOG.js} +4 -4
  108. package/dist/{setup-M6QZBZSE.js.map → setup-RN2M4VOG.js.map} +1 -1
  109. package/dist/{source-5IAXOWCU.js → source-7JHYBOFS.js} +7 -7
  110. package/dist/{source-5IAXOWCU.js.map → source-7JHYBOFS.js.map} +1 -1
  111. package/dist/{source-manifest-publish-UJM6D3Y7.js → source-manifest-publish-II7N6E2P.js} +8 -8
  112. package/dist/{source-manifest-publish-UJM6D3Y7.js.map → source-manifest-publish-II7N6E2P.js.map} +1 -1
  113. package/dist/tui/index.js +7 -7
  114. package/dist/workspace-plugin/adapters/mcp.js +1 -1
  115. package/dist/workspace-plugin/adapters/omp.js +3 -3
  116. package/dist/workspace-plugin/index.js +1 -1
  117. package/package.json +1 -1
  118. package/dist/chunk-4N5XR5DQ.js.map +0 -1
  119. package/dist/chunk-5RKAGH37.js.map +0 -1
  120. package/dist/chunk-DEYYRFQU.js.map +0 -1
  121. package/dist/chunk-KF3KDVKT.js.map +0 -1
  122. package/dist/chunk-YODB4IHP.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { resolveAuthRef } from './chunk-Y6FV73IH.js';
2
2
  import { pluginRegistry } from './chunk-6E6PKKAD.js';
3
- import { computeFlowStateFromSnapshots } from './chunk-4N5XR5DQ.js';
4
- import { renderStimulusPrompt } from './chunk-DEYYRFQU.js';
3
+ import { computeFlowStateFromSnapshots } from './chunk-HPGV54O4.js';
4
+ import { renderStimulusPrompt } from './chunk-3EBFDMZC.js';
5
5
  import { computeStimulus } from './chunk-IFGTRL2I.js';
6
6
  import { portableSpawn } from './chunk-5NZ56R63.js';
7
7
  import { createLogger } from './chunk-JB35MVBN.js';
@@ -6976,6 +6976,9 @@ function findNode(flowDef, nodeId) {
6976
6976
  function isOptional(flowDef, nodeId) {
6977
6977
  return findNode(flowDef, nodeId).data?.optional === true;
6978
6978
  }
6979
+ function isMandatoryGate(flowDef, nodeId) {
6980
+ return findNode(flowDef, nodeId).data?.approval?.mandatory === true;
6981
+ }
6979
6982
  var FlowAdapter = class extends AbstractConnector {
6980
6983
  name = "flow";
6981
6984
  mountable = false;
@@ -7157,7 +7160,7 @@ var FlowAdapter = class extends AbstractConnector {
7157
7160
  },
7158
7161
  {
7159
7162
  name: "complete_node",
7160
- description: "Mark a node as complete with structured output. Requires `awaiting_approval` with an `approved` decision, OR `running` when autonomous mode is on.",
7163
+ description: "Mark a node as complete with structured output. Requires `awaiting_approval` with an `approved` decision, OR `running` when autonomous mode is on. Mandatory approval gates always require the approved decision \u2014 autonomous mode cannot skip them.",
7161
7164
  accessLevel: "write",
7162
7165
  args: [
7163
7166
  { name: "nodeId", description: "Node ID to complete", type: "string", required: true },
@@ -7547,11 +7550,12 @@ var FlowAdapter = class extends AbstractConnector {
7547
7550
  const node = s.execution.nodes[nodeId];
7548
7551
  assertLegal(node, `node not in execution: ${nodeId}`);
7549
7552
  const autonomous = s.execution.autonomousMode;
7553
+ const mandatory = isMandatoryGate(s.flowDef, nodeId);
7550
7554
  const approvedPrior = node.status === "awaiting_approval" && node.approval?.decision === "approved";
7551
- const runningAutonomous = node.status === "running" && autonomous;
7555
+ const runningAutonomous = node.status === "running" && autonomous && !mandatory;
7552
7556
  assertLegal(
7553
7557
  approvedPrior || runningAutonomous,
7554
- `complete_node requires awaiting_approval+approved OR running+autonomous; node is ${node.status}${node.approval?.decision ? ` with approval ${node.approval.decision}` : ""}, autonomous=${autonomous}`
7558
+ mandatory && node.status === "running" ? `complete_node blocked: node ${nodeId} is a mandatory approval gate \u2014 call request_approval and wait for an approved decision (autonomous mode cannot skip it)` : `complete_node requires awaiting_approval+approved OR running+autonomous; node is ${node.status}${node.approval?.decision ? ` with approval ${node.approval.decision}` : ""}, autonomous=${autonomous}`
7555
7559
  );
7556
7560
  s.execution.nodes[nodeId] = {
7557
7561
  ...node,
@@ -7566,6 +7570,10 @@ var FlowAdapter = class extends AbstractConnector {
7566
7570
  return this.mutate(handle, (s) => {
7567
7571
  const node = s.execution.nodes[nodeId];
7568
7572
  assertLegal(node, `node not in execution: ${nodeId}`);
7573
+ assertLegal(
7574
+ !isMandatoryGate(s.flowDef, nodeId),
7575
+ `cannot skip node ${nodeId}: it is a mandatory approval gate \u2014 call request_approval and wait for an approved decision`
7576
+ );
7569
7577
  assertLegal(isOptional(s.flowDef, nodeId), `cannot skip required node ${nodeId}`);
7570
7578
  s.execution.nodes[nodeId] = {
7571
7579
  ...node,
@@ -7709,6 +7717,10 @@ var FlowAdapter = class extends AbstractConnector {
7709
7717
  getExecution(handle) {
7710
7718
  return this.s(handle).execution;
7711
7719
  }
7720
+ /** Node IDs marked as mandatory approval gates (`data.approval.mandatory`). */
7721
+ getMandatoryGates(handle) {
7722
+ return this.s(handle).flowDef.nodes.filter((n) => n.data?.approval?.mandatory === true).map((n) => n.id);
7723
+ }
7712
7724
  // ── Private helpers ──
7713
7725
  s(handle) {
7714
7726
  return handle.state;
@@ -7856,5 +7868,5 @@ function createConnector() {
7856
7868
  }
7857
7869
 
7858
7870
  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, 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 };
7859
- //# sourceMappingURL=chunk-YODB4IHP.js.map
7860
- //# sourceMappingURL=chunk-YODB4IHP.js.map
7871
+ //# sourceMappingURL=chunk-UFGWIXRA.js.map
7872
+ //# sourceMappingURL=chunk-UFGWIXRA.js.map