@makaio/framework 1.0.0-dev-1783477169057 → 1.0.0-dev-1783687982716

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 (118) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapter-CA8rPIUz.mjs +1 -0
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/index.d.mts +142 -168
  5. package/dist/adapters/index.mjs +6 -6
  6. package/dist/bus/index.d.mts +22 -22
  7. package/dist/bus/index.mjs +1 -1
  8. package/dist/client-DaR4mzqn.mjs +1 -0
  9. package/dist/contracts/adapter/index.d.mts +1 -1
  10. package/dist/contracts/adapter/index.mjs +1 -1
  11. package/dist/contracts/artifact/index.d.mts +1 -1
  12. package/dist/contracts/canonical-model/index.d.mts +1 -1
  13. package/dist/contracts/client/index.d.mts +2 -2
  14. package/dist/contracts/client/index.mjs +1 -1
  15. package/dist/contracts/extension/index.d.mts +2 -2
  16. package/dist/contracts/facet/index.d.mts +1 -1
  17. package/dist/contracts/harness/index.d.mts +1 -1
  18. package/dist/contracts/index.d.mts +255 -203
  19. package/dist/contracts/index.mjs +1 -1
  20. package/dist/contracts/materialization/index.d.mts +3 -3
  21. package/dist/contracts/session/index.d.mts +3 -3
  22. package/dist/contracts/session/index.mjs +1 -1
  23. package/dist/contracts/skill/index.d.mts +1 -1
  24. package/dist/contracts/variant/index.d.mts +1 -1
  25. package/dist/contracts/workflow/index.d.mts +3 -3
  26. package/dist/contracts/workflow/index.mjs +1 -1
  27. package/dist/{definition-DePb3ke-.d.mts → definition-s9PIua2B.d.mts} +1 -1
  28. package/dist/drizzle/0024_external_settlement_fingerprint.sql +1 -0
  29. package/dist/drizzle/0025_external_registration_frame.sql +1 -0
  30. package/dist/drizzle/meta/_journal.json +14 -0
  31. package/dist/{index-Dv4oGVZK.d.mts → index-B4ZddkPI.d.mts} +413 -336
  32. package/dist/{index-BX1MxwFr.d.mts → index-B9d_8_V2.d.mts} +21 -21
  33. package/dist/{index-BeouVICp.d.mts → index-BUrNl0QJ.d.mts} +4 -4
  34. package/dist/{index-2fK9iSHI.d.mts → index-BWIkf5oJ.d.mts} +6 -6
  35. package/dist/{index-Bl42SCEI.d.mts → index-Bc82MC0z.d.mts} +4 -4
  36. package/dist/{index-CQQcnpev.d.mts → index-CAhKyxfm.d.mts} +437 -57
  37. package/dist/{index-B3fjN5HX.d.mts → index-CmHdpW0E.d.mts} +7 -7
  38. package/dist/{index-CA-AJbq6.d.mts → index-D4gn93gL.d.mts} +16 -16
  39. package/dist/{index-B-6DtLLz.d.mts → index-D7rWAEY0.d.mts} +1 -1
  40. package/dist/{index-j_X5xefv2.d.mts → index-D94cDExW2.d.mts} +11 -11
  41. package/dist/{index-DScUb-hF.d.mts → index-DLDQDXhD.d.mts} +2 -2
  42. package/dist/{index-uM4KZopE.d.mts → index-DNfNwGu6.d.mts} +8 -8
  43. package/dist/{index-BMbmoarE.d.mts → index-DTBQOCar.d.mts} +16 -16
  44. package/dist/{index-CwFSL4xI.d.mts → index-DTkGyKKA.d.mts} +180 -21
  45. package/dist/{index-BjO4Zkap.d.mts → index-DsLpP5ek.d.mts} +1 -1
  46. package/dist/{index-DMz-2ACU.d.mts → index-WHUV7neB.d.mts} +105 -105
  47. package/dist/{index-BcwOnvUh.d.mts → index-mU2lnU7O.d.mts} +6 -6
  48. package/dist/{index-C_xQM96Y.d.mts → index-oePgeOph.d.mts} +473 -389
  49. package/dist/kernel/extension/index.d.mts +1 -1
  50. package/dist/kernel/index.d.mts +2 -2
  51. package/dist/kernel/observability/index.d.mts +1 -1
  52. package/dist/loop-gate-handlers-o2B5FPdF.mjs +1 -0
  53. package/dist/{namespace-TPbegIMi.d.mts → namespace-B9V9R3AY.d.mts} +25 -25
  54. package/dist/{namespace-Boh42UoL.d.mts → namespace-BGIeqwfU.d.mts} +24 -0
  55. package/dist/{namespace-COEUMuHL.d.mts → namespace-BLER-Qom.d.mts} +154 -154
  56. package/dist/{namespace-OLAh9wHU.d.mts → namespace-Dm454cNM.d.mts} +9 -9
  57. package/dist/{namespace-D94HrTtq.d.mts → namespace-d_0I6P7N.d.mts} +6 -6
  58. package/dist/node/transports/index.d.mts +25 -3
  59. package/dist/node/transports/index.mjs +1 -1
  60. package/dist/package-Co_GO3UD.mjs +7 -0
  61. package/dist/{package-B6mEMD8r.d.mts → package-DmVZxufT.d.mts} +1 -1
  62. package/dist/package.json +1 -1
  63. package/dist/{schemas-CDBn9MTz.d.mts → schemas-B_t6oOK-.d.mts} +154 -154
  64. package/dist/{schemas-D512XweP.d.mts → schemas-CJ2JvA7d.d.mts} +3 -3
  65. package/dist/{schemas-DOV4UouN2.d.mts → schemas-CNUk34qC2.d.mts} +2 -2
  66. package/dist/schemas-CVo8qAK-.mjs +1 -0
  67. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  68. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  69. package/dist/services/agent-runtime/index.d.mts +2 -2
  70. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  71. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  72. package/dist/services/context-rules/index.d.mts +3 -3
  73. package/dist/services/execution-target/index.d.mts +1 -1
  74. package/dist/services/harness/index.d.mts +3 -3
  75. package/dist/services/index.d.mts +94 -94
  76. package/dist/services/index.mjs +1 -1
  77. package/dist/services/log-import/browser.d.mts +2 -2
  78. package/dist/services/log-import/index.d.mts +2 -2
  79. package/dist/services/log-import/log-import.d.mts +1 -1
  80. package/dist/services/log-import/namespace.d.mts +2 -2
  81. package/dist/services/log-import/schemas.d.mts +1 -1
  82. package/dist/services/session/index.d.mts +4 -4
  83. package/dist/services/session/index.mjs +1 -1
  84. package/dist/services/session/messages/namespace.d.mts +1 -1
  85. package/dist/services/session/session-events/namespace.d.mts +1 -1
  86. package/dist/services/session/storage/namespace.d.mts +1 -1
  87. package/dist/services/session/testing/index.mjs +1 -1
  88. package/dist/services/session-editor/index.d.mts +1 -1
  89. package/dist/services/settings/namespace.d.mts +2 -2
  90. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  91. package/dist/services/subagent-template/index.d.mts +1 -1
  92. package/dist/services/subagent-template/schemas.d.mts +1 -1
  93. package/dist/services/tool-approval/index.mjs +1 -1
  94. package/dist/services/tools/index.mjs +1 -1
  95. package/dist/session-CX6QDhi2.mjs +76 -0
  96. package/dist/session-DBfQkgdy.mjs +1 -0
  97. package/dist/{tool-approval-service-BNXgr-az.mjs → tool-approval-service-DEiMKTv9.mjs} +1 -1
  98. package/dist/{tools-BaO4GYj0.mjs → tools-CGFZkB7F.mjs} +1 -1
  99. package/dist/{transition-Bbjlwv5K.d.mts → transition-OzGXyy3p.d.mts} +1 -1
  100. package/dist/{types-D7W0ntGr.d.mts → types-1a2D10yb.d.mts} +28 -3
  101. package/dist/{types-BNW5n6qm.d.mts → types-BMS6yfLS.d.mts} +1 -1
  102. package/dist/{types-jruUn6oW.d.mts → types-BSilhlYE.d.mts} +260 -246
  103. package/dist/{types-CNkx2awa.d.mts → types-BWduCvRU.d.mts} +1 -1
  104. package/dist/workflow-C3dgVwTY.mjs +1 -0
  105. package/dist/workflow-engine/index.d.mts +295 -27
  106. package/dist/workflow-engine/index.mjs +1 -1
  107. package/dist/workflow-engine/package.d.mts +1 -1
  108. package/dist/workflow-engine/package.mjs +1 -1
  109. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  110. package/package.json +1 -1
  111. package/dist/adapter-Lx6K7yQS.mjs +0 -1
  112. package/dist/client-l1Rq5p6X.mjs +0 -1
  113. package/dist/loop-gate-handlers-Bjmat-K3.mjs +0 -1
  114. package/dist/package-BQn_RTo7.mjs +0 -1
  115. package/dist/schemas-CkOigLAT.mjs +0 -1
  116. package/dist/session-CoGaTin6.mjs +0 -69
  117. package/dist/session-Dp7z5N1d.mjs +0 -1
  118. package/dist/workflow-C1z7I5CI.mjs +0 -1
@@ -1,2 +1,2 @@
1
- import { a as ExtensionCoordinatorOptions, c as KernelMakaioExtension, i as ContributionProcessor, l as RuntimeCapability, n as filterEligibleExtensions, o as ExtensionRuntimeSurface, r as ExtensionCoordinator, s as KernelExtensionContext, t as coalesceExtensionOverrides, u as RuntimeEnvironment } from "../../index-BjO4Zkap.mjs";
1
+ import { a as ExtensionCoordinatorOptions, c as KernelMakaioExtension, i as ContributionProcessor, l as RuntimeCapability, n as filterEligibleExtensions, o as ExtensionRuntimeSurface, r as ExtensionCoordinator, s as KernelExtensionContext, t as coalesceExtensionOverrides, u as RuntimeEnvironment } from "../../index-DsLpP5ek.mjs";
2
2
  export { ContributionProcessor, ExtensionCoordinator, ExtensionCoordinatorOptions, ExtensionRuntimeSurface, KernelExtensionContext, KernelMakaioExtension, RuntimeCapability, RuntimeEnvironment, coalesceExtensionOverrides, filterEligibleExtensions };
@@ -1,5 +1,5 @@
1
- import { c as ExtensionInfo, f as ServiceInfo, i as ComponentInfo, l as ExtensionInfoSchema, n as ExtensionSubjects, o as ComponentState, p as ServiceInfoSchema, s as ComponentStateSchema, t as ExtensionNamespace } from "../index-CA-AJbq6.mjs";
2
- import { c as KernelMakaioExtension, i as ContributionProcessor, l as RuntimeCapability, n as filterEligibleExtensions, o as ExtensionRuntimeSurface, r as ExtensionCoordinator, s as KernelExtensionContext, t as coalesceExtensionOverrides, u as RuntimeEnvironment } from "../index-BjO4Zkap.mjs";
1
+ import { c as ExtensionInfo, f as ServiceInfo, i as ComponentInfo, l as ExtensionInfoSchema, n as ExtensionSubjects, o as ComponentState, p as ServiceInfoSchema, s as ComponentStateSchema, t as ExtensionNamespace } from "../index-D4gn93gL.mjs";
2
+ import { c as KernelMakaioExtension, i as ContributionProcessor, l as RuntimeCapability, n as filterEligibleExtensions, o as ExtensionRuntimeSurface, r as ExtensionCoordinator, s as KernelExtensionContext, t as coalesceExtensionOverrides, u as RuntimeEnvironment } from "../index-DsLpP5ek.mjs";
3
3
  import { i as WindowStyle, n as WindowRegistration, r as WindowRegistry, t as STYLE_DEFAULTS } from "../window-registry-ofIUQnfo.mjs";
4
4
  import { a as KernelSchemas, i as setWorkflowTriggerTypeRegistry, n as KernelSubjects, r as getWorkflowTriggerTypeRegistry, t as KernelNamespace } from "../index-Y8rMeYYX.mjs";
5
5
  import { a as MachineIdentity, c as StorageProvider, i as IdentityProvider, n as NoTransportProvider, o as TransportProvider, r as MemoryStorageProvider, s as StorageCleanup, t as EphemeralIdentityProvider } from "../index-CpKikwK4.mjs";
@@ -1,2 +1,2 @@
1
- import { a as ComponentInfoSchema, c as ExtensionInfo, d as ExtensionWarningEntrySchema, f as ServiceInfo, i as ComponentInfo, l as ExtensionInfoSchema, n as ExtensionSubjects, o as ComponentState, p as ServiceInfoSchema, r as ComponentIdentitySchema, s as ComponentStateSchema, t as ExtensionNamespace, u as ExtensionWarningEntry } from "../../index-CA-AJbq6.mjs";
1
+ import { a as ComponentInfoSchema, c as ExtensionInfo, d as ExtensionWarningEntrySchema, f as ServiceInfo, i as ComponentInfo, l as ExtensionInfoSchema, n as ExtensionSubjects, o as ComponentState, p as ServiceInfoSchema, r as ComponentIdentitySchema, s as ComponentStateSchema, t as ExtensionNamespace, u as ExtensionWarningEntry } from "../../index-D4gn93gL.mjs";
2
2
  export { ComponentIdentitySchema, ComponentInfo, ComponentInfoSchema, ComponentState, ComponentStateSchema, ExtensionInfo, ExtensionInfoSchema, ExtensionNamespace, ExtensionSubjects, ExtensionWarningEntry, ExtensionWarningEntrySchema, ServiceInfo, ServiceInfoSchema };
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-B5dPIck0.mjs";import{z as n}from"zod";import{execFile as r}from"node:child_process";import{isAbsolute as i,relative as a,resolve as o}from"node:path";import{realpathSync as s}from"node:fs";import{localSubject as c}from"@makaio/framework/core";import{NoHandlerError as l}from"@makaio/framework/bus";import{AgentSubjects as u,ArtifactSubjects as d,ExecutionLinkListQuerySchema as f,ExecutionLinkSchema as p,ExecutionListQuerySchema as m,ExecutionStatusSchema as h,ExecutionsByArtifactRefsQuerySchema as g,GateInstanceListQuerySchema as _,JsonPatchOperationSchema as v,JsonValueSchema as y,SessionSubjects as b,SpanRecordSchema as x,SubagentSubjects as S,WORKFLOW_CANCELLED_REASON as ee,WorkLogFrameEntrySchema as te,WorkerNodeSubjects as ne,WorkflowDefinitionSchema as re,WorkflowError as ie,WorkflowErrorCode as ae,WorkflowExecutionSchema as C,WorkflowFrameStateSchema as oe,WorkflowGateInstanceSchema as w,WorkflowListQuerySchema as se,WorkflowRunContextSchema as ce,WorkflowSchemas as le,WorkflowSubjects as ue,WorkflowSubjects as T,WorkflowWorkerSourceSchema as de,createStepCancelSubject as fe,walkWorkflowDefinition as pe}from"@makaio/framework/contracts";import{index as E,primaryKey as D,uniqueIndex as me}from"drizzle-orm/sqlite-core";import{index as O,primaryKey as he,uniqueIndex as ge}from"drizzle-orm/pg-core";import{defineDualTable as k}from"@makaio/framework/storage/drizzle";import{sql as _e}from"drizzle-orm";import{createStorageNamespaceDefinition as ve}from"@makaio/framework/storage";import{evaluateSync as A,resolveTemplate as j}from"@makaio/framework/expression";import*as ye from"node:os";function be(e){return{scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``)}}const xe=k(`workflow_definitions`,e=>({id:e.text(`id`).primaryKey(),name:e.text(`name`).notNull(),description:e.text(`description`),root:e.jsonCol(`root`).notNull(),inputSchema:e.jsonCol(`input_schema`),configSchema:e.jsonCol(`config_schema`),outputSchema:e.jsonCol(`output_schema`),state:e.jsonCol(`state`),artifact:e.jsonCol(`artifact`),triggers:e.jsonCol(`triggers`),...be(e),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull(),canvasLayout:e.jsonCol(`canvas_layout`),source:e.jsonCol(`source`),executionHints:e.jsonCol(`execution_hints`)}),{sqlite:e=>[me(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),E(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)],postgres:e=>[ge(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),O(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)]}),Se=xe.sqlite,M=k(`workflow_executions`,e=>({id:e.text(`id`).primaryKey(),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]}).notNull(),inputs:e.jsonCol(`inputs`),error:e.text(`error`),reason:e.text(`reason`),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),externalSettlementFingerprint:e.text(`external_settlement_fingerprint`),externalRegistrationFrameId:e.text(`external_registration_frame_id`),triggerPayload:e.jsonCol(`trigger_payload`),artifactKind:e.text(`artifact_kind`),artifactId:e.text(`artifact_id`),...be(e)}),{sqlite:e=>[E(`idx_workflow_executions_status`).on(e.status),E(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),E(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),E(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)],postgres:e=>[O(`idx_workflow_executions_status`).on(e.status),O(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),O(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),O(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)]}),Ce=M.sqlite,we=k(`workflow_execution_frames`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),parentFrameId:e.text(`parent_frame_id`),status:e.text(`status`).notNull().default(`pending`).$type(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),output:e.jsonCol(`output`),outputPresent:e.bool(`output_present`).notNull().default(!1),error:e.text(`error`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`)}),{sqlite:e=>[E(`idx_workflow_execution_frames_execution`).on(e.executionId),E(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)],postgres:e=>[O(`idx_workflow_execution_frames_execution`).on(e.executionId),O(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)]}),Te=we.sqlite,Ee=k(`workflow_gate_instances`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),schema:e.jsonCol(`schema`).notNull(),prompt:e.text(`prompt`),status:e.text(`status`).notNull().default(`waiting`).$type(),autoAction:e.textEnum(`auto_action`,{enum:[`approve`,`reject`]}).notNull().default(`reject`),timeoutMs:e.int4(`timeout_ms`),resumeData:e.jsonCol(`resume_data`),reason:e.text(`reason`),resumeDataPresent:e.bool(`resume_data_present`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`)}),{sqlite:e=>[E(`idx_workflow_gate_instances_execution`).on(e.executionId),E(`idx_workflow_gate_instances_frame`).on(e.frameId)],postgres:e=>[O(`idx_workflow_gate_instances_execution`).on(e.executionId),O(`idx_workflow_gate_instances_frame`).on(e.frameId)]}),De=Ee.sqlite,Oe=k(`workflow_step_spans`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),stepId:e.text(`step_id`).notNull(),stepType:e.text(`step_type`).notNull(),status:e.text(`status`).$type().notNull(),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),toolCallCount:e.int4(`tool_call_count`),input:e.text(`input`),output:e.text(`output`)}),{sqlite:e=>[D({columns:[e.executionId,e.frameId]}),E(`idx_workflow_step_spans_status`).on(e.status)],postgres:e=>[he({columns:[e.executionId,e.frameId]}),O(`idx_workflow_step_spans_status`).on(e.status)]}),ke=Oe.sqlite,Ae=k(`workflow_execution_links`,e=>({sourceExecutionId:e.text(`source_execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),targetExecutionId:e.text(`target_execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),linkType:e.text(`link_type`).$type().notNull(),metadata:e.jsonCol(`metadata`)}),{sqlite:e=>[D({columns:[e.sourceExecutionId,e.targetExecutionId]}),E(`idx_workflow_execution_links_target`).on(e.targetExecutionId)],postgres:e=>[he({columns:[e.sourceExecutionId,e.targetExecutionId]}),O(`idx_workflow_execution_links_target`).on(e.targetExecutionId)]}),je=Ae.sqlite,Me=k(`workflow_run_contexts`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`).notNull(),sourceKind:e.text(`source_kind`).notNull(),sourcePath:e.text(`source_path`),sourceFilename:e.text(`source_filename`),sourceCode:e.text(`source_code`),definitionSnapshot:e.jsonCol(`definition_snapshot`),workerManifest:e.jsonCol(`worker_manifest`).notNull(),inputs:e.jsonCol(`inputs`),config:e.jsonCol(`config`).notNull().default(_e`'{}'`),triggerPayload:e.jsonCol(`trigger_payload`).notNull(),artifactRef:e.jsonCol(`artifact_ref`),executionHints:e.jsonCol(`execution_hints`),dispatchMetadata:e.jsonCol(`dispatch_metadata`),scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().default(`global`).$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``),cancelSubject:e.text(`cancel_subject`).notNull(),context:e.jsonCol(`context`).notNull(),env:e.jsonCol(`env`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),suspensionStrategy:e.text(`suspension_strategy`).$type()}),{sqlite:e=>[E(`idx_run_contexts_workflow`).on(e.workflowId)],postgres:e=>[O(`idx_run_contexts_workflow`).on(e.workflowId)]}),Ne=Me.sqlite,Pe=k(`worklog_summaries`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),workflowName:e.text(`workflow_name`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]}).notNull(),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),totalInputTokens:e.int4(`total_input_tokens`),totalOutputTokens:e.int4(`total_output_tokens`),totalEstimatedCost:e.float8(`total_estimated_cost`),error:e.text(`error`),failedNodeId:e.text(`failed_node_id`)}),{sqlite:e=>[E(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),E(`idx_worklog_summaries_status`).on(e.status)],postgres:e=>[O(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),O(`idx_worklog_summaries_status`).on(e.status)]}),Fe=Pe.sqlite,Ie=k(`worklog_frame_entries`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),status:e.textEnum(`status`,{enum:[`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]}).notNull(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),error:e.text(`error`)}),{sqlite:e=>[E(`idx_worklog_frame_entries_execution`).on(e.executionId)],postgres:e=>[O(`idx_worklog_frame_entries_execution`).on(e.executionId)]}),Le=Ie.sqlite,Re=k(`worklog_artifact_writes`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),nodeId:e.text(`node_id`).notNull(),artifact:e.jsonCol(`artifact`).notNull(),revision:e.text(`revision`),writtenAt:e.epochMs(`written_at`).notNull()}),{sqlite:e=>[E(`idx_worklog_artifact_writes_execution`).on(e.executionId)],postgres:e=>[O(`idx_worklog_artifact_writes_execution`).on(e.executionId)]}),ze=Re.sqlite,Be=k(`worklog_gate_events`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),status:e.textEnum(`status`,{enum:[`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]}).notNull().$type(),prompt:e.text(`prompt`),openedAt:e.epochMs(`opened_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`),resumeData:e.jsonCol(`resume_data`)}),{sqlite:e=>[E(`idx_worklog_gate_events_execution`).on(e.executionId),E(`idx_worklog_gate_events_status`).on(e.status)],postgres:e=>[O(`idx_worklog_gate_events_execution`).on(e.executionId),O(`idx_worklog_gate_events_status`).on(e.status)]}),Ve=Be.sqlite,He=k(`workflow_execution_state`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull().default(0),value:e.jsonCol(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Ue=He.sqlite,We=k(`workflow_execution_state_events`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>M.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull(),patch:e.jsonCol(`patch`).notNull(),value:e.jsonCol(`value`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[D({columns:[e.executionId,e.sequence]})],postgres:e=>[he({columns:[e.executionId,e.sequence]})]}),Ge=We.sqlite,Ke=n.object({executionId:n.string().min(1),status:h.optional(),error:n.string().nullable().optional(),reason:n.string().nullable().optional(),completedAt:n.number().nullable().optional()}),qe=n.enum([`completed`,`failed`,`cancelled`]),Je=te.extend({status:n.literal(`running`),startedAt:n.number().int().nonnegative()}),Ye=te.extend({status:qe,startedAt:n.number().int().nonnegative(),completedAt:n.number().int().nonnegative(),durationMs:n.number().int().nonnegative()}),Xe=ve(`workflow`,{schemas:{get:{request:n.object({id:n.string()}),response:n.object({workflow:re.nullable()})},set:{request:n.object({workflow:re}),response:n.object({id:n.string()})},delete:{request:n.object({id:n.string()}),response:n.object({deleted:n.boolean()})},list:{request:se,response:n.object({workflows:n.array(re)})},getExecution:{request:n.object({executionId:n.string()}),response:n.object({execution:C.nullable()})},setExecution:{request:n.object({execution:C}),response:n.object({id:n.string()})},setExecutionStart:{request:n.object({execution:C,runContext:ce,initialState:y.optional(),executionLinks:n.array(p).optional()}),response:n.object({id:n.string(),executionId:n.string()})},setExternalExecutionStart:c({request:n.object({execution:C.extend({status:n.literal(`running`)}),frame:Je.optional()}),response:n.object({executionId:n.string(),frameId:n.string().optional()})}),settleExternalExecution:c({request:n.object({executionId:n.string().min(1),status:qe,error:n.string().min(1).optional(),reason:n.string().min(1).optional(),completedAt:n.number().int().nonnegative().optional(),frame:Ye.optional()}),response:n.object({success:n.boolean()})}),updateExecution:{request:Ke,response:n.object({success:n.boolean()})},cancelPausedExecution:{request:n.object({executionId:n.string().min(1),completedAt:n.number(),reason:n.string().optional()}),response:n.object({cancelled:n.boolean(),gates:n.array(w.extend({status:n.literal(`cancelled`)}))})},listExecutions:{request:m,response:n.object({executions:n.array(C)})},listExecutionsByArtifactRefs:{request:g,response:n.object({executionsByRef:n.record(n.string(),n.array(C))})},setFrame:{request:n.object({executionId:n.string().min(1),frame:oe}),response:n.object({frameId:n.string()})},getFrame:{request:n.object({frameId:n.string().min(1)}),response:n.object({frame:oe.nullable()})},listFrames:{request:n.object({executionId:n.string().min(1)}),response:n.object({frames:n.array(oe)})},setGateInstance:{request:n.object({gate:w}),response:n.object({id:n.string()})},resolveWaitingGateInstance:{request:n.object({gate:w.extend({status:n.enum([`resumed`,`rejected`])})}),response:n.object({accepted:n.boolean()})},restorePausedGateResumeState:{request:n.object({execution:C.extend({status:n.literal(`paused`)}),gate:w.extend({status:n.literal(`waiting`)})}),response:n.object({executionId:n.string(),gateId:n.string()})},getGateInstance:{request:n.object({executionId:n.string().min(1),nodeId:n.string().min(1),frameId:n.string().min(1).optional()}),response:n.object({gate:w.nullable()})},listGateInstances:{request:_,response:n.object({gates:n.array(w)})},listPausedGateTimeouts:c({request:n.object({}),response:n.object({gates:n.array(w)})}),setSpan:{request:n.object({span:x}),response:n.object({id:n.string()})},listSpans:{request:n.object({executionId:n.string()}),response:n.object({spans:n.array(x)})},setExecutionLink:{request:n.object({link:p}),response:n.object({id:n.string()})},listExecutionLinks:{request:f,response:n.object({links:n.array(p)})},setRunContext:c({request:n.object({runContext:ce}),response:n.object({executionId:n.string()})}),getRunContext:c({request:n.object({executionId:n.string().min(1)}),response:n.object({runContext:ce.nullable()})}),initializeState:c({request:n.object({executionId:n.string().min(1),initialValue:y}),response:n.object({})}),getState:c({request:n.object({executionId:n.string().min(1)}),response:n.object({state:n.object({executionId:n.string().min(1),sequence:n.number().int().nonnegative(),value:y}).nullable()})}),patchState:c({request:n.object({executionId:n.string().min(1),expectedSequence:n.number().int().nonnegative(),nextValue:y}),response:n.object({executionId:n.string().min(1),sequence:n.number().int().positive(),patch:n.array(v),value:y})})},extensions:{drizzle:{workflowDefinitions:Se,workflowExecutions:Ce,workflowExecutionFrames:Te,workflowGateInstances:De,workflowStepSpans:ke,workflowExecutionLinks:je,workflowRunContexts:Ne,worklogSummaries:Fe,worklogFrameEntries:Le,worklogArtifactWrites:ze,worklogGateEvents:Ve,workflowExecutionState:Ue,workflowExecutionStateEvents:Ge}}}),N=Xe.subjects;var Ze=e(t(),1);function Qe(e,t){let n=[];return $e(n,``,e,t),n}function $e(e,t,n,r){if(Array.isArray(n)&&Array.isArray(r)){tt(e,t,n,r);return}if(nt(n)&&nt(r)){et(e,t,n,r);return}at(n,r)||e.push({op:`replace`,path:t,value:r})}function et(e,t,n,r){let i=Array.from(new Set([...Object.keys(n),...Object.keys(r)])).sort();for(let a of i){let i=rt(n,a),o=rt(r,a),s=`${t}/${it(a)}`;if(!i&&o){e.push({op:`add`,path:s,value:r[a]});continue}if(i&&!o){e.push({op:`remove`,path:s});continue}$e(e,s,n[a],r[a])}}function tt(e,t,n,r){let i=Math.min(n.length,r.length);for(let a=0;a<i;a++)$e(e,`${t}/${String(a)}`,n[a],r[a]);for(let i=n.length-1;i>=r.length;i--)e.push({op:`remove`,path:`${t}/${String(i)}`});for(let i=n.length;i<r.length;i++)e.push({op:`add`,path:`${t}/${String(i)}`,value:r[i]})}function nt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function it(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function at(e,t){return Object.is(e,t)}const ot={stepTimeoutMs:300*1e3,stepCooldownMs:500,busAuth:{kind:`none`},platformDefaults:{cwd:process.cwd()},cancelTimeoutMs:1e4},st=new Ze.default({allErrors:!0,strict:!1}),ct=new Map,lt=new Map;function ut(e){let t=e.$id;return typeof t==`string`?t:void 0}function dt(e,t,n){let r=ut(t);return r===void 0?`workflow:${e}:${n}`:`schema-id:${r}`}function ft(e,t){try{return JSON.stringify(pt(t))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function pt(e){if(Array.isArray(e))return e.map(pt);if(typeof e!=`object`||!e)return e;let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,pt(t[e])]))}function mt(e,t,n){let r=lt.get(t);if(r!==void 0&&r!==n)throw Error(`Workflow '${e}' state schema reuses JSON Schema $id '${t}' with different content`);return st.getSchema(t)}function ht(e){return e==null||e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`<root>`} ${e.message??`is invalid`}`).join(`; `)}function gt(e,t){let n=ft(e,t),r=dt(e,t,n),i=ct.get(r);if(i!==void 0)return i;let a=ut(t);if(a!==void 0){let t=mt(e,a,n);if(t!==void 0)return ct.set(r,t),t}try{let e=st.compile(t);return ct.set(r,e),a!==void 0&&lt.set(a,n),e}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function _t(e,t,n){if(e.state===void 0)return;let r=gt(e.id,e.state.schema);if(r(t))return;let i=n===`initial`?`initial state`:`next state`;throw Error(`Workflow '${e.id}' ${i} does not match workflow state schema: ${ht(r.errors)}`)}function vt(e){if(e.state===void 0)return;let t=e.state.initial===void 0?{}:e.state.initial;return _t(e,t,`initial`),t}function P(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function yt(e,t,n){let r=e?j(e,n):t,c=o(t),l=o(i(r)?r:o(t,r)),u,d;try{u=s(c),d=s(l)}catch{return null}let f=a(process.platform===`win32`?u.toLowerCase():u,process.platform===`win32`?d.toLowerCase():d);return f===``||!f.startsWith(`..`)&&!i(f)?d:null}function bt(e){return e instanceof Error&&(`code`in e||`killed`in e)}function xt(e){let t=e[0];return t===void 0||t.trim()===``?null:t}function St(e){let{command:t,cwd:n,env:i,timeoutMs:a,signal:o}=e,s=xt(t);if(s===null)return Promise.reject(Error(`Shell step command is empty`));let c=t.slice(1);return new Promise((e,t)=>{let l=null,u=!1,d=r(s,c,{cwd:n,env:{...process.env,...i},timeout:0,maxBuffer:10*1024*1024,shell:!1},(n,r,i)=>{n?t(Object.assign(n,{stdout:r,stderr:i,aborted:u})):e({stdout:r,stderr:i})}),f=()=>{d.exitCode===null&&(d.kill(`SIGTERM`),l=setTimeout(()=>{d.exitCode===null&&d.kill(`SIGKILL`)},5e3))},p=setTimeout(()=>{f()},a);if(d.on(`close`,()=>{clearTimeout(p),l!==null&&clearTimeout(l)}),o){let e=()=>{u=!0,f()};o.aborted?e():(o.addEventListener(`abort`,e,{once:!0}),d.on(`close`,()=>o.removeEventListener(`abort`,e)))}})}async function Ct(e){let{step:t,workspaceRoot:n,expressionContext:r,signal:i}=e,a=yt(t.cwd,n,r);if(a===null)return{status:`failed`,error:`Shell step cwd '${t.cwd}' is outside workspace root '${n}'`};let o=t.command.map(e=>j(e,r));if(xt(o)===null)return{status:`failed`,error:`Shell step command is empty`};let s=Object.fromEntries(Object.entries(t.env??{}).map(([e,t])=>[e,j(t,r)])),c=t.timeoutMs??3e5;try{let{stdout:e}=await St({command:o,cwd:a,env:s,timeoutMs:c,signal:i});return{status:`completed`,stdout:e}}catch(e){if(!bt(e))return{status:`failed`,error:String(e)};let t=e.aborted===!0,n=!t&&(e.killed===!0||e.signal!=null);return{status:`failed`,error:t?`Command cancelled`:n?`Command timed out after ${c}ms`:e.stderr?.trim()||e.stdout?.trim()||e.message}}}async function wt(e,t,n){if(!(await e.request(N.updateExecution,{executionId:t.id,status:n.status,error:n.error,reason:n.reason,completedAt:n.completedAt})).success)throw Error(`Workflow execution not found: ${t.id}`)}async function Tt(e,t,n,r){t.status=`completed`,t.completedAt=Date.now();try{await wt(e.bus,t,{status:t.status,completedAt:t.completedAt}),await e.bus.emit(T.execution.completed,{executionId:n,workflowId:t.workflowId,totalDuration:t.completedAt-r,completedAt:t.completedAt})}finally{e.activeExecutions.delete(n)}}async function F(e,t,n,r,i){t.status=`failed`,t.error=r,t.completedAt=Date.now();try{await wt(e.bus,t,{status:t.status,error:t.error,completedAt:t.completedAt});try{await i?.()}catch(e){console.error(`[WorkflowFinalizer] Failed to run failure pre-emit hook:`,e)}await e.bus.emit(T.execution.failed,{executionId:n,workflowId:t.workflowId,error:r,completedAt:t.completedAt})}finally{e.activeExecutions.delete(n)}}function Et(e,t,n){let{activeRunnerSteps:r,bus:i}=e,a=`${t}:`;for(let[e,o]of r){if(!e.startsWith(a))continue;let r=e.slice(a.length);o.controller.abort(),i.emit(fe(o.cancelSubject),{executionId:t,stepId:r,reason:n}).catch(t=>{console.error(`[WorkflowFinalizer] Failed to emit cancellation for ${e}:`,t)})}}async function Dt(e,t,n){let r=await e.bus.request(N.getExecution,{executionId:t});if(r.execution==null)return!1;let i=r.execution.workflowId;if(i===void 0)throw Error(`Paused execution ${t} is missing stored workflowId`);let a=Date.now(),{cancelled:o,gates:s}=await e.bus.request(N.cancelPausedExecution,{executionId:t,completedAt:a,reason:n});if(!o)return!1;for(let n of s)await e.bus.emit(T.gate.resolved,{executionId:t,stepId:n.nodeId,stepType:`gate`,frameId:n.frameId,source:`cancelled`}).catch(e=>{console.error(`[WorkflowFinalizer] Failed to emit cancelled gate resolution for ${n.frameId}:`,e)});return await e.bus.emit(T.execution.cancelled,{executionId:t,workflowId:i,reason:n,completedAt:a}),e.activeExecutions.delete(t),!0}async function Ot(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return Dt(e,t,n);let{execution:i}=r;i.status=`cancelled`,i.reason=n,i.completedAt=Date.now();try{for(let[n,r]of e.shellAbortControllers)n.startsWith(`${t}:`)&&(r.abort(),e.shellAbortControllers.delete(n));Et(e,t,n),await wt(e.bus,i,{status:i.status,reason:n,completedAt:i.completedAt}),await e.bus.emit(T.execution.cancelled,{executionId:t,workflowId:i.workflowId,reason:n,completedAt:i.completedAt})}finally{e.activeExecutions.delete(t)}return!0}const kt=[`darwin`,`linux`,`win32`];function At(e){return kt.find(t=>t===e)??`linux`}function jt(e,t){return t}function Mt(e,t){return{...t}}function Nt(e){return e.reason instanceof Error?e.reason.message:typeof e.reason==`string`&&e.reason.length>0?e.reason:ee}async function Pt(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return;let i=e.buildFinalizerDeps(),{execution:a}=await i.bus.request(N.getExecution,{executionId:t});a?.status===`running`&&(r.execution=a,await Ot(i,t,Nt(n))||console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${t}: execution not active`))}async function Ft(e,t){if(t.pausedAtGateId===void 0||t.pausedAtFrameId===void 0)throw Error(`Paused runner result for '${t.executionId}' is missing gate identity`);let{bus:n}=e.buildFinalizerDeps(),{execution:r}=await n.request(N.getExecution,{executionId:t.executionId});if(r?.status!==`running`){let n=e.activeExecutions.get(t.executionId);n!==void 0&&r?.status===`paused`&&(n.execution.status=`paused`,e.activeExecutions.delete(t.executionId));return}let i={...r,status:`paused`};await n.request(N.setExecution,{execution:i});let a=e.activeExecutions.get(t.executionId);a!==void 0&&(a.execution=i),await n.emit(T.execution.paused,{executionId:t.executionId,workflowId:t.workflowId,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}),e.activeExecutions.delete(t.executionId)}async function It(e,t){let n=e.activeExecutions.get(t.executionId);if(!n||n.execution.status!==`running`)return;let r=e.buildFinalizerDeps(),{execution:i}=await r.bus.request(N.getExecution,{executionId:t.executionId});if(i?.status===`running`){if(n.execution=i,t.status===`completed`){await Tt(r,n.execution,t.executionId,n.execution.startedAt);return}if(t.status===`cancelled`){await Ot(r,t.executionId,t.reason??ee);return}if(t.status===`failed`){await F(r,n.execution,t.executionId,t.error);return}}}function Lt(e,t){return{source:{kind:`path`,path:t.filePath},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},...t.executionHints===void 0?{}:{executionHints:t.executionHints},scope:t.scope,busUrl:e.config.busUrl,busAuth:e.config.busAuth,context:e.resolveWorkflowContext(t.workspaceRoot),env:e.config.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:`wait-in-process`}}function Rt(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Lt(e,t);return Promise.resolve().then(()=>r.run(c,s.signal)).then(async t=>{if(t.status===`paused`){await Ft(e,t);return}await It(e,t)}).catch(async t=>{if(s.signal.aborted){await Pt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await F(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function zt(e,t){let{config:n}=e,r=t.definitionSnapshot??(t.source.kind===`definition`?t.workflow:void 0);return{source:t.source,...r===void 0?{}:{definition:r},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},...t.executionHints===void 0?{}:{executionHints:t.executionHints},scope:t.scope,busUrl:n.busUrl,busAuth:n.busAuth,context:e.resolveWorkflowContext(t.workspaceRoot),env:n.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:t.suspensionStrategy??`wait-in-process`}}function Bt(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=zt(e,t),l=t.dispatchMetadata===void 0?void 0:{dispatchMetadata:t.dispatchMetadata};return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{if(t.status===`paused`){await Ft(e,t);return}await It(e,t)}).catch(async t=>{if(s.signal.aborted){await Pt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await F(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function Vt(e,t,n={}){let r=Ht(e,n);return{executionId:e.executionId,workflowId:e.workflowId,workflow:t,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},source:e.source,coordinatorSessionId:e.coordinatorSessionId,sanitizedTriggerPayload:e.triggerPayload,boundInputs:e.inputs,boundConfig:e.config??{},...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},scope:e.scope,workspaceRoot:e.context.repoPath,suspensionStrategy:e.suspensionStrategy,...r===void 0?{}:{dispatchMetadata:r}}}function Ht(e,t){return t.resume===!0?{...e.dispatchMetadata,resume:!0}:e.dispatchMetadata}const Ut=/(?:^|[_-])(authorization|token|cookie|password|set[_-]?cookie|api[_-]?key|secret|credential|private[_-]?key|api[_-]?secret)(?:$|[_-])/i;function Wt(e){if(!e)return;let t={remainingBytes:65536},n={},r=Object.entries(e).slice(0,100);for(let[e,i]of r){if(t.remainingBytes<=0)break;let r=Gt(e,i,0,t);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function Gt(e,t,n,r){if(!(r.remainingBytes<=0||n>6)&&(r.remainingBytes-=e.length,!(r.remainingBytes<=0))){if(Ut.test(e))return r.remainingBytes-=10,`[REDACTED]`;if(t===null)return r.remainingBytes-=4,null;if(typeof t==`string`){let e=t.slice(0,2e3);return r.remainingBytes-=e.length,e}if(typeof t==`number`||typeof t==`boolean`)return r.remainingBytes-=String(t).length,t;if(Array.isArray(t)){let i=[];for(let a of t.slice(0,100)){if(r.remainingBytes<=0)break;let t=Gt(e,a,n+1,r);t!==void 0&&i.push(t)}return i}if(typeof t==`object`){let e={},i=Object.entries(t).slice(0,100);for(let[t,a]of i){if(r.remainingBytes<=0)break;let i=Gt(t,a,n+1,r);i!==void 0&&(e[t]=i)}return e}}}function Kt(e){return(e?.requirements?.capabilities??[]).length>0}function qt(e,t,n){let r=t?.requirements?.capabilities??[];if(Kt(t))return{run:(t,i)=>e.request(ne.dispatch,{config:t,requirements:{customCapabilities:r},...n===void 0?{}:{metadata:n}},{signal:i})}}function Jt(e,t){let n=qt(e.bus,t.executionHints,t.dispatchMetadata);return n===void 0?e.workflowRunner===void 0?e.runExecution(t.executionId).finally(()=>{e.executionTasks.delete(t.executionId)}):Bt(e.buildRunnerTaskDeps(e.workflowRunner),t):Bt(e.buildRunnerTaskDeps(n),t)}async function Yt(e,t,n,r){let i=vt(r);await e.request(N.setExecutionStart,{execution:t,runContext:n,initialState:i})}async function Xt(e,t){try{await e.emit(T.execution.started,t)}catch(e){console.error(`[WorkflowExecutor] execution.started listener failed:`,e)}}async function Zt(e,t){await e.request(b.close,{sessionId:t}).catch(e=>{console.error(`[WorkflowExecutor] Failed to close coordinator session "${t}" after launch failure:`,e)})}function Qt(e,t,n,r,i,a,o,s,c){let l={id:t,workflowId:n.id,coordinatorSessionId:r,status:`running`,inputs:i,config:a,startedAt:Date.now(),triggerPayload:o,...c.artifactRef===void 0?{}:{artifactRef:c.artifactRef},scope:s};return e.set(t,{execution:l,workflow:n,runContext:c,runtimeHandlers:new Map,runtimeLoopGates:new Map}),l}async function $t(e,t,n,r,i){await e.request(N.setExecutionStart,{execution:t,runContext:n,...r===void 0?{}:{initialState:r},...i!==void 0&&i.length>0?{executionLinks:[...i]}:{}})}function en(e,t){let n=e?.source;if(n===void 0)return;let r=de.parse(n);return r.kind===`path`&&!i(r.path)?{...r,path:o(t,r.path)}:r}function tn(e,t,n){return en(t,n)??{kind:`definition`,workflowId:e}}function nn(e,t,n,r){if(!(t.kind===`definition`||e.workflowRunner!==void 0||Kt(n)))throw new ie(ae.NOT_EXECUTABLE,`Workflow source execution '${r}' requires a workflow runner or WorkerNode capability requirements.`)}async function rn(e,t,n,r){return e.set(t,n),await r,t}async function an(e,t){let{workflow:n}=await e.request(N.get,{id:t});if(!n)throw Error(`Workflow not found: ${t}`);return n}function on(e,t){if(e===void 0&&t===void 0)return;let n=[...new Set([...e?.capabilities??[],...t?.capabilities??[]])];return{...e,...t,...n.length>0&&{capabilities:n}}}function sn(e,t){if(e===void 0&&t===void 0)return;let n=on(e?.requirements,t?.requirements),r=e?.providers!==void 0||t?.providers!==void 0?{...e?.providers,...t?.providers}:void 0;return{...e,...t,...n!==void 0&&{requirements:n},...r!==void 0&&{providers:r}}}async function cn(e,t,n,r){let{sessionId:i}=await e.request(b.create,{parentSessionId:t,branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function ln(e,t,n={}){let r=await an(e.bus,t);return un(e,t,{...n,workflow:r})}async function un(e,t,n){let{bus:r,activeExecutions:i,executionTasks:a}=e,{workflow:o,parentSessionId:s,triggerPayload:c,artifactRef:l,executionHints:u,scopeOverride:d}=n,f=P(`wfx`),p=Wt(c),m=jt(o,n.input===void 0?{}:n.input),h=Mt(o,n.config??{}),g=d??o.scope,_=sn(o.executionHints,u),v=await e.resolveExecutionWorkspaceRoot(s),y=n.executionSource??tn(t,_,v),b=n.definitionSnapshot??(y.kind===`definition`?o:void 0);nn(e,y,_,t);let x=await cn(r,s,o.name,v),S=!1;try{let s=e.buildRunContext({executionId:f,workflowId:t,coordinatorSessionId:x,source:y,...b===void 0?{}:{definitionSnapshot:b},inputs:m,config:h,scope:g,triggerPayload:p??{},...l===void 0?{}:{artifactRef:l},..._===void 0?{}:{executionHints:_},workspaceRoot:v}),c=Qt(i,f,o,x,m,h,p,g,s);await $t(r,c,s,y.kind===`definition`?vt(o):void 0,n.executionLinks?.(f));let u=c.startedAt,d=Xt(r,{executionId:f,workflowId:t,coordinatorSessionId:x,startedAt:u,...l===void 0?{}:{artifactRef:l}}),ee=Jt(e,{executionId:f,workflowId:t,workflow:o,...b===void 0?{}:{definitionSnapshot:b},source:y,coordinatorSessionId:x,sanitizedTriggerPayload:p??{},boundInputs:m,boundConfig:h,scope:g,...l===void 0?{}:{artifactRef:l},..._===void 0?{}:{executionHints:_},workspaceRoot:v,suspensionStrategy:s.suspensionStrategy});return S=!0,rn(a,f,ee,d)}catch(e){throw S||(i.delete(f),a.delete(f),await Zt(r,x)),e}}function dn(e,t,n,r,i){e.set(t.id,{execution:t,workflow:{id:t.workflowId,name:n,scope:r,root:{id:`${t.workflowId}-root`,type:`sequence`,nodes:[]}},runContext:i,runtimeHandlers:new Map,runtimeLoopGates:new Map})}async function fn(e,t,n,r){let{sessionId:i}=await e.request(b.create,{...t===void 0?{}:{parentSessionId:t},branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function pn(e,t,n={}){let{bus:r,activeExecutions:i,executionTasks:a}=e,{artifactRef:o,executionHints:s,parentSessionId:c,triggerPayload:l,scopeOverride:u}=n,d=P(`wfx`),f=Wt(l),p=n.input===void 0?{}:n.input,m=n.config??{},h=u??{type:`global`},g=await e.resolveExecutionWorkspaceRoot(c),_=await fn(r,c,t,g),v=d,y={id:d,workflowId:v,coordinatorSessionId:_,status:`running`,inputs:p,config:m,startedAt:Date.now(),triggerPayload:f,...o===void 0?{}:{artifactRef:o},scope:h},b=!1;try{let{workflowRunner:c}=e;if(c===void 0)throw Error(`[WorkflowExecutor] startFileExecution called without a workflow runner`);let l=e.buildRunContext({executionId:d,workflowId:v,coordinatorSessionId:_,source:{kind:`path`,path:t},inputs:p,config:m,scope:h,triggerPayload:f??{},...o===void 0?{}:{artifactRef:o},...s===void 0?{}:{executionHints:s},workspaceRoot:g});await $t(r,y,l,void 0,n.executionLinks?.(d)),dn(i,y,t,h,l);let u=Xt(r,{executionId:d,workflowId:v,coordinatorSessionId:_,startedAt:y.startedAt,...o===void 0?{}:{artifactRef:o}}),x=Rt(e.buildRunnerTaskDeps(c),{executionId:d,workflowId:v,filePath:t,coordinatorSessionId:_,sanitizedTriggerPayload:f??{},boundInputs:p,boundConfig:m,...o===void 0?{}:{artifactRef:o},...s===void 0?{}:{executionHints:s},scope:h,workspaceRoot:g});return b=!0,rn(a,d,x,u)}catch(e){throw b||(i.delete(d),a.delete(d),await Zt(r,_)),e}}function mn(e){let t={};for(let[n,r]of Object.entries(e))r.status===`completed`?t[n]={status:`completed`,output:r.output}:r.status===`skipped`&&(t[n]={status:`skipped`});return t}function I(e){let t={...e,input:e.inputs,steps:e.frames};return{...t,ctx:t}}function hn(){return{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${ye.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:{}}}function gn(e){return{...e,path:[...e.path]}}function _n(e){if(e===`station`||e===`delegate-agent`||e===`delegate-role`||e===`gate`)return e}function vn(e,t){let n=_n(t.nodeType);if(n===void 0||t.status!==`running`&&t.status!==`completed`&&t.status!==`failed`&&t.status!==`skipped`)return;let r=t.startedAt!==void 0&&t.completedAt!==void 0?Math.max(0,t.completedAt-t.startedAt):void 0;return{executionId:e,frameId:t.frameId,stepId:t.nodeId,stepType:n,status:t.status,...t.startedAt===void 0?{}:{startedAt:t.startedAt},...t.completedAt===void 0?{}:{completedAt:t.completedAt},...r===void 0?{}:{durationMs:r},...t.output===void 0?{}:{output:JSON.stringify(t.output)}}}var yn=class e{executionId;workflowId;definition;execution;runtimeHandlers;bus;signal;frameRegistry;framePersistenceTasks=new Map;artifactBinding;constructor(e,t,n,r,i,a,o,s,c,l=hn(),u={}){this.executionId=e,this.workflowId=t,this.definition=n,this.execution=r,this.runtimeHandlers=i,this.bus=a,this.signal=o,this.frameRegistry=s??new Map,this.artifactBinding=c,this.platformContext=l.context,this.env=l.env,this.suspensionStrategy=u.suspensionStrategy??`wait-in-process`,this.resumeFrames=u.resumeFrames,this.runtimeLoopGates=u.runtimeLoopGates??new Map}platformContext;env;suspensionStrategy;resumeFrames;runtimeLoopGates;withSignal(t){return new e(this.executionId,this.workflowId,this.definition,this.execution,this.runtimeHandlers,this.bus,t,this.frameRegistry,this.artifactBinding,{context:this.platformContext,env:this.env},{suspensionStrategy:this.suspensionStrategy,resumeFrames:this.resumeFrames,runtimeLoopGates:this.runtimeLoopGates})}buildExpressionContext(){return{inputs:this.execution.inputs,config:this.execution.config??{},trigger:this.execution.triggerPayload??{},frames:{},previousSteps:{}}}createFrame(e){let t=P(`frm`),n=[...e.path,t],r={frameId:t,nodeId:e.nodeId,nodeType:e.nodeType,path:n,parentFrameId:e.parentFrameId,status:`pending`,attempt:0,iteration:e.iteration,branchKey:e.branchKey};return this.frameRegistry.set(t,r),this.persistFrame(r).catch(()=>void 0),r}async persistFrame(e,t={}){let n=t.requireFrameStorage===!0||this.suspensionStrategy!==`wait-in-process`,r=gn(e),i=vn(this.executionId,r),a=(this.framePersistenceTasks.get(e.frameId)??Promise.resolve()).catch(()=>void 0).then(async()=>{n?await this.bus.request(N.setFrame,{executionId:this.executionId,frame:r}):await this.bus.requestOptional(N.setFrame,{executionId:this.executionId,frame:r}),i!==void 0&&await this.bus.requestOptional(N.setSpan,{span:i})}).catch(t=>{if(n)throw t;console.warn(`[RuntimeContext] Failed to persist frame ${e.frameId}:`,t)});this.framePersistenceTasks.set(e.frameId,a);try{await a}finally{this.framePersistenceTasks.get(e.frameId)===a&&this.framePersistenceTasks.delete(e.frameId)}}async updateFrame(e,t,n={}){let r=this.frameRegistry.get(e);if(!r)throw Error(`Frame not found: ${e}`);Object.assign(r,t),await this.persistFrame(r,n)}getFrame(e){return this.frameRegistry.get(e)}getFramesByNodeId(e){let t=[];for(let n of this.frameRegistry.values())n.nodeId===e&&t.push(n);return t.sort((e,t)=>(e.startedAt??0)-(t.startedAt??0))}async emitFrameStarted(e){try{await this.bus.emit(T.frame.started,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId,startedAt:e.startedAt})}catch(t){console.error(`[RuntimeContext] frame.started observer failed for ${e.frameId}:`,t)}}async emitFrameCompleted(e,t){try{await this.bus.emit(T.frame.completed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,output:e.output,duration:t,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.completed observer failed for ${e.frameId}:`,t)}}async emitFrameFailed(e,t,n){try{await this.bus.emit(T.frame.failed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,error:t,duration:n,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.failed observer failed for ${e.frameId}:`,t)}}};function bn(e){return{kind:`workflow-execution`,id:e,displayName:`Workflow Engine`}}function xn(e,t,n){return{inputs:n.inputs,config:n.config??{},trigger:n.triggerPayload,scope:n.scope,context:n.context,env:n.env,execution:{id:t.id,workflowId:t.workflowId,scope:t.scope},workflow:{id:e.id,name:e.name,scope:e.scope}}}function Sn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Cn(e){if(e!=null){if(Sn(e)&&typeof e.kind==`string`&&typeof e.id==`string`)return{kind:e.kind,id:e.id};throw Error(`Artifact resolve expression must return an object with string kind and id fields.`)}}function wn(e){if(e!==void 0){if(Sn(e))return e;throw Error(`Artifact create expression must return an object.`)}}async function Tn(e){let{bindingOptions:t,binding:n,existingArtifactRef:r,executionId:i,scope:a,initialData:o,bus:s}=e,c=null;if(r!==void 0){let e=await s.request(d.query,{kind:r.kind,ids:[r.id],currentOnly:!0});if(e.artifacts.length>0)c=e.artifacts[0];else return}else c=(await s.request(d.create,{kind:n.kind,schemaVersion:n.schemaVersion,scope:a??n.scope,data:o??{},relations:[],actor:bn(i)})).artifact;return{current:c,schemaVersion:n.schemaVersion,statusPath:t.statusPath,zodSchema:t.schema}}async function En(e){let{definition:t,execution:n,runContext:r,zodSchema:i,bus:a}=e,o=t.artifact;if(o===void 0)return;let s=xn(t,n,r),c=r.artifactRef??(o.resolve===void 0?void 0:Cn(A(o.resolve,s))),l=c===void 0&&o.create!==void 0?wn(A(o.create,s)):void 0,u=await Tn({bindingOptions:{kind:o.kind,schemaVersion:o.schemaVersion,scope:o.scope,...o.resolve===void 0?{}:{resolve:o.resolve},...o.create===void 0?{}:{create:o.create},...o.statusPath===void 0?{}:{statusPath:o.statusPath},...i===void 0?{}:{schema:i}},binding:o,existingArtifactRef:c,executionId:n.id,scope:o.scope,initialData:l,bus:a});if(u===void 0)throw Error(`Workflow artifact binding could not be resolved for the configured artifact reference.`);return u}const Dn=new WeakMap;function On(e,t){let n=(Dn.get(e)??Promise.resolve()).catch(()=>void 0).then(t);return Dn.set(e,n.then(()=>void 0,()=>void 0)),n}function kn(e,t){switch(t.operation){case`set`:return t.data;case`merge`:return{...e,...t.data};case`append`:{let n={...e};for(let[r,i]of Object.entries(t.data)){let t=e[r];Array.isArray(t)&&Array.isArray(i)?n[r]=[...t,...i]:n[r]=i}return n}}}function An(e,t,n){let[r,...i]=t;if(i.length===0)return{...e,[r]:n};let a=e[r]!==null&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{};return{...e,[r]:An(a,i,n)}}function jn(e,t,n){return An(e,t.startsWith(`/`)?t.slice(1).split(`/`):t.split(`.`),n)}function Mn(e,t,n){if(n===`set`||n===`functional`)return[];let r=[];for(let n of Object.keys(t))e[n]!==t[n]&&r.push(`/${n}`);return r}async function Nn(e,t){if(typeof t==`function`)return{nextData:await t(Object.freeze({...e})),operationLabel:`functional`,changedPaths:[]};let n=kn(e,t),r=Mn(e,n,t.operation);return{nextData:n,operationLabel:t.operation,changedPaths:r}}function Pn(e){let{executionId:t,frameId:n,bindingState:r,bus:i}=e,a=Object.freeze({...r.current.data}),o=async e=>On(r,async()=>{let a=r.current,{nextData:o,operationLabel:s,changedPaths:c}=await Nn(a.data,e);if(r.zodSchema!==void 0){let e=r.zodSchema.safeParse(o);if(!e.success)throw Error(`Artifact data validation failed: ${e.error.message}`)}let l=await i.request(d.revise,{previous:{refClass:`artifact`,kind:a.kind,id:a.id,revision:a.revision},revision:{kind:a.kind,schemaVersion:r.schemaVersion,scope:a.scope,data:o,relations:a.relations,actor:bn(t)}});r.current=l.artifact;let u=l.artifact.revision;return i.emit(ue.artifact.updated,{executionId:t,frameId:n,artifactRef:{kind:l.artifact.kind,id:l.artifact.id},paths:c,operation:s,revision:u}).catch(e=>{console.error(`[ArtifactContext] Failed to emit artifact.updated event:`,e)}),u});return{data:a,updateArtifact:o,updateStatus:async e=>{if(r.statusPath===void 0)throw Error(`updateStatus() called but no statusPath is configured on the artifact binding. Set statusPath in the .artifact() builder call to use updateStatus().`);let t=r.statusPath;return o(n=>jn(n,t,e))}}}function Fn(e,t){return{async get(){return(await t.request(T.state.get,{executionId:e})).value},async update(n){let r=await t.request(T.state.get,{executionId:e}),i=structuredClone(r.value),a=await n(i),o=a===void 0?i:a,s=Qe(r.value,o);return(await t.request(T.state.patch,{executionId:e,expectedSequence:r.sequence,patch:s,nextValue:o})).value}}}async function In(e,t,n){if(t.signal.aborted)return{status:`cancelled`};let r=await t.bus.requestOptional(T.resolveRole,{roleId:e.roleId});if(!r.handled)return{status:`failed`,error:e.unresolvedRoleError};let i=j(e.prompt,I(n)),a=e.completion===void 0?r.data:{...r.data,completion:e.completion};return Ln({...e,task:i,resolvedConfig:a},t)}async function Ln(e,t){if(t.signal.aborted)return{status:`cancelled`};let n=await t.bus.requestOptional(S.spawn,{parentSessionId:t.execution.coordinatorSessionId??t.executionId,depth:1,config:Hn(e.task,e.resolvedConfig,e.outputSchema)});if(!n.handled)return{status:`failed`,error:e.unavailableRuntimeError};let r=await Rn(e,t,n.data.subagentId,{attempts:5}),i=await Un(e,t,n.data.subagentId);return i===`aborted`?{status:`cancelled`}:(r||await Rn(e,t,n.data.subagentId,{attempts:1}),i.handled?t.signal.aborted||i.data.status===`cancelled`?{status:`cancelled`}:i.data.status===`completed`?{status:`completed`,output:i.data.result??null}:{status:`failed`,error:`${e.nodeLabel} '${e.nodeId}' subagent ${i.data.status}: ${i.data.error??`no result`}`}:{status:`failed`,error:e.unavailableAwaitError})}async function Rn(e,t,n,r){if(e.frameId===void 0)return!0;try{let i=await zn(t,n,r.attempts);return i===void 0?!1:(await t.bus.emit(T.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:i}),!0)}catch(t){return console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and subagent '${n}'`,t),!1}}async function zn(e,t,n){for(let r=0;r<n;r+=1){if(e.signal?.aborted)return;let i=await Bn(e,t);if(i===void 0||!i.handled)return;if(i.data.childSessionId!==void 0)return i.data.childSessionId;if(r<n-1&&!await Vn(e.signal,20))return}}async function Bn(e,t){try{return await e.bus.requestOptional(S.getStatus,{subagentId:t},{timeout:25,signal:e.signal})}catch{return}}function Vn(e,t){return e.aborted?Promise.resolve(!1):new Promise(n=>{let r,i=t=>{r!==void 0&&(clearTimeout(r),r=void 0),e.removeEventListener(`abort`,a),n(t)},a=()=>i(!1);r=setTimeout(()=>i(!0),t),e.addEventListener(`abort`,a,{once:!0}),e.aborted&&i(!1)})}function Hn(e,t,n){return{task:e,adapterName:t.adapterName,...t.model===void 0?{}:{model:t.model},...t.reasoningEffort===void 0?{}:{reasoningEffort:t.reasoningEffort},...t.harnessId===void 0?{}:{harnessId:t.harnessId},...t.systemPrompt===void 0?{}:{systemPrompt:t.systemPrompt},...t.contextMode===void 0?{}:{contextMode:t.contextMode},...t.providerContext===void 0?{}:{providerContext:t.providerContext},...t.completion===void 0?{}:{completion:t.completion},...n===void 0?{}:{responseSchema:n}}}async function Un(e,t,n){if(t.signal.aborted)return await Wn(e,t,n),`aborted`;let r=t.bus.requestOptional(S.await,{subagentId:n,...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}},{timeout:0});if(t.signal.aborted)return await Wn(e,t,n),`aborted`;let i,a=new Promise(e=>{i=()=>e(`aborted`),t.signal.addEventListener(`abort`,i,{once:!0})}),o=await Promise.race([r,a]);return i!==void 0&&t.signal.removeEventListener(`abort`,i),o===`aborted`&&await Wn(e,t,n),o}async function Wn(e,t,n){try{await t.bus.requestOptional(S.kill,{subagentId:n,reason:`Workflow execution '${t.executionId}' cancelled ${e.cancellationLabel} '${e.nodeId}'`})}catch(t){console.warn(`[workflow-engine] Best-effort subagent kill failed for '${n}' (${e.cancellationLabel} '${e.nodeId}')`,t)}}async function Gn(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=mn(n.frames),a=t.runtimeHandlers.get(e.id);if(a===void 0)return Kn(e,t,n,r);let o=t.artifactBinding!==void 0&&r!==void 0?Pn({executionId:t.executionId,frameId:r,bindingState:t.artifactBinding,bus:t.bus}):void 0,s=t.definition.state===void 0?void 0:Fn(t.executionId,t.bus);async function c(n){if(r===void 0){console.warn(`[station-node] updateProgress called without frameId for node '${e.id}'; skipping emit`);return}let i=le[`execution.progress`].parse({executionId:t.executionId,workflowId:t.workflowId,frameId:r,nodeId:e.id,progress:n,emittedAt:Date.now()});try{await t.bus.emit(T.execution.progress,i)}catch(t){console.error(`[station-node] execution.progress observer failed for ${e.id}:`,t)}}let l;try{l=await a({...t.platformContext,env:t.env,executionId:t.executionId,workflowId:t.workflowId,inputs:t.execution.inputs,config:t.execution.config??{},trigger:t.execution.triggerPayload??{},previousSteps:i,...n.item!==void 0&&{item:n.item},...n.index!==void 0&&{index:n.index},...n.previous!==void 0&&{previous:n.previous},signal:t.signal,...o!==void 0&&{artifact:o},...s!==void 0&&{state:s},bus:t.bus,updateProgress:c})}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}return{status:`completed`,output:l}}async function Kn(e,t,n,r){if(e.role===void 0)return{status:`failed`,error:`No handler registered for station node '${e.id}'`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return In({nodeId:e.id,nodeLabel:`Station node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},...e.completion===void 0?{}:{completion:e.completion},unresolvedRoleError:`No runtime handler registered for station node '${e.id}', and role '${e.role}' could not be resolved`,unavailableRuntimeError:`Subagent runtime is not available for station node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await station node '${e.id}'`,cancellationLabel:`station`,...r===void 0?{}:{frameId:r}},t,n)}async function qn(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(T.resolveAgent,{agentId:e.agentId});if(!i.handled)return{status:`failed`,error:`Agent '${e.agentId}' could not be resolved for delegate-agent node '${e.id}'`};if(t.signal.aborted)return{status:`cancelled`};let a=sr(e,n);if(a.status===`failed`)return a;let o=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return Ln({nodeId:e.id,nodeLabel:`Delegate-agent node`,task:a.task,resolvedConfig:i.data,...o===void 0?{}:{outputSchema:o},unavailableRuntimeError:`Subagent runtime is not available for delegate-agent node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-agent node '${e.id}'`,cancellationLabel:`delegate-agent`,...r===void 0?{}:{frameId:r}},t)}async function Jn(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(T.resolveRole,{roleId:e.role});if(!i.handled)return{status:`failed`,error:`Role '${e.role}' could not be resolved for delegate-role node '${e.id}'`};let a=e.outputSchema===void 0?void 0:{schema:e.outputSchema},o=j(e.prompt,I(n)),s=nr(e,i.data),c={node:e,task:o,resolvedRole:s,...a===void 0?{}:{outputSchema:a},...r===void 0?{}:{frameId:r}};return rr(s)?Yn(c,t):Ln({nodeId:e.id,nodeLabel:`Delegate-role node`,task:o,resolvedConfig:s,...a===void 0?{}:{outputSchema:a},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unavailableRuntimeError:`Subagent runtime is not available for delegate-role node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-role node '${e.id}'`,cancellationLabel:`delegate-role`,...r===void 0?{}:{frameId:r}},t)}async function Yn(e,t){let{node:n}=e,r=n.timeoutMs??3e5,i,a=or(t.signal);try{let n=await Xn(e,t);return`status`in n?n:(i=n.sessionId,t.signal.aborted?{status:`cancelled`}:await Zn(e,t,{abortLink:a,childSessionId:i,timeoutMs:r}))}catch(e){if(t.signal.aborted)return{status:`cancelled`};let r=e instanceof Error?e.message:String(e);return{status:`failed`,error:`Delegate-role node '${n.id}' session turn failed: ${r}`}}finally{a.controller.abort(),a.cleanup(),i!==void 0&&await ar(t,n.id,i)}}async function Xn(e,t){let n=await t.bus.requestOptional(b.create,{sessionId:er(t,e),parentSessionId:t.execution.coordinatorSessionId??t.executionId,branchKind:`subagent`,title:`Workflow delegate-role '${e.node.id}'`});if(!n.handled)return{status:`failed`,error:`Session runtime is not available for delegate-role node '${e.node.id}'`};let r=n.data.sessionId;return await ir(e,t,r),(await t.bus.requestOptional(b.agent.attachResolved,{sessionId:r,agent:tr(e.resolvedRole),role:`lead`},{signal:t.signal}).catch(async n=>{throw await ar(t,e.node.id,r),n})).handled?{sessionId:r}:(await ar(t,e.node.id,r),{status:`failed`,error:`Session runtime cannot attach delegate-role node '${e.node.id}'`})}async function Zn(e,t,n){let r=t.bus.once(u.complete,{timeoutMs:n.timeoutMs,filter:{sessionId:n.childSessionId},signal:n.abortLink.controller.signal});r.catch(()=>void 0);let i=await Qn(e,t,n);if(`status`in i)return i;let a=await $n(e,t,n,i.turnId);if(a.status===`failed`)return a;let o=await r;return t.signal.aborted?{status:`cancelled`}:o.payload.outcome===`error`?{status:`failed`,error:`Delegate-role node '${e.node.id}' agent error: ${o.payload.error??`no result`}`}:{status:`completed`,output:o.payload.message??null}}async function Qn(e,t,n){let r=await t.bus.requestOptional(b.sendMessage,{sessionId:n.childSessionId,message:e.task,...e.outputSchema===void 0?{}:{responseSchema:e.outputSchema},source:`system`},{signal:t.signal});return r.handled?{turnId:r.data.turnId}:(n.abortLink.controller.abort(),{status:`failed`,error:`Session runtime cannot send delegate-role node '${e.node.id}'`})}async function $n(e,t,n,r){let i=await t.bus.requestOptional(b.turn.await,{sessionId:n.childSessionId,turnId:r,timeoutMs:n.timeoutMs},{timeout:0,signal:t.signal});return i.handled?i.data.completion.success?{status:`completed`}:{status:`failed`,error:`Delegate-role node '${e.node.id}' session turn failed: ${i.data.completion.error??`no result`}`}:(n.abortLink.controller.abort(),{status:`failed`,error:`Session runtime cannot await delegate-role node '${e.node.id}'`})}function er(e,t){return`session-workflow-${e.executionId}-${t.frameId??t.node.id}`}function tr(e){return{kind:`adapter`,adapterName:e.adapterName,...e.model===void 0?{}:{model:e.model},...e.reasoningEffort===void 0?{}:{reasoningEffort:e.reasoningEffort},...e.systemPrompt===void 0?{}:{systemPrompt:e.systemPrompt},...e.providerContext===void 0?{}:{providerConfigId:e.providerContext.providerConfigId,providerContext:e.providerContext}}}function nr(e,t){return e.completion===void 0?t:{...t,completion:e.completion}}function rr(e){return e.completion===`turn`&&e.harnessId===void 0&&e.contextMode===void 0}async function ir(e,t,n){if(e.frameId!==void 0)try{await t.bus.emit(T.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:n})}catch(t){console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and session '${n}'`,t)}}async function ar(e,t,n){try{await e.bus.requestOptional(b.close,{sessionId:n})}catch(e){console.warn(`[workflow-engine] Failed to close delegate-role session '${n}' for node '${t}'`,e)}}function or(e){let t=new AbortController;if(e.aborted)return t.abort(),{controller:t,cleanup:()=>void 0};let n=()=>t.abort();return e.addEventListener(`abort`,n,{once:!0}),{controller:t,cleanup:()=>e.removeEventListener(`abort`,n)}}function sr(e,t){try{let n=I(t);return{status:`completed`,task:cr(e.inputExpression===void 0?n:A(e.inputExpression,n))}}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`delegate-agent node '${e.id}': input expression evaluation failed: ${n}`}}}function cr(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function lr(e,t,n,r){try{let i=A(n,I(r));return Array.isArray(i)?i:{status:`failed`,error:`${t} node '${e}': collection expression did not resolve to an array (got ${typeof i})`}}catch(n){return{status:`failed`,error:`${t} node '${e}': collection expression evaluation failed: ${n instanceof Error?n.message:String(n)}`}}}function ur(e,t,n){for(let r of[...e.nodes].reverse()){let e=n.getFramesByNodeId(r.id);for(let n of e)if(n.parentFrameId===t&&n.status===`completed`)return n.output}}function dr(e,t,n){return ur(e.body,t,n)}function fr(e){if(e.length===0)return;let t=new Map,n=new Map;for(let r of e){n.set(r.frameId,r);let e=t.get(r.nodeId)??[];e.push(r),t.set(r.nodeId,e)}return{byNodeId:t,byFrameId:n}}const pr=new Set([`completed`,`skipped`,`waiting`]);function L(e,t,n){let r=e?.byNodeId.get(t)??[],i=n.statuses??pr;return r.find(e=>e.parentFrameId===n.parentFrameId&&e.branchKey===n.branchKey&&e.iteration===n.iteration&&i.has(e.status))}function R(e,t,n){let r={...e.frames,[t]:n};return{...e,frames:r,previousSteps:mn(r),output:n.status===`completed`?n.output:e.output}}function z(e,t){if(typeof AbortSignal.any==`function`)return AbortSignal.any([e,t]);let n=new AbortController,r=()=>n.abort();return e.addEventListener(`abort`,r,{once:!0}),t.addEventListener(`abort`,r,{once:!0}),n.signal}const mr=new Set([`completed`,`running`]);function hr(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function gr(e,t,n,r,i,a,o=`all-settled`){if(t.signal.aborted)return{status:`cancelled`};let s=Object.entries(e.branches);if(s.length===0)return{status:`completed`,output:yr({},o)};let c=new AbortController,l=new AbortController,u=t.suspensionStrategy!==`wait-in-process`,d=o===`fail-fast`?z(c.signal,l.signal):u?l.signal:void 0,f=d===void 0?t.signal:z(t.signal,d),p=f===t.signal?t:t.withSignal(f),m=s.map(([s,c])=>_r(s,c,e,p,n,r,i,a,{outerSignal:t.signal,pauseSignal:o===`fail-fast`||u?l.signal:void 0}));if(o===`all-settled`){let e=await Promise.all(u?m.map(e=>e.then(e=>(e.status===`paused`&&l.abort(),e))):m),t=e.find(e=>e.status===`paused`);return t===void 0?{status:`completed`,output:yr(br(s,e),o)}:t}let h=await vr(s,m,c,l);return h.type===`cancelled`?{status:`cancelled`}:h.type===`paused`?h.outcome:h.type===`failed`?{status:`failed`,error:h.error}:{status:`completed`,output:yr(br(s,h.outcomes),o)}}async function _r(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l=L(r.resumeFrames,n.id,{parentFrameId:o,branchKey:e,statuses:mr});if(l?.status===`completed`)return{status:`completed`,...l.output===void 0?{}:{output:l.output}};let u=l??r.createFrame({nodeId:n.id,nodeType:`parallel`,path:s,parentFrameId:o,branchKey:e});if(r.signal.aborted)return hr(u,c)||await $(u,r),{status:`cancelled`};l===void 0&&await X(u,r);let d;try{d=await a(t,r,i,u.frameId,u.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(u,r,t),{status:`failed`,error:t}}switch(d.status){case`completed`:{let e=ur(t,u.frameId,r);return await Z(u,r,e),{status:`completed`,output:e}}case`skipped`:return await Z(u,r),{status:`completed`};case`cancelled`:return hr(u,c)||await $(u,r),{status:`cancelled`};case`paused`:return d;case`failed`:return await Q(u,r,d.error),{status:`failed`,error:d.error}}}async function vr(e,t,n,r){let i,a,o=t.map(e=>e.then(e=>(e.status===`failed`&&i===void 0?(i=e.error,n.abort()):e.status===`paused`&&a===void 0&&(a=e,r.abort()),e),e=>{let t=e instanceof Error?e.message:String(e);return i===void 0&&(i=t,n.abort()),{status:`failed`,error:t}})),s=await Promise.all(o);return a===void 0?s.some(e=>e.status===`cancelled`)&&i===void 0?{type:`cancelled`}:i===void 0?{type:`completed`,outcomes:s}:{type:`failed`,error:i}:{type:`paused`,outcome:a}}function yr(e,t){return{mode:t,branches:e}}function br(e,t){let n={};for(let r=0;r<e.length;r++){let[i]=e[r],a=t[r];n[i]=xr(a)}return n}function xr(e){switch(e.status){case`completed`:return{status:`fulfilled`,...e.output===void 0?{}:{value:e.output}};case`skipped`:return{status:`fulfilled`,value:null};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:e.pausedAtGateId,pausedAtFrameId:e.pausedAtFrameId};case`failed`:return{status:`rejected`,reason:e.error}}}const Sr=new Ze.default({allErrors:!0,strict:!1});function B(e,t){if(t===void 0)return{status:`ok`};try{return{status:`ok`,validator:Sr.compile(t)}}catch(t){return{status:`failed`,error:`Gate '${e}' has an invalid resumeSchema: ${t instanceof Error?t.message:String(t)}`}}}function V(e,t){return e===void 0||e(t)?{valid:!0}:{valid:!1,error:Cr(e.errors??[])}}function H(e,t,n){let r=B(e,t);return r.status===`failed`?{valid:!1,error:r.error}:V(r.validator,n)}function Cr(e){return e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`/`} ${e.message??`is invalid`}`).join(`; `)}function wr(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const Tr={action:`approve`,source:`timeout`};function Er(e){return e===void 0?{}:{reason:e}}async function Dr(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=wr();o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),e.reject(`timed-out`))},r),a.push(e.promise)}try{let e=await Promise.race(a);return n.removeEventListener(`abort`,i),o!==void 0&&clearTimeout(o),{action:e.action,resumeData:e.resumeData,timedOut:!1,wasCancelled:!1,reason:e.reason}}catch(e){return o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i),e===`timed-out`?{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1}:{action:`reject`,resumeData:null,timedOut:!1,wasCancelled:!0}}}async function Or(e,t,n,r,i,a){let o={required:e.suspensionStrategy!==`wait-in-process`};if(a.timedOut){let a=Date.now();if(r.autoAction===`approve`){let s=V(i,Tr);return s.valid?(await U(e,{...r,status:`resumed`,resumeData:Tr,resolvedAt:a},o),await W(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:{resumeData:Tr}}):(await U(e,{...r,status:`timed-out`,resolvedAt:a},o),await W(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' auto-approve timeout resume data does not match resumeSchema: ${s.error}`})}return await U(e,{...r,status:`timed-out`,resolvedAt:a},o),await W(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}if(a.wasCancelled||e.signal.aborted)return await U(e,{...r,status:`cancelled`,resolvedAt:Date.now()},o),await W(e,t.id,n,{source:`cancelled`}),{status:`cancelled`};let s=Date.now();await U(e,{...r,status:a.action===`reject`?`rejected`:`resumed`,resumeData:a.resumeData,...Er(a.reason),resolvedAt:s},o);try{await e.bus.emit(T.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:a.resumeData}),await W(e,t.id,n,{action:a.action,source:`user`,...Er(a.reason)})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return{status:`completed`,output:{resumeData:a.resumeData}}}async function kr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.resumeSchema??{};if(t.suspensionStrategy!==`wait-in-process`){let n=await Nr(t,e,r);if(n!==void 0)return n}let a=B(e.id,e.resumeSchema);return a.status===`failed`?{status:`failed`,error:a.error}:Ar(t,e,n,r,i,a.validator)}async function Ar(e,t,n,r,i,a){let o=j(t.prompt,I(n)),s={executionId:e.executionId,nodeId:t.id,frameId:r,schema:i,prompt:o,status:`waiting`,autoAction:t.autoAction,timeoutMs:t.timeoutMs,createdAt:Date.now()},c=e.suspensionStrategy!==`wait-in-process`;if(await U(e,s,{required:c}),await e.updateFrame(r,{status:`waiting`},{requireFrameStorage:c}),c)return await jr(e,t,r,i,o,s.createdAt),{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:r};let u={value:!0},d=wr(),f=e.bus.on(T.gate.respond,async n=>{let{executionId:i,gateId:o,frameId:s,action:c,resumeData:f,reason:p}=n.payload;if(i!==e.executionId||o!==t.id||s!==void 0&&s!==r){try{await n.next()}catch(e){if(e instanceof l)n.setResult({accepted:!1});else throw e}return}if(!u.value){n.setResult({accepted:!1});return}if(!V(a,f).valid){n.setResult({accepted:!1});return}u.value=!1,n.setResult({accepted:!0}),d.resolve({action:c,resumeData:f,reason:p})});await jr(e,t,r,i,o,s.createdAt);let p=await Dr(d,u,e.signal,t.timeoutMs);return f(),Or(e,t,r,s,a,p)}async function jr(e,t,n,r,i,a){try{await e.bus.emit(T.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.title!==void 0&&{title:t.title},autoAction:t.autoAction,timeoutMs:t.timeoutMs,openedAt:a})}catch(e){console.error(`[GateNode] gate.suspended emit failed for '${t.id}':`,e)}}async function Mr(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(N.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(N.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function Nr(e,t,n){let r=await Mr(e,t.id,n);if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData!==void 0){let i=H(t.id,r.schema,r.resumeData);if(!i.valid)return{status:`failed`,error:`Gate '${t.id}' persisted resumeData is invalid: ${i.error}`};try{await e.bus.emit(T.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:r.resumeData})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return await W(e,t.id,n,{action:r.status===`rejected`?`reject`:`approve`,source:`user`,...Er(r.reason)}),{status:`completed`,output:{resumeData:r.resumeData}}}if(r?.status===`waiting`){if(r.timeoutMs!==null&&Date.now()>=r.createdAt+r.timeoutMs){let i=B(t.id,r.schema);return i.status===`failed`?{status:`failed`,error:i.error}:Or(e,t,n,r,i.validator,{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1})}return{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}}if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData===void 0)return{status:`failed`,error:`Gate '${t.id}' has status '${r.status}' but resumeData is missing — cannot reconstruct output`};if(r!==null)return{status:`failed`,error:`Gate '${t.id}' cannot resume from status '${r.status}'`}}async function U(e,t,n={}){try{n.required===!0?await e.bus.request(N.setGateInstance,{gate:t}):await e.bus.requestOptional(N.setGateInstance,{gate:t})}catch(e){if(n.required===!0)throw e;console.warn(`[GateNode] Failed to upsert gate instance for '${t.nodeId}':`,e)}}async function W(e,t,n,r){try{await e.bus.emit(T.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[GateNode] gate.resolved emit failed for '${t}':`,e)}}function G(e){return{status:`fulfilled`,...e===void 0?{}:{value:e}}}const Pr=new Set([`completed`,`running`]);function Fr(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function Ir(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=lr(e.id,`iterate`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:Br([])};let c=await Lr(s,e,t,n,r,i,a,e.concurrency!==void 0&&e.concurrency>0?e.concurrency:0);if(t.signal.aborted&&c.every(e=>e.status===`cancelled`))return{status:`cancelled`};let l=c.find(e=>e.status===`paused`);return l===void 0?{status:`completed`,output:Br(c)}:{status:`paused`,pausedAtGateId:l.pausedAtGateId,pausedAtFrameId:l.pausedAtFrameId}}async function Lr(e,t,n,r,i,a,o,s){let c=new AbortController,l=n.suspensionStrategy!==`wait-in-process`,u=l?z(n.signal,c.signal):n.signal,d=u===n.signal?n:n.withSignal(u),f={outerSignal:n.signal,...l?{pauseSignal:c.signal}:{}};if(s===0){let n=e.map((e,n)=>zr(e,n,t,d,r,i,a,o,f));return Promise.all(l?n.map(e=>Rr(e,c)):n)}let p=Array(e.length);for(let n=0;n<e.length;n+=s){if(d.signal.aborted){for(let t=n;t<e.length;t++)p[t]={status:`cancelled`};break}let u=Math.min(n+s,e.length),m=[];for(let s=n;s<u;s++)m.push(zr(e[s],s,t,d,r,i,a,o,f));let h=await Promise.all(l?m.map(e=>Rr(e,c)):m);for(let e=0;e<h.length;e++)p[n+e]=h[e];if(h.some(e=>e.status===`paused`)){for(let t=u;t<e.length;t++)p[t]={status:`cancelled`};break}}return p}function Rr(e,t){return e.then(e=>(e.status===`paused`&&t.abort(),e))}async function zr(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l={...i,item:e,index:t},u=L(r.resumeFrames,n.id,{parentFrameId:o,iteration:t,statuses:Pr});if(u?.status===`completed`)return G(u.output);let d=u??r.createFrame({nodeId:n.id,nodeType:`iterate`,path:s,parentFrameId:o,iteration:t});if(r.signal.aborted)return Fr(d,c)||await $(d,r),{status:`cancelled`};u===void 0&&await X(d,r);let f;try{f=await a(n.body,r,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,r,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=dr(n,d.frameId,r);return await Z(d,r,e),G(e)}case`skipped`:return await Z(d,r),G();case`cancelled`:return Fr(d,c)||await $(d,r),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,r,f.error),{status:`rejected`,reason:f.error}}}function Br(e){return{items:e}}const Vr=new Set([`completed`,`running`]);async function Hr(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=lr(e.id,`iterate-chain`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:Wr([])};let c=[],l;for(let o=0;o<s.length;o++){if(t.signal.aborted)return{status:`cancelled`};let u=s[o],d=await Ur(u,o,l,e,t,n,r,i,a);switch(c.push(d),d.status){case`fulfilled`:l=d.value;break;case`rejected`:return{status:`failed`,error:d.reason};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:d.pausedAtGateId,pausedAtFrameId:d.pausedAtFrameId}}}return{status:`completed`,output:Wr(c)}}async function Ur(e,t,n,r,i,a,o,s,c){if(i.signal.aborted)return{status:`cancelled`};let l={...a,item:e,index:t,...n!==void 0&&{previous:n}},u=L(i.resumeFrames,r.id,{parentFrameId:s,iteration:t,statuses:Vr});if(u?.status===`completed`)return G(u.output);let d=u??i.createFrame({nodeId:r.id,nodeType:`iterate-chain`,path:c,parentFrameId:s,iteration:t});if(i.signal.aborted)return await $(d,i),{status:`cancelled`};u===void 0&&await X(d,i);let f;try{f=await o(r.body,i,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,i,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=dr(r,d.frameId,i);return await Z(d,i,e),G(e)}case`skipped`:return await Z(d,i),G();case`cancelled`:return await $(d,i),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,i,f.error),{status:`rejected`,reason:f.error}}}function Wr(e){return{items:e}}async function Gr(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=new Promise((e,a)=>{o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),a(`timed-out`))},r)});a.push(e)}try{return{status:`resolved`,value:await Promise.race(a)}}catch(e){if(e===`timed-out`)return{status:`timed-out`};if(e===`cancelled`)return{status:`cancelled`};throw e}finally{o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i)}}const K={action:`approve`,source:`timeout`};async function q(e,t,n){try{n?await e.bus.request(N.setGateInstance,{gate:t}):await e.bus.requestOptional(N.setGateInstance,{gate:t})}catch(e){if(n)throw e;console.warn(`[LoopNode] Failed to upsert escalation gate for '${t.nodeId}':`,e)}}async function Kr(e,t,n,r,i,a){try{await e.bus.emit(T.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.gate.escalation?.title!==void 0&&{title:t.gate.escalation.title},autoAction:t.gate.escalation?.autoAction??`reject`,timeoutMs:t.gate.escalation?.timeoutMs??null,openedAt:a})}catch(e){console.error(`[LoopNode] gate.suspended emit failed for '${t.id}':`,e)}}async function J(e,t,n,r){try{await e.bus.emit(T.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[LoopNode] gate.resolved emit failed for '${t}':`,e)}}function qr(e){let{node:t,ctx:n,parentFrameId:r,validator:i,pending:a,deferred:o}=e;return n.bus.on(T.gate.respond,async e=>{let{executionId:s,gateId:c,frameId:u,action:d,resumeData:f,reason:p}=e.payload;if(s!==n.executionId||c!==t.id||u!==void 0&&u!==r){try{await e.next()}catch(t){if(t instanceof l)e.setResult({accepted:!1});else throw t}return}if(!a.value){e.setResult({accepted:!1});return}if(!V(i,f).valid){e.setResult({accepted:!1});return}a.value=!1,e.setResult({accepted:!0}),o.resolve({action:d,resumeData:f,reason:p})})}async function Jr(e,t,n,r,i,a,o){let s=B(e.id,e.gate.escalation?.resumeSchema);if(s.status===`failed`)return{status:`failed`,error:s.error};let c={value:!0},l=wr(),u=qr({node:e,ctx:t,parentFrameId:n,validator:s.validator,pending:c,deferred:l});await Kr(t,e,n,r.schema,r.prompt??``,r.createdAt);try{let s=await Gr(l,c,t.signal,r.timeoutMs);return s.status===`timed-out`?Zr(t,e,n,r,i,a,o,!1):s.status===`resolved`?Yr(t,e.id,n,r,s.value,i,a,o):(await q(t,{...r,status:`cancelled`,resolvedAt:Date.now()},!1),await J(t,e.id,n,{source:`cancelled`}),{status:`cancelled`})}finally{u()}}async function Yr(e,t,n,r,i,a,o,s){let c=Date.now(),l=i.action===`reject`?`rejected`:`resumed`;await q(e,{...r,status:l,resumeData:i.resumeData,...i.reason===void 0?{}:{reason:i.reason},resolvedAt:c},!1);try{await e.bus.emit(T.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t,resumeData:i.resumeData}),await J(e,t,n,{action:i.action,source:`user`,...i.reason===void 0?{}:{reason:i.reason}})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t}':`,e)}return{status:`completed`,output:Y(`escalate`,o,a,s,i.resumeData)}}async function Xr(e,t,n,r,i,a,o){let s=e.gate.escalation;if(s===void 0)return{status:`completed`,output:Y(`escalate`,a,i,o)};let c=j(s.prompt,I(n)),l=s.resumeSchema??{},u={executionId:t.executionId,nodeId:e.id,frameId:r,schema:l,prompt:c,status:`waiting`,autoAction:s.autoAction??`reject`,timeoutMs:s.timeoutMs??null,createdAt:Date.now()},d=t.suspensionStrategy!==`wait-in-process`;return await q(t,u,d),await t.updateFrame(r,{status:`waiting`},{requireFrameStorage:d}),d?(await Kr(t,e,r,l,c,u.createdAt),{status:`paused`,pausedAtGateId:e.id,pausedAtFrameId:r}):Jr(e,t,r,u,i,a,o)}async function Zr(e,t,n,r,i,a,o,s=!0){let c=Date.now();if(r.autoAction===`approve`){let l=H(t.id,r.schema,K);return l.valid?(await q(e,{...r,status:`resumed`,resumeData:K,resolvedAt:c},s),await J(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:Y(`escalate`,a,i,o,K)}):(await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate auto-approve timeout resume data does not match resumeSchema: ${l.error}`})}return await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}async function Qr(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(N.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(N.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function $r(e,t,n,r,i,a){let o=await Qr(e,t.id,n);if(o!==null){if((o.status===`resumed`||o.status===`rejected`)&&o.resumeData!==void 0){let s=H(t.id,o.schema,o.resumeData);if(!s.valid)return{status:`failed`,error:`Loop '${t.id}' escalation gate resumeData is invalid: ${s.error}`};try{await e.bus.emit(T.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:o.resumeData})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t.id}':`,e)}return await J(e,t.id,n,{action:o.status===`rejected`?`reject`:`approve`,source:`user`,...o.reason===void 0?{}:{reason:o.reason}}),{status:`completed`,output:Y(`escalate`,i,r,a,o.resumeData)}}return o.status===`waiting`?o.timeoutMs!==null&&Date.now()>=o.createdAt+o.timeoutMs?Zr(e,t,n,o,r,i,a):{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}:(o.status===`resumed`||o.status===`rejected`)&&o.resumeData===void 0?{status:`failed`,error:`Loop '${t.id}' escalation gate has status '${o.status}' but resumeData is missing`}:{status:`failed`,error:`Loop '${t.id}' escalation gate cannot resume from status '${o.status}'`}}}const ei=new Set([`completed`,`running`]);async function ti(e,t,n,r,i,a,o){let s=L(n.resumeFrames,e.id,{parentFrameId:a,iteration:t,statuses:ei});if(s?.status===`completed`)return{terminal:!1,output:s.output??null,replayed:!0,gateExpressionCtx:ri(e,n,r,s.frameId)};let c=s??n.createFrame({nodeId:e.id,nodeType:`loop`,path:o,parentFrameId:a,iteration:t});if(n.signal.aborted)return await $(c,n),{terminal:!0,outcome:{status:`cancelled`}};s===void 0&&await X(c,n);let l=await ii(e,c,n,r,i);if(l!==void 0)return{terminal:!0,outcome:l};let u=ur(e.body,c.frameId,n)??null;return await Z(c,n,u),{terminal:!1,output:u,replayed:!1,gateExpressionCtx:ri(e,n,r,c.frameId)}}function ni(e,t,n,r){return L(n.resumeFrames,e.id,{parentFrameId:r,iteration:t,statuses:ei})!==void 0}function ri(e,t,n,r){let i=n;for(let n of e.body.nodes){let e=t.getFramesByNodeId(n.id).find(e=>e.parentFrameId===r&&e.status===`completed`);e!==void 0&&(i=R(i,n.id,{status:`completed`,...e.output===void 0?{}:{output:e.output}}))}return i}async function ii(e,t,n,r,i){let a;try{a=await i(e.body,n,r,t.frameId,t.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(t,n,r),{status:`failed`,error:r}}switch(a.status){case`failed`:return await Q(t,n,a.error),{status:`failed`,error:a.error};case`cancelled`:return await $(t,n),{status:`cancelled`};case`paused`:return a;case`skipped`:case`completed`:return}}function ai(e,t,n,r,i){let a=null;if(e.gate.input!==void 0)try{let t=I(r);a=A(e.gate.input,t)}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`Loop node '${e.id}': gate input expression evaluation failed: ${n}`}}let o=e.gate.config??null,s=i(a,o,{executionId:n.executionId,nodeId:e.id,round:t+1,maxRounds:e.maxRounds});return s.kind===`loop`&&t+1>=e.maxRounds?{kind:`escalate`,reason:`max_rounds_reached`}:s}async function oi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=t.runtimeLoopGates.get(e.gate.handler);if(o===void 0)return{status:`failed`,error:`Loop node '${e.id}': no gate handler registered for '${e.gate.handler}'`};let s=[],c=0;for(;;){if(t.signal.aborted)return{status:`cancelled`};let l=await ti(e,c,t,n,r,i,a);if(l.terminal)return l.outcome;if(s.push(l.output),l.replayed){if(c++,ni(e,c,t,i))continue;if(e.gate.escalation!==void 0&&t.suspensionStrategy!==`wait-in-process`){let n=await $r(t,e,i,{kind:`escalate`,reason:`resumed_from_gate`},c,s);if(n!==void 0)return n}continue}let u=ai(e,c,t,l.gateExpressionCtx,o);if(`status`in u)return u;if(u.kind===`pass`)return{status:`completed`,output:Y(`pass`,c+1,u,s)};if(u.kind===`escalate`)return e.gate.escalation===void 0?{status:`completed`,output:Y(`escalate`,c+1,u,s)}:Xr(e,t,n,i,u,c+1,s);c++}}function Y(e,t,n,r,i){return{outcome:e,rounds:t,lastGateOutcome:n,bodyOutputs:r,...i===void 0?{}:{resumeData:i}}}async function X(e,t){e.status=`running`,e.startedAt=Date.now(),await t.persistFrame(e),await t.emitFrameStarted(e)}async function Z(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`completed`,e.output=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameCompleted(e,i)}async function Q(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`failed`,e.error=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameFailed(e,n,i)}async function si(e,t){e.status=`skipped`,e.completedAt=Date.now(),await t.persistFrame(e)}async function $(e,t){e.status=`cancelled`,e.completedAt=Date.now(),await t.persistFrame(e)}function ci(e,t){return!!A(e,I(t))}async function li(e,t,n,r,i,a=[]){if(t.signal.aborted)return{status:`cancelled`};switch(e.type){case`sequence`:return r(e,t,n,i,a);case`station`:return Gn(e,t,n,i);case`delegate-agent`:return qn(e,t,n,i);case`delegate-role`:return Jn(e,t,n,i);case`parallel`:return gr(e,t,n,r,i??``,a,e.mode??`all-settled`);case`gate`:return kr(e,t,n,i??``);case`iterate`:return Ir(e,t,n,r,i??``,a);case`iterate-chain`:return Hr(e,t,n,r,i??``,a);case`loop`:return oi(e,t,n,r,i??``,a);default:return{status:`failed`,error:`Unknown node type: ${String(e.type)}`}}}const ui=new Set([`completed`,`skipped`,`waiting`,`running`]);function di(e){return e.type===`parallel`||e.type===`iterate`||e.type===`iterate-chain`||e.type===`loop`}function fi(e,t,n){return L(e.resumeFrames,t.id,{parentFrameId:n,...di(t)?{statuses:ui}:{}})}function pi(e,t,n){if(n?.status===`completed`)return R(e,t.id,{status:`completed`,...n.output===void 0?{}:{output:n.output}});if(n?.status===`skipped`)return R(e,t.id,{status:`skipped`})}async function mi(e,t,n,r,i,a,o){try{return{result:ci(e,i)}}catch(e){let i=e instanceof Error?e.message:String(e);return await Q(r.createFrame({nodeId:n.id,nodeType:n.type,path:a,parentFrameId:o}),r,`'${t}' condition evaluation failed: ${i}`),{status:`failed`,error:`'${t}' condition evaluation failed for '${n.id}': ${i}`}}}async function hi(e,t,n,r,i,a){let o=a??t.createFrame({nodeId:e.id,nodeType:e.type,path:r,parentFrameId:i});if(t.signal.aborted)return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};a===void 0&&await X(o,t);let s;try{s=await li(e,t,n,gi,o.frameId,o.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(o,t,r),{updatedCtx:n,outcome:{status:`failed`,error:r}}}switch(s.status){case`completed`:return await Z(o,t,s.output),{updatedCtx:R(n,e.id,{status:`completed`,output:s.output})};case`skipped`:return await si(o,t),{updatedCtx:R(n,e.id,{status:`skipped`})};case`cancelled`:return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};case`paused`:return{updatedCtx:n,outcome:s};case`failed`:return await Q(o,t,s.error),{updatedCtx:n,outcome:{status:`failed`,error:s.error}}}}async function gi(e,t,n,r,i=[]){let a=n;for(let n of e.nodes){if(t.signal.aborted)return{status:`cancelled`};let e=fi(t,n,r),o=pi(a,n,e);if(o!==void 0){a=o;continue}if(n.when!==void 0){let e=await mi(n.when,`when`,n,t,a,i,r);if(`status`in e)return e;if(!e.result){await si(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=R(a,n.id,{status:`skipped`});continue}}if(n.skip!==void 0){let e=await mi(n.skip,`skip`,n,t,a,i,r);if(`status`in e)return e;if(e.result){await si(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=R(a,n.id,{status:`skipped`});continue}}let s=e?.status===`waiting`&&n.type===`gate`||(e?.status===`running`||e?.status===`waiting`)&&di(n)?e:void 0,{updatedCtx:c,outcome:l}=await hi(n,t,a,i,r,s);if(a=c,l!==void 0)return l}return{status:`completed`}}function _i(e,t){let n=new Set;if(pe(e.root,{enter(e){if(e.type!==`loop`)return;let r=e;t.has(r.gate.handler)||n.add(r.gate.handler)}}),n.size>0)throw Error(`Workflow '${e.id}' is missing loop gate handler(s): ${[...n].join(`, `)}`)}export{Ue as A,ke as B,N as C,we as D,Te as E,M as F,Ie as G,ze as H,De as I,Fe as J,Ve as K,Ee as L,Ge as M,We as N,je as O,Ce as P,Ne as R,Xe as S,xe as T,Re as U,Oe as V,Le as W,le as X,Pe as Y,T as Z,P as _,En as a,ot as b,ln as c,Jt as d,Vt as f,Tt as g,F as h,fr as i,He as j,Ae as k,pn as l,Ot as m,gi as n,yn as o,At as p,Be as q,H as r,Yt as s,_i as t,un as u,Ct as v,Se as w,Qe as x,_t as y,Me as z};
@@ -241,7 +241,7 @@ declare const MessageStorageNamespace$1: {
241
241
  tableName: "messages";
242
242
  dataType: "string";
243
243
  columnType: "SQLiteText";
244
- data: "text" | "compact" | "voice";
244
+ data: "text" | "voice" | "compact";
245
245
  driverParam: string;
246
246
  notNull: false;
247
247
  hasDefault: false;
@@ -268,8 +268,8 @@ declare const MessageStorageNamespace$1: {
268
268
  message: _$zod.ZodObject<{
269
269
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
270
270
  text: "text";
271
- compact: "compact";
272
271
  voice: "voice";
272
+ compact: "compact";
273
273
  }>>;
274
274
  sessionId: _$zod.ZodString;
275
275
  role: _$zod.ZodEnum<{
@@ -335,9 +335,9 @@ declare const MessageStorageNamespace$1: {
335
335
  isError: _$zod.ZodOptional<_$zod.ZodBoolean>;
336
336
  }, _$zod_v4_core0.$strip>], "type">>;
337
337
  agentId: _$zod.ZodOptional<_$zod.ZodString>;
338
- timestamp: _$zod.ZodNumber;
339
338
  adapterSessionId: _$zod.ZodOptional<_$zod.ZodString>;
340
339
  turnId: _$zod.ZodNullable<_$zod.ZodString>;
340
+ timestamp: _$zod.ZodNumber;
341
341
  contentText: _$zod.ZodString;
342
342
  adapterMessageId: _$zod.ZodOptional<_$zod.ZodString>;
343
343
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
@@ -420,8 +420,8 @@ declare const MessageStorageNamespace$1: {
420
420
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
421
421
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
422
422
  text: "text";
423
- compact: "compact";
424
423
  voice: "voice";
424
+ compact: "compact";
425
425
  }>>;
426
426
  }, _$zod_v4_core0.$strip>;
427
427
  }, _$zod_v4_core0.$strip>;
@@ -515,8 +515,8 @@ declare const MessageStorageNamespace$1: {
515
515
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
516
516
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
517
517
  text: "text";
518
- compact: "compact";
519
518
  voice: "voice";
519
+ compact: "compact";
520
520
  }>>;
521
521
  }, _$zod_v4_core0.$strip>>;
522
522
  nextCursor: _$zod.ZodNullable<_$zod.ZodObject<{
@@ -604,8 +604,8 @@ declare const MessageStorageNamespace$1: {
604
604
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
605
605
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
606
606
  text: "text";
607
- compact: "compact";
608
607
  voice: "voice";
608
+ compact: "compact";
609
609
  }>>;
610
610
  }, _$zod_v4_core0.$strip>>;
611
611
  }, _$zod_v4_core0.$strip>;
@@ -689,8 +689,8 @@ declare const MessageStorageNamespace$1: {
689
689
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
690
690
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
691
691
  text: "text";
692
- compact: "compact";
693
692
  voice: "voice";
693
+ compact: "compact";
694
694
  }>>;
695
695
  }, _$zod_v4_core0.$strip>>;
696
696
  }, _$zod_v4_core0.$strip>;
@@ -774,8 +774,8 @@ declare const MessageStorageNamespace$1: {
774
774
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
775
775
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
776
776
  text: "text";
777
- compact: "compact";
778
777
  voice: "voice";
778
+ compact: "compact";
779
779
  }>>;
780
780
  }, _$zod_v4_core0.$strip>>;
781
781
  }, _$zod_v4_core0.$strip>;
@@ -861,8 +861,8 @@ declare const MessageStorageNamespace$1: {
861
861
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
862
862
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
863
863
  text: "text";
864
- compact: "compact";
865
864
  voice: "voice";
865
+ compact: "compact";
866
866
  }>>;
867
867
  }, _$zod_v4_core0.$strip>>;
868
868
  total: _$zod.ZodNumber;
@@ -957,8 +957,8 @@ declare const MessageStorageNamespace$1: {
957
957
  timestamp: _$zod.ZodNumber;
958
958
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
959
959
  text: "text";
960
- compact: "compact";
961
960
  voice: "voice";
961
+ compact: "compact";
962
962
  }>>;
963
963
  }, _$zod_v4_core0.$strip>;
964
964
  response: _$zod.ZodObject<{
@@ -1041,8 +1041,8 @@ declare const MessageStorageNamespace$1: {
1041
1041
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1042
1042
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1043
1043
  text: "text";
1044
- compact: "compact";
1045
1044
  voice: "voice";
1045
+ compact: "compact";
1046
1046
  }>>;
1047
1047
  }, _$zod_v4_core0.$strip>;
1048
1048
  }, _$zod_v4_core0.$strip>;
@@ -1053,8 +1053,8 @@ declare const MessageStorageNamespace$1: {
1053
1053
  message: _$zod.ZodObject<{
1054
1054
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1055
1055
  text: "text";
1056
- compact: "compact";
1057
1056
  voice: "voice";
1057
+ compact: "compact";
1058
1058
  }>>;
1059
1059
  sessionId: _$zod.ZodString;
1060
1060
  role: _$zod.ZodEnum<{
@@ -1120,9 +1120,9 @@ declare const MessageStorageNamespace$1: {
1120
1120
  isError: _$zod.ZodOptional<_$zod.ZodBoolean>;
1121
1121
  }, _$zod_v4_core0.$strip>], "type">>;
1122
1122
  agentId: _$zod.ZodOptional<_$zod.ZodString>;
1123
- timestamp: _$zod.ZodNumber;
1124
1123
  adapterSessionId: _$zod.ZodOptional<_$zod.ZodString>;
1125
1124
  turnId: _$zod.ZodNullable<_$zod.ZodString>;
1125
+ timestamp: _$zod.ZodNumber;
1126
1126
  contentText: _$zod.ZodString;
1127
1127
  adapterMessageId: _$zod.ZodOptional<_$zod.ZodString>;
1128
1128
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
@@ -1205,8 +1205,8 @@ declare const MessageStorageNamespace$1: {
1205
1205
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1206
1206
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1207
1207
  text: "text";
1208
- compact: "compact";
1209
1208
  voice: "voice";
1209
+ compact: "compact";
1210
1210
  }>>;
1211
1211
  }, _$zod_v4_core0.$strip>;
1212
1212
  }, _$zod_v4_core0.$strip>;
@@ -1300,8 +1300,8 @@ declare const MessageStorageNamespace$1: {
1300
1300
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1301
1301
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1302
1302
  text: "text";
1303
- compact: "compact";
1304
1303
  voice: "voice";
1304
+ compact: "compact";
1305
1305
  }>>;
1306
1306
  }, _$zod_v4_core0.$strip>>;
1307
1307
  nextCursor: _$zod.ZodNullable<_$zod.ZodObject<{
@@ -1389,8 +1389,8 @@ declare const MessageStorageNamespace$1: {
1389
1389
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1390
1390
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1391
1391
  text: "text";
1392
- compact: "compact";
1393
1392
  voice: "voice";
1393
+ compact: "compact";
1394
1394
  }>>;
1395
1395
  }, _$zod_v4_core0.$strip>>;
1396
1396
  }, _$zod_v4_core0.$strip>;
@@ -1474,8 +1474,8 @@ declare const MessageStorageNamespace$1: {
1474
1474
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1475
1475
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1476
1476
  text: "text";
1477
- compact: "compact";
1478
1477
  voice: "voice";
1478
+ compact: "compact";
1479
1479
  }>>;
1480
1480
  }, _$zod_v4_core0.$strip>>;
1481
1481
  }, _$zod_v4_core0.$strip>;
@@ -1559,8 +1559,8 @@ declare const MessageStorageNamespace$1: {
1559
1559
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1560
1560
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1561
1561
  text: "text";
1562
- compact: "compact";
1563
1562
  voice: "voice";
1563
+ compact: "compact";
1564
1564
  }>>;
1565
1565
  }, _$zod_v4_core0.$strip>>;
1566
1566
  }, _$zod_v4_core0.$strip>;
@@ -1646,8 +1646,8 @@ declare const MessageStorageNamespace$1: {
1646
1646
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1647
1647
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1648
1648
  text: "text";
1649
- compact: "compact";
1650
1649
  voice: "voice";
1650
+ compact: "compact";
1651
1651
  }>>;
1652
1652
  }, _$zod_v4_core0.$strip>>;
1653
1653
  total: _$zod.ZodNumber;
@@ -1742,8 +1742,8 @@ declare const MessageStorageNamespace$1: {
1742
1742
  timestamp: _$zod.ZodNumber;
1743
1743
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1744
1744
  text: "text";
1745
- compact: "compact";
1746
1745
  voice: "voice";
1746
+ compact: "compact";
1747
1747
  }>>;
1748
1748
  }, _$zod_v4_core0.$strip>;
1749
1749
  response: _$zod.ZodObject<{
@@ -1826,8 +1826,8 @@ declare const MessageStorageNamespace$1: {
1826
1826
  editOf: _$zod.ZodOptional<_$zod.ZodString>;
1827
1827
  origin: _$zod.ZodOptional<_$zod.ZodEnum<{
1828
1828
  text: "text";
1829
- compact: "compact";
1830
1829
  voice: "voice";
1830
+ compact: "compact";
1831
1831
  }>>;
1832
1832
  }, _$zod_v4_core0.$strip>;
1833
1833
  }, _$zod_v4_core0.$strip>;
@@ -1901,7 +1901,7 @@ declare const MessageStorageNamespace$1: {
1901
1901
  adapterSessionId?: string | undefined;
1902
1902
  adapterMessageId?: string | undefined;
1903
1903
  editOf?: string | undefined;
1904
- origin?: "text" | "compact" | "voice" | undefined;
1904
+ origin?: "text" | "voice" | "compact" | undefined;
1905
1905
  } | {
1906
1906
  sessionId: string;
1907
1907
  role: "user" | "assistant";
@@ -1960,10 +1960,10 @@ declare const MessageStorageNamespace$1: {
1960
1960
  output: string;
1961
1961
  isError?: boolean | undefined;
1962
1962
  })[];
1963
- timestamp: number;
1964
1963
  turnId: string | null;
1964
+ timestamp: number;
1965
1965
  contentText: string;
1966
- origin?: "text" | "compact" | "voice" | undefined;
1966
+ origin?: "text" | "voice" | "compact" | undefined;
1967
1967
  agentId?: string | undefined;
1968
1968
  adapterSessionId?: string | undefined;
1969
1969
  adapterMessageId?: string | undefined;
@@ -2030,9 +2030,9 @@ declare const MessageStorageNamespace$1: {
2030
2030
  })[];
2031
2031
  messageId: string;
2032
2032
  agentId: never;
2033
- timestamp: number;
2034
2033
  adapterSessionId: never;
2035
2034
  turnId: string | null;
2035
+ timestamp: number;
2036
2036
  limit: never;
2037
2037
  query: string;
2038
2038
  contentText: string;
@@ -1787,6 +1787,9 @@ declare const SessionStorageNamespace$1: {
1787
1787
  discovered: "discovered";
1788
1788
  tracking: "tracking";
1789
1789
  }>>;
1790
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
1791
+ live: "live";
1792
+ }>>;
1790
1793
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
1791
1794
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
1792
1795
  kind: _$zod.ZodLiteral<"root">;
@@ -1813,6 +1816,9 @@ declare const SessionStorageNamespace$1: {
1813
1816
  discovered: "discovered";
1814
1817
  tracking: "tracking";
1815
1818
  }>>;
1819
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
1820
+ live: "live";
1821
+ }>>;
1816
1822
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
1817
1823
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
1818
1824
  kind: _$zod.ZodLiteral<"fork">;
@@ -1839,6 +1845,9 @@ declare const SessionStorageNamespace$1: {
1839
1845
  discovered: "discovered";
1840
1846
  tracking: "tracking";
1841
1847
  }>>;
1848
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
1849
+ live: "live";
1850
+ }>>;
1842
1851
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
1843
1852
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
1844
1853
  kind: _$zod.ZodLiteral<"subagent">;
@@ -1865,6 +1874,9 @@ declare const SessionStorageNamespace$1: {
1865
1874
  discovered: "discovered";
1866
1875
  tracking: "tracking";
1867
1876
  }>>;
1877
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
1878
+ live: "live";
1879
+ }>>;
1868
1880
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
1869
1881
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
1870
1882
  kind: _$zod.ZodLiteral<"compress">;
@@ -2927,6 +2939,9 @@ declare const SessionStorageNamespace$1: {
2927
2939
  discovered: "discovered";
2928
2940
  tracking: "tracking";
2929
2941
  }>>;
2942
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
2943
+ live: "live";
2944
+ }>>;
2930
2945
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
2931
2946
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
2932
2947
  kind: _$zod.ZodLiteral<"root">;
@@ -2953,6 +2968,9 @@ declare const SessionStorageNamespace$1: {
2953
2968
  discovered: "discovered";
2954
2969
  tracking: "tracking";
2955
2970
  }>>;
2971
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
2972
+ live: "live";
2973
+ }>>;
2956
2974
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
2957
2975
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
2958
2976
  kind: _$zod.ZodLiteral<"fork">;
@@ -2979,6 +2997,9 @@ declare const SessionStorageNamespace$1: {
2979
2997
  discovered: "discovered";
2980
2998
  tracking: "tracking";
2981
2999
  }>>;
3000
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
3001
+ live: "live";
3002
+ }>>;
2982
3003
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
2983
3004
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
2984
3005
  kind: _$zod.ZodLiteral<"subagent">;
@@ -3005,6 +3026,9 @@ declare const SessionStorageNamespace$1: {
3005
3026
  discovered: "discovered";
3006
3027
  tracking: "tracking";
3007
3028
  }>>;
3029
+ activation: _$zod.ZodOptional<_$zod.ZodEnum<{
3030
+ live: "live";
3031
+ }>>;
3008
3032
  isSidechain: _$zod.ZodOptional<_$zod.ZodBoolean>;
3009
3033
  machineId: _$zod.ZodOptional<_$zod.ZodNullable<_$zod.ZodString>>;
3010
3034
  kind: _$zod.ZodLiteral<"compress">;