@naisys/hub 3.0.0-beta.29 → 3.0.0-beta.31
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentPeekRequestSchema, AgentStartRequestSchema, AgentStopRequestSchema, HubEvents, } from "@naisys/hub-protocol";
|
|
1
|
+
import { AgentPeekRequestSchema, AgentRunCommandRequestSchema, AgentRunPauseRequestSchema, AgentStartRequestSchema, AgentStopRequestSchema, HubEvents, } from "@naisys/hub-protocol";
|
|
2
2
|
/** Handles agent_start requests by routing them to the least-loaded eligible host */
|
|
3
3
|
export function createHubAgentService(naisysServer, { hubDb }, logService, heartbeatService, sendMailService, hostRegistrar) {
|
|
4
4
|
/** Find the least-loaded eligible host for a given user */
|
|
@@ -199,6 +199,93 @@ export function createHubAgentService(naisysServer, { hubDb }, logService, heart
|
|
|
199
199
|
ack({ success: false, error: String(error) });
|
|
200
200
|
}
|
|
201
201
|
});
|
|
202
|
+
function registerRunPauseHandler(event) {
|
|
203
|
+
naisysServer.registerEvent(event, (hostId, data, ack) => {
|
|
204
|
+
try {
|
|
205
|
+
const parsed = AgentRunPauseRequestSchema.parse(data);
|
|
206
|
+
const targetHostIds = heartbeatService.findHostsForAgent(parsed.userId);
|
|
207
|
+
if (targetHostIds.length === 0) {
|
|
208
|
+
ack({
|
|
209
|
+
success: false,
|
|
210
|
+
error: `Agent ${parsed.userId} is not running on any known host`,
|
|
211
|
+
});
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
let acked = false;
|
|
215
|
+
let sendFailures = 0;
|
|
216
|
+
for (const targetHostId of targetHostIds) {
|
|
217
|
+
const sent = naisysServer.sendMessage(targetHostId, event, {
|
|
218
|
+
userId: parsed.userId,
|
|
219
|
+
runId: parsed.runId,
|
|
220
|
+
sessionId: parsed.sessionId,
|
|
221
|
+
sourceHostId: hostId,
|
|
222
|
+
}, (response) => {
|
|
223
|
+
if (!acked) {
|
|
224
|
+
acked = true;
|
|
225
|
+
ack(response);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
if (!sent) {
|
|
229
|
+
sendFailures++;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (sendFailures === targetHostIds.length && !acked) {
|
|
233
|
+
ack({
|
|
234
|
+
success: false,
|
|
235
|
+
error: `No target hosts are connected`,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
logService.error(`[Hub:Agents] ${event} error from host ${hostId}: ${error}`);
|
|
241
|
+
ack({ success: false, error: String(error) });
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
registerRunPauseHandler(HubEvents.AGENT_RUN_PAUSE);
|
|
246
|
+
registerRunPauseHandler(HubEvents.AGENT_RUN_RESUME);
|
|
247
|
+
naisysServer.registerEvent(HubEvents.AGENT_RUN_COMMAND, (hostId, data, ack) => {
|
|
248
|
+
try {
|
|
249
|
+
const parsed = AgentRunCommandRequestSchema.parse(data);
|
|
250
|
+
const targetHostIds = heartbeatService.findHostsForAgent(parsed.userId);
|
|
251
|
+
if (targetHostIds.length === 0) {
|
|
252
|
+
ack({
|
|
253
|
+
success: false,
|
|
254
|
+
error: `Agent ${parsed.userId} is not running on any known host`,
|
|
255
|
+
});
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
let acked = false;
|
|
259
|
+
let sendFailures = 0;
|
|
260
|
+
for (const targetHostId of targetHostIds) {
|
|
261
|
+
const sent = naisysServer.sendMessage(targetHostId, HubEvents.AGENT_RUN_COMMAND, {
|
|
262
|
+
userId: parsed.userId,
|
|
263
|
+
runId: parsed.runId,
|
|
264
|
+
sessionId: parsed.sessionId,
|
|
265
|
+
command: parsed.command,
|
|
266
|
+
sourceHostId: hostId,
|
|
267
|
+
}, (response) => {
|
|
268
|
+
if (!acked) {
|
|
269
|
+
acked = true;
|
|
270
|
+
ack(response);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
if (!sent) {
|
|
274
|
+
sendFailures++;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (sendFailures === targetHostIds.length && !acked) {
|
|
278
|
+
ack({
|
|
279
|
+
success: false,
|
|
280
|
+
error: `No target hosts are connected`,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
logService.error(`[Hub:Agents] ${HubEvents.AGENT_RUN_COMMAND} error from host ${hostId}: ${error}`);
|
|
286
|
+
ack({ success: false, error: String(error) });
|
|
287
|
+
}
|
|
288
|
+
});
|
|
202
289
|
naisysServer.registerEvent(HubEvents.AGENT_PEEK, (hostId, data, ack) => {
|
|
203
290
|
try {
|
|
204
291
|
const parsed = AgentPeekRequestSchema.parse(data);
|
|
@@ -54,6 +54,8 @@ export function createHubHeartbeatService(naisysServer, { hubDb }, logService) {
|
|
|
54
54
|
runId: session.runId,
|
|
55
55
|
sessionId: session.sessionId,
|
|
56
56
|
lastActive: now,
|
|
57
|
+
paused: session.paused,
|
|
58
|
+
state: session.state,
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
61
|
hostActiveSessions.set(hostId, sessionMap);
|
|
@@ -101,6 +103,8 @@ export function createHubHeartbeatService(naisysServer, { hubDb }, logService) {
|
|
|
101
103
|
runId: info.runId,
|
|
102
104
|
sessionId: info.sessionId,
|
|
103
105
|
lastActive: info.lastActive,
|
|
106
|
+
paused: info.paused,
|
|
107
|
+
state: info.state,
|
|
104
108
|
});
|
|
105
109
|
}
|
|
106
110
|
}
|
package/dist/naisysHub.js
CHANGED
|
@@ -122,7 +122,11 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
|
122
122
|
type: "fields",
|
|
123
123
|
comment: "Hub server configuration",
|
|
124
124
|
fields: [
|
|
125
|
-
{
|
|
125
|
+
{
|
|
126
|
+
key: "NAISYS_FOLDER",
|
|
127
|
+
label: "NAISYS Data Folder",
|
|
128
|
+
defaultValue: cwdWithTilde(),
|
|
129
|
+
},
|
|
126
130
|
{ key: "SERVER_PORT", label: "Server Port" },
|
|
127
131
|
],
|
|
128
132
|
},
|
|
@@ -81,10 +81,15 @@ export function createNaisysServer(nsp, initialHubAccessKey, logService, hostReg
|
|
|
81
81
|
const result = hostType === "supervisor"
|
|
82
82
|
? await hostRegistrar.registerSupervisor(hostName, socket.handshake.address, resolvedVersion)
|
|
83
83
|
: await hostRegistrar.registerNaisysClient(hostName, machineId, socket.handshake.address, resolvedVersion, environment);
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
// Supersede any existing naisys connection for this host (supervisors may have multiple).
|
|
85
|
+
// The disconnect handler is identity-aware, so the old socket's cleanup
|
|
86
|
+
// will not wipe the new connection once it registers.
|
|
87
|
+
if (hostType === "naisys") {
|
|
88
|
+
const existing = naisysConnections.get(result.hostId);
|
|
89
|
+
if (existing) {
|
|
90
|
+
logService.log(`[Hub] Superseding existing connection for host '${result.hostName}' — disconnecting old socket`);
|
|
91
|
+
existing.disconnect();
|
|
92
|
+
}
|
|
88
93
|
}
|
|
89
94
|
socket.data.hostId = result.hostId;
|
|
90
95
|
socket.data.hostName = result.hostName;
|
|
@@ -122,15 +127,23 @@ export function createNaisysServer(nsp, initialHubAccessKey, logService, hostReg
|
|
|
122
127
|
logService.log(`[Hub] Active connections: naisys=${naisysConnections.size}, supervisors=${supervisorConnections.length}`);
|
|
123
128
|
// Clean up on disconnect
|
|
124
129
|
socket.on("disconnect", () => {
|
|
130
|
+
let superseded = false;
|
|
125
131
|
if (hostType === "supervisor") {
|
|
126
132
|
const idx = supervisorConnections.indexOf(connection);
|
|
127
133
|
if (idx !== -1)
|
|
128
134
|
supervisorConnections.splice(idx, 1);
|
|
129
135
|
}
|
|
130
|
-
else {
|
|
136
|
+
else if (naisysConnections.get(hostId) === connection) {
|
|
131
137
|
naisysConnections.delete(hostId);
|
|
132
138
|
}
|
|
133
|
-
|
|
139
|
+
else {
|
|
140
|
+
// A newer connection replaced us; skip the disconnect broadcast so
|
|
141
|
+
// downstream services don't clear state belonging to the live socket.
|
|
142
|
+
superseded = true;
|
|
143
|
+
}
|
|
144
|
+
if (!superseded) {
|
|
145
|
+
raiseEvent("client_disconnected", hostId);
|
|
146
|
+
}
|
|
134
147
|
logService.log(`[Hub] Active connections: naisys=${naisysConnections.size}, supervisors=${supervisorConnections.length}`);
|
|
135
148
|
});
|
|
136
149
|
});
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naisys/hub",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.31",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@naisys/hub",
|
|
9
|
-
"version": "3.0.0-beta.
|
|
9
|
+
"version": "3.0.0-beta.31",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@naisys/common": "3.0.0-beta.
|
|
12
|
-
"@naisys/common-node": "3.0.0-beta.
|
|
13
|
-
"@naisys/hub-database": "3.0.0-beta.
|
|
14
|
-
"@naisys/hub-protocol": "3.0.0-beta.
|
|
11
|
+
"@naisys/common": "3.0.0-beta.31",
|
|
12
|
+
"@naisys/common-node": "3.0.0-beta.31",
|
|
13
|
+
"@naisys/hub-database": "3.0.0-beta.31",
|
|
14
|
+
"@naisys/hub-protocol": "3.0.0-beta.31",
|
|
15
15
|
"commander": "^14.0.3",
|
|
16
16
|
"dotenv": "^17.3.1",
|
|
17
17
|
"fastify": "^5.8.2",
|
|
@@ -20,16 +20,11 @@
|
|
|
20
20
|
"bin": {
|
|
21
21
|
"naisys-hub": "bin/naisys-hub.js"
|
|
22
22
|
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@types/node": "^25.5.0",
|
|
25
|
-
"tsx": "^4.21.0",
|
|
26
|
-
"typescript": "^5.9.3"
|
|
27
|
-
},
|
|
28
23
|
"engines": {
|
|
29
24
|
"node": ">=22.0.0"
|
|
30
25
|
},
|
|
31
26
|
"peerDependencies": {
|
|
32
|
-
"@naisys/supervisor": "3.0.0-beta.
|
|
27
|
+
"@naisys/supervisor": "3.0.0-beta.31"
|
|
33
28
|
},
|
|
34
29
|
"peerDependenciesMeta": {
|
|
35
30
|
"@naisys/supervisor": {
|
|
@@ -194,32 +189,32 @@
|
|
|
194
189
|
"license": "MIT"
|
|
195
190
|
},
|
|
196
191
|
"node_modules/@naisys/common": {
|
|
197
|
-
"version": "3.0.0-beta.
|
|
198
|
-
"resolved": "https://registry.npmjs.org/@naisys/common/-/common-3.0.0-beta.
|
|
199
|
-
"integrity": "sha512-
|
|
192
|
+
"version": "3.0.0-beta.31",
|
|
193
|
+
"resolved": "https://registry.npmjs.org/@naisys/common/-/common-3.0.0-beta.31.tgz",
|
|
194
|
+
"integrity": "sha512-Kh7ScO9RW0UJl+OZdpy/AhGQzxkwyC96GnPQ26taY5cJD0FYgEGjCO7cVp2e+RVJRiF8suM5ZBWxjAftFsfjGg==",
|
|
200
195
|
"dependencies": {
|
|
201
196
|
"semver": "^7.7.4",
|
|
202
197
|
"zod": "^4.3.6"
|
|
203
198
|
}
|
|
204
199
|
},
|
|
205
200
|
"node_modules/@naisys/common-node": {
|
|
206
|
-
"version": "3.0.0-beta.
|
|
207
|
-
"resolved": "https://registry.npmjs.org/@naisys/common-node/-/common-node-3.0.0-beta.
|
|
208
|
-
"integrity": "sha512-
|
|
201
|
+
"version": "3.0.0-beta.31",
|
|
202
|
+
"resolved": "https://registry.npmjs.org/@naisys/common-node/-/common-node-3.0.0-beta.31.tgz",
|
|
203
|
+
"integrity": "sha512-BdlnfP31LTjkko66s0RzQ2QR/0PevXE/ACxAGvcf+hyt1uHcM6xHtH/Sb34xNicqp+5g2pPAPKJx232QSAtPJg==",
|
|
209
204
|
"dependencies": {
|
|
210
|
-
"@naisys/common": "3.0.0-beta.
|
|
205
|
+
"@naisys/common": "3.0.0-beta.31",
|
|
211
206
|
"better-sqlite3": "^12.6.2",
|
|
212
207
|
"js-yaml": "^4.1.1",
|
|
213
208
|
"pino": "^10.3.1"
|
|
214
209
|
}
|
|
215
210
|
},
|
|
216
211
|
"node_modules/@naisys/hub-database": {
|
|
217
|
-
"version": "3.0.0-beta.
|
|
218
|
-
"resolved": "https://registry.npmjs.org/@naisys/hub-database/-/hub-database-3.0.0-beta.
|
|
219
|
-
"integrity": "sha512-
|
|
212
|
+
"version": "3.0.0-beta.31",
|
|
213
|
+
"resolved": "https://registry.npmjs.org/@naisys/hub-database/-/hub-database-3.0.0-beta.31.tgz",
|
|
214
|
+
"integrity": "sha512-L8IR8v9YPVpmd3JMGCDWEBC/KXZEb/LFGTaIKRmhSf/ffhFo6aXDPar1TxSIhIV2JaEZnSLOkByH9WlKD7AlTg==",
|
|
220
215
|
"dependencies": {
|
|
221
|
-
"@naisys/common": "3.0.0-beta.
|
|
222
|
-
"@naisys/common-node": "3.0.0-beta.
|
|
216
|
+
"@naisys/common": "3.0.0-beta.31",
|
|
217
|
+
"@naisys/common-node": "3.0.0-beta.31",
|
|
223
218
|
"@prisma/adapter-better-sqlite3": "^7.5.0",
|
|
224
219
|
"@prisma/client": "^7.5.0",
|
|
225
220
|
"better-sqlite3": "^12.6.2",
|
|
@@ -227,11 +222,11 @@
|
|
|
227
222
|
}
|
|
228
223
|
},
|
|
229
224
|
"node_modules/@naisys/hub-protocol": {
|
|
230
|
-
"version": "3.0.0-beta.
|
|
231
|
-
"resolved": "https://registry.npmjs.org/@naisys/hub-protocol/-/hub-protocol-3.0.0-beta.
|
|
232
|
-
"integrity": "sha512
|
|
225
|
+
"version": "3.0.0-beta.31",
|
|
226
|
+
"resolved": "https://registry.npmjs.org/@naisys/hub-protocol/-/hub-protocol-3.0.0-beta.31.tgz",
|
|
227
|
+
"integrity": "sha512-+ckTLAze6a8618uM+zcCouuCAUWcf5f1+qqMCHeEFldXc4PYr6GCmTm5Z+cwOaq9HqyeaBWir9xkgwyz4Cus/A==",
|
|
233
228
|
"dependencies": {
|
|
234
|
-
"@naisys/common": "3.0.0-beta.
|
|
229
|
+
"@naisys/common": "3.0.0-beta.31",
|
|
235
230
|
"zod": "^4.3.6"
|
|
236
231
|
}
|
|
237
232
|
},
|
|
@@ -1151,152 +1146,6 @@
|
|
|
1151
1146
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
1152
1147
|
}
|
|
1153
1148
|
},
|
|
1154
|
-
"node_modules/esbuild": {
|
|
1155
|
-
"version": "0.27.7",
|
|
1156
|
-
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
|
|
1157
|
-
"integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
|
|
1158
|
-
"dev": true,
|
|
1159
|
-
"hasInstallScript": true,
|
|
1160
|
-
"license": "MIT",
|
|
1161
|
-
"bin": {
|
|
1162
|
-
"esbuild": "bin/esbuild"
|
|
1163
|
-
},
|
|
1164
|
-
"engines": {
|
|
1165
|
-
"node": ">=18"
|
|
1166
|
-
},
|
|
1167
|
-
"optionalDependencies": {
|
|
1168
|
-
"@esbuild/aix-ppc64": "0.27.7",
|
|
1169
|
-
"@esbuild/android-arm": "0.27.7",
|
|
1170
|
-
"@esbuild/android-arm64": "0.27.7",
|
|
1171
|
-
"@esbuild/android-x64": "0.27.7",
|
|
1172
|
-
"@esbuild/darwin-arm64": "0.27.7",
|
|
1173
|
-
"@esbuild/darwin-x64": "0.27.7",
|
|
1174
|
-
"@esbuild/freebsd-arm64": "0.27.7",
|
|
1175
|
-
"@esbuild/freebsd-x64": "0.27.7",
|
|
1176
|
-
"@esbuild/linux-arm": "0.27.7",
|
|
1177
|
-
"@esbuild/linux-arm64": "0.27.7",
|
|
1178
|
-
"@esbuild/linux-ia32": "0.27.7",
|
|
1179
|
-
"@esbuild/linux-loong64": "0.27.7",
|
|
1180
|
-
"@esbuild/linux-mips64el": "0.27.7",
|
|
1181
|
-
"@esbuild/linux-ppc64": "0.27.7",
|
|
1182
|
-
"@esbuild/linux-riscv64": "0.27.7",
|
|
1183
|
-
"@esbuild/linux-s390x": "0.27.7",
|
|
1184
|
-
"@esbuild/linux-x64": "0.27.7",
|
|
1185
|
-
"@esbuild/netbsd-arm64": "0.27.7",
|
|
1186
|
-
"@esbuild/netbsd-x64": "0.27.7",
|
|
1187
|
-
"@esbuild/openbsd-arm64": "0.27.7",
|
|
1188
|
-
"@esbuild/openbsd-x64": "0.27.7",
|
|
1189
|
-
"@esbuild/openharmony-arm64": "0.27.7",
|
|
1190
|
-
"@esbuild/sunos-x64": "0.27.7",
|
|
1191
|
-
"@esbuild/win32-arm64": "0.27.7",
|
|
1192
|
-
"@esbuild/win32-ia32": "0.27.7",
|
|
1193
|
-
"@esbuild/win32-x64": "0.27.7"
|
|
1194
|
-
}
|
|
1195
|
-
},
|
|
1196
|
-
"node_modules/esbuild/node_modules/@esbuild/aix-ppc64": {
|
|
1197
|
-
"dev": true,
|
|
1198
|
-
"optional": true
|
|
1199
|
-
},
|
|
1200
|
-
"node_modules/esbuild/node_modules/@esbuild/android-arm": {
|
|
1201
|
-
"dev": true,
|
|
1202
|
-
"optional": true
|
|
1203
|
-
},
|
|
1204
|
-
"node_modules/esbuild/node_modules/@esbuild/android-arm64": {
|
|
1205
|
-
"dev": true,
|
|
1206
|
-
"optional": true
|
|
1207
|
-
},
|
|
1208
|
-
"node_modules/esbuild/node_modules/@esbuild/android-x64": {
|
|
1209
|
-
"dev": true,
|
|
1210
|
-
"optional": true
|
|
1211
|
-
},
|
|
1212
|
-
"node_modules/esbuild/node_modules/@esbuild/darwin-arm64": {
|
|
1213
|
-
"dev": true,
|
|
1214
|
-
"optional": true
|
|
1215
|
-
},
|
|
1216
|
-
"node_modules/esbuild/node_modules/@esbuild/darwin-x64": {
|
|
1217
|
-
"dev": true,
|
|
1218
|
-
"optional": true
|
|
1219
|
-
},
|
|
1220
|
-
"node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": {
|
|
1221
|
-
"dev": true,
|
|
1222
|
-
"optional": true
|
|
1223
|
-
},
|
|
1224
|
-
"node_modules/esbuild/node_modules/@esbuild/freebsd-x64": {
|
|
1225
|
-
"dev": true,
|
|
1226
|
-
"optional": true
|
|
1227
|
-
},
|
|
1228
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-arm": {
|
|
1229
|
-
"dev": true,
|
|
1230
|
-
"optional": true
|
|
1231
|
-
},
|
|
1232
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-arm64": {
|
|
1233
|
-
"dev": true,
|
|
1234
|
-
"optional": true
|
|
1235
|
-
},
|
|
1236
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-ia32": {
|
|
1237
|
-
"dev": true,
|
|
1238
|
-
"optional": true
|
|
1239
|
-
},
|
|
1240
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-loong64": {
|
|
1241
|
-
"dev": true,
|
|
1242
|
-
"optional": true
|
|
1243
|
-
},
|
|
1244
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-mips64el": {
|
|
1245
|
-
"dev": true,
|
|
1246
|
-
"optional": true
|
|
1247
|
-
},
|
|
1248
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-ppc64": {
|
|
1249
|
-
"dev": true,
|
|
1250
|
-
"optional": true
|
|
1251
|
-
},
|
|
1252
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-riscv64": {
|
|
1253
|
-
"dev": true,
|
|
1254
|
-
"optional": true
|
|
1255
|
-
},
|
|
1256
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-s390x": {
|
|
1257
|
-
"dev": true,
|
|
1258
|
-
"optional": true
|
|
1259
|
-
},
|
|
1260
|
-
"node_modules/esbuild/node_modules/@esbuild/linux-x64": {
|
|
1261
|
-
"dev": true,
|
|
1262
|
-
"optional": true
|
|
1263
|
-
},
|
|
1264
|
-
"node_modules/esbuild/node_modules/@esbuild/netbsd-arm64": {
|
|
1265
|
-
"dev": true,
|
|
1266
|
-
"optional": true
|
|
1267
|
-
},
|
|
1268
|
-
"node_modules/esbuild/node_modules/@esbuild/netbsd-x64": {
|
|
1269
|
-
"dev": true,
|
|
1270
|
-
"optional": true
|
|
1271
|
-
},
|
|
1272
|
-
"node_modules/esbuild/node_modules/@esbuild/openbsd-arm64": {
|
|
1273
|
-
"dev": true,
|
|
1274
|
-
"optional": true
|
|
1275
|
-
},
|
|
1276
|
-
"node_modules/esbuild/node_modules/@esbuild/openbsd-x64": {
|
|
1277
|
-
"dev": true,
|
|
1278
|
-
"optional": true
|
|
1279
|
-
},
|
|
1280
|
-
"node_modules/esbuild/node_modules/@esbuild/openharmony-arm64": {
|
|
1281
|
-
"dev": true,
|
|
1282
|
-
"optional": true
|
|
1283
|
-
},
|
|
1284
|
-
"node_modules/esbuild/node_modules/@esbuild/sunos-x64": {
|
|
1285
|
-
"dev": true,
|
|
1286
|
-
"optional": true
|
|
1287
|
-
},
|
|
1288
|
-
"node_modules/esbuild/node_modules/@esbuild/win32-arm64": {
|
|
1289
|
-
"dev": true,
|
|
1290
|
-
"optional": true
|
|
1291
|
-
},
|
|
1292
|
-
"node_modules/esbuild/node_modules/@esbuild/win32-ia32": {
|
|
1293
|
-
"dev": true,
|
|
1294
|
-
"optional": true
|
|
1295
|
-
},
|
|
1296
|
-
"node_modules/esbuild/node_modules/@esbuild/win32-x64": {
|
|
1297
|
-
"dev": true,
|
|
1298
|
-
"optional": true
|
|
1299
|
-
},
|
|
1300
1149
|
"node_modules/expand-template": {
|
|
1301
1150
|
"version": "2.0.3",
|
|
1302
1151
|
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
|
@@ -1479,21 +1328,6 @@
|
|
|
1479
1328
|
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
|
1480
1329
|
"license": "MIT"
|
|
1481
1330
|
},
|
|
1482
|
-
"node_modules/fsevents": {
|
|
1483
|
-
"version": "2.3.3",
|
|
1484
|
-
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
1485
|
-
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
1486
|
-
"dev": true,
|
|
1487
|
-
"hasInstallScript": true,
|
|
1488
|
-
"license": "MIT",
|
|
1489
|
-
"optional": true,
|
|
1490
|
-
"os": [
|
|
1491
|
-
"darwin"
|
|
1492
|
-
],
|
|
1493
|
-
"engines": {
|
|
1494
|
-
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
1495
|
-
}
|
|
1496
|
-
},
|
|
1497
1331
|
"node_modules/generate-function": {
|
|
1498
1332
|
"version": "2.3.1",
|
|
1499
1333
|
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
|
|
@@ -1509,19 +1343,6 @@
|
|
|
1509
1343
|
"integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==",
|
|
1510
1344
|
"license": "MIT"
|
|
1511
1345
|
},
|
|
1512
|
-
"node_modules/get-tsconfig": {
|
|
1513
|
-
"version": "4.13.7",
|
|
1514
|
-
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz",
|
|
1515
|
-
"integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==",
|
|
1516
|
-
"dev": true,
|
|
1517
|
-
"license": "MIT",
|
|
1518
|
-
"dependencies": {
|
|
1519
|
-
"resolve-pkg-maps": "^1.0.0"
|
|
1520
|
-
},
|
|
1521
|
-
"funding": {
|
|
1522
|
-
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
|
|
1523
|
-
}
|
|
1524
|
-
},
|
|
1525
1346
|
"node_modules/giget": {
|
|
1526
1347
|
"version": "2.0.0",
|
|
1527
1348
|
"resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz",
|
|
@@ -2235,16 +2056,6 @@
|
|
|
2235
2056
|
"node": ">=0.10.0"
|
|
2236
2057
|
}
|
|
2237
2058
|
},
|
|
2238
|
-
"node_modules/resolve-pkg-maps": {
|
|
2239
|
-
"version": "1.0.0",
|
|
2240
|
-
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
|
|
2241
|
-
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
|
|
2242
|
-
"dev": true,
|
|
2243
|
-
"license": "MIT",
|
|
2244
|
-
"funding": {
|
|
2245
|
-
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
|
|
2246
|
-
}
|
|
2247
|
-
},
|
|
2248
2059
|
"node_modules/ret": {
|
|
2249
2060
|
"version": "0.5.0",
|
|
2250
2061
|
"resolved": "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz",
|
|
@@ -2610,26 +2421,6 @@
|
|
|
2610
2421
|
"node": ">=12"
|
|
2611
2422
|
}
|
|
2612
2423
|
},
|
|
2613
|
-
"node_modules/tsx": {
|
|
2614
|
-
"version": "4.21.0",
|
|
2615
|
-
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
|
|
2616
|
-
"integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
|
|
2617
|
-
"dev": true,
|
|
2618
|
-
"license": "MIT",
|
|
2619
|
-
"dependencies": {
|
|
2620
|
-
"esbuild": "~0.27.0",
|
|
2621
|
-
"get-tsconfig": "^4.7.5"
|
|
2622
|
-
},
|
|
2623
|
-
"bin": {
|
|
2624
|
-
"tsx": "dist/cli.mjs"
|
|
2625
|
-
},
|
|
2626
|
-
"engines": {
|
|
2627
|
-
"node": ">=18.0.0"
|
|
2628
|
-
},
|
|
2629
|
-
"optionalDependencies": {
|
|
2630
|
-
"fsevents": "~2.3.3"
|
|
2631
|
-
}
|
|
2632
|
-
},
|
|
2633
2424
|
"node_modules/tunnel-agent": {
|
|
2634
2425
|
"version": "0.6.0",
|
|
2635
2426
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
|
@@ -2642,20 +2433,6 @@
|
|
|
2642
2433
|
"node": "*"
|
|
2643
2434
|
}
|
|
2644
2435
|
},
|
|
2645
|
-
"node_modules/typescript": {
|
|
2646
|
-
"version": "5.9.3",
|
|
2647
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
2648
|
-
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
2649
|
-
"devOptional": true,
|
|
2650
|
-
"license": "Apache-2.0",
|
|
2651
|
-
"bin": {
|
|
2652
|
-
"tsc": "bin/tsc",
|
|
2653
|
-
"tsserver": "bin/tsserver"
|
|
2654
|
-
},
|
|
2655
|
-
"engines": {
|
|
2656
|
-
"node": ">=14.17"
|
|
2657
|
-
}
|
|
2658
|
-
},
|
|
2659
2436
|
"node_modules/undici-types": {
|
|
2660
2437
|
"version": "7.19.2",
|
|
2661
2438
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naisys/hub",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.31",
|
|
4
4
|
"description": "NAISYS Hub - Adds persistence and multi-instance coordination to NAISYS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/naisysHub.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"!dist/**/*.d.ts.map"
|
|
32
32
|
],
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@naisys/supervisor": "3.0.0-beta.
|
|
34
|
+
"@naisys/supervisor": "3.0.0-beta.31"
|
|
35
35
|
},
|
|
36
36
|
"peerDependenciesMeta": {
|
|
37
37
|
"@naisys/supervisor": {
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@naisys/common": "3.0.0-beta.
|
|
43
|
-
"@naisys/common-node": "3.0.0-beta.
|
|
44
|
-
"@naisys/hub-database": "3.0.0-beta.
|
|
45
|
-
"@naisys/hub-protocol": "3.0.0-beta.
|
|
42
|
+
"@naisys/common": "3.0.0-beta.31",
|
|
43
|
+
"@naisys/common-node": "3.0.0-beta.31",
|
|
44
|
+
"@naisys/hub-database": "3.0.0-beta.31",
|
|
45
|
+
"@naisys/hub-protocol": "3.0.0-beta.31",
|
|
46
46
|
"commander": "^14.0.3",
|
|
47
47
|
"dotenv": "^17.3.1",
|
|
48
48
|
"fastify": "^5.8.2",
|