@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.
- package/dist/.makaio-build.json +2 -2
- package/dist/{adapter-D_p5kKxi.mjs → adapter-BH1X0THX.mjs} +1 -1
- package/dist/adapters/index.d.mts +1 -1
- package/dist/bus/index.d.mts +20 -20
- package/dist/bus/index.mjs +1 -1
- package/dist/contracts/adapter/index.d.mts +1 -1
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +6 -6
- package/dist/contracts/extension/index.d.mts +2 -2
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +188 -183
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/provider/index.d.mts +1 -1
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/{definition-CPc6oKaF.d.mts → definition-CZcVOhXZ.d.mts} +1 -1
- package/dist/handlers-Cpy9Q8ho.mjs +41 -0
- package/dist/{index-C24PcW2r.d.mts → index-B1PgTu7q.d.mts} +8 -8
- package/dist/{index-CEdOq5Om.d.mts → index-BDnI2oqX.d.mts} +1 -1
- package/dist/{index-QvciMc7_.d.mts → index-BF84QInS.d.mts} +875 -361
- package/dist/{index-DfNIhEm_.d.mts → index-BVMF3kRv.d.mts} +16 -16
- package/dist/{index-CszoKxxO.d.mts → index-Cj3XCjXZ.d.mts} +342 -342
- package/dist/{index-BLqtL-_a.d.mts → index-DHVoVh-j.d.mts} +7 -7
- package/dist/{index-WKF5BHsw.d.mts → index-DUI1W-zN.d.mts} +8 -8
- package/dist/{index-B99Prx5a.d.mts → index-DUsm-DeE.d.mts} +100 -100
- package/dist/{index-B92SK0rO.d.mts → index-DigeEyrf.d.mts} +19 -16
- package/dist/{index-GuspCNLR.d.mts → index-DyqZej9j.d.mts} +8 -8
- package/dist/{index-DBgv39-Q.d.mts → index-HiAth5G0.d.mts} +52 -52
- package/dist/{index-NyKdb8kT.d.mts → index-LrZlZUvQ.d.mts} +16 -16
- package/dist/{index-BM_y78ZA2.d.mts → index-cN4DkU5Y2.d.mts} +9 -9
- package/dist/{index-C0TEY7RE.d.mts → index-oUqyVvsD.d.mts} +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/index.d.mts +2 -2
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/{namespace-DbvQ4HYc.d.mts → namespace-BXuuv8L9.d.mts} +152 -152
- package/dist/{namespace-CN2TfSCY.d.mts → namespace-Ba1gUpUu.d.mts} +4 -4
- package/dist/{namespace-D_ZXa76m.d.mts → namespace-CWgNi8Gv.d.mts} +26 -26
- package/dist/{namespace-BAJTZXWc.d.mts → namespace-DM3TSh_y.d.mts} +38 -38
- package/dist/{namespace-C_kaVySz.d.mts → namespace-Q-z7Lr2f.d.mts} +8 -8
- package/dist/{package-Bn665ylV.mjs → package-DMoFY63f.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/primitive-runtime-DWbV7f_r.mjs +1 -0
- package/dist/{schema-msWs4YhT.d.mts → schema-BKdn_bdY.d.mts} +2 -2
- package/dist/{schemas-DMl7IKG-.d.mts → schemas-BbFAwUpf.d.mts} +5 -5
- package/dist/{schemas-xoTn8JZb.d.mts → schemas-CyEdMtnQ.d.mts} +152 -152
- package/dist/schemas-CzvG8xq7.mjs +1 -0
- package/dist/{schemas-DRZJK6hW2.d.mts → schemas-DvjQHkmw2.d.mts} +6 -6
- package/dist/{schemas-CN9hprME.d.mts → schemas-IDGAJ_zv.d.mts} +6 -6
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +3 -3
- package/dist/services/filesystem/namespace.d.mts +12 -12
- package/dist/services/filesystem/schemas.d.mts +6 -6
- package/dist/services/harness/index.d.mts +3 -3
- package/dist/services/index.d.mts +117 -117
- package/dist/services/index.mjs +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +4 -4
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/testing/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +6 -6
- package/dist/services/subagent-template/index.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +2 -2
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/session-ZAJrcudH.mjs +39 -0
- package/dist/{session-bKk-XeaY.mjs → session-owtKCoUX.mjs} +1 -1
- package/dist/{tool-approval-service-C2xXBtdJ.mjs → tool-approval-service-B_28RhuK.mjs} +1 -1
- package/dist/{tools-DEUzCPBB.mjs → tools-BpzJterj.mjs} +1 -1
- package/dist/{types-4LKM7ZfA.d.mts → types-Bo2-N1YR.d.mts} +887 -357
- package/dist/workflow-engine/index.d.mts +34 -34
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/package.json +1 -1
- package/dist/handlers-CTrL8wmC.mjs +0 -41
- package/dist/primitive-runtime-C2yw4-F8.mjs +0 -1
- package/dist/schemas-CiMm2zrE.mjs +0 -1
- 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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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-
|
|
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-
|
|
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-
|
|
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,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};
|