@grackle-ai/core 0.89.0 → 0.89.1

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 +1 @@
1
- {"version":3,"file":"auto-reconnect.d.ts","sourceRoot":"","sources":["../src/auto-reconnect.ts"],"names":[],"mappings":"AA0CA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4CvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
1
+ {"version":3,"file":"auto-reconnect.d.ts","sourceRoot":"","sources":["../src/auto-reconnect.ts"],"names":[],"mappings":"AA+CA;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsFvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
@@ -16,6 +16,8 @@ const RECONNECT_MAX_RETRIES = 5;
16
16
  const RECONNECT_MAX_DELAY_MS = 120_000;
17
17
  /** Multiplier for exponential backoff. */
18
18
  const RECONNECT_BACKOFF_MULTIPLIER = 2;
19
+ /** Interval between probes for sleeping environments (milliseconds). */
20
+ const PROBE_INTERVAL_MS = 60_000;
19
21
  /** Tracks reconnect backoff state per environment. */
20
22
  const reconnectStates = new Map();
21
23
  /** Prevents concurrent reconnect attempts for the same environment. */
@@ -30,6 +32,7 @@ const reconnecting = new Set();
30
32
  */
31
33
  export async function attemptReconnects() {
32
34
  const environments = envRegistry.listEnvironments();
35
+ // ── Phase 1: Disconnected environments (exponential backoff) ──
33
36
  const disconnected = environments.filter((env) => env.status === "disconnected");
34
37
  for (const env of disconnected) {
35
38
  const state = reconnectStates.get(env.id);
@@ -38,6 +41,7 @@ export async function attemptReconnects() {
38
41
  reconnectStates.set(env.id, {
39
42
  attempts: 0,
40
43
  nextRetryAt: Date.now() + RECONNECT_INITIAL_DELAY_MS,
44
+ lastProbeAt: 0,
41
45
  });
42
46
  continue;
43
47
  }
@@ -58,10 +62,42 @@ export async function attemptReconnects() {
58
62
  logger.error({ environmentId: env.id, err }, "Unhandled error during auto-reconnect");
59
63
  });
60
64
  }
61
- // Clean up state for environments that are no longer disconnected
65
+ // ── Phase 2: Sleeping environments (periodic probe) ──────
66
+ const sleeping = environments.filter((env) => env.status === "sleeping");
67
+ for (const env of sleeping) {
68
+ // Don't auto-probe codespace environments — gh codespace ssh can
69
+ // auto-start a stopped codespace, which is expensive.
70
+ if (env.adapterType === "codespace") {
71
+ continue;
72
+ }
73
+ const state = reconnectStates.get(env.id);
74
+ // First time seeing this sleeping env (e.g., after server restart)
75
+ // — initialize with lastProbeAt = now so first probe fires after interval.
76
+ if (!state) {
77
+ reconnectStates.set(env.id, {
78
+ attempts: RECONNECT_MAX_RETRIES,
79
+ nextRetryAt: 0,
80
+ lastProbeAt: Date.now(),
81
+ });
82
+ continue;
83
+ }
84
+ // Probe interval not elapsed yet
85
+ if (Date.now() - state.lastProbeAt < PROBE_INTERVAL_MS) {
86
+ continue;
87
+ }
88
+ // Already reconnecting/probing
89
+ if (reconnecting.has(env.id)) {
90
+ continue;
91
+ }
92
+ // Attempt probe (fire-and-forget)
93
+ tryProbe(env.id).catch((err) => {
94
+ logger.debug({ environmentId: env.id, err }, "Unhandled error during sleeping probe");
95
+ });
96
+ }
97
+ // Clean up state for environments that are no longer disconnected or sleeping
62
98
  for (const [envId] of reconnectStates) {
63
99
  const env = environments.find((e) => e.id === envId);
64
- if (env?.status !== "disconnected") {
100
+ if (env?.status !== "disconnected" && env?.status !== "sleeping") {
65
101
  reconnectStates.delete(envId);
66
102
  }
67
103
  }
@@ -83,7 +119,7 @@ export function clearReconnectState(environmentId) {
83
119
  * attempts to zero and nextRetryAt to now.
84
120
  */
85
121
  export function resetReconnectState(environmentId) {
86
- reconnectStates.set(environmentId, { attempts: 0, nextRetryAt: Date.now() });
122
+ reconnectStates.set(environmentId, { attempts: 0, nextRetryAt: Date.now(), lastProbeAt: 0 });
87
123
  }
88
124
  /** @internal Reset all reconnect state for testing. */
89
125
  export function _resetForTesting() {
@@ -91,6 +127,53 @@ export function _resetForTesting() {
91
127
  reconnecting.clear();
92
128
  }
93
129
  // ─── Internal ───────────────────────────────────────────────
130
+ /**
131
+ * Run the reconnect/provision flow and complete the connection.
132
+ * Shared success path for both {@link tryReconnect} and {@link tryProbe}.
133
+ *
134
+ * @returns `true` if the connection was established, `false` if skipped
135
+ * (environment removed, no adapter registered).
136
+ */
137
+ async function connectAndRecover(environmentId) {
138
+ const env = envRegistry.getEnvironment(environmentId);
139
+ if (!env) {
140
+ reconnectStates.delete(environmentId);
141
+ return false;
142
+ }
143
+ const adapter = adapterManager.getAdapter(env.adapterType);
144
+ if (!adapter) {
145
+ logger.warn({ environmentId, adapterType: env.adapterType }, "No adapter registered — skipping reconnect");
146
+ return false;
147
+ }
148
+ envRegistry.updateEnvironmentStatus(environmentId, "connecting");
149
+ emit("environment.changed", {});
150
+ const config = parseAdapterConfig(env.adapterConfig);
151
+ config.defaultRuntime = resolveBootstrapRuntime(env);
152
+ const powerlineToken = env.powerlineToken;
153
+ // Run reconnectOrProvision — tries fast reconnect if supported, falls back to provision
154
+ for await (const event of reconnectOrProvision(environmentId, adapter, config, powerlineToken, !!env.bootstrapped)) {
155
+ logger.debug({ environmentId, stage: event.stage, message: event.message }, "Reconnect progress");
156
+ }
157
+ // Establish gRPC connection
158
+ const conn = await adapter.connect(environmentId, config, powerlineToken);
159
+ adapterManager.setConnection(environmentId, conn);
160
+ // Push tokens (local environments exclude file tokens)
161
+ if (env.adapterType === "local") {
162
+ await tokenPush.pushToEnv(environmentId, { excludeFileTokens: true });
163
+ }
164
+ else {
165
+ await tokenPush.pushToEnv(environmentId);
166
+ }
167
+ envRegistry.updateEnvironmentStatus(environmentId, "connected");
168
+ envRegistry.markBootstrapped(environmentId);
169
+ emit("environment.changed", {});
170
+ // Auto-recover suspended sessions (fire-and-forget)
171
+ recoverSuspendedSessions(environmentId, conn).catch((recoverErr) => {
172
+ logger.error({ environmentId, err: recoverErr }, "Session recovery failed after auto-reconnect");
173
+ });
174
+ reconnectStates.delete(environmentId);
175
+ return true;
176
+ }
94
177
  /**
95
178
  * Attempt to reconnect a single disconnected environment.
96
179
  * Uses the existing `reconnectOrProvision` flow from adapter-sdk.
@@ -98,55 +181,22 @@ export function _resetForTesting() {
98
181
  async function tryReconnect(environmentId) {
99
182
  reconnecting.add(environmentId);
100
183
  try {
101
- // Re-fetch environment in case it was removed while waiting
102
- const env = envRegistry.getEnvironment(environmentId);
103
- if (!env) {
104
- reconnectStates.delete(environmentId);
105
- return;
184
+ logger.info({ environmentId }, "Attempting auto-reconnect");
185
+ const connected = await connectAndRecover(environmentId);
186
+ if (connected) {
187
+ logger.info({ environmentId }, "Auto-reconnect successful");
106
188
  }
107
- const adapter = adapterManager.getAdapter(env.adapterType);
108
- if (!adapter) {
109
- logger.warn({ environmentId, adapterType: env.adapterType }, "No adapter registered — skipping reconnect");
110
- return;
111
- }
112
- logger.info({ environmentId, adapterType: env.adapterType }, "Attempting auto-reconnect");
113
- envRegistry.updateEnvironmentStatus(environmentId, "connecting");
114
- emit("environment.changed", {});
115
- const config = parseAdapterConfig(env.adapterConfig);
116
- config.defaultRuntime = resolveBootstrapRuntime(env);
117
- const powerlineToken = env.powerlineToken;
118
- // Run reconnectOrProvision — tries fast reconnect if supported, falls back to provision
119
- for await (const event of reconnectOrProvision(environmentId, adapter, config, powerlineToken, !!env.bootstrapped)) {
120
- logger.debug({ environmentId, stage: event.stage, message: event.message }, "Reconnect progress");
121
- }
122
- // Establish gRPC connection
123
- const conn = await adapter.connect(environmentId, config, powerlineToken);
124
- adapterManager.setConnection(environmentId, conn);
125
- // Push tokens (local environments exclude file tokens)
126
- if (env.adapterType === "local") {
127
- await tokenPush.pushToEnv(environmentId, { excludeFileTokens: true });
128
- }
129
- else {
130
- await tokenPush.pushToEnv(environmentId);
131
- }
132
- envRegistry.updateEnvironmentStatus(environmentId, "connected");
133
- envRegistry.markBootstrapped(environmentId);
134
- emit("environment.changed", {});
135
- // Auto-recover suspended sessions (fire-and-forget)
136
- recoverSuspendedSessions(environmentId, conn).catch((err) => {
137
- logger.error({ environmentId, err }, "Session recovery failed after auto-reconnect");
138
- });
139
- logger.info({ environmentId }, "Auto-reconnect successful");
140
- reconnectStates.delete(environmentId);
141
189
  }
142
190
  catch (err) {
143
191
  // Clean up any partially-established connection to avoid leaking state
144
192
  adapterManager.removeConnection(environmentId);
145
- const state = reconnectStates.get(environmentId) ?? { attempts: 0, nextRetryAt: 0 };
193
+ const state = reconnectStates.get(environmentId) ?? { attempts: 0, nextRetryAt: 0, lastProbeAt: 0 };
146
194
  state.attempts++;
147
195
  if (state.attempts >= RECONNECT_MAX_RETRIES) {
148
- logger.error({ environmentId, attempts: state.attempts, err }, "Auto-reconnect exhausted all retries — giving up");
149
- envRegistry.updateEnvironmentStatus(environmentId, "error");
196
+ logger.warn({ environmentId, attempts: state.attempts, err }, "Auto-reconnect exhausted all retries — entering sleeping state for periodic probing");
197
+ envRegistry.updateEnvironmentStatus(environmentId, "sleeping");
198
+ state.lastProbeAt = Date.now();
199
+ reconnectStates.set(environmentId, state);
150
200
  emit("environment.changed", {});
151
201
  }
152
202
  else {
@@ -162,4 +212,34 @@ async function tryReconnect(environmentId) {
162
212
  reconnecting.delete(environmentId);
163
213
  }
164
214
  }
215
+ /**
216
+ * Probe a sleeping environment to check if it has become reachable.
217
+ * On success: transitions to connected and recovers sessions.
218
+ * On failure: stays sleeping, updates lastProbeAt, logs at debug level.
219
+ */
220
+ async function tryProbe(environmentId) {
221
+ reconnecting.add(environmentId);
222
+ try {
223
+ logger.debug({ environmentId }, "Probing sleeping environment");
224
+ const recovered = await connectAndRecover(environmentId);
225
+ if (recovered) {
226
+ logger.info({ environmentId }, "Sleeping environment recovered — now connected");
227
+ }
228
+ }
229
+ catch (err) {
230
+ // Clean up any partially-established connection
231
+ adapterManager.removeConnection(environmentId);
232
+ // Stay sleeping — update lastProbeAt but do NOT increment attempts
233
+ const state = reconnectStates.get(environmentId);
234
+ if (state) {
235
+ state.lastProbeAt = Date.now();
236
+ }
237
+ envRegistry.updateEnvironmentStatus(environmentId, "sleeping");
238
+ emit("environment.changed", {});
239
+ logger.debug({ environmentId, err }, "Sleeping probe failed — will retry later");
240
+ }
241
+ finally {
242
+ reconnecting.delete(environmentId);
243
+ }
244
+ }
165
245
  //# sourceMappingURL=auto-reconnect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-reconnect.js","sourceRoot":"","sources":["../src/auto-reconnect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-reconnect.js","sourceRoot":"","sources":["../src/auto-reconnect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/core",
3
- "version": "0.89.0",
3
+ "version": "0.89.1",
4
4
  "description": "Core gRPC business logic for Grackle — RPC handlers, event system, streaming, session lifecycle",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,12 +36,12 @@
36
36
  "pino": "^10.3.1",
37
37
  "ulid": "^2.3.0",
38
38
  "uuid": "^11.0.0",
39
- "@grackle-ai/auth": "0.89.0",
40
- "@grackle-ai/adapter-sdk": "0.89.0",
41
- "@grackle-ai/common": "0.89.0",
42
- "@grackle-ai/database": "0.89.0",
43
- "@grackle-ai/knowledge": "0.89.0",
44
- "@grackle-ai/prompt": "0.89.0"
39
+ "@grackle-ai/auth": "0.89.1",
40
+ "@grackle-ai/adapter-sdk": "0.89.1",
41
+ "@grackle-ai/database": "0.89.1",
42
+ "@grackle-ai/common": "0.89.1",
43
+ "@grackle-ai/knowledge": "0.89.1",
44
+ "@grackle-ai/prompt": "0.89.1"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@rushstack/heft": "1.2.7",