veryfront 0.1.140 → 0.1.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.140",
3
+ "version": "0.1.141",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -1 +1 @@
1
- {"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAUxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AAsLD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA+J3B"}
1
+ {"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAYxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AAsLD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA2N3B"}
@@ -5,7 +5,9 @@ import { toolRegistry } from "../tool/index.js";
5
5
  import { z } from "zod";
6
6
  import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, parseSseJsonEvents, } from "./ag-ui-sse.js";
7
7
  import { AgentRunCancelledError } from "./session-manager.js";
8
+ import { serverLogger } from "../utils/index.js";
8
9
  const anyObjectSchema = z.record(z.string(), z.unknown());
10
+ const logger = serverLogger.component("internal-agent-run-stream");
9
11
  function createInjectedStudioTool(runId, toolName, description, parameters, sessionManager) {
10
12
  return {
11
13
  id: toolName,
@@ -140,6 +142,14 @@ function getAllowedRemoteToolNames(forwardedProps) {
140
142
  return allowedTools.every((toolName) => typeof toolName === "string") ? allowedTools : [];
141
143
  }
142
144
  export async function createRuntimeAgentStreamResponse(input, agent, deps) {
145
+ logger.info("Starting internal agent runtime stream", {
146
+ runId: input.runId,
147
+ threadId: input.threadId,
148
+ agentId: input.agentId,
149
+ messageCount: input.messages.length,
150
+ toolCount: input.tools.length,
151
+ contextCount: input.context.length,
152
+ });
143
153
  const abortSignal = deps.sessionManager.startRun({
144
154
  runId: input.runId,
145
155
  threadId: input.threadId,
@@ -173,9 +183,20 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
173
183
  completedResponse = response;
174
184
  },
175
185
  }, undefined, undefined, abortSignal);
186
+ logger.info("Internal agent runtime stream attached", {
187
+ runId: input.runId,
188
+ threadId: input.threadId,
189
+ agentId: input.agentId,
190
+ });
176
191
  }
177
192
  catch (error) {
178
193
  deps.sessionManager.failRun(input.runId);
194
+ logger.error("Internal agent runtime stream setup failed", {
195
+ runId: input.runId,
196
+ threadId: input.threadId,
197
+ agentId: input.agentId,
198
+ error: error instanceof Error ? error.message : String(error),
199
+ });
179
200
  throw error;
180
201
  }
181
202
  const response = new ReadableStream({
@@ -204,6 +225,11 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
204
225
  };
205
226
  const abortHandler = () => {
206
227
  aborted = true;
228
+ logger.warn("Internal agent runtime stream aborted", {
229
+ runId: input.runId,
230
+ threadId: input.threadId,
231
+ agentId: input.agentId,
232
+ });
207
233
  reader.cancel(new AgentRunCancelledError()).catch(() => { });
208
234
  };
209
235
  abortSignal.addEventListener("abort", abortHandler, { once: true });
@@ -218,6 +244,11 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
218
244
  const { done, value } = await reader.read();
219
245
  throwIfAborted();
220
246
  if (done) {
247
+ logger.info("Internal agent runtime stream reader completed", {
248
+ runId: input.runId,
249
+ threadId: input.threadId,
250
+ agentId: input.agentId,
251
+ });
221
252
  break;
222
253
  }
223
254
  remainder += decoder.decode(value, { stream: true });
@@ -241,10 +272,24 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
241
272
  enqueueIfAttached(mappedEvent.event, mappedEvent.payload);
242
273
  }
243
274
  deps.sessionManager.completeRun(input.runId);
275
+ logger.info("Internal agent runtime stream finalized", {
276
+ runId: input.runId,
277
+ threadId: input.threadId,
278
+ agentId: input.agentId,
279
+ sawVisibleOutput: state.sawVisibleOutput,
280
+ sawTerminalError: state.sawTerminalError,
281
+ finishReason: state.metadata.finishReason,
282
+ });
244
283
  }
245
284
  catch (error) {
246
285
  if (error instanceof AgentRunCancelledError) {
247
286
  deps.sessionManager.cancelRun(input.runId);
287
+ logger.warn("Internal agent runtime stream cancelled", {
288
+ runId: input.runId,
289
+ threadId: input.threadId,
290
+ agentId: input.agentId,
291
+ error: error.message,
292
+ });
248
293
  enqueueIfAttached("RunError", {
249
294
  code: "CANCELLED",
250
295
  message: error.message,
@@ -252,6 +297,12 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
252
297
  }
253
298
  else {
254
299
  deps.sessionManager.failRun(input.runId);
300
+ logger.error("Internal agent runtime stream failed", {
301
+ runId: input.runId,
302
+ threadId: input.threadId,
303
+ agentId: input.agentId,
304
+ error: error instanceof Error ? error.message : String(error),
305
+ });
255
306
  enqueueIfAttached("RunError", {
256
307
  code: "RUNTIME_ERROR",
257
308
  message: error instanceof Error ? error.message : String(error),
@@ -263,10 +314,21 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
263
314
  if (clientAttached) {
264
315
  controller.close();
265
316
  }
317
+ logger.debug("Internal agent runtime stream response closed", {
318
+ runId: input.runId,
319
+ threadId: input.threadId,
320
+ agentId: input.agentId,
321
+ clientAttached,
322
+ });
266
323
  }
267
324
  },
268
325
  cancel() {
269
326
  clientAttached = false;
327
+ logger.info("Internal agent runtime client detached", {
328
+ runId: input.runId,
329
+ threadId: input.threadId,
330
+ agentId: input.agentId,
331
+ });
270
332
  return Promise.resolve();
271
333
  },
272
334
  });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAInG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA2ED,qBAAa,kBAAmB,SAAQ,WAAW;IAOrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,EAAE,eAAe,CAIvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAmFhF"}
1
+ {"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAkBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAKnG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA4ED,qBAAa,kBAAmB,SAAQ,WAAW;IAOrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,EAAE,eAAe,CAIvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA+GhF"}
@@ -9,11 +9,13 @@ import { RuntimeRunAgentInputSchema, } from "../../../internal-agents/schema.js"
9
9
  import { BaseHandler } from "../response/base.js";
10
10
  import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
11
11
  import { getHostEnv } from "../../../platform/compat/process.js";
12
+ import { serverLogger } from "../../../utils/index.js";
12
13
  const defaultDeps = {
13
14
  ...defaultChannelInvokeDeps,
14
15
  sessionManager: agentRunSessionManager,
15
16
  resolveRuntimeOwnerInvokeUrl,
16
17
  };
18
+ const logger = serverLogger.component("agent-stream-handler");
17
19
  function buildAgentSourceRunOptions(sourceContext) {
18
20
  switch (sourceContext.type) {
19
21
  case "branch":
@@ -93,13 +95,36 @@ export class AgentStreamHandler extends BaseHandler {
93
95
  expectedSubject: payload.runId,
94
96
  expectedSurface: "studio",
95
97
  });
98
+ logger.info("Accepted internal agent stream request", {
99
+ runId: payload.runId,
100
+ threadId: payload.threadId,
101
+ agentId: payload.agentId,
102
+ projectId: ctx.projectId,
103
+ projectSlug: ctx.projectSlug,
104
+ messageCount: payload.messages.length,
105
+ toolCount: payload.tools.length,
106
+ hasAgentSource: Boolean(payload.agentSource),
107
+ });
96
108
  return await this.withAgentSourceContext(ctx, payload.agentSource, async () => {
97
109
  await this.deps.ensureProjectDiscovery(ctx);
98
110
  const agent = this.deps.getAgent(payload.agentId);
99
111
  if (!agent) {
112
+ logger.warn("Internal agent stream request referenced unknown agent", {
113
+ runId: payload.runId,
114
+ agentId: payload.agentId,
115
+ projectId: ctx.projectId,
116
+ projectSlug: ctx.projectSlug,
117
+ });
100
118
  return this.respond(builder.json({ error: "Agent not found" }, 404));
101
119
  }
102
120
  const response = await createRuntimeAgentStreamResponse(payload, agent, this.deps);
121
+ logger.info("Internal agent stream response created", {
122
+ runId: payload.runId,
123
+ threadId: payload.threadId,
124
+ agentId: payload.agentId,
125
+ projectId: ctx.projectId,
126
+ projectSlug: ctx.projectSlug,
127
+ });
103
128
  const runtimeOwnerInvokeUrl = await this.deps.resolveRuntimeOwnerInvokeUrl?.(req) ??
104
129
  null;
105
130
  const responseWithOwner = runtimeOwnerInvokeUrl
@@ -129,6 +154,11 @@ export class AgentStreamHandler extends BaseHandler {
129
154
  projectId: ctx.projectId,
130
155
  projectSlug: ctx.projectSlug,
131
156
  });
157
+ logger.error("Internal agent stream handler failed", {
158
+ projectId: ctx.projectId,
159
+ projectSlug: ctx.projectSlug,
160
+ error: error instanceof Error ? error.message : String(error),
161
+ });
132
162
  return this.respond(builder.json({ error: "Internal agent stream failed" }, 500));
133
163
  }
134
164
  });
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.140";
1
+ export declare const VERSION = "0.1.141";
2
2
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.140";
3
+ export const VERSION = "0.1.141";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.140",
3
+ "version": "0.1.141",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",
package/src/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.140",
3
+ "version": "0.1.141",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -17,8 +17,10 @@ import {
17
17
  } from "./ag-ui-sse.js";
18
18
  import { AgentRunCancelledError, type AgentRunSessionManager } from "./session-manager.js";
19
19
  import type { RuntimeRunAgentInput } from "./schema.js";
20
+ import { serverLogger } from "../utils/index.js";
20
21
 
21
22
  const anyObjectSchema = z.record(z.string(), z.unknown());
23
+ const logger = serverLogger.component("internal-agent-run-stream");
22
24
 
23
25
  type RuntimeFilteredAgent = Agent & {
24
26
  config: Agent["config"] & {
@@ -230,6 +232,14 @@ export async function createRuntimeAgentStreamResponse(
230
232
  agent: Agent,
231
233
  deps: RuntimeAgentStreamExecutionDeps,
232
234
  ): Promise<dntShim.Response> {
235
+ logger.info("Starting internal agent runtime stream", {
236
+ runId: input.runId,
237
+ threadId: input.threadId,
238
+ agentId: input.agentId,
239
+ messageCount: input.messages.length,
240
+ toolCount: input.tools.length,
241
+ contextCount: input.context.length,
242
+ });
233
243
  const abortSignal = deps.sessionManager.startRun({
234
244
  runId: input.runId,
235
245
  threadId: input.threadId,
@@ -272,8 +282,19 @@ export async function createRuntimeAgentStreamResponse(
272
282
  undefined,
273
283
  abortSignal,
274
284
  );
285
+ logger.info("Internal agent runtime stream attached", {
286
+ runId: input.runId,
287
+ threadId: input.threadId,
288
+ agentId: input.agentId,
289
+ });
275
290
  } catch (error) {
276
291
  deps.sessionManager.failRun(input.runId);
292
+ logger.error("Internal agent runtime stream setup failed", {
293
+ runId: input.runId,
294
+ threadId: input.threadId,
295
+ agentId: input.agentId,
296
+ error: error instanceof Error ? error.message : String(error),
297
+ });
277
298
  throw error;
278
299
  }
279
300
 
@@ -306,6 +327,11 @@ export async function createRuntimeAgentStreamResponse(
306
327
 
307
328
  const abortHandler = () => {
308
329
  aborted = true;
330
+ logger.warn("Internal agent runtime stream aborted", {
331
+ runId: input.runId,
332
+ threadId: input.threadId,
333
+ agentId: input.agentId,
334
+ });
309
335
  reader.cancel(new AgentRunCancelledError()).catch(() => {});
310
336
  };
311
337
 
@@ -324,6 +350,11 @@ export async function createRuntimeAgentStreamResponse(
324
350
  throwIfAborted();
325
351
 
326
352
  if (done) {
353
+ logger.info("Internal agent runtime stream reader completed", {
354
+ runId: input.runId,
355
+ threadId: input.threadId,
356
+ agentId: input.agentId,
357
+ });
327
358
  break;
328
359
  }
329
360
 
@@ -353,15 +384,35 @@ export async function createRuntimeAgentStreamResponse(
353
384
  enqueueIfAttached(mappedEvent.event, mappedEvent.payload);
354
385
  }
355
386
  deps.sessionManager.completeRun(input.runId);
387
+ logger.info("Internal agent runtime stream finalized", {
388
+ runId: input.runId,
389
+ threadId: input.threadId,
390
+ agentId: input.agentId,
391
+ sawVisibleOutput: state.sawVisibleOutput,
392
+ sawTerminalError: state.sawTerminalError,
393
+ finishReason: state.metadata.finishReason,
394
+ });
356
395
  } catch (error) {
357
396
  if (error instanceof AgentRunCancelledError) {
358
397
  deps.sessionManager.cancelRun(input.runId);
398
+ logger.warn("Internal agent runtime stream cancelled", {
399
+ runId: input.runId,
400
+ threadId: input.threadId,
401
+ agentId: input.agentId,
402
+ error: error.message,
403
+ });
359
404
  enqueueIfAttached("RunError", {
360
405
  code: "CANCELLED",
361
406
  message: error.message,
362
407
  });
363
408
  } else {
364
409
  deps.sessionManager.failRun(input.runId);
410
+ logger.error("Internal agent runtime stream failed", {
411
+ runId: input.runId,
412
+ threadId: input.threadId,
413
+ agentId: input.agentId,
414
+ error: error instanceof Error ? error.message : String(error),
415
+ });
365
416
  enqueueIfAttached("RunError", {
366
417
  code: "RUNTIME_ERROR",
367
418
  message: error instanceof Error ? error.message : String(error),
@@ -372,10 +423,21 @@ export async function createRuntimeAgentStreamResponse(
372
423
  if (clientAttached) {
373
424
  controller.close();
374
425
  }
426
+ logger.debug("Internal agent runtime stream response closed", {
427
+ runId: input.runId,
428
+ threadId: input.threadId,
429
+ agentId: input.agentId,
430
+ clientAttached,
431
+ });
375
432
  }
376
433
  },
377
434
  cancel() {
378
435
  clientAttached = false;
436
+ logger.info("Internal agent runtime client detached", {
437
+ runId: input.runId,
438
+ threadId: input.threadId,
439
+ agentId: input.agentId,
440
+ });
379
441
  return Promise.resolve();
380
442
  },
381
443
  });
@@ -31,6 +31,7 @@ import { BaseHandler } from "../response/base.js";
31
31
  import type { HandlerContext, HandlerMetadata, HandlerPriority, HandlerResult } from "../types.js";
32
32
  import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
33
33
  import { getHostEnv } from "../../../platform/compat/process.js";
34
+ import { serverLogger } from "../../../utils/index.js";
34
35
 
35
36
  export interface AgentStreamHandlerDeps
36
37
  extends RuntimeAgentDiscoveryDeps, RuntimeAgentStreamExecutionDeps {
@@ -42,6 +43,7 @@ const defaultDeps: AgentStreamHandlerDeps = {
42
43
  sessionManager: agentRunSessionManager,
43
44
  resolveRuntimeOwnerInvokeUrl,
44
45
  };
46
+ const logger = serverLogger.component("agent-stream-handler");
45
47
 
46
48
  type SourceContextFsWrapper = {
47
49
  isMultiProjectMode?: () => boolean;
@@ -165,6 +167,16 @@ export class AgentStreamHandler extends BaseHandler {
165
167
  expectedSubject: payload.runId,
166
168
  expectedSurface: "studio",
167
169
  });
170
+ logger.info("Accepted internal agent stream request", {
171
+ runId: payload.runId,
172
+ threadId: payload.threadId,
173
+ agentId: payload.agentId,
174
+ projectId: ctx.projectId,
175
+ projectSlug: ctx.projectSlug,
176
+ messageCount: payload.messages.length,
177
+ toolCount: payload.tools.length,
178
+ hasAgentSource: Boolean(payload.agentSource),
179
+ });
168
180
 
169
181
  return await this.withAgentSourceContext(
170
182
  ctx,
@@ -174,6 +186,12 @@ export class AgentStreamHandler extends BaseHandler {
174
186
 
175
187
  const agent = this.deps.getAgent(payload.agentId);
176
188
  if (!agent) {
189
+ logger.warn("Internal agent stream request referenced unknown agent", {
190
+ runId: payload.runId,
191
+ agentId: payload.agentId,
192
+ projectId: ctx.projectId,
193
+ projectSlug: ctx.projectSlug,
194
+ });
177
195
  return this.respond(builder.json({ error: "Agent not found" }, 404));
178
196
  }
179
197
 
@@ -182,6 +200,13 @@ export class AgentStreamHandler extends BaseHandler {
182
200
  agent as Agent,
183
201
  this.deps,
184
202
  );
203
+ logger.info("Internal agent stream response created", {
204
+ runId: payload.runId,
205
+ threadId: payload.threadId,
206
+ agentId: payload.agentId,
207
+ projectId: ctx.projectId,
208
+ projectSlug: ctx.projectSlug,
209
+ });
185
210
  const runtimeOwnerInvokeUrl = await this.deps.resolveRuntimeOwnerInvokeUrl?.(req) ??
186
211
  null;
187
212
  const responseWithOwner = runtimeOwnerInvokeUrl
@@ -224,6 +249,11 @@ export class AgentStreamHandler extends BaseHandler {
224
249
  projectId: ctx.projectId,
225
250
  projectSlug: ctx.projectSlug,
226
251
  });
252
+ logger.error("Internal agent stream handler failed", {
253
+ projectId: ctx.projectId,
254
+ projectSlug: ctx.projectSlug,
255
+ error: error instanceof Error ? error.message : String(error),
256
+ });
227
257
  return this.respond(builder.json({ error: "Internal agent stream failed" }, 500));
228
258
  }
229
259
  });
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.140";
3
+ export const VERSION = "0.1.141";