veryfront 0.1.203 → 0.1.206

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.203",
3
+ "version": "0.1.206",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -1 +1 @@
1
- {"version":3,"file":"resume-session.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/resume-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5F,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAAkB;CAItC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AA2BD,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,YAAY,CAAC;IACrC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CACvC;AAMD,qBAAa,uBAAuB,CAAC,CAAC;IAIlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAG1C,OAAO,GAAE,8BAA8B,CAAC,CAAC,CAAM;IAGlE,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe;IAWvB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IA4BjE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAiBhD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD/D,YAAY,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,GACnC,wBAAwB;IA+C3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAkBjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIpD,KAAK,IAAI,IAAI;CAOd"}
1
+ {"version":3,"file":"resume-session.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/resume-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5F,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAAkB;CAItC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AA2BD,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,YAAY,CAAC;IACrC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CACvC;AAMD,qBAAa,uBAAuB,CAAC,CAAC;IAIlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAG1C,OAAO,GAAE,8BAA8B,CAAC,CAAC,CAAM;IAGlE,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe;IAWvB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IA4BjE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAiBhD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD/D,YAAY,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,GACnC,wBAAwB;IA+C3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAsBjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIpD,KAAK,IAAI,IAAI;CAOd"}
@@ -224,7 +224,11 @@ export class RunResumeSessionManager {
224
224
  return false;
225
225
  }
226
226
  const waitingState = session.waitingState;
227
- session.abortController.abort(new RunCancelledError());
227
+ // Abort with an AbortError-shaped DOMException so provider SDK fetch
228
+ // consumers treat it as cancellation and don't surface unhandled
229
+ // rejections. The waiting-state reject path keeps RunCancelledError
230
+ // so callers can still `instanceof` it.
231
+ session.abortController.abort(new DOMException("Run cancelled", "AbortError"));
228
232
  waitingState?.reject(new RunCancelledError());
229
233
  this.finalizeSession(session, "cancelled");
230
234
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-loader.d.ts","sourceRoot":"","sources":["../../../src/src/provider/runtime-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAuqDD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,YAAY,CAkDd;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,GACd,YAAY,CA4Dd;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,YAAY,CAkDd;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,gBAAgB,CA0ClB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,gBAAgB,CAgDlB"}
1
+ {"version":3,"file":"runtime-loader.d.ts","sourceRoot":"","sources":["../../../src/src/provider/runtime-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AA2tDD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,YAAY,CAkDd;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,GACd,YAAY,CA4Dd;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,YAAY,CAkDd;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,gBAAgB,CA0ClB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,gBAAgB,CAgDlB"}
@@ -354,12 +354,55 @@ function createAnthropicRequestHeaders(options) {
354
354
  }
355
355
  return headers;
356
356
  }
357
+ /**
358
+ * Anthropic's Messages API requires `max_tokens` on every call, so the
359
+ * outbound request builder must always supply a number. Picking the right
360
+ * one means knowing the model: different Claude families have wildly
361
+ * different maximum output budgets, and a flat default either truncates
362
+ * modern models mid-response or gets rejected with "too many tokens" on
363
+ * older ones. Return the model's advertised maximum as the default, and
364
+ * clamp caller-provided values at that same ceiling for known models so a
365
+ * bad input becomes a clipped response rather than an API error. Unknown
366
+ * model ids get a conservative 4096 fallback and pass caller values
367
+ * through unchanged, since we have no intel to clamp against.
368
+ */
369
+ function getAnthropicModelCapabilities(modelId) {
370
+ if (modelId.includes("claude-sonnet-4-6") || modelId.includes("claude-opus-4-6")) {
371
+ return { maxOutputTokens: 128_000, isKnownModel: true };
372
+ }
373
+ if (modelId.includes("claude-sonnet-4-5") ||
374
+ modelId.includes("claude-opus-4-5") ||
375
+ modelId.includes("claude-haiku-4-5")) {
376
+ return { maxOutputTokens: 64_000, isKnownModel: true };
377
+ }
378
+ if (modelId.includes("claude-opus-4-1")) {
379
+ return { maxOutputTokens: 32_000, isKnownModel: true };
380
+ }
381
+ if (modelId.includes("claude-sonnet-4-")) {
382
+ return { maxOutputTokens: 64_000, isKnownModel: true };
383
+ }
384
+ if (modelId.includes("claude-opus-4-")) {
385
+ return { maxOutputTokens: 32_000, isKnownModel: true };
386
+ }
387
+ if (modelId.includes("claude-3-haiku")) {
388
+ return { maxOutputTokens: 4096, isKnownModel: true };
389
+ }
390
+ return { maxOutputTokens: 4096, isKnownModel: false };
391
+ }
392
+ function resolveAnthropicMaxTokens(modelId, callerMaxOutputTokens) {
393
+ const { maxOutputTokens: modelMax, isKnownModel } = getAnthropicModelCapabilities(modelId);
394
+ const requested = callerMaxOutputTokens ?? modelMax;
395
+ if (isKnownModel && requested > modelMax) {
396
+ return modelMax;
397
+ }
398
+ return requested;
399
+ }
357
400
  function buildAnthropicMessagesRequest(modelId, providerName, options, stream) {
358
401
  const { system, messages } = toAnthropicMessages(options.prompt);
359
402
  const body = {
360
403
  model: modelId,
361
404
  messages,
362
- max_tokens: options.maxOutputTokens ?? 1024,
405
+ max_tokens: resolveAnthropicMaxTokens(modelId, options.maxOutputTokens),
363
406
  ...(stream ? { stream: true } : {}),
364
407
  ...(system ? { system } : {}),
365
408
  ...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.203";
1
+ export declare const VERSION = "0.1.206";
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.203";
3
+ export const VERSION = "0.1.206";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.203",
3
+ "version": "0.1.206",
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.203",
3
+ "version": "0.1.206",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -317,7 +317,11 @@ export class RunResumeSessionManager<T> {
317
317
  }
318
318
 
319
319
  const waitingState = session.waitingState;
320
- session.abortController.abort(new RunCancelledError());
320
+ // Abort with an AbortError-shaped DOMException so provider SDK fetch
321
+ // consumers treat it as cancellation and don't surface unhandled
322
+ // rejections. The waiting-state reject path keeps RunCancelledError
323
+ // so callers can still `instanceof` it.
324
+ session.abortController.abort(new DOMException("Run cancelled", "AbortError"));
321
325
  waitingState?.reject(new RunCancelledError());
322
326
  this.finalizeSession(session, "cancelled");
323
327
  return true;
@@ -665,6 +665,58 @@ function createAnthropicRequestHeaders(options: {
665
665
  return headers;
666
666
  }
667
667
 
668
+ /**
669
+ * Anthropic's Messages API requires `max_tokens` on every call, so the
670
+ * outbound request builder must always supply a number. Picking the right
671
+ * one means knowing the model: different Claude families have wildly
672
+ * different maximum output budgets, and a flat default either truncates
673
+ * modern models mid-response or gets rejected with "too many tokens" on
674
+ * older ones. Return the model's advertised maximum as the default, and
675
+ * clamp caller-provided values at that same ceiling for known models so a
676
+ * bad input becomes a clipped response rather than an API error. Unknown
677
+ * model ids get a conservative 4096 fallback and pass caller values
678
+ * through unchanged, since we have no intel to clamp against.
679
+ */
680
+ function getAnthropicModelCapabilities(
681
+ modelId: string,
682
+ ): { maxOutputTokens: number; isKnownModel: boolean } {
683
+ if (modelId.includes("claude-sonnet-4-6") || modelId.includes("claude-opus-4-6")) {
684
+ return { maxOutputTokens: 128_000, isKnownModel: true };
685
+ }
686
+ if (
687
+ modelId.includes("claude-sonnet-4-5") ||
688
+ modelId.includes("claude-opus-4-5") ||
689
+ modelId.includes("claude-haiku-4-5")
690
+ ) {
691
+ return { maxOutputTokens: 64_000, isKnownModel: true };
692
+ }
693
+ if (modelId.includes("claude-opus-4-1")) {
694
+ return { maxOutputTokens: 32_000, isKnownModel: true };
695
+ }
696
+ if (modelId.includes("claude-sonnet-4-")) {
697
+ return { maxOutputTokens: 64_000, isKnownModel: true };
698
+ }
699
+ if (modelId.includes("claude-opus-4-")) {
700
+ return { maxOutputTokens: 32_000, isKnownModel: true };
701
+ }
702
+ if (modelId.includes("claude-3-haiku")) {
703
+ return { maxOutputTokens: 4096, isKnownModel: true };
704
+ }
705
+ return { maxOutputTokens: 4096, isKnownModel: false };
706
+ }
707
+
708
+ function resolveAnthropicMaxTokens(
709
+ modelId: string,
710
+ callerMaxOutputTokens: number | undefined,
711
+ ): number {
712
+ const { maxOutputTokens: modelMax, isKnownModel } = getAnthropicModelCapabilities(modelId);
713
+ const requested = callerMaxOutputTokens ?? modelMax;
714
+ if (isKnownModel && requested > modelMax) {
715
+ return modelMax;
716
+ }
717
+ return requested;
718
+ }
719
+
668
720
  function buildAnthropicMessagesRequest(
669
721
  modelId: string,
670
722
  providerName: string,
@@ -675,7 +727,7 @@ function buildAnthropicMessagesRequest(
675
727
  const body: AnthropicCompatibleRequest = {
676
728
  model: modelId,
677
729
  messages,
678
- max_tokens: options.maxOutputTokens ?? 1024,
730
+ max_tokens: resolveAnthropicMaxTokens(modelId, options.maxOutputTokens),
679
731
  ...(stream ? { stream: true } : {}),
680
732
  ...(system ? { system } : {}),
681
733
  ...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
@@ -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.203";
3
+ export const VERSION = "0.1.206";