@panorama-ai/gateway 2.30.279 → 2.31.9
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/README.md +51 -65
- package/dist/cli-args.d.ts +0 -2
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +0 -8
- package/dist/cli-args.js.map +1 -1
- package/dist/database.types.d.ts +92 -693
- package/dist/database.types.d.ts.map +1 -1
- package/dist/database.types.js.map +1 -1
- package/dist/drive-sync/config.d.ts +14 -0
- package/dist/drive-sync/config.d.ts.map +1 -0
- package/dist/drive-sync/config.js +45 -0
- package/dist/drive-sync/config.js.map +1 -0
- package/dist/drive-sync/drive-sync-filesystem.d.ts.map +1 -0
- package/dist/drive-sync/drive-sync-filesystem.js.map +1 -0
- package/dist/drive-sync/drive-sync-planner.d.ts.map +1 -0
- package/dist/drive-sync/drive-sync-planner.js.map +1 -0
- package/dist/drive-sync/drive-sync-remote-planner.d.ts.map +1 -0
- package/dist/drive-sync/drive-sync-remote-planner.js.map +1 -0
- package/dist/{managed-runtime → drive-sync}/drive-sync-scheduler.d.ts +12 -11
- package/dist/drive-sync/drive-sync-scheduler.d.ts.map +1 -0
- package/dist/{managed-runtime → drive-sync}/drive-sync-scheduler.js +7 -5
- package/dist/drive-sync/drive-sync-scheduler.js.map +1 -0
- package/dist/drive-sync/drive-sync-state-applier.d.ts.map +1 -0
- package/dist/drive-sync/drive-sync-state-applier.js.map +1 -0
- package/dist/drive-sync/drive-sync-transfer.d.ts.map +1 -0
- package/dist/drive-sync/drive-sync-transfer.js.map +1 -0
- package/dist/{managed-runtime → drive-sync}/drive-sync.d.ts +29 -12
- package/dist/drive-sync/drive-sync.d.ts.map +1 -0
- package/dist/{managed-runtime → drive-sync}/drive-sync.js +64 -28
- package/dist/drive-sync/drive-sync.js.map +1 -0
- package/dist/{managed-runtime → drive-sync}/runtime-utils.d.ts +2 -2
- package/dist/drive-sync/runtime-utils.d.ts.map +1 -0
- package/dist/{managed-runtime → drive-sync}/runtime-utils.js +1 -1
- package/dist/drive-sync/runtime-utils.js.map +1 -0
- package/dist/gateway-local-runtime.d.ts +7 -1
- package/dist/gateway-local-runtime.d.ts.map +1 -1
- package/dist/gateway-local-runtime.js +26 -5
- package/dist/gateway-local-runtime.js.map +1 -1
- package/dist/gateway-state.d.ts +4 -0
- package/dist/gateway-state.d.ts.map +1 -1
- package/dist/gateway-state.js +6 -2
- package/dist/gateway-state.js.map +1 -1
- package/dist/index.js +2177 -3627
- package/dist/index.js.map +4 -4
- package/dist/local-runtime/drive-sync-supervisor.d.ts +14 -0
- package/dist/local-runtime/drive-sync-supervisor.d.ts.map +1 -0
- package/dist/local-runtime/drive-sync-supervisor.js +79 -0
- package/dist/local-runtime/drive-sync-supervisor.js.map +1 -0
- package/dist/local-runtime/shutdown-supervisor.d.ts +1 -0
- package/dist/local-runtime/shutdown-supervisor.d.ts.map +1 -1
- package/dist/local-runtime/shutdown-supervisor.js +5 -2
- package/dist/local-runtime/shutdown-supervisor.js.map +1 -1
- package/package.json +6 -6
- package/dist/managed-runtime/config.d.ts +0 -33
- package/dist/managed-runtime/config.d.ts.map +0 -1
- package/dist/managed-runtime/config.js +0 -111
- package/dist/managed-runtime/config.js.map +0 -1
- package/dist/managed-runtime/control-client.d.ts +0 -66
- package/dist/managed-runtime/control-client.d.ts.map +0 -1
- package/dist/managed-runtime/control-client.js +0 -142
- package/dist/managed-runtime/control-client.js.map +0 -1
- package/dist/managed-runtime/dependencies.d.ts +0 -19
- package/dist/managed-runtime/dependencies.d.ts.map +0 -1
- package/dist/managed-runtime/dependencies.js +0 -30
- package/dist/managed-runtime/dependencies.js.map +0 -1
- package/dist/managed-runtime/drive-sync-filesystem.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-filesystem.js.map +0 -1
- package/dist/managed-runtime/drive-sync-planner.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-planner.js.map +0 -1
- package/dist/managed-runtime/drive-sync-remote-planner.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-remote-planner.js.map +0 -1
- package/dist/managed-runtime/drive-sync-scheduler.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-scheduler.js.map +0 -1
- package/dist/managed-runtime/drive-sync-state-applier.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-state-applier.js.map +0 -1
- package/dist/managed-runtime/drive-sync-transfer.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync-transfer.js.map +0 -1
- package/dist/managed-runtime/drive-sync.d.ts.map +0 -1
- package/dist/managed-runtime/drive-sync.js.map +0 -1
- package/dist/managed-runtime/execution-dispatcher.d.ts +0 -25
- package/dist/managed-runtime/execution-dispatcher.d.ts.map +0 -1
- package/dist/managed-runtime/execution-dispatcher.js +0 -155
- package/dist/managed-runtime/execution-dispatcher.js.map +0 -1
- package/dist/managed-runtime/heartbeat.d.ts +0 -7
- package/dist/managed-runtime/heartbeat.d.ts.map +0 -1
- package/dist/managed-runtime/heartbeat.js +0 -44
- package/dist/managed-runtime/heartbeat.js.map +0 -1
- package/dist/managed-runtime/host-state.d.ts +0 -15
- package/dist/managed-runtime/host-state.d.ts.map +0 -1
- package/dist/managed-runtime/host-state.js +0 -50
- package/dist/managed-runtime/host-state.js.map +0 -1
- package/dist/managed-runtime/realtime.d.ts +0 -25
- package/dist/managed-runtime/realtime.d.ts.map +0 -1
- package/dist/managed-runtime/realtime.js +0 -189
- package/dist/managed-runtime/realtime.js.map +0 -1
- package/dist/managed-runtime/runtime-utils.d.ts.map +0 -1
- package/dist/managed-runtime/runtime-utils.js.map +0 -1
- package/dist/managed-runtime/shell-execution.d.ts +0 -33
- package/dist/managed-runtime/shell-execution.d.ts.map +0 -1
- package/dist/managed-runtime/shell-execution.js +0 -186
- package/dist/managed-runtime/shell-execution.js.map +0 -1
- package/dist/managed-runtime/step-result.d.ts +0 -22
- package/dist/managed-runtime/step-result.d.ts.map +0 -1
- package/dist/managed-runtime/step-result.js +0 -252
- package/dist/managed-runtime/step-result.js.map +0 -1
- package/dist/managed-runtime/wake-signal.d.ts +0 -5
- package/dist/managed-runtime/wake-signal.d.ts.map +0 -1
- package/dist/managed-runtime/wake-signal.js +0 -29
- package/dist/managed-runtime/wake-signal.js.map +0 -1
- package/dist/managed-runtime.d.ts +0 -8
- package/dist/managed-runtime.d.ts.map +0 -1
- package/dist/managed-runtime.js +0 -268
- package/dist/managed-runtime.js.map +0 -1
- /package/dist/{managed-runtime → drive-sync}/drive-sync-filesystem.d.ts +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-filesystem.js +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-planner.d.ts +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-planner.js +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-remote-planner.d.ts +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-remote-planner.js +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-state-applier.d.ts +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-state-applier.js +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-transfer.d.ts +0 -0
- /package/dist/{managed-runtime → drive-sync}/drive-sync-transfer.js +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { GatewayConfig } from '../gateway-state.js';
|
|
2
|
+
import type { GatewaySupabaseClient } from './types.js';
|
|
3
|
+
export type GatewayDriveSyncSupervisor = {
|
|
4
|
+
requestSync(reason: string): Promise<void>;
|
|
5
|
+
stop(): Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export declare function startGatewayDriveSyncSupervisor(params: {
|
|
8
|
+
config: GatewayConfig;
|
|
9
|
+
supabase: GatewaySupabaseClient;
|
|
10
|
+
env?: NodeJS.ProcessEnv;
|
|
11
|
+
logInfo: (message: string, data?: Record<string, unknown>) => void;
|
|
12
|
+
logError: (message: string, data?: Record<string, unknown>) => void;
|
|
13
|
+
}): Promise<GatewayDriveSyncSupervisor | null>;
|
|
14
|
+
//# sourceMappingURL=drive-sync-supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-sync-supervisor.d.ts","sourceRoot":"","sources":["../../src/local-runtime/drive-sync-supervisor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAUxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB,CAAA;AAqBD,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACpE,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAiE7C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import { resolveGatewayDriveSyncConfig } from '../drive-sync/config.js';
|
|
3
|
+
import { startDriveSyncScheduler, } from '../drive-sync/drive-sync-scheduler.js';
|
|
4
|
+
import { createDriveSyncService, } from '../drive-sync/drive-sync.js';
|
|
5
|
+
function logDriveSyncResult(result, reason, logError) {
|
|
6
|
+
if (result.status === 'failed') {
|
|
7
|
+
logError('VM drive sync failed; continuing gateway work', { reason, error: result.error });
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (result.status === 'degraded') {
|
|
11
|
+
logError('VM drive sync degraded; continuing gateway work', {
|
|
12
|
+
reason,
|
|
13
|
+
error: result.error,
|
|
14
|
+
failedDriveCount: result.summary.failedDriveCount,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function startGatewayDriveSyncSupervisor(params) {
|
|
19
|
+
const driveSync = resolveGatewayDriveSyncConfig(params.env ?? process.env);
|
|
20
|
+
if (!driveSync.enabled) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const vmGuest = params.config.vmGuest;
|
|
24
|
+
if (!vmGuest?.vmId) {
|
|
25
|
+
params.logInfo('Drive sync requested but gateway is not a VM guest; skipping local sync');
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const runtimeConfig = {
|
|
30
|
+
runtimeId: `gateway:${params.config.gatewayId}:${process.pid}`,
|
|
31
|
+
driveSync,
|
|
32
|
+
identity: {
|
|
33
|
+
kind: 'vm_gateway',
|
|
34
|
+
teamId: params.config.teamId,
|
|
35
|
+
vmId: vmGuest.vmId,
|
|
36
|
+
gatewayId: params.config.gatewayId,
|
|
37
|
+
generation: vmGuest.generation ?? null,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const service = await createDriveSyncService({
|
|
41
|
+
config: runtimeConfig,
|
|
42
|
+
supabase: params.supabase,
|
|
43
|
+
});
|
|
44
|
+
const scheduler = startDriveSyncScheduler({
|
|
45
|
+
service,
|
|
46
|
+
rootDir: driveSync.rootDir,
|
|
47
|
+
debounceMs: driveSync.debounceMs,
|
|
48
|
+
pollIntervalMs: driveSync.pollIntervalMs,
|
|
49
|
+
localAuditIntervalMs: driveSync.localAuditIntervalMs,
|
|
50
|
+
});
|
|
51
|
+
params.logInfo('VM drive sync started', {
|
|
52
|
+
vmId: vmGuest.vmId,
|
|
53
|
+
gatewayId: params.config.gatewayId,
|
|
54
|
+
rootDir: driveSync.rootDir,
|
|
55
|
+
stateDir: driveSync.stateDir,
|
|
56
|
+
pollIntervalMs: driveSync.pollIntervalMs,
|
|
57
|
+
});
|
|
58
|
+
const requestSync = async (reason) => {
|
|
59
|
+
const result = await scheduler.requestSync(reason, { immediate: true });
|
|
60
|
+
logDriveSyncResult(result, reason, params.logError);
|
|
61
|
+
};
|
|
62
|
+
void requestSync('gateway_startup');
|
|
63
|
+
return {
|
|
64
|
+
requestSync,
|
|
65
|
+
async stop() {
|
|
66
|
+
await scheduler.stop();
|
|
67
|
+
service.close();
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
params.logError('VM drive sync startup failed; continuing without local drive sync', {
|
|
73
|
+
error: error instanceof Error ? error.message : String(error),
|
|
74
|
+
vmId: vmGuest.vmId,
|
|
75
|
+
});
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=drive-sync-supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-sync-supervisor.js","sourceRoot":"","sources":["../../src/local-runtime/drive-sync-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export declare function createGatewayShutdownCoordinator(params: {
|
|
|
20
20
|
syncOperationalHeartbeatIfChanged: () => Promise<void>;
|
|
21
21
|
stopHeartbeat: () => void;
|
|
22
22
|
stopRestart: () => void;
|
|
23
|
+
stopDriveSync?: () => Promise<void>;
|
|
23
24
|
sendOfflineHeartbeat: () => Promise<void>;
|
|
24
25
|
removePidFile: (options?: ParsedArgs['options']) => Promise<void>;
|
|
25
26
|
completeJob: (supabase: GatewaySupabaseClient, jobId: string, status: GatewayJobStatus, result: Record<string, unknown> | null, errorMessage?: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-supervisor.d.ts","sourceRoot":"","sources":["../../src/local-runtime/shutdown-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"shutdown-supervisor.d.ts","sourceRoot":"","sources":["../../src/local-runtime/shutdown-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACpG,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAGrF,OAAO,KAAK,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAExF,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,oBAAoB,EAAE,MAAM,OAAO,CAAA;CACpC;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACvD,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,YAAY,EAAE,mBAAmB,CAAC,+BAA+B,CAAC,CAAA;IAClE,aAAa,EAAE,oBAAoB,CAAA;IACnC,oBAAoB,EAAE,2BAA2B,CAAA;IACjD,uBAAuB,EAAE,sBAAsB,CAAA;IAC/C,iCAAiC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,WAAW,EAAE,CACX,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,+BAA+B,EAAE,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,sBAAsB,EAAE,CAAC,MAAM,EAAE,6BAA6B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzF,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACnE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC,GAAG,0BAA0B,CA4H7B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { resolveJobSubagentId
|
|
1
|
+
import { resolveJobSubagentId } from '../gateway-jobs.js';
|
|
2
2
|
import { requestGatewayActiveWorkShutdown, waitForGatewayActiveWorkToDrain, } from '../gateway-lifecycle.js';
|
|
3
3
|
import { sleep } from '../gateway-run-helpers.js';
|
|
4
4
|
import { cancelSubagentRunOnGatewayShutdown } from '../subagent-shutdown-cancellation.js';
|
|
5
|
-
import { PROCESS_KILL_GRACE_MS, SUBAGENT_CANCEL_KILL_TIMEOUT_MS
|
|
5
|
+
import { PROCESS_KILL_GRACE_MS, SUBAGENT_CANCEL_KILL_TIMEOUT_MS } from './runtime-utils.js';
|
|
6
6
|
export function createGatewayShutdownCoordinator(params) {
|
|
7
7
|
let shutdownInProgress = false;
|
|
8
8
|
let shutdownPromise = null;
|
|
@@ -73,6 +73,9 @@ export function createGatewayShutdownCoordinator(params) {
|
|
|
73
73
|
await runShutdownStep('sync_operational_heartbeat', params.syncOperationalHeartbeatIfChanged);
|
|
74
74
|
requestActiveWorkShutdown(mode, `Gateway shutting down (${signal})`);
|
|
75
75
|
await runShutdownStep('wait_for_active_jobs', waitForActiveJobsToDrain);
|
|
76
|
+
if (params.stopDriveSync) {
|
|
77
|
+
await runShutdownStep('stop_drive_sync', params.stopDriveSync);
|
|
78
|
+
}
|
|
76
79
|
if (mode === 'terminate') {
|
|
77
80
|
await runShutdownStep('finalize_residual_gateway_jobs', () => finalizeResidualGatewayJobs(`Gateway shutting down (${signal})`));
|
|
78
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-supervisor.js","sourceRoot":"","sources":["../../src/local-runtime/shutdown-supervisor.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"shutdown-supervisor.js","sourceRoot":"","sources":["../../src/local-runtime/shutdown-supervisor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panorama-ai/gateway",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.9",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"prepublishOnly": "pnpm run build:prod && pnpm run verify:packaged-cli"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@supabase/supabase-js": "^2.
|
|
32
|
+
"@supabase/supabase-js": "^2.108.0",
|
|
33
33
|
"dotenv": "^17.4.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@types/node": "^25.
|
|
37
|
-
"esbuild": "^0.
|
|
38
|
-
"tsx": "^4.22.
|
|
39
|
-
"typescript": "^
|
|
36
|
+
"@types/node": "^25.9.2",
|
|
37
|
+
"esbuild": "^0.28.0",
|
|
38
|
+
"tsx": "^4.22.4",
|
|
39
|
+
"typescript": "^6.0.3"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=24.0.0"
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export type ManagedGatewayDriveSyncConfig = {
|
|
2
|
-
enabled: boolean;
|
|
3
|
-
rootDir: string;
|
|
4
|
-
stateDir: string;
|
|
5
|
-
clientKey: string | null;
|
|
6
|
-
changeLimit: number;
|
|
7
|
-
maxBatchesPerTick: number;
|
|
8
|
-
debounceMs: number;
|
|
9
|
-
pollIntervalMs: number;
|
|
10
|
-
localAuditIntervalMs: number;
|
|
11
|
-
networkTimeoutMs?: number;
|
|
12
|
-
};
|
|
13
|
-
export type ManagedGatewayRuntimeConfig = {
|
|
14
|
-
agentId: string;
|
|
15
|
-
hostId: string;
|
|
16
|
-
hostAttemptGeneration: number;
|
|
17
|
-
runtimeId: string;
|
|
18
|
-
supabaseUrl: string;
|
|
19
|
-
supabaseAnonKey: string;
|
|
20
|
-
hostControlUrl: string;
|
|
21
|
-
hostControlToken: string;
|
|
22
|
-
toolExecutionUrl: string;
|
|
23
|
-
toolExecutionToken: string;
|
|
24
|
-
retryBackoffMs: number;
|
|
25
|
-
controlTimeoutMs: number;
|
|
26
|
-
execTimeoutMs: number;
|
|
27
|
-
outputCaptureBytes: number;
|
|
28
|
-
heartbeatIntervalMs: number;
|
|
29
|
-
maxConsecutiveHeartbeatFailures: number;
|
|
30
|
-
driveSync: ManagedGatewayDriveSyncConfig;
|
|
31
|
-
};
|
|
32
|
-
export declare function resolveManagedGatewayRuntimeConfig(env?: NodeJS.ProcessEnv): ManagedGatewayRuntimeConfig;
|
|
33
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/managed-runtime/config.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,+BAA+B,EAAE,MAAM,CAAA;IACvC,SAAS,EAAE,6BAA6B,CAAA;CACzC,CAAA;AA6CD,wBAAgB,kCAAkC,CAChD,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,2BAA2B,CA0G7B"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { DRIVE_TRANSFER_POLICY } from '@panorama/shared/drive-transfer-policy';
|
|
2
|
-
import { buildLinuxHostControlUrl } from '@panorama/shared/linux-host-control/contract';
|
|
3
|
-
import { buildToolExecutionUrl } from '@panorama/shared/tools/execution-contract';
|
|
4
|
-
import { hostname } from 'node:os';
|
|
5
|
-
import process from 'node:process';
|
|
6
|
-
const DEFAULT_RETRY_BACKOFF_MS = 2_000;
|
|
7
|
-
const DEFAULT_CONTROL_TIMEOUT_MS = 30_000;
|
|
8
|
-
const DEFAULT_EXEC_TIMEOUT_MS = 300_000;
|
|
9
|
-
const DEFAULT_HEARTBEAT_INTERVAL_MS = 15_000;
|
|
10
|
-
const DEFAULT_MAX_CONSECUTIVE_HEARTBEAT_FAILURES = 3;
|
|
11
|
-
const DEFAULT_OUTPUT_CAPTURE_BYTES = 5_000_000;
|
|
12
|
-
const DEFAULT_DRIVE_SYNC_ROOT = '/panorama/drives';
|
|
13
|
-
const DEFAULT_DRIVE_SYNC_STATE_DIR = '/var/lib/panorama/drive-sync';
|
|
14
|
-
const DEFAULT_DRIVE_SYNC_CHANGE_LIMIT = 50;
|
|
15
|
-
const DEFAULT_DRIVE_SYNC_MAX_BATCHES_PER_TICK = 25;
|
|
16
|
-
const DEFAULT_DRIVE_SYNC_DEBOUNCE_MS = 1_000;
|
|
17
|
-
const DEFAULT_DRIVE_SYNC_POLL_INTERVAL_MS = 5_000;
|
|
18
|
-
const DEFAULT_DRIVE_SYNC_LOCAL_AUDIT_INTERVAL_MS = 300_000;
|
|
19
|
-
const DEFAULT_DRIVE_SYNC_NETWORK_TIMEOUT_MS = DRIVE_TRANSFER_POLICY.networkRequestTimeoutMs;
|
|
20
|
-
function requireEnv(name, env = process.env) {
|
|
21
|
-
const value = env[name]?.trim();
|
|
22
|
-
if (!value) {
|
|
23
|
-
throw new Error(`${name} is required`);
|
|
24
|
-
}
|
|
25
|
-
return value;
|
|
26
|
-
}
|
|
27
|
-
function readPositiveInt(name, fallback, env = process.env) {
|
|
28
|
-
const raw = env[name]?.trim();
|
|
29
|
-
if (!raw)
|
|
30
|
-
return fallback;
|
|
31
|
-
const parsed = Number(raw);
|
|
32
|
-
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
33
|
-
throw new Error(`${name} must be a positive number`);
|
|
34
|
-
}
|
|
35
|
-
return Math.floor(parsed);
|
|
36
|
-
}
|
|
37
|
-
function readBoolean(name, fallback, env = process.env) {
|
|
38
|
-
const raw = env[name]?.trim().toLowerCase();
|
|
39
|
-
if (!raw)
|
|
40
|
-
return fallback;
|
|
41
|
-
if (['1', 'true', 'yes', 'on'].includes(raw))
|
|
42
|
-
return true;
|
|
43
|
-
if (['0', 'false', 'no', 'off'].includes(raw))
|
|
44
|
-
return false;
|
|
45
|
-
throw new Error(`${name} must be a boolean`);
|
|
46
|
-
}
|
|
47
|
-
function requirePositiveInt(name, env = process.env) {
|
|
48
|
-
const raw = requireEnv(name, env);
|
|
49
|
-
const parsed = Number(raw);
|
|
50
|
-
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
51
|
-
throw new Error(`${name} must be a positive number`);
|
|
52
|
-
}
|
|
53
|
-
return Math.floor(parsed);
|
|
54
|
-
}
|
|
55
|
-
export function resolveManagedGatewayRuntimeConfig(env = process.env) {
|
|
56
|
-
const agentId = requireEnv('PANORAMA_AGENT_ID', env);
|
|
57
|
-
const hostId = requireEnv('PANORAMA_LINUX_HOST_ID', env);
|
|
58
|
-
const hostAttemptGeneration = requirePositiveInt('PANORAMA_LINUX_HOST_ATTEMPT_GENERATION', env);
|
|
59
|
-
const supabaseUrl = env.PANORAMA_SUPABASE_URL?.trim() || env.SUPABASE_URL?.trim() || null;
|
|
60
|
-
const supabaseAnonKey = env.PANORAMA_SUPABASE_ANON_KEY?.trim() ||
|
|
61
|
-
env.SUPABASE_ANON_KEY?.trim() ||
|
|
62
|
-
env.SUPABASE_PUBLISHABLE_KEY?.trim() ||
|
|
63
|
-
null;
|
|
64
|
-
const hostControlUrl = env.PANORAMA_LINUX_HOST_CONTROL_URL?.trim() ||
|
|
65
|
-
(supabaseUrl ? buildLinuxHostControlUrl(supabaseUrl) : null);
|
|
66
|
-
const toolExecutionUrl = env.PANORAMA_TOOL_EXECUTION_URL?.trim() ||
|
|
67
|
-
(supabaseUrl ? buildToolExecutionUrl(supabaseUrl) : null);
|
|
68
|
-
if (!hostControlUrl) {
|
|
69
|
-
throw new Error('PANORAMA_LINUX_HOST_CONTROL_URL is required');
|
|
70
|
-
}
|
|
71
|
-
if (!toolExecutionUrl) {
|
|
72
|
-
throw new Error('PANORAMA_TOOL_EXECUTION_URL is required');
|
|
73
|
-
}
|
|
74
|
-
if (!supabaseUrl) {
|
|
75
|
-
throw new Error('PANORAMA_SUPABASE_URL or SUPABASE_URL is required');
|
|
76
|
-
}
|
|
77
|
-
if (!supabaseAnonKey) {
|
|
78
|
-
throw new Error('PANORAMA_SUPABASE_ANON_KEY, SUPABASE_ANON_KEY, or SUPABASE_PUBLISHABLE_KEY is required');
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
agentId,
|
|
82
|
-
hostId,
|
|
83
|
-
hostAttemptGeneration,
|
|
84
|
-
runtimeId: env.PANORAMA_MANAGED_RUNTIME_ID?.trim() || `${hostname()}:${process.pid}`,
|
|
85
|
-
supabaseUrl,
|
|
86
|
-
supabaseAnonKey,
|
|
87
|
-
hostControlUrl,
|
|
88
|
-
hostControlToken: requireEnv('PANORAMA_LINUX_HOST_CONTROL_TOKEN', env),
|
|
89
|
-
toolExecutionUrl,
|
|
90
|
-
toolExecutionToken: requireEnv('PANORAMA_TOOL_EXECUTION_TOKEN', env),
|
|
91
|
-
retryBackoffMs: readPositiveInt('PANORAMA_MANAGED_RUNTIME_RETRY_BACKOFF_MS', DEFAULT_RETRY_BACKOFF_MS, env),
|
|
92
|
-
controlTimeoutMs: readPositiveInt('PANORAMA_MANAGED_RUNTIME_CONTROL_TIMEOUT_MS', DEFAULT_CONTROL_TIMEOUT_MS, env),
|
|
93
|
-
execTimeoutMs: readPositiveInt('PANORAMA_AGENT_EXEC_TIMEOUT_MS', DEFAULT_EXEC_TIMEOUT_MS, env),
|
|
94
|
-
outputCaptureBytes: readPositiveInt('PANORAMA_MANAGED_RUNTIME_OUTPUT_CAPTURE_BYTES', DEFAULT_OUTPUT_CAPTURE_BYTES, env),
|
|
95
|
-
heartbeatIntervalMs: readPositiveInt('PANORAMA_MANAGED_RUNTIME_HEARTBEAT_INTERVAL_MS', DEFAULT_HEARTBEAT_INTERVAL_MS, env),
|
|
96
|
-
maxConsecutiveHeartbeatFailures: readPositiveInt('PANORAMA_MANAGED_RUNTIME_MAX_CONSECUTIVE_HEARTBEAT_FAILURES', DEFAULT_MAX_CONSECUTIVE_HEARTBEAT_FAILURES, env),
|
|
97
|
-
driveSync: {
|
|
98
|
-
enabled: readBoolean('PANORAMA_DRIVE_SYNC_ENABLED', false, env),
|
|
99
|
-
rootDir: env.PANORAMA_DRIVE_SYNC_ROOT?.trim() || DEFAULT_DRIVE_SYNC_ROOT,
|
|
100
|
-
stateDir: env.PANORAMA_DRIVE_SYNC_STATE_DIR?.trim() || DEFAULT_DRIVE_SYNC_STATE_DIR,
|
|
101
|
-
clientKey: env.PANORAMA_DRIVE_SYNC_CLIENT_KEY?.trim() || null,
|
|
102
|
-
changeLimit: readPositiveInt('PANORAMA_DRIVE_SYNC_CHANGE_LIMIT', DEFAULT_DRIVE_SYNC_CHANGE_LIMIT, env),
|
|
103
|
-
maxBatchesPerTick: readPositiveInt('PANORAMA_DRIVE_SYNC_MAX_BATCHES_PER_TICK', DEFAULT_DRIVE_SYNC_MAX_BATCHES_PER_TICK, env),
|
|
104
|
-
debounceMs: readPositiveInt('PANORAMA_DRIVE_SYNC_DEBOUNCE_MS', DEFAULT_DRIVE_SYNC_DEBOUNCE_MS, env),
|
|
105
|
-
pollIntervalMs: readPositiveInt('PANORAMA_DRIVE_SYNC_POLL_INTERVAL_MS', DEFAULT_DRIVE_SYNC_POLL_INTERVAL_MS, env),
|
|
106
|
-
localAuditIntervalMs: readPositiveInt('PANORAMA_DRIVE_SYNC_LOCAL_AUDIT_INTERVAL_MS', DEFAULT_DRIVE_SYNC_LOCAL_AUDIT_INTERVAL_MS, env),
|
|
107
|
-
networkTimeoutMs: readPositiveInt('PANORAMA_DRIVE_SYNC_NETWORK_TIMEOUT_MS', DEFAULT_DRIVE_SYNC_NETWORK_TIMEOUT_MS, env),
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/managed-runtime/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { type LinuxHostSessionExchangeResponse } from '@panorama/shared/linux-host-session/contract';
|
|
2
|
-
import type { LinuxHostClaimedExecution, LinuxHostControlHostEnvelope, LinuxHostControlRequest, LinuxHostControlResponse } from '@panorama/shared/linux-host-control/contract';
|
|
3
|
-
export declare function postLinuxHostControlRequest(params: {
|
|
4
|
-
controlUrl: string;
|
|
5
|
-
controlToken: string;
|
|
6
|
-
body: LinuxHostControlRequest;
|
|
7
|
-
timeoutMs: number;
|
|
8
|
-
signal?: AbortSignal;
|
|
9
|
-
}): Promise<LinuxHostControlResponse>;
|
|
10
|
-
export declare function exchangeLinuxHostSession(params: {
|
|
11
|
-
supabaseUrl: string;
|
|
12
|
-
supabaseAnonKey: string;
|
|
13
|
-
hostControlToken: string;
|
|
14
|
-
timeoutMs: number;
|
|
15
|
-
}): Promise<LinuxHostSessionExchangeResponse>;
|
|
16
|
-
export declare function heartbeatLinuxHost(params: {
|
|
17
|
-
controlUrl: string;
|
|
18
|
-
controlToken: string;
|
|
19
|
-
runtimeId: string;
|
|
20
|
-
controlTimeoutMs: number;
|
|
21
|
-
}): Promise<LinuxHostControlHostEnvelope>;
|
|
22
|
-
export declare function dispatchLinuxExecution(params: {
|
|
23
|
-
controlUrl: string;
|
|
24
|
-
controlToken: string;
|
|
25
|
-
runtimeId: string;
|
|
26
|
-
claimToken: string;
|
|
27
|
-
controlTimeoutMs: number;
|
|
28
|
-
}): Promise<LinuxHostClaimedExecution | null>;
|
|
29
|
-
export declare function startLinuxExecution(params: {
|
|
30
|
-
controlUrl: string;
|
|
31
|
-
controlToken: string;
|
|
32
|
-
runtimeId: string;
|
|
33
|
-
executionId: string;
|
|
34
|
-
claimToken: string;
|
|
35
|
-
controlTimeoutMs: number;
|
|
36
|
-
}): Promise<LinuxHostClaimedExecution | null>;
|
|
37
|
-
export declare function completeLinuxExecution(params: {
|
|
38
|
-
controlUrl: string;
|
|
39
|
-
controlToken: string;
|
|
40
|
-
runtimeId: string;
|
|
41
|
-
executionId: string;
|
|
42
|
-
claimToken: string;
|
|
43
|
-
executionStatus: 'succeeded' | 'failed' | 'timed_out' | 'cancelled';
|
|
44
|
-
exitCode?: number | null;
|
|
45
|
-
durationMs?: number | null;
|
|
46
|
-
stdout?: string | null;
|
|
47
|
-
stderr?: string | null;
|
|
48
|
-
error?: string | null;
|
|
49
|
-
executionMetadata?: Record<string, unknown> | null;
|
|
50
|
-
stepStatus?: 'completed' | 'failed' | 'skipped' | 'uncertain' | null;
|
|
51
|
-
stepResult?: Record<string, unknown> | null;
|
|
52
|
-
stepError?: string | null;
|
|
53
|
-
stepUncertaintyReason?: string | null;
|
|
54
|
-
controlSignal?: 'continue' | 'pause' | 'stop' | null;
|
|
55
|
-
controlTimeoutMs: number;
|
|
56
|
-
}): Promise<LinuxHostControlResponse['completion']>;
|
|
57
|
-
export declare function reconcileExecutionLifecycle(params: {
|
|
58
|
-
controlUrl: string;
|
|
59
|
-
controlToken: string;
|
|
60
|
-
runtimeId: string;
|
|
61
|
-
controlTimeoutMs: number;
|
|
62
|
-
}): Promise<{
|
|
63
|
-
recoveredCount: number;
|
|
64
|
-
requeuedCount: number;
|
|
65
|
-
}>;
|
|
66
|
-
//# sourceMappingURL=control-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-client.d.ts","sourceRoot":"","sources":["../../src/managed-runtime/control-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { buildLinuxHostSessionExchangeUrl, } from '@panorama/shared/linux-host-session/contract';
|
|
2
|
-
import { withAbortTimeout } from './runtime-utils.js';
|
|
3
|
-
export async function postLinuxHostControlRequest(params) {
|
|
4
|
-
return await withAbortTimeout(params.timeoutMs, `Linux host control request timed out after ${params.timeoutMs}ms`, async (signal) => {
|
|
5
|
-
const response = await fetch(params.controlUrl, {
|
|
6
|
-
method: 'POST',
|
|
7
|
-
headers: {
|
|
8
|
-
Authorization: `Bearer ${params.controlToken}`,
|
|
9
|
-
'Content-Type': 'application/json',
|
|
10
|
-
'X-Request-Source': 'gateway_managed',
|
|
11
|
-
},
|
|
12
|
-
body: JSON.stringify(params.body),
|
|
13
|
-
signal,
|
|
14
|
-
});
|
|
15
|
-
let payload;
|
|
16
|
-
try {
|
|
17
|
-
payload = await response.json();
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
payload = null;
|
|
21
|
-
}
|
|
22
|
-
if (!response.ok) {
|
|
23
|
-
const message = payload && typeof payload === 'object' && 'error' in payload
|
|
24
|
-
? String(payload.error ?? 'Linux host control request failed')
|
|
25
|
-
: `Linux host control request failed with status ${response.status}`;
|
|
26
|
-
throw new Error(message);
|
|
27
|
-
}
|
|
28
|
-
return payload;
|
|
29
|
-
}, params.signal);
|
|
30
|
-
}
|
|
31
|
-
export async function exchangeLinuxHostSession(params) {
|
|
32
|
-
return await withAbortTimeout(params.timeoutMs, `Linux host session exchange timed out after ${params.timeoutMs}ms`, async (signal) => {
|
|
33
|
-
const response = await fetch(buildLinuxHostSessionExchangeUrl(params.supabaseUrl), {
|
|
34
|
-
method: 'POST',
|
|
35
|
-
headers: {
|
|
36
|
-
apikey: params.supabaseAnonKey,
|
|
37
|
-
Authorization: `Bearer ${params.supabaseAnonKey}`,
|
|
38
|
-
'Content-Type': 'application/json',
|
|
39
|
-
'X-Request-Source': 'gateway_managed',
|
|
40
|
-
},
|
|
41
|
-
body: JSON.stringify({
|
|
42
|
-
host_control_token: params.hostControlToken,
|
|
43
|
-
}),
|
|
44
|
-
signal,
|
|
45
|
-
});
|
|
46
|
-
let payload;
|
|
47
|
-
try {
|
|
48
|
-
payload = await response.json();
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
payload = null;
|
|
52
|
-
}
|
|
53
|
-
if (!response.ok) {
|
|
54
|
-
const message = payload && typeof payload === 'object' && 'error' in payload
|
|
55
|
-
? String(payload.error ?? 'Linux host session exchange failed')
|
|
56
|
-
: `Linux host session exchange failed with status ${response.status}`;
|
|
57
|
-
throw new Error(message);
|
|
58
|
-
}
|
|
59
|
-
return payload;
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
export async function heartbeatLinuxHost(params) {
|
|
63
|
-
const response = await postLinuxHostControlRequest({
|
|
64
|
-
controlUrl: params.controlUrl,
|
|
65
|
-
controlToken: params.controlToken,
|
|
66
|
-
timeoutMs: params.controlTimeoutMs,
|
|
67
|
-
body: {
|
|
68
|
-
action: 'heartbeat',
|
|
69
|
-
runtime_id: params.runtimeId,
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
return response.host;
|
|
73
|
-
}
|
|
74
|
-
export async function dispatchLinuxExecution(params) {
|
|
75
|
-
const response = await postLinuxHostControlRequest({
|
|
76
|
-
controlUrl: params.controlUrl,
|
|
77
|
-
controlToken: params.controlToken,
|
|
78
|
-
timeoutMs: params.controlTimeoutMs,
|
|
79
|
-
body: {
|
|
80
|
-
action: 'claim_execution',
|
|
81
|
-
runtime_id: params.runtimeId,
|
|
82
|
-
claim_token: params.claimToken,
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
return response.execution ?? null;
|
|
86
|
-
}
|
|
87
|
-
export async function startLinuxExecution(params) {
|
|
88
|
-
const response = await postLinuxHostControlRequest({
|
|
89
|
-
controlUrl: params.controlUrl,
|
|
90
|
-
controlToken: params.controlToken,
|
|
91
|
-
timeoutMs: params.controlTimeoutMs,
|
|
92
|
-
body: {
|
|
93
|
-
action: 'start_execution',
|
|
94
|
-
runtime_id: params.runtimeId,
|
|
95
|
-
execution_id: params.executionId,
|
|
96
|
-
claim_token: params.claimToken,
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
return response.execution ?? null;
|
|
100
|
-
}
|
|
101
|
-
export async function completeLinuxExecution(params) {
|
|
102
|
-
const response = await postLinuxHostControlRequest({
|
|
103
|
-
controlUrl: params.controlUrl,
|
|
104
|
-
controlToken: params.controlToken,
|
|
105
|
-
timeoutMs: params.controlTimeoutMs,
|
|
106
|
-
body: {
|
|
107
|
-
action: 'complete_execution',
|
|
108
|
-
runtime_id: params.runtimeId,
|
|
109
|
-
execution_id: params.executionId,
|
|
110
|
-
claim_token: params.claimToken,
|
|
111
|
-
execution_status: params.executionStatus,
|
|
112
|
-
exit_code: params.exitCode ?? null,
|
|
113
|
-
duration_ms: params.durationMs ?? null,
|
|
114
|
-
stdout: params.stdout ?? null,
|
|
115
|
-
stderr: params.stderr ?? null,
|
|
116
|
-
error: params.error ?? null,
|
|
117
|
-
execution_metadata: params.executionMetadata ?? undefined,
|
|
118
|
-
step_status: params.stepStatus ?? null,
|
|
119
|
-
step_result: params.stepResult ?? undefined,
|
|
120
|
-
step_error: params.stepError ?? null,
|
|
121
|
-
step_uncertainty_reason: params.stepUncertaintyReason ?? null,
|
|
122
|
-
control_signal: params.controlSignal ?? null,
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
return response.completion ?? null;
|
|
126
|
-
}
|
|
127
|
-
export async function reconcileExecutionLifecycle(params) {
|
|
128
|
-
const response = await postLinuxHostControlRequest({
|
|
129
|
-
controlUrl: params.controlUrl,
|
|
130
|
-
controlToken: params.controlToken,
|
|
131
|
-
timeoutMs: params.controlTimeoutMs,
|
|
132
|
-
body: {
|
|
133
|
-
action: 'reconcile_execution_lifecycle',
|
|
134
|
-
runtime_id: params.runtimeId,
|
|
135
|
-
},
|
|
136
|
-
});
|
|
137
|
-
return {
|
|
138
|
-
recoveredCount: response.recovered_count ?? 0,
|
|
139
|
-
requeuedCount: response.requeued_count ?? 0,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=control-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-client.js","sourceRoot":"","sources":["../../src/managed-runtime/control-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { completeLinuxExecution, dispatchLinuxExecution, heartbeatLinuxHost, reconcileExecutionLifecycle, startLinuxExecution } from './control-client.js';
|
|
2
|
-
import { createManagedRealtimeClient, startManagedRealtimeWakeLoop } from './realtime.js';
|
|
3
|
-
import { createManagedDriveSyncService } from './drive-sync.js';
|
|
4
|
-
import { executeCommand } from './shell-execution.js';
|
|
5
|
-
export type ResolvedManagedGatewayRuntimeDependencies = {
|
|
6
|
-
heartbeatLinuxHost: typeof heartbeatLinuxHost;
|
|
7
|
-
dispatchLinuxExecution: typeof dispatchLinuxExecution;
|
|
8
|
-
startLinuxExecution: typeof startLinuxExecution;
|
|
9
|
-
completeLinuxExecution: typeof completeLinuxExecution;
|
|
10
|
-
reconcileExecutionLifecycle: typeof reconcileExecutionLifecycle;
|
|
11
|
-
executeCommand: typeof executeCommand;
|
|
12
|
-
createRealtimeClient: typeof createManagedRealtimeClient;
|
|
13
|
-
startRealtimeWakeLoop: typeof startManagedRealtimeWakeLoop;
|
|
14
|
-
createDriveSyncService: typeof createManagedDriveSyncService;
|
|
15
|
-
registerSignalHandlers: (onSignal: (signal: NodeJS.Signals) => void) => () => void;
|
|
16
|
-
};
|
|
17
|
-
export type ManagedGatewayRuntimeDependencies = Partial<ResolvedManagedGatewayRuntimeDependencies>;
|
|
18
|
-
export declare function resolveManagedGatewayRuntimeDependencies(dependencies?: ManagedGatewayRuntimeDependencies): ResolvedManagedGatewayRuntimeDependencies;
|
|
19
|
-
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/managed-runtime/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,MAAM,yCAAyC,GAAG;IACtD,kBAAkB,EAAE,OAAO,kBAAkB,CAAA;IAC7C,sBAAsB,EAAE,OAAO,sBAAsB,CAAA;IACrD,mBAAmB,EAAE,OAAO,mBAAmB,CAAA;IAC/C,sBAAsB,EAAE,OAAO,sBAAsB,CAAA;IACrD,2BAA2B,EAAE,OAAO,2BAA2B,CAAA;IAC/D,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,oBAAoB,EAAE,OAAO,2BAA2B,CAAA;IACxD,qBAAqB,EAAE,OAAO,4BAA4B,CAAA;IAC1D,sBAAsB,EAAE,OAAO,6BAA6B,CAAA;IAC5D,sBAAsB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CACnF,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAsBlG,wBAAgB,wCAAwC,CACtD,YAAY,GAAE,iCAAsC,GACnD,yCAAyC,CAK3C"}
|