@grackle-ai/core 0.133.1 → 0.135.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,13 @@ export interface TokenItem {
15
15
  filePath?: string;
16
16
  /** The credential value. */
17
17
  value: string;
18
+ /**
19
+ * The credential-provider block that materialized this token. Server-internal
20
+ * source tag used by {@link findUnsatisfiedNeeds} to decide whether a runtime's
21
+ * advertised needs are met; it is **never delivered** over the wire (the
22
+ * `authenticate` mapper picks only `name`/`type`/`envVar`/`filePath`/`value`).
23
+ */
24
+ provider?: keyof CredentialProviderConfig;
18
25
  }
19
26
  /** A bundle of tokens — the return shape of {@link buildProviderTokenBundle}. */
20
27
  export interface ProviderTokenBundle {
@@ -68,6 +75,61 @@ export interface ProtectedResourceDescriptor {
68
75
  * materializes the actual secret values.
69
76
  */
70
77
  export declare function deriveCredentialNeeds(runtime: string, config: CredentialProviderConfig): ProtectedResourceDescriptor[];
78
+ /**
79
+ * The expiry state of a credential, as far as is knowable from a purely offline
80
+ * inspection of a credential file. Only the OAuth-file providers (Claude
81
+ * subscription, Codex) carry an embedded, parseable expiry; for every other
82
+ * credential kind (API keys, GitHub/Copilot/Goose tokens) expiry is not knowable
83
+ * offline and inspection returns `"unknown"`.
84
+ *
85
+ * - `valid` — present and not past expiry.
86
+ * - `expired-recoverable` — past expiry but a refresh token is present, so the
87
+ * runtime transparently refreshes it on launch (not a spawn blocker).
88
+ * - `expired-unrecoverable` — past expiry with no refresh token; re-login required
89
+ * (the genuine "will 401 deep in the runtime" case worth failing fast on).
90
+ * - `unknown` — expiry is not offline-knowable, or the file shape is unexpected
91
+ * (fail open: never treated as a blocker).
92
+ */
93
+ export type CredentialExpiryState = "valid" | "expired-recoverable" | "expired-unrecoverable" | "unknown";
94
+ /**
95
+ * Determine the offline-knowable {@link CredentialExpiryState} of a materialized
96
+ * credential {@link TokenItem}. Only OAuth-file tokens (`claude-credentials`,
97
+ * `codex-auth`) carry a parseable expiry; every other token returns `"unknown"`
98
+ * because expiry is not derivable without a network call. Pure; fails open.
99
+ */
100
+ export declare function inspectFileCredentialExpiry(token: TokenItem, now: number): CredentialExpiryState;
101
+ /** A credential need that the materialized bundle does not satisfy, with the reason. */
102
+ export interface UnsatisfiedNeed {
103
+ /** The advertised need that is not met. */
104
+ need: ProtectedResourceDescriptor;
105
+ /** Why the need is unmet: no credential at all, or an expired non-refreshable one. */
106
+ reason: "missing" | "expired";
107
+ }
108
+ /**
109
+ * Cross-check a runtime's advertised {@link ProtectedResourceDescriptor needs}
110
+ * against the credentials a {@link buildProviderTokenBundle} actually materialized,
111
+ * returning the needs that are not satisfied. A need is unsatisfied when:
112
+ *
113
+ * - **missing** — the bundle contains no token tagged for the need's provider, or
114
+ * - **expired** — the provider materialized credential(s) but **every** one is an
115
+ * expired OAuth file with no refresh token (re-login required).
116
+ *
117
+ * A token counts as usable unless it is `expired-unrecoverable` — a refreshable
118
+ * expiry (the runtime refreshes on launch) and an `unknown`-expiry token (e.g. an
119
+ * API key, whose expiry is not offline-knowable) both satisfy the need. So when a
120
+ * provider emits more than one credential (e.g. Codex emits both `~/.codex/auth.json`
121
+ * *and* `OPENAI_API_KEY`), a stale OAuth file does not fail the spawn as long as a
122
+ * working fallback is present.
123
+ *
124
+ * Pure: derives entirely from `needs` + `bundle` + `now`, reads nothing.
125
+ */
126
+ export declare function findUnsatisfiedNeeds(needs: ProtectedResourceDescriptor[], bundle: ProviderTokenBundle, now: number): UnsatisfiedNeed[];
127
+ /**
128
+ * Build a human-readable, actionable pre-flight error message for credentials
129
+ * that are required but missing or expired — surfaced to the CLI and web before
130
+ * a spawn instead of as an opaque 401 deep inside the runtime.
131
+ */
132
+ export declare function formatPreflightCredentialError(runtime: string, unsatisfied: UnsatisfiedNeed[]): string;
71
133
  /**
72
134
  * Resolve a GitHub token from the `gh` CLI's credential store.
73
135
  * Returns `undefined` if the CLI is unavailable, not authenticated, or errors.
@@ -1 +1 @@
1
- {"version":3,"file":"credential-bundle.d.ts","sourceRoot":"","sources":["../src/credential-bundle.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAOD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAUhF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,yBAAyB,GAAG,cAAc,CAAC;AAExF;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,wBAAwB,CAAC;CAC1C;AAqFD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,wBAAwB,GAC/B,2BAA2B,EAAE,CAY/B;AAKD;;;;GAIG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7E;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CA2Q9B"}
1
+ {"version":3,"file":"credential-bundle.d.ts","sourceRoot":"","sources":["../src/credential-bundle.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;CAC3C;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAOD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAUhF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,yBAAyB,GAAG,cAAc,CAAC;AAExF;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oEAAoE;IACpE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,wBAAwB,CAAC;CAC1C;AAqFD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,wBAAwB,GAC/B,2BAA2B,EAAE,CAY/B;AAOD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,qBAAqB,GACrB,uBAAuB,GACvB,SAAS,CAAC;AA8Ed;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAehG;AAED,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,2BAA2B,CAAC;IAClC,sFAAsF;IACtF,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,2BAA2B,EAAE,EACpC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,GACV,eAAe,EAAE,CAenB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,eAAe,EAAE,GAC7B,MAAM,CAYR;AAKD;;;;GAIG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7E;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAwR9B"}
@@ -133,6 +133,157 @@ export function deriveCredentialNeeds(runtime, config) {
133
133
  }
134
134
  return needs;
135
135
  }
136
+ // ─── Pre-flight credential validation (#1316) ──────────────
137
+ /** Clock-skew buffer: treat a credential expiring within this window as already expired. */
138
+ const CREDENTIAL_EXPIRY_SKEW_MS = 60_000;
139
+ /**
140
+ * Decode a JWT payload **without verifying its signature**, returning the parsed
141
+ * claims or `undefined` when the token is not a well-formed three-segment JWT.
142
+ * Offline only — we trust the locally stored file and only read the `exp` claim.
143
+ */
144
+ function decodeJwtPayload(token) {
145
+ const segments = token.split(".");
146
+ if (segments.length !== 3) {
147
+ return undefined;
148
+ }
149
+ try {
150
+ const json = Buffer.from(segments[1], "base64url").toString("utf-8");
151
+ const parsed = JSON.parse(json);
152
+ return typeof parsed === "object" && parsed !== null
153
+ ? parsed
154
+ : undefined;
155
+ }
156
+ catch {
157
+ return undefined;
158
+ }
159
+ }
160
+ /**
161
+ * Inspect a Claude subscription credentials file (`~/.claude/.credentials.json`):
162
+ * the OAuth access token's `expiresAt` is a unix-ms timestamp sibling to a
163
+ * `refreshToken`. Fails open (`"unknown"`) on any unexpected shape.
164
+ */
165
+ function inspectClaudeCredentials(value, now) {
166
+ let oauth;
167
+ try {
168
+ // A non-object parse (`null`, a primitive) throws on property access and is
169
+ // caught below, yielding "unknown" — exactly the fail-open behavior we want.
170
+ const parsed = JSON.parse(value);
171
+ oauth = parsed.claudeAiOauth;
172
+ }
173
+ catch {
174
+ return "unknown";
175
+ }
176
+ if (!oauth || typeof oauth.accessToken !== "string" || typeof oauth.expiresAt !== "number") {
177
+ return "unknown";
178
+ }
179
+ if (oauth.expiresAt >= now + CREDENTIAL_EXPIRY_SKEW_MS) {
180
+ return "valid";
181
+ }
182
+ return typeof oauth.refreshToken === "string" && oauth.refreshToken.length > 0
183
+ ? "expired-recoverable"
184
+ : "expired-unrecoverable";
185
+ }
186
+ /**
187
+ * Inspect a Codex auth file (`~/.codex/auth.json`): `tokens.access_token` is a
188
+ * JWT whose `exp` claim (unix seconds) carries the expiry, sibling to a
189
+ * `refresh_token`. Fails open (`"unknown"`) on any unexpected shape — the token
190
+ * format is owned by the Codex runtime and may drift.
191
+ */
192
+ function inspectCodexAuth(value, now) {
193
+ let tokens;
194
+ try {
195
+ const parsed = JSON.parse(value);
196
+ tokens = parsed.tokens;
197
+ }
198
+ catch {
199
+ return "unknown";
200
+ }
201
+ if (!tokens || typeof tokens.access_token !== "string") {
202
+ return "unknown";
203
+ }
204
+ const exp = decodeJwtPayload(tokens.access_token)?.exp;
205
+ if (typeof exp !== "number") {
206
+ return "unknown";
207
+ }
208
+ if (exp * 1000 >= now + CREDENTIAL_EXPIRY_SKEW_MS) {
209
+ return "valid";
210
+ }
211
+ return typeof tokens.refresh_token === "string" && tokens.refresh_token.length > 0
212
+ ? "expired-recoverable"
213
+ : "expired-unrecoverable";
214
+ }
215
+ /**
216
+ * Determine the offline-knowable {@link CredentialExpiryState} of a materialized
217
+ * credential {@link TokenItem}. Only OAuth-file tokens (`claude-credentials`,
218
+ * `codex-auth`) carry a parseable expiry; every other token returns `"unknown"`
219
+ * because expiry is not derivable without a network call. Pure; fails open.
220
+ */
221
+ export function inspectFileCredentialExpiry(token, now) {
222
+ if (token.type !== "file") {
223
+ return "unknown";
224
+ }
225
+ switch (token.name) {
226
+ case "claude-credentials": {
227
+ return inspectClaudeCredentials(token.value, now);
228
+ }
229
+ case "codex-auth": {
230
+ return inspectCodexAuth(token.value, now);
231
+ }
232
+ default: {
233
+ return "unknown";
234
+ }
235
+ }
236
+ }
237
+ /**
238
+ * Cross-check a runtime's advertised {@link ProtectedResourceDescriptor needs}
239
+ * against the credentials a {@link buildProviderTokenBundle} actually materialized,
240
+ * returning the needs that are not satisfied. A need is unsatisfied when:
241
+ *
242
+ * - **missing** — the bundle contains no token tagged for the need's provider, or
243
+ * - **expired** — the provider materialized credential(s) but **every** one is an
244
+ * expired OAuth file with no refresh token (re-login required).
245
+ *
246
+ * A token counts as usable unless it is `expired-unrecoverable` — a refreshable
247
+ * expiry (the runtime refreshes on launch) and an `unknown`-expiry token (e.g. an
248
+ * API key, whose expiry is not offline-knowable) both satisfy the need. So when a
249
+ * provider emits more than one credential (e.g. Codex emits both `~/.codex/auth.json`
250
+ * *and* `OPENAI_API_KEY`), a stale OAuth file does not fail the spawn as long as a
251
+ * working fallback is present.
252
+ *
253
+ * Pure: derives entirely from `needs` + `bundle` + `now`, reads nothing.
254
+ */
255
+ export function findUnsatisfiedNeeds(needs, bundle, now) {
256
+ const unsatisfied = [];
257
+ for (const need of needs) {
258
+ const tokens = bundle.tokens.filter((t) => t.provider === need.provider);
259
+ if (tokens.length === 0) {
260
+ unsatisfied.push({ need, reason: "missing" });
261
+ continue;
262
+ }
263
+ // Report expired only when there is no usable credential — i.e. every token
264
+ // for the provider is an expired, non-refreshable OAuth file.
265
+ if (tokens.every((t) => inspectFileCredentialExpiry(t, now) === "expired-unrecoverable")) {
266
+ unsatisfied.push({ need, reason: "expired" });
267
+ }
268
+ }
269
+ return unsatisfied;
270
+ }
271
+ /**
272
+ * Build a human-readable, actionable pre-flight error message for credentials
273
+ * that are required but missing or expired — surfaced to the CLI and web before
274
+ * a spawn instead of as an opaque 401 deep inside the runtime.
275
+ */
276
+ export function formatPreflightCredentialError(runtime, unsatisfied) {
277
+ const lines = unsatisfied.map(({ need, reason }) => {
278
+ const subject = `${need.resourceName} (provider "${need.provider}")`;
279
+ return reason === "missing"
280
+ ? ` • ${subject}: enabled but no credential was found`
281
+ : ` • ${subject}: login expired and cannot be refreshed — re-login required`;
282
+ });
283
+ return (`Cannot start runtime "${runtime}": required credential(s) unavailable.\n` +
284
+ `${lines.join("\n")}\n` +
285
+ `Configure or disable the provider with \`grackle credential-provider set <provider> <value>\`, then retry.`);
286
+ }
136
287
  /** Timeout for the `gh auth token` subprocess call. */
137
288
  const GH_AUTH_TOKEN_TIMEOUT_MS = 5_000;
138
289
  /**
@@ -190,6 +341,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
190
341
  type: "file",
191
342
  filePath: "~/.claude/.credentials.json",
192
343
  value,
344
+ provider: "claude",
193
345
  }));
194
346
  }
195
347
  }
@@ -202,6 +354,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
202
354
  type: "env_var",
203
355
  envVar: "ANTHROPIC_API_KEY",
204
356
  value: apiKey,
357
+ provider: "claude",
205
358
  }));
206
359
  }
207
360
  }
@@ -219,6 +372,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
219
372
  type: "env_var",
220
373
  envVar: "GH_TOKEN",
221
374
  value: storedToken,
375
+ provider: "github",
222
376
  }));
223
377
  }
224
378
  else {
@@ -233,6 +387,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
233
387
  type: "env_var",
234
388
  envVar: varName,
235
389
  value,
390
+ provider: "github",
236
391
  }));
237
392
  }
238
393
  }
@@ -247,6 +402,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
247
402
  type: "env_var",
248
403
  envVar: "GITHUB_TOKEN",
249
404
  value: cliToken,
405
+ provider: "github",
250
406
  }));
251
407
  }
252
408
  }
@@ -267,6 +423,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
267
423
  type: "file",
268
424
  filePath: "~/.copilot/config.json",
269
425
  value,
426
+ provider: "copilot",
270
427
  }));
271
428
  }
272
429
  }
@@ -287,6 +444,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
287
444
  type: "env_var",
288
445
  envVar: varName,
289
446
  value,
447
+ provider: "copilot",
290
448
  }));
291
449
  }
292
450
  }
@@ -306,6 +464,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
306
464
  type: "env_var",
307
465
  envVar: envVarName,
308
466
  value: envToken,
467
+ provider: "copilot",
309
468
  }));
310
469
  }
311
470
  }
@@ -317,6 +476,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
317
476
  type: "env_var",
318
477
  envVar: "GITHUB_TOKEN",
319
478
  value: cliToken,
479
+ provider: "copilot",
320
480
  }));
321
481
  }
322
482
  }
@@ -334,6 +494,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
334
494
  type: "file",
335
495
  filePath: "~/.codex/auth.json",
336
496
  value,
497
+ provider: "codex",
337
498
  }));
338
499
  }
339
500
  }
@@ -344,6 +505,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
344
505
  type: "env_var",
345
506
  envVar: "OPENAI_API_KEY",
346
507
  value: openaiKey,
508
+ provider: "codex",
347
509
  }));
348
510
  }
349
511
  }
@@ -365,6 +527,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
365
527
  type: "file",
366
528
  filePath: gooseConfigFilePath,
367
529
  value,
530
+ provider: "goose",
368
531
  }));
369
532
  }
370
533
  }
@@ -382,6 +545,7 @@ export async function buildProviderTokenBundle(runtime, database, githubAccountI
382
545
  type: "env_var",
383
546
  envVar: varName,
384
547
  value,
548
+ provider: "goose",
385
549
  }));
386
550
  }
387
551
  }
@@ -1 +1 @@
1
- {"version":3,"file":"credential-bundle.js","sourceRoot":"","sources":["../src/credential-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-bundle.js","sourceRoot":"","sources":["../src/credential-bundle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAiBpE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,kGAAkG;AAClG,MAAM,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAqBvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC9C,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAgWN"}
1
+ {"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAwBpE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,kGAAkG;AAClG,MAAM,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAqBvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC9C,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CA0bN"}
@@ -1,5 +1,5 @@
1
1
  import { create } from "@bufbuild/protobuf";
2
- import { grackle, eventTypeToEnum, SESSION_STATUS, TERMINAL_SESSION_STATUSES, END_REASON, } from "@grackle-ai/common";
2
+ import { grackle, eventTypeToEnum, SESSION_STATUS, TERMINAL_SESSION_STATUSES, END_REASON, detectDelegation, delegationIdentityKey, deriveChildSessionId, readAgentResultStatus, } from "@grackle-ai/common";
3
3
  import { sessionStore, taskStore } from "@grackle-ai/database";
4
4
  import { recordSessionAction } from "./session-action-recorder.js";
5
5
  import * as streamHub from "./stream-hub.js";
@@ -11,6 +11,7 @@ import { logger } from "./logger.js";
11
11
  import { runWithTrace } from "./trace-context.js";
12
12
  import { emitDiagnostic } from "./telemetry.js";
13
13
  import { publishChildCompletion } from "./pipe-delivery.js";
14
+ import { ensureChildSession, closeChildSession, appendChildActivity, interruptChildSession, unwrapResultContent, } from "./subagent-session.js";
14
15
  import { cleanupLifecycleStream } from "./lifecycle-streams.js";
15
16
  import { sendInputToSession } from "./signals/signal-delivery.js";
16
17
  import { checkBudget } from "./budget-checker.js";
@@ -66,6 +67,11 @@ export function processEventStream(envelopes, options) {
66
67
  taskId: options.taskId || "",
67
68
  };
68
69
  processorRegistry.register(ctx);
70
+ // #1075: maps a delegation tool_use call id → the child session it
71
+ // materialized, so the paired tool_result can append/close that child, and so
72
+ // the finally block can interrupt any child still open when the stream ends.
73
+ // Scoped to this stream (per parent session), so no cross-session leakage.
74
+ const delegationByToolCall = new Map();
69
75
  /** Inner processing logic, extracted so it can be wrapped in runWithTrace. */
70
76
  const processEvents = async () => {
71
77
  try {
@@ -153,6 +159,72 @@ export function processEventStream(envelopes, options) {
153
159
  if (sessionEvent.diagnostic) {
154
160
  emitDiagnostic(sessionEvent);
155
161
  }
162
+ // #1075: materialize/link subagent child sessions from delegation tool
163
+ // calls (Claude Code `Agent`, Copilot `task`/`read_agent`). The child is
164
+ // a first-class session so the existing activity view can render it.
165
+ if (event.type === "tool_use" && eventToolCallId) {
166
+ try {
167
+ const parsed = JSON.parse(eventContent || "{}");
168
+ const toolName = String(parsed.tool ?? parsed.tool_name ?? parsed.name ?? "");
169
+ const toolArgs = parsed.args ?? parsed.input ?? parsed.arguments;
170
+ const info = toolName ? detectDelegation(toolName, toolArgs) : undefined;
171
+ if (info) {
172
+ const identityKey = delegationIdentityKey(info, eventToolCallId);
173
+ const childId = deriveChildSessionId(sessionId, identityKey);
174
+ ensureChildSession({
175
+ childSessionId: childId,
176
+ parentSessionId: sessionId,
177
+ info,
178
+ });
179
+ delegationByToolCall.set(eventToolCallId, {
180
+ childId,
181
+ isPoll: info.isPoll === true,
182
+ isBackground: info.isBackground === true,
183
+ });
184
+ }
185
+ }
186
+ catch (err) {
187
+ logger.warn({ err, sessionId }, "Failed to process delegation tool_use");
188
+ }
189
+ }
190
+ else if (event.type === "tool_result" && eventToolCallId) {
191
+ const link = delegationByToolCall.get(eventToolCallId);
192
+ if (link) {
193
+ // Every tool_result pairs (and consumes) its tool_use entry, so only
194
+ // genuinely-unpaired synchronous spawns remain in the map for the
195
+ // finally block to interrupt. A background/polled child whose work
196
+ // outlives the parent stream is independent and must NOT be interrupted.
197
+ delegationByToolCall.delete(eventToolCallId);
198
+ if (link.isPoll) {
199
+ // A read_agent poll surfaces partial output. On a terminal status,
200
+ // closeChildSession records the result and stops the child; otherwise
201
+ // append the partial output. Recording happens in exactly one path so
202
+ // the terminal poll output isn't duplicated in the child log.
203
+ // Unwrap first: the result may be a JSON envelope
204
+ // ({"is_ok":true,"content":"Agent completed. agent_id: …"}), and the
205
+ // status prefix lives in `content`, not the envelope.
206
+ const status = readAgentResultStatus(unwrapResultContent(eventContent));
207
+ if (status === "completed" ||
208
+ status === "failed" ||
209
+ status === "error" ||
210
+ status === "cancelled") {
211
+ closeChildSession(link.childId, eventContent, status !== "completed");
212
+ }
213
+ else {
214
+ appendChildActivity(link.childId, eventContent);
215
+ }
216
+ }
217
+ else if (link.isBackground) {
218
+ // A background spawn's result is just a handle, not completion —
219
+ // keep the child running; its output arrives via read_agent polls.
220
+ appendChildActivity(link.childId, eventContent);
221
+ }
222
+ else {
223
+ // Synchronous spawn (e.g. Claude `Agent`): the result IS the summary.
224
+ closeChildSession(link.childId, eventContent, eventToolError);
225
+ }
226
+ }
227
+ }
156
228
  // Intercept usage events and accumulate token counts on the session record
157
229
  if (event.type === "usage") {
158
230
  try {
@@ -330,6 +402,23 @@ export function processEventStream(envelopes, options) {
330
402
  }
331
403
  finally {
332
404
  processorRegistry.unregister(sessionId);
405
+ // #1075: the stream ended (normally, killed, or crashed) — interrupt any
406
+ // SYNCHRONOUS-spawn child whose tool_result never arrived so it isn't
407
+ // stranded RUNNING with no environment to reconnect to. Background spawns
408
+ // and polled children run independently of the parent stream, so they must
409
+ // NOT be interrupted here even if their handle/result never arrived (e.g.
410
+ // the stream ended right after the spawn tool_use).
411
+ //
412
+ // Known limitation (#1386): a background/polled child whose parent stream
413
+ // ends before a terminal poll stays RUNNING in the DB. It is excluded from
414
+ // all env/task/concurrency queries so it is harmless, but never reaches a
415
+ // terminal state — a reconciliation sweep is tracked as a follow-up.
416
+ for (const link of delegationByToolCall.values()) {
417
+ if (!link.isBackground && !link.isPoll) {
418
+ interruptChildSession(link.childId);
419
+ }
420
+ }
421
+ delegationByToolCall.clear();
333
422
  logWriter.endSession(logPath);
334
423
  try {
335
424
  writeTranscript(logPath);
@@ -1 +1 @@
1
- {"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoDlD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAA2B;IAC/E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;YAC/C,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAClE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,gCAAgC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAA8C,EAC9C,OAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEvC,0EAA0E;IAC1E,MAAM,GAAG,GAAqB;QAC5B,SAAS;QACT,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;KAC7B,CAAC;IAEF,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEhC,8EAA8E;IAC9E,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;QAC9C,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3B,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;YAEpE,oFAAoF;YACpF,oFAAoF;YACpF,qFAAqF;YACrF,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;oBACrD,SAAS;oBACT,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAC7C,CAAC,CAAC;gBACH,oEAAoE;gBACpE,mEAAmE;gBACnE,0EAA0E;gBAC1E,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC/D,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACjD,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;oBACrD,SAAS;oBACT,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU;oBAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,OAAO,EAAE,OAAO,CAAC,MAAM;iBACxB,CAAC,CAAC;gBACH,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC/D,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACjD,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC7B,oEAAoE;gBACpE,iEAAiE;gBACjE,qEAAqE;gBACrE,qEAAqE;gBACrE,2CAA2C;gBAC3C,MAAM,YAAY,GAAW,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;gBACjD,sEAAsE;gBACtE,wEAAwE;gBACxE,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,qEAAqE;gBACrE,mEAAmE;gBACnE,kEAAkE;gBAClE,wDAAwD;gBACxD,MAAM,cAAc,GAAW,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAW,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;gBACzC,MAAM,eAAe,GAAW,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBACvD,MAAM,WAAW,GAAW,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC/C,MAAM,eAAe,GAAY,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;gBAC3D,MAAM,cAAc,GAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;gBACzD,wEAAwE;gBACxE,6EAA6E;gBAC7E,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBACxC,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBAC/D,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;oBACtD,SAAS;oBACT,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;oBACjC,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,YAAY;oBACrB,GAAG,EAAE,QAAQ;oBACb,UAAU,EAAE,eAAe;oBAC3B,UAAU,EAAE,eAAe;oBAC3B,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,cAAc;iBAC1B,CAAC,CAAC;gBACH,oEAAoE;gBACpE,oEAAoE;gBACpE,YAAY,CAAC,SAAS,GAAG,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACjE,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAClD,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEhC,qEAAqE;gBACrE,uEAAuE;gBACvE,yEAAyE;gBACzE,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC5B,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;gBAED,2EAA2E;gBAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAI3C,CAAC;wBACF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;4BACpD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAsB,CAAC,CAAC;4BACtD,CAAC,CAAC,CAAC,CAAC;wBACN,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;4BACtD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAuB,CAAC,CAAC;4BACvD,CAAC,CAAC,CAAC,CAAC;wBACN,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;4BAC1D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAyB,CAAC,CAAC;4BACzD,CAAC,CAAC,CAAC,CAAC;wBACN,IAAI,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;4BAC9D,YAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;4BAEtF,gCAAgC;4BAChC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gCACzC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;gCAC9D,IAAI,YAAY,EAAE,CAAC;oCACjB,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oCACnD,IACE,OAAO;wCACP,CAAC,OAAO,CAAC,aAAa;wCACtB,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAuB,CAAC,EAC/D,CAAC;wCACD,MAAM,UAAU,GACd,8BAA8B,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,MAAM,YAAY,CAAC,OAAO,IAAI;4CACrG,yEAAyE;4CACzE,mCAAmC,CAAC;wCACtC,YAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;wCACzC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;wCAC7B,kBAAkB,CAChB,SAAS,EACT,OAAO,CAAC,aAAa,EACrB,UAAU,EACV,iBAAiB,CAClB;6CACE,IAAI,CAAC,CAAC,SAAkB,EAAE,EAAE;4CAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;gDACf,MAAM,CAAC,KAAK,CACV,EAAE,SAAS,EAAE,EACb,6DAA6D,CAC9D,CAAC;gDACF,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gDAC3C,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;4CAChC,CAAC;wCACH,CAAC,CAAC;6CACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;4CACtB,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,2CAA2C,CAC5C,CAAC;4CACF,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;4CAC3C,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;wCAChC,CAAC,CAAC,CAAC;wCACL,MAAM,CAAC,IAAI,CACT;4CACE,SAAS;4CACT,MAAM,EAAE,GAAG,CAAC,MAAM;4CAClB,KAAK,EAAE,YAAY,CAAC,KAAK;4CACzB,MAAM,EAAE,YAAY,CAAC,MAAM;yCAC5B,EACD,gCAAgC,CACjC,CAAC;oCACJ,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,+BAA+B,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,qEAAqE;oBACrE,kEAAkE;oBAClE,qEAAqE;oBACrE,4DAA4D;oBAC5D,oCAAoC;oBACpC,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACzD,MAAM,UAAU,GACd,aAAa,KAAK,SAAS;wBAC3B,yBAAyB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAuB,CAAC,CAAC;oBACvE,yDAAyD;oBACzD,IAAI,YAAY,KAAK,eAAe,EAAE,CAAC;wBACrC,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;wBACnE,CAAC;oBACH,CAAC;yBAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChB,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;yBAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;wBACxC,qGAAqG;wBACrG,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBACnD,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB;4BACrC,CAAC,CAAC,UAAU,CAAC,eAAe;4BAC5B,CAAC,CAAC,OAAO,EAAE,aAAa;gCACtB,CAAC,CAAC,UAAU,CAAC,UAAU;gCACvB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;wBAC3B,YAAY,CAAC,aAAa,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;oBACJ,CAAC;yBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;wBACrC,MAAM,eAAe,GAAG,GAAG,CAAC,iBAAiB;4BAC3C,CAAC,CAAC,UAAU,CAAC,eAAe;4BAC5B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;wBACtB,YAAY,CAAC,aAAa,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,SAAS,EACT,SAAS,EACT,eAAe,CAChB,CAAC;oBACJ,CAAC;yBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;wBACrC,YAAY,CAAC,aAAa,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,SAAS,EACT,SAAS,EACT,UAAU,CAAC,WAAW,CACvB,CAAC;wBACF,sBAAsB,CAAC,SAAS,CAAC,CAAC;oBACpC,CAAC;yBAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;wBACzC,MAAM,mBAAmB,GAAG,GAAG,CAAC,iBAAiB;4BAC/C,CAAC,CAAC,UAAU,CAAC,eAAe;4BAC5B,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;wBAC1B,YAAY,CAAC,aAAa,CACxB,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,SAAS,EACT,SAAS,EACT,mBAAmB,CACpB,CAAC;oBACJ,CAAC;oBAED,wEAAwE;oBACxE,qEAAqE;oBACrE,uEAAuE;oBACvE,yEAAyE;oBACzE,IACE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EACvF,CAAC;wBACD,MAAM,sBAAsB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACxD,CAAC;oBAED,4EAA4E;oBAC5E,wCAAwC;oBACxC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC9D,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BAC3C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gCAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;oCACpC,MAAM,EAAE,YAAY;oCACpB,OAAO,EAAE,6BAA6B,YAAY,+BAA+B;oCACjF,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;iCAC9C,CAAC,CAAC;gCACH,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;4BACnD,CAAC;wBACH,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,yCAAyC,CAAC,CAAC;wBAC7E,CAAC;oBACH,CAAC;oBAED,mFAAmF;oBACnF,8EAA8E;oBAC9E,6EAA6E;oBAC7E,IACE,GAAG,CAAC,MAAM;wBACV,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,QAAQ,CAClF,YAAY,CACb,EACD,CAAC;wBACD,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC7E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+EAA+E;YAC/E,mFAAmF;YACnF,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACnD,IACE,OAAO;gBACP,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAuB,CAAC;gBAC/D,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC,SAAS,EAC3C,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAuB,CAAC,EAAE,CAAC;gBAC/E,4EAA4E;gBAC5E,sEAAsE;gBACtE,MAAM,CAAC,IAAI,CACT;oBACE,SAAS;oBACT,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;oBAChB,SAAS,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG;oBACvD,SAAS,EAAG,GAAyB,CAAC,IAAI;iBAC3C,EACD,+CAA+C,CAChD,CAAC;gBACF,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;oBACxD,SAAS;oBACT,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,OAAO,EAAE,cAAc,CAAC,SAAS;iBAClC,CAAC,CAAC;gBACH,cAAc,CAAC,SAAS,GAAG,mBAAmB,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACrE,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;YACD,8EAA8E;YAC9E,gFAAgF;YAChF,2EAA2E;QAC7E,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,eAAe,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,mEAAmE;QACnE,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,mEAAmE;QACnE,aAAa,EAAE,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Subagent child-session materialization (#1075).
3
+ *
4
+ * When a parent session emits a delegation tool call (Claude Code `Agent`,
5
+ * Copilot `task`/`read_agent`), the runtime SDK isolates the subagent's context
6
+ * — the parent stream only carries the final summary, and the subagent has no
7
+ * Grackle session of its own. This module materializes the subagent as a
8
+ * **first-class child session** so it is addressable and navigable:
9
+ *
10
+ * - identity is derived deterministically from the parent + the delegation's
11
+ * identity key, so repeated references (e.g. Copilot `read_agent` polls) all
12
+ * resolve to the *same* child session (dedupe falls out of identity), and
13
+ * - the child's activity is written to its own session log (durable
14
+ * `session_actions` + JSONL + live stream-hub), the same paths every session
15
+ * uses, so the existing session activity view renders it unchanged.
16
+ *
17
+ * SDK-internal subagents only surface their final summary, so the child's
18
+ * activity starts as a "floor" (delegating prompt + result). The model is the
19
+ * same as any other session, so the activity upgrades automatically if/when a
20
+ * runtime exposes richer events.
21
+ *
22
+ * @module
23
+ */
24
+ import type { DelegationInfo } from "@grackle-ai/common";
25
+ /**
26
+ * Tool results often arrive JSON-wrapped (e.g. `{"is_ok":true,"content":"…"}`).
27
+ * Extract the human-readable `content` string so the child's floor activity
28
+ * shows clean text rather than the raw envelope — and so status parsing
29
+ * (`readAgentResultStatus`) sees the real `read_agent` prefix rather than the
30
+ * envelope. Returns the input unchanged if it isn't a JSON object with a string
31
+ * `content` field.
32
+ */
33
+ export declare function unwrapResultContent(result: string): string;
34
+ /** Parameters for {@link ensureChildSession}. */
35
+ export interface EnsureChildSessionParams {
36
+ /** Deterministic child session id (see {@link deriveChildSessionId}). */
37
+ childSessionId: string;
38
+ /** The delegating (parent) session id. */
39
+ parentSessionId: string;
40
+ /** Normalized delegation info parsed from the tool args. */
41
+ info: DelegationInfo;
42
+ }
43
+ /**
44
+ * Resolve-or-create the child session for a delegation. Idempotent: if the
45
+ * child already exists (e.g. a `read_agent` poll following the original spawn,
46
+ * or a re-emitted event), this is a no-op so no duplicate session or floor
47
+ * action is created.
48
+ *
49
+ * The child is attached to its parent **session** (via `parentSessionId`), not a
50
+ * task: it is created with `taskId=""` so it is invisible to every task-scoped
51
+ * query (status computation, active/latest session lookups used for signal
52
+ * routing, usage aggregation, reconciliation). It inherits the parent's
53
+ * `environmentId` (the subagent ran in the parent's environment, and the
54
+ * `sessions.env_id` foreign key requires a real environment), but the `subagent`
55
+ * runtime marker keeps it out of env- and lifecycle-scoped queries
56
+ * (`getActiveForEnv`, `listByEnv`, etc.) so reanimate/recovery never tries to
57
+ * reconnect a virtual child. It remains addressable by id for navigation, and
58
+ * the parent edge is recovered via `parentSessionId`. The log directory sits
59
+ * alongside the parent's so the standard session activity view renders it.
60
+ *
61
+ * @param params - Child id, parent id, and parsed delegation info.
62
+ */
63
+ export declare function ensureChildSession(params: EnsureChildSessionParams): void;
64
+ /**
65
+ * Append a result to a child session and mark it terminal. Called when the
66
+ * delegation's paired `tool_result` arrives. No-op if the child does not exist.
67
+ *
68
+ * @param childSessionId - The child session id.
69
+ * @param result - The subagent's result text (the summary, for SDK-internal subagents).
70
+ * @param isError - Whether the tool result was an error.
71
+ */
72
+ export declare function closeChildSession(childSessionId: string, result: string, isError: boolean): void;
73
+ /**
74
+ * Append incremental activity to an existing child session without closing it.
75
+ * Used for `read_agent` polls that surface partial output while the subagent is
76
+ * still running. No-op if the child does not exist or the content is empty.
77
+ *
78
+ * @param childSessionId - The child session id.
79
+ * @param content - Incremental output to append.
80
+ */
81
+ export declare function appendChildActivity(childSessionId: string, content: string): void;
82
+ /**
83
+ * Mark a still-open child session as interrupted (terminal) without recording a
84
+ * result. Called when the parent stream ends while a delegation is still
85
+ * outstanding (e.g. the parent crashed mid-subagent), so a child is never left
86
+ * stranded in `RUNNING` with no environment to reconnect to. No-op if the child
87
+ * does not exist or is already terminal.
88
+ *
89
+ * @param childSessionId - The child session id.
90
+ */
91
+ export declare function interruptChildSession(childSessionId: string): void;
92
+ //# sourceMappingURL=subagent-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-session.d.ts","sourceRoot":"","sources":["../src/subagent-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAC;AAqBxE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1D;AA8BD,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAgCzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBhG;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAcjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAYlE"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Subagent child-session materialization (#1075).
3
+ *
4
+ * When a parent session emits a delegation tool call (Claude Code `Agent`,
5
+ * Copilot `task`/`read_agent`), the runtime SDK isolates the subagent's context
6
+ * — the parent stream only carries the final summary, and the subagent has no
7
+ * Grackle session of its own. This module materializes the subagent as a
8
+ * **first-class child session** so it is addressable and navigable:
9
+ *
10
+ * - identity is derived deterministically from the parent + the delegation's
11
+ * identity key, so repeated references (e.g. Copilot `read_agent` polls) all
12
+ * resolve to the *same* child session (dedupe falls out of identity), and
13
+ * - the child's activity is written to its own session log (durable
14
+ * `session_actions` + JSONL + live stream-hub), the same paths every session
15
+ * uses, so the existing session activity view renders it unchanged.
16
+ *
17
+ * SDK-internal subagents only surface their final summary, so the child's
18
+ * activity starts as a "floor" (delegating prompt + result). The model is the
19
+ * same as any other session, so the activity upgrades automatically if/when a
20
+ * runtime exposes richer events.
21
+ *
22
+ * @module
23
+ */
24
+ import { dirname, join } from "node:path";
25
+ import { create } from "@bufbuild/protobuf";
26
+ import { grackle, SESSION_STATUS, END_REASON, TERMINAL_SESSION_STATUSES, SUBAGENT_RUNTIME, } from "@grackle-ai/common";
27
+ import { sessionStore } from "@grackle-ai/database";
28
+ import { recordSessionAction } from "./session-action-recorder.js";
29
+ import * as streamHub from "./stream-hub.js";
30
+ import * as logWriter from "./log-writer.js";
31
+ import { logger } from "./logger.js";
32
+ /**
33
+ * Maximum length of a floor activity entry (delegation prompt / result) written
34
+ * to a child session. Subagent summaries can be large; cap to keep the log lean.
35
+ */
36
+ const MAX_FLOOR_ENTRY_LENGTH = 16000;
37
+ /** Truncate a floor entry to {@link MAX_FLOOR_ENTRY_LENGTH}, appending an ellipsis marker. */
38
+ function clamp(text) {
39
+ if (text.length <= MAX_FLOOR_ENTRY_LENGTH) {
40
+ return text;
41
+ }
42
+ return `${text.slice(0, MAX_FLOOR_ENTRY_LENGTH)}\n…[truncated]`;
43
+ }
44
+ /**
45
+ * Tool results often arrive JSON-wrapped (e.g. `{"is_ok":true,"content":"…"}`).
46
+ * Extract the human-readable `content` string so the child's floor activity
47
+ * shows clean text rather than the raw envelope — and so status parsing
48
+ * (`readAgentResultStatus`) sees the real `read_agent` prefix rather than the
49
+ * envelope. Returns the input unchanged if it isn't a JSON object with a string
50
+ * `content` field.
51
+ */
52
+ export function unwrapResultContent(result) {
53
+ if (!result.trimStart().startsWith("{")) {
54
+ return result;
55
+ }
56
+ try {
57
+ const parsed = JSON.parse(result);
58
+ if (typeof parsed.content === "string") {
59
+ return parsed.content;
60
+ }
61
+ }
62
+ catch {
63
+ /* not JSON — use as-is */
64
+ }
65
+ return result;
66
+ }
67
+ /**
68
+ * Record one activity event on a child session via the same three sinks every
69
+ * session uses: durable `session_actions` (serverSeq), JSONL (live read), and
70
+ * the live stream-hub broadcast. Best-effort — failures are logged, not thrown.
71
+ */
72
+ function recordChildEvent(childSessionId, logPath, type, content) {
73
+ const event = create(grackle.SessionEventSchema, {
74
+ sessionId: childSessionId,
75
+ type,
76
+ timestamp: new Date().toISOString(),
77
+ content: clamp(content),
78
+ });
79
+ // serverSeq first so the durable log, JSONL, and live push share a dedup key.
80
+ event.serverSeq = recordSessionAction(event) ?? "";
81
+ if (logPath) {
82
+ logWriter.ensureLogInitialized(logPath);
83
+ logWriter.writeEvent(logPath, event).catch((err) => {
84
+ logger.error({ err, childSessionId }, "Failed to write subagent child event to JSONL");
85
+ });
86
+ }
87
+ streamHub.publish(event);
88
+ }
89
+ /**
90
+ * Resolve-or-create the child session for a delegation. Idempotent: if the
91
+ * child already exists (e.g. a `read_agent` poll following the original spawn,
92
+ * or a re-emitted event), this is a no-op so no duplicate session or floor
93
+ * action is created.
94
+ *
95
+ * The child is attached to its parent **session** (via `parentSessionId`), not a
96
+ * task: it is created with `taskId=""` so it is invisible to every task-scoped
97
+ * query (status computation, active/latest session lookups used for signal
98
+ * routing, usage aggregation, reconciliation). It inherits the parent's
99
+ * `environmentId` (the subagent ran in the parent's environment, and the
100
+ * `sessions.env_id` foreign key requires a real environment), but the `subagent`
101
+ * runtime marker keeps it out of env- and lifecycle-scoped queries
102
+ * (`getActiveForEnv`, `listByEnv`, etc.) so reanimate/recovery never tries to
103
+ * reconnect a virtual child. It remains addressable by id for navigation, and
104
+ * the parent edge is recovered via `parentSessionId`. The log directory sits
105
+ * alongside the parent's so the standard session activity view renders it.
106
+ *
107
+ * @param params - Child id, parent id, and parsed delegation info.
108
+ */
109
+ export function ensureChildSession(params) {
110
+ const { childSessionId, parentSessionId, info } = params;
111
+ if (sessionStore.getSession(childSessionId)) {
112
+ return; // already materialized — dedupe
113
+ }
114
+ const parent = sessionStore.getSession(parentSessionId);
115
+ if (!parent) {
116
+ return; // can't attach a child to a parent that doesn't exist
117
+ }
118
+ // Child log dir sits alongside the parent's (same logs root); empty if the
119
+ // parent is an ad-hoc session without a log path (then activity is session_actions-only).
120
+ const logPath = parent.logPath ? join(dirname(parent.logPath), childSessionId) : "";
121
+ sessionStore.createSession(childSessionId, parent.environmentId, // inherit parent's env (satisfies the env_id FK; subagent runtime excludes it from env queries)
122
+ SUBAGENT_RUNTIME, info.prompt ?? "", info.model ?? "", logPath, "", // taskId — attached to the parent session, not a task (see above)
123
+ "", // personaId
124
+ parentSessionId, "");
125
+ sessionStore.updateSessionStatus(childSessionId, SESSION_STATUS.RUNNING);
126
+ // Floor activity: the delegating prompt as the child's opening context.
127
+ if (info.prompt) {
128
+ recordChildEvent(childSessionId, logPath, grackle.EventType.USER_INPUT, info.prompt);
129
+ }
130
+ }
131
+ /**
132
+ * Append a result to a child session and mark it terminal. Called when the
133
+ * delegation's paired `tool_result` arrives. No-op if the child does not exist.
134
+ *
135
+ * @param childSessionId - The child session id.
136
+ * @param result - The subagent's result text (the summary, for SDK-internal subagents).
137
+ * @param isError - Whether the tool result was an error.
138
+ */
139
+ export function closeChildSession(childSessionId, result, isError) {
140
+ const session = sessionStore.getSession(childSessionId);
141
+ if (!session) {
142
+ return;
143
+ }
144
+ // Idempotent: a replayed/reanimated tool_result must not append the summary
145
+ // again to an already-terminal child.
146
+ if (TERMINAL_SESSION_STATUSES.has(session.status)) {
147
+ return;
148
+ }
149
+ if (result) {
150
+ recordChildEvent(childSessionId, session.logPath ?? "", grackle.EventType.TEXT, unwrapResultContent(result));
151
+ }
152
+ sessionStore.updateSession(childSessionId, SESSION_STATUS.STOPPED, undefined, isError ? result : undefined, isError ? END_REASON.INTERRUPTED : END_REASON.COMPLETED);
153
+ }
154
+ /**
155
+ * Append incremental activity to an existing child session without closing it.
156
+ * Used for `read_agent` polls that surface partial output while the subagent is
157
+ * still running. No-op if the child does not exist or the content is empty.
158
+ *
159
+ * @param childSessionId - The child session id.
160
+ * @param content - Incremental output to append.
161
+ */
162
+ export function appendChildActivity(childSessionId, content) {
163
+ if (!content) {
164
+ return;
165
+ }
166
+ const session = sessionStore.getSession(childSessionId);
167
+ if (!session) {
168
+ return;
169
+ }
170
+ recordChildEvent(childSessionId, session.logPath ?? "", grackle.EventType.TEXT, unwrapResultContent(content));
171
+ }
172
+ /**
173
+ * Mark a still-open child session as interrupted (terminal) without recording a
174
+ * result. Called when the parent stream ends while a delegation is still
175
+ * outstanding (e.g. the parent crashed mid-subagent), so a child is never left
176
+ * stranded in `RUNNING` with no environment to reconnect to. No-op if the child
177
+ * does not exist or is already terminal.
178
+ *
179
+ * @param childSessionId - The child session id.
180
+ */
181
+ export function interruptChildSession(childSessionId) {
182
+ const session = sessionStore.getSession(childSessionId);
183
+ if (!session || TERMINAL_SESSION_STATUSES.has(session.status)) {
184
+ return;
185
+ }
186
+ sessionStore.updateSession(childSessionId, SESSION_STATUS.STOPPED, undefined, undefined, END_REASON.INTERRUPTED);
187
+ }
188
+ //# sourceMappingURL=subagent-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-session.js","sourceRoot":"","sources":["../src/subagent-session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-session.d.ts","sourceRoot":"","sources":["../src/task-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,SAAS,EAIV,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,OAAO,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqL7B"}
1
+ {"version":3,"file":"task-session.d.ts","sourceRoot":"","sources":["../src/task-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,SAAS,EAIV,MAAM,sBAAsB,CAAC;AAsB9B;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,OAAO,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiM7B"}
@@ -9,6 +9,7 @@
9
9
  * @module
10
10
  */
11
11
  import { envRegistry, sessionStore, workspaceStore, taskStore, personaStore, settingsStore, grackleHome, } from "@grackle-ai/database";
12
+ import { ConnectError } from "@connectrpc/connect";
12
13
  import * as adapterManager from "./adapter-manager.js";
13
14
  import * as tokenPush from "./token-push.js";
14
15
  import { v4 as uuid } from "uuid";
@@ -112,15 +113,25 @@ export async function startTaskSession(task, options) {
112
113
  relatedPriorWork,
113
114
  knowledgeGuidance: knowledgeOn,
114
115
  }).build();
116
+ // Supply credentials on demand for this runtime, just before spawn (AHP HR6).
117
+ // For local envs, skip file tokens — the PowerLine is on the same machine.
118
+ // Pre-flight (#1316): a required-but-missing/expired credential throws here;
119
+ // surface it as a returned error string (the function's failure contract) so
120
+ // the dispatcher keeps the task queued for retry — and crucially before any
121
+ // session row is created or "task.started" emitted below.
122
+ try {
123
+ await tokenPush.authenticateForRuntime(environmentId, runtime, env.adapterType === "local" ? { excludeFileTokens: true } : undefined);
124
+ }
125
+ catch (err) {
126
+ logger.warn({ taskId: freshTask.id, environmentId, runtime }, "startTaskSession failed: pre-flight credential check");
127
+ return err instanceof ConnectError ? err.rawMessage : err.message;
128
+ }
115
129
  sessionStore.createSession(sessionId, environmentId, runtime, freshTask.title, model, logPath, freshTask.id, resolved.personaId);
116
130
  emit("task.started", {
117
131
  taskId: freshTask.id,
118
132
  sessionId,
119
133
  workspaceId: freshTask.workspaceId || "",
120
134
  });
121
- // Supply credentials on demand for this runtime, just before spawn (AHP HR6).
122
- // For local envs, skip file tokens — the PowerLine is on the same machine.
123
- await tokenPush.authenticateForRuntime(environmentId, runtime, env.adapterType === "local" ? { excludeFileTokens: true } : undefined);
124
135
  const mcpServersJson = personaMcpServersToJson(resolved.mcpServers, resolved.personaId);
125
136
  // Build MCP broker URL + scoped token so runtimes can call the MCP server.
126
137
  const mcpPort = parseInt(process.env.GRACKLE_MCP_PORT || String(DEFAULT_MCP_PORT), 10);
@@ -1 +1 @@
1
- {"version":3,"file":"task-session.js","sourceRoot":"","sources":["../src/task-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEjG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAuB,EACvB,OAAwE;IAExE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,8CAA8C,CAAC,CAAC;QACjF,OAAO,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;IAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,qDAAqD,CAAC,CAAC;QACxF,OAAO,oDAAoD,CAAC;IAC9D,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,EAClC,gDAAgD,CACjD,CAAC;QACF,OAAO,0BAA0B,aAAa,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;IACtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,8BAA8B,aAAa,EAAE,CAAC;IACvD,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,cAAc,CACvB,OAAO,CAAC,SAAS,IAAI,EAAE,EACvB,IAAI,CAAC,gBAAgB,EACrB,SAAS,EAAE,gBAAgB,IAAI,EAAE,EACjC,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,SAAS,EAC3D,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAQ,GAAa,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACrD,0EAA0E;IAC1E,4DAA4D;IAC5D,gEAAgE;IAChE,MAAM,UAAU,GACd,SAAS,CAAC,EAAE,KAAK,YAAY;QAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACrB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;IACjG,MAAM,eAAe,GAAG,cAAc;QACpC,CAAC,CAAC,wBAAwB,CACtB,6BAA6B,CAC3B,SAAS,CAAC,WAAY,EACtB,SAAS;YACP,CAAC,CAAC;gBACE,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B;YACH,CAAC,CAAC,SAAS,CACd,CACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,4EAA4E;IAC5E,8EAA8E;IAC9E,mFAAmF;IACnF,MAAM,WAAW,GACf,wBAAwB,EAAE;QAC1B,SAAS,CAAC,eAAe;QACzB,CAAC,CAAC,SAAS,CAAC,WAAW;QACvB,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC;IAChC,MAAM,gBAAgB,GAAG,WAAW;QAClC,CAAC,CAAC,CACE,MAAM,wBAAwB,CAAC;YAC7B,MAAM,EAAE,SAAS,CAAC,EAAE;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;YACxC,cAAc;YACd,eAAe,EAAE,SAAS,CAAC,eAAe;SAC3C,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS;QAC7B,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC;QAC5C,IAAI,EAAE;YACJ,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;SAChE;QACD,MAAM,EAAE,SAAS,CAAC,EAAE;QACpB,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,SAAS,CAAC,KAAK;QAC1B,GAAG,eAAe;QAClB,GAAG,CAAC,eAAe,IAAI,EAAE,WAAW,EAAE,OAAgB,EAAE,CAAC;QACzD,gBAAgB;QAChB,iBAAiB,EAAE,WAAW;KAC/B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEX,YAAY,CAAC,aAAa,CACxB,SAAS,EACT,aAAa,EACb,OAAO,EACP,SAAS,CAAC,KAAK,EACf,KAAK,EACL,OAAO,EACP,SAAS,CAAC,EAAE,EACZ,QAAQ,CAAC,SAAS,CACnB,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,EAAE,SAAS,CAAC,EAAE;QACpB,SAAS;QACT,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;KACzC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,2EAA2E;IAC3E,MAAM,SAAS,CAAC,sBAAsB,CACpC,aAAa,EACb,OAAO,EACP,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;IAEF,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAExF,2EAA2E;IAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,UAAU,WAAW,IAAI,OAAO,MAAM,CAAC;IACtD,MAAM,QAAQ,GAAG,iBAAiB,CAChC;QACE,GAAG,EAAE,SAAS,CAAC,EAAE;QACjB,GAAG,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;QAChC,GAAG,EAAE,QAAQ,CAAC,SAAS;QACvB,GAAG,EAAE,SAAS;KACf,EACD,kBAAkB,CAAC,WAAW,CAAC,CAChC,CAAC;IAEF,MAAM,YAAY,GAAG,SAAS,EAAE,YAAY,IAAI,KAAK,CAAC;IAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAC9C,SAAS;QACT,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,gBAAgB,EAAE,SAAS,CAAC,MAAM;YAChC,CAAC,CAAC,SAAS,EAAE,gBAAgB;gBAC3B,OAAO,CAAC,GAAG,CAAC,yBAAyB;gBACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB;gBACjC,YAAY;YACd,CAAC,CAAC,EAAE;QACN,YAAY;QACZ,aAAa;QACb,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS;QAC/C,MAAM,EAAE,SAAS,CAAC,EAAE;QACpB,cAAc;QACd,MAAM;QACN,QAAQ;KACT,CAAC,CAAC;IAEH,kBAAkB,CAAC,MAAM,EAAE;QACzB,SAAS;QACT,OAAO;QACP,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS;QAC/C,MAAM,EAAE,SAAS,CAAC,EAAE;QACpB,aAAa;QACb,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"task-session.js","sourceRoot":"","sources":["../src/task-session.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,20 @@ export interface AuthenticateOptions {
7
7
  * Supply credentials for a runtime to its environment on demand, just before a
8
8
  * spawn. Combines stored user tokens with the runtime-scoped provider bundle
9
9
  * (read fresh from env/disk) and delivers them via the host transport's
10
- * `authenticate` method. Best-effort: failures are logged and do not block the
11
- * spawn.
10
+ * `authenticate` method.
11
+ *
12
+ * **Fail-fast pre-flight (#1316):** before delivery, this validates that every
13
+ * credential the runtime advertises a need for (a provider that is *enabled* in
14
+ * the credential-provider config) is actually present — and, for OAuth-file
15
+ * credentials, not expired-beyond-refresh. When a required credential is missing
16
+ * or its login has expired with no refresh token, it throws a
17
+ * `ConnectError(FailedPrecondition)` with an actionable message rather than
18
+ * letting the runtime fail with an opaque 401 mid-agent. (Providers that are
19
+ * *off* are not validated.) Note this changes the function from never-throws to
20
+ * fail-fast on a required-but-missing credential.
21
+ *
22
+ * Once the pre-flight gate passes, *delivery* remains best-effort: a transport
23
+ * `authenticate` failure is logged and does not block the spawn.
12
24
  */
13
25
  export declare function authenticateForRuntime(environmentId: string, runtime: string, options?: AuthenticateOptions): Promise<void>;
14
26
  //# sourceMappingURL=token-push.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-push.d.ts","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"AAmBA,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
1
+ {"version":3,"file":"token-push.d.ts","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"AAyBA,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmDf"}
@@ -1,13 +1,39 @@
1
+ /**
2
+ * On-demand credential supply (AHP HR6).
3
+ *
4
+ * Builds the combined credential bundle for a runtime (stored user tokens +
5
+ * provider credentials read fresh from env/disk) and authenticates it to the
6
+ * connected PowerLine just-in-time, immediately before a spawn. This replaces
7
+ * the proactive `PushTokens` injection (eager push before every spawn / on
8
+ * token change / on reconnect): credentials are now supplied on demand, scoped
9
+ * to the runtime being spawned.
10
+ *
11
+ * Pure persistence lives in `@grackle-ai/database` (tokenStore); credential
12
+ * bundle building lives in {@link ./credential-bundle.ts}.
13
+ */
14
+ import { ConnectError, Code } from "@connectrpc/connect";
1
15
  import * as adapterManager from "./adapter-manager.js";
2
- import { envRegistry, tokenStore } from "@grackle-ai/database";
3
- import { buildProviderTokenBundle } from "./credential-bundle.js";
16
+ import { credentialProviders, envRegistry, tokenStore } from "@grackle-ai/database";
17
+ import { buildProviderTokenBundle, deriveCredentialNeeds, findUnsatisfiedNeeds, formatPreflightCredentialError, } from "./credential-bundle.js";
4
18
  import { logger } from "./logger.js";
5
19
  /**
6
20
  * Supply credentials for a runtime to its environment on demand, just before a
7
21
  * spawn. Combines stored user tokens with the runtime-scoped provider bundle
8
22
  * (read fresh from env/disk) and delivers them via the host transport's
9
- * `authenticate` method. Best-effort: failures are logged and do not block the
10
- * spawn.
23
+ * `authenticate` method.
24
+ *
25
+ * **Fail-fast pre-flight (#1316):** before delivery, this validates that every
26
+ * credential the runtime advertises a need for (a provider that is *enabled* in
27
+ * the credential-provider config) is actually present — and, for OAuth-file
28
+ * credentials, not expired-beyond-refresh. When a required credential is missing
29
+ * or its login has expired with no refresh token, it throws a
30
+ * `ConnectError(FailedPrecondition)` with an actionable message rather than
31
+ * letting the runtime fail with an opaque 401 mid-agent. (Providers that are
32
+ * *off* are not validated.) Note this changes the function from never-throws to
33
+ * fail-fast on a required-but-missing credential.
34
+ *
35
+ * Once the pre-flight gate passes, *delivery* remains best-effort: a transport
36
+ * `authenticate` failure is logged and does not block the spawn.
11
37
  */
12
38
  export async function authenticateForRuntime(environmentId, runtime, options) {
13
39
  const conn = adapterManager.getConnection(environmentId);
@@ -18,6 +44,15 @@ export async function authenticateForRuntime(environmentId, runtime, options) {
18
44
  const githubAccountId = env?.githubAccountId || undefined;
19
45
  const stored = tokenStore.getBundle();
20
46
  const provider = await buildProviderTokenBundle(runtime, undefined, githubAccountId);
47
+ // Pre-flight credential validation (#1316). Validate the runtime's advertised
48
+ // needs against the *unfiltered* provider bundle, so the local-env file-token
49
+ // stripping below cannot mask a credential that is present on disk. Throws
50
+ // before delivery (and before any session row is created at the call site).
51
+ const config = credentialProviders.getCredentialProviders();
52
+ const unsatisfied = findUnsatisfiedNeeds(deriveCredentialNeeds(runtime, config), provider, Date.now());
53
+ if (unsatisfied.length > 0) {
54
+ throw new ConnectError(formatPreflightCredentialError(runtime, unsatisfied), Code.FailedPrecondition);
55
+ }
21
56
  // Provider credentials come last so they win over any same-target stored token.
22
57
  let combined = [...stored.tokens, ...provider.tokens];
23
58
  if (options?.excludeFileTokens) {
@@ -1 +1 @@
1
- {"version":3,"file":"token-push.js","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAAqB,EACrB,OAAe,EACf,OAA6B;IAE7B,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,GAAG,EAAE,eAAe,IAAI,SAAS,CAAC;IAE1D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACrF,gFAAgF;IAChF,IAAI,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAA4B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,iDAAiD,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"token-push.js","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAAqB,EACrB,OAAe,EACf,OAA6B;IAE7B,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,GAAG,EAAE,eAAe,IAAI,SAAS,CAAC;IAE1D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAErF,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,MAAM,GAAG,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;IAC5D,MAAM,WAAW,GAAG,oBAAoB,CACtC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,EACtC,QAAQ,EACR,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CACpB,8BAA8B,CAAC,OAAO,EAAE,WAAW,CAAC,EACpD,IAAI,CAAC,kBAAkB,CACxB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,IAAI,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAA4B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,iDAAiD,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/core",
3
- "version": "0.133.1",
3
+ "version": "0.135.0",
4
4
  "description": "Core gRPC business logic for Grackle - RPC handlers, event system, streaming, session lifecycle",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,14 +42,14 @@
42
42
  "pino": "^10.3.1",
43
43
  "ulid": "^2.3.0",
44
44
  "uuid": "^11.1.1",
45
- "@grackle-ai/adapter-sdk": "0.133.1",
46
- "@grackle-ai/ahp": "0.133.1",
47
- "@grackle-ai/common": "0.133.1",
48
- "@grackle-ai/database": "0.133.1",
49
- "@grackle-ai/auth": "0.133.1",
50
- "@grackle-ai/plugin-sdk": "0.133.1",
51
- "@grackle-ai/knowledge": "0.133.1",
52
- "@grackle-ai/prompt": "0.133.1"
45
+ "@grackle-ai/ahp": "0.135.0",
46
+ "@grackle-ai/adapter-sdk": "0.135.0",
47
+ "@grackle-ai/auth": "0.135.0",
48
+ "@grackle-ai/common": "0.135.0",
49
+ "@grackle-ai/database": "0.135.0",
50
+ "@grackle-ai/plugin-sdk": "0.135.0",
51
+ "@grackle-ai/prompt": "0.135.0",
52
+ "@grackle-ai/knowledge": "0.135.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@rushstack/heft": "1.2.7",