@relaycast/engine 5.1.1 → 6.0.0
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/adapters/node/realtime.d.ts +28 -1
- package/dist/adapters/node/realtime.d.ts.map +1 -1
- package/dist/adapters/node/realtime.js +229 -50
- package/dist/adapters/node/realtime.js.map +1 -1
- package/dist/auth/tokenKind.d.ts +1 -1
- package/dist/auth/tokenKind.d.ts.map +1 -1
- package/dist/auth/tokenKind.js +4 -1
- package/dist/auth/tokenKind.js.map +1 -1
- package/dist/db/migrations/0028_node_providers.sql +55 -0
- package/dist/db/schema.d.ts +376 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +59 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/engine/action.d.ts +44 -1
- package/dist/engine/action.d.ts.map +1 -1
- package/dist/engine/action.js +237 -18
- package/dist/engine/action.js.map +1 -1
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +2 -1
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/node.d.ts +71 -28
- package/dist/engine/node.d.ts.map +1 -1
- package/dist/engine/node.js +230 -106
- package/dist/engine/node.js.map +1 -1
- package/dist/engine/nodeContext.d.ts.map +1 -1
- package/dist/engine/nodeContext.js +17 -6
- package/dist/engine/nodeContext.js.map +1 -1
- package/dist/engine/nodeDeliver.d.ts.map +1 -1
- package/dist/engine/nodeDeliver.js +4 -1
- package/dist/engine/nodeDeliver.js.map +1 -1
- package/dist/engine/nodeProvider.d.ts +62 -0
- package/dist/engine/nodeProvider.d.ts.map +1 -0
- package/dist/engine/nodeProvider.js +256 -0
- package/dist/engine/nodeProvider.js.map +1 -0
- package/dist/middleware/auth.d.ts +6 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +6 -0
- package/dist/middleware/auth.js.map +1 -1
- package/dist/node-control.d.ts +1 -1
- package/dist/node-control.d.ts.map +1 -1
- package/dist/node-control.js +11 -1
- package/dist/node-control.js.map +1 -1
- package/dist/ports/auth.d.ts +1 -1
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/realtime.d.ts +24 -2
- package/dist/ports/realtime.d.ts.map +1 -1
- package/dist/routes/deliveryRouting.d.ts.map +1 -1
- package/dist/routes/deliveryRouting.js +6 -1
- package/dist/routes/deliveryRouting.js.map +1 -1
- package/dist/routes/message.d.ts.map +1 -1
- package/dist/routes/message.js +44 -14
- package/dist/routes/message.js.map +1 -1
- package/dist/routes/node.d.ts.map +1 -1
- package/dist/routes/node.js +89 -3
- package/dist/routes/node.js.map +1 -1
- package/package.json +3 -3
package/dist/db/schema.d.ts
CHANGED
|
@@ -407,6 +407,25 @@ export declare const agents: import("drizzle-orm/sqlite-core").SQLiteTableWithCo
|
|
|
407
407
|
}, {}, {
|
|
408
408
|
length: number | undefined;
|
|
409
409
|
}>;
|
|
410
|
+
providerName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
411
|
+
name: "provider_name";
|
|
412
|
+
tableName: "agents";
|
|
413
|
+
dataType: "string";
|
|
414
|
+
columnType: "SQLiteText";
|
|
415
|
+
data: string;
|
|
416
|
+
driverParam: string;
|
|
417
|
+
notNull: true;
|
|
418
|
+
hasDefault: true;
|
|
419
|
+
isPrimaryKey: false;
|
|
420
|
+
isAutoincrement: false;
|
|
421
|
+
hasRuntimeDefault: false;
|
|
422
|
+
enumValues: [string, ...string[]];
|
|
423
|
+
baseColumn: never;
|
|
424
|
+
identity: undefined;
|
|
425
|
+
generated: undefined;
|
|
426
|
+
}, {}, {
|
|
427
|
+
length: number | undefined;
|
|
428
|
+
}>;
|
|
410
429
|
resumable: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
411
430
|
name: "resumable";
|
|
412
431
|
tableName: "agents";
|
|
@@ -596,6 +615,25 @@ export declare const nodes: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
596
615
|
}, {}, {
|
|
597
616
|
length: number | undefined;
|
|
598
617
|
}>;
|
|
618
|
+
machineId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
619
|
+
name: "machine_id";
|
|
620
|
+
tableName: "nodes";
|
|
621
|
+
dataType: "string";
|
|
622
|
+
columnType: "SQLiteText";
|
|
623
|
+
data: string;
|
|
624
|
+
driverParam: string;
|
|
625
|
+
notNull: false;
|
|
626
|
+
hasDefault: false;
|
|
627
|
+
isPrimaryKey: false;
|
|
628
|
+
isAutoincrement: false;
|
|
629
|
+
hasRuntimeDefault: false;
|
|
630
|
+
enumValues: [string, ...string[]];
|
|
631
|
+
baseColumn: never;
|
|
632
|
+
identity: undefined;
|
|
633
|
+
generated: undefined;
|
|
634
|
+
}, {}, {
|
|
635
|
+
length: number | undefined;
|
|
636
|
+
}>;
|
|
599
637
|
kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
600
638
|
name: "kind";
|
|
601
639
|
tableName: "nodes";
|
|
@@ -680,6 +718,8 @@ export declare const nodes: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
680
718
|
data: {
|
|
681
719
|
name: string;
|
|
682
720
|
kind?: string | undefined;
|
|
721
|
+
global?: boolean | undefined;
|
|
722
|
+
queue?: boolean | undefined;
|
|
683
723
|
metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
|
|
684
724
|
}[];
|
|
685
725
|
driverParam: string;
|
|
@@ -696,6 +736,8 @@ export declare const nodes: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
696
736
|
$type: {
|
|
697
737
|
name: string;
|
|
698
738
|
kind?: string | undefined;
|
|
739
|
+
global?: boolean | undefined;
|
|
740
|
+
queue?: boolean | undefined;
|
|
699
741
|
metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
|
|
700
742
|
}[];
|
|
701
743
|
}>;
|
|
@@ -878,6 +920,287 @@ export declare const nodes: import("drizzle-orm/sqlite-core").SQLiteTableWithCol
|
|
|
878
920
|
};
|
|
879
921
|
dialect: "sqlite";
|
|
880
922
|
}>;
|
|
923
|
+
/**
|
|
924
|
+
* A process attached to a broker-role node, keyed by provider `name`. Each
|
|
925
|
+
* provider registers a subset of the node's capabilities and executes their
|
|
926
|
+
* invokes over its own socket. `instanceId` is the connection epoch. Capability
|
|
927
|
+
* sets persist here so an offline node still displays its full manifest, and the
|
|
928
|
+
* per-provider liveness/capacity/load columns are aggregated onto the `nodes`
|
|
929
|
+
* row. Implicit direct nodes (per self-connected agent) do not use this table.
|
|
930
|
+
*/
|
|
931
|
+
export declare const nodeProviders: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
932
|
+
name: "node_providers";
|
|
933
|
+
schema: undefined;
|
|
934
|
+
columns: {
|
|
935
|
+
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
936
|
+
name: "id";
|
|
937
|
+
tableName: "node_providers";
|
|
938
|
+
dataType: "string";
|
|
939
|
+
columnType: "SQLiteText";
|
|
940
|
+
data: string;
|
|
941
|
+
driverParam: string;
|
|
942
|
+
notNull: true;
|
|
943
|
+
hasDefault: false;
|
|
944
|
+
isPrimaryKey: true;
|
|
945
|
+
isAutoincrement: false;
|
|
946
|
+
hasRuntimeDefault: false;
|
|
947
|
+
enumValues: [string, ...string[]];
|
|
948
|
+
baseColumn: never;
|
|
949
|
+
identity: undefined;
|
|
950
|
+
generated: undefined;
|
|
951
|
+
}, {}, {
|
|
952
|
+
length: number | undefined;
|
|
953
|
+
}>;
|
|
954
|
+
workspaceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
955
|
+
name: "workspace_id";
|
|
956
|
+
tableName: "node_providers";
|
|
957
|
+
dataType: "string";
|
|
958
|
+
columnType: "SQLiteText";
|
|
959
|
+
data: string;
|
|
960
|
+
driverParam: string;
|
|
961
|
+
notNull: true;
|
|
962
|
+
hasDefault: false;
|
|
963
|
+
isPrimaryKey: false;
|
|
964
|
+
isAutoincrement: false;
|
|
965
|
+
hasRuntimeDefault: false;
|
|
966
|
+
enumValues: [string, ...string[]];
|
|
967
|
+
baseColumn: never;
|
|
968
|
+
identity: undefined;
|
|
969
|
+
generated: undefined;
|
|
970
|
+
}, {}, {
|
|
971
|
+
length: number | undefined;
|
|
972
|
+
}>;
|
|
973
|
+
nodeId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
974
|
+
name: "node_id";
|
|
975
|
+
tableName: "node_providers";
|
|
976
|
+
dataType: "string";
|
|
977
|
+
columnType: "SQLiteText";
|
|
978
|
+
data: string;
|
|
979
|
+
driverParam: string;
|
|
980
|
+
notNull: true;
|
|
981
|
+
hasDefault: false;
|
|
982
|
+
isPrimaryKey: false;
|
|
983
|
+
isAutoincrement: false;
|
|
984
|
+
hasRuntimeDefault: false;
|
|
985
|
+
enumValues: [string, ...string[]];
|
|
986
|
+
baseColumn: never;
|
|
987
|
+
identity: undefined;
|
|
988
|
+
generated: undefined;
|
|
989
|
+
}, {}, {
|
|
990
|
+
length: number | undefined;
|
|
991
|
+
}>;
|
|
992
|
+
name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
993
|
+
name: "name";
|
|
994
|
+
tableName: "node_providers";
|
|
995
|
+
dataType: "string";
|
|
996
|
+
columnType: "SQLiteText";
|
|
997
|
+
data: string;
|
|
998
|
+
driverParam: string;
|
|
999
|
+
notNull: true;
|
|
1000
|
+
hasDefault: false;
|
|
1001
|
+
isPrimaryKey: false;
|
|
1002
|
+
isAutoincrement: false;
|
|
1003
|
+
hasRuntimeDefault: false;
|
|
1004
|
+
enumValues: [string, ...string[]];
|
|
1005
|
+
baseColumn: never;
|
|
1006
|
+
identity: undefined;
|
|
1007
|
+
generated: undefined;
|
|
1008
|
+
}, {}, {
|
|
1009
|
+
length: number | undefined;
|
|
1010
|
+
}>;
|
|
1011
|
+
instanceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1012
|
+
name: "instance_id";
|
|
1013
|
+
tableName: "node_providers";
|
|
1014
|
+
dataType: "string";
|
|
1015
|
+
columnType: "SQLiteText";
|
|
1016
|
+
data: string;
|
|
1017
|
+
driverParam: string;
|
|
1018
|
+
notNull: true;
|
|
1019
|
+
hasDefault: false;
|
|
1020
|
+
isPrimaryKey: false;
|
|
1021
|
+
isAutoincrement: false;
|
|
1022
|
+
hasRuntimeDefault: false;
|
|
1023
|
+
enumValues: [string, ...string[]];
|
|
1024
|
+
baseColumn: never;
|
|
1025
|
+
identity: undefined;
|
|
1026
|
+
generated: undefined;
|
|
1027
|
+
}, {}, {
|
|
1028
|
+
length: number | undefined;
|
|
1029
|
+
}>;
|
|
1030
|
+
capabilities: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1031
|
+
name: "capabilities";
|
|
1032
|
+
tableName: "node_providers";
|
|
1033
|
+
dataType: "json";
|
|
1034
|
+
columnType: "SQLiteTextJson";
|
|
1035
|
+
data: {
|
|
1036
|
+
name: string;
|
|
1037
|
+
kind?: string | undefined;
|
|
1038
|
+
global?: boolean | undefined;
|
|
1039
|
+
queue?: boolean | undefined;
|
|
1040
|
+
metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
|
|
1041
|
+
}[];
|
|
1042
|
+
driverParam: string;
|
|
1043
|
+
notNull: true;
|
|
1044
|
+
hasDefault: true;
|
|
1045
|
+
isPrimaryKey: false;
|
|
1046
|
+
isAutoincrement: false;
|
|
1047
|
+
hasRuntimeDefault: false;
|
|
1048
|
+
enumValues: undefined;
|
|
1049
|
+
baseColumn: never;
|
|
1050
|
+
identity: undefined;
|
|
1051
|
+
generated: undefined;
|
|
1052
|
+
}, {}, {
|
|
1053
|
+
$type: {
|
|
1054
|
+
name: string;
|
|
1055
|
+
kind?: string | undefined;
|
|
1056
|
+
global?: boolean | undefined;
|
|
1057
|
+
queue?: boolean | undefined;
|
|
1058
|
+
metadata?: Record<string, import("@relaycast/types").FleetWireJsonValue> | undefined;
|
|
1059
|
+
}[];
|
|
1060
|
+
}>;
|
|
1061
|
+
maxAgents: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1062
|
+
name: "max_agents";
|
|
1063
|
+
tableName: "node_providers";
|
|
1064
|
+
dataType: "number";
|
|
1065
|
+
columnType: "SQLiteInteger";
|
|
1066
|
+
data: number;
|
|
1067
|
+
driverParam: number;
|
|
1068
|
+
notNull: true;
|
|
1069
|
+
hasDefault: true;
|
|
1070
|
+
isPrimaryKey: false;
|
|
1071
|
+
isAutoincrement: false;
|
|
1072
|
+
hasRuntimeDefault: false;
|
|
1073
|
+
enumValues: undefined;
|
|
1074
|
+
baseColumn: never;
|
|
1075
|
+
identity: undefined;
|
|
1076
|
+
generated: undefined;
|
|
1077
|
+
}, {}, {}>;
|
|
1078
|
+
activeAgents: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1079
|
+
name: "active_agents";
|
|
1080
|
+
tableName: "node_providers";
|
|
1081
|
+
dataType: "number";
|
|
1082
|
+
columnType: "SQLiteInteger";
|
|
1083
|
+
data: number;
|
|
1084
|
+
driverParam: number;
|
|
1085
|
+
notNull: true;
|
|
1086
|
+
hasDefault: true;
|
|
1087
|
+
isPrimaryKey: false;
|
|
1088
|
+
isAutoincrement: false;
|
|
1089
|
+
hasRuntimeDefault: false;
|
|
1090
|
+
enumValues: undefined;
|
|
1091
|
+
baseColumn: never;
|
|
1092
|
+
identity: undefined;
|
|
1093
|
+
generated: undefined;
|
|
1094
|
+
}, {}, {}>;
|
|
1095
|
+
load: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1096
|
+
name: "load";
|
|
1097
|
+
tableName: "node_providers";
|
|
1098
|
+
dataType: "number";
|
|
1099
|
+
columnType: "SQLiteReal";
|
|
1100
|
+
data: number;
|
|
1101
|
+
driverParam: number;
|
|
1102
|
+
notNull: true;
|
|
1103
|
+
hasDefault: true;
|
|
1104
|
+
isPrimaryKey: false;
|
|
1105
|
+
isAutoincrement: false;
|
|
1106
|
+
hasRuntimeDefault: false;
|
|
1107
|
+
enumValues: undefined;
|
|
1108
|
+
baseColumn: never;
|
|
1109
|
+
identity: undefined;
|
|
1110
|
+
generated: undefined;
|
|
1111
|
+
}, {}, {}>;
|
|
1112
|
+
handlersLive: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1113
|
+
name: "handlers_live";
|
|
1114
|
+
tableName: "node_providers";
|
|
1115
|
+
dataType: "boolean";
|
|
1116
|
+
columnType: "SQLiteBoolean";
|
|
1117
|
+
data: boolean;
|
|
1118
|
+
driverParam: number;
|
|
1119
|
+
notNull: true;
|
|
1120
|
+
hasDefault: true;
|
|
1121
|
+
isPrimaryKey: false;
|
|
1122
|
+
isAutoincrement: false;
|
|
1123
|
+
hasRuntimeDefault: false;
|
|
1124
|
+
enumValues: undefined;
|
|
1125
|
+
baseColumn: never;
|
|
1126
|
+
identity: undefined;
|
|
1127
|
+
generated: undefined;
|
|
1128
|
+
}, {}, {}>;
|
|
1129
|
+
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1130
|
+
name: "status";
|
|
1131
|
+
tableName: "node_providers";
|
|
1132
|
+
dataType: "string";
|
|
1133
|
+
columnType: "SQLiteText";
|
|
1134
|
+
data: string;
|
|
1135
|
+
driverParam: string;
|
|
1136
|
+
notNull: true;
|
|
1137
|
+
hasDefault: true;
|
|
1138
|
+
isPrimaryKey: false;
|
|
1139
|
+
isAutoincrement: false;
|
|
1140
|
+
hasRuntimeDefault: false;
|
|
1141
|
+
enumValues: [string, ...string[]];
|
|
1142
|
+
baseColumn: never;
|
|
1143
|
+
identity: undefined;
|
|
1144
|
+
generated: undefined;
|
|
1145
|
+
}, {}, {
|
|
1146
|
+
length: number | undefined;
|
|
1147
|
+
}>;
|
|
1148
|
+
version: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1149
|
+
name: "version";
|
|
1150
|
+
tableName: "node_providers";
|
|
1151
|
+
dataType: "string";
|
|
1152
|
+
columnType: "SQLiteText";
|
|
1153
|
+
data: string;
|
|
1154
|
+
driverParam: string;
|
|
1155
|
+
notNull: true;
|
|
1156
|
+
hasDefault: true;
|
|
1157
|
+
isPrimaryKey: false;
|
|
1158
|
+
isAutoincrement: false;
|
|
1159
|
+
hasRuntimeDefault: false;
|
|
1160
|
+
enumValues: [string, ...string[]];
|
|
1161
|
+
baseColumn: never;
|
|
1162
|
+
identity: undefined;
|
|
1163
|
+
generated: undefined;
|
|
1164
|
+
}, {}, {
|
|
1165
|
+
length: number | undefined;
|
|
1166
|
+
}>;
|
|
1167
|
+
lastHeartbeatAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1168
|
+
name: "last_heartbeat_at";
|
|
1169
|
+
tableName: "node_providers";
|
|
1170
|
+
dataType: "date";
|
|
1171
|
+
columnType: "SQLiteTimestamp";
|
|
1172
|
+
data: Date;
|
|
1173
|
+
driverParam: number;
|
|
1174
|
+
notNull: false;
|
|
1175
|
+
hasDefault: false;
|
|
1176
|
+
isPrimaryKey: false;
|
|
1177
|
+
isAutoincrement: false;
|
|
1178
|
+
hasRuntimeDefault: false;
|
|
1179
|
+
enumValues: undefined;
|
|
1180
|
+
baseColumn: never;
|
|
1181
|
+
identity: undefined;
|
|
1182
|
+
generated: undefined;
|
|
1183
|
+
}, {}, {}>;
|
|
1184
|
+
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1185
|
+
name: "created_at";
|
|
1186
|
+
tableName: "node_providers";
|
|
1187
|
+
dataType: "date";
|
|
1188
|
+
columnType: "SQLiteTimestamp";
|
|
1189
|
+
data: Date;
|
|
1190
|
+
driverParam: number;
|
|
1191
|
+
notNull: true;
|
|
1192
|
+
hasDefault: true;
|
|
1193
|
+
isPrimaryKey: false;
|
|
1194
|
+
isAutoincrement: false;
|
|
1195
|
+
hasRuntimeDefault: false;
|
|
1196
|
+
enumValues: undefined;
|
|
1197
|
+
baseColumn: never;
|
|
1198
|
+
identity: undefined;
|
|
1199
|
+
generated: undefined;
|
|
1200
|
+
}, {}, {}>;
|
|
1201
|
+
};
|
|
1202
|
+
dialect: "sqlite";
|
|
1203
|
+
}>;
|
|
881
1204
|
export declare const observerTokens: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
882
1205
|
name: "observer_tokens";
|
|
883
1206
|
schema: undefined;
|
|
@@ -4819,6 +5142,59 @@ export declare const actions: import("drizzle-orm/sqlite-core").SQLiteTableWithC
|
|
|
4819
5142
|
}, {}, {
|
|
4820
5143
|
length: number | undefined;
|
|
4821
5144
|
}>;
|
|
5145
|
+
handlerProvider: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
5146
|
+
name: "handler_provider";
|
|
5147
|
+
tableName: "actions";
|
|
5148
|
+
dataType: "string";
|
|
5149
|
+
columnType: "SQLiteText";
|
|
5150
|
+
data: string;
|
|
5151
|
+
driverParam: string;
|
|
5152
|
+
notNull: false;
|
|
5153
|
+
hasDefault: false;
|
|
5154
|
+
isPrimaryKey: false;
|
|
5155
|
+
isAutoincrement: false;
|
|
5156
|
+
hasRuntimeDefault: false;
|
|
5157
|
+
enumValues: [string, ...string[]];
|
|
5158
|
+
baseColumn: never;
|
|
5159
|
+
identity: undefined;
|
|
5160
|
+
generated: undefined;
|
|
5161
|
+
}, {}, {
|
|
5162
|
+
length: number | undefined;
|
|
5163
|
+
}>;
|
|
5164
|
+
isGlobal: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
5165
|
+
name: "is_global";
|
|
5166
|
+
tableName: "actions";
|
|
5167
|
+
dataType: "boolean";
|
|
5168
|
+
columnType: "SQLiteBoolean";
|
|
5169
|
+
data: boolean;
|
|
5170
|
+
driverParam: number;
|
|
5171
|
+
notNull: true;
|
|
5172
|
+
hasDefault: true;
|
|
5173
|
+
isPrimaryKey: false;
|
|
5174
|
+
isAutoincrement: false;
|
|
5175
|
+
hasRuntimeDefault: false;
|
|
5176
|
+
enumValues: undefined;
|
|
5177
|
+
baseColumn: never;
|
|
5178
|
+
identity: undefined;
|
|
5179
|
+
generated: undefined;
|
|
5180
|
+
}, {}, {}>;
|
|
5181
|
+
queue: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
5182
|
+
name: "queue";
|
|
5183
|
+
tableName: "actions";
|
|
5184
|
+
dataType: "boolean";
|
|
5185
|
+
columnType: "SQLiteBoolean";
|
|
5186
|
+
data: boolean;
|
|
5187
|
+
driverParam: number;
|
|
5188
|
+
notNull: true;
|
|
5189
|
+
hasDefault: true;
|
|
5190
|
+
isPrimaryKey: false;
|
|
5191
|
+
isAutoincrement: false;
|
|
5192
|
+
hasRuntimeDefault: false;
|
|
5193
|
+
enumValues: undefined;
|
|
5194
|
+
baseColumn: never;
|
|
5195
|
+
identity: undefined;
|
|
5196
|
+
generated: undefined;
|
|
5197
|
+
}, {}, {}>;
|
|
4822
5198
|
inputSchema: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
4823
5199
|
name: "input_schema";
|
|
4824
5200
|
tableName: "actions";
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAKH,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.js
CHANGED
|
@@ -28,6 +28,10 @@ export const agents = sqliteTable('agents', {
|
|
|
28
28
|
capabilities: text('capabilities', { mode: 'json' }).$type(),
|
|
29
29
|
locationType: text('location_type').notNull().default('self_connected'),
|
|
30
30
|
locationNodeId: text('location_node_id').references(() => nodes.id, { onDelete: 'set null' }),
|
|
31
|
+
// The node provider whose connection registered this agent. `deliver` frames
|
|
32
|
+
// route to that provider's socket. Defaults to the synthetic `default`
|
|
33
|
+
// provider (the broker) for agents registered before the provider model.
|
|
34
|
+
providerName: text('provider_name').notNull().default('default'),
|
|
31
35
|
resumable: integer('resumable', { mode: 'boolean' }).notNull().default(false),
|
|
32
36
|
sessionRef: text('session_ref'),
|
|
33
37
|
originNodeId: text('origin_node_id').references(() => nodes.id, { onDelete: 'set null' }),
|
|
@@ -50,6 +54,9 @@ export const nodes = sqliteTable('nodes', {
|
|
|
50
54
|
.references(() => workspaces.id, { onDelete: 'cascade' }),
|
|
51
55
|
name: text('name').notNull(),
|
|
52
56
|
tokenHash: text('token_hash').notNull().unique(),
|
|
57
|
+
// Physical machine grouping in fleet views and a placement input; never a
|
|
58
|
+
// capability scope. Null until a provider reports it on register.
|
|
59
|
+
machineId: text('machine_id'),
|
|
53
60
|
kind: text('kind').notNull().default('ws'),
|
|
54
61
|
role: text('role').notNull().default('broker'),
|
|
55
62
|
deliveryAdapter: text('delivery_adapter').notNull().default('ws.node.v1'),
|
|
@@ -73,6 +80,40 @@ export const nodes = sqliteTable('nodes', {
|
|
|
73
80
|
index('idx_nodes_status').on(table.workspaceId, table.status),
|
|
74
81
|
]);
|
|
75
82
|
// ============================================
|
|
83
|
+
// Node Providers
|
|
84
|
+
// ============================================
|
|
85
|
+
/**
|
|
86
|
+
* A process attached to a broker-role node, keyed by provider `name`. Each
|
|
87
|
+
* provider registers a subset of the node's capabilities and executes their
|
|
88
|
+
* invokes over its own socket. `instanceId` is the connection epoch. Capability
|
|
89
|
+
* sets persist here so an offline node still displays its full manifest, and the
|
|
90
|
+
* per-provider liveness/capacity/load columns are aggregated onto the `nodes`
|
|
91
|
+
* row. Implicit direct nodes (per self-connected agent) do not use this table.
|
|
92
|
+
*/
|
|
93
|
+
export const nodeProviders = sqliteTable('node_providers', {
|
|
94
|
+
id: text('id').primaryKey(),
|
|
95
|
+
workspaceId: text('workspace_id')
|
|
96
|
+
.notNull()
|
|
97
|
+
.references(() => workspaces.id, { onDelete: 'cascade' }),
|
|
98
|
+
nodeId: text('node_id')
|
|
99
|
+
.notNull()
|
|
100
|
+
.references(() => nodes.id, { onDelete: 'cascade' }),
|
|
101
|
+
name: text('name').notNull(),
|
|
102
|
+
instanceId: text('instance_id').notNull(),
|
|
103
|
+
capabilities: text('capabilities', { mode: 'json' }).$type().notNull().default([]),
|
|
104
|
+
maxAgents: integer('max_agents').notNull().default(0),
|
|
105
|
+
activeAgents: integer('active_agents').notNull().default(0),
|
|
106
|
+
load: real('load').notNull().default(0),
|
|
107
|
+
handlersLive: integer('handlers_live', { mode: 'boolean' }).notNull().default(false),
|
|
108
|
+
status: text('status').notNull().default('offline'),
|
|
109
|
+
version: text('version').notNull().default('unknown'),
|
|
110
|
+
lastHeartbeatAt: integer('last_heartbeat_at', { mode: 'timestamp' }),
|
|
111
|
+
createdAt: integer('created_at', { mode: 'timestamp' }).notNull().default(sql `(unixepoch())`),
|
|
112
|
+
}, (table) => [
|
|
113
|
+
uniqueIndex('node_providers_node_name_unique').on(table.workspaceId, table.nodeId, table.name),
|
|
114
|
+
index('idx_node_providers_node').on(table.workspaceId, table.nodeId),
|
|
115
|
+
]);
|
|
116
|
+
// ============================================
|
|
76
117
|
// Observer Tokens
|
|
77
118
|
// ============================================
|
|
78
119
|
export const observerTokens = sqliteTable('observer_tokens', {
|
|
@@ -565,13 +606,30 @@ export const actions = sqliteTable('actions', {
|
|
|
565
606
|
handlerAgentId: text('handler_agent_id')
|
|
566
607
|
.references(() => agents.id, { onDelete: 'cascade' }),
|
|
567
608
|
handlerNodeId: text('handler_node_id').references(() => nodes.id, { onDelete: 'cascade' }),
|
|
609
|
+
// The provider (within handlerNodeId) that registered this action; dispatch
|
|
610
|
+
// resolves capability -> provider -> socket through it. Null for agent-hosted
|
|
611
|
+
// actions.
|
|
612
|
+
handlerProvider: text('handler_provider'),
|
|
613
|
+
// A node-scoped action may claim the workspace-global name so it resolves
|
|
614
|
+
// through `POST /v1/actions/:name/invoke`. At most one global alias per name.
|
|
615
|
+
isGlobal: integer('is_global', { mode: 'boolean' }).notNull().default(false),
|
|
616
|
+
// When true, an invoke whose provider is offline queues instead of failing
|
|
617
|
+
// fast (the per-provider offline queue).
|
|
618
|
+
queue: integer('queue', { mode: 'boolean' }).notNull().default(false),
|
|
568
619
|
inputSchema: text('input_schema', { mode: 'json' }).$type().default({}),
|
|
569
620
|
outputSchema: text('output_schema', { mode: 'json' }).$type().default({}),
|
|
570
621
|
availableTo: text('available_to', { mode: 'json' }).$type(),
|
|
571
622
|
isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),
|
|
572
623
|
createdAt: integer('created_at', { mode: 'timestamp' }).notNull().default(sql `(unixepoch())`),
|
|
573
624
|
}, (table) => [
|
|
574
|
-
|
|
625
|
+
// Node-scoped uniqueness: two nodes may both define `run-etl`. SQLite treats
|
|
626
|
+
// NULL handlerNodeId (agent-hosted) rows as distinct here, so agent-hosted
|
|
627
|
+
// uniqueness is enforced by the partial index below.
|
|
628
|
+
uniqueIndex('actions_workspace_node_name_unique').on(table.workspaceId, table.handlerNodeId, table.name),
|
|
629
|
+
// Agent-hosted actions (no node) keep one action per workspace name.
|
|
630
|
+
uniqueIndex('actions_workspace_agent_name_unique').on(table.workspaceId, table.name).where(sql `${table.handlerNodeId} IS NULL`),
|
|
631
|
+
// At most one node action may claim a given workspace-global alias.
|
|
632
|
+
uniqueIndex('actions_workspace_global_name_unique').on(table.workspaceId, table.name).where(sql `${table.isGlobal} = 1`),
|
|
575
633
|
index('idx_actions_workspace').on(table.workspaceId),
|
|
576
634
|
index('idx_actions_handler').on(table.handlerAgentId),
|
|
577
635
|
index('idx_actions_node_handler').on(table.handlerNodeId),
|