@panorama-ai/gateway 2.30.211 → 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.
Files changed (120) hide show
  1. package/README.md +59 -63
  2. package/dist/cli-args.d.ts +0 -2
  3. package/dist/cli-args.d.ts.map +1 -1
  4. package/dist/cli-args.js +0 -8
  5. package/dist/cli-args.js.map +1 -1
  6. package/dist/cli-providers/types.d.ts +1 -1
  7. package/dist/cli-providers/types.d.ts.map +1 -1
  8. package/dist/database.types.d.ts +1974 -1024
  9. package/dist/database.types.d.ts.map +1 -1
  10. package/dist/database.types.js.map +1 -1
  11. package/dist/drive-sync/config.d.ts +14 -0
  12. package/dist/drive-sync/config.d.ts.map +1 -0
  13. package/dist/drive-sync/config.js +45 -0
  14. package/dist/drive-sync/config.js.map +1 -0
  15. package/dist/drive-sync/drive-sync-filesystem.d.ts +39 -0
  16. package/dist/drive-sync/drive-sync-filesystem.d.ts.map +1 -0
  17. package/dist/drive-sync/drive-sync-filesystem.js +434 -0
  18. package/dist/drive-sync/drive-sync-filesystem.js.map +1 -0
  19. package/dist/drive-sync/drive-sync-planner.d.ts +76 -0
  20. package/dist/drive-sync/drive-sync-planner.d.ts.map +1 -0
  21. package/dist/drive-sync/drive-sync-planner.js +363 -0
  22. package/dist/drive-sync/drive-sync-planner.js.map +1 -0
  23. package/dist/drive-sync/drive-sync-remote-planner.d.ts +52 -0
  24. package/dist/drive-sync/drive-sync-remote-planner.d.ts.map +1 -0
  25. package/dist/drive-sync/drive-sync-remote-planner.js +77 -0
  26. package/dist/drive-sync/drive-sync-remote-planner.js.map +1 -0
  27. package/dist/drive-sync/drive-sync-scheduler.d.ts +51 -0
  28. package/dist/drive-sync/drive-sync-scheduler.d.ts.map +1 -0
  29. package/dist/drive-sync/drive-sync-scheduler.js +304 -0
  30. package/dist/drive-sync/drive-sync-scheduler.js.map +1 -0
  31. package/dist/drive-sync/drive-sync-state-applier.d.ts +84 -0
  32. package/dist/drive-sync/drive-sync-state-applier.d.ts.map +1 -0
  33. package/dist/drive-sync/drive-sync-state-applier.js +153 -0
  34. package/dist/drive-sync/drive-sync-state-applier.js.map +1 -0
  35. package/dist/drive-sync/drive-sync-transfer.d.ts +86 -0
  36. package/dist/drive-sync/drive-sync-transfer.d.ts.map +1 -0
  37. package/dist/drive-sync/drive-sync-transfer.js +245 -0
  38. package/dist/drive-sync/drive-sync-transfer.js.map +1 -0
  39. package/dist/drive-sync/drive-sync.d.ts +433 -0
  40. package/dist/drive-sync/drive-sync.d.ts.map +1 -0
  41. package/dist/drive-sync/drive-sync.js +1677 -0
  42. package/dist/drive-sync/drive-sync.js.map +1 -0
  43. package/dist/{managed-runtime → drive-sync}/runtime-utils.d.ts +2 -2
  44. package/dist/drive-sync/runtime-utils.d.ts.map +1 -0
  45. package/dist/{managed-runtime → drive-sync}/runtime-utils.js +1 -1
  46. package/dist/drive-sync/runtime-utils.js.map +1 -0
  47. package/dist/finalize-subagent-run.d.ts +2 -1
  48. package/dist/finalize-subagent-run.d.ts.map +1 -1
  49. package/dist/finalize-subagent-run.js.map +1 -1
  50. package/dist/gateway-local-runtime.d.ts +7 -1
  51. package/dist/gateway-local-runtime.d.ts.map +1 -1
  52. package/dist/gateway-local-runtime.js +26 -5
  53. package/dist/gateway-local-runtime.js.map +1 -1
  54. package/dist/gateway-state.d.ts +4 -0
  55. package/dist/gateway-state.d.ts.map +1 -1
  56. package/dist/gateway-state.js +6 -2
  57. package/dist/gateway-state.js.map +1 -1
  58. package/dist/index.js +4102 -2409
  59. package/dist/index.js.map +4 -4
  60. package/dist/local-runtime/drive-sync-supervisor.d.ts +14 -0
  61. package/dist/local-runtime/drive-sync-supervisor.d.ts.map +1 -0
  62. package/dist/local-runtime/drive-sync-supervisor.js +79 -0
  63. package/dist/local-runtime/drive-sync-supervisor.js.map +1 -0
  64. package/dist/local-runtime/shutdown-supervisor.d.ts +1 -0
  65. package/dist/local-runtime/shutdown-supervisor.d.ts.map +1 -1
  66. package/dist/local-runtime/shutdown-supervisor.js +5 -2
  67. package/dist/local-runtime/shutdown-supervisor.js.map +1 -1
  68. package/dist/subagent-adapters/types.d.ts +1 -1
  69. package/dist/subagent-adapters/types.d.ts.map +1 -1
  70. package/dist/subagent-output-persistence.d.ts +1 -1
  71. package/dist/subagent-output-persistence.d.ts.map +1 -1
  72. package/dist/subagent-output-persistence.js +1 -1
  73. package/dist/subagent-output-persistence.js.map +1 -1
  74. package/package.json +6 -6
  75. package/dist/managed-runtime/config.d.ts +0 -20
  76. package/dist/managed-runtime/config.d.ts.map +0 -1
  77. package/dist/managed-runtime/config.js +0 -80
  78. package/dist/managed-runtime/config.js.map +0 -1
  79. package/dist/managed-runtime/control-client.d.ts +0 -66
  80. package/dist/managed-runtime/control-client.d.ts.map +0 -1
  81. package/dist/managed-runtime/control-client.js +0 -142
  82. package/dist/managed-runtime/control-client.js.map +0 -1
  83. package/dist/managed-runtime/dependencies.d.ts +0 -17
  84. package/dist/managed-runtime/dependencies.d.ts.map +0 -1
  85. package/dist/managed-runtime/dependencies.js +0 -28
  86. package/dist/managed-runtime/dependencies.js.map +0 -1
  87. package/dist/managed-runtime/execution-dispatcher.d.ts +0 -25
  88. package/dist/managed-runtime/execution-dispatcher.d.ts.map +0 -1
  89. package/dist/managed-runtime/execution-dispatcher.js +0 -155
  90. package/dist/managed-runtime/execution-dispatcher.js.map +0 -1
  91. package/dist/managed-runtime/heartbeat.d.ts +0 -7
  92. package/dist/managed-runtime/heartbeat.d.ts.map +0 -1
  93. package/dist/managed-runtime/heartbeat.js +0 -44
  94. package/dist/managed-runtime/heartbeat.js.map +0 -1
  95. package/dist/managed-runtime/host-state.d.ts +0 -15
  96. package/dist/managed-runtime/host-state.d.ts.map +0 -1
  97. package/dist/managed-runtime/host-state.js +0 -50
  98. package/dist/managed-runtime/host-state.js.map +0 -1
  99. package/dist/managed-runtime/realtime.d.ts +0 -25
  100. package/dist/managed-runtime/realtime.d.ts.map +0 -1
  101. package/dist/managed-runtime/realtime.js +0 -189
  102. package/dist/managed-runtime/realtime.js.map +0 -1
  103. package/dist/managed-runtime/runtime-utils.d.ts.map +0 -1
  104. package/dist/managed-runtime/runtime-utils.js.map +0 -1
  105. package/dist/managed-runtime/shell-execution.d.ts +0 -33
  106. package/dist/managed-runtime/shell-execution.d.ts.map +0 -1
  107. package/dist/managed-runtime/shell-execution.js +0 -186
  108. package/dist/managed-runtime/shell-execution.js.map +0 -1
  109. package/dist/managed-runtime/step-result.d.ts +0 -22
  110. package/dist/managed-runtime/step-result.d.ts.map +0 -1
  111. package/dist/managed-runtime/step-result.js +0 -252
  112. package/dist/managed-runtime/step-result.js.map +0 -1
  113. package/dist/managed-runtime/wake-signal.d.ts +0 -5
  114. package/dist/managed-runtime/wake-signal.d.ts.map +0 -1
  115. package/dist/managed-runtime/wake-signal.js +0 -29
  116. package/dist/managed-runtime/wake-signal.js.map +0 -1
  117. package/dist/managed-runtime.d.ts +0 -8
  118. package/dist/managed-runtime.d.ts.map +0 -1
  119. package/dist/managed-runtime.js +0 -224
  120. package/dist/managed-runtime.js.map +0 -1
@@ -1,224 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { setTimeout as sleep } from 'node:timers/promises';
3
- import { resolveManagedGatewayRuntimeConfig, } from './managed-runtime/config.js';
4
- import { resolveManagedGatewayRuntimeDependencies, } from './managed-runtime/dependencies.js';
5
- import { executeManagedLinuxExecution } from './managed-runtime/execution-dispatcher.js';
6
- import { startHostHeartbeatLoop } from './managed-runtime/heartbeat.js';
7
- import { describeLinuxHostStopReason, readLinuxHostObservedState, } from './managed-runtime/host-state.js';
8
- import { MANAGED_GATEWAY_LOG_PREFIX } from './managed-runtime/runtime-utils.js';
9
- import { createWakeSignal } from './managed-runtime/wake-signal.js';
10
- export { buildManagedShellExecutionEnv } from './managed-runtime/shell-execution.js';
11
- export { resolveManagedGatewayRuntimeConfig } from './managed-runtime/config.js';
12
- export async function startManagedGatewayRuntime(config = resolveManagedGatewayRuntimeConfig(), dependencies = {}) {
13
- const runtimeDependencies = resolveManagedGatewayRuntimeDependencies(dependencies);
14
- let shutdownRequested = false;
15
- let draining = false;
16
- let reconciliationRequired = true;
17
- let activeExecutionId = null;
18
- let requestWakeSignal = null;
19
- let fatalHeartbeatError = null;
20
- const requestShutdown = (reason) => {
21
- if (shutdownRequested) {
22
- return;
23
- }
24
- shutdownRequested = true;
25
- requestWakeSignal?.(reason);
26
- };
27
- const applyObservedHostState = (state, source) => {
28
- const stopReason = describeLinuxHostStopReason(state, config.hostAttemptGeneration);
29
- if (shutdownRequested) {
30
- return;
31
- }
32
- if (stopReason) {
33
- if (!draining) {
34
- draining = true;
35
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} draining due to host lifecycle signal`, {
36
- source,
37
- reason: stopReason,
38
- hostId: config.hostId,
39
- attemptGeneration: config.hostAttemptGeneration,
40
- status: state.status,
41
- runtimeState: state.runtimeState,
42
- desiredPowerState: state.desiredPowerState,
43
- allocationState: state.allocationState,
44
- });
45
- requestWakeSignal?.('host_drain_requested');
46
- }
47
- return;
48
- }
49
- if (draining) {
50
- draining = false;
51
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} host became runnable again; resuming dispatch`, {
52
- source,
53
- hostId: config.hostId,
54
- attemptGeneration: config.hostAttemptGeneration,
55
- });
56
- requestWakeSignal?.('host_runnable_again');
57
- }
58
- };
59
- const heartbeatHost = async () => {
60
- const host = await runtimeDependencies.heartbeatLinuxHost({
61
- controlUrl: config.hostControlUrl,
62
- controlToken: config.hostControlToken,
63
- runtimeId: config.runtimeId,
64
- controlTimeoutMs: config.controlTimeoutMs,
65
- });
66
- const observedHostState = readLinuxHostObservedState(host);
67
- applyObservedHostState(observedHostState, 'heartbeat');
68
- if (!shutdownRequested &&
69
- !draining &&
70
- !activeExecutionId &&
71
- requestWakeSignal &&
72
- !describeLinuxHostStopReason(observedHostState, config.hostAttemptGeneration)) {
73
- requestWakeSignal('heartbeat_tick');
74
- }
75
- };
76
- const onSignal = (signal) => {
77
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} received shutdown signal`, { signal });
78
- requestShutdown('shutdown');
79
- };
80
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} starting managed gateway runtime`, {
81
- agentId: config.agentId,
82
- hostId: config.hostId,
83
- attemptGeneration: config.hostAttemptGeneration,
84
- runtimeId: config.runtimeId,
85
- });
86
- let stopHeartbeat = null;
87
- let stopRealtimeWakeLoop = null;
88
- let unsubscribeAuthStateChange = null;
89
- const removeSignalHandlers = runtimeDependencies.registerSignalHandlers(onSignal);
90
- try {
91
- await heartbeatHost();
92
- if (shutdownRequested) {
93
- return;
94
- }
95
- const { requestWake, waitForWake } = createWakeSignal('startup');
96
- requestWakeSignal = requestWake;
97
- const realtimeClient = await runtimeDependencies.createRealtimeClient({
98
- supabaseUrl: config.supabaseUrl,
99
- supabaseAnonKey: config.supabaseAnonKey,
100
- hostControlToken: config.hostControlToken,
101
- agentId: config.agentId,
102
- hostId: config.hostId,
103
- hostAttemptGeneration: config.hostAttemptGeneration,
104
- controlTimeoutMs: config.controlTimeoutMs,
105
- });
106
- unsubscribeAuthStateChange = realtimeClient.unsubscribeAuthStateChange;
107
- stopRealtimeWakeLoop = runtimeDependencies.startRealtimeWakeLoop({
108
- supabase: realtimeClient.supabase,
109
- hostId: config.hostId,
110
- hostAttemptGeneration: config.hostAttemptGeneration,
111
- retryBackoffMs: config.retryBackoffMs,
112
- onReconnectRequired() {
113
- reconciliationRequired = true;
114
- },
115
- onHostStateObserved: applyObservedHostState,
116
- requestWake,
117
- shouldStop: () => shutdownRequested,
118
- });
119
- stopHeartbeat = startHostHeartbeatLoop({
120
- intervalMs: config.heartbeatIntervalMs,
121
- maxConsecutiveFailures: config.maxConsecutiveHeartbeatFailures,
122
- heartbeatHost,
123
- onFatalFailure: (error) => {
124
- if (fatalHeartbeatError) {
125
- return;
126
- }
127
- fatalHeartbeatError = error;
128
- console.error(`${MANAGED_GATEWAY_LOG_PREFIX} stopping after repeated heartbeat failures`, { error });
129
- requestShutdown('heartbeat_failure');
130
- },
131
- });
132
- while (!shutdownRequested) {
133
- await waitForWake();
134
- if (fatalHeartbeatError || shutdownRequested) {
135
- break;
136
- }
137
- if (reconciliationRequired) {
138
- try {
139
- const reconciliation = await runtimeDependencies.reconcileExecutionLifecycle({
140
- controlUrl: config.hostControlUrl,
141
- controlToken: config.hostControlToken,
142
- runtimeId: config.runtimeId,
143
- controlTimeoutMs: config.controlTimeoutMs,
144
- });
145
- reconciliationRequired = false;
146
- if (reconciliation.recoveredCount > 0 || reconciliation.requeuedCount > 0) {
147
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} reconciled stale managed executions`, reconciliation);
148
- }
149
- }
150
- catch (error) {
151
- console.error(`${MANAGED_GATEWAY_LOG_PREFIX} failed to reconcile execution lifecycle`, { error });
152
- await sleep(config.retryBackoffMs);
153
- requestWake('reconcile_retry');
154
- continue;
155
- }
156
- }
157
- if (draining) {
158
- continue;
159
- }
160
- while (!shutdownRequested && !draining) {
161
- try {
162
- const claimToken = randomUUID();
163
- const execution = await runtimeDependencies.dispatchLinuxExecution({
164
- controlUrl: config.hostControlUrl,
165
- controlToken: config.hostControlToken,
166
- runtimeId: config.runtimeId,
167
- claimToken,
168
- controlTimeoutMs: config.controlTimeoutMs,
169
- });
170
- if (!execution?.id) {
171
- break;
172
- }
173
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} running managed execution`, {
174
- executionId: execution.id,
175
- agentId: execution.agent_id,
176
- });
177
- const outcome = await executeManagedLinuxExecution({
178
- config,
179
- execution,
180
- registerCancellation: () => undefined,
181
- onExecutionStarted(executionId) {
182
- activeExecutionId = executionId;
183
- },
184
- onExecutionFinished() {
185
- activeExecutionId = null;
186
- },
187
- dependencies: runtimeDependencies,
188
- });
189
- if (outcome.reconciliationRequired) {
190
- reconciliationRequired = true;
191
- requestWake(outcome.wakeReason ?? 'post_execution_reconcile');
192
- break;
193
- }
194
- if (reconciliationRequired) {
195
- requestWake('post_execution_reconcile');
196
- break;
197
- }
198
- }
199
- catch (error) {
200
- console.error(`${MANAGED_GATEWAY_LOG_PREFIX} failed to dispatch managed execution`, { error });
201
- reconciliationRequired = true;
202
- await sleep(config.retryBackoffMs);
203
- requestWake('dispatch_retry');
204
- break;
205
- }
206
- }
207
- }
208
- }
209
- finally {
210
- stopHeartbeat?.();
211
- await stopRealtimeWakeLoop?.();
212
- unsubscribeAuthStateChange?.();
213
- removeSignalHandlers();
214
- console.log(`${MANAGED_GATEWAY_LOG_PREFIX} stopped managed gateway runtime`, {
215
- agentId: config.agentId,
216
- hostId: config.hostId,
217
- attemptGeneration: config.hostAttemptGeneration,
218
- });
219
- }
220
- if (fatalHeartbeatError) {
221
- throw fatalHeartbeatError;
222
- }
223
- }
224
- //# sourceMappingURL=managed-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"managed-runtime.js","sourceRoot":"","sources":["../src/managed-runtime.ts"],"names":[],"mappings":"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"}