@makaio/framework 1.0.0-dev-1781443723575 → 1.0.0-dev-1781454904823
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/adapters/index.d.mts +1 -1
- package/dist/bus/index.mjs +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +3 -3
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +386 -52
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/shared/index.d.mts +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/{definition-CPc6oKaF.d.mts → definition-DSq5ErZD.d.mts} +1 -1
- package/dist/{index-BZuF4I8O.d.mts → index-B3mq3Qjf.d.mts} +1 -1
- package/dist/{index-DWBpxSGQ.d.mts → index-BKbzDEv4.d.mts} +95 -95
- package/dist/{index-Doy13wLW.d.mts → index-BQ8H7cvY.d.mts} +15 -15
- package/dist/{index-iRe4CsR5.d.mts → index-BVMF3kRv.d.mts} +4 -4
- package/dist/{index-CQuLV3jj.d.mts → index-BVf5D_xQ.d.mts} +8 -8
- package/dist/{index-N7JtH6hX.d.mts → index-BkKWL_tI.d.mts} +3 -3
- package/dist/{index-DsAfeVbS.d.mts → index-CK_hi7fg.d.mts} +12 -12
- package/dist/{index-bLWdMu_T.d.mts → index-CgJf67BC.d.mts} +20 -20
- package/dist/{index-CtVy1e5h.d.mts → index-Cs009Dqh.d.mts} +15 -15
- package/dist/{index-gYlNeEGH.d.mts → index-Cs1JVq0D.d.mts} +16 -16
- package/dist/{index-D7oEYudM.d.mts → index-D8nNK-pF.d.mts} +1 -1
- package/dist/{index-DWRwbJjQ.d.mts → index-DLPjliGd.d.mts} +1 -1
- package/dist/{index-C2tDMYm0.d.mts → index-DN0GXDlw.d.mts} +5 -5
- package/dist/{index-BM_y78ZA2.d.mts → index-iXawmtSH2.d.mts} +6 -6
- 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-CK50FeCH.d.mts → namespace-CN2TfSCY.d.mts} +2 -2
- package/dist/{namespace-thr1fR3_.d.mts → namespace-CWgNi8Gv.d.mts} +6 -6
- package/dist/{namespace-D63jVkzY.d.mts → namespace-DphMg7CF.d.mts} +5 -5
- package/dist/{namespace-vfKj-JHx.d.mts → namespace-Dy0pcIqF.d.mts} +9 -9
- package/dist/{namespace-DWT6hqxX.d.mts → namespace-Dyj2m6DT.d.mts} +36 -36
- package/dist/package-CBjoefAW.mjs +1 -0
- package/dist/{package-BEbo1-6S.d.mts → package-fwIv7zzj.d.mts} +1 -1
- package/dist/package.json +1 -1
- package/dist/primitive-runtime-BHSEOIH6.mjs +1 -0
- package/dist/{schema-CXgFk-dK.d.mts → schema-D2B2V6r6.d.mts} +2 -2
- package/dist/{schemas-DMl7IKG-.d.mts → schemas-ByBtBmoL.d.mts} +3 -3
- package/dist/{schemas-YFBpHbzr.d.mts → schemas-CN9hprME.d.mts} +3 -3
- package/dist/{schemas-BS8xAZ2y2.d.mts → schemas-D0gBYOoc2.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/context-rules/index.d.mts +11 -11
- package/dist/services/filesystem/namespace.d.mts +12 -12
- package/dist/services/filesystem/schemas.d.mts +6 -6
- package/dist/services/index.d.mts +32 -32
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/namespace.d.mts +2 -2
- package/dist/services/log-import/schemas.d.mts +1 -1
- package/dist/services/session/index.d.mts +5 -5
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/session-events/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/settings/namespace.d.mts +9 -9
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
- package/dist/services/subagent-template/index.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +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-lineage-CJgqfkMj.d.mts → session-lineage-DFkJgYt5.d.mts} +1 -1
- package/dist/{types-bPzpZb7_.d.mts → types-BB8iIAjZ.d.mts} +1 -1
- package/dist/{types-8q9G9p34.d.mts → types-Co-MJvHY.d.mts} +40 -40
- package/dist/workflow-engine/index.d.mts +124 -20
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +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/package-Dvk8-Gfd.mjs +0 -1
- package/dist/primitive-runtime-UEzX4Ayu.mjs +0 -1
|
@@ -201,7 +201,7 @@ declare const SessionStorageNamespace$1: {
|
|
|
201
201
|
tableName: "sessions";
|
|
202
202
|
dataType: "string";
|
|
203
203
|
columnType: "SQLiteText";
|
|
204
|
-
data: "
|
|
204
|
+
data: "fork" | "branch" | "subagent" | "compress" | "rewrite" | "coordinator" | "aside";
|
|
205
205
|
driverParam: string;
|
|
206
206
|
notNull: false;
|
|
207
207
|
hasDefault: false;
|
|
@@ -903,7 +903,7 @@ declare const SessionStorageNamespace$1: {
|
|
|
903
903
|
tableName: "agents";
|
|
904
904
|
dataType: "string";
|
|
905
905
|
columnType: "SQLiteText";
|
|
906
|
-
data: "
|
|
906
|
+
data: "idle" | "active" | "dead" | "disposed";
|
|
907
907
|
driverParam: string;
|
|
908
908
|
notNull: true;
|
|
909
909
|
hasDefault: false;
|
|
@@ -992,8 +992,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
992
992
|
member: "member";
|
|
993
993
|
}>;
|
|
994
994
|
status: _$zod.ZodEnum<{
|
|
995
|
-
active: "active";
|
|
996
995
|
idle: "idle";
|
|
996
|
+
active: "active";
|
|
997
997
|
dead: "dead";
|
|
998
998
|
disposed: "disposed";
|
|
999
999
|
}>;
|
|
@@ -1015,8 +1015,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1015
1015
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1016
1016
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1017
1017
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1018
|
-
branch: "branch";
|
|
1019
1018
|
fork: "fork";
|
|
1019
|
+
branch: "branch";
|
|
1020
1020
|
subagent: "subagent";
|
|
1021
1021
|
compress: "compress";
|
|
1022
1022
|
rewrite: "rewrite";
|
|
@@ -1111,8 +1111,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1111
1111
|
member: "member";
|
|
1112
1112
|
}>;
|
|
1113
1113
|
status: _$zod.ZodEnum<{
|
|
1114
|
-
active: "active";
|
|
1115
1114
|
idle: "idle";
|
|
1115
|
+
active: "active";
|
|
1116
1116
|
dead: "dead";
|
|
1117
1117
|
disposed: "disposed";
|
|
1118
1118
|
}>;
|
|
@@ -1134,8 +1134,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1134
1134
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1135
1135
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1136
1136
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1137
|
-
branch: "branch";
|
|
1138
1137
|
fork: "fork";
|
|
1138
|
+
branch: "branch";
|
|
1139
1139
|
subagent: "subagent";
|
|
1140
1140
|
compress: "compress";
|
|
1141
1141
|
rewrite: "rewrite";
|
|
@@ -1255,8 +1255,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1255
1255
|
member: "member";
|
|
1256
1256
|
}>;
|
|
1257
1257
|
status: _$zod.ZodEnum<{
|
|
1258
|
-
active: "active";
|
|
1259
1258
|
idle: "idle";
|
|
1259
|
+
active: "active";
|
|
1260
1260
|
dead: "dead";
|
|
1261
1261
|
disposed: "disposed";
|
|
1262
1262
|
}>;
|
|
@@ -1278,8 +1278,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1278
1278
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1279
1279
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1280
1280
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1281
|
-
branch: "branch";
|
|
1282
1281
|
fork: "fork";
|
|
1282
|
+
branch: "branch";
|
|
1283
1283
|
subagent: "subagent";
|
|
1284
1284
|
compress: "compress";
|
|
1285
1285
|
rewrite: "rewrite";
|
|
@@ -1358,8 +1358,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1358
1358
|
title: _$zod.ZodNullable<_$zod.ZodString>;
|
|
1359
1359
|
forkPointMessageId: _$zod.ZodNullable<_$zod.ZodString>;
|
|
1360
1360
|
branchKind: _$zod.ZodNullable<_$zod.ZodEnum<{
|
|
1361
|
-
branch: "branch";
|
|
1362
1361
|
fork: "fork";
|
|
1362
|
+
branch: "branch";
|
|
1363
1363
|
subagent: "subagent";
|
|
1364
1364
|
compress: "compress";
|
|
1365
1365
|
rewrite: "rewrite";
|
|
@@ -1414,8 +1414,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1414
1414
|
member: "member";
|
|
1415
1415
|
}>;
|
|
1416
1416
|
status: _$zod.ZodEnum<{
|
|
1417
|
-
active: "active";
|
|
1418
1417
|
idle: "idle";
|
|
1418
|
+
active: "active";
|
|
1419
1419
|
dead: "dead";
|
|
1420
1420
|
disposed: "disposed";
|
|
1421
1421
|
}>;
|
|
@@ -1437,8 +1437,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1437
1437
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1438
1438
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1439
1439
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1440
|
-
branch: "branch";
|
|
1441
1440
|
fork: "fork";
|
|
1441
|
+
branch: "branch";
|
|
1442
1442
|
subagent: "subagent";
|
|
1443
1443
|
compress: "compress";
|
|
1444
1444
|
rewrite: "rewrite";
|
|
@@ -1524,8 +1524,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1524
1524
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1525
1525
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1526
1526
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1527
|
-
branch: "branch";
|
|
1528
1527
|
fork: "fork";
|
|
1528
|
+
branch: "branch";
|
|
1529
1529
|
subagent: "subagent";
|
|
1530
1530
|
compress: "compress";
|
|
1531
1531
|
rewrite: "rewrite";
|
|
@@ -1594,8 +1594,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1594
1594
|
member: "member";
|
|
1595
1595
|
}>;
|
|
1596
1596
|
status: _$zod.ZodEnum<{
|
|
1597
|
-
active: "active";
|
|
1598
1597
|
idle: "idle";
|
|
1598
|
+
active: "active";
|
|
1599
1599
|
dead: "dead";
|
|
1600
1600
|
disposed: "disposed";
|
|
1601
1601
|
}>;
|
|
@@ -1617,8 +1617,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1617
1617
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1618
1618
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1619
1619
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1620
|
-
branch: "branch";
|
|
1621
1620
|
fork: "fork";
|
|
1621
|
+
branch: "branch";
|
|
1622
1622
|
subagent: "subagent";
|
|
1623
1623
|
compress: "compress";
|
|
1624
1624
|
rewrite: "rewrite";
|
|
@@ -1780,8 +1780,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1780
1780
|
member: "member";
|
|
1781
1781
|
}>;
|
|
1782
1782
|
status: _$zod.ZodEnum<{
|
|
1783
|
-
active: "active";
|
|
1784
1783
|
idle: "idle";
|
|
1784
|
+
active: "active";
|
|
1785
1785
|
dead: "dead";
|
|
1786
1786
|
disposed: "disposed";
|
|
1787
1787
|
}>;
|
|
@@ -1803,8 +1803,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1803
1803
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1804
1804
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1805
1805
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1806
|
-
branch: "branch";
|
|
1807
1806
|
fork: "fork";
|
|
1807
|
+
branch: "branch";
|
|
1808
1808
|
subagent: "subagent";
|
|
1809
1809
|
compress: "compress";
|
|
1810
1810
|
rewrite: "rewrite";
|
|
@@ -1906,8 +1906,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1906
1906
|
member: "member";
|
|
1907
1907
|
}>;
|
|
1908
1908
|
status: _$zod.ZodEnum<{
|
|
1909
|
-
active: "active";
|
|
1910
1909
|
idle: "idle";
|
|
1910
|
+
active: "active";
|
|
1911
1911
|
dead: "dead";
|
|
1912
1912
|
disposed: "disposed";
|
|
1913
1913
|
}>;
|
|
@@ -1929,8 +1929,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
1929
1929
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1930
1930
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
1931
1931
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
1932
|
-
branch: "branch";
|
|
1933
1932
|
fork: "fork";
|
|
1933
|
+
branch: "branch";
|
|
1934
1934
|
subagent: "subagent";
|
|
1935
1935
|
compress: "compress";
|
|
1936
1936
|
rewrite: "rewrite";
|
|
@@ -2053,8 +2053,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2053
2053
|
member: "member";
|
|
2054
2054
|
}>;
|
|
2055
2055
|
status: _$zod.ZodEnum<{
|
|
2056
|
-
active: "active";
|
|
2057
2056
|
idle: "idle";
|
|
2057
|
+
active: "active";
|
|
2058
2058
|
dead: "dead";
|
|
2059
2059
|
disposed: "disposed";
|
|
2060
2060
|
}>;
|
|
@@ -2076,8 +2076,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2076
2076
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2077
2077
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2078
2078
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2079
|
-
branch: "branch";
|
|
2080
2079
|
fork: "fork";
|
|
2080
|
+
branch: "branch";
|
|
2081
2081
|
subagent: "subagent";
|
|
2082
2082
|
compress: "compress";
|
|
2083
2083
|
rewrite: "rewrite";
|
|
@@ -2172,8 +2172,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2172
2172
|
member: "member";
|
|
2173
2173
|
}>;
|
|
2174
2174
|
status: _$zod.ZodEnum<{
|
|
2175
|
-
active: "active";
|
|
2176
2175
|
idle: "idle";
|
|
2176
|
+
active: "active";
|
|
2177
2177
|
dead: "dead";
|
|
2178
2178
|
disposed: "disposed";
|
|
2179
2179
|
}>;
|
|
@@ -2195,8 +2195,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2195
2195
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2196
2196
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2197
2197
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2198
|
-
branch: "branch";
|
|
2199
2198
|
fork: "fork";
|
|
2199
|
+
branch: "branch";
|
|
2200
2200
|
subagent: "subagent";
|
|
2201
2201
|
compress: "compress";
|
|
2202
2202
|
rewrite: "rewrite";
|
|
@@ -2316,8 +2316,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2316
2316
|
member: "member";
|
|
2317
2317
|
}>;
|
|
2318
2318
|
status: _$zod.ZodEnum<{
|
|
2319
|
-
active: "active";
|
|
2320
2319
|
idle: "idle";
|
|
2320
|
+
active: "active";
|
|
2321
2321
|
dead: "dead";
|
|
2322
2322
|
disposed: "disposed";
|
|
2323
2323
|
}>;
|
|
@@ -2339,8 +2339,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2339
2339
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2340
2340
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2341
2341
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2342
|
-
branch: "branch";
|
|
2343
2342
|
fork: "fork";
|
|
2343
|
+
branch: "branch";
|
|
2344
2344
|
subagent: "subagent";
|
|
2345
2345
|
compress: "compress";
|
|
2346
2346
|
rewrite: "rewrite";
|
|
@@ -2419,8 +2419,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2419
2419
|
title: _$zod.ZodNullable<_$zod.ZodString>;
|
|
2420
2420
|
forkPointMessageId: _$zod.ZodNullable<_$zod.ZodString>;
|
|
2421
2421
|
branchKind: _$zod.ZodNullable<_$zod.ZodEnum<{
|
|
2422
|
-
branch: "branch";
|
|
2423
2422
|
fork: "fork";
|
|
2423
|
+
branch: "branch";
|
|
2424
2424
|
subagent: "subagent";
|
|
2425
2425
|
compress: "compress";
|
|
2426
2426
|
rewrite: "rewrite";
|
|
@@ -2475,8 +2475,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2475
2475
|
member: "member";
|
|
2476
2476
|
}>;
|
|
2477
2477
|
status: _$zod.ZodEnum<{
|
|
2478
|
-
active: "active";
|
|
2479
2478
|
idle: "idle";
|
|
2479
|
+
active: "active";
|
|
2480
2480
|
dead: "dead";
|
|
2481
2481
|
disposed: "disposed";
|
|
2482
2482
|
}>;
|
|
@@ -2498,8 +2498,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2498
2498
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2499
2499
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2500
2500
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2501
|
-
branch: "branch";
|
|
2502
2501
|
fork: "fork";
|
|
2502
|
+
branch: "branch";
|
|
2503
2503
|
subagent: "subagent";
|
|
2504
2504
|
compress: "compress";
|
|
2505
2505
|
rewrite: "rewrite";
|
|
@@ -2585,8 +2585,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2585
2585
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2586
2586
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2587
2587
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2588
|
-
branch: "branch";
|
|
2589
2588
|
fork: "fork";
|
|
2589
|
+
branch: "branch";
|
|
2590
2590
|
subagent: "subagent";
|
|
2591
2591
|
compress: "compress";
|
|
2592
2592
|
rewrite: "rewrite";
|
|
@@ -2655,8 +2655,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2655
2655
|
member: "member";
|
|
2656
2656
|
}>;
|
|
2657
2657
|
status: _$zod.ZodEnum<{
|
|
2658
|
-
active: "active";
|
|
2659
2658
|
idle: "idle";
|
|
2659
|
+
active: "active";
|
|
2660
2660
|
dead: "dead";
|
|
2661
2661
|
disposed: "disposed";
|
|
2662
2662
|
}>;
|
|
@@ -2678,8 +2678,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2678
2678
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2679
2679
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2680
2680
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2681
|
-
branch: "branch";
|
|
2682
2681
|
fork: "fork";
|
|
2682
|
+
branch: "branch";
|
|
2683
2683
|
subagent: "subagent";
|
|
2684
2684
|
compress: "compress";
|
|
2685
2685
|
rewrite: "rewrite";
|
|
@@ -2841,8 +2841,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2841
2841
|
member: "member";
|
|
2842
2842
|
}>;
|
|
2843
2843
|
status: _$zod.ZodEnum<{
|
|
2844
|
-
active: "active";
|
|
2845
2844
|
idle: "idle";
|
|
2845
|
+
active: "active";
|
|
2846
2846
|
dead: "dead";
|
|
2847
2847
|
disposed: "disposed";
|
|
2848
2848
|
}>;
|
|
@@ -2864,8 +2864,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2864
2864
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2865
2865
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2866
2866
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2867
|
-
branch: "branch";
|
|
2868
2867
|
fork: "fork";
|
|
2868
|
+
branch: "branch";
|
|
2869
2869
|
subagent: "subagent";
|
|
2870
2870
|
compress: "compress";
|
|
2871
2871
|
rewrite: "rewrite";
|
|
@@ -2967,8 +2967,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2967
2967
|
member: "member";
|
|
2968
2968
|
}>;
|
|
2969
2969
|
status: _$zod.ZodEnum<{
|
|
2970
|
-
active: "active";
|
|
2971
2970
|
idle: "idle";
|
|
2971
|
+
active: "active";
|
|
2972
2972
|
dead: "dead";
|
|
2973
2973
|
disposed: "disposed";
|
|
2974
2974
|
}>;
|
|
@@ -2990,8 +2990,8 @@ declare const SessionStorageNamespace$1: {
|
|
|
2990
2990
|
rootSessionId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2991
2991
|
forkPointMessageId: _$zod.ZodOptional<_$zod.ZodString>;
|
|
2992
2992
|
branchKind: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
2993
|
-
branch: "branch";
|
|
2994
2993
|
fork: "fork";
|
|
2994
|
+
branch: "branch";
|
|
2995
2995
|
subagent: "subagent";
|
|
2996
2996
|
compress: "compress";
|
|
2997
2997
|
rewrite: "rewrite";
|
|
@@ -3099,7 +3099,7 @@ declare const SessionStorageNamespace$1: {
|
|
|
3099
3099
|
adapterName: string;
|
|
3100
3100
|
sessionId: string;
|
|
3101
3101
|
role: "lead" | "member";
|
|
3102
|
-
status: "
|
|
3102
|
+
status: "idle" | "active" | "dead" | "disposed";
|
|
3103
3103
|
createdAt: number;
|
|
3104
3104
|
lastActivityAt: number;
|
|
3105
3105
|
adapterSessionId?: string | undefined;
|
|
@@ -3119,7 +3119,7 @@ declare const SessionStorageNamespace$1: {
|
|
|
3119
3119
|
contextInheritance?: "none" | "parent-history" | undefined;
|
|
3120
3120
|
rootSessionId?: string | undefined;
|
|
3121
3121
|
forkPointMessageId?: string | undefined;
|
|
3122
|
-
branchKind?: "
|
|
3122
|
+
branchKind?: "fork" | "branch" | "subagent" | "compress" | "rewrite" | "coordinator" | "aside" | undefined;
|
|
3123
3123
|
adapterName?: string | undefined;
|
|
3124
3124
|
adapterSessionId?: string | undefined;
|
|
3125
3125
|
adapterId?: string | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,C as n,D as r,E as i,F as a,G as o,H as s,I as c,K as l,L as u,M as d,N as f,O as ee,P as te,R as ne,S as re,T as ie,U as ae,V as oe,W as se,_ as ce,a as le,b as p,c as ue,d as de,f as fe,g as pe,h as me,i as he,j as ge,k as _e,l as ve,m as ye,n as be,p as m,q as h,s as xe,t as Se,v as Ce,w as we,x as Te,y as Ee,z as De}from"./primitive-runtime-BHSEOIH6.mjs";import{matchesFilter as Oe,matchesSubscription as ke}from"@makaio/framework/bus";import{ArtifactSubjects as Ae,EXECUTION_LIST_DEFAULT_LIMIT as je,EXECUTION_LIST_MAX_LIMIT as g,EXECUTION_LIST_MIN_LIMIT as _,ExecutionHintsSchema as Me,ExecutionsByArtifactRefsQuerySchema as Ne,JsonPatchOperationSchema as Pe,JsonValueSchema as Fe,SessionSubjects as Ie,WORKFLOW_CANCELLED_REASON as v,WorkflowNamespace as Le,WorkflowSubjects as y,createWorkflowCancelSubject as Re,dep as ze,extensionToken as Be,serializeArtifactRef as Ve}from"@makaio/framework/contracts";import{BaseService as He}from"@makaio/framework/service-base";import{defineDialectSchema as Ue,executeTransaction as b,getDatabaseDialect as We,registerDrizzleHandlers as Ge,resolveSchema as x}from"@makaio/framework/storage/drizzle";import{and as S,asc as C,count as Ke,desc as w,eq as T,getTableColumns as qe,gte as Je,isNotNull as Ye,lt as Xe,lte as Ze,or as Qe,sql as E,sum as D}from"drizzle-orm";import{compile as $e}from"@makaio/framework/expression";import*as et from"node:os";import{SessionToken as tt}from"@makaio/framework/services";const nt=re.postgres,rt=d.postgres,it=we.postgres,at=te.postgres,ot=ne.postgres,st=i.postgres,ct=c.postgres,lt=l.postgres,ut=s.postgres,dt=t.postgres,ft=se.postgres,pt=ee.postgres,mt=e.postgres,O=Ue({workflowDefinitions:Te,workflowExecutions:ge,workflowExecutionFrames:n,workflowGateInstances:f,workflowStepSpans:u,workflowExecutionLinks:ie,workflowRunContexts:a,worklogSummaries:o,worklogFrameEntries:oe,worklogArtifactWrites:De,worklogGateEvents:ae,workflowExecutionState:r,workflowExecutionStateEvents:_e},{workflowDefinitions:nt,workflowExecutions:rt,workflowExecutionFrames:it,workflowGateInstances:at,workflowStepSpans:ot,workflowExecutionLinks:st,workflowRunContexts:ct,worklogSummaries:lt,worklogFrameEntries:ut,worklogArtifactWrites:dt,worklogGateEvents:ft,workflowExecutionState:pt,workflowExecutionStateEvents:mt});function k(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function A(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function ht(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=k(t);return[T(e.scopeType,n),T(e.scopeKind,r),T(e.scopeId,i)]}function j(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:A(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executionHints:e.executionHints??void 0}}function gt(e,t){let n=k(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executionHints:e.executionHints??null,createdAt:t,updatedAt:t,...n}}function _t(e,t){let{workflowDefinitions:n}=x(t,O),r=qe(n),i=e.on(p.get,async e=>{let r=await t.select().from(n).where(T(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?j(r[0]):null})}),a=e.on(p.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=gt(a,o),c=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(c.length>0){await e.emit(h.definition.created,j(c[0])),i.setResult({id:a.id});return}let[l]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:E`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?E`${r.description}`:s.description,inputSchema:s.inputSchema===null?E`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?E`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?E`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?E`${r.artifact}`:s.artifact,triggers:s.triggers===null?E`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?E`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?E`${r.source}`:s.source,executionHints:s.executionHints===null?E`${r.executionHints}`:s.executionHints,...k(a.scope)}).where(T(n.id,a.id)).returning();l&&await e.emit(h.definition.updated,j(l)),i.setResult({id:a.id})}),o=e.on(p.delete,async r=>{let i=(await t.delete(n).where(T(n.id,r.payload.id)).returning()).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(p.list,async e=>{let r=e.payload,i=r.scope?ht(n,r.scope):[],a=i.length>0?await t.select().from(n).where(S(...i)):await t.select().from(n);e.setResult({workflows:a.map(j)})});return()=>{i(),a(),o(),s()}}function vt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function yt(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function bt(e,t){let{workflowExecutionFrames:n}=x(t,O),r=e.on(p.setFrame,async e=>{let{executionId:r,frame:i}=e.payload,a=yt(r,i);await t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a}),e.setResult({frameId:i.frameId})}),i=e.on(p.getFrame,async e=>{let r=await t.select().from(n).where(T(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?vt(r[0]):null})}),a=e.on(p.listFrames,async e=>{let r=await t.select().from(n).where(T(n.executionId,e.payload.executionId)).orderBy(C(n.startedAt),C(n.frameId));e.setResult({frames:r.map(vt)})});return()=>{r(),i(),a()}}function xt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function M(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function N(e){return{id:xt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function St(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??je;if(!Number.isInteger(i)||i<_||i>g)throw Error(`Gate instance list limit must be an integer between ${_} and ${g}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[T(r.executionId,e)],...t===void 0?[]:[T(r.status,t)]]}}function Ct(e,t){let{workflowExecutions:n,workflowGateInstances:r}=x(t,O),i=e.on(p.setGateInstance,async e=>{let n=e.payload.gate,i=N(n);await t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i}),e.setResult({id:i.id})}),a=e.on(p.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=N(n),a=await t.update(r).set(i).where(S(T(r.id,i.id),T(r.status,`waiting`))).returning({id:r.id});e.setResult({accepted:a.length===1})}),o=e.on(p.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload,o=[T(r.executionId,n),T(r.nodeId,i)];a!==void 0&&o.push(T(r.frameId,a));let s=await t.select().from(r).where(S(...o)).limit(1);e.setResult({gate:s[0]?M(s[0]):null})}),s=e.on(p.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=St(n,i,a,r),c=await t.select().from(r).where(S(...s)).orderBy(w(r.createdAt),w(r.id)).limit(o);e.setResult({gates:c.map(M)})}),c=e.on(p.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,T(r.executionId,n.id)).where(S(T(r.status,`waiting`),T(n.status,`paused`),Ye(r.timeoutMs)));e.setResult({gates:i.map(e=>M(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function wt(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Tt(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Et(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=x(t,O),i=e.on(p.setSpan,async e=>{let{span:r}=e.payload;await t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r}),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(p.listSpans,async e=>{let r=await t.select().from(n).where(T(n.executionId,e.payload.executionId)).orderBy(C(n.startedAt),C(n.stepId),C(n.frameId));e.setResult({spans:r.map(wt)})}),o=e.on(p.setExecutionLink,async e=>{let{link:n}=e.payload;await t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n}),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(p.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[T(r.sourceExecutionId,n)],...i===void 0?[]:[T(r.targetExecutionId,i)]],o=t.select().from(r).where(S(...a));e.setResult({links:(await o).map(Tt)})});return()=>{i(),a(),o(),s()}}function Dt(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function Ot(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function kt(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Ot(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:A(e),...e.executionHints===null?{}:{executionHints:e.executionHints},...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`}}function At(e){let t=Dt(e.source),n=k(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,artifactRef:e.artifactRef??null,executionHints:e.executionHints??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy}}async function jt(e,t,n){let r=At(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Mt(e,t){let{workflowRunContexts:n}=x(t,O),r=e.on(p.setRunContext,async e=>{let r=e.payload.runContext;await jt(t,r,n),e.setResult({executionId:r.executionId})}),i=e.on(p.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(T(n.executionId,r)),a=i[0]?kt(i[0]):null;e.setResult({runContext:a})});return()=>{r(),i()}}function P(e,t){return t===null?We(e)===`postgres`?E`'null'::jsonb`:E`'null'`:t}async function Nt(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=x(e,O),a=Date.now(),o=P(e,n);await b(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function Pt(e,t){let{workflowExecutionState:n}=x(e,O),r=(await e.select().from(n).where(T(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Ft(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=x(e,O),i=Date.now(),a=P(e,t.nextValue);return b(e,async e=>{let o=(await e.select().from(n).where(T(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=Ce(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(S(T(n.executionId,t.executionId),T(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function It(e,t){let n=e.on(p.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Nt(t,n,r),e.setResult({})}),r=e.on(p.getState,async e=>{let{executionId:n}=e.payload,r=await Pt(t,n);e.setResult({state:r})}),i=e.on(p.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Ft(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function Lt(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function F(e,t){let{worklogSummaries:n}=x(e,O);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:t})}async function I(e,t){let{worklogSummaries:n}=x(e,O),r=await e.select().from(n).where(T(n.executionId,t)).limit(1);return r[0]?Lt(r[0]):null}async function Rt(e,t={}){let{worklogSummaries:n}=x(e,O),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[T(n.workflowId,r)],...i===void 0?[]:[T(n.status,i)]],c=s.length>0?S(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(w(n.startedAt)).limit(a).offset(o),e.select({count:Ke()}).from(n).where(c)]);return{items:l.map(Lt),total:u[0]?.count??0}}async function L(e,t){let{worklogFrameEntries:n}=x(e,O);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t})}async function R(e,t){let{worklogFrameEntries:n}=x(e,O);return(await e.select().from(n).where(T(n.frameId,t)).limit(1))[0]??null}async function zt(e,t){let{worklogArtifactWrites:n}=x(e,O);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Bt(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function z(e,t){let{worklogGateEvents:n}=x(e,O);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Vt(e,t){let{worklogGateEvents:n}=x(e,O);return(await e.select().from(n).where(T(n.id,t)).limit(1))[0]??null}function B(e,t,n){return`${e}:${t}:${n}`}async function Ht(e,t){let{worklogFrameEntries:n}=x(e,O),[r]=await e.select({totalInputTokens:D(n.inputTokens),totalOutputTokens:D(n.outputTokens),totalEstimatedCost:D(n.estimatedCost)}).from(n).where(T(n.executionId,t));return{totalInputTokens:r?.totalInputTokens===null?0:Number(r?.totalInputTokens),totalOutputTokens:r?.totalOutputTokens===null?0:Number(r?.totalOutputTokens),totalEstimatedCost:r?.totalEstimatedCost===null?0:Number(r?.totalEstimatedCost)}}async function Ut(e,t={}){let{worklogSummaries:n}=x(e,O),{workflowId:r,since:i,until:a}=t,o=[...r===void 0?[]:[T(n.workflowId,r)],...i===void 0?[]:[Je(n.startedAt,i)],...a===void 0?[]:[Ze(n.startedAt,a)]],s=o.length>0?S(...o):void 0,[c,l]=await Promise.all([e.select({status:n.status,count:Ke()}).from(n).where(s).groupBy(n.status),e.select({totalDurationMs:D(n.durationMs),totalInputTokens:D(n.totalInputTokens),totalOutputTokens:D(n.totalOutputTokens),totalEstimatedCost:D(n.totalEstimatedCost)}).from(n).where(s)]),u={pending:0,running:0,paused:0,completed:0,failed:0,cancelled:0},d=0;for(let e of c)u[e.status]=e.count,d+=e.count;let f=l[0];return{total:d,byStatus:u,totalDurationMs:Number(f?.totalDurationMs??0),totalInputTokens:Number(f?.totalInputTokens??0),totalOutputTokens:Number(f?.totalOutputTokens??0),totalEstimatedCost:Number(f?.totalEstimatedCost??0)}}async function Wt(e,t,n,r,i){let a=await R(t,n);if(a===null||i===void 0)return null;let o=await e.requestOptional(Ae.resolve,{ref:{refClass:`artifact`,kind:r.kind,id:r.id,revision:i}}).catch(()=>void 0);if(o===void 0||!o.handled||o.data.artifact===null)return null;let{kind:s,schemaVersion:c,scope:l}=o.data.artifact;return{nodeId:a.nodeId,artifact:{kind:s,schemaVersion:c,scope:l}}}async function V(e,t){try{await t()}catch(t){console.error(`[WorklogProjection] Write failed (${e}):`,t)}}async function H(e,t){try{await e.emit(h.worklog.changed,{executionId:t})}catch(e){console.error(`[WorklogProjection] worklog.changed emit failed for ${t}:`,e)}}async function Gt(e,t,n){await F(t,{executionId:n.executionId,workflowId:n.workflowId,workflowName:null,status:`running`,startedAt:n.startedAt??Date.now(),completedAt:null,durationMs:null,totalInputTokens:null,totalOutputTokens:null,totalEstimatedCost:null,error:null,failedNodeId:null}),await H(e,n.executionId)}async function Kt(e,t,n){let r=n.completedAt??Date.now(),i=await I(t,n.executionId);await F(t,{executionId:n.executionId,workflowId:i?.workflowId??n.executionId,workflowName:i?.workflowName??null,status:`completed`,startedAt:i?.startedAt??r-n.totalDuration,completedAt:r,durationMs:n.totalDuration,totalInputTokens:i?.totalInputTokens??null,totalOutputTokens:i?.totalOutputTokens??null,totalEstimatedCost:i?.totalEstimatedCost??null,error:null,failedNodeId:null}),await H(e,n.executionId)}async function qt(e,t,n,r,i,a,o){let s=await I(t,n),c=s?.startedAt??o;await F(t,{executionId:n,workflowId:s?.workflowId??n,workflowName:s?.workflowName??null,status:r,startedAt:c,completedAt:o,durationMs:o-c,totalInputTokens:s?.totalInputTokens??null,totalOutputTokens:s?.totalOutputTokens??null,totalEstimatedCost:s?.totalEstimatedCost??null,error:i,failedNodeId:a}),await H(e,n)}async function Jt(e,t,n){let r=await Ht(t,n);if(r.totalInputTokens>0||r.totalOutputTokens>0||r.totalEstimatedCost>0){let e=await I(t,n);e&&await F(t,{executionId:n,workflowId:e.workflowId,workflowName:e.workflowName??null,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??null,durationMs:e.durationMs??null,totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost,error:e.error??null,failedNodeId:e.failedNodeId??null})}}function Yt(e,t){return[e.on(h.execution.started,async n=>{let{executionId:r}=n.payload;await V(`execution.started[${r}]`,()=>Gt(e,t,n.payload))}),e.on(h.execution.completed,async n=>{let{executionId:r}=n.payload;await V(`execution.completed[${r}]`,()=>Kt(e,t,n.payload))}),e.on(h.execution.failed,async n=>{let{executionId:r,error:i,failedStepId:a}=n.payload,o=n.payload.completedAt??Date.now();await V(`execution.failed[${r}]`,()=>qt(e,t,r,`failed`,i,a??null,o))}),e.on(h.execution.cancelled,async n=>{let{executionId:r}=n.payload,i=n.payload.completedAt??Date.now();await V(`execution.cancelled[${r}]`,()=>qt(e,t,r,`cancelled`,null,null,i))})]}function Xt(e,t,n){return e===null?{nodeId:t,nodeType:`station`,path:[],attempt:0,iteration:null,branchKey:null,startedAt:n,inputTokens:null,outputTokens:null,estimatedCost:null}:{nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,attempt:e.attempt,iteration:e.iteration,branchKey:e.branchKey,startedAt:e.startedAt,inputTokens:e.inputTokens,outputTokens:e.outputTokens,estimatedCost:e.estimatedCost}}async function Zt(e,t,n,r,i,a,o){let s=o??Date.now();await L(t,{frameId:r,executionId:n,...Xt(await R(t,r),i,a===void 0?null:s-a),status:`completed`,completedAt:s,durationMs:a??null,error:null}),await Jt(e,t,n),await H(e,n)}async function Qt(e,t,n,r,i,a,o,s){let c=s??Date.now();await L(t,{frameId:r,executionId:n,...Xt(await R(t,r),i,o===void 0?null:c-o),status:`failed`,completedAt:c,durationMs:o??null,error:a}),await H(e,n)}function $t(e,t){return[e.on(h.frame.started,async n=>{let{executionId:r,frameId:i,nodeId:a,nodeType:o,path:s,startedAt:c}=n.payload;await V(`frame.started[${i}]`,async()=>{await L(t,{frameId:i,executionId:r,nodeId:a,nodeType:o,path:s,status:`running`,attempt:0,iteration:null,branchKey:null,startedAt:c??Date.now(),completedAt:null,durationMs:null,inputTokens:null,outputTokens:null,estimatedCost:null,error:null}),await H(e,r)})}),e.on(h.frame.completed,async n=>{let{executionId:r,frameId:i,nodeId:a,duration:o,completedAt:s}=n.payload;await V(`frame.completed[${i}]`,()=>Zt(e,t,r,i,a,o,s))}),e.on(h.frame.failed,async n=>{let{executionId:r,frameId:i,nodeId:a,error:o,duration:s,completedAt:c}=n.payload;await V(`frame.failed[${i}]`,()=>Qt(e,t,r,i,a,o,s,c))})]}const en={user:`rejected`,timeout:`timed-out`,cancelled:`cancelled`};function tn(e,t){return[e.on(h.gate.suspended,async n=>{let{executionId:r,frameId:i,nodeId:a,prompt:o}=n.payload;await V(`gate.suspended[${i}]`,async()=>{await z(t,{id:B(r,a,i),executionId:r,nodeId:a,frameId:i,status:`waiting`,prompt:o??null,openedAt:Date.now(),resolvedAt:null,resumeData:null}),await H(e,r)})}),e.on(h.gate.resumed,async n=>{let{executionId:r,frameId:i,nodeId:a,resumeData:o}=n.payload;await V(`gate.resumed[${i}]`,async()=>{let n=B(r,a,i),s=await Vt(t,n),c=Date.now();await z(t,{id:n,executionId:r,nodeId:a,frameId:i,status:`resumed`,prompt:s?.prompt??null,openedAt:s?.openedAt??c,resolvedAt:c,resumeData:o}),await H(e,r)})}),e.on(h.gate.resolved,async n=>nn(n.payload,e,t)),e.on(h.artifact.updated,async n=>{let{executionId:r,frameId:i,artifactRef:a,revision:o}=n.payload;await V(`artifact.updated[${r}:${i}]`,async()=>{let n=await Wt(e,t,i,a,o);if(n===null)return;let s=Date.now();await zt(t,{id:Bt(r,i,a.kind,a.id,s),executionId:r,frameId:i,nodeId:n.nodeId,artifact:n.artifact,revision:o??null,writtenAt:s}),await H(e,r)})})]}async function nn(e,t,n){let{executionId:r,frameId:i,stepId:a,source:o}=e;o===`user`&&e.action===`approve`||await V(`gate.resolved[${i}]`,async()=>{let s=B(r,a,i),c=await Vt(n,s),l=Date.now();await z(n,{id:s,executionId:r,nodeId:a,frameId:i,status:o!==`cancelled`&&e.action===`approve`?`resumed`:en[o],prompt:c?.prompt??null,openedAt:c?.openedAt??l,resolvedAt:l,resumeData:c?.resumeData??null}),await H(t,r)})}function rn(e,t){let n=[...Yt(e,t),...$t(e,t),...tn(e,t),e.on(h.worklog.get,async e=>{let{executionId:n}=e.payload,r=await I(t,n);e.setResult({summary:r})}),e.on(h.worklog.list,async e=>{let{workflowId:n,status:r,limit:i,offset:a}=e.payload,o=await Rt(t,{workflowId:n,status:r,limit:i,offset:a});e.setResult(o)}),e.on(h.worklog.stats,async e=>{let{workflowId:n,since:r,until:i}=e.payload,a=await Ut(t,{workflowId:n,since:r,until:i});e.setResult({stats:a})})];return()=>{for(let e of n)e()}}function U(e){return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??void 0,status:e.status,inputs:e.inputs,config:{},error:e.error??void 0,reason:e.reason??void 0,startedAt:e.startedAt,completedAt:e.completedAt??void 0,triggerPayload:e.triggerPayload??void 0,...e.artifactKind!==null&&e.artifactId!==null?{artifactRef:{kind:e.artifactKind,id:e.artifactId}}:{},scope:A(e)}}function an(e){let t=k(e.scope);return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??null,status:e.status,inputs:e.inputs,error:e.error??null,reason:e.reason??null,startedAt:e.startedAt,completedAt:e.completedAt??null,triggerPayload:e.triggerPayload??null,artifactKind:e.artifactRef?.kind??null,artifactId:e.artifactRef?.id??null,...t}}function on(e,t,n,r,i,a){let o=[...e?[T(a.workflowId,e)]:[],...n?[T(a.status,n)]:[],...i===void 0?[]:[T(a.artifactKind,i.kind),T(a.artifactId,i.id)]];if(t&&o.push(...ht(a,t)),r){let e=Qe(Xe(a.startedAt,r.startedAt),S(T(a.startedAt,r.startedAt),Xe(a.id,r.id)));e&&o.push(e)}return o}async function sn(e,t,n,r){if(n.executionId!==t.id)throw Error(`setExecutionStart requires execution.id to match runContext.executionId`);let{workflowExecutions:i,workflowRunContexts:a,workflowExecutionState:o,workflowExecutionStateEvents:s}=x(e,O),c=an(t);await b(e,async l=>{await l.insert(i).values(c).onConflictDoUpdate({target:i.id,set:c});let u=(n.dispatchMetadata===void 0?await l.select({dispatchMetadata:a.dispatchMetadata}).from(a).where(T(a.executionId,n.executionId)).limit(1):[])[0]?.dispatchMetadata;if(await jt(l,n.dispatchMetadata===void 0&&u!=null?{...n,dispatchMetadata:u}:n,a),r!==void 0){let n=Date.now(),i=P(e,r);await l.insert(o).values({executionId:t.id,sequence:0,value:i,updatedAt:n}).onConflictDoNothing(),await l.insert(s).values({executionId:t.id,sequence:0,patch:[],value:i,createdAt:n}).onConflictDoNothing()}})}async function cn(e,t,n){if(n.executionId!==t.id)throw Error(`restorePausedGateResumeState requires execution.id to match gate.executionId`);if(t.status!==`paused`||n.status!==`waiting`)throw Error(`restorePausedGateResumeState requires a paused execution and waiting gate`);let{workflowExecutions:r,workflowGateInstances:i}=x(e,O),a=an(t),o=N(n);await b(e,async e=>{await e.insert(r).values(a).onConflictDoUpdate({target:r.id,set:a}),await e.insert(i).values(o).onConflictDoUpdate({target:i.id,set:o})})}async function ln(e,t,n,r){let{workflowExecutions:i,workflowGateInstances:a}=x(e,O);return b(e,async e=>{if((await e.select().from(i).where(T(i.id,t)).limit(1))[0]?.status!==`paused`)return{cancelled:!1,gates:[]};let o=(await e.select().from(a).where(S(T(a.executionId,t),T(a.status,`waiting`)))).map(e=>({...M(e),status:`cancelled`,resolvedAt:n}));await e.update(i).set({status:`cancelled`,completedAt:n,reason:r??null}).where(T(i.id,t));for(let t of o){let n=N(t);await e.update(a).set(n).where(T(a.id,n.id))}return{cancelled:!0,gates:o}})}async function un(e,t,n,r,i,a){let{workflowExecutions:o}=x(e,O);return b(e,async e=>{if((await e.select({id:o.id}).from(o).where(T(o.id,t)).limit(1))[0]===void 0)return!1;let s={};return n!==void 0&&(s.status=n),r!==void 0&&(s.error=r),i!==void 0&&(s.reason=i),a!==void 0&&(s.completedAt=a),Object.keys(s).length>0&&await e.update(o).set(s).where(T(o.id,t)),!0})}function dn(e,t){let{workflowExecutions:n}=x(t,O),r=e.on(p.getExecution,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(T(n.id,r));e.setResult({execution:i[0]?U(i[0]):null})}),i=e.on(p.setExecution,async e=>{let r=e.payload.execution,i=an(r);await t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:i}),e.setResult({id:r.id})}),a=e.on(p.setExecutionStart,async e=>{let n=e.payload.execution,r=e.payload.runContext;await sn(t,n,r,e.payload.initialState),e.setResult({id:n.id,executionId:n.id})}),o=e.on(p.restorePausedGateResumeState,async e=>{let n=e.payload.execution,r=e.payload.gate;await cn(t,n,r),e.setResult({executionId:n.id,gateId:r.nodeId})}),s=e.on(p.updateExecution,async e=>{let{executionId:n,status:r,error:i,reason:a,completedAt:o}=e.payload,s=await un(t,n,r,i,a,o);e.setResult({success:s})}),c=e.on(p.cancelPausedExecution,async e=>{let{executionId:n,completedAt:r,reason:i}=e.payload;e.setResult(await ln(t,n,r,i))});return()=>{r(),i(),a(),o(),s(),c()}}function fn(e,t){let{workflowExecutions:n}=x(t,O),r=e.on(p.listExecutions,async e=>{let{workflowId:r,scope:i,status:a,limit:o,cursor:s,artifactRef:c}=e.payload;if(r===void 0&&i===void 0&&c===void 0)throw Error(`Either workflowId, scope, or artifactRef is required to list executions.`);let l=on(r,i,a,s,c,n),u=o??je;if(!Number.isInteger(u)||u<_||u>g)throw Error(`Execution list limit must be an integer between ${_} and ${g}.`);let d=await t.select().from(n).where(S(...l)).orderBy(w(n.startedAt),w(n.id)).limit(u);e.setResult({executions:d.map(U)})}),i=e.on(p.listExecutionsByArtifactRefs,async e=>{let r=Ne.safeParse(e.payload);if(!r.success)throw Error(`Invalid listExecutionsByArtifactRefs query: ${r.error.message}`);let{refs:i,limitPerRef:a}=r.data,o={};for(let e of i){let r=await t.select().from(n).where(S(T(n.artifactKind,e.kind),T(n.artifactId,e.id))).orderBy(w(n.startedAt),w(n.id)).limit(a);r.length>0&&(o[Ve(e)]=r.map(U))}e.setResult({executionsByRef:o})});return()=>{r(),i()}}function W(e,t){let n=_t(e,t),r=dn(e,t),i=fn(e,t),a=bt(e,t),o=Ct(e,t),s=Et(e,t),c=Mt(e,t),l=It(e,t),u=rn(e,t);return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u()}}function G(e,t){if(e.origin.local)return!0;let n=e.transport?.peer;return n?.authenticated!==!0||n.id!==t?!1:n.kind===`workflow-execution`?!0:n.kind===`e2e`&&n.encrypted===!0}async function pn(e,t){let{runContext:n}=await e.request(p.getRunContext,{executionId:t});if(n===null)throw Error(`Run context not found for execution: ${t}`);if(n.definitionSnapshot!==void 0)return n.definitionSnapshot;let{workflow:r}=await e.request(p.get,{id:n.workflowId});return r??void 0}function mn(e){return[e.on(h.getDefinition,async t=>{let n=await e.request(p.get,{id:t.payload.id});t.setResult(n)}),e.on(h.setDefinition,async t=>{let n=await e.request(p.set,{workflow:t.payload.workflow});t.setResult(n)}),e.on(h.deleteDefinition,async t=>{let n=await e.request(p.delete,{id:t.payload.id});t.setResult(n)}),e.on(h.listDefinitions,async t=>{let n=await e.request(p.list,t.payload);t.setResult(n)}),e.on(h.getExecution,async t=>{let n=await e.request(p.getExecution,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listExecutions,async t=>{let n=await e.request(p.listExecutions,t.payload);t.setResult(n)}),e.on(h.listExecutionsByArtifactRefs,async t=>{let n=await e.request(p.listExecutionsByArtifactRefs,t.payload);t.setResult(n)}),e.on(h.listSpans,async t=>{let n=await e.request(p.listSpans,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listFrames,async t=>{let n=await e.request(p.listFrames,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listGateInstances,async t=>{let n=await e.request(p.listGateInstances,t.payload);t.setResult(n)}),e.on(h.setExecutionLink,async t=>{let n=await e.request(p.setExecutionLink,{link:t.payload.link});t.setResult(n)}),e.on(h.listExecutionLinks,async t=>{let n=await e.request(p.listExecutionLinks,t.payload);t.setResult(n)}),e.on(h.getRunContext,async t=>{let{executionId:n}=t.payload;if(!G(t,n))throw Error(`Unauthorized: caller is not permitted to read run context for execution: ${n}`);let{runContext:r}=await e.request(p.getRunContext,{executionId:n});if(!r)throw Error(`Run context not found for execution: ${n}`);t.setResult(r)})]}function hn(e){return[e.on(h.state.get,async t=>{let{executionId:n}=t.payload;if(!G(t,n))throw Error(`Unauthorized: caller is not permitted to read state for execution: ${n}`);let{state:r}=await e.request(p.getState,{executionId:n});if(r===null)throw Error(`no workflow state for execution ${n}`);t.setResult(r)}),e.on(h.state.patch,async t=>{let{executionId:n,expectedSequence:r,patch:i,nextValue:a}=t.payload;if(!G(t,n))throw Error(`Unauthorized: caller is not permitted to patch state for execution: ${n}`);if(r===void 0)throw Error(`expectedSequence is required to patch workflow state`);let o=await pn(e,n);o!==void 0&&pe(o,a,`next`),Pe.array().parse(i);let s=await e.request(p.patchState,{executionId:n,expectedSequence:r,nextValue:a});e.emit(h.state.updated,{executionId:s.executionId,sequence:s.sequence,patch:s.patch,value:s.value,updatedAt:Date.now()}).catch(()=>{}),t.setResult({executionId:s.executionId,sequence:s.sequence,value:s.value})})]}function gn(e,t){return[e.on(h.listTriggerTypes,e=>{let n=t()?.getAll()??[];e.setResult({triggerTypes:n})})]}var _n=class{bus;resumePausedExecution;handles=new Map;constructor(e,t){this.bus=e,this.resumePausedExecution=t}dispose(){for(let e of this.handles.values())clearTimeout(e);this.handles.clear()}clear(e,t,n){let r=this.makeKey(e,t,n),i=this.handles.get(r);i!==void 0&&(clearTimeout(i),this.handles.delete(r))}schedule(e){e.timeoutMs!==null&&(this.clear(e.executionId,e.nodeId,e.frameId),this.scheduleNextWakeup({...e,timeoutMs:e.timeoutMs}))}scheduleNextWakeup(e){let t=this.makeKey(e.executionId,e.nodeId,e.frameId),n=Math.max(0,e.openedAt+e.timeoutMs-Date.now()),r=setTimeout(()=>{if(this.handles.delete(t),Date.now()<e.openedAt+e.timeoutMs){this.scheduleNextWakeup(e);return}this.handleExpiredWakeup(e)},Math.min(n,2147483647));this.handles.set(t,r)}scheduleNextWakeupAfterDelay(e,t){let n=this.makeKey(e.executionId,e.nodeId,e.frameId),r=setTimeout(()=>{this.handles.delete(n),this.handleExpiredWakeup(e)},t);this.handles.set(n,r)}async handleExpiredWakeup(e){try{await this.resumeTimedOutPausedGate(e)===`retry`&&this.scheduleNextWakeupAfterDelay(e,25)}catch(t){this.scheduleFailedWakeupRetry(e,t)}}scheduleFailedWakeupRetry(e,t){let n=(e.failedWakeupAttempts??0)+1;if(n>4){console.error(`[WorkflowExecutor] Giving up on timed-out gate '${e.nodeId}' after 4 failed wakeup retries:`,t);return}let r=Math.min(250*2**(n-1),2e3);console.error(`[WorkflowExecutor] Failed to resume timed-out gate '${e.nodeId}', retrying in ${r} ms:`,t),this.scheduleNextWakeupAfterDelay({...e,failedWakeupAttempts:n},r)}makeKey(e,t,n){return`${e}:${t}:${n}`}async resumeTimedOutPausedGate(e){this.clear(e.executionId,e.nodeId,e.frameId);let{gate:t}=await this.bus.request(p.getGateInstance,{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId});if(t===null||t.status!==`waiting`)return`settled`;let{execution:n}=await this.bus.request(p.getExecution,{executionId:e.executionId});return n?.status===`running`?`retry`:n?.status===`paused`?(await this.resumePausedExecution(e.executionId),`resumed`):`settled`}};function vn(e){if(e!==void 0)return Fe.parse(e)}function yn(e){if(e!==void 0)return Me.parse(e)}function bn(e,t){return{repoPath:t,makaioHome:e.makaioHome??process.env.MAKAIO_HOME??`${et.homedir()}/.makaio`,os:fe(process.platform),arch:process.arch}}function xn(e,t){return{executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},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:`workflow.${e.executionId}.cancel`,context:bn(t,e.workspaceRoot),env:t.platformDefaults.env??{},createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy??`wait-in-process`}}function Sn(e){return e?.status===`paused`}function Cn(e){return e?.status===`waiting`}async function wn(e,t,n,r,i,a,o){t.delete(i.id),n.delete(i.id),r.delete(i.id);try{await e.request(p.restorePausedGateResumeState,{execution:i,gate:a})}catch(e){console.error(`[WorkflowExecutor] Failed to restore paused gate '${o}' after resume launch failure:`,e)}}async function Tn(e,t){if(t.suspensionStrategy===`wait-in-process`)return;let{frames:n}=await e.request(p.listFrames,{executionId:t.executionId});if(n.length===0)throw Error(`[WorkflowExecutor] Missing resume frames for paused execution: ${t.executionId}`)}function En(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,timeoutMs:e.timeoutMs,openedAt:e.createdAt}}async function Dn(e,t){if(t.frameId!==void 0){let{gate:n}=await e.request(p.getGateInstance,t);return Cn(n)?n:null}let{gates:n}=await e.request(p.listGateInstances,{executionId:t.executionId}),r=n.filter(e=>e.nodeId===t.nodeId&&e.status===`waiting`);return r.length===1?r[0]:null}var On=class extends He{static storage={drizzle:W};config;activeExecutions=new Map;executionTasks=new Map;shellAbortControllers=new Map;activeRunnerSteps=new Map;gateTimeoutScheduler;resumeDispatches=new Set;workflowAbortControllers=new Map;workflowRunner;triggerTypeRegistry;constructor(e,t,n){super(e),this.config={...ce,...t},this.workflowRunner=n,this.gateTimeoutScheduler=new _n(e,e=>this.resumePausedExecution(e))}setTriggerTypeRegistry(e){this.triggerTypeRegistry=e}getTriggerTypeRegistry(){return this.triggerTypeRegistry}async onInit(){this.registerExecutionHandlers();for(let e of mn(this.bus))this.addCleanup(e);for(let e of hn(this.bus))this.addCleanup(e);for(let e of gn(this.bus,()=>this.triggerTypeRegistry))this.addCleanup(e);await this.rehydratePausedGateTimeouts()}async onDestroy(){let e=this.buildFinalizerDeps();await Promise.allSettled([...this.activeExecutions.keys()].map(async t=>{await m(e,t,`Workflow engine shutdown`)&&(this.workflowAbortControllers.get(t)?.abort(),this.workflowAbortControllers.delete(t))}));for(let e of this.workflowAbortControllers.values())e.abort();this.workflowAbortControllers.clear(),await Promise.allSettled(this.executionTasks.values());for(let e of this.shellAbortControllers.values())e.abort();this.shellAbortControllers.clear();for(let e of this.activeRunnerSteps.values())e.hardKillTimer&&clearTimeout(e.hardKillTimer);this.activeRunnerSteps.clear(),this.gateTimeoutScheduler.dispose(),await this.workflowRunner?.dispose?.(),this.activeExecutions.clear()}buildFinalizerDeps(){return{bus:this.bus,activeExecutions:this.activeExecutions,shellAbortControllers:this.shellAbortControllers,activeRunnerSteps:this.activeRunnerSteps,cancelTimeoutMs:this.config.cancelTimeoutMs}}buildRunnerTaskDeps(e){return{workflowRunner:e,workflowAbortControllers:this.workflowAbortControllers,executionTasks:this.executionTasks,activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveWorkflowContext:e=>bn(this.config,e),config:this.config}}async resolveExecutionWorkspaceRoot(e){if(!e)return this.config.platformDefaults.cwd;let{session:t}=await this.bus.request(Ie.get,{sessionId:e});return t?.targetWorkingDirectory??this.config.platformDefaults.cwd}buildStartDeps(){return{bus:this.bus,config:this.config,activeExecutions:this.activeExecutions,executionTasks:this.executionTasks,workflowRunner:this.workflowRunner,buildRunContext:e=>xn(e,this.config),buildRunnerTaskDeps:e=>this.buildRunnerTaskDeps(e),buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveExecutionWorkspaceRoot:e=>this.resolveExecutionWorkspaceRoot(e),runExecution:e=>this.runExecution(e)}}registerExecutionHandlers(){this.registerHandler(h.start,async e=>{let{workflowId:t,input:n,config:r,parentSessionId:i,triggerPayload:a,artifactRef:o,scope:s,executionHints:c}=e.payload,l=typeof r==`object`&&r&&!Array.isArray(r)?r:{};try{let r=await xe(this.buildStartDeps(),t,{input:vn(n),config:l,parentSessionId:i,triggerPayload:a,artifactRef:o,executionHints:yn(c),scopeOverride:s});e.setResult({executionId:r})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow: ${t}`)}}),this.registerHandler(h.runFile,async e=>{if(this.workflowRunner===void 0)throw Error(`workflow.runFile requires a workflow runner — configure a ThinWorkflowPiscinaRunner or equivalent.`);let{filePath:t,triggerPayload:n,scope:r}=e.payload;try{let i=await ue(this.buildStartDeps(),t,{triggerPayload:n,scopeOverride:r});e.setResult({executionId:i})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow file: ${t}`)}}),this.registerHandler(h.cancel,async e=>{let{executionId:t,reason:n}=e.payload;await this.bus.emit(Re(`workflow.${t}.cancel`),{executionId:t,reason:n}).catch(e=>{console.error(`[WorkflowExecutor] Failed to emit workflow cancel for ${t}:`,e)});let r=this.workflowAbortControllers.get(t);if(r){r.abort(n??v);let i=await m(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i});return}let i=await m(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i})}),this.registerGateTimeoutHandlers(),this.addCleanup(this.bus.on(h.gate.respond,async e=>{let{executionId:t,gateId:n,frameId:r,action:i,resumeData:a,reason:o}=e.payload,s=await this.respondToPausedGate({executionId:t,gateId:n,frameId:r,action:i,resumeData:a,reason:o});e.setResult({accepted:s})},{priority:-100}))}registerGateTimeoutHandlers(){this.addCleanup(this.bus.on(h.gate.suspended,e=>{this.gateTimeoutScheduler.schedule(e.payload)})),this.addCleanup(this.bus.on(h.gate.resolved,e=>{this.gateTimeoutScheduler.clear(e.payload.executionId,e.payload.stepId,e.payload.frameId)}))}async rehydratePausedGateTimeouts(){let{gates:e}=await this.bus.request(p.listPausedGateTimeouts,{});for(let t of e)this.gateTimeoutScheduler.schedule(En(t))}async runExecution(e){let t=this.activeExecutions.get(e);if(!t)return;let n=new AbortController;this.workflowAbortControllers.set(e,n);try{let r;try{let i=await he({definition:t.workflow,execution:t.execution,runContext:t.runContext,bus:this.bus}),a=new le(e,t.workflow.id,t.workflow,t.execution,t.runtimeHandlers,this.bus,n.signal,void 0,i,{context:t.runContext.context,env:t.runContext.env}),o=a.buildExpressionContext();r=await Se(t.workflow.root,a,o)}catch(r){if(n.signal.aborted||t.execution.status===`cancelled`){await m(this.buildFinalizerDeps(),e,v);return}let i=r instanceof Error?r.message:String(r);await ye(this.buildFinalizerDeps(),t.execution,e,i);return}let i=this.buildFinalizerDeps();r.status===`cancelled`||n.signal.aborted||t.execution.status===`cancelled`?await m(i,e,v):r.status===`failed`?await ye(i,t.execution,e,r.error):r.status===`paused`?(t.execution.status=`paused`,await this.bus.request(p.setExecution,{execution:t.execution}),this.activeExecutions.delete(e)):await me(i,t.execution,e,t.execution.startedAt)}finally{this.workflowAbortControllers.delete(e)}}async respondToPausedGate(e){let{executionId:t,gateId:n,frameId:r,resumeData:i,reason:a}=e,{execution:o}=await this.bus.request(p.getExecution,{executionId:t});if(!Sn(o))return!1;let s=await Dn(this.bus,{executionId:t,nodeId:n,frameId:r});if(s===null||!be(n,s.schema,i).valid)return!1;let{runContext:c}=await this.bus.request(p.getRunContext,{executionId:t});if(c===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${t}`);await Tn(this.bus,c);let{accepted:l}=await this.bus.request(p.resolveWaitingGateInstance,{gate:{...s,status:e.action===`reject`?`rejected`:`resumed`,resumeData:i,...a===void 0?{}:{reason:a},resolvedAt:Date.now()}});if(!l)return!1;try{await this.resumePausedExecution(o.id)}catch(e){throw await wn(this.bus,this.activeExecutions,this.executionTasks,this.workflowAbortControllers,o,s,n),e}return this.gateTimeoutScheduler.clear(t,n,s.frameId),!0}async resumePausedExecution(e){if(!this.resumeDispatches.has(e)){this.resumeDispatches.add(e);try{await this.dispatchPausedExecutionResume(e)||this.resumeDispatches.delete(e)}catch(t){throw this.resumeDispatches.delete(e),t}}}async dispatchPausedExecutionResume(e){let{runContext:t}=await this.bus.request(p.getRunContext,{executionId:e});if(t===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${e}`);let n=t.definitionSnapshot??(await this.bus.request(p.get,{id:t.workflowId})).workflow??(()=>{throw Error(`[WorkflowExecutor] Workflow definition not found for paused execution: ${e}`)})(),{execution:r}=await this.bus.request(p.getExecution,{executionId:e});if(r===null)throw Error(`[WorkflowExecutor] Execution not found for paused execution: ${e}`);if(r.status!==`paused`)return!1;await Tn(this.bus,t),await this.bus.request(p.setExecution,{execution:{...r,status:`running`}}),this.activeExecutions.set(e,{execution:{...r,status:`running`},workflow:n,runContext:t,runtimeHandlers:new Map});let i=de(t,n,{resume:!0}),a=ve(this.buildStartDeps(),i).finally(()=>{this.resumeDispatches.delete(e)});return this.executionTasks.set(e,a),!0}};function kn(e,t){try{return $e(e)}catch(n){console.error(`[BusEventTriggerEvaluator] Invalid trigger.filterExpression for workflow "${t}": "${e}"`,n);return}}function An(e){let t=e.indexOf(`.`),n=e.indexOf(`:`),r=t===-1?n:n===-1?t:Math.min(t,n);return r===-1?e:e.slice(0,r)}function jn(e){return{subject:`*`,$meta:{namespace:e,isRequest:!1}}}var Mn=class{bus;cleanupFns=[];initialized=!1;triggerIndex=new Map;subscribedNamespaces=new Set;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(y.definition.created,e=>{this.indexWorkflow(e.payload)}),this.bus.on(y.definition.updated,e=>{this.removeWorkflow(e.payload.id),this.indexWorkflow(e.payload)}),this.bus.on(y.definition.deleted,e=>{this.removeWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),!1)}getTestState(){return{initialized:this.initialized,cleanupFns:[...this.cleanupFns],subscribedNamespaces:new Set(this.subscribedNamespaces)}}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(p.list,{});for(let t of e)this.indexWorkflow(t)}indexWorkflow(e){let t=e.triggers??[],n=[];for(let r of t){if(r.type!==`bus-event`)continue;let t=typeof r.filterExpression==`string`?kn(r.filterExpression,e.id):void 0;typeof r.filterExpression==`string`&&t===void 0||(n.push({workflowId:e.id,subject:r.subject,filter:r.filter,compiledFilterExpr:t}),this.ensureNamespaceSubscribed(An(r.subject)))}n.length>0&&this.triggerIndex.set(e.id,n)}removeWorkflow(e){this.triggerIndex.delete(e)}ensureNamespaceSubscribed(e){if(this.subscribedNamespaces.has(e))return;let t=jn(e),n=this.bus.on(t,e=>{if(e.isRequest)return;let t=typeof e.payload==`object`&&e.payload!==null?e.payload:{};this.handleBusEvent(e.subject,t)});this.cleanupFns.push(n),this.subscribedNamespaces.add(e)}handleBusEvent(e,t){for(let n of this.triggerIndex.values())for(let r of n)if(ke(e,r.subject)&&!(r.filter&&!Oe(t,r.filter))){if(r.compiledFilterExpr){let n;try{n=r.compiledFilterExpr.evalSync({payload:t})}catch(n){console.error(`[BusEventTriggerEvaluator] filterExpression eval failed for workflow "${r.workflowId}" on subject "${e}" payload keys: [${Object.keys(t).join(`, `)}]`,n);continue}if(!n)continue}this.bus.request(y.start,{workflowId:r.workflowId,triggerPayload:t}).catch(t=>{console.error(`[BusEventTriggerEvaluator] Failed to start workflow "${r.workflowId}" triggered by "${e}":`,t)})}}};function K(e,t,n,r,i,a,o,s){return K.fromTZ(K.tp(e,t,n,r,i,a,o),s)}K.fromTZISO=(e,t,n)=>K.fromTZ(Nn(e,t),n),K.fromTZ=function(e,t){let n=new Date(Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)),r=q(e.tz,n),i=new Date(n.getTime()-r),a=q(e.tz,i);if(a-r===0)return i;{let r=new Date(n.getTime()-a),o=q(e.tz,r);if(o-a===0||!t&&o-a>0)return r;if(t)throw Error(`Invalid date passed to fromTZ()`);return i}},K.toTZ=function(e,t){let n=e.toLocaleString(`en-US`,{timeZone:t}).replace(/[\u202f]/,` `),r=new Date(n);return{y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),tz:t}},K.tp=(e,t,n,r,i,a,o)=>({y:e,m:t,d:n,h:r,i,s:a,tz:o});function q(e,t=new Date){let n=t.toLocaleString(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).split(` `).slice(-1)[0],r=t.toLocaleString(`en-US`).replace(/[\u202f]/,` `);return Date.parse(`${r} GMT`)-Date.parse(`${r} ${n}`)}function Nn(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`minitz: Invalid ISO8601 passed to parser.`);let r=e.substring(9);return e.includes(`Z`)||r.includes(`-`)||r.includes(`+`)?K.tp(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):K.tp(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}K.minitz=K;var J=32,Y=31|J,Pn=[1,2,4,8,16],Fn=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(e,t){this.pattern=e,this.timezone=t,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.replace(/\s+/g,` `).split(` `);if(e.length<5||e.length>6)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five or six space separated parts are required.`);if(e.length===5&&e.unshift(`0`),e[3].indexOf(`L`)>=0&&(e[3]=e[3].replace(`L`,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.replaceAlphaDays(e[5])),e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0){let t=new Z(new Date,this.timezone).getDate(!0);e[0]=e[0].replace(`?`,t.getSeconds().toString()),e[1]=e[1].replace(`?`,t.getMinutes().toString()),e[2]=e[2].replace(`?`,t.getHours().toString()),this.starDOM||(e[3]=e[3].replace(`?`,t.getDate().toString())),e[4]=e[4].replace(`?`,(t.getMonth()+1).toString()),this.starDOW||(e[5]=e[5].replace(`?`,t.getDay().toString()))}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1),this.partToArray(`dayOfWeek`,e[5],0,Y),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth;if(t===``&&!a)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let o=t.split(`,`);if(o.length>1)for(let t=0;t<o.length;t++)this.partToArray(e,o[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=parseInt(i[0],10)+n;if(isNaN(a))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,a,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`&&(t<0||t>=12))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t);this[e][t]=n}handleRangeWithStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);if(isNaN(l))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(u))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(isNaN(d))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(d===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(d>this[t].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[t].length+`)`);if(l>u)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}return[n,r]}handleRange(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;if(isNaN(o))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(o>s)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);a[0]===``&&(a[0]=`*`);let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(s===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(s>this[t].length)throw TypeError(`CronPattern: Syntax error, max steps for part is (`+this[t].length+`)`);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();return t===`@yearly`||t===`@annually`?`0 0 1 1 *`:t===`@monthly`?`0 0 1 * *`:t===`@weekly`?`0 0 * * 0`:t===`@daily`?`0 0 * * *`:t===`@hourly`?`0 * * * *`:e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|J;else if(t===Y)this.dayOfWeek[e]=Y;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|Pn[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},In=[31,28,31,30,31,30,31,31,30,31,30,31],X=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],Z=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t===void 0)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&Y&&Pn[a-1]&r)return!0;if(r&J){let r=new Date(Date.UTC(e,t+1,0)).getUTCDate();for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else{let t=K.toTZ(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.day>In[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=K.fromTZISO(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(K.fromTZISO(e,this.tz))}findNext(e,t,n,r){let i=this[t],a;n.lastDayOfMonth&&(a=this.month===1?new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate():In[this.month]);let o=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let s=this[t]+r;s<n[t].length;s++){let c=n[t][s];if(t===`day`&&n.lastDayOfMonth&&s-r==a&&(c=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(o+(s-r-1))%7];if(t&&t&Y)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,s-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);e.legacyMode&&!n.starDOM?c||=t:c&&=t}if(c)return this[t]=s-r,i===this[t]?1:2}return 3}recurse(e,t,n){let r=this.findNext(t,X[n][0],e,X[n][2]);if(r>1){let i=n+1;for(;i<X.length;)this[X[i][0]]=-X[i][2],i++;if(r===3)return this[X[n][1]]++,this[X[n][0]]=-X[n][2],this.apply(),this.recurse(e,t,0);if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=X.length?this:this.year>=3e3?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):K.fromTZ(K.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function Ln(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode=e.legacyMode===void 0?!0:e.legacyMode,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.startAt&&=new Z(e.startAt,e.timezone),e.stopAt&&=new Z(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);return e}function Q(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function Rn(e){return Q(e)}function zn(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var Bn=30*1e3,$=[],Vn=class{name;options;_states;fn;constructor(e,t,n){let r,i;if(Q(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(Q(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=Ln(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new Fn(`* * * * *`)},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new Z(e,this.options.timezone||this.options.utcOffset):this._states.pattern=new Fn(e,this.options.timezone),this.name){if($.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);$.push(this)}return i!==void 0&&Rn(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?t.getDate(!1):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=[],r=t||this._states.currentRun||void 0;for(;e--&&(r=this.nextRun(r));)n.push(r);return n}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof Z||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new Z(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=$.indexOf(this);e>=0&&$.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>Bn&&(t=Bn),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&zn(this._states.currentTimeout),this)}async _trigger(e){if(this._states.blocking=!0,this._states.currentRun=new Z(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){Q(this.options.catch)&&this.options.catch(e,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new Z(e,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&Q(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new Z(e,this.options.timezone||this.options.utcOffset),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new Z(e,this.options.timezone||this.options.utcOffset);return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_calculatePreviousRun(e,t){let n=new Z(void 0,this.options.timezone||this.options.utcOffset),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new Z(r,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};function Hn(e,t){return`${e}:${t}`}function Un(e){return e??`UTC`}var Wn=class{bus;cleanupFns=[];initialized=!1;jobs=new Map;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(y.definition.created,e=>{this.scheduleWorkflow(e.payload)}),this.bus.on(y.definition.updated,e=>{this.unscheduleWorkflow(e.payload.id),this.scheduleWorkflow(e.payload)}),this.bus.on(y.definition.deleted,e=>{this.unscheduleWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),!1)}activeJobCount(){return this.jobs.size}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(p.list,{});for(let t of e)this.scheduleWorkflow(t)}scheduleWorkflow(e){if(e.scope.type===`global`)return;let t=e.triggers??[];for(let n=0;n<t.length;n++){let r=t[n];if(r.type!==`cron`)continue;let i=Hn(e.id,n);this.stopJob(i);try{let t=Un(r.timezone),a=new Vn(r.schedule,{timezone:t},()=>{this.fireTrigger(e.id,n)});this.jobs.set(i,{workflowId:e.id,triggerIndex:n,job:a})}catch(t){console.warn(`[CronTriggerEvaluator] Skipping invalid cron trigger key="${i}" workflowId="${e.id}" triggerIndex=${n} schedule="${r.schedule}" timezone="${r.timezone??`UTC`}"`,t)}}}unscheduleWorkflow(e){for(let[t,n]of this.jobs)n.workflowId===e&&(n.job.stop(),this.jobs.delete(t))}stopJob(e){let t=this.jobs.get(e);t&&(t.job.stop(),this.jobs.delete(e))}stopAllJobs(){for(let e of this.jobs.values())e.job.stop();this.jobs.clear()}fireTrigger(e,t){this.bus.request(y.start,{workflowId:e,triggerPayload:{firedAt:Date.now(),triggerIndex:t}}).catch(n=>{console.error(`[CronTriggerEvaluator] Failed to start workflow "${e}" for cron trigger index ${t}:`,n)})}},Gn=class extends He{workflowExecutor;busEventTriggerEvaluator;cronTriggerEvaluator;constructor(e,t){super(e),this.workflowExecutor=new On(e,t?.executorConfig,t?.workflowRunner),this.busEventTriggerEvaluator=new Mn(e),this.cronTriggerEvaluator=new Wn(e)}get executor(){return this.workflowExecutor}get cronTriggers(){return this.cronTriggerEvaluator}setTriggerTypeRegistry(e){this.workflowExecutor.setTriggerTypeRegistry(e)}getTriggerTypeRegistry(){return this.workflowExecutor.getTriggerTypeRegistry()}async onInit(){this.addCleanup(()=>this.destroyOwnedServices()),await this.workflowExecutor.init(),await this.busEventTriggerEvaluator.init(),await this.cronTriggerEvaluator.init()}async destroyOwnedServices(){let e=[];for(let t of[()=>this.cronTriggerEvaluator.destroy(),()=>this.busEventTriggerEvaluator.destroy(),()=>this.workflowExecutor.destroy()])try{await t()}catch(t){e.push(t)}if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Workflow engine service teardown failed`)}};const Kn=Be(`makaio.workflow-engine`);function qn(e){return{name:Kn.name,displayName:`Workflow Engine`,version:`0.1.0`,dependencies:[ze(tt.name)],critical:!0,namespaces:[Le,Ee],storage:{registerHandlers:Ge(W)},create:t=>new Gn(t.bus,e)}}const Jn=qn();export{On as a,Nt as c,Gn as i,Ft as l,qn as n,W as o,Jn as r,Pt as s,Kn as t};
|
|
@@ -10,7 +10,7 @@ import { MakaioDatabase } from "@makaio/framework/storage/drizzle";
|
|
|
10
10
|
*
|
|
11
11
|
* Handles:
|
|
12
12
|
* - Definition CRUD: get, set, delete, list
|
|
13
|
-
* - Execution CRUD: getExecution, setExecution, updateExecution, listExecutions
|
|
13
|
+
* - Execution CRUD: getExecution, setExecution, updateExecution, listExecutions, listExecutionsByArtifactRefs
|
|
14
14
|
* - Frame CRUD: setFrame, getFrame, listFrames
|
|
15
15
|
* - Gate instance CRUD: setGateInstance, getGateInstance, listGateInstances
|
|
16
16
|
* - Span CRUD: setSpan, listSpans
|
package/dist/package.json
CHANGED