@makaio/framework 1.0.0-dev-1781397017668 → 1.0.0-dev-1781442380278

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 (93) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{adapter-D_p5kKxi.mjs → adapter-BH1X0THX.mjs} +1 -1
  3. package/dist/adapters/index.d.mts +1 -1
  4. package/dist/bus/index.d.mts +20 -20
  5. package/dist/bus/index.mjs +1 -1
  6. package/dist/contracts/adapter/index.d.mts +1 -1
  7. package/dist/contracts/adapter/index.mjs +1 -1
  8. package/dist/contracts/artifact/index.d.mts +1 -1
  9. package/dist/contracts/canonical-model/index.d.mts +1 -1
  10. package/dist/contracts/config/index.d.mts +6 -6
  11. package/dist/contracts/extension/index.d.mts +2 -2
  12. package/dist/contracts/facet/index.d.mts +1 -1
  13. package/dist/contracts/harness/index.d.mts +1 -1
  14. package/dist/contracts/index.d.mts +188 -183
  15. package/dist/contracts/index.mjs +1 -1
  16. package/dist/contracts/materialization/index.d.mts +3 -3
  17. package/dist/contracts/provider/index.d.mts +1 -1
  18. package/dist/contracts/session/index.d.mts +2 -2
  19. package/dist/contracts/session/index.mjs +1 -1
  20. package/dist/contracts/variant/index.d.mts +1 -1
  21. package/dist/{definition-CPc6oKaF.d.mts → definition-CZcVOhXZ.d.mts} +1 -1
  22. package/dist/handlers-Cpy9Q8ho.mjs +41 -0
  23. package/dist/{index-C24PcW2r.d.mts → index-B1PgTu7q.d.mts} +8 -8
  24. package/dist/{index-CEdOq5Om.d.mts → index-BDnI2oqX.d.mts} +1 -1
  25. package/dist/{index-QvciMc7_.d.mts → index-BF84QInS.d.mts} +875 -361
  26. package/dist/{index-DfNIhEm_.d.mts → index-BVMF3kRv.d.mts} +16 -16
  27. package/dist/{index-CszoKxxO.d.mts → index-Cj3XCjXZ.d.mts} +342 -342
  28. package/dist/{index-BLqtL-_a.d.mts → index-DHVoVh-j.d.mts} +7 -7
  29. package/dist/{index-WKF5BHsw.d.mts → index-DUI1W-zN.d.mts} +8 -8
  30. package/dist/{index-B99Prx5a.d.mts → index-DUsm-DeE.d.mts} +100 -100
  31. package/dist/{index-B92SK0rO.d.mts → index-DigeEyrf.d.mts} +19 -16
  32. package/dist/{index-GuspCNLR.d.mts → index-DyqZej9j.d.mts} +8 -8
  33. package/dist/{index-DBgv39-Q.d.mts → index-HiAth5G0.d.mts} +52 -52
  34. package/dist/{index-NyKdb8kT.d.mts → index-LrZlZUvQ.d.mts} +16 -16
  35. package/dist/{index-BM_y78ZA2.d.mts → index-cN4DkU5Y2.d.mts} +9 -9
  36. package/dist/{index-C0TEY7RE.d.mts → index-oUqyVvsD.d.mts} +1 -1
  37. package/dist/kernel/extension/index.d.mts +1 -1
  38. package/dist/kernel/index.d.mts +2 -2
  39. package/dist/kernel/observability/index.d.mts +1 -1
  40. package/dist/{namespace-DbvQ4HYc.d.mts → namespace-BXuuv8L9.d.mts} +152 -152
  41. package/dist/{namespace-CN2TfSCY.d.mts → namespace-Ba1gUpUu.d.mts} +4 -4
  42. package/dist/{namespace-D_ZXa76m.d.mts → namespace-CWgNi8Gv.d.mts} +26 -26
  43. package/dist/{namespace-BAJTZXWc.d.mts → namespace-DM3TSh_y.d.mts} +38 -38
  44. package/dist/{namespace-C_kaVySz.d.mts → namespace-Q-z7Lr2f.d.mts} +8 -8
  45. package/dist/{package-Bn665ylV.mjs → package-DMoFY63f.mjs} +1 -1
  46. package/dist/package.json +1 -1
  47. package/dist/primitive-runtime-DWbV7f_r.mjs +1 -0
  48. package/dist/{schema-msWs4YhT.d.mts → schema-BKdn_bdY.d.mts} +2 -2
  49. package/dist/{schemas-DMl7IKG-.d.mts → schemas-BbFAwUpf.d.mts} +5 -5
  50. package/dist/{schemas-xoTn8JZb.d.mts → schemas-CyEdMtnQ.d.mts} +152 -152
  51. package/dist/schemas-CzvG8xq7.mjs +1 -0
  52. package/dist/{schemas-DRZJK6hW2.d.mts → schemas-DvjQHkmw2.d.mts} +6 -6
  53. package/dist/{schemas-CN9hprME.d.mts → schemas-IDGAJ_zv.d.mts} +6 -6
  54. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  55. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  56. package/dist/services/agent-runtime/index.d.mts +2 -2
  57. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  58. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  59. package/dist/services/context-rules/index.d.mts +3 -3
  60. package/dist/services/filesystem/namespace.d.mts +12 -12
  61. package/dist/services/filesystem/schemas.d.mts +6 -6
  62. package/dist/services/harness/index.d.mts +3 -3
  63. package/dist/services/index.d.mts +117 -117
  64. package/dist/services/index.mjs +1 -1
  65. package/dist/services/session/handlers/index.mjs +1 -1
  66. package/dist/services/session/index.d.mts +4 -4
  67. package/dist/services/session/index.mjs +1 -1
  68. package/dist/services/session/messages/namespace.d.mts +1 -1
  69. package/dist/services/session/storage/namespace.d.mts +1 -1
  70. package/dist/services/session/storage/schema.d.mts +1 -1
  71. package/dist/services/session/testing/index.mjs +1 -1
  72. package/dist/services/settings/namespace.d.mts +6 -6
  73. package/dist/services/subagent-template/index.d.mts +1 -1
  74. package/dist/services/subagent-template/schemas.d.mts +1 -1
  75. package/dist/services/tool-approval/index.mjs +1 -1
  76. package/dist/services/tools/index.mjs +1 -1
  77. package/dist/services/tray-menu/index.d.mts +2 -2
  78. package/dist/services/tray-menu/namespace.d.mts +1 -1
  79. package/dist/services/tray-menu/schemas.d.mts +1 -1
  80. package/dist/session-ZAJrcudH.mjs +39 -0
  81. package/dist/{session-bKk-XeaY.mjs → session-owtKCoUX.mjs} +1 -1
  82. package/dist/{tool-approval-service-C2xXBtdJ.mjs → tool-approval-service-B_28RhuK.mjs} +1 -1
  83. package/dist/{tools-DEUzCPBB.mjs → tools-BpzJterj.mjs} +1 -1
  84. package/dist/{types-4LKM7ZfA.d.mts → types-Bo2-N1YR.d.mts} +887 -357
  85. package/dist/workflow-engine/index.d.mts +34 -34
  86. package/dist/workflow-engine/index.mjs +1 -1
  87. package/dist/workflow-engine/package.mjs +1 -1
  88. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  89. package/package.json +1 -1
  90. package/dist/handlers-CTrL8wmC.mjs +0 -41
  91. package/dist/primitive-runtime-C2yw4-F8.mjs +0 -1
  92. package/dist/schemas-CiMm2zrE.mjs +0 -1
  93. package/dist/session-Me3XO-l9.mjs +0 -39
@@ -865,10 +865,10 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
865
865
  frameId: z.ZodString;
866
866
  nodeId: z.ZodString;
867
867
  nodeType: z.ZodEnum<{
868
+ sequence: "sequence";
868
869
  station: "station";
869
870
  "delegate-agent": "delegate-agent";
870
871
  "delegate-role": "delegate-role";
871
- sequence: "sequence";
872
872
  parallel: "parallel";
873
873
  gate: "gate";
874
874
  iterate: "iterate";
@@ -882,8 +882,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
882
882
  cancelled: "cancelled";
883
883
  failed: "failed";
884
884
  running: "running";
885
- skipped: "skipped";
886
885
  waiting: "waiting";
886
+ skipped: "skipped";
887
887
  }>;
888
888
  attempt: z.ZodDefault<z.ZodNumber>;
889
889
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -910,10 +910,10 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
910
910
  frameId: z.ZodString;
911
911
  nodeId: z.ZodString;
912
912
  nodeType: z.ZodEnum<{
913
+ sequence: "sequence";
913
914
  station: "station";
914
915
  "delegate-agent": "delegate-agent";
915
916
  "delegate-role": "delegate-role";
916
- sequence: "sequence";
917
917
  parallel: "parallel";
918
918
  gate: "gate";
919
919
  iterate: "iterate";
@@ -927,8 +927,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
927
927
  cancelled: "cancelled";
928
928
  failed: "failed";
929
929
  running: "running";
930
- skipped: "skipped";
931
930
  waiting: "waiting";
931
+ skipped: "skipped";
932
932
  }>;
933
933
  attempt: z.ZodDefault<z.ZodNumber>;
934
934
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -952,10 +952,10 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
952
952
  frameId: z.ZodString;
953
953
  nodeId: z.ZodString;
954
954
  nodeType: z.ZodEnum<{
955
+ sequence: "sequence";
955
956
  station: "station";
956
957
  "delegate-agent": "delegate-agent";
957
958
  "delegate-role": "delegate-role";
958
- sequence: "sequence";
959
959
  parallel: "parallel";
960
960
  gate: "gate";
961
961
  iterate: "iterate";
@@ -969,8 +969,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
969
969
  cancelled: "cancelled";
970
970
  failed: "failed";
971
971
  running: "running";
972
- skipped: "skipped";
973
972
  waiting: "waiting";
973
+ skipped: "skipped";
974
974
  }>;
975
975
  attempt: z.ZodDefault<z.ZodNumber>;
976
976
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -997,8 +997,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
997
997
  status: z.ZodEnum<{
998
998
  cancelled: "cancelled";
999
999
  rejected: "rejected";
1000
- resumed: "resumed";
1001
1000
  waiting: "waiting";
1001
+ resumed: "resumed";
1002
1002
  "timed-out": "timed-out";
1003
1003
  }>;
1004
1004
  autoAction: z.ZodEnum<{
@@ -1129,8 +1129,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1129
1129
  status: z.ZodEnum<{
1130
1130
  cancelled: "cancelled";
1131
1131
  rejected: "rejected";
1132
- resumed: "resumed";
1133
1132
  waiting: "waiting";
1133
+ resumed: "resumed";
1134
1134
  "timed-out": "timed-out";
1135
1135
  }>;
1136
1136
  autoAction: z.ZodEnum<{
@@ -1154,8 +1154,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1154
1154
  status: z.ZodOptional<z.ZodEnum<{
1155
1155
  cancelled: "cancelled";
1156
1156
  rejected: "rejected";
1157
- resumed: "resumed";
1158
1157
  waiting: "waiting";
1158
+ resumed: "resumed";
1159
1159
  "timed-out": "timed-out";
1160
1160
  }>>;
1161
1161
  limit: z.ZodDefault<z.ZodNumber>;
@@ -1170,8 +1170,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1170
1170
  status: z.ZodEnum<{
1171
1171
  cancelled: "cancelled";
1172
1172
  rejected: "rejected";
1173
- resumed: "resumed";
1174
1173
  waiting: "waiting";
1174
+ resumed: "resumed";
1175
1175
  "timed-out": "timed-out";
1176
1176
  }>;
1177
1177
  autoAction: z.ZodEnum<{
@@ -1205,8 +1205,8 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
1205
1205
  status: z.ZodEnum<{
1206
1206
  cancelled: "cancelled";
1207
1207
  rejected: "rejected";
1208
- resumed: "resumed";
1209
1208
  waiting: "waiting";
1209
+ resumed: "resumed";
1210
1210
  "timed-out": "timed-out";
1211
1211
  }>;
1212
1212
  autoAction: z.ZodEnum<{
@@ -2562,7 +2562,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2562
2562
  tableName: "workflow_execution_frames";
2563
2563
  dataType: "string";
2564
2564
  columnType: "SQLiteText";
2565
- data: "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain";
2565
+ data: "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain";
2566
2566
  driverParam: string;
2567
2567
  notNull: true;
2568
2568
  hasDefault: false;
@@ -2575,7 +2575,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2575
2575
  generated: undefined;
2576
2576
  }, {}, {
2577
2577
  length: number | undefined;
2578
- $type: "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain";
2578
+ $type: "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain";
2579
2579
  }>;
2580
2580
  path: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2581
2581
  name: string;
@@ -2620,7 +2620,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2620
2620
  tableName: "workflow_execution_frames";
2621
2621
  dataType: "string";
2622
2622
  columnType: "SQLiteText";
2623
- data: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
2623
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
2624
2624
  driverParam: string;
2625
2625
  notNull: true;
2626
2626
  hasDefault: true;
@@ -2633,7 +2633,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2633
2633
  generated: undefined;
2634
2634
  }, {}, {
2635
2635
  length: number | undefined;
2636
- $type: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
2636
+ $type: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
2637
2637
  }>;
2638
2638
  attempt: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2639
2639
  name: string;
@@ -2903,7 +2903,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2903
2903
  tableName: "workflow_gate_instances";
2904
2904
  dataType: "string";
2905
2905
  columnType: "SQLiteText";
2906
- data: "cancelled" | "rejected" | "resumed" | "waiting" | "timed-out";
2906
+ data: "cancelled" | "rejected" | "waiting" | "resumed" | "timed-out";
2907
2907
  driverParam: string;
2908
2908
  notNull: true;
2909
2909
  hasDefault: true;
@@ -2916,7 +2916,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
2916
2916
  generated: undefined;
2917
2917
  }, {}, {
2918
2918
  length: number | undefined;
2919
- $type: "cancelled" | "rejected" | "resumed" | "waiting" | "timed-out";
2919
+ $type: "cancelled" | "rejected" | "waiting" | "resumed" | "timed-out";
2920
2920
  }>;
2921
2921
  autoAction: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
2922
2922
  name: "auto_action";
@@ -4393,7 +4393,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4393
4393
  tableName: "worklog_frame_entries";
4394
4394
  dataType: "string";
4395
4395
  columnType: "SQLiteText";
4396
- data: "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain";
4396
+ data: "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain";
4397
4397
  driverParam: string;
4398
4398
  notNull: true;
4399
4399
  hasDefault: false;
@@ -4406,7 +4406,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4406
4406
  generated: undefined;
4407
4407
  }, {}, {
4408
4408
  length: number | undefined;
4409
- $type: "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain";
4409
+ $type: "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain";
4410
4410
  }>;
4411
4411
  path: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
4412
4412
  name: string;
@@ -4432,7 +4432,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4432
4432
  tableName: "worklog_frame_entries";
4433
4433
  dataType: "string";
4434
4434
  columnType: "SQLiteText";
4435
- data: "pending" | "completed" | "cancelled" | "failed" | "running" | "skipped" | "waiting";
4435
+ data: "pending" | "completed" | "cancelled" | "failed" | "running" | "waiting" | "skipped";
4436
4436
  driverParam: string;
4437
4437
  notNull: true;
4438
4438
  hasDefault: false;
@@ -4866,7 +4866,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4866
4866
  tableName: "worklog_gate_events";
4867
4867
  dataType: "string";
4868
4868
  columnType: "SQLiteText";
4869
- data: "cancelled" | "rejected" | "resumed" | "waiting" | "timed-out";
4869
+ data: "cancelled" | "rejected" | "waiting" | "resumed" | "timed-out";
4870
4870
  driverParam: string;
4871
4871
  notNull: true;
4872
4872
  hasDefault: false;
@@ -4879,7 +4879,7 @@ declare const WorkflowStorageNamespace: _$_makaio_storage_core0.StorageNamespace
4879
4879
  generated: undefined;
4880
4880
  }, {}, {
4881
4881
  length: number | undefined;
4882
- $type: "cancelled" | "rejected" | "resumed" | "waiting" | "timed-out";
4882
+ $type: "cancelled" | "rejected" | "waiting" | "resumed" | "timed-out";
4883
4883
  }>;
4884
4884
  prompt: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
4885
4885
  name: "prompt";
@@ -5793,10 +5793,10 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5793
5793
  frameId: z.ZodString;
5794
5794
  nodeId: z.ZodString;
5795
5795
  nodeType: z.ZodEnum<{
5796
+ sequence: "sequence";
5796
5797
  station: "station";
5797
5798
  "delegate-agent": "delegate-agent";
5798
5799
  "delegate-role": "delegate-role";
5799
- sequence: "sequence";
5800
5800
  parallel: "parallel";
5801
5801
  gate: "gate";
5802
5802
  iterate: "iterate";
@@ -5810,8 +5810,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5810
5810
  cancelled: "cancelled";
5811
5811
  failed: "failed";
5812
5812
  running: "running";
5813
- skipped: "skipped";
5814
5813
  waiting: "waiting";
5814
+ skipped: "skipped";
5815
5815
  }>;
5816
5816
  attempt: z.ZodDefault<z.ZodNumber>;
5817
5817
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5838,10 +5838,10 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5838
5838
  frameId: z.ZodString;
5839
5839
  nodeId: z.ZodString;
5840
5840
  nodeType: z.ZodEnum<{
5841
+ sequence: "sequence";
5841
5842
  station: "station";
5842
5843
  "delegate-agent": "delegate-agent";
5843
5844
  "delegate-role": "delegate-role";
5844
- sequence: "sequence";
5845
5845
  parallel: "parallel";
5846
5846
  gate: "gate";
5847
5847
  iterate: "iterate";
@@ -5855,8 +5855,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5855
5855
  cancelled: "cancelled";
5856
5856
  failed: "failed";
5857
5857
  running: "running";
5858
- skipped: "skipped";
5859
5858
  waiting: "waiting";
5859
+ skipped: "skipped";
5860
5860
  }>;
5861
5861
  attempt: z.ZodDefault<z.ZodNumber>;
5862
5862
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5880,10 +5880,10 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5880
5880
  frameId: z.ZodString;
5881
5881
  nodeId: z.ZodString;
5882
5882
  nodeType: z.ZodEnum<{
5883
+ sequence: "sequence";
5883
5884
  station: "station";
5884
5885
  "delegate-agent": "delegate-agent";
5885
5886
  "delegate-role": "delegate-role";
5886
- sequence: "sequence";
5887
5887
  parallel: "parallel";
5888
5888
  gate: "gate";
5889
5889
  iterate: "iterate";
@@ -5897,8 +5897,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5897
5897
  cancelled: "cancelled";
5898
5898
  failed: "failed";
5899
5899
  running: "running";
5900
- skipped: "skipped";
5901
5900
  waiting: "waiting";
5901
+ skipped: "skipped";
5902
5902
  }>;
5903
5903
  attempt: z.ZodDefault<z.ZodNumber>;
5904
5904
  iteration: z.ZodOptional<z.ZodNumber>;
@@ -5925,8 +5925,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
5925
5925
  status: z.ZodEnum<{
5926
5926
  cancelled: "cancelled";
5927
5927
  rejected: "rejected";
5928
- resumed: "resumed";
5929
5928
  waiting: "waiting";
5929
+ resumed: "resumed";
5930
5930
  "timed-out": "timed-out";
5931
5931
  }>;
5932
5932
  autoAction: z.ZodEnum<{
@@ -6057,8 +6057,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6057
6057
  status: z.ZodEnum<{
6058
6058
  cancelled: "cancelled";
6059
6059
  rejected: "rejected";
6060
- resumed: "resumed";
6061
6060
  waiting: "waiting";
6061
+ resumed: "resumed";
6062
6062
  "timed-out": "timed-out";
6063
6063
  }>;
6064
6064
  autoAction: z.ZodEnum<{
@@ -6082,8 +6082,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6082
6082
  status: z.ZodOptional<z.ZodEnum<{
6083
6083
  cancelled: "cancelled";
6084
6084
  rejected: "rejected";
6085
- resumed: "resumed";
6086
6085
  waiting: "waiting";
6086
+ resumed: "resumed";
6087
6087
  "timed-out": "timed-out";
6088
6088
  }>>;
6089
6089
  limit: z.ZodDefault<z.ZodNumber>;
@@ -6098,8 +6098,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6098
6098
  status: z.ZodEnum<{
6099
6099
  cancelled: "cancelled";
6100
6100
  rejected: "rejected";
6101
- resumed: "resumed";
6102
6101
  waiting: "waiting";
6102
+ resumed: "resumed";
6103
6103
  "timed-out": "timed-out";
6104
6104
  }>;
6105
6105
  autoAction: z.ZodEnum<{
@@ -6133,8 +6133,8 @@ declare const WorkflowStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
6133
6133
  status: z.ZodEnum<{
6134
6134
  cancelled: "cancelled";
6135
6135
  rejected: "rejected";
6136
- resumed: "resumed";
6137
6136
  waiting: "waiting";
6137
+ resumed: "resumed";
6138
6138
  "timed-out": "timed-out";
6139
6139
  }>;
6140
6140
  autoAction: z.ZodEnum<{
@@ -6975,7 +6975,7 @@ declare const worklogFrameEntriesDual: _$_makaio_storage_drizzle0.DualTable<"wor
6975
6975
  /** Unique frame identifier within the execution. */frameId: _$_makaio_storage_drizzle0.DualBuilder<_$drizzle_orm0.IsPrimaryKey<_$drizzle_orm0.NotNull<_$drizzle_orm_sqlite_core0.SQLiteTextBuilderInitial<"frame_id", [string, ...string[]], number | undefined>>>, _$drizzle_orm0.IsPrimaryKey<_$drizzle_orm0.NotNull<_$drizzle_orm_pg_core0.PgTextBuilderInitial<"frame_id", [string, ...string[]]>>>>; /** Execution this frame belongs to. */
6976
6976
  executionId: _$_makaio_storage_drizzle0.DualBuilder<_$drizzle_orm0.NotNull<_$drizzle_orm_sqlite_core0.SQLiteTextBuilderInitial<"execution_id", [string, ...string[]], number | undefined>>, _$drizzle_orm0.NotNull<_$drizzle_orm_pg_core0.PgTextBuilderInitial<"execution_id", [string, ...string[]]>>>; /** Node identifier from the workflow definition. */
6977
6977
  nodeId: _$_makaio_storage_drizzle0.DualBuilder<_$drizzle_orm0.NotNull<_$drizzle_orm_sqlite_core0.SQLiteTextBuilderInitial<"node_id", [string, ...string[]], number | undefined>>, _$drizzle_orm0.NotNull<_$drizzle_orm_pg_core0.PgTextBuilderInitial<"node_id", [string, ...string[]]>>>; /** Node type discriminant. */
6978
- nodeType: _$_makaio_storage_drizzle0.DualBuilder<_$drizzle_orm0.$Type<_$drizzle_orm0.NotNull<_$drizzle_orm_sqlite_core0.SQLiteTextBuilderInitial<"node_type", [string, ...string[]], number | undefined>>, "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain">, _$drizzle_orm0.$Type<_$drizzle_orm0.NotNull<_$drizzle_orm_pg_core0.PgTextBuilderInitial<"node_type", [string, ...string[]]>>, "station" | "delegate-agent" | "delegate-role" | "sequence" | "parallel" | "gate" | "iterate" | "iterate-chain">>;
6978
+ nodeType: _$_makaio_storage_drizzle0.DualBuilder<_$drizzle_orm0.$Type<_$drizzle_orm0.NotNull<_$drizzle_orm_sqlite_core0.SQLiteTextBuilderInitial<"node_type", [string, ...string[]], number | undefined>>, "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain">, _$drizzle_orm0.$Type<_$drizzle_orm0.NotNull<_$drizzle_orm_pg_core0.PgTextBuilderInitial<"node_type", [string, ...string[]]>>, "sequence" | "station" | "delegate-agent" | "delegate-role" | "parallel" | "gate" | "iterate" | "iterate-chain">>;
6979
6979
  /**
6980
6980
  * Ordered path of frame IDs from the root frame to this frame (inclusive).
6981
6981
  * Stored as a JSON array for tree correlation.
@@ -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-C2yw4-F8.mjs";import{a as c,i as l,n as u,o as d,r as f,t as p}from"../package-Bn665ylV.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-DWbV7f_r.mjs";import{a as c,i as l,n as u,o as d,r as f,t as p}from"../package-DMoFY63f.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 +1 @@
1
- import{n as e,r as t,t as n}from"../package-Bn665ylV.mjs";export{n as WorkflowEngineToken,e as createWorkflowEnginePackage,t as workflowEnginePackage};
1
+ import{n as e,r as t,t as n}from"../package-DMoFY63f.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-C2yw4-F8.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-DWbV7f_r.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-1781397017668",
3
+ "version": "1.0.0-dev-1781442380278",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",
@@ -1,41 +0,0 @@
1
- import{TurnStorageSubjects as e}from"./services/turn/namespace.mjs";import{agents as t}from"./services/session/storage/schema.mjs";import{n,t as r}from"./schema-Ba64XQjo.mjs";import{n as i}from"./namespace-BxrHvS5c.mjs";import{SessionStorageSubjects as a}from"./services/session/storage/namespace.mjs";import{n as o}from"./namespace-FJsnoEQy.mjs";import{r as s,t as c}from"./provider-context-Ds6GNYnE.mjs";import{AdapterRuntimeSubjects as l}from"./services/adapter-runtime/namespace.mjs";import{ProviderStorageSubjects as u}from"./services/settings/storage/providers-namespace.mjs";import{ExecutionTargetSubjects as d}from"./services/execution-target/namespace.mjs";import{MessageStorageSubjects as f}from"./services/session/messages/namespace.mjs";import"./services/session/turns/namespace.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,TurnInitiatorSchema as S,TurnUsageSchema as ee}from"@makaio/framework/contracts";import{createStorageNamespaceDefinition as C}from"@makaio/framework/storage";import{defineDialectSchema as te,getRawSqlExecutor as ne,getStorageEngine as re,resolveSchema as w}from"@makaio/framework/storage/drizzle";import{and as T,asc as E,desc as ie,eq as D,sql as ae}from"drizzle-orm";import{HookAbortError as O}from"@makaio/framework/hooks";import{AdapterRuntimeSubjects as oe}from"@makaio/framework/services/adapter-runtime";import{buildProviderContext as se}from"@makaio/framework/services/provider-context";const k=C(`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(),adapterId:h.string().optional(),cwd:h.string().optional(),model:h.string().optional(),allowedDirectories:h.array(h.string()).optional(),providerConfigId:h.string().optional()}).refine(e=>e.adapterId!==void 0||e.cwd!==void 0||e.model!==void 0||e.allowedDirectories!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (adapterId, cwd, model, allowedDirectories, or providerConfigId) must be provided`}),response:h.object({success:h.boolean()})}},extensions:{drizzle:{agents:t}}}),A=k.subjects;async function j(e,t,n){let{adapterId:r}=await e.request(l.resolveId,{adapterName:t,...n!==void 0&&{machineId:n}});return r}async function ce(e,t,n){if(!(!t||!n))try{let{config:r}=await e.request(o.getProviderConfig,{id:t});if(!r)return;let{provider:i}=await e.request(u.get,{id:r.definitionId}),a=i?.availableModels?.find(e=>e.name===n);return a?{supportedReasoningLevels:a.supportedReasoningLevels}:void 0}catch{return}}async function le(e,t){let{executionTarget:n}=await e.request(d.resolve,t);return n}async function M(e,t){let{sessionId:n,limit:r}=t,a=[],o=!1,s=!1,c;do{let{events:t,nextCursor:l}=await e.request(i.getEvents,{sessionId:n,options:{limit:1e4,...c&&{after:c}}});for(let i of t){if(i.type===`squash`){o=!0,a.length=0;let e=i.payload,t={messageId:`squash-${i.eventId}`,sessionId:n,turnId:null,role:`assistant`,contentText:e.summaryJson,blocks:[{type:`text`,content:e.summaryJson}],timestamp:i.timestamp};a.push(t)}else if(i.type===`message`){let t=i.payload,{message:n}=await e.request(f.get,{messageId:t.messageId});n&&a.push(n)}if(r&&a.length>=r){s=!0;break}}if(r&&a.length>=r)break;c=l??void 0}while(c);return{messages:a,hasSquashBoundary:o,sessionChain:[n],truncated:s,incomplete:!1}}const N=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 P(e,t,n){let r=e,i,a;for(let e of t){let t=N.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 F(e){return e.map(e=>({...e,blocks:e.blocks.filter(e=>e.type!==`reasoning`)}))}const ue={id:`strip-reasoning`,label:`Strip Reasoning`,description:`Remove reasoning/thinking blocks from messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:F(e)}}};function I(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 de={id:`strip-tool-outputs`,label:`Strip Tool Outputs`,description:`Remove tool output contents, keep structure`,category:`transformation`,async execute(e){return{kind:`messages`,messages:I(e)}}};async function L(e,t){let n=[],r=[],i=[],o=!1,s=!1,c=!1,l=[],u,d=t,f;for(;d;){let n=await e.request(a.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:a}=l[t],c=t===l.length-1,u=l[t+1]?.forkPointMessageId;n.push(a);let d=await M(e,{sessionId:a});if(d.hasSquashBoundary&&(o=!0,c||(r.length=0)),d.truncated&&(s=!0),c)i=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,...i],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 R(e,t.segments);let o=e.slice(0,i),s=e.slice(i,a+1),c=e.slice(a+1),l=R(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 P(n,t.appliedPipeline)).messages),n}function pe(e,t){let n=e;return t.stripReasoning&&(n=F(n)),t.stripToolOutputs&&(n=I(n)),n}function R(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=pe(s,i),r.push(...s)}return r}function z(e){return{role:e.role,blocks:e.blocks}}async function me(e,t){return{messageHistory:(await L(e,t.sessionId)).messages.map(z),isFirstTurn:!0}}async function he(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 ge(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 c=r?.providerConfigId?await s(e,r.providerConfigId):void 0,l=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},...c!==void 0&&{providerContext:c}});if(!l.success)throw Error(`Failed to change model for agent ${t.agentId}: ${l.reason??`unknown`}`);return n!==void 0&&(t.model=n),{changed:!0,swapped:l.swapped??!1}}async function _e(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 B(e,a,n);r.push(t),i.add(t.agentId)}}return{verifiedAgents:r,recoveredAgentIds:i}}async function ve(e,t,n){let r=await L(e,t.sessionId),i=n?.pipeline??[];return{messageHistory:(i.length>0?(await P(r.messages,i)).messages:r.messages).map(z),isFirstTurn:!0}}async function B(e,t,n){let r=await j(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.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId}}),t.adapterId=r,t}const ye=n.postgres,V=te({turns:r},{turns:ye});function be(e){if(e)try{let t=JSON.parse(e),n=ee.safeParse(t);return n.success?n.data:void 0}catch{return}}function H(e){return e?JSON.stringify(e):null}function xe(e){if(e)try{let t=JSON.parse(e),n=S.safeParse(t);return n.success?n.data:void 0}catch{return}}function U(e){let t=xe(e.initiator);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:be(e.usage),...t!==void 0&&{initiator:t}}}function Se(e,t){let n=[Ce(e,t),we(e,t),Te(e,t),Ee(e,t),De(e,t),Oe(e,t),ke(e,t)];return()=>n.forEach(e=>e())}function Ce(t,n){let r=ne(n),i=re(r.dialect),{turns:a}=w(n,V);return t.on(e.create,async e=>{let{sessionId:t,turnId:o,initiator:s}=e.payload,c=Date.now(),l=o??crypto.randomUUID(),u=H(s);for(let e=1;;e++)try{await r.run(ae`
2
- WITH next_num AS (
3
- SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
4
- FROM turns
5
- WHERE session_id = ${t}
6
- )
7
- INSERT INTO turns (turn_id, session_id, turn_number, started_at, status, initiator)
8
- SELECT ${l}, ${t}, n, ${c}, ${`active`}, ${u}
9
- FROM next_num
10
- `);break}catch(t){if(e>=32||!i.capabilities.maxCounterAssignmentRaces||!i.errors.isUniqueViolationError(t,`uniq_turns_session_number`))throw t}let[d]=await n.select({turnNumber:a.turnNumber}).from(a).where(D(a.turnId,l)),f={turnId:l,sessionId:t,turnNumber:d.turnNumber,startedAt:c,status:`active`,...s!==void 0&&{initiator:s}};e.setResult({turn:f})})}function we(t,n){let{turns:r}=w(n,V);return t.on(e.complete,async e=>{let{turnId:t,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?T(D(r.turnId,t),D(r.status,a)):D(r.turnId,t),u=await n.update(r).set(c).where(l).returning();if(u.length>0){e.setResult({turn:U(u[0]),transitioned:!0});return}let[d]=await n.select().from(r).where(D(r.turnId,t)).limit(1);if(!d)throw Error(`Turn not found: ${t}`);e.setResult({turn:U(d),transitioned:!1})})}function Te(t,n){let{turns:r}=w(n,V);return t.on(e.set,async e=>{let{turn:t}=e.payload,i={turnId:t.turnId,sessionId:t.sessionId,turnNumber:t.turnNumber,startedAt:t.startedAt,completedAt:t.completedAt??null,status:t.status,error:t.error??null,usage:t.usage?JSON.stringify(t.usage):null,initiator:H(t.initiator)};await n.insert(r).values(i).onConflictDoUpdate({target:r.turnId,set:i}),e.setResult({turn:t})})}function Ee(t,n){let{turns:r}=w(n,V);return t.on(e.get,async e=>{let{turnId:t}=e.payload,[i]=await n.select().from(r).where(D(r.turnId,t)).limit(1);e.setResult({turn:i?U(i):null})})}function De(t,n){let{turns:r}=w(n,V);return t.on(e.getBySession,async e=>{let{sessionId:t,limit:i,status:a}=e.payload,o=n.select().from(r).where(D(r.sessionId,t)).orderBy(E(r.turnNumber));a&&(o=n.select().from(r).where(T(D(r.sessionId,t),D(r.status,a))).orderBy(E(r.turnNumber))),i&&(o=o.limit(i));let s=await o;e.setResult({turns:s.map(U)})})}function Oe(t,n){let{turns:r}=w(n,V);return t.on(e.getActive,async e=>{let{sessionId:t}=e.payload,[i]=await n.select().from(r).where(T(D(r.sessionId,t),D(r.status,`active`))).orderBy(ie(r.turnNumber)).limit(1);e.setResult({turn:i?U(i):null})})}function ke(t,n){let{turns:r}=w(n,V);return t.on(e.listActive,async e=>{let t=await n.select().from(r).where(D(r.status,`active`)).orderBy(E(r.startedAt));e.setResult({turns:t.map(U)})})}function Ae(e){let t=new Map,n=new Map,r=new Map,i=je(t,n,r),a=[Me(e,i,r),Ne(e,t,i),Pe(e,i),Fe(e,t),Ie(e,t,n),Le(e,t,n),Re(e,t)];return()=>a.forEach(e=>e())}function je(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 Me(t,n,r){return t.on(e.create,e=>{let{sessionId:t,turnId:i,initiator:a}=e.payload,o=Date.now(),s={turnId:i??crypto.randomUUID(),sessionId:t,turnNumber:(r.get(t)??0)+1,startedAt:o,status:`active`,...a!==void 0&&{initiator:a}};n(s),e.setResult({turn:s})})}function Ne(t,n,r){return t.on(e.complete,e=>{let{turnId:t,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=n.get(t);if(!c)throw Error(`Turn not found: ${t}`);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};r(l),e.setResult({turn:l,transitioned:!0})})}function Pe(t,n){return t.on(e.set,e=>{let{turn:t}=e.payload;n(t),e.setResult({turn:t})})}function Fe(t,n){return t.on(e.get,e=>{e.setResult({turn:n.get(e.payload.turnId)??null})})}function Ie(t,n,r){return t.on(e.getBySession,e=>{let{sessionId:t,status:i,limit:a}=e.payload,o=(r.get(t)??[]).map(e=>n.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 Le(t,n,r){return t.on(e.getActive,e=>{let{sessionId:t}=e.payload,i=(r.get(t)??[]).map(e=>n.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 Re(t,n){return t.on(e.listActive,e=>{let t=[...n.values()].filter(e=>e.status===`active`).sort((e,t)=>e.startedAt-t.startedAt);e.setResult({turns:t})})}function W(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var G=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(W(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return W(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 K(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 ze(e){return e}function Be(e){return typeof e==`string`?[{type:`text`,content:e}]:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(ze)}async function Ve(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 He(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 Ue(e,t){for(let n of e.values())if(n.hasAgent(t))return n}function We(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`}}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(l.resolveName,{adapterId:t});if(n&&i!==n)throw Error(`${r}adapterName "${n}" does not match adapterId "${t}"`);return i}async function Ge(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 O){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 Ke(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 qe(e,t,n){return e.on(x.agent.attach,async r=>{let{sessionId:i,agent:a,initialMessage:o,role:s}=r.payload,l=Je(a),u=await et(e,i),d=await Xe(e,i,o,a),{adapterName:f,adapterId:p}=await Ye(e,a.kind===`adapter`&&`adapterName`in a?a.adapterName:d?.adapterName,a.kind===`adapter`&&`adapterId`in a?a.adapterId:void 0,n),{providerConfigId:m,providerContext:h}=await Ze(e,a.providerConfigId,d),{runtimeOptions:_,mergedModel:v,mergedCwd:y}=$e(l,d,h),b=tt(u,s),x=rt(p,i,o,b,_,nt(u),d?.harnessId);h!==void 0&&await c(e,h);let S=await e.request(g.startAgent,x);if(!S.success)throw Error(`[attach-handler] Failed to start agent: ${S.message}`);let ee=a.kind===`persona`?a.personaId:void 0;await at(e,S,{adapterName:f,sessionId:i,role:b,timestamp:Date.now(),personaId:ee,profileId:d?.profileId,harnessId:d?.harnessId,providerConfigId:m,compressionMode:d?.compressionMode,model:v,cwd:y});let C=o&&S.messageId?await ot(e,t,i,S.agentId,S.messageId,o):void 0;r.setResult({agentId:S.agentId,adapterSessionId:S.adapterSessionId,role:b,...C&&{messageId:C.messageId,turnId:C.turnId}})})}function Je(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.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt}}}async function Ye(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 j(e,o,r)}}async function Xe(e,t,n,r){if(r.kind===`adapter`)return null;let i=n?K(n):void 0;return e.request(_.resolve,{selection:r,context:{sessionId:t,promptText:i}})}async function Ze(e,t,n){let r=t??n?.providerConfigId;return{providerConfigId:r,providerContext:r===void 0?void 0:await s(e,r)}}function Qe(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function $e(e,t,n){let r=e.model??t?.model,i=e.cwd;return{runtimeOptions:Qe({model:r,reasoningEffort:e.reasoningEffort??t?.reasoningEffort,cwd:i,allowedTools:e.allowedTools??t?.allowedTools,disallowedTools:e.disallowedTools??t?.disallowedTools,allowedDirectories:e.allowedDirectories??t?.allowedDirectories,env:e.env,mcpSessionContext:e.mcpSessionContext,adapterConfig:e.adapterConfig,systemPrompt:e.systemPrompt??t?.systemPrompt,providerContext:n}),mergedModel:r,mergedCwd:i}}async function et(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 tt(e,t){let n=e.agents.length===0;return t??(n?`lead`:`member`)}function nt(e){if(e.isImported&&e.isOrchestrated===!1&&e.adapterSessionId)return e.adapterSessionId}function rt(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 it(e,t){!t.personaId&&!t.profileId&&!t.harnessId&&!t.providerConfigId||await e.request(A.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 at(e,t,n){try{await it(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 ot(t,n,r,i,a,o){let{turn:s}=await t.request(e.create,{sessionId:r}),c=new G({sessionId:r,agentIds:[i],turnId:s.turnId,turnNumber:s.turnNumber});return c.addMessage(a),n.set(r,c),await t.emit(x.turn.started,{sessionId:r,turnId:c.turnId,turnNumber:c.turnNumber,messageId:a,agentIds:[...c.agentIds]}),await t.emit(x.user_message.sent,{sessionId:r,turnId:c.turnId,turnNumber:c.turnNumber,messageId:a,content:o,agentIds:[...c.agentIds]}),await t.emit(x.user_message.acknowledged,{sessionId:r,turnId:c.turnId,turnNumber:c.turnNumber,messageId:a,agentId:i}),{messageId:a,turnId:c.turnId}}const st={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}}},ct={id:`llm-summarize`,label:`Summarize`,description:`LLM-generated summary of selected messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:e}}};function lt(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 ut(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(oe.resolveId,{adapterName:n.adapterName}),o=lt(t),s=n.providerConfigId?await se(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,N.register(ue),N.register(de),N.register(st),N.register(ct)),e&&!X&&(X=!0,N.register(ut(e)))}function dt(){Y=!1,X=!1}function ft(e){return Z(e),e.on(x.compress,async t=>{let{sessionId:n,pipeline:r}=t.payload,{messages:a}=await e.request(f.getBySession,{sessionId:n,limit:1e4}),o=await P(a,r,{sessionId:n});if(!o.contextJson)throw Error(`[compress-handler] Compress pipeline must produce context JSON (sessionId=${n})`);let s=a.map(e=>e.messageId),c=Math.ceil(a.reduce((e,t)=>e+JSON.stringify(t.blocks).length/4,0)),l=crypto.randomUUID();await e.request(i.append,{event:{sessionId:n,eventId:l,timestamp:Date.now(),type:`squash`,payload:{summaryJson:JSON.stringify(o.contextJson),tokensBefore:c,tokensAfter:o.tokenEstimate,compressedMessageIds:s}}}),await e.emit(x.compressed,{sessionId:n,eventId:l}),t.setResult({eventId:l,contextJson:o.contextJson,tokensBefore:c,tokensAfter:o.tokenEstimate})})}async function pt(e,t,n,r){if(!n.segments?.length)return!1;let i=[],a;do{let{messages:n,nextCursor:o}=await e.request(f.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 s=new Map;o.forEach((e,t)=>{s.set(e.messageId,t)});let c=-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=s.get(e.fromMessageId),r=s.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<=c)throw Error(`[fork-handler] Segments must not overlap and must be ordered (sourceSessionId=${t})`);if(n!==c+1)throw Error(`[fork-handler] Segments must be contiguous without gaps (sourceSessionId=${t})`);c=r}if(c!==o.length-1)throw Error(`[fork-handler] Segments must cover the entire source message range (sourceSessionId=${t})`);return!0}function mt(e){if(!e.segments?.length&&e.appliedPipeline?.length)for(let t of e.appliedPipeline){let e=N.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 ht(e){return e.on(x.fork,async t=>{let{sourceSessionId:n,fromMessageId:r,name:i,branchKind:a=`fork`,transforms:o,targetWorkingDirectory:s,existingSessionId:c}=t.payload,{session:l}=await e.request(x.get,{sessionId:n});if(!l)throw Error(`[fork-handler] Source session not found: ${n}`);if(r){let{message:t}=await e.request(f.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 pt(e,n,o,r)||mt(o));let{sessionId:u}=await e.request(x.create,{...c?{sessionId:c}:{},parentSessionId:n,forkPointMessageId:r,branchKind:a,forkTransforms:o,...i?{title:i}:{},...s?{targetWorkingDirectory:s}:{}});await e.emit(x.branch.created,{sessionId:n,childSessionId:u,parentSessionId:n,kind:a,forkPointMessageId:r,transforms:o}),await e.emit(x.forked,{parentSessionId:n,childSessionId:u,forkPoint:r}),t.setResult({sessionId:u})})}function gt(e){return e.on(x.merge,async t=>{let{parentSessionId:n,childSessionId:r,summary:a}=t.payload,o=`merge:${n}:${r}`,{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:r});if(!c)throw Error(`[merge-handler] Child session not found: ${r}`);if(c.parentSessionId!==n)throw Error(`[merge-handler] Invalid parent-child relationship: session ${r} is not a child of ${n}`+(c.parentSessionId?` (actual parent: ${c.parentSessionId})`:` (session has no parent)`));await e.emit(x.merging,{parentSessionId:n,childSessionId:r});let l=a??`Child session ${r} merged.`;if(!(await e.request(x.close,{sessionId:r})).success)throw Error(`[merge-handler] Failed to close child session: ${r}`);let u=JSON.stringify({handoff:l});await e.request(i.append,{event:{sessionId:n,eventId:o,timestamp:Date.now(),type:`branch.merged`,payload:{childSessionId:r,parentSessionId:n,resultJson:u}}}),await e.emit(x.branch.merged,{sessionId:n,childSessionId:r,parentSessionId:n,resultJson:u}),await e.emit(x.merged,{parentSessionId:n,childSessionId:r,handoff:l}),t.setResult({success:!0,handoff:l})})}async function Q(t,n,r,i,a){if(!(n.parentSessionId!==void 0&&(n.contextInheritance===`parent-history`||n.contextInheritance===void 0&&n.branchKind!==`subagent`))||i?.messageHistory)return i;let{turns:o}=await t.request(e.getBySession,{sessionId:r,limit:2});if(!(a&&o.length<=1))return i;let s=(await L(t,r)).messages.map(z);return{...i,messageHistory:s,isFirstTurn:!0,hasNewTransforms:n.forkTransforms!==void 0}}const $={enabled:!0,template:`User changed working directory from {oldCwd} to {newCwd}`};function _t(e,t,n){return e.replace(/\{oldCwd\}/g,t).replace(/\{newCwd\}/g,n)}function vt(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.enabled==`boolean`&&typeof t.template==`string`}async function yt(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 vt(t.value)?t.value:$}catch{}return $}function bt(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 xt(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 O){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 St(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 yt(e):$,x=n.map(async n=>{let c=m?.get(n.agentId),l=c&&b.enabled?_t(b.template,c.previousCwd,c.newCwd):void 0;await xt({bus:e,session:t,turn:a,message:r,messageId:i,deliveryMode:o,onTurnComplete:s,agent:n,agentContext:bt({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{M as A,he as C,me as D,_e as E,A as F,le as M,ce as N,L as O,k as P,ve as S,B as T,K as _,ft as a,Ae as b,qe as c,q as d,J as f,He as g,Ve as h,ht as i,j,N as k,Ke as l,Ue as m,Q as n,Z as o,We as p,gt as r,dt as s,St as t,Ge as u,Be as v,ge as w,Se as x,G as y};