@makaio/framework 1.0.0-dev-1781260968078 → 1.0.0-dev-1781354548379

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 (140) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapter-UpcpZDOv.mjs +1 -0
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/index.d.mts +11 -3
  5. package/dist/adapters/index.mjs +1 -1
  6. package/dist/bus/index.mjs +1 -1
  7. package/dist/clients/index.d.mts +4 -7
  8. package/dist/clients/index.mjs +1 -1
  9. package/dist/contracts/adapter/index.d.mts +2 -2
  10. package/dist/contracts/adapter/index.mjs +1 -1
  11. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  12. package/dist/contracts/artifact/index.d.mts +1 -1
  13. package/dist/contracts/client/index.d.mts +1 -1
  14. package/dist/contracts/extension/index.d.mts +2 -2
  15. package/dist/contracts/facet/index.d.mts +1 -1
  16. package/dist/contracts/index.d.mts +219 -54
  17. package/dist/contracts/index.mjs +1 -1
  18. package/dist/contracts/materialization/index.d.mts +3 -3
  19. package/dist/contracts/session/index.d.mts +3 -3
  20. package/dist/contracts/session/index.mjs +1 -1
  21. package/dist/{definition-SiimP25_.d.mts → definition-DqJOg6Lv.d.mts} +1 -1
  22. package/dist/drizzle/0015_m_mqbh8q5b.sql +1 -0
  23. package/dist/drizzle/0016_m_mqbmq8h7.sql +1 -0
  24. package/dist/drizzle/0017_m_mqbnf924.sql +1 -0
  25. package/dist/drizzle/meta/0015_snapshot.json +2966 -0
  26. package/dist/drizzle/meta/0016_snapshot.json +2973 -0
  27. package/dist/drizzle/meta/0017_snapshot.json +2980 -0
  28. package/dist/drizzle/meta/_journal.json +21 -0
  29. package/dist/{handler-DSfSAlxx.mjs → handler-DqpiV9eA.mjs} +1 -1
  30. package/dist/handlers-BAB4fQNH.mjs +41 -0
  31. package/dist/{index-B2xbnMZe.d.mts → index-BCKRUuI2.d.mts} +1 -1
  32. package/dist/{index-CARxIllg.d.mts → index-BHAOu6Hs.d.mts} +20 -20
  33. package/dist/{index-Cb64d5c5.d.mts → index-BHzgDuRE.d.mts} +20 -3
  34. package/dist/{index-BtztOqaF.d.mts → index-BheaEhyI.d.mts} +6 -6
  35. package/dist/{index-CZ_TcT6J.d.mts → index-Bibt5jAX.d.mts} +8 -8
  36. package/dist/{index-D5CI1V5d.d.mts → index-C3zfJg6s.d.mts} +16 -16
  37. package/dist/{index-DTdqGAfH2.d.mts → index-CH5U3zSA2.d.mts} +1 -1
  38. package/dist/{index-CgjslA5-.d.mts → index-CTn_Xi-p.d.mts} +4 -4
  39. package/dist/{index-DDQkhhRo.d.mts → index-DPIdX6kb.d.mts} +363 -123
  40. package/dist/{index-BQiHs8EF.d.mts → index-Da4ABgRq.d.mts} +12 -12
  41. package/dist/{index-BvSyOgTY.d.mts → index-DrGLAuZc.d.mts} +98 -29
  42. package/dist/{index-BKKNWqkP2.d.mts → index-zgm2j9V92.d.mts} +44 -2
  43. package/dist/kernel/extension/index.d.mts +1 -1
  44. package/dist/kernel/index.d.mts +2 -2
  45. package/dist/kernel/observability/index.d.mts +1 -1
  46. package/dist/mcp-http-server/index.d.mts +132 -19
  47. package/dist/mcp-http-server/index.mjs +1 -1
  48. package/dist/{namespace-D1Iw_d1P.d.mts → namespace--s0d86h-.d.mts} +144 -0
  49. package/dist/{namespace-7tsuJhQ9.d.mts → namespace-Boe6l5n9.d.mts} +78 -42
  50. package/dist/{namespace-Ba4bxtHQ.d.mts → namespace-BxxBhcV_.d.mts} +9 -9
  51. package/dist/{namespace-DwE2g8Wm.mjs → namespace-Dfq6MDN9.mjs} +1 -1
  52. package/dist/{namespace-DDCjoQUj.d.mts → namespace-aJJfBJU5.d.mts} +170 -0
  53. package/dist/{orchestrator-shared-Dt4WDse7.mjs → orchestrator-shared-BKFXaKPL.mjs} +1 -1
  54. package/dist/{package-BSnp1zOR.d.mts → package--RZnpN2J.d.mts} +2 -3
  55. package/dist/package-BzJvtM5O.mjs +1 -0
  56. package/dist/package-DzN_jdqd.mjs +1 -0
  57. package/dist/package.json +1 -1
  58. package/dist/primitive-runtime-CNC_bSac.mjs +1 -0
  59. package/dist/runtime-node/bus/runtime/namespace.d.mts +8 -8
  60. package/dist/runtime-node/bus/runtime/schemas.d.mts +11 -4
  61. package/dist/runtime-node/bus/runtime/schemas.mjs +1 -1
  62. package/dist/runtime-node/index.d.mts +19 -1
  63. package/dist/runtime-node/index.mjs +1 -1
  64. package/dist/{schema-BerZmr2q.mjs → schema-C3TgjrsV.mjs} +1 -1
  65. package/dist/{schema-BrnYlDwZ.mjs → schema-CzhOc7TV.mjs} +1 -1
  66. package/dist/{schema-BNrM9LWb.d.mts → schema-DGMLvVoQ.d.mts} +23 -3
  67. package/dist/schemas-CuKayWhA.mjs +1 -0
  68. package/dist/{schemas-DAFYpgHk2.d.mts → schemas-kVcJMjjn2.d.mts} +8 -8
  69. package/dist/{schemas-CkOSG2eJ.d.mts → schemas-t1VR6_b_.d.mts} +3 -3
  70. package/dist/services/filesystem/namespace.d.mts +6 -6
  71. package/dist/services/filesystem/schemas.d.mts +3 -3
  72. package/dist/services/git/namespace.d.mts +2 -2
  73. package/dist/services/git/schemas.d.mts +2 -2
  74. package/dist/services/harness/index.d.mts +3 -4
  75. package/dist/services/harness/index.mjs +1 -1
  76. package/dist/services/index.d.mts +112 -15
  77. package/dist/services/index.mjs +1 -1
  78. package/dist/services/log-import/browser.d.mts +2 -2
  79. package/dist/services/log-import/index.d.mts +4 -5
  80. package/dist/services/log-import/index.mjs +1 -1
  81. package/dist/services/log-import/log-import.d.mts +1 -1
  82. package/dist/services/log-import/namespace.d.mts +2 -2
  83. package/dist/services/log-import/schemas.d.mts +1 -1
  84. package/dist/services/provider-context/index.mjs +1 -1
  85. package/dist/services/session/handlers/index.mjs +1 -1
  86. package/dist/services/session/index.d.mts +6 -6
  87. package/dist/services/session/index.mjs +1 -1
  88. package/dist/services/session/messages/namespace.mjs +1 -1
  89. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  90. package/dist/services/session/session-events/namespace.d.mts +1 -1
  91. package/dist/services/session/session-events/namespace.mjs +1 -1
  92. package/dist/services/session/storage/namespace.d.mts +1 -1
  93. package/dist/services/session/storage/schema.d.mts +1 -1
  94. package/dist/services/session/storage/schema.mjs +1 -1
  95. package/dist/services/session/testing/index.mjs +5 -3
  96. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  97. package/dist/services/session/turns/namespace.d.mts +1 -1
  98. package/dist/services/session/turns/namespace.mjs +1 -1
  99. package/dist/services/settings/index.mjs +1 -1
  100. package/dist/services/settings/namespace.d.mts +8 -8
  101. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  102. package/dist/services/settings/storage/index.mjs +1 -1
  103. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  104. package/dist/services/subagent/index.d.mts +1 -1
  105. package/dist/services/subagent/index.mjs +1 -1
  106. package/dist/services/subagent-template/index.d.mts +1 -1
  107. package/dist/services/subagent-template/schemas.d.mts +1 -1
  108. package/dist/services/tool-approval/index.mjs +1 -1
  109. package/dist/services/tools/index.mjs +1 -1
  110. package/dist/services/turn/index.d.mts +1 -1
  111. package/dist/services/turn/namespace.d.mts +1 -1
  112. package/dist/services/turn/schemas.d.mts +72 -0
  113. package/dist/services/turn/schemas.mjs +1 -1
  114. package/dist/{session-C1Cami7U.mjs → session-BwX5_k47.mjs} +1 -1
  115. package/dist/session-P4nX60Xx.mjs +39 -0
  116. package/dist/{session-lineage-CXzV_hAP.d.mts → session-lineage-CKg6mErA.d.mts} +1 -1
  117. package/dist/storage/drizzle/index.d.mts +1 -1
  118. package/dist/storage/drizzle/index.mjs +1 -1
  119. package/dist/{tool-approval-service-Cb2F1yT6.mjs → tool-approval-service-DNHV5x0M.mjs} +1 -1
  120. package/dist/{tools-D5DVHC-R.mjs → tools-CQImrHAp.mjs} +1 -1
  121. package/dist/{types-DLVitCZP.d.mts → types-BpuLMR2m.d.mts} +626 -443
  122. package/dist/{types-D5IMwOkJ.d.mts → types-D0fPFh-D.d.mts} +1 -1
  123. package/dist/{types-BMpIa4fx.d.mts → types-D6jnDjP2.d.mts} +18 -5
  124. package/dist/ui-components/index.d.mts +36 -37
  125. package/dist/ui-views/index.d.mts +2 -2
  126. package/dist/workflow-engine/index.d.mts +58 -25
  127. package/dist/workflow-engine/index.mjs +1 -1
  128. package/dist/workflow-engine/package.d.mts +1 -1
  129. package/dist/workflow-engine/package.mjs +1 -1
  130. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  131. package/package.json +10 -1
  132. package/dist/adapter-Dt2FDMs4.mjs +0 -1
  133. package/dist/handlers-C8EtpSqK.mjs +0 -41
  134. package/dist/package-Be2Ez4vv.mjs +0 -1
  135. package/dist/package-OE9dMQsq.mjs +0 -1
  136. package/dist/primitive-runtime-Xrc9xh6p.mjs +0 -1
  137. package/dist/schemas-CSUwpaNm.mjs +0 -1
  138. package/dist/session-KnewDVxt.mjs +0 -39
  139. /package/dist/{provider-context-lfG0BpqX.mjs → provider-context-wp4VSJFI.mjs} +0 -0
  140. /package/dist/{shared-schemas-CKe2uN4-.mjs → shared-schemas-DYL7a-No.mjs} +0 -0
@@ -1,13 +1,13 @@
1
- import { a as WorkflowExecutor, i as WorkflowEngineService, n as createWorkflowEnginePackage, o as registerDrizzleWorkflowStorage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package-BSnp1zOR.mjs";
1
+ import { a as WorkflowExecutor, i as WorkflowEngineService, n as createWorkflowEnginePackage, o as registerDrizzleWorkflowStorage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package--RZnpN2J.mjs";
2
2
  import { z } from "zod";
3
3
  import * as _$_makaio_core0 from "@makaio/framework/core";
4
4
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
5
5
  import { JsonValue, WorkflowExecutionSchema, WorkflowListQuerySchema } from "@makaio/framework/contracts";
6
+ import * as _$_makaio_storage_core0 from "@makaio/framework/storage";
6
7
  import * as _$drizzle_orm_sqlite_core0 from "drizzle-orm/sqlite-core";
7
8
  import * as _$drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
8
9
  import * as _$_makaio_storage_drizzle0 from "@makaio/framework/storage/drizzle";
9
10
  import * as _$drizzle_orm0 from "drizzle-orm";
10
- import * as _$_makaio_storage_core0 from "@makaio/framework/storage";
11
11
  import { WorkflowExpressionContext } from "@makaio/framework/expression";
12
12
 
13
13
  //#region subsystems/workflow-engine/src/storage/namespace.d.ts
@@ -410,8 +410,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
410
410
  completed: "completed";
411
411
  cancelled: "cancelled";
412
412
  failed: "failed";
413
- paused: "paused";
414
413
  running: "running";
414
+ paused: "paused";
415
415
  }>;
416
416
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
417
417
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -451,8 +451,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
451
451
  completed: "completed";
452
452
  cancelled: "cancelled";
453
453
  failed: "failed";
454
- paused: "paused";
455
454
  running: "running";
455
+ paused: "paused";
456
456
  }>;
457
457
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
458
458
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -499,8 +499,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
499
499
  completed: "completed";
500
500
  cancelled: "cancelled";
501
501
  failed: "failed";
502
- paused: "paused";
503
502
  running: "running";
503
+ paused: "paused";
504
504
  }>;
505
505
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
506
506
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -730,8 +730,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
730
730
  completed: "completed";
731
731
  cancelled: "cancelled";
732
732
  failed: "failed";
733
- paused: "paused";
734
733
  running: "running";
734
+ paused: "paused";
735
735
  }>>;
736
736
  error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
737
737
  reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -765,6 +765,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
765
765
  }>;
766
766
  timeoutMs: z.ZodNullable<z.ZodNumber>;
767
767
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
768
+ reason: z.ZodOptional<z.ZodString>;
768
769
  createdAt: z.ZodNumber;
769
770
  resolvedAt: z.ZodOptional<z.ZodNumber>;
770
771
  status: z.ZodLiteral<"cancelled">;
@@ -798,8 +799,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
798
799
  completed: "completed";
799
800
  cancelled: "cancelled";
800
801
  failed: "failed";
801
- paused: "paused";
802
802
  running: "running";
803
+ paused: "paused";
803
804
  }>>;
804
805
  artifactRef: z.ZodOptional<z.ZodObject<{
805
806
  kind: z.ZodString;
@@ -821,8 +822,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
821
822
  completed: "completed";
822
823
  cancelled: "cancelled";
823
824
  failed: "failed";
824
- paused: "paused";
825
825
  running: "running";
826
+ paused: "paused";
826
827
  }>;
827
828
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
828
829
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -881,8 +882,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
881
882
  cancelled: "cancelled";
882
883
  failed: "failed";
883
884
  running: "running";
884
- waiting: "waiting";
885
885
  skipped: "skipped";
886
+ waiting: "waiting";
886
887
  }>;
887
888
  attempt: z.ZodDefault<z.ZodNumber>;
888
889
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -926,8 +927,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
926
927
  cancelled: "cancelled";
927
928
  failed: "failed";
928
929
  running: "running";
929
- waiting: "waiting";
930
930
  skipped: "skipped";
931
+ waiting: "waiting";
931
932
  }>;
932
933
  attempt: z.ZodDefault<z.ZodNumber>;
933
934
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -968,8 +969,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
968
969
  cancelled: "cancelled";
969
970
  failed: "failed";
970
971
  running: "running";
971
- waiting: "waiting";
972
972
  skipped: "skipped";
973
+ waiting: "waiting";
973
974
  }>;
974
975
  attempt: z.ZodDefault<z.ZodNumber>;
975
976
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -1006,6 +1007,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1006
1007
  }>;
1007
1008
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1008
1009
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1010
+ reason: z.ZodOptional<z.ZodString>;
1009
1011
  createdAt: z.ZodNumber;
1010
1012
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1011
1013
  }, z.core.$strip>;
@@ -1035,6 +1037,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1035
1037
  }>;
1036
1038
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1037
1039
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1040
+ reason: z.ZodOptional<z.ZodString>;
1038
1041
  createdAt: z.ZodNumber;
1039
1042
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1040
1043
  status: z.ZodEnum<{
@@ -1095,6 +1098,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1095
1098
  }>;
1096
1099
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1097
1100
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1101
+ reason: z.ZodOptional<z.ZodString>;
1098
1102
  createdAt: z.ZodNumber;
1099
1103
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1100
1104
  status: z.ZodLiteral<"waiting">;
@@ -1135,6 +1139,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1135
1139
  }>;
1136
1140
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1137
1141
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1142
+ reason: z.ZodOptional<z.ZodString>;
1138
1143
  createdAt: z.ZodNumber;
1139
1144
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1140
1145
  }, z.core.$strip>>;
@@ -1175,6 +1180,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1175
1180
  }>;
1176
1181
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1177
1182
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1183
+ reason: z.ZodOptional<z.ZodString>;
1178
1184
  createdAt: z.ZodNumber;
1179
1185
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1180
1186
  }, z.core.$strip>>;
@@ -1209,6 +1215,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1209
1215
  }>;
1210
1216
  timeoutMs: z.ZodNullable<z.ZodNumber>;
1211
1217
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
1218
+ reason: z.ZodOptional<z.ZodString>;
1212
1219
  createdAt: z.ZodNumber;
1213
1220
  resolvedAt: z.ZodOptional<z.ZodNumber>;
1214
1221
  }, z.core.$strip>>;
@@ -2324,7 +2331,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2324
2331
  tableName: "workflow_executions";
2325
2332
  dataType: "string";
2326
2333
  columnType: "SQLiteText";
2327
- data: "pending" | "completed" | "cancelled" | "failed" | "paused" | "running";
2334
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "paused";
2328
2335
  driverParam: string;
2329
2336
  notNull: true;
2330
2337
  hasDefault: false;
@@ -2613,7 +2620,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2613
2620
  tableName: "workflow_execution_frames";
2614
2621
  dataType: "string";
2615
2622
  columnType: "SQLiteText";
2616
- data: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
2623
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
2617
2624
  driverParam: string;
2618
2625
  notNull: true;
2619
2626
  hasDefault: true;
@@ -2626,7 +2633,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2626
2633
  generated: undefined;
2627
2634
  }, {}, {
2628
2635
  length: number | undefined;
2629
- $type: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
2636
+ $type: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
2630
2637
  }>;
2631
2638
  attempt: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2632
2639
  name: string;
@@ -2966,6 +2973,25 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2966
2973
  }, {}, {
2967
2974
  $type: _$_makaio_contracts0.JsonValue;
2968
2975
  }>;
2976
+ reason: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2977
+ name: "reason";
2978
+ tableName: "workflow_gate_instances";
2979
+ dataType: "string";
2980
+ columnType: "SQLiteText";
2981
+ data: string;
2982
+ driverParam: string;
2983
+ notNull: false;
2984
+ hasDefault: false;
2985
+ isPrimaryKey: false;
2986
+ isAutoincrement: false;
2987
+ hasRuntimeDefault: false;
2988
+ enumValues: [string, ...string[]];
2989
+ baseColumn: never;
2990
+ identity: undefined;
2991
+ generated: undefined;
2992
+ }, {}, {
2993
+ length: number | undefined;
2994
+ }>;
2969
2995
  resumeDataPresent: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2970
2996
  name: string;
2971
2997
  tableName: "workflow_gate_instances";
@@ -4144,7 +4170,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4144
4170
  tableName: "worklog_summaries";
4145
4171
  dataType: "string";
4146
4172
  columnType: "SQLiteText";
4147
- data: "pending" | "completed" | "cancelled" | "failed" | "paused" | "running";
4173
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "paused";
4148
4174
  driverParam: string;
4149
4175
  notNull: true;
4150
4176
  hasDefault: false;
@@ -4406,7 +4432,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4406
4432
  tableName: "worklog_frame_entries";
4407
4433
  dataType: "string";
4408
4434
  columnType: "SQLiteText";
4409
- data: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
4435
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
4410
4436
  driverParam: string;
4411
4437
  notNull: true;
4412
4438
  hasDefault: false;
@@ -5312,8 +5338,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5312
5338
  completed: "completed";
5313
5339
  cancelled: "cancelled";
5314
5340
  failed: "failed";
5315
- paused: "paused";
5316
5341
  running: "running";
5342
+ paused: "paused";
5317
5343
  }>;
5318
5344
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
5319
5345
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -5353,8 +5379,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5353
5379
  completed: "completed";
5354
5380
  cancelled: "cancelled";
5355
5381
  failed: "failed";
5356
- paused: "paused";
5357
5382
  running: "running";
5383
+ paused: "paused";
5358
5384
  }>;
5359
5385
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
5360
5386
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -5401,8 +5427,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5401
5427
  completed: "completed";
5402
5428
  cancelled: "cancelled";
5403
5429
  failed: "failed";
5404
- paused: "paused";
5405
5430
  running: "running";
5431
+ paused: "paused";
5406
5432
  }>;
5407
5433
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
5408
5434
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -5632,8 +5658,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5632
5658
  completed: "completed";
5633
5659
  cancelled: "cancelled";
5634
5660
  failed: "failed";
5635
- paused: "paused";
5636
5661
  running: "running";
5662
+ paused: "paused";
5637
5663
  }>>;
5638
5664
  error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5639
5665
  reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -5667,6 +5693,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5667
5693
  }>;
5668
5694
  timeoutMs: z.ZodNullable<z.ZodNumber>;
5669
5695
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
5696
+ reason: z.ZodOptional<z.ZodString>;
5670
5697
  createdAt: z.ZodNumber;
5671
5698
  resolvedAt: z.ZodOptional<z.ZodNumber>;
5672
5699
  status: z.ZodLiteral<"cancelled">;
@@ -5700,8 +5727,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5700
5727
  completed: "completed";
5701
5728
  cancelled: "cancelled";
5702
5729
  failed: "failed";
5703
- paused: "paused";
5704
5730
  running: "running";
5731
+ paused: "paused";
5705
5732
  }>>;
5706
5733
  artifactRef: z.ZodOptional<z.ZodObject<{
5707
5734
  kind: z.ZodString;
@@ -5723,8 +5750,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5723
5750
  completed: "completed";
5724
5751
  cancelled: "cancelled";
5725
5752
  failed: "failed";
5726
- paused: "paused";
5727
5753
  running: "running";
5754
+ paused: "paused";
5728
5755
  }>;
5729
5756
  inputs: z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>;
5730
5757
  config: z.ZodOptional<z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>>;
@@ -5783,8 +5810,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5783
5810
  cancelled: "cancelled";
5784
5811
  failed: "failed";
5785
5812
  running: "running";
5786
- waiting: "waiting";
5787
5813
  skipped: "skipped";
5814
+ waiting: "waiting";
5788
5815
  }>;
5789
5816
  attempt: z.ZodDefault<z.ZodNumber>;
5790
5817
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5828,8 +5855,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5828
5855
  cancelled: "cancelled";
5829
5856
  failed: "failed";
5830
5857
  running: "running";
5831
- waiting: "waiting";
5832
5858
  skipped: "skipped";
5859
+ waiting: "waiting";
5833
5860
  }>;
5834
5861
  attempt: z.ZodDefault<z.ZodNumber>;
5835
5862
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5870,8 +5897,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5870
5897
  cancelled: "cancelled";
5871
5898
  failed: "failed";
5872
5899
  running: "running";
5873
- waiting: "waiting";
5874
5900
  skipped: "skipped";
5901
+ waiting: "waiting";
5875
5902
  }>;
5876
5903
  attempt: z.ZodDefault<z.ZodNumber>;
5877
5904
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5908,6 +5935,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5908
5935
  }>;
5909
5936
  timeoutMs: z.ZodNullable<z.ZodNumber>;
5910
5937
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
5938
+ reason: z.ZodOptional<z.ZodString>;
5911
5939
  createdAt: z.ZodNumber;
5912
5940
  resolvedAt: z.ZodOptional<z.ZodNumber>;
5913
5941
  }, z.core.$strip>;
@@ -5937,6 +5965,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5937
5965
  }>;
5938
5966
  timeoutMs: z.ZodNullable<z.ZodNumber>;
5939
5967
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
5968
+ reason: z.ZodOptional<z.ZodString>;
5940
5969
  createdAt: z.ZodNumber;
5941
5970
  resolvedAt: z.ZodOptional<z.ZodNumber>;
5942
5971
  status: z.ZodEnum<{
@@ -5997,6 +6026,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5997
6026
  }>;
5998
6027
  timeoutMs: z.ZodNullable<z.ZodNumber>;
5999
6028
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
6029
+ reason: z.ZodOptional<z.ZodString>;
6000
6030
  createdAt: z.ZodNumber;
6001
6031
  resolvedAt: z.ZodOptional<z.ZodNumber>;
6002
6032
  status: z.ZodLiteral<"waiting">;
@@ -6037,6 +6067,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6037
6067
  }>;
6038
6068
  timeoutMs: z.ZodNullable<z.ZodNumber>;
6039
6069
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
6070
+ reason: z.ZodOptional<z.ZodString>;
6040
6071
  createdAt: z.ZodNumber;
6041
6072
  resolvedAt: z.ZodOptional<z.ZodNumber>;
6042
6073
  }, z.core.$strip>>;
@@ -6077,6 +6108,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6077
6108
  }>;
6078
6109
  timeoutMs: z.ZodNullable<z.ZodNumber>;
6079
6110
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
6111
+ reason: z.ZodOptional<z.ZodString>;
6080
6112
  createdAt: z.ZodNumber;
6081
6113
  resolvedAt: z.ZodOptional<z.ZodNumber>;
6082
6114
  }, z.core.$strip>>;
@@ -6111,6 +6143,7 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6111
6143
  }>;
6112
6144
  timeoutMs: z.ZodNullable<z.ZodNumber>;
6113
6145
  resumeData: z.ZodOptional<z.ZodType<_$_makaio_contracts0.JsonValue, unknown, z.core.$ZodTypeInternals<_$_makaio_contracts0.JsonValue, unknown>>>;
6146
+ reason: z.ZodOptional<z.ZodString>;
6114
6147
  createdAt: z.ZodNumber;
6115
6148
  resolvedAt: z.ZodOptional<z.ZodNumber>;
6116
6149
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- import{D as e,F as t,f as n,h as r,j as i,p as a,s as o,x as s}from"../primitive-runtime-Xrc9xh6p.mjs";import{a as c,i as l,n as u,o as d,r as f,t as p}from"../package-Be2Ez4vv.mjs";import{JsonValueSchema as m,WorkflowFrameStateSchema as h}from"@makaio/framework/contracts";const g=new Set([...h.shape.status.options]);function _(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function v(e){if(!_(e))return!1;for(let t of Object.values(e))if(!_(t)||typeof t.status!=`string`||!g.has(t.status)||`result`in t&&t.result!==void 0&&!m.safeParse(t.result).success)return!1;return!0}function y(e){let t={trigger:_(e.trigger)?e.trigger:{},steps:v(e.steps)?e.steps:{},inputs:m.safeParse(e.inputs).success?e.inputs:{}};return`item`in e&&(t.item=e.item),typeof e.index==`number`&&(t.index=e.index),t}export{l as WorkflowEngineService,p as WorkflowEngineToken,c as WorkflowExecutor,n as WorkflowStorageNamespace,a as WorkflowStorageSubjects,y as buildWorkflowExpressionContextFromResolvedInputs,u as createWorkflowEnginePackage,d as registerDrizzleWorkflowStorage,o as runShellStep,r as workflowDefinitionsDual,f as workflowEnginePackage,s as workflowExecutionsDual,e as workflowStepSpansDual,i as worklogFrameEntriesDual,t as worklogSummariesDual};
1
+ import{D as e,F as t,f as n,h as r,j as i,p as a,s as o,x as s}from"../primitive-runtime-CNC_bSac.mjs";import{a as c,i as l,n as u,o as d,r as f,t as p}from"../package-DzN_jdqd.mjs";import{JsonValueSchema as m,WorkflowFrameStateSchema as h}from"@makaio/framework/contracts";const g=new Set([...h.shape.status.options]);function _(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function v(e){if(!_(e))return!1;for(let t of Object.values(e))if(!_(t)||typeof t.status!=`string`||!g.has(t.status)||`result`in t&&t.result!==void 0&&!m.safeParse(t.result).success)return!1;return!0}function y(e){let t={trigger:_(e.trigger)?e.trigger:{},steps:v(e.steps)?e.steps:{},inputs:m.safeParse(e.inputs).success?e.inputs:{}};return`item`in e&&(t.item=e.item),typeof e.index==`number`&&(t.index=e.index),t}export{l as WorkflowEngineService,p as WorkflowEngineToken,c as WorkflowExecutor,n as WorkflowStorageNamespace,a as WorkflowStorageSubjects,y as buildWorkflowExpressionContextFromResolvedInputs,u as createWorkflowEnginePackage,d as registerDrizzleWorkflowStorage,o as runShellStep,r as workflowDefinitionsDual,f as workflowEnginePackage,s as workflowExecutionsDual,e as workflowStepSpansDual,i as worklogFrameEntriesDual,t as worklogSummariesDual};
@@ -1,2 +1,2 @@
1
- import { n as createWorkflowEnginePackage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package-BSnp1zOR.mjs";
1
+ import { n as createWorkflowEnginePackage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package--RZnpN2J.mjs";
2
2
  export { WorkflowEngineToken, createWorkflowEnginePackage, workflowEnginePackage };
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../package-Be2Ez4vv.mjs";export{n as WorkflowEngineToken,e as createWorkflowEnginePackage,t as workflowEnginePackage};
1
+ import{n as e,r as t,t as n}from"../package-DzN_jdqd.mjs";export{n as WorkflowEngineToken,e as createWorkflowEnginePackage,t as workflowEnginePackage};
@@ -1 +1 @@
1
- import{I as e,a as t,c as n,d as r,i,p as a,r as o,t as s}from"../primitive-runtime-Xrc9xh6p.mjs";import{WORKFLOW_CANCELLED_REASON as c}from"@makaio/framework/contracts";async function l(t,n,r,i){let o=await m(t,n,r);return await t.request(a.setExecution,{execution:o}),r===`completed`?await t.emit(e.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:o.completedAt}):await t.emit(e.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:i,completedAt:o.completedAt}),r===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...i===void 0?{}:{reason:i}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function u(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function d(e){let t,i=()=>{t=n({bus:e.bus,activeExecutions:e.activeExecutions,shellAbortControllers:e.shellAbortControllers,activeRunnerSteps:e.activeRunnerSteps,cancelTimeoutMs:r.cancelTimeoutMs},e.executionId,c).catch(t=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${e.executionId}:`,t),!1))};return e.signal.addEventListener(`abort`,i,{once:!0}),e.signal.aborted&&i(),async()=>(e.signal.removeEventListener(`abort`,i),t??!1)}async function f(e,t){let n=await e.requestOptional(a.getExecution,{executionId:t});return n.handled?n.data.execution?.startedAt??void 0:void 0}async function p(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await f(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function m(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await f(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function h(e,n,r,a,o,l,u,d){let f=e.suspensionStrategy===`wait-in-process`?void 0:await g(e.executionId,l,{required:!0}),p=await i({definition:n,execution:r,runContext:a,zodSchema:d?.artifact,bus:l}),m=new t(e.executionId,e.workflowId,n,r,o,l,u,void 0,p,{context:e.context,env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:f}),h=m.buildExpressionContext(),_=await s(n.root,m,h);return _.status===`failed`?{status:`failed`,error:_.error}:_.status===`paused`?{status:`paused`,pausedAtGateId:_.pausedAtGateId,pausedAtFrameId:_.pausedAtFrameId}:_.status===`cancelled`||u.aborted?{status:`cancelled`,reason:c}:{status:`completed`,artifact:p?.current}}async function g(e,t,n={}){try{let r=await t.requestOptional(a.listFrames,{executionId:e});if(!r.handled){if(n.required===!0)throw Error(`Frame storage handler is required to resume execution '${e}'.`);return}return r.data.frames.length===0?void 0:o(r.data.frames)}catch(e){if(n.required===!0)throw e;return}}function _(e,t){return{executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.source.kind===`definition`?{definitionSnapshot:e.definition??t}:{},workerManifest:{packages:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy}}async function v(t,n,r,i,o){r.status=`paused`,await t.request(a.setExecution,{execution:r}),await t.emit(e.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:i,pausedAtFrameId:o})}async function y(t,n,r,i,a,o){r===`completed`?await t.emit(e.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:a-i.startedAt,completedAt:a}):r===`cancelled`?await t.emit(e.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:c,completedAt:a}):await t.emit(e.execution.failed,{executionId:n.executionId,workflowId:n.workflowId,error:o??`Workflow execution failed`,completedAt:a})}async function b(e){let{config:t,loaded:n,bus:r,signal:i}=e,{definition:o}=n;if(i.aborted)return l(r,t,`cancelled`,c);if(o.root.nodes.length===0)return l(r,t,`completed`);let s=await p(r,t);await r.request(a.setExecution,{execution:s});let f=new Map(n.runtimeHandlers),m=new Map,g=new Map,b=new Map,x=_(t,o);m.set(t.executionId,{execution:s,workflow:o,runContext:x,runtimeHandlers:f});let S=d({signal:i,executionId:t.executionId,bus:r,activeExecutions:m,shellAbortControllers:g,activeRunnerSteps:b}),C={status:`completed`},w=!1;try{C=await h(t,o,s,x,f,r,i,n.zodSchemas)}catch(e){C={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{w=await S(),m.clear()}if(w)return u(t,{status:`cancelled`,reason:c});if((i.aborted||s.status===`cancelled`)&&(C={status:`cancelled`,reason:c}),C.status===`paused`)return await v(r,t,s,C.pausedAtGateId,C.pausedAtFrameId),u(t,C);let T=Date.now(),E=C.status===`failed`?C.error:void 0;return s.status=C.status,s.completedAt=T,s.error=E,await r.request(a.setExecution,{execution:s}),await y(r,t,C.status,s,T,E),u(t,C)}export{b as runWorkflowOrchestrator};
1
+ import{I as e,a as t,c as n,d as r,i,p as a,r as o,t as s}from"../primitive-runtime-CNC_bSac.mjs";import{WORKFLOW_CANCELLED_REASON as c}from"@makaio/framework/contracts";async function l(t,n,r,i){let o=await m(t,n,r);return await t.request(a.setExecution,{execution:o}),r===`completed`?await t.emit(e.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:o.completedAt}):await t.emit(e.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:i,completedAt:o.completedAt}),r===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...i===void 0?{}:{reason:i}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function u(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function d(e){let t,i=()=>{t=n({bus:e.bus,activeExecutions:e.activeExecutions,shellAbortControllers:e.shellAbortControllers,activeRunnerSteps:e.activeRunnerSteps,cancelTimeoutMs:r.cancelTimeoutMs},e.executionId,c).catch(t=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${e.executionId}:`,t),!1))};return e.signal.addEventListener(`abort`,i,{once:!0}),e.signal.aborted&&i(),async()=>(e.signal.removeEventListener(`abort`,i),t??!1)}async function f(e,t){let n=await e.requestOptional(a.getExecution,{executionId:t});return n.handled?n.data.execution?.startedAt??void 0:void 0}async function p(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await f(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function m(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await f(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function h(e,n,r,a,o,l,u,d){let f=e.suspensionStrategy===`wait-in-process`?void 0:await g(e.executionId,l,{required:!0}),p=await i({definition:n,execution:r,runContext:a,zodSchema:d?.artifact,bus:l}),m=new t(e.executionId,e.workflowId,n,r,o,l,u,void 0,p,{context:e.context,env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:f}),h=m.buildExpressionContext(),_=await s(n.root,m,h);return _.status===`failed`?{status:`failed`,error:_.error}:_.status===`paused`?{status:`paused`,pausedAtGateId:_.pausedAtGateId,pausedAtFrameId:_.pausedAtFrameId}:_.status===`cancelled`||u.aborted?{status:`cancelled`,reason:c}:{status:`completed`,artifact:p?.current}}async function g(e,t,n={}){try{let r=await t.requestOptional(a.listFrames,{executionId:e});if(!r.handled){if(n.required===!0)throw Error(`Frame storage handler is required to resume execution '${e}'.`);return}return r.data.frames.length===0?void 0:o(r.data.frames)}catch(e){if(n.required===!0)throw e;return}}function _(e,t){return{executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.source.kind===`definition`?{definitionSnapshot:e.definition??t}:{},workerManifest:{packages:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy}}async function v(t,n,r,i,o){r.status=`paused`,await t.request(a.setExecution,{execution:r}),await t.emit(e.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:i,pausedAtFrameId:o})}async function y(t,n,r,i,a,o){r===`completed`?await t.emit(e.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:a-i.startedAt,completedAt:a}):r===`cancelled`?await t.emit(e.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:c,completedAt:a}):await t.emit(e.execution.failed,{executionId:n.executionId,workflowId:n.workflowId,error:o??`Workflow execution failed`,completedAt:a})}async function b(e){let{config:t,loaded:n,bus:r,signal:i}=e,{definition:o}=n;if(i.aborted)return l(r,t,`cancelled`,c);if(o.root.nodes.length===0)return l(r,t,`completed`);let s=await p(r,t);await r.request(a.setExecution,{execution:s});let f=new Map(n.runtimeHandlers),m=new Map,g=new Map,b=new Map,x=_(t,o);m.set(t.executionId,{execution:s,workflow:o,runContext:x,runtimeHandlers:f});let S=d({signal:i,executionId:t.executionId,bus:r,activeExecutions:m,shellAbortControllers:g,activeRunnerSteps:b}),C={status:`completed`},w=!1;try{C=await h(t,o,s,x,f,r,i,n.zodSchemas)}catch(e){C={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{w=await S(),m.clear()}if(w)return u(t,{status:`cancelled`,reason:c});if((i.aborted||s.status===`cancelled`)&&(C={status:`cancelled`,reason:c}),C.status===`paused`)return await v(r,t,s,C.pausedAtGateId,C.pausedAtFrameId),u(t,C);let T=Date.now(),E=C.status===`failed`?C.error:void 0;return s.status=C.status,s.completedAt=T,s.error=E,await r.request(a.setExecution,{execution:s}),await y(r,t,C.status,s,T,E),u(t,C)}export{b as runWorkflowOrchestrator};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1781260968078",
3
+ "version": "1.0.0-dev-1781354548379",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",
@@ -25,6 +25,7 @@
25
25
  "drizzle-orm": "^0.45.2",
26
26
  "glob": "13.0.6",
27
27
  "hono": "^4.12.23",
28
+ "type-fest": "^5.2.0",
28
29
  "ws": "^8.21.0",
29
30
  "zod": "^4.1.13"
30
31
  },
@@ -62,6 +63,10 @@
62
63
  "types": "./dist/utils/index.d.mts",
63
64
  "default": "./dist/utils/index.mjs"
64
65
  },
66
+ "./utils/keychain": {
67
+ "types": "./dist/utils/keychain.d.mts",
68
+ "default": "./dist/utils/keychain.mjs"
69
+ },
65
70
  "./service-base": {
66
71
  "types": "./dist/service-base/index.d.mts",
67
72
  "default": "./dist/service-base/index.mjs"
@@ -114,6 +119,10 @@
114
119
  "types": "./dist/contracts/materialization/index.d.mts",
115
120
  "default": "./dist/contracts/materialization/index.mjs"
116
121
  },
122
+ "./contracts/native-session-supervisor": {
123
+ "types": "./dist/contracts/native-session-supervisor/index.d.mts",
124
+ "default": "./dist/contracts/native-session-supervisor/index.mjs"
125
+ },
117
126
  "./contracts/model-registry": {
118
127
  "types": "./dist/contracts/model-registry/index.d.mts",
119
128
  "default": "./dist/contracts/model-registry/index.mjs"
@@ -1 +0,0 @@
1
- import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,ot as d,p as f,s as p,t as m,u as h,v as g}from"./schemas-CSUwpaNm.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as _}from"@makaio/framework/core";const v={getCapabilities:d,startAgent:g,infer:e,listAgents:a,getAgent:o,stopAgent:l,rehydrateAgent:f,getConfigSchema:i,"agent.created":r,"session.created":h,"session.discovered":m,"session.usage":c,"session.closed":n,log:p,error:u,initialized:t,quota:s},y=_(`adapter`,v),b=y.subjects;export{b as n,v as r,y as t};
@@ -1,41 +0,0 @@
1
- import{agents as e}from"./services/session/storage/schema.mjs";import{n as t,t as n}from"./schema-BrnYlDwZ.mjs";import{n as r}from"./namespace-DwE2g8Wm.mjs";import{SessionStorageSubjects as i}from"./services/session/storage/namespace.mjs";import{TurnStorageSubjects as a}from"./services/turn/namespace.mjs";import"./services/session/turns/namespace.mjs";import{AdapterRuntimeSubjects as o}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as s}from"./services/session/messages/namespace.mjs";import{n as c}from"./namespace-ENv7H7Na.mjs";import{ProviderStorageSubjects as l}from"./services/settings/storage/providers-namespace.mjs";import{ExecutionTargetSubjects as u}from"./services/execution-target/namespace.mjs";import{r as d,t as f}from"./provider-context-lfG0BpqX.mjs";import{ExtractedContextSchema as p}from"./services/compression/schemas.mjs";import{PreferencesSubjects as m}from"./services/preferences/storage-namespace.mjs";import{z as h}from"zod";import{AdapterSubjects as g,AgentResolutionSubjects as _,AgentStatusSchema as v,AgentSubjects as y,MakaioSessionAgentSchema as b,SessionSubjects as x,TurnUsageSchema as S}from"@makaio/framework/contracts";import{defineDialectSchema as C,getRawSqlExecutor as w,getStorageEngine as ee,resolveSchema as T}from"@makaio/framework/storage/drizzle";import{and as E,asc as D,desc as te,eq as O,sql as ne}from"drizzle-orm";import{createStorageNamespaceDefinition as re}from"@makaio/framework/storage";import{HookAbortError as k}from"@makaio/framework/hooks";import{AdapterRuntimeSubjects as ie}from"@makaio/framework/services/adapter-runtime";import{buildProviderContext as ae}from"@makaio/framework/services/provider-context";const A=re(`agent`,{schemas:{get:{request:h.object({agentId:h.string()}),response:h.object({agent:b.nullable()})},set:{request:h.object({agentId:h.string(),agent:b}),response:h.object({success:h.boolean()})},delete:{request:h.object({agentId:h.string()}),response:h.object({success:h.boolean()})},listByAdapter:{request:h.object({adapterName:h.string(),status:h.enum([`idle`,`active`,`dead`,`disposed`,`all`]).optional()}),response:h.object({agents:h.array(b)})},listBySession:{request:h.object({sessionId:h.string()}),response:h.object({agents:h.array(b)})},updateStatus:{request:h.object({agentId:h.string(),status:v}),response:h.object({success:h.boolean()})},updateActivity:{request:h.object({agentId:h.string(),lastActivityAt:h.number()}),response:h.object({success:h.boolean()})},updateRuntime:{request:h.object({agentId:h.string(),cwd:h.string().optional(),model:h.string().optional(),providerConfigId:h.string().optional()}).refine(e=>e.cwd!==void 0||e.model!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (cwd, model, or providerConfigId) must be provided`}),response:h.object({success:h.boolean()})}},extensions:{drizzle:{agents:e}}}),j=A.subjects,oe=t.postgres,M=C({turns:n},{turns:oe});function se(e){if(e)try{let t=JSON.parse(e),n=S.safeParse(t);return n.success?n.data:void 0}catch{return}}function N(e){return{turnId:e.turnId,sessionId:e.sessionId,turnNumber:e.turnNumber,startedAt:e.startedAt,completedAt:e.completedAt??void 0,status:e.status,error:e.error??void 0,usage:se(e.usage)}}function ce(e,t,n){let r=[le(e,t),ue(e,t),de(e,t),fe(e,t),pe(e,t),me(e,t),he(e,t)];return()=>r.forEach(e=>e())}function le(e,t){let n=w(t),r=ee(n.dialect),{turns:i}=T(t,M);return e.on(a.create,async e=>{let{sessionId:a,turnId:o}=e.payload,s=Date.now(),c=o??crypto.randomUUID();for(let e=1;;e++)try{await n.run(ne`
2
- WITH next_num AS (
3
- SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
4
- FROM turns
5
- WHERE session_id = ${a}
6
- )
7
- INSERT INTO turns (turn_id, session_id, turn_number, started_at, status)
8
- SELECT ${c}, ${a}, n, ${s}, ${`active`}
9
- FROM next_num
10
- `);break}catch(t){if(e>=32||!r.capabilities.maxCounterAssignmentRaces||!r.errors.isUniqueViolationError(t,`uniq_turns_session_number`))throw t}let[l]=await t.select({turnNumber:i.turnNumber}).from(i).where(O(i.turnId,c)),u={turnId:c,sessionId:a,turnNumber:l.turnNumber,startedAt:s,status:`active`};e.setResult({turn:u})})}function ue(e,t){let{turns:n}=T(t,M);return e.on(a.complete,async e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c={completedAt:Date.now(),status:i,error:o??null};s!==void 0&&(c.usage=JSON.stringify(s));let l=a?E(O(n.turnId,r),O(n.status,a)):O(n.turnId,r),u=await t.update(n).set(c).where(l).returning();if(u.length>0){e.setResult({turn:N(u[0]),transitioned:!0});return}let[d]=await t.select().from(n).where(O(n.turnId,r)).limit(1);if(!d)throw Error(`Turn not found: ${r}`);e.setResult({turn:N(d),transitioned:!1})})}function de(e,t){let{turns:n}=T(t,M);return e.on(a.set,async e=>{let{turn:r}=e.payload,i={turnId:r.turnId,sessionId:r.sessionId,turnNumber:r.turnNumber,startedAt:r.startedAt,completedAt:r.completedAt??null,status:r.status,error:r.error??null,usage:r.usage?JSON.stringify(r.usage):null};await t.insert(n).values(i).onConflictDoUpdate({target:n.turnId,set:i}),e.setResult({turn:r})})}function fe(e,t){let{turns:n}=T(t,M);return e.on(a.get,async e=>{let{turnId:r}=e.payload,[i]=await t.select().from(n).where(O(n.turnId,r)).limit(1);e.setResult({turn:i?N(i):null})})}function pe(e,t){let{turns:n}=T(t,M);return e.on(a.getBySession,async e=>{let{sessionId:r,limit:i,status:a}=e.payload,o=t.select().from(n).where(O(n.sessionId,r)).orderBy(D(n.turnNumber));a&&(o=t.select().from(n).where(E(O(n.sessionId,r),O(n.status,a))).orderBy(D(n.turnNumber))),i&&(o=o.limit(i));let s=await o;e.setResult({turns:s.map(N)})})}function me(e,t){let{turns:n}=T(t,M);return e.on(a.getActive,async e=>{let{sessionId:r}=e.payload,[i]=await t.select().from(n).where(E(O(n.sessionId,r),O(n.status,`active`))).orderBy(te(n.turnNumber)).limit(1);e.setResult({turn:i?N(i):null})})}function he(e,t){let{turns:n}=T(t,M);return e.on(a.listActive,async e=>{let r=await t.select().from(n).where(O(n.status,`active`)).orderBy(D(n.startedAt));e.setResult({turns:r.map(N)})})}function ge(e){let t=new Map,n=new Map,r=new Map,i=_e(t,n,r),a=[ve(e,i,r),ye(e,t,i),be(e,i),xe(e,t),Se(e,t,n),Ce(e,t,n),we(e,t)];return()=>a.forEach(e=>e())}function _e(e,t,n){return r=>{e.set(r.turnId,r);let i=t.get(r.sessionId)??[];i.includes(r.turnId)||i.push(r.turnId),t.set(r.sessionId,i);let a=n.get(r.sessionId)??0;r.turnNumber>a&&n.set(r.sessionId,r.turnNumber)}}function ve(e,t,n){return e.on(a.create,e=>{let{sessionId:r,turnId:i}=e.payload,a=Date.now(),o={turnId:i??crypto.randomUUID(),sessionId:r,turnNumber:(n.get(r)??0)+1,startedAt:a,status:`active`};t(o),e.setResult({turn:o})})}function ye(e,t,n){return e.on(a.complete,e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=t.get(r);if(!c)throw Error(`Turn not found: ${r}`);if(a&&c.status!==a){e.setResult({turn:c,transitioned:!1});return}let l={...c,completedAt:Date.now(),status:i,error:o??void 0,usage:s??c.usage};n(l),e.setResult({turn:l,transitioned:!0})})}function be(e,t){return e.on(a.set,e=>{let{turn:n}=e.payload;t(n),e.setResult({turn:n})})}function xe(e,t){return e.on(a.get,e=>{e.setResult({turn:t.get(e.payload.turnId)??null})})}function Se(e,t,n){return e.on(a.getBySession,e=>{let{sessionId:r,status:i,limit:a}=e.payload,o=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e);i&&(o=o.filter(e=>e.status===i)),o.sort((e,t)=>e.turnNumber-t.turnNumber),a&&(o=o.slice(0,a)),e.setResult({turns:o})})}function Ce(e,t,n){return e.on(a.getActive,e=>{let{sessionId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).filter(e=>e.status===`active`).sort((e,t)=>t.turnNumber-e.turnNumber).at(0);e.setResult({turn:i??null})})}function we(e,t){return e.on(a.listActive,e=>{let n=[...t.values()].filter(e=>e.status===`active`).sort((e,t)=>e.startedAt-t.startedAt);e.setResult({turns:n})})}function P(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var F=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];_completedAgents=new Set;_erroredAgents=new Map;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(P(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return P(this._initiator)}get messageIds(){return this._messageIds}get completedAgents(){return this._completedAgents}get erroredAgents(){return this._erroredAgents}addMessage(e){this._messageIds.push(e)}markAgentCompleted(e){return this._completedAgents.add(e),this.checkCompletion()}markAgentErrored(e,t){return this._erroredAgents.set(e,t),this.checkCompletion()}hasAgent(e){return this._agentIds.includes(e)}isComplete(){return this._completedAgents.size+this._erroredAgents.size>=this._agentIds.length}getResult(){return{success:this._erroredAgents.size===0,errors:Array.from(this._erroredAgents.values())}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}checkCompletion(){return this.isComplete()?{turnComplete:!0,result:this.getResult()}:{turnComplete:!1}}};function I(e){return typeof e==`string`?e:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
11
- `)}function Te(e){return e}function Ee(e){return typeof e==`string`?[{type:`text`,content:e}]:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(Te)}async function De(e,t,n,r){let{session:i}=await e.request(x.get,{sessionId:t});if(i){if(i.status!==`active`)throw Error(`[getOrCreateSession] Session is not active: ${t}`);return{sessionId:t,session:i}}await e.request(x.create,{sessionId:t,originWindowId:r});let{session:a}=await e.request(x.get,{sessionId:t});if(!a)throw Error(`[getOrCreateSession] Failed to create session: ${t}`);return{sessionId:t,session:a}}function Oe(e,t){if(t===void 0){let t=e.agents.find(t=>t.agentId===e.leadAgentId);if(!t)throw Error(`[resolveTargetAgents] Lead agent not found: ${e.leadAgentId}`);return[t]}if(t===`all`)return e.agents;let n=new Set(t);return e.agents.filter(e=>n.has(e.agentId))}function ke(e,t){for(let n of e.values())if(n.hasAgent(t))return n}function Ae(e,t){if(e===`extension`){let e=t?.trim();if(!e)throw Error(`extensionId is required when source is "extension"`);return{source:`extension`,sourceId:e}}return e?{source:e}:{source:`user`}}async function L(e,t,n){let{adapterId:r}=await e.request(o.resolveId,{adapterName:t,...n!==void 0&&{machineId:n}});return r}async function je(e,t,n){if(!(!t||!n))try{let{config:r}=await e.request(c.getProviderConfig,{id:t});if(!r)return;let{provider:i}=await e.request(l.get,{id:r.definitionId}),a=i?.availableModels?.find(e=>e.name===n);return a?{supportedReasoningLevels:a.supportedReasoningLevels}:void 0}catch{return}}async function Me(e,t){let{executionTarget:n}=await e.request(u.resolve,t);return n}async function R(e,t){let{sessionId:n,limit:i}=t,a=[],o=!1,c=!1,l;do{let{events:t,nextCursor:u}=await e.request(r.getEvents,{sessionId:n,options:{limit:1e4,...l&&{after:l}}});for(let r of t){if(r.type===`squash`){o=!0,a.length=0;let e=r.payload,t={messageId:`squash-${r.eventId}`,sessionId:n,turnId:null,role:`assistant`,contentText:e.summaryJson,blocks:[{type:`text`,content:e.summaryJson}],timestamp:r.timestamp};a.push(t)}else if(r.type===`message`){let t=r.payload,{message:n}=await e.request(s.get,{messageId:t.messageId});n&&a.push(n)}if(i&&a.length>=i){c=!0;break}}if(i&&a.length>=i)break;l=u??void 0}while(l);return{messages:a,hasSquashBoundary:o,sessionChain:[n],truncated:c,incomplete:!1}}const z=new class{actions=new Map;register(e){if(this.actions.has(e.id))throw Error(`Action already registered: ${e.id}`);this.actions.set(e.id,e)}get(e){return this.actions.get(e)}getAll(){return Array.from(this.actions.values())}getByCategory(e){return this.getAll().filter(t=>t.category===e)}reset(){this.actions.clear()}};async function B(e,t,n){let r=e,i,a;for(let e of t){let t=z.get(e.actionId);if(!t)throw Error(`Unknown action: ${e.actionId}`);let o={...n,...e.options},s=await t.execute(r,o);if(s.kind===`messages`)r=s.messages;else{i=s.json,a=s.tokenEstimate,r=[];break}}if(!i&&r.length>0){let e=r.reduce((e,t)=>e+JSON.stringify(t.blocks).length,0);a=Math.ceil(e/4)}return{messages:r,contextJson:i,tokenEstimate:a}}function V(e){return e.map(e=>({...e,blocks:e.blocks.filter(e=>e.type!==`reasoning`)}))}const Ne={id:`strip-reasoning`,label:`Strip Reasoning`,description:`Remove reasoning/thinking blocks from messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:V(e)}}};function H(e){return e.map(e=>({...e,blocks:e.blocks.map(e=>{if(e.type===`tool_output`){let t=e.output.length;return{...e,output:`[output removed - ${t} chars]`}}return e})}))}const Pe={id:`strip-tool-outputs`,label:`Strip Tool Outputs`,description:`Remove tool output contents, keep structure`,category:`transformation`,async execute(e){return{kind:`messages`,messages:H(e)}}};async function U(e,t){let n=[],r=[],a=[],o=!1,s=!1,c=!1,l=[],u,d=t,f;for(;d;){let n=await e.request(i.get,{sessionId:d});if(!n.session){c=!0;break}d===t&&(u=n.session.forkTransforms??void 0),l.unshift({sessionId:d,forkPointMessageId:n.session.forkPointMessageId??void 0}),f=n.session.parentSessionId??void 0,d=f}for(let t=0;t<l.length;t++){let{sessionId:i}=l[t],c=t===l.length-1,u=l[t+1]?.forkPointMessageId;n.push(i);let d=await R(e,{sessionId:i});if(d.hasSquashBoundary&&(o=!0,c||(r.length=0)),d.truncated&&(s=!0),c)a=d.messages;else for(let e of d.messages)if(r.push(e),u&&e.messageId===u)break}return u&&(r=await Fe(r,u)),{messages:[...r,...a],hasSquashBoundary:o,sessionChain:n,truncated:s,incomplete:c}}async function Fe(e,t){if(t.segments?.length){let n=t.segments[0].fromMessageId,r=t.segments[t.segments.length-1].toMessageId,i=e.findIndex(e=>e.messageId===n),a=e.findIndex(e=>e.messageId===r);if(i===-1||a===-1||i>a)return W(e,t.segments);let o=e.slice(0,i),s=e.slice(i,a+1),c=e.slice(a+1),l=W(s,t.segments);return[...o,...l,...c]}let n=e;if(t.removedMessageIds?.length){let e=new Set(t.removedMessageIds);n=n.filter(t=>!e.has(t.messageId))}return t.appliedPipeline?.length&&(n=(await B(n,t.appliedPipeline)).messages),n}function Ie(e,t){let n=e;return t.stripReasoning&&(n=V(n)),t.stripToolOutputs&&(n=H(n)),n}function W(e,t){let n=new Map;for(let t=0;t<e.length;t++)n.set(e[t].messageId,t);let r=[];for(let i of t){let t=n.get(i.fromMessageId),a=n.get(i.toMessageId);if(t===void 0||a===void 0){console.warn(`[getFullConversation] Skipping segment with missing boundary IDs`,{segmentKey:`${i.fromMessageId}..${i.toMessageId}`,fromMessageId:i.fromMessageId,toMessageId:i.toMessageId,hasFrom:t!==void 0,hasTo:a!==void 0});continue}let o=e.slice(t,a+1),s;switch(i.policy){case`exclude`:s=[];break;case`summarize`:if(i.summaryText){if(o.length===0)throw Error(`Cannot create synthetic summary message for empty segment: ${i.fromMessageId}..${i.toMessageId}`);s=[{messageId:`summary-${i.fromMessageId}-${i.toMessageId}`,turnId:null,sessionId:o[0].sessionId,role:`assistant`,contentText:i.summaryText,blocks:[{type:`text`,content:i.summaryText}],timestamp:o[o.length-1].timestamp}]}else s=o;break;default:s=o;break}if((i.policy!==`summarize`||!i.summaryText)&&i.overrides&&Object.keys(i.overrides).length>0){let e=new Set(Object.entries(i.overrides).filter(([,e])=>e===`exclude`).map(([e])=>e));s=s.filter(t=>!e.has(t.messageId))}s=Ie(s,i),r.push(...s)}return r}function G(e){return{role:e.role,blocks:e.blocks}}async function Le(e,t){return{messageHistory:(await U(e,t.sessionId)).messages.map(G),isFirstTurn:!0}}async function Re(e,t,n,r){if(t.cwd===n)return{swapped:!1};let i=await e.request(y.cwd.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,sessionId:t.sessionId,newCwd:n,...r?.skipWarning?{skipWarning:!0}:{}});if(!i.success)throw Error(`Failed to change cwd for agent ${t.agentId}: ${i.reason??`unknown`}`);return i.previousCwd?(t.cwd=n,{swapped:!0,previousCwd:i.previousCwd}):(t.cwd=n,{swapped:!1})}async function ze(e,t,n,r){let i=n===void 0||t.model===n,a=r?.reasoningEffort===void 0,o=!r?.providerConfigId;if(i&&a&&o)return{changed:!1};let s=r?.providerConfigId?await d(e,r.providerConfigId):void 0,c=await e.request(y.model.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,...n!==void 0&&{newModel:n},...r?.reasoningEffort!==void 0&&{reasoningEffort:r.reasoningEffort},...r?.skipWarning!==void 0&&{skipWarning:r.skipWarning},...s!==void 0&&{providerContext:s}});if(!c.success)throw Error(`Failed to change model for agent ${t.agentId}: ${c.reason??`unknown`}`);return n!==void 0&&(t.model=n),{changed:!0,swapped:c.swapped??!1}}async function Be(e,t,n){let r=[],i=new Set;for(let a of t){let t=await e.requestOptional(g.getAgent,{adapterId:a.adapterId,agentId:a.agentId});if(t.handled&&t.data.agent!==null)r.push(a);else{let t=await K(e,a,n);r.push(t),i.add(t.agentId)}}return{verifiedAgents:r,recoveredAgentIds:i}}async function Ve(e,t,n){let r=await U(e,t.sessionId),i=n?.pipeline??[];return{messageHistory:(i.length>0?(await B(r.messages,i)).messages:r.messages).map(G),isFirstTurn:!0}}async function K(e,t,n){let r=await L(e,t.adapterName).catch(()=>t.adapterId);return await e.request(g.rehydrateAgent,{adapterId:r,agentId:t.agentId,cwd:n.cwd,model:n.model??t.model}),t.adapterId=r,t}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function J(e,t,n,r){let{adapterName:i}=await e.request(o.resolveName,{adapterId:t});if(n&&i!==n)throw Error(`${r}adapterName "${n}" does not match adapterId "${t}"`);return i}async function He(e,t,n,r,i,a,o,s,c,l){let u=n.map(async n=>{try{await e.request(y.sendMessage,{agentId:n.agentId,adapterId:n.adapterId,message:r,deliveryMode:o,messageId:i,turnId:a.turnId,sessionId:t.sessionId,sessionContext:c,...l!==void 0&&{responseSchema:l}}),await e.emit(x.user_message.acknowledged,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId})}catch(t){if(t instanceof k){await e.emit(x.user_message.completed,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId,outcome:`cancelled`});let t=a.markAgentCompleted(n.agentId);t.turnComplete&&await s(a,t.result);return}let r=t instanceof Error?t.message:String(t),o=a.markAgentErrored(n.agentId,r);await e.emit(x.user_message.completed,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId,outcome:`error`,error:r}),o.turnComplete&&await s(a,o.result)}});await Promise.all(u)}function Ue(e){return e.on(x.abandon,async t=>{let{parentSessionId:n,childSessionId:r}=t.payload,{session:i}=await e.request(x.get,{sessionId:r});if(!i)throw Error(`[abandon-handler] Child session not found: ${r}`);if(i.parentSessionId!==n)throw Error(`[abandon-handler] Invalid parent-child relationship: session ${r} is not a child of ${n}`+(i.parentSessionId?` (actual parent: ${i.parentSessionId})`:` (session has no parent)`));if(!(await e.request(x.close,{sessionId:r})).success)throw Error(`[abandon-handler] Failed to close child session: ${r}`);await e.emit(x.abandoned,{sessionId:r,parentSessionId:n}),t.setResult({success:!0})})}function We(e,t,n){return e.on(x.agent.attach,async r=>{let{sessionId:i,agent:a,initialMessage:o,role:s}=r.payload,c=Ge(a),l=await Ze(e,i),u=await qe(e,i,o,a),{adapterName:d,adapterId:p}=await Ke(e,a.kind===`adapter`&&`adapterName`in a?a.adapterName:u?.adapterName,a.kind===`adapter`&&`adapterId`in a?a.adapterId:void 0,n),{providerConfigId:m,providerContext:h}=await Je(e,a.providerConfigId,u),{runtimeOptions:_,mergedModel:v,mergedCwd:y}=Xe(c,u,h),b=Qe(l,s),x=et(p,i,o,b,_,$e(l),u?.harnessId);h!==void 0&&await f(e,h);let S=await e.request(g.startAgent,x);if(!S.success)throw Error(`[attach-handler] Failed to start agent: ${S.message}`);let C=a.kind===`persona`?a.personaId:void 0;await nt(e,S,{adapterName:d,sessionId:i,role:b,timestamp:Date.now(),personaId:C,profileId:u?.profileId,harnessId:u?.harnessId,providerConfigId:m,compressionMode:u?.compressionMode,model:v,cwd:y});let w=o&&S.messageId?await rt(e,t,i,S.agentId,S.messageId,o):void 0;r.setResult({agentId:S.agentId,adapterSessionId:S.adapterSessionId,role:b,...w&&{messageId:w.messageId,turnId:w.turnId}})})}function Ge(e){return{...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt}}}async function Ke(e,t,n,r){let i=q(t),a=q(n);if(!i&&!a)throw Error(`[attach-handler] adapterName or adapterId is required — provide one explicitly or via persona/profile/virtualModel resolution`);if(a)return{adapterName:await J(e,a,i,`[attach-handler] `),adapterId:a};let o=i;return{adapterName:o,adapterId:await L(e,o,r)}}async function qe(e,t,n,r){if(r.kind===`adapter`)return null;let i=n?I(n):void 0;return e.request(_.resolve,{selection:r,context:{sessionId:t,promptText:i}})}async function Je(e,t,n){let r=t??n?.providerConfigId;return{providerConfigId:r,providerContext:r===void 0?void 0:await d(e,r)}}function Ye(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Xe(e,t,n){let r=e.model??t?.model,i=e.cwd;return{runtimeOptions:Ye({model:r,reasoningEffort:e.reasoningEffort??t?.reasoningEffort,cwd:i,allowedTools:e.allowedTools??t?.allowedTools,disallowedTools:e.disallowedTools??t?.disallowedTools,allowedDirectories:e.allowedDirectories??t?.allowedDirectories,systemPrompt:e.systemPrompt??t?.systemPrompt,providerContext:n}),mergedModel:r,mergedCwd:i}}async function Ze(e,t){let{session:n}=await e.request(x.get,{sessionId:t});if(!n)throw Error(`[attach-handler] Session not found: ${t}`);if(n.status!==`active`)throw Error(`[attach-handler] Session is not active: ${t}`);return n}function Qe(e,t){let n=e.agents.length===0;return t??(n?`lead`:`member`)}function $e(e){if(e.isImported&&e.isOrchestrated===!1&&e.adapterSessionId)return e.adapterSessionId}function et(e,t,n,r,i,a,o){return a?{mode:`resume`,adapterId:e,sessionId:t,adapterSessionId:a,role:r,...i,...n!==void 0&&{initialMessage:n},...o!==void 0&&{harnessId:o}}:{adapterId:e,sessionId:t,role:r,...i,...n!==void 0&&{initialMessage:n},...o!==void 0&&{harnessId:o}}}async function tt(e,t){!t.personaId&&!t.profileId&&!t.harnessId&&!t.providerConfigId||await e.request(j.set,{agentId:t.agentId,agent:{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,role:t.role,status:`idle`,personaId:t.personaId,profileId:t.profileId,harnessId:t.harnessId,providerConfigId:t.providerConfigId,createdAt:t.timestamp,lastActivityAt:t.timestamp,...t.model!==void 0&&{model:t.model},...t.cwd!==void 0&&{cwd:t.cwd},...t.compressionMode!==void 0&&{compressionMode:t.compressionMode}}})}async function nt(e,t,n){try{await tt(e,{agentId:t.agentId,adapterId:t.adapterId,adapterName:n.adapterName,sessionId:n.sessionId,role:n.role,timestamp:n.timestamp,personaId:n.personaId,profileId:n.profileId,harnessId:n.harnessId,providerConfigId:n.providerConfigId,compressionMode:n.compressionMode,model:n.model,cwd:n.cwd})}catch(r){console.error(`[attach-handler] Failed to persist agent identity, rolling back started agent`,{sessionId:n.sessionId,agentId:t.agentId,adapterId:t.adapterId,error:r});try{await e.request(g.stopAgent,{adapterId:t.adapterId,agentId:t.agentId})}catch(e){console.error(`[attach-handler] Failed to rollback started agent after identity persistence failure`,{sessionId:n.sessionId,agentId:t.agentId,adapterId:t.adapterId,error:e})}throw r}}async function rt(e,t,n,r,i,o){let{turn:s}=await e.request(a.create,{sessionId:n}),c=new F({sessionId:n,agentIds:[r],turnId:s.turnId,turnNumber:s.turnNumber});return c.addMessage(i),t.set(n,c),await e.emit(x.turn.started,{sessionId:n,turnId:c.turnId,turnNumber:c.turnNumber,messageId:i,agentIds:[...c.agentIds]}),await e.emit(x.user_message.sent,{sessionId:n,turnId:c.turnId,turnNumber:c.turnNumber,messageId:i,content:o,agentIds:[...c.agentIds]}),await e.emit(x.user_message.acknowledged,{sessionId:n,turnId:c.turnId,turnNumber:c.turnNumber,messageId:i,agentId:r}),{messageId:i,turnId:c.turnId}}const it={id:`messages-to-context`,label:`Export as Context`,description:`Convert messages to context JSON (final step)`,category:`extraction`,async execute(e){let t=e.map(e=>({role:e.role,content:e.blocks.map(e=>e.type===`text`?e.content:e.type===`reasoning`?`[reasoning: ${e.content}]`:e.type===`tool_call`?`[tool: ${e.name}]`:e.type===`tool_output`?e.output:``).filter(Boolean).join(`
12
- `)})),n=t.reduce((e,t)=>e+t.content.length,0),r=Math.ceil(n/4);return{kind:`context`,json:{type:`compressed-messages`,messageCount:e.length,messages:t},tokenEstimate:r}}},at={id:`llm-summarize`,label:`Summarize`,description:`LLM-generated summary of selected messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:e}}};function ot(e){let t=[];for(let n of e){let e=n.blocks.filter(e=>e.type===`text`).map(e=>e.content).join(`
13
- `);e&&(n.role===`user`?t.push(`[human]\n${e}\n[/human]`):n.role===`assistant`&&t.push(`[assistant]\n${e}\n[/assistant]`))}return`<conversation>\n${t.join(`
14
-
15
- `)}\n</conversation>`}function st(e){return{id:`llm-extract`,label:`LLM Extract`,description:`Extract structured context using a cheap LLM model (requires virtualModelId in options)`,category:`extraction`,async execute(t,n){let r={kind:`messages`,messages:t},i=n?.virtualModelId;if(typeof i!=`string`)return r;let a=(typeof n?.sessionId==`string`&&n.sessionId.length>0?n.sessionId:void 0)??t[0]?.sessionId;if(typeof a!=`string`||a.length===0)return r;try{let n=await e.request(_.resolve,{selection:{kind:`virtual-model`,virtualModelId:i},context:{sessionId:a}}),{adapterId:r}=await e.request(ie.resolveId,{adapterName:n.adapterName}),o=ot(t),s=n.providerConfigId?await ae(e,n.providerConfigId):void 0,{text:c}=await e.request(g.infer,{adapterId:r,prompt:o,model:n.model,systemPrompt:`You are a context extraction assistant. Analyze the following conversation and extract structured information. Respond with ONLY valid JSON matching this exact schema — no markdown, no explanation, no code fences:
16
-
17
- {
18
- "resolved_items": ["string — completed work with resolution details"],
19
- "known_bugs": [{ "issue": "string", "location": "string", "impact": "string" }],
20
- "todos": [{ "issue": "string", "location": "string", "priority": "high|medium|low" }],
21
- "key_decisions_and_rationale": ["string — decision with reasoning"],
22
- "technical_details": {
23
- "files": ["string — file paths mentioned"],
24
- "schemas": {},
25
- "apis": ["string — API endpoints or contracts"],
26
- "config": {}
27
- },
28
- "constraints_and_requirements": ["string — constraints or non-negotiable requirements"],
29
- "current_state": "string — one paragraph summary of where work stands now",
30
- "roadmap": ["string — future work items in priority order"],
31
- "data_flows": ["string — key data movement patterns"],
32
- "component_interactions": { "ComponentName": "string — description of its role" },
33
- "key_files": { "filepath": "string — what this file does" },
34
- "helpful_hint": ["string — quick reference hints for resuming work"]
35
- }
36
-
37
- Rules:
38
- - Omit array items you have no evidence for (prefer empty array over fabrication).
39
- - current_state MUST be present; write "No summary available" if you cannot determine it.
40
- - Extract only facts stated or clearly implied in the conversation. Do not invent.
41
- - key_files and component_interactions should only include items explicitly mentioned.`,...s!==void 0&&{providerContext:s}}),l=c.trim().replace(/^```(?:json)?\s*/i,``).replace(/\s*```$/i,``).trim(),u=JSON.parse(l),d=p.parse(u),f=Math.ceil(JSON.stringify(d).length/4);return{kind:`context`,json:{...d},tokenEstimate:f}}catch(e){return console.warn(`[llm-extract] action failed`,{action:`llm-extract`,sessionId:a,error:e}),r}}}}let Y=!1,X=!1;function Z(e){Y||(Y=!0,z.register(Ne),z.register(Pe),z.register(it),z.register(at)),e&&!X&&(X=!0,z.register(st(e)))}function ct(){Y=!1,X=!1}function lt(e){return Z(e),e.on(x.compress,async t=>{let{sessionId:n,pipeline:i}=t.payload,{messages:a}=await e.request(s.getBySession,{sessionId:n,limit:1e4}),o=await B(a,i,{sessionId:n});if(!o.contextJson)throw Error(`[compress-handler] Compress pipeline must produce context JSON (sessionId=${n})`);let c=a.map(e=>e.messageId),l=Math.ceil(a.reduce((e,t)=>e+JSON.stringify(t.blocks).length/4,0)),u=crypto.randomUUID();await e.request(r.append,{event:{sessionId:n,eventId:u,timestamp:Date.now(),type:`squash`,payload:{summaryJson:JSON.stringify(o.contextJson),tokensBefore:l,tokensAfter:o.tokenEstimate,compressedMessageIds:c}}}),await e.emit(x.compressed,{sessionId:n,eventId:u}),t.setResult({eventId:u,contextJson:o.contextJson,tokensBefore:l,tokensAfter:o.tokenEstimate})})}async function ut(e,t,n,r){if(!n.segments?.length)return!1;let i=[],a;do{let{messages:n,nextCursor:o}=await e.request(s.getBySession,{sessionId:t,order:`asc`,limit:200,after:a});i.push(...n),a=r&&n.some(e=>e.messageId===r)?void 0:o??void 0}while(a);if(i.length===0)throw Error(`[fork-handler] Segment transforms require at least one source message (sourceSessionId=${t})`);let o=i;if(r){let e=i.findIndex(e=>e.messageId===r);if(e===-1)throw Error(`[fork-handler] Fork point message not found in source message list: ${r} (sourceSessionId=${t})`);o=i.slice(0,e+1)}let c=new Map;o.forEach((e,t)=>{c.set(e.messageId,t)});let l=-1;for(let e of n.segments){if(!e.fromMessageId||!e.toMessageId)throw Error(`[fork-handler] Segment must have fromMessageId and toMessageId (sourceSessionId=${t})`);let n=c.get(e.fromMessageId),r=c.get(e.toMessageId);if(n===void 0||r===void 0)throw Error(`[fork-handler] Segment boundaries must reference source messages: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n>r)throw Error(`[fork-handler] Segment range is reversed: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n<=l)throw Error(`[fork-handler] Segments must not overlap and must be ordered (sourceSessionId=${t})`);if(n!==l+1)throw Error(`[fork-handler] Segments must be contiguous without gaps (sourceSessionId=${t})`);l=r}if(l!==o.length-1)throw Error(`[fork-handler] Segments must cover the entire source message range (sourceSessionId=${t})`);return!0}function dt(e){if(!e.segments?.length&&e.appliedPipeline?.length)for(let t of e.appliedPipeline){let e=z.get(t.actionId);if(!e)throw Error(`[fork-handler] Unknown action in pipeline: ${t.actionId}`);if(e.category!==`transformation`)throw Error(`[fork-handler] Action '${t.actionId}' is category '${e.category}', but only 'transformation' actions are allowed in fork transforms`)}}function ft(e){return e.on(x.fork,async t=>{let{sourceSessionId:n,fromMessageId:r,name:i,branchKind:a=`fork`,transforms:o,targetWorkingDirectory:c,existingSessionId:l}=t.payload,{session:u}=await e.request(x.get,{sessionId:n});if(!u)throw Error(`[fork-handler] Source session not found: ${n}`);if(r){let{message:t}=await e.request(s.get,{messageId:r});if(!t)throw Error(`[fork-handler] Fork point message not found: ${r} (sourceSessionId=${n})`);if(t.sessionId!==n)throw Error(`[fork-handler] Fork point message ${r} does not belong to session ${n}`)}o&&(await ut(e,n,o,r)||dt(o));let{sessionId:d}=await e.request(x.create,{...l?{sessionId:l}:{},parentSessionId:n,forkPointMessageId:r,branchKind:a,forkTransforms:o,...i?{title:i}:{},...c?{targetWorkingDirectory:c}:{}});await e.emit(x.branch.created,{sessionId:n,childSessionId:d,parentSessionId:n,kind:a,forkPointMessageId:r,transforms:o}),await e.emit(x.forked,{parentSessionId:n,childSessionId:d,forkPoint:r}),t.setResult({sessionId:d})})}function pt(e){return e.on(x.merge,async t=>{let{parentSessionId:n,childSessionId:i,summary:a}=t.payload,o=`merge:${n}:${i}`,{session:s}=await e.request(x.get,{sessionId:n});if(!s)throw Error(`[merge-handler] Parent session not found: ${n}`);if(s.status!==`active`)throw Error(`[merge-handler] Parent session is not active: ${n}`);let{session:c}=await e.request(x.get,{sessionId:i});if(!c)throw Error(`[merge-handler] Child session not found: ${i}`);if(c.parentSessionId!==n)throw Error(`[merge-handler] Invalid parent-child relationship: session ${i} is not a child of ${n}`+(c.parentSessionId?` (actual parent: ${c.parentSessionId})`:` (session has no parent)`));await e.emit(x.merging,{parentSessionId:n,childSessionId:i});let l=a??`Child session ${i} merged.`;if(!(await e.request(x.close,{sessionId:i})).success)throw Error(`[merge-handler] Failed to close child session: ${i}`);let u=JSON.stringify({handoff:l});await e.request(r.append,{event:{sessionId:n,eventId:o,timestamp:Date.now(),type:`branch.merged`,payload:{childSessionId:i,parentSessionId:n,resultJson:u}}}),await e.emit(x.branch.merged,{sessionId:n,childSessionId:i,parentSessionId:n,resultJson:u}),await e.emit(x.merged,{parentSessionId:n,childSessionId:i,handoff:l}),t.setResult({success:!0,handoff:l})})}async function Q(e,t,n,r,i){if(!(t.parentSessionId!==void 0&&(t.contextInheritance===`parent-history`||t.contextInheritance===void 0&&t.branchKind!==`subagent`))||r?.messageHistory)return r;let{turns:o}=await e.request(a.getBySession,{sessionId:n,limit:2});if(!(i&&o.length<=1))return r;let s=(await U(e,n)).messages.map(G);return{...r,messageHistory:s,isFirstTurn:!0,hasNewTransforms:t.forkTransforms!==void 0}}const $={enabled:!0,template:`User changed working directory from {oldCwd} to {newCwd}`};function mt(e,t,n){return e.replace(/\{oldCwd\}/g,t).replace(/\{newCwd\}/g,n)}function ht(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.enabled==`boolean`&&typeof t.template==`string`}async function gt(e){try{let t=await e.request(m.get,{key:{scope:`global`,surface:`ui`,context:`cwdChangeNotification`},category:`chat-display`});if(t.value!==null&&t.value!==void 0)return ht(t.value)?t.value:$}catch{}return $}function _t(e){let{baseContext:t,recoveryContext:n,isRecovered:r,isSwapped:i,swapMeta:a,cwdMessage:o,freshMessageHistory:s}=e,c=r&&n?{...t,...n}:t;if(!i)return c;let l=a&&o!==void 0?{cwdChange:{previousCwd:a.previousCwd,newCwd:a.newCwd,message:o}}:void 0;return c={...c,hasConnectorSwap:!0,...s!==void 0&&{messageHistory:s},...l&&{turnContext:{...c?.turnContext,...l}}},c}async function vt(e){let{bus:t,session:n,turn:r,message:i,messageId:a,deliveryMode:o,onTurnComplete:s,agent:c,agentContext:l,responseSchema:u}=e;try{await t.request(y.sendMessage,{agentId:c.agentId,adapterId:c.adapterId,message:i,deliveryMode:o,messageId:a,turnId:r.turnId,sessionId:n.sessionId,sessionContext:l,...u!==void 0&&{responseSchema:u}}),await t.emit(x.user_message.acknowledged,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:a,agentId:c.agentId})}catch(e){if(e instanceof k){await t.emit(x.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:a,agentId:c.agentId,outcome:`cancelled`});let e=r.markAgentCompleted(c.agentId);e.turnComplete&&await s(r,e.result);return}let n=e instanceof Error?e.message:String(e),i=r.markAgentErrored(c.agentId,n);await t.emit(x.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:a,agentId:c.agentId,outcome:`error`,error:n}),i.turnComplete&&await s(r,i.result)}}async function yt(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){let _=await Q(e,t,t.sessionId,c,u),v=l?await l.enrichForDeliveryMode(_?.messageHistory,a.turnId,o):_?.messageHistory,y=_?{..._,messageHistory:v}:void 0,b=p?.size?await gt(e):$,x=n.map(async n=>{let c=m?.get(n.agentId),l=c&&b.enabled?mt(b.template,c.previousCwd,c.newCwd):void 0;await vt({bus:e,session:t,turn:a,message:r,messageId:i,deliveryMode:o,onTurnComplete:s,agent:n,agentContext:_t({baseContext:y,recoveryContext:d,isRecovered:f?.has(n.agentId)??!1,isSwapped:p?.has(n.agentId)??!1,swapMeta:c,cwdMessage:l,freshMessageHistory:h}),responseSchema:g})});await Promise.all(x)}export{Ee as A,Me as C,De as D,ke as E,j as F,ge as M,ce as N,Oe as O,A as P,L as S,Ae as T,Be as _,lt as a,z as b,We as c,q as d,J as f,K as g,ze as h,ft as i,F as j,I as k,Ue as l,Re as m,Q as n,Z as o,Ve as p,pt as r,ct as s,yt as t,He as u,Le as v,je as w,R as x,U as y};