veryfront 0.1.640 → 0.1.642

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/agent/factory.d.ts +6 -6
  3. package/esm/src/agent/factory.d.ts.map +1 -1
  4. package/esm/src/agent/factory.js +5 -25
  5. package/esm/src/agent/runtime/chat-stream-handler.d.ts +1 -0
  6. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  7. package/esm/src/agent/runtime/chat-stream-handler.js +30 -42
  8. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  9. package/esm/src/agent/runtime/index.js +34 -4
  10. package/esm/src/agent/runtime/text-generation-runtime-message-converter.d.ts.map +1 -1
  11. package/esm/src/agent/runtime/text-generation-runtime-message-converter.js +6 -0
  12. package/esm/src/agent/types.d.ts +0 -9
  13. package/esm/src/agent/types.d.ts.map +1 -1
  14. package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
  15. package/esm/src/internal-agents/ag-ui-sse.js +7 -7
  16. package/esm/src/platform/adapters/runtime/deno/adapter.d.ts.map +1 -1
  17. package/esm/src/platform/adapters/runtime/deno/adapter.js +3 -3
  18. package/esm/src/platform/compat/http/deno-server.d.ts.map +1 -1
  19. package/esm/src/platform/compat/http/deno-server.js +2 -2
  20. package/esm/src/platform/compat/http/native-response.d.ts +15 -0
  21. package/esm/src/platform/compat/http/native-response.d.ts.map +1 -1
  22. package/esm/src/platform/compat/http/native-response.js +16 -4
  23. package/esm/src/platform/compat/http/websocket.d.ts.map +1 -1
  24. package/esm/src/platform/compat/http/websocket.js +2 -1
  25. package/esm/src/rendering/orchestrator/html-project-css.d.ts.map +1 -1
  26. package/esm/src/rendering/orchestrator/html-project-css.js +5 -3
  27. package/esm/src/utils/version-constant.d.ts +1 -1
  28. package/esm/src/utils/version-constant.js +1 -1
  29. package/package.json +1 -1
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.640",
3
+ "version": "0.1.642",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "workspace": [
@@ -1,14 +1,14 @@
1
1
  import type { Agent, AgentConfig, AgentMiddleware } from "./types.js";
2
2
  /** Agent helper. */
3
3
  export declare function agent(config: AgentConfig): Agent;
4
- /**
5
- * Default maximum agent input character length used by the built-in
6
- * security middleware when the agent does not set `inputMaxCharacterLimit`.
7
- */
8
- export declare const DEFAULT_AGENT_INPUT_MAX_CHARACTER_LIMIT = 100000;
9
4
  /**
10
5
  * Resolve the middleware array for an agent, prepending security middleware
11
6
  * unless explicitly opted out with `security: false`.
7
+ *
8
+ * The security middleware does not impose any input character limit: agent
9
+ * input (latest user message plus conversation history and structured tool
10
+ * results) can be arbitrarily large. Prompt-injection pattern blocking and
11
+ * output PII filtering still apply.
12
12
  */
13
- export declare function resolveSecurityMiddleware(config: Pick<AgentConfig, "security" | "middleware" | "inputMaxCharacterLimit">): AgentMiddleware[];
13
+ export declare function resolveSecurityMiddleware(config: Pick<AgentConfig, "security" | "middleware">): AgentMiddleware[];
14
14
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/agent/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,eAAe,EAKhB,MAAM,YAAY,CAAC;AA+CpB,oBAAoB;AACpB,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CA8MhD;AAcD;;;GAGG;AACH,eAAO,MAAM,uCAAuC,SAAU,CAAC;AAuB/D;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,wBAAwB,CAAC,GAC9E,eAAe,EAAE,CAcnB"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/agent/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,eAAe,EAKhB,MAAM,YAAY,CAAC;AA+CpB,oBAAoB;AACpB,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CA8MhD;AAcD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC,GACnD,eAAe,EAAE,CAanB"}
@@ -184,33 +184,14 @@ if (!("__vfAgentFactory" in dntShim.dntGlobalThis)) {
184
184
  configurable: false,
185
185
  });
186
186
  }
187
- /**
188
- * Default maximum agent input character length used by the built-in
189
- * security middleware when the agent does not set `inputMaxCharacterLimit`.
190
- */
191
- export const DEFAULT_AGENT_INPUT_MAX_CHARACTER_LIMIT = 100_000;
192
- /**
193
- * Resolve `inputMaxCharacterLimit` to a usable positive integer. Guards
194
- * against `NaN`, `Infinity`, and non-positive values that would otherwise
195
- * silently disable the input length check inside `InputValidator`
196
- * (it compares with `input.length > maxLength`, which is always false for
197
- * `NaN`/`Infinity`). Invalid overrides fall back to the default and emit a
198
- * warning so misconfiguration is visible.
199
- */
200
- function resolveInputMaxCharacterLimit(override) {
201
- if (override == null)
202
- return DEFAULT_AGENT_INPUT_MAX_CHARACTER_LIMIT;
203
- if (!Number.isFinite(override) || override <= 0) {
204
- agentLogger.warn(`Ignoring invalid inputMaxCharacterLimit=${String(override)}; ` +
205
- `falling back to default ${DEFAULT_AGENT_INPUT_MAX_CHARACTER_LIMIT}. ` +
206
- `Expected a finite positive number.`);
207
- return DEFAULT_AGENT_INPUT_MAX_CHARACTER_LIMIT;
208
- }
209
- return override;
210
- }
211
187
  /**
212
188
  * Resolve the middleware array for an agent, prepending security middleware
213
189
  * unless explicitly opted out with `security: false`.
190
+ *
191
+ * The security middleware does not impose any input character limit: agent
192
+ * input (latest user message plus conversation history and structured tool
193
+ * results) can be arbitrarily large. Prompt-injection pattern blocking and
194
+ * output PII filtering still apply.
214
195
  */
215
196
  export function resolveSecurityMiddleware(config) {
216
197
  if (config.security === false)
@@ -218,7 +199,6 @@ export function resolveSecurityMiddleware(config) {
218
199
  return [
219
200
  securityMiddleware({
220
201
  input: {
221
- maxLength: resolveInputMaxCharacterLimit(config.inputMaxCharacterLimit),
222
202
  blockedPatterns: COMMON_BLOCKED_PATTERNS.promptInjection,
223
203
  },
224
204
  output: {
@@ -36,6 +36,7 @@ export interface ChatStreamCallbacks {
36
36
  completionTokens?: number;
37
37
  totalTokens?: number;
38
38
  }) => void;
39
+ providerExecutedToolNames?: readonly string[];
39
40
  localToolInputIdleTimeoutMs?: number;
40
41
  streamIdleTimeoutMs?: number;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAqBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;IACX,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAwLD,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CAulBf"}
1
+ {"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAqBtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;IACX,yBAAyB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAwLD,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CA4lBf"}
@@ -185,6 +185,8 @@ export function processStream(result, state, controller, encoder, textPartId, ca
185
185
  let activeReasoningId = null;
186
186
  let shouldStopForCommittedLocalToolCall = false;
187
187
  let hasActiveLocalToolInput = false;
188
+ const providerExecutedToolNames = new Set(callbacks?.providerExecutedToolNames ?? []);
189
+ const resolveProviderExecuted = (toolName, providerExecuted) => providerExecuted ?? (providerExecutedToolNames.has(toolName) ? true : undefined);
188
190
  const normalizeReasoningId = (part) => typeof part.id === "string" && part.id.length > 0 ? part.id : "reasoning";
189
191
  const openTextSegment = () => {
190
192
  if (textOpen) {
@@ -290,6 +292,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
290
292
  };
291
293
  const ensureToolLifecycle = (part) => {
292
294
  const dynamic = part.dynamic ?? isDynamicTool(part.toolName);
295
+ const providerExecuted = resolveProviderExecuted(part.toolName, part.providerExecuted);
293
296
  const existing = state.toolCalls.get(part.toolCallId);
294
297
  if (!existing) {
295
298
  const normalizedInput = parseToolInputObject(part.input);
@@ -298,9 +301,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
298
301
  name: part.toolName,
299
302
  arguments: normalizeToolInputString(part.input),
300
303
  inputAvailable: true,
301
- ...(part.providerExecuted !== undefined
302
- ? { providerExecuted: part.providerExecuted }
303
- : {}),
304
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
304
305
  ...(dynamic ? { dynamic: true } : {}),
305
306
  inputAnnounced: true,
306
307
  });
@@ -315,9 +316,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
315
316
  toolCallId: part.toolCallId,
316
317
  toolName: part.toolName,
317
318
  input: normalizedInput,
318
- ...(part.providerExecuted !== undefined
319
- ? { providerExecuted: part.providerExecuted }
320
- : {}),
319
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
321
320
  ...(dynamic ? { dynamic: true } : {}),
322
321
  });
323
322
  return;
@@ -331,8 +330,8 @@ export function processStream(result, state, controller, encoder, textPartId, ca
331
330
  const resolvedInput = parseToolInputObject(resolvedArguments);
332
331
  existing.arguments = resolvedArguments;
333
332
  existing.inputAvailable = true;
334
- if (part.providerExecuted !== undefined) {
335
- existing.providerExecuted = part.providerExecuted;
333
+ if (providerExecuted !== undefined) {
334
+ existing.providerExecuted = providerExecuted;
336
335
  }
337
336
  if (dynamic) {
338
337
  existing.dynamic = true;
@@ -429,14 +428,15 @@ export function processStream(result, state, controller, encoder, textPartId, ca
429
428
  closeTextSegment();
430
429
  closeReasoningSegment();
431
430
  shouldStopForCommittedLocalToolCall = false;
432
- hasActiveLocalToolInput = true;
433
431
  const toolId = typedPart.id;
432
+ const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
433
+ hasActiveLocalToolInput = providerExecuted !== true;
434
434
  state.toolCalls.set(toolId, {
435
435
  id: toolId,
436
436
  name: typedPart.toolName,
437
437
  arguments: "",
438
438
  inputAvailable: false,
439
- providerExecuted: typedPart.providerExecuted,
439
+ providerExecuted,
440
440
  dynamic: typedPart.dynamic,
441
441
  inputDeltas: [],
442
442
  inputAnnounced: false,
@@ -488,6 +488,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
488
488
  if (!toolId) {
489
489
  break;
490
490
  }
491
+ const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
491
492
  hasActiveLocalToolInput = false;
492
493
  const inputStr = normalizeToolInputString(typedPart.input);
493
494
  const previous = state.toolCalls.get(toolId);
@@ -500,7 +501,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
500
501
  name: typedPart.toolName,
501
502
  arguments: resolvedArguments,
502
503
  inputAvailable: true,
503
- providerExecuted: typedPart.providerExecuted,
504
+ providerExecuted,
504
505
  dynamic,
505
506
  });
506
507
  if (!wasInputAvailable) {
@@ -509,13 +510,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
509
510
  toolCallId: toolId,
510
511
  toolName: typedPart.toolName,
511
512
  input: parseToolInputObject(resolvedArguments),
512
- ...(typedPart.providerExecuted !== undefined
513
- ? { providerExecuted: typedPart.providerExecuted }
514
- : {}),
513
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
515
514
  ...(dynamic ? { dynamic: true } : {}),
516
515
  });
517
516
  }
518
- if (typedPart.providerExecuted !== true) {
517
+ if (providerExecuted !== true) {
519
518
  shouldStopForCommittedLocalToolCall = true;
520
519
  }
521
520
  break;
@@ -525,6 +524,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
525
524
  closeReasoningSegment();
526
525
  // tool-call fires when the full tool call is available
527
526
  const toolId = typedPart.toolCallId;
527
+ const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
528
528
  hasActiveLocalToolInput = false;
529
529
  const inputStr = normalizeToolInputString(typedPart.input);
530
530
  const previous = state.toolCalls.get(toolId);
@@ -538,7 +538,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
538
538
  inputDeltas: previous?.inputDeltas ?? [],
539
539
  inputAnnounced: previous?.inputAnnounced ?? false,
540
540
  inputAvailable: true,
541
- providerExecuted: typedPart.providerExecuted,
541
+ providerExecuted,
542
542
  dynamic: typedPart.dynamic,
543
543
  };
544
544
  state.toolCalls.set(toolId, toolCall);
@@ -551,13 +551,11 @@ export function processStream(result, state, controller, encoder, textPartId, ca
551
551
  toolCallId: toolId,
552
552
  toolName: typedPart.toolName,
553
553
  input: inputObj,
554
- ...(typedPart.providerExecuted !== undefined
555
- ? { providerExecuted: typedPart.providerExecuted }
556
- : {}),
554
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
557
555
  ...(dynamic ? { dynamic: true } : {}),
558
556
  });
559
557
  }
560
- if (typedPart.providerExecuted !== true) {
558
+ if (providerExecuted !== true) {
561
559
  shouldStopForCommittedLocalToolCall = true;
562
560
  }
563
561
  break;
@@ -565,18 +563,19 @@ export function processStream(result, state, controller, encoder, textPartId, ca
565
563
  case "tool-result": {
566
564
  closeTextSegment();
567
565
  closeReasoningSegment();
566
+ const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
568
567
  ensureToolLifecycle({
569
568
  toolCallId: typedPart.toolCallId,
570
569
  toolName: typedPart.toolName,
571
570
  input: typedPart.input,
572
- providerExecuted: typedPart.providerExecuted,
571
+ providerExecuted,
573
572
  dynamic: typedPart.dynamic,
574
573
  });
575
574
  const isError = typedPart.isError === true;
576
575
  logProviderToolPart("tool-result", {
577
576
  toolCallId: typedPart.toolCallId,
578
577
  toolName: typedPart.toolName,
579
- providerExecuted: typedPart.providerExecuted,
578
+ providerExecuted,
580
579
  dynamic: typedPart.dynamic,
581
580
  output: typedPart.output,
582
581
  input: typedPart.input,
@@ -588,18 +587,14 @@ export function processStream(result, state, controller, encoder, textPartId, ca
588
587
  toolCallId: typedPart.toolCallId,
589
588
  toolName: typedPart.toolName,
590
589
  error: typedPart.output,
591
- ...(typedPart.providerExecuted !== undefined
592
- ? { providerExecuted: typedPart.providerExecuted }
593
- : {}),
590
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
594
591
  ...(typedPart.dynamic ? { dynamic: true } : {}),
595
592
  });
596
593
  sendSSE(controller, encoder, {
597
594
  type: "tool-output-error",
598
595
  toolCallId: typedPart.toolCallId,
599
596
  errorText: stringifyToolError(typedPart.output),
600
- ...(typedPart.providerExecuted !== undefined
601
- ? { providerExecuted: typedPart.providerExecuted }
602
- : {}),
597
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
603
598
  ...(typedPart.dynamic ? { dynamic: true } : {}),
604
599
  });
605
600
  break;
@@ -608,9 +603,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
608
603
  toolCallId: typedPart.toolCallId,
609
604
  toolName: typedPart.toolName,
610
605
  output: typedPart.output,
611
- ...(typedPart.providerExecuted !== undefined
612
- ? { providerExecuted: typedPart.providerExecuted }
613
- : {}),
606
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
614
607
  ...(typedPart.dynamic ? { dynamic: true } : {}),
615
608
  ...(typedPart.preliminary !== undefined ? { preliminary: typedPart.preliminary } : {}),
616
609
  });
@@ -618,9 +611,7 @@ export function processStream(result, state, controller, encoder, textPartId, ca
618
611
  type: "tool-output-available",
619
612
  toolCallId: typedPart.toolCallId,
620
613
  output: typedPart.output,
621
- ...(typedPart.providerExecuted !== undefined
622
- ? { providerExecuted: typedPart.providerExecuted }
623
- : {}),
614
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
624
615
  ...(typedPart.dynamic ? { dynamic: true } : {}),
625
616
  ...(typedPart.preliminary !== undefined ? { preliminary: typedPart.preliminary } : {}),
626
617
  });
@@ -629,17 +620,18 @@ export function processStream(result, state, controller, encoder, textPartId, ca
629
620
  case "tool-error": {
630
621
  closeTextSegment();
631
622
  closeReasoningSegment();
623
+ const providerExecuted = resolveProviderExecuted(typedPart.toolName, typedPart.providerExecuted);
632
624
  ensureToolLifecycle({
633
625
  toolCallId: typedPart.toolCallId,
634
626
  toolName: typedPart.toolName,
635
627
  input: typedPart.input,
636
- providerExecuted: typedPart.providerExecuted,
628
+ providerExecuted,
637
629
  dynamic: typedPart.dynamic,
638
630
  });
639
631
  logProviderToolPart("tool-error", {
640
632
  toolCallId: typedPart.toolCallId,
641
633
  toolName: typedPart.toolName,
642
- providerExecuted: typedPart.providerExecuted,
634
+ providerExecuted,
643
635
  dynamic: typedPart.dynamic,
644
636
  error: typedPart.error,
645
637
  input: typedPart.input,
@@ -648,18 +640,14 @@ export function processStream(result, state, controller, encoder, textPartId, ca
648
640
  toolCallId: typedPart.toolCallId,
649
641
  toolName: typedPart.toolName,
650
642
  error: typedPart.error,
651
- ...(typedPart.providerExecuted !== undefined
652
- ? { providerExecuted: typedPart.providerExecuted }
653
- : {}),
643
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
654
644
  ...(typedPart.dynamic ? { dynamic: true } : {}),
655
645
  });
656
646
  sendSSE(controller, encoder, {
657
647
  type: "tool-output-error",
658
648
  toolCallId: typedPart.toolCallId,
659
649
  errorText: stringifyToolError(typedPart.error),
660
- ...(typedPart.providerExecuted !== undefined
661
- ? { providerExecuted: typedPart.providerExecuted }
662
- : {}),
650
+ ...(providerExecuted !== undefined ? { providerExecuted } : {}),
663
651
  ...(typedPart.dynamic ? { dynamic: true } : {}),
664
652
  });
665
653
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,20 @@ function createToolErrorMessage(toolCallId, toolName, error) {
98
98
  timestamp: Date.now(),
99
99
  };
100
100
  }
101
+ function getProviderExecutedToolNames(runtimeTools) {
102
+ if (!runtimeTools) {
103
+ return [];
104
+ }
105
+ return Object.entries(runtimeTools).flatMap(([toolName, definition]) => {
106
+ if (definition &&
107
+ typeof definition === "object" &&
108
+ "type" in definition &&
109
+ definition.type === "provider") {
110
+ return [toolName];
111
+ }
112
+ return [];
113
+ });
114
+ }
101
115
  export function collectFinalStreamToolResults(state) {
102
116
  const finalToolResults = new Map();
103
117
  for (const toolResult of state.toolResults) {
@@ -137,6 +151,7 @@ export function shouldContinueAfterStreamStep(state) {
137
151
  const streamedToolCalls = Array.from(state.toolCalls.values());
138
152
  const hasIncompleteToolCall = streamedToolCalls.some(isStreamedToolCallIncomplete);
139
153
  const hasFinalizedClientToolCall = streamedToolCalls.some((toolCall) => toolCall.inputAvailable === true && toolCall.providerExecuted !== true);
154
+ const hasProviderExecutedToolCall = streamedToolCalls.some((toolCall) => toolCall.providerExecuted === true);
140
155
  // A non-finalized call whose only accumulated arguments are a bare
141
156
  // empty-object placeholder is provisional streamed input the model never
142
157
  // committed. We can recover by re-calling the model, so it must not block
@@ -148,6 +163,9 @@ export function shouldContinueAfterStreamStep(state) {
148
163
  if (hasIncompleteDeadToolCall) {
149
164
  return false;
150
165
  }
166
+ if (hasProviderExecutedToolCall && !hasFinalizedClientToolCall) {
167
+ return false;
168
+ }
151
169
  // Recover provisional placeholders by re-calling the model even when no
152
170
  // client tool call finalized in this step.
153
171
  if (hasRecoverablePlaceholderToolCall && !hasFinalizedClientToolCall) {
@@ -235,12 +253,16 @@ export function isRecoverablePlaceholderToolCall(toolCall) {
235
253
  * error-surfacing behavior (log warning, SSE event, tool-result error).
236
254
  */
237
255
  export function materializeStreamedToolCall(tc) {
256
+ const providerExecutedPart = tc.providerExecuted === true
257
+ ? { providerExecuted: true }
258
+ : {};
238
259
  const basePart = {
239
260
  type: `tool-${tc.name}`,
240
261
  toolCallId: tc.id,
241
262
  toolName: tc.name,
242
263
  args: {},
243
264
  ...(tc.arguments.length > 0 ? { inputText: tc.arguments } : {}),
265
+ ...providerExecutedPart,
244
266
  };
245
267
  if (isStreamedToolCallIncomplete(tc)) {
246
268
  return {
@@ -257,6 +279,7 @@ export function materializeStreamedToolCall(tc) {
257
279
  toolName: tc.name,
258
280
  args: capturedInput.args,
259
281
  ...(capturedInput.inputText ? { inputText: capturedInput.inputText } : {}),
282
+ ...providerExecutedPart,
260
283
  };
261
284
  if (capturedInput.parseError) {
262
285
  return { kind: "parse-error", part, parseError: capturedInput.parseError };
@@ -829,14 +852,15 @@ export class AgentRuntime {
829
852
  tools = filterToolsForSkill(tools, activeSkillPolicy);
830
853
  }
831
854
  const modelSystemPrompt = appendCurrentRunToolStateToSystemPrompt(currentSystemPrompt, currentRunToolState);
855
+ const runtimeTools = convertToolsToRuntimeTools(tools, {
856
+ model: effectiveModel,
857
+ allowedToolNames: allowedRemoteToolNames,
858
+ });
832
859
  const result = streamText({
833
860
  model: languageModel,
834
861
  system: modelSystemPrompt,
835
862
  messages: convertToTextGenerationRuntimeMessages(currentMessages),
836
- tools: convertToolsToRuntimeTools(tools, {
837
- model: effectiveModel,
838
- allowedToolNames: allowedRemoteToolNames,
839
- }),
863
+ tools: runtimeTools,
840
864
  experimental_repairToolCall: repairToolCall,
841
865
  maxOutputTokens: this.resolveMaxOutputTokens(effectiveModel, maxOutputTokensOverride),
842
866
  temperature: DEFAULT_TEMPERATURE,
@@ -848,6 +872,7 @@ export class AgentRuntime {
848
872
  await processStream(result, state, controller, encoder, textPartId, {
849
873
  onChunk: callbacks?.onChunk,
850
874
  onUsage: (usage) => accumulateUsage(totalUsage, usage),
875
+ providerExecutedToolNames: getProviderExecutedToolNames(runtimeTools),
851
876
  }, abortSignal);
852
877
  throwIfAborted(abortSignal);
853
878
  finalFinishReason = state.finishReason ?? finalFinishReason;
@@ -992,6 +1017,11 @@ export class AgentRuntime {
992
1017
  toolCalls.push(toolCall);
993
1018
  continue;
994
1019
  }
1020
+ if (tc.providerExecuted === true) {
1021
+ toolCall.status = "completed";
1022
+ toolCalls.push(toolCall);
1023
+ continue;
1024
+ }
995
1025
  if (capturedInput.parseError) {
996
1026
  logger.warn("Invalid streamed tool arguments", {
997
1027
  toolCallId: tc.id,
@@ -1 +1 @@
1
- {"version":3,"file":"text-generation-runtime-message-converter.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/text-generation-runtime-message-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAGV,4BAA4B,EAK7B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAGL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AAiKrB;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,OAAO,GAAG,4BAA4B,CAyFhG;AA2GD;;GAEG;AACH,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,OAAO,EAAE,GAClB,4BAA4B,EAAE,CAyBhC"}
1
+ {"version":3,"file":"text-generation-runtime-message-converter.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/text-generation-runtime-message-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAGV,4BAA4B,EAK7B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAGL,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AAwKrB;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,OAAO,GAAG,4BAA4B,CAyFhG;AA2GD;;GAEG;AACH,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,OAAO,EAAE,GAClB,4BAA4B,EAAE,CAyBhC"}
@@ -26,6 +26,9 @@ function getRecordPartField(part, key) {
26
26
  function hasOwnField(part, key) {
27
27
  return Object.hasOwn(part, key);
28
28
  }
29
+ function isProviderExecutedToolPart(part) {
30
+ return part.providerExecuted === true;
31
+ }
29
32
  function getToolInputRecord(part) {
30
33
  return getRecordPartField(part, "args") ?? getRecordPartField(part, "input") ?? {};
31
34
  }
@@ -38,6 +41,9 @@ function getTextGenerationToolCallPart(part) {
38
41
  !(part.type.startsWith("tool-") && part.type !== "tool-result")) {
39
42
  return null;
40
43
  }
44
+ if (isProviderExecutedToolPart(part)) {
45
+ return null;
46
+ }
41
47
  const toolCallId = getStringPartField(part, "toolCallId") ??
42
48
  getStringPartField(part, "tool_call_id") ??
43
49
  getStringPartField(part, "id");
@@ -114,15 +114,6 @@ export interface AgentConfig {
114
114
  suggestions?: Suggestions;
115
115
  /** Set to false to disable the default security middleware */
116
116
  security?: false;
117
- /**
118
- * Maximum input character length enforced by the default security
119
- * middleware. The middleware JSON-stringifies the agent input (latest
120
- * user message plus any conversation history and structured tool
121
- * results carried with it) and rejects anything longer.
122
- *
123
- * Defaults to 100_000. Ignored when `security: false`.
124
- */
125
- inputMaxCharacterLimit?: number;
126
117
  }
127
118
  /** Configuration used by resolved agent. */
128
119
  export type ResolvedAgentConfig = AgentConfig & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/agent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/agent/types.ts"],"names":[],"mappings":"AAAA;;4BAE4B;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAG3D,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnE,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAClB;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GACC;IACA,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GACC;IACA,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEJ,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;IAC9C;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,0EAA0E;IAC1E,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvE,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,WAAW,CAAC;IAC5B,aAAa,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;CAC7B;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,qBAAqB,KAC3B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE9D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;AAElF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,0BAA0B,KAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtE,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,KAC/B,OAAO,CAAC,aAAa,CAAC,CAAC;AAG5B,8BAA8B;AAC9B,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAK7D;AAED,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,oBAAoB,CAExE;AAED,6BAA6B;AAC7B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,qBAAqB,CAE1E;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5E;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,oBAAoB,CAAC,OAAO,CAAC,EAAE;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,QAAQ,CAAC;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,mBAAmB,CAAC;IAE5B,QAAQ,CAAC,KAAK,EAAE;QACd,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,qGAAqG;QACrG,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,iEAAiE;QACjE,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,CAAC,KAAK,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,qGAAqG;QACrG,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,iEAAiE;QACjE,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;QAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE/B,mFAAmF;IACnF,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7B,cAAc,IAAI,OAAO,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAEH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ag-ui-sse.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/ag-ui-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAEL,yBAAyB,EAE1B,MAAM,mCAAmC,CAAC;AAM3C,KAAK,gBAAgB,GAAG,sBAAsB,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE;AAsFD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAK3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,gBAAgB,GACtB,eAAe,EAAE,CAEnB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACxD,eAAe,EAAE,CAEnB"}
1
+ {"version":3,"file":"ag-ui-sse.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/ag-ui-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAEL,yBAAyB,EAE1B,MAAM,mCAAmC,CAAC;AAM3C,KAAK,gBAAgB,GAAG,sBAAsB,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE;AAmFD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAK3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,gBAAgB,GACtB,eAAe,EAAE,CAEnB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACxD,eAAe,EAAE,CAEnB"}
@@ -1,11 +1,12 @@
1
1
  import { parseDataStreamSseEvents } from "../agent/streaming/data-stream.js";
2
2
  import { createAgUiBrowserEncoderState, finalizeAgUiBrowserEvents, mapRuntimeStreamEventToAgUiBrowserEvents, } from "../agent/ag-ui/browser-encoder.js";
3
- import { defineSchema } from "../schemas/index.js";
3
+ import { resolveSchemaValidator } from "../schemas/define.js";
4
4
  const encoder = new TextEncoder();
5
5
  export function createStreamTransformState() {
6
6
  return createAgUiBrowserEncoderState();
7
7
  }
8
- const getAgUiEventPayloadSchemas = defineSchema((v) => {
8
+ function buildAgUiEventPayloadSchemas() {
9
+ const v = resolveSchemaValidator();
9
10
  const schemas = {
10
11
  RunStarted: v.object({
11
12
  runId: v.string().min(1),
@@ -51,15 +52,14 @@ const getAgUiEventPayloadSchemas = defineSchema((v) => {
51
52
  }),
52
53
  }),
53
54
  };
54
- // Return a record schema that validates to any - we only use this for per-key lookups
55
55
  return schemas;
56
- });
57
- // Eagerly resolve the schemas map so lookup works at runtime
56
+ }
57
+ // Lazily build and memoize the per-event payload schema map. Built on first use
58
+ // so the SchemaValidator extension is resolved only once it is needed.
58
59
  let _agUiEventPayloadSchemas = null;
59
60
  function resolveAgUiEventPayloadSchemas() {
60
61
  if (!_agUiEventPayloadSchemas) {
61
- // The defineSchema factory above returns the schemas record (cast); unwrap it.
62
- _agUiEventPayloadSchemas = getAgUiEventPayloadSchemas();
62
+ _agUiEventPayloadSchemas = buildAgUiEventPayloadSchemas();
63
63
  }
64
64
  return _agUiEventPayloadSchemas;
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/deno/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA0HvB,cAAM,qBAAsB,YAAW,iBAAiB;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAY/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW;CAuErE;AAED,cAAM,sBAAuB,YAAW,kBAAkB;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGnC;AAED,cAAM,iBAAkB,YAAW,aAAa;IAC9C,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAYrD;AAED,cAAM,gBAAiB,YAAW,YAAY;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAejE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAanC;AAwBD,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,EAAE,wBAA+B;IAC1C,QAAQ,CAAC,GAAG,yBAAgC;IAC5C,QAAQ,CAAC,MAAM,oBAA2B;IAC1C,QAAQ,CAAC,KAAK,mBAA0B;IAExC,QAAQ,CAAC,YAAY;;;;;;;;;;MAUnB;IAEF,OAAO,CAAC,YAAY,CAA2B;IAE/C,KAAK,CACH,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAC3D,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC;IA4DZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/deno/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA8HvB,cAAM,qBAAsB,YAAW,iBAAiB;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAY/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW;CAuErE;AAED,cAAM,sBAAuB,YAAW,kBAAkB;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGnC;AAED,cAAM,iBAAkB,YAAW,aAAa;IAC9C,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAYrD;AAED,cAAM,gBAAiB,YAAW,YAAY;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAejE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAanC;AAwBD,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,EAAE,wBAA+B;IAC1C,QAAQ,CAAC,GAAG,yBAAgC;IAC5C,QAAQ,CAAC,MAAM,oBAA2B;IAC1C,QAAQ,CAAC,KAAK,mBAA0B;IAExC,QAAQ,CAAC,YAAY;;;;;;;;;;MAUnB;IAEF,OAAO,CAAC,YAAY,CAA2B;IAE/C,KAAK,CACH,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAC3D,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC;IA4DZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -5,7 +5,7 @@ import { serverLogger } from "../../../../utils/index.js";
5
5
  import { env as getEnvObject, getEnv, getEnvOverlayStorage, setEnv, } from "../../../compat/process.js";
6
6
  import { createFileWatcher, createWatcherIterator, enqueueWatchEvent, } from "../shared/watcher-queue.js";
7
7
  import { stopManagedServer } from "../shared/server-lifecycle.js";
8
- import { getNativeResponse, toNativeResponse } from "../../../compat/http/native-response.js";
8
+ import { getNativeDeno, getNativeResponse, toNativeResponse, } from "../../../compat/http/native-response.js";
9
9
  const logger = serverLogger.component("deno");
10
10
  /** Default server port. Defined locally to keep adapters module isolated. */
11
11
  const DEFAULT_PORT = 3000;
@@ -215,7 +215,7 @@ class DenoServerAdapter {
215
215
  upgradeWebSocket(request) {
216
216
  // Access native Deno via `self` to bypass dnt shim transform.
217
217
  // dnt rewrites `globalThis.Deno` to @deno/shim-deno, which lacks upgradeWebSocket.
218
- const nativeDeno = self["Deno"];
218
+ const nativeDeno = getNativeDeno();
219
219
  if (typeof nativeDeno?.upgradeWebSocket !== "function") {
220
220
  throw NOT_SUPPORTED.create({
221
221
  detail: "DenoServerAdapter.upgradeWebSocket() can only be used in Deno runtime",
@@ -317,7 +317,7 @@ export class DenoAdapter {
317
317
  // Access native Deno.serve via `self` to bypass dnt shim transform.
318
318
  // dnt rewrites both `Deno.*` and `globalThis.*` to use @deno/shim-deno which lacks .serve.
319
319
  // `self` is not shimmed by dnt and equals `globalThis` in Deno.
320
- const nativeDeno = self["Deno"];
320
+ const nativeDeno = getNativeDeno();
321
321
  // Access native Response via `self` to bypass dnt shim transform.
322
322
  // In npm packages, dnt replaces Response with undici's polyfill,
323
323
  // but Deno.serve requires native Response instances.
@@ -1 +1 @@
1
- {"version":3,"file":"deno-server.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/deno-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIpE,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAkB;IAEpC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIvB"}
1
+ {"version":3,"file":"deno-server.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/deno-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIpE,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAkB;IAEpC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAIvB"}
@@ -1,5 +1,5 @@
1
1
  import { LOCALHOST } from "../constants.js";
2
- import { getNativeResponse, toNativeResponse } from "./native-response.js";
2
+ import { getNativeDeno, getNativeResponse, toNativeResponse } from "./native-response.js";
3
3
  export class DenoHttpServer {
4
4
  abortController;
5
5
  async serve(handler, options = {}) {
@@ -8,7 +8,7 @@ export class DenoHttpServer {
8
8
  const serveSignal = signal ?? this.abortController.signal;
9
9
  onListen?.({ hostname, port });
10
10
  // Access native Deno.serve via `self` to bypass dnt shim transform.
11
- const nativeDeno = self["Deno"];
11
+ const nativeDeno = getNativeDeno();
12
12
  // Access native Response via `self` to bypass dnt shim transform.
13
13
  // In npm packages, dnt replaces Response with undici's polyfill,
14
14
  // but Deno.serve requires native Response instances.
@@ -16,7 +16,22 @@
16
16
  * The native `Response` constructor, accessed via `self` to bypass the dnt
17
17
  * shim transform (dnt rewrites bare `Response` to undici's polyfill).
18
18
  */
19
+ import * as dntShim from "../../../../_dnt.shims.js";
19
20
  export declare function getNativeResponse(): typeof Response;
21
+ /**
22
+ * The native `Deno` namespace, accessed via `self` to bypass the dnt shim
23
+ * transform.
24
+ *
25
+ * In npm packages, dnt rewrites both `Deno.*` and `globalThis.Deno` to use
26
+ * `@deno/shim-deno`, which lacks native APIs such as `Deno.serve` and
27
+ * `Deno.upgradeWebSocket`. `self` is not shimmed by dnt and equals
28
+ * `globalThis` in Deno, so it yields the genuine native namespace.
29
+ *
30
+ * Returns `undefined` when no native `Deno` is present (e.g. Node without the
31
+ * shim), allowing callers to guard. Callers that have already established the
32
+ * Deno runtime can use a non-null assertion on the result.
33
+ */
34
+ export declare function getNativeDeno(): typeof dntShim.Deno | undefined;
20
35
  /**
21
36
  * Re-wrap a (possibly polyfilled) `Response` as a native `Response` so it can be
22
37
  * returned from `Deno.serve`.
@@ -1 +1 @@
1
- {"version":3,"file":"native-response.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/native-response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,QAAQ,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,OAAO,QAAQ,GAC9B,QAAQ,CAYV"}
1
+ {"version":3,"file":"native-response.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/native-response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAErD,wBAAgB,iBAAiB,IAAI,OAAO,QAAQ,CAEnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,SAAS,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,OAAO,QAAQ,GAC9B,QAAQ,CAYV"}
@@ -12,13 +12,25 @@
12
12
  *
13
13
  * @module platform/compat/http/native-response
14
14
  */
15
- /**
16
- * The native `Response` constructor, accessed via `self` to bypass the dnt
17
- * shim transform (dnt rewrites bare `Response` to undici's polyfill).
18
- */
19
15
  export function getNativeResponse() {
20
16
  return self.Response;
21
17
  }
18
+ /**
19
+ * The native `Deno` namespace, accessed via `self` to bypass the dnt shim
20
+ * transform.
21
+ *
22
+ * In npm packages, dnt rewrites both `Deno.*` and `globalThis.Deno` to use
23
+ * `@deno/shim-deno`, which lacks native APIs such as `Deno.serve` and
24
+ * `Deno.upgradeWebSocket`. `self` is not shimmed by dnt and equals
25
+ * `globalThis` in Deno, so it yields the genuine native namespace.
26
+ *
27
+ * Returns `undefined` when no native `Deno` is present (e.g. Node without the
28
+ * shim), allowing callers to guard. Callers that have already established the
29
+ * Deno runtime can use a non-null assertion on the result.
30
+ */
31
+ export function getNativeDeno() {
32
+ return self["Deno"];
33
+ }
22
34
  /**
23
35
  * Re-wrap a (possibly polyfilled) `Response` as a native `Response` so it can be
24
36
  * returned from `Deno.serve`.
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/websocket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGlF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CASxB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/compat/http/websocket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIlF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CASxB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D"}
@@ -1,4 +1,5 @@
1
1
  import { isDeno } from "../runtime.js";
2
+ import { getNativeDeno } from "./native-response.js";
2
3
  import { NOT_SUPPORTED } from "../../../errors/index.js";
3
4
  export function upgradeWebSocket(request, options) {
4
5
  if (!isDeno) {
@@ -15,7 +16,7 @@ export function isWebSocketUpgrade(request) {
15
16
  function upgradeWebSocketDeno(request, options) {
16
17
  // Access native Deno via `self` to bypass dnt shim transform.
17
18
  // dnt rewrites `globalThis.Deno` to @deno/shim-deno, which lacks upgradeWebSocket.
18
- const nativeDeno = self["Deno"];
19
+ const nativeDeno = getNativeDeno();
19
20
  if (typeof nativeDeno?.upgradeWebSocket !== "function") {
20
21
  throw NOT_SUPPORTED.create({
21
22
  detail: "Deno.upgradeWebSocket() is not available in this runtime.",
@@ -1 +1 @@
1
- {"version":3,"file":"html-project-css.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/html-project-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;AAEhF,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;CACpC;AAED,UAAU,cAAc;IACtB,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IACzD,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,KAC/C,MAAM,GAAG,SAAS,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;IAC/D,gCAAgC,CAAC,EAAE,OAAO,gCAAgC,CAAC;CAC5E;AAUD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,EAClD,IAAI,GAAE,IAAI,CAAC,cAAc,EAAE,4BAA4B,CAAM,GAC5D,MAAM,GAAG,SAAS,CAiBpB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAM,GAC/C,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAkBvC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,IAAI,CACR,cAAc,EACd,yBAAyB,GAAG,0BAA0B,GAAG,kCAAkC,CACvF,GACL,IAAI,CAyCN;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,qBAAqB,EAC9B,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,GAAE,IAAI,CACR,cAAc,EACd,yBAAyB,GAAG,0BAA0B,GAAG,oBAAoB,CACzE,GACL,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CA+CtB"}
1
+ {"version":3,"file":"html-project-css.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/html-project-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAOtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;AAEhF,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;CACpC;AAED,UAAU,cAAc;IACtB,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IACzD,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,KAC/C,MAAM,GAAG,SAAS,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;IAC/D,gCAAgC,CAAC,EAAE,OAAO,gCAAgC,CAAC;CAC5E;AAeD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,EAClD,IAAI,GAAE,IAAI,CAAC,cAAc,EAAE,4BAA4B,CAAM,GAC5D,MAAM,GAAG,SAAS,CAiBpB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAM,GAC/C,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAkBvC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,IAAI,CACR,cAAc,EACd,yBAAyB,GAAG,0BAA0B,GAAG,kCAAkC,CACvF,GACL,IAAI,CAyCN;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,qBAAqB,EAC9B,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,GAAE,IAAI,CACR,cAAc,EACd,yBAAyB,GAAG,0BAA0B,GAAG,oBAAoB,CACzE,GACL,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CA+CtB"}
@@ -6,11 +6,13 @@ import { rendererLogger } from "../../utils/index.js";
6
6
  import { extractRelativePath } from "../../utils/route-path-utils.js";
7
7
  import { getRouteCandidates } from "./css-candidate-manifest.js";
8
8
  const logger = rendererLogger.component("html-project-css");
9
+ function hasUnderlyingAdapter(fs) {
10
+ return typeof fs.getUnderlyingAdapter === "function";
11
+ }
9
12
  function getUnderlyingFsAdapter(adapter) {
10
- const wrappedFs = adapter.fs;
11
- if (typeof wrappedFs.getUnderlyingAdapter !== "function")
13
+ if (!hasUnderlyingAdapter(adapter.fs))
12
14
  return undefined;
13
- return wrappedFs.getUnderlyingAdapter();
15
+ return adapter.fs.getUnderlyingAdapter();
14
16
  }
15
17
  export function buildRouteManifestKey(pagePath, projectDir) {
16
18
  const relativePagePath = extractRelativePath(pagePath, projectDir);
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.640";
2
+ export declare const VERSION = "0.1.642";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.640";
4
+ export const VERSION = "0.1.642";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.640",
3
+ "version": "0.1.642",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",