@skaile/workspaces 2.3.0 → 2.4.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 (197) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +32 -13
  3. package/dist/{asset-feeds-DKNYRLED.js → asset-feeds-4AWAT5PW.js} +6 -6
  4. package/dist/{asset-feeds-DKNYRLED.js.map → asset-feeds-4AWAT5PW.js.map} +1 -1
  5. package/dist/asset-manager/catalog-deployer.js +1 -1
  6. package/dist/asset-manager/index.js +5 -5
  7. package/dist/asset-manager/installer.js +2 -2
  8. package/dist/bridge/drivers/claude-sdk.js +2 -2
  9. package/dist/bridge/drivers/codex.js +1 -1
  10. package/dist/bridge/drivers/continue.js +2 -2
  11. package/dist/bridge/drivers/echo.js +1 -1
  12. package/dist/bridge/drivers/gemini.js +3 -3
  13. package/dist/bridge/drivers/goose.js +2 -2
  14. package/dist/bridge/drivers/omp.js +1 -1
  15. package/dist/bridge/drivers/opencode.js +2 -2
  16. package/dist/bridge/drivers/qwen.js +3 -3
  17. package/dist/bridge/index.js +2 -2
  18. package/dist/{chunk-CERGXDGG.js → chunk-2OCYS5EP.js} +3 -3
  19. package/dist/{chunk-CERGXDGG.js.map → chunk-2OCYS5EP.js.map} +1 -1
  20. package/dist/{chunk-TAJBFYCT.js → chunk-2QVPCZTL.js} +81 -35
  21. package/dist/chunk-2QVPCZTL.js.map +1 -0
  22. package/dist/{chunk-W3Q37HEF.js → chunk-3HVASHBF.js} +3 -3
  23. package/dist/{chunk-W3Q37HEF.js.map → chunk-3HVASHBF.js.map} +1 -1
  24. package/dist/{chunk-UQ3RJKDD.js → chunk-4O2RAXKJ.js} +179 -52
  25. package/dist/chunk-4O2RAXKJ.js.map +1 -0
  26. package/dist/{chunk-DZM33LQO.js → chunk-4QROZZ5Z.js} +15 -3
  27. package/dist/chunk-4QROZZ5Z.js.map +1 -0
  28. package/dist/{chunk-G2ILW47R.js → chunk-57RFYEVM.js} +3 -3
  29. package/dist/{chunk-G2ILW47R.js.map → chunk-57RFYEVM.js.map} +1 -1
  30. package/dist/{chunk-LD6YGIKZ.js → chunk-6BV5NAPD.js} +60 -21
  31. package/dist/chunk-6BV5NAPD.js.map +1 -0
  32. package/dist/{chunk-BLWNI5KW.js → chunk-AKVAZ5CB.js} +2 -2
  33. package/dist/{chunk-BLWNI5KW.js.map → chunk-AKVAZ5CB.js.map} +1 -1
  34. package/dist/{chunk-BFIK6NPZ.js → chunk-AM5LFRXJ.js} +3 -3
  35. package/dist/{chunk-BFIK6NPZ.js.map → chunk-AM5LFRXJ.js.map} +1 -1
  36. package/dist/{chunk-PTS3QN5P.js → chunk-EEHOMCRU.js} +1021 -115
  37. package/dist/chunk-EEHOMCRU.js.map +1 -0
  38. package/dist/{chunk-CXX3UGJP.js → chunk-ENBTXMPL.js} +7 -7
  39. package/dist/{chunk-CXX3UGJP.js.map → chunk-ENBTXMPL.js.map} +1 -1
  40. package/dist/{chunk-FB4GPWYC.js → chunk-FKBQRV4J.js} +57 -16
  41. package/dist/chunk-FKBQRV4J.js.map +1 -0
  42. package/dist/{chunk-X6BPVUV2.js → chunk-G5V6YCHF.js} +3 -3
  43. package/dist/{chunk-X6BPVUV2.js.map → chunk-G5V6YCHF.js.map} +1 -1
  44. package/dist/{chunk-WG3L5VHF.js → chunk-GM2X24Q6.js} +2 -2
  45. package/dist/{chunk-WG3L5VHF.js.map → chunk-GM2X24Q6.js.map} +1 -1
  46. package/dist/{chunk-7IRH7MGV.js → chunk-IHX2SN35.js} +9 -9
  47. package/dist/{chunk-7IRH7MGV.js.map → chunk-IHX2SN35.js.map} +1 -1
  48. package/dist/{chunk-3F54MH2T.js → chunk-JAFEMG7W.js} +4 -4
  49. package/dist/{chunk-3F54MH2T.js.map → chunk-JAFEMG7W.js.map} +1 -1
  50. package/dist/{chunk-RIEXN7WA.js → chunk-MADO7PH5.js} +2 -2
  51. package/dist/{chunk-RIEXN7WA.js.map → chunk-MADO7PH5.js.map} +1 -1
  52. package/dist/{chunk-BCTU4TN7.js → chunk-MWFYXUFK.js} +3 -3
  53. package/dist/{chunk-BCTU4TN7.js.map → chunk-MWFYXUFK.js.map} +1 -1
  54. package/dist/{chunk-TK66CMXV.js → chunk-NU4E7C5I.js} +7 -3
  55. package/dist/chunk-NU4E7C5I.js.map +1 -0
  56. package/dist/{chunk-ZR5Q4KZK.js → chunk-O7ROIKTF.js} +3 -3
  57. package/dist/{chunk-ZR5Q4KZK.js.map → chunk-O7ROIKTF.js.map} +1 -1
  58. package/dist/{chunk-ZE2KEPE2.js → chunk-OEGHKO5N.js} +258 -24
  59. package/dist/chunk-OEGHKO5N.js.map +1 -0
  60. package/dist/{chunk-63ZPKREA.js → chunk-P43HBWKK.js} +11 -4
  61. package/dist/chunk-P43HBWKK.js.map +1 -0
  62. package/dist/{chunk-7UZGKVSK.js → chunk-PJ6INYDD.js} +3 -3
  63. package/dist/{chunk-7UZGKVSK.js.map → chunk-PJ6INYDD.js.map} +1 -1
  64. package/dist/{chunk-UNP4M5ZZ.js → chunk-UGKOWIRP.js} +4 -4
  65. package/dist/{chunk-UNP4M5ZZ.js.map → chunk-UGKOWIRP.js.map} +1 -1
  66. package/dist/{chunk-ETFETLLB.js → chunk-UZYTSIX6.js} +6 -6
  67. package/dist/{chunk-ETFETLLB.js.map → chunk-UZYTSIX6.js.map} +1 -1
  68. package/dist/{chunk-SIF5F5SN.js → chunk-V4ZLZJFN.js} +3 -3
  69. package/dist/{chunk-SIF5F5SN.js.map → chunk-V4ZLZJFN.js.map} +1 -1
  70. package/dist/{chunk-CILACPUC.js → chunk-WSARNOPP.js} +5 -5
  71. package/dist/{chunk-CILACPUC.js.map → chunk-WSARNOPP.js.map} +1 -1
  72. package/dist/cli/index.js +49 -49
  73. package/dist/connectors/config.js +1 -1
  74. package/dist/connectors/index.js +6 -6
  75. package/dist/core/index.js +1 -1
  76. package/dist/core/src/subprocess.d.ts +5 -1
  77. package/dist/core/src/subprocess.d.ts.map +1 -1
  78. package/dist/deploy/index.js +1 -1
  79. package/dist/discovery/index.js +1 -1
  80. package/dist/{ensure-sources-R6KW7K3M.js → ensure-sources-QF72HVUM.js} +8 -8
  81. package/dist/{ensure-sources-R6KW7K3M.js.map → ensure-sources-QF72HVUM.js.map} +1 -1
  82. package/dist/factory-assets/connectors/box.js +6 -6
  83. package/dist/factory-assets/connectors/deploy.js +6 -6
  84. package/dist/factory-assets/connectors/devserver.js +6 -6
  85. package/dist/factory-assets/connectors/flow/CONNECTOR.md +61 -14
  86. package/dist/factory-assets/connectors/flow/adapter.d.ts +78 -34
  87. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  88. package/dist/factory-assets/connectors/flow/adapter.js +6 -6
  89. package/dist/factory-assets/connectors/flow/contract/expression.d.ts +55 -0
  90. package/dist/factory-assets/connectors/flow/contract/expression.d.ts.map +1 -1
  91. package/dist/factory-assets/connectors/flow/contract/flow.v2.schema.json +61 -134
  92. package/dist/factory-assets/connectors/flow/contract/index.d.ts +1 -1
  93. package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -1
  94. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  95. package/dist/factory-assets/connectors/flow/contract/schema.d.ts +14 -2
  96. package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -1
  97. package/dist/factory-assets/connectors/flow/contract.js +2 -2
  98. package/dist/factory-assets/connectors/flow/engine/bindings.d.ts +9 -0
  99. package/dist/factory-assets/connectors/flow/engine/bindings.d.ts.map +1 -0
  100. package/dist/factory-assets/connectors/flow/engine/engine.d.ts +11 -6
  101. package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -1
  102. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -1
  103. package/dist/factory-assets/connectors/flow/engine/index.d.ts +2 -0
  104. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
  105. package/dist/factory-assets/connectors/flow/engine/node-shape.d.ts +22 -0
  106. package/dist/factory-assets/connectors/flow/engine/node-shape.d.ts.map +1 -1
  107. package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts +18 -0
  108. package/dist/factory-assets/connectors/flow/engine/output-schema.d.ts.map +1 -0
  109. package/dist/factory-assets/connectors/flow/engine/types.d.ts +21 -15
  110. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -1
  111. package/dist/factory-assets/connectors/flow/engine.js +4 -4
  112. package/dist/factory-assets/connectors/flow/index.d.ts +3 -0
  113. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -1
  114. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +48 -0
  115. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -0
  116. package/dist/factory-assets/connectors/flow/node-executor.d.ts +45 -0
  117. package/dist/factory-assets/connectors/flow/node-executor.d.ts.map +1 -0
  118. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +3 -2
  119. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -1
  120. package/dist/factory-assets/connectors/flow/prompt-fragments.js +2 -2
  121. package/dist/factory-assets/connectors/flow/run-flow.d.ts +10 -9
  122. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  123. package/dist/factory-assets/connectors/flow/run-flow.js +7 -7
  124. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +73 -0
  125. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -0
  126. package/dist/factory-assets/connectors/flow.js +6 -6
  127. package/dist/factory-assets/connectors/git.js +6 -6
  128. package/dist/factory-assets/connectors/gmail.js +6 -6
  129. package/dist/factory-assets/connectors/googledrive.js +6 -6
  130. package/dist/factory-assets/connectors/local.js +6 -6
  131. package/dist/factory-assets/connectors/mattermost.js +6 -6
  132. package/dist/factory-assets/connectors/memory.js +6 -6
  133. package/dist/factory-assets/connectors/minio.js +6 -6
  134. package/dist/factory-assets/connectors/postgres.js +6 -6
  135. package/dist/factory-assets/connectors/s3.js +6 -6
  136. package/dist/factory-assets/connectors/sharepoint.js +6 -6
  137. package/dist/factory-assets/connectors/sqlite.js +6 -6
  138. package/dist/factory-assets/connectors/static-server.js +6 -6
  139. package/dist/factory-assets/connectors/tunnel.js +6 -6
  140. package/dist/factory-assets/connectors/webdav.js +6 -6
  141. package/dist/factory-assets/connectors/xstate-store.js +6 -6
  142. package/dist/factory-assets/connectors/xstate.js +6 -6
  143. package/dist/{flows-F3CJNMK6.js → flows-YIW4HL3L.js} +4 -4
  144. package/dist/{flows-F3CJNMK6.js.map → flows-YIW4HL3L.js.map} +1 -1
  145. package/dist/{helpers-KPOLCGKX.js → helpers-LURCZHA4.js} +8 -8
  146. package/dist/{helpers-KPOLCGKX.js.map → helpers-LURCZHA4.js.map} +1 -1
  147. package/dist/library/index.js +3 -3
  148. package/dist/library/install.js +1 -1
  149. package/dist/{library-publish-ZAPZS64O.js → library-publish-2GMJM3NZ.js} +14 -14
  150. package/dist/{library-publish-ZAPZS64O.js.map → library-publish-2GMJM3NZ.js.map} +1 -1
  151. package/dist/{open-library-I4F2UNOY.js → open-library-POFOXZWH.js} +12 -12
  152. package/dist/{open-library-I4F2UNOY.js.map → open-library-POFOXZWH.js.map} +1 -1
  153. package/dist/{paths-KBACHM5B.js → paths-ZLX4ITAQ.js} +6 -6
  154. package/dist/{paths-KBACHM5B.js.map → paths-ZLX4ITAQ.js.map} +1 -1
  155. package/dist/{plugin-store-CYSNVZIX.js → plugin-store-YIMNH2FH.js} +3 -3
  156. package/dist/{plugin-store-CYSNVZIX.js.map → plugin-store-YIMNH2FH.js.map} +1 -1
  157. package/dist/{project-SIHZBTGB.js → project-GVOPZEJZ.js} +9 -9
  158. package/dist/{project-SIHZBTGB.js.map → project-GVOPZEJZ.js.map} +1 -1
  159. package/dist/resolver/index.js +1 -1
  160. package/dist/runner/index.js +14 -11
  161. package/dist/runner/src/serve.d.ts +3 -1
  162. package/dist/runner/src/serve.d.ts.map +1 -1
  163. package/dist/sdk/asset-manager.js +5 -5
  164. package/dist/sdk/bridge.js +2 -2
  165. package/dist/sdk/core.js +1 -1
  166. package/dist/sdk/flow.js +4 -4
  167. package/dist/sdk/index.js +14 -11
  168. package/dist/sdk/index.js.map +1 -1
  169. package/dist/sdk/resolver.js +1 -1
  170. package/dist/sdk/runner.js +14 -11
  171. package/dist/{setup-KMBXMV25.js → setup-TJYLYT2A.js} +5 -5
  172. package/dist/{setup-KMBXMV25.js.map → setup-TJYLYT2A.js.map} +1 -1
  173. package/dist/{skills-LHS4TOKK.js → skills-HGVH6UTA.js} +5 -5
  174. package/dist/{skills-LHS4TOKK.js.map → skills-HGVH6UTA.js.map} +1 -1
  175. package/dist/{source-X226ZJPR.js → source-FB3T4IHP.js} +13 -13
  176. package/dist/{source-X226ZJPR.js.map → source-FB3T4IHP.js.map} +1 -1
  177. package/dist/{source-manifest-publish-N2QVUR5U.js → source-manifest-publish-XTRDVPSC.js} +15 -15
  178. package/dist/{source-manifest-publish-N2QVUR5U.js.map → source-manifest-publish-XTRDVPSC.js.map} +1 -1
  179. package/dist/tui/index.js +14 -11
  180. package/dist/tui/index.js.map +1 -1
  181. package/dist/types/src/flow.d.ts +26 -0
  182. package/dist/types/src/flow.d.ts.map +1 -1
  183. package/dist/types/src/index.d.ts +1 -1
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/workspace-plugin/adapters/mcp.js +4 -4
  186. package/dist/workspace-plugin/adapters/omp.js +7 -7
  187. package/dist/workspace-plugin/index.js +1 -1
  188. package/package.json +1 -1
  189. package/dist/chunk-63ZPKREA.js.map +0 -1
  190. package/dist/chunk-DZM33LQO.js.map +0 -1
  191. package/dist/chunk-FB4GPWYC.js.map +0 -1
  192. package/dist/chunk-LD6YGIKZ.js.map +0 -1
  193. package/dist/chunk-PTS3QN5P.js.map +0 -1
  194. package/dist/chunk-TAJBFYCT.js.map +0 -1
  195. package/dist/chunk-TK66CMXV.js.map +0 -1
  196. package/dist/chunk-UQ3RJKDD.js.map +0 -1
  197. package/dist/chunk-ZE2KEPE2.js.map +0 -1
@@ -2,29 +2,35 @@
2
2
  * FlowAdapter — live flow execution state exposed as a connector resource.
3
3
  *
4
4
  * Holds the canonical `FlowExecution` snapshot for a single run and bridges
5
- * three driving parties:
5
+ * three ownership roles:
6
6
  *
7
7
  * - The **agent** drives nodes to completion by calling tools (`start_node`,
8
8
  * `request_approval`, `request_input`, `complete_node`, `skip_node`,
9
9
  * `fail_node`, plus read-only `get_state` / `get_available` / `get_globals` /
10
10
  * `build_handoff`).
11
- * - The **host** (runner serve.ts platform) applies out-of-turn
11
+ * - The **runtime** drains functions through `NodeExecutor` and parks first-class
12
+ * gates without executing a node or starting a model.
13
+ * - The **host** runner applies out-of-turn
12
14
  * mutations (`applyApproval`, `applyInput`, `retryNode`,
13
- * `setAutonomousMode`, `cancel`, `hydrate`) in response to user actions.
14
- * - The **runner's FlowOrchestrator** subscribes to `onChange` to forward
15
- * `state_changed` events and kick new turns after host-driven mutations.
15
+ * `setAutonomousMode`, `cancel`, `hydrate`) in response to platform actions,
16
+ * subscribes to `onChange` for persistence, and uses the session stimulus bus
17
+ * to serialize permitted model turns.
16
18
  *
17
19
  * Every state mutation runs through a single `mutate()` helper that clones
18
20
  * the current snapshot, applies the change, recomputes derived fields via
19
21
  * `computeFlowStateFromSnapshots`, and fires the onChange callback with
20
22
  * the full FlowExecution shape. Consumers downstream (platform gateway,
21
- * frontend hook) see latest-wins snapshots — F4 in the decision log.
23
+ * frontend hook) see latest-wins snapshots.
22
24
  *
23
25
  * See `docs/flow-execution.md` for the universal model.
24
26
  */
25
27
  import { AbstractConnector, type ConnectContext, type ConnectorDeclaration, type ConnectorHandle, type ToolFace } from "@skaile/workspaces/connectors";
26
28
  import type { FlowExecution } from "@skaile/workspaces/types";
29
+ import type { BindingOrigin } from "./contract/expression.js";
27
30
  import { type FlowDefinition, isBlocking } from "./engine/index.js";
31
+ import type { NodeExecutor } from "./node-executor.js";
32
+ import type { InlineSubFlowOperationTarget, InlineSubFlowRunner } from "./sub-flow-runner.js";
33
+ import { type TurnStimulus } from "./prompt-fragments.js";
28
34
  /**
29
35
  * Minimal structural shape of the runner's `SessionStimulusBus`. Declared
30
36
  * locally so the adapter doesn't pull in a runtime dep on
@@ -50,14 +56,13 @@ export interface FlowAdapterState {
50
56
  flowDef: FlowDefinition;
51
57
  /** Current execution snapshot (authoritative; mutated in place by `mutate()`). */
52
58
  execution: FlowExecution;
53
- /** Callback fired after every state mutation. Set by `FlowOrchestrator` via `onStateChange()`. */
59
+ /** Callback fired after every state mutation for host persistence and event forwarding. */
54
60
  onChange?: (state: FlowExecution) => void;
55
61
  /**
56
62
  * Optional `SessionStimulusBus` reference. When provided AND
57
63
  * `useBusForStimulus` is true, the adapter computes a `TurnStimulus`
58
64
  * after every mutation and fires `bus.signal()` to wake the agent.
59
- * Phase 3 wiring (2026-05-08): the flag defaults to false everywhere so
60
- * the legacy orchestrator path remains the only turn driver until Phase 4.
65
+ * The runner enables this for the serialized session-stimulus turn driver.
61
66
  */
62
67
  stimulusBus?: FlowAdapterStimulusBus;
63
68
  /**
@@ -66,7 +71,7 @@ export interface FlowAdapterState {
66
71
  * `flow` in CLI mode).
67
72
  */
68
73
  connectorId?: string;
69
- /** Phase 3 feature flag — see {@link FlowAdapterConnectOptions.useBusForStimulus}. */
74
+ /** See {@link FlowAdapterConnectOptions.useBusForStimulus}. */
70
75
  useBusForStimulus?: boolean;
71
76
  /**
72
77
  * Last execution snapshot the adapter signaled to the bus. Used to compute
@@ -74,6 +79,18 @@ export interface FlowAdapterState {
74
79
  * leave the snapshot unchanged don't fire spurious turn kicks.
75
80
  */
76
81
  lastSignaledExecution?: FlowExecution;
82
+ /** Deterministic runtime backed by the already-materialized session workspace. */
83
+ nodeExecutor?: NodeExecutor;
84
+ /** Host-owned inline child lifecycle, backed by the existing materialized session. */
85
+ inlineSubFlowRunner?: InlineSubFlowRunner;
86
+ /** Transient child operation routes keyed by their owning parent sub-flow node. */
87
+ inlineOperationTargets: Map<string, InlineSubFlowOperationTarget>;
88
+ /** Non-durable provenance overrides for values received from a parent sub-flow binding. */
89
+ flowInputOrigins?: Record<string, BindingOrigin[]>;
90
+ /** Non-durable ancestry used to reject recursive inline delegation. */
91
+ inlineSubFlowAncestry: string[];
92
+ /** Non-durable ownership epoch for results returned by in-flight inline children. */
93
+ executionGeneration: number;
77
94
  }
78
95
  /**
79
96
  * Options the runner passes via `declaration.options` when connecting the `FlowAdapter`.
@@ -98,25 +115,32 @@ export interface FlowAdapterConnectOptions {
98
115
  * Optional `SessionStimulusBus` to which this adapter should fire
99
116
  * `signal()` calls on every mutation when `useBusForStimulus` is true.
100
117
  * Threaded through by the runner's session-construction code (`runFlow`
101
- * / `serve.ts`). Phase 3 of the flow-connector extraction (2026-05-08)
102
- * builds the path; Phase 4 flips the flag globally.
118
+ * / `serve.ts`).
103
119
  */
104
120
  stimulusBus?: FlowAdapterStimulusBus;
105
121
  /**
106
- * Phase 3 feature flag. When `true` AND `stimulusBus` is provided, the
122
+ * When `true` AND `stimulusBus` is provided, the
107
123
  * adapter computes a turn-kicking stimulus after every mutation and
108
124
  * calls `bus.signal()` (fire-and-forget). When `false` (the default),
109
- * only the legacy `onChange` callback fires the runner's existing
110
- * `FlowOrchestrator.onStateChange` subscription remains the only turn
111
- * driver. Default: `false`.
125
+ * only the `onChange` callback fires. Default: `false`.
112
126
  */
113
127
  useBusForStimulus?: boolean;
128
+ /** Runtime for function nodes. Required before deterministic nodes are drained. */
129
+ nodeExecutor?: NodeExecutor;
130
+ /** Host lifecycle used to resolve and drive inline child flows in the current session. */
131
+ inlineSubFlowRunner?: InlineSubFlowRunner;
132
+ /** @internal Provenance for child flow inputs, retained only in the live adapter. */
133
+ flowInputOrigins?: Record<string, BindingOrigin[]>;
134
+ /** @internal Flow identities from the root through this transient child. */
135
+ inlineSubFlowAncestry?: string[];
114
136
  }
115
137
  /**
116
- * Connector adapter that holds and drives a live `FlowExecution`. Bridges three parties:
117
- * the agent (via `executeOp` tools), the host runner (via direct methods like `applyApproval`),
118
- * and the orchestrator (via `onStateChange`). Every mutation runs through a single `mutate()`
119
- * pipeline that recomputes derived fields and fires `onChange`.
138
+ * Connector adapter that holds and drives a live `FlowExecution`.
139
+ *
140
+ * The agent owns agent-node tools, the runtime drains function nodes and parks first-class
141
+ * gates, the host applies durable human decisions, and the runner subscribes to state changes
142
+ * to decide whether a model turn is needed. Every mutation runs through one recomputation
143
+ * pipeline and publishes the resulting snapshot.
120
144
  * @docLink packages/connectors/concepts#flow-adapter
121
145
  */
122
146
  export declare class FlowAdapter extends AbstractConnector {
@@ -126,12 +150,14 @@ export declare class FlowAdapter extends AbstractConnector {
126
150
  constructor();
127
151
  connect(declaration: ConnectorDeclaration, _ctx: ConnectContext): Promise<ConnectorHandle>;
128
152
  disconnect(handle: ConnectorHandle): Promise<void>;
153
+ private cancelInlineTargets;
154
+ private projectInlineInteraction;
129
155
  onStateChange(handle: ConnectorHandle, cb: (state: FlowExecution) => void): void;
130
156
  /**
131
157
  * Replace the current execution snapshot with a host-provided one.
132
158
  * Used on container rehydration via the extended `configure` command.
133
- * Does NOT fire `onChange` the host already has the state; we don't
134
- * want to loop it back on startup.
159
+ * Publishes only when compatibility preparation changes the supplied snapshot,
160
+ * such as seeding a node kind activated after the snapshot was persisted.
135
161
  */
136
162
  hydrate(handle: ConnectorHandle, execution: FlowExecution): void;
137
163
  private read;
@@ -161,9 +187,8 @@ export declare class FlowAdapter extends AbstractConnector {
161
187
  private doFailNode;
162
188
  /**
163
189
  * Record an approval decision on a node currently `awaiting_approval`.
164
- * `approved` leaves the node in `awaiting_approval` the agent
165
- * transitions it to `complete` on the next turn. `rejected` drops the
166
- * node back to `available` so the agent can retry.
190
+ * A first-class gate completes directly when approved and remains parked when rejected.
191
+ * Agent-node approvals keep their existing resume behavior.
167
192
  */
168
193
  applyApproval(handle: ConnectorHandle, nodeId: string, decision: "approved" | "rejected", feedback: string | undefined, decidedBy: string): void;
169
194
  /**
@@ -183,20 +208,39 @@ export declare class FlowAdapter extends AbstractConnector {
183
208
  cancel(handle: ConnectorHandle): void;
184
209
  /** Read-only access to the current FlowExecution snapshot. */
185
210
  getExecution(handle: ConnectorHandle): FlowExecution;
186
- /** Node IDs marked as mandatory approval gates in strict v2 or legacy definitions. */
211
+ /** @internal Whether a nested inline descendant owns the current agent turn. */
212
+ hasActiveInlineAgentTurn(handle: ConnectorHandle): boolean;
213
+ /** Snapshot currently visible through agent-facing tools, including a live inline child. */
214
+ getAgentExecution(handle: ConnectorHandle): FlowExecution;
215
+ /** Agent node IDs whose approval policy remains mandatory in autonomous mode. */
216
+ getMandatoryAgentApprovalNodeIds(handle: ConnectorHandle): string[];
217
+ /** @deprecated Use {@link getMandatoryAgentApprovalNodeIds}. */
187
218
  getMandatoryGates(handle: ConnectorHandle): string[];
219
+ /**
220
+ * Decide whether the current state and stimulus require the session agent's conversation.
221
+ * Runtime-owned gates stay dark while pending; a rejected gate is the exception because the
222
+ * rejection starts the revision conversation promised by the gate lifecycle.
223
+ */
224
+ shouldDriveAgentTurn(handle: ConnectorHandle, stimulus: TurnStimulus): boolean;
225
+ /**
226
+ * Drain runtime-owned nodes in definition order until only agent work or a human decision
227
+ * remains. Function nodes use NodeExecutor, gates park, and sub-flows delegate to the host.
228
+ */
229
+ drainRuntimeNodes(handle: ConnectorHandle): Promise<FlowExecution>;
230
+ /**
231
+ * Run every currently available function node through the configured
232
+ * NodeExecutor. Newly-unblocked function nodes are drained in definition
233
+ * order before returning control to the runner's agent-turn decision.
234
+ */
235
+ executeAvailableFunctionNodes(handle: ConnectorHandle): Promise<FlowExecution>;
236
+ private drainAvailableRuntimeNodes;
188
237
  private s;
189
238
  /**
190
239
  * Central mutation pipeline: runs the mutator, recomputes derived
191
240
  * fields, updates the flow-level `status` if the mutation completed
192
- * or failed the flow, fires `onChange` once, and (Phase 3, 2026-05-08)
193
- * optionally signals the {@link FlowAdapterStimulusBus} so the runner
194
- * can kick a turn outside the legacy orchestrator path.
195
- *
196
- * The bus signal path is gated by the `useBusForStimulus` flag set at
197
- * connect time — Phase 3 builds the path; Phase 4 flips the default to
198
- * true globally and removes the orchestrator's onStateChange
199
- * subscription.
241
+ * or failed the flow, fires `onChange` once, and optionally signals the
242
+ * {@link FlowAdapterStimulusBus}. The signal path is gated by the
243
+ * `useBusForStimulus` flag set at connect time.
200
244
  */
201
245
  private mutate;
202
246
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/flow/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- export { FlowAdapter, createConnector } from '../../../chunk-PTS3QN5P.js';
1
+ export { FlowAdapter, createConnector } from '../../../chunk-EEHOMCRU.js';
2
2
  import '../../../chunk-ZNIHTT22.js';
3
3
  import '../../../chunk-6E6PKKAD.js';
4
4
  import '../../../chunk-IFGTRL2I.js';
5
- export { isBlocking } from '../../../chunk-UQ3RJKDD.js';
6
- import '../../../chunk-ZE2KEPE2.js';
7
- import '../../../chunk-FB4GPWYC.js';
8
- import '../../../chunk-DZM33LQO.js';
9
- import '../../../chunk-63ZPKREA.js';
5
+ export { isBlocking } from '../../../chunk-4O2RAXKJ.js';
6
+ import '../../../chunk-OEGHKO5N.js';
7
+ import '../../../chunk-FKBQRV4J.js';
8
+ import '../../../chunk-4QROZZ5Z.js';
9
+ import '../../../chunk-P43HBWKK.js';
10
10
  import '../../../chunk-F3HNW354.js';
11
11
  import '../../../chunk-K5GBV4SA.js';
12
12
  import '../../../chunk-ZAP2BDHG.js';
@@ -22,6 +22,50 @@ export interface FlowExpressionContext {
22
22
  };
23
23
  }>;
24
24
  }
25
+ /** Runtime or agent provenance retained for one value used by a node binding. */
26
+ export type BindingOrigin = {
27
+ source: "literal";
28
+ path: string;
29
+ obtainedBy: "runtime";
30
+ } | {
31
+ source: "flow-input";
32
+ path: string;
33
+ obtainedBy: "runtime";
34
+ } | {
35
+ source: "default";
36
+ path: string;
37
+ obtainedBy: "runtime";
38
+ } | {
39
+ source: "node-status";
40
+ nodeId: string;
41
+ path: string;
42
+ obtainedBy: "runtime";
43
+ } | {
44
+ source: "node-output";
45
+ nodeId: string;
46
+ path: string;
47
+ obtainedBy: "agent" | "runtime";
48
+ };
49
+ /** A resolved JSON value together with every source that contributed to it. */
50
+ export interface ResolvedBinding {
51
+ /** Runtime value passed to the node executor. */
52
+ value: unknown;
53
+ /** Stable, de-duplicated provenance in authored traversal order. */
54
+ origins: BindingOrigin[];
55
+ }
56
+ /** All named node inputs, keeping executor values separate from provenance. */
57
+ export interface ResolvedNodeBindings {
58
+ /** Resolved values keyed by authored binding name. */
59
+ values: Record<string, unknown>;
60
+ /** Provenance keyed by authored binding name. */
61
+ origins: Record<string, BindingOrigin[]>;
62
+ }
63
+ /** How each producer node obtained its output fields. */
64
+ export type NodeOutputOrigin = Record<string, "agent" | "runtime">;
65
+ /** @internal Binding names excluded from both authored and direct typed inputs. */
66
+ export declare const FLOW_BINDING_NAME_PATTERN: RegExp;
67
+ /** @internal Collect bounded expressions embedded in a JSON binding value. */
68
+ export declare function collectFlowBindingExpressions(value: unknown): string[];
25
69
  /** Deterministic syntax, budget, or path failure raised by the Flow evaluator. */
26
70
  export declare class FlowExpressionError extends Error {
27
71
  /** Stable error name for callers that classify evaluator failures. */
@@ -43,4 +87,15 @@ export declare function inspectFlowExpression(expression: string, requireBoolean
43
87
  export declare function evaluateFlowExpression(expression: string, context: FlowExpressionContext): boolean;
44
88
  /** Proposal-compatible short name for {@link evaluateFlowExpression}. */
45
89
  export declare function evaluate(expression: string, context: FlowExpressionContext): boolean;
90
+ /** @internal Serialize a JSON-compatible value with deterministic object-key ordering. */
91
+ export declare function stableFlowJson(value: unknown): string;
92
+ /**
93
+ * Resolves authored node inputs through the bounded Flow expression grammar.
94
+ *
95
+ * Exact `${...}` placeholders retain their JSON type. Placeholders embedded in
96
+ * text use deterministic interpolation, while arrays and objects are traversed
97
+ * recursively. Runtime values and provenance remain separate so executors do not
98
+ * need to understand trust metadata.
99
+ */
100
+ export declare function resolveFlowBindings(bindings: Record<string, unknown> | undefined, context: FlowExpressionContext, nodeOutputOrigin?: NodeOutputOrigin, flowInputOrigins?: Record<string, BindingOrigin[]>): ResolvedNodeBindings;
46
101
  //# sourceMappingURL=expression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/expression.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,kFAAkF;AAClF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,sEAAsE;IACtE,SAAkB,IAAI,yBAAyB;CAChD;AAwXD,+FAA+F;AAC/F,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,cAAc,UAAO,GACpB,uBAAuB,EAAE,CAkB3B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAQT;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAEpF"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../../factory-assets/connectors/flow/contract/expression.ts"],"names":[],"mappings":"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"}