@slopus/happy-agent-client 0.0.103 → 0.0.105

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 (37) hide show
  1. package/dist/HappyAgentClient.d.ts +5 -1
  2. package/dist/HappyAgentClient.d.ts.map +1 -1
  3. package/dist/HappyAgentClient.js +18 -0
  4. package/dist/HappyAgentClient.js.map +1 -1
  5. package/dist/protocol/agents.d.ts +40 -1
  6. package/dist/protocol/agents.d.ts.map +1 -1
  7. package/dist/protocol/agents.js +14 -0
  8. package/dist/protocol/agents.js.map +1 -1
  9. package/dist/protocol/artifacts.d.ts +54 -2
  10. package/dist/protocol/artifacts.d.ts.map +1 -1
  11. package/dist/protocol/artifacts.js +31 -2
  12. package/dist/protocol/artifacts.js.map +1 -1
  13. package/dist/protocol/bootstrap.d.ts +30 -0
  14. package/dist/protocol/bootstrap.d.ts.map +1 -1
  15. package/dist/protocol/bots.d.ts +18 -0
  16. package/dist/protocol/bots.d.ts.map +1 -1
  17. package/dist/protocol/daemon.d.ts +3 -2
  18. package/dist/protocol/daemon.d.ts.map +1 -1
  19. package/dist/protocol/daemon.js +3 -2
  20. package/dist/protocol/daemon.js.map +1 -1
  21. package/dist/protocol/events.d.ts +39 -0
  22. package/dist/protocol/events.d.ts.map +1 -1
  23. package/dist/protocol/events.js +7 -1
  24. package/dist/protocol/events.js.map +1 -1
  25. package/dist/protocol/messages.d.ts +818 -4
  26. package/dist/protocol/messages.d.ts.map +1 -1
  27. package/dist/protocol/messages.js +190 -3
  28. package/dist/protocol/messages.js.map +1 -1
  29. package/dist/protocol/projects.d.ts +24 -0
  30. package/dist/protocol/projects.d.ts.map +1 -1
  31. package/dist/protocol/surfaces.d.ts +6 -0
  32. package/dist/protocol/surfaces.d.ts.map +1 -1
  33. package/dist/protocol/tasks.d.ts +18 -0
  34. package/dist/protocol/tasks.d.ts.map +1 -1
  35. package/dist/protocol/workspaces.d.ts +18 -0
  36. package/dist/protocol/workspaces.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -271,18 +271,40 @@ export declare const mediaPresentationSchema: import("@sinclair/typebox").TObjec
271
271
  }>;
272
272
  /** Images, videos, documents, and files a completed call showed the person inline. */
273
273
  export type MediaPresentation = Static<typeof mediaPresentationSchema>;
274
- /** An artifact a completed call created or versioned, shown as a card that opens it. */
274
+ /**
275
+ * Which version an artifact presentation shows: `"latest"` follows the artifact as it changes and is
276
+ * where an HTML artifact is shown inline; `"version"` is exactly the presented one. Absent, or a
277
+ * value this client does not know, means `"version"`.
278
+ */
279
+ export declare const artifactPresentationShowsSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"latest">, import("@sinclair/typebox").TLiteral<"version">]>;
280
+ /** Which version an artifact presentation shows. */
281
+ export type ArtifactPresentationShows = Static<typeof artifactPresentationShowsSchema>;
282
+ /** An artifact a completed call created, changed, or took up for editing, shown in the chat. */
275
283
  export declare const artifactPresentationSchema: import("@sinclair/typebox").TObject<{
276
284
  type: import("@sinclair/typebox").TLiteral<"artifact">;
277
285
  artifactId: import("@sinclair/typebox").TString;
278
- /** The version number this call produced. */
286
+ /** The artifact's latest version when the call completed. */
279
287
  version: import("@sinclair/typebox").TInteger;
280
288
  artifactType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"markdown">, import("@sinclair/typebox").TLiteral<"html">, import("@sinclair/typebox").TLiteral<"image">, import("@sinclair/typebox").TLiteral<"image_series">, import("@sinclair/typebox").TLiteral<"video">, import("@sinclair/typebox").TLiteral<"document">]>;
281
289
  /** The artifact's title at that version. */
282
290
  title: import("@sinclair/typebox").TString;
291
+ /** Which version the chat shows; absent on older daemons, meaning `"version"`. */
292
+ shows: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"latest">, import("@sinclair/typebox").TLiteral<"version">]>>;
283
293
  }>;
284
- /** An artifact a completed call created or versioned, shown as a card that opens it. */
294
+ /** An artifact a completed call created, changed, or took up for editing, shown in the chat. */
285
295
  export type ArtifactPresentation = Static<typeof artifactPresentationSchema>;
296
+ /**
297
+ * A web page a completed call asked the chat to show inline, at a URL as the agent's own machine
298
+ * reaches it. `display` is an artifact display preference, or `null` for the client's choice.
299
+ */
300
+ export declare const pagePresentationSchema: import("@sinclair/typebox").TObject<{
301
+ type: import("@sinclair/typebox").TLiteral<"page">;
302
+ url: import("@sinclair/typebox").TString;
303
+ title: import("@sinclair/typebox").TString;
304
+ display: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"inline_compact">, import("@sinclair/typebox").TLiteral<"inline_expanded">, import("@sinclair/typebox").TLiteral<"side">]>, import("@sinclair/typebox").TNull]>;
305
+ }>;
306
+ /** A web page a completed call asked the chat to show inline. */
307
+ export type PagePresentation = Static<typeof pagePresentationSchema>;
286
308
  /** Every display-ready tool-call presentation the client understands. */
287
309
  export declare const toolPresentationSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
288
310
  operations: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
@@ -385,11 +407,18 @@ export declare const toolPresentationSchema: import("@sinclair/typebox").TUnion<
385
407
  }>, import("@sinclair/typebox").TObject<{
386
408
  type: import("@sinclair/typebox").TLiteral<"artifact">;
387
409
  artifactId: import("@sinclair/typebox").TString;
388
- /** The version number this call produced. */
410
+ /** The artifact's latest version when the call completed. */
389
411
  version: import("@sinclair/typebox").TInteger;
390
412
  artifactType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"markdown">, import("@sinclair/typebox").TLiteral<"html">, import("@sinclair/typebox").TLiteral<"image">, import("@sinclair/typebox").TLiteral<"image_series">, import("@sinclair/typebox").TLiteral<"video">, import("@sinclair/typebox").TLiteral<"document">]>;
391
413
  /** The artifact's title at that version. */
392
414
  title: import("@sinclair/typebox").TString;
415
+ /** Which version the chat shows; absent on older daemons, meaning `"version"`. */
416
+ shows: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"latest">, import("@sinclair/typebox").TLiteral<"version">]>>;
417
+ }>, import("@sinclair/typebox").TObject<{
418
+ type: import("@sinclair/typebox").TLiteral<"page">;
419
+ url: import("@sinclair/typebox").TString;
420
+ title: import("@sinclair/typebox").TString;
421
+ display: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"inline_compact">, import("@sinclair/typebox").TLiteral<"inline_expanded">, import("@sinclair/typebox").TLiteral<"side">]>, import("@sinclair/typebox").TNull]>;
393
422
  }>]>;
394
423
  /** Every display-ready tool-call presentation the client understands. */
395
424
  export type ToolPresentation = Static<typeof toolPresentationSchema>;
@@ -516,6 +545,787 @@ export declare const messageErrorSchema: import("@sinclair/typebox").TObject<{
516
545
  }>;
517
546
  }>;
518
547
  export type MessageError = Static<typeof messageErrorSchema>;
548
+ /** Failure kinds with understood remedies; unknown wire kinds are still readable. */
549
+ export declare const knownMessageFailureKindSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"signin_missing">, import("@sinclair/typebox").TLiteral<"usage_limit">, import("@sinclair/typebox").TLiteral<"no_account_available">, import("@sinclair/typebox").TLiteral<"rate_limited">, import("@sinclair/typebox").TLiteral<"provider_unavailable">, import("@sinclair/typebox").TLiteral<"network">, import("@sinclair/typebox").TLiteral<"context_too_long">, import("@sinclair/typebox").TLiteral<"provider_disabled">, import("@sinclair/typebox").TLiteral<"internal">]>;
550
+ export type KnownMessageFailureKind = Static<typeof knownMessageFailureKindSchema>;
551
+ /** The provider entry a failure is about. Display text is daemon-supplied, never inferred. */
552
+ export declare const messageFailureProviderSchema: import("@sinclair/typebox").TObject<{
553
+ id: import("@sinclair/typebox").TString;
554
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
555
+ type: import("@sinclair/typebox").TString;
556
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
557
+ vendorName: import("@sinclair/typebox").TString;
558
+ /** The configured provider entry's display label, such as "claude_work". */
559
+ label: import("@sinclair/typebox").TString;
560
+ }>;
561
+ export type MessageFailureProvider = Static<typeof messageFailureProviderSchema>;
562
+ /** One usable account and model to switch to, ranked by the daemon. */
563
+ /** Ranking groups with understood labels; unknown wire values are still readable. */
564
+ export declare const knownFallbackGroupSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"same_model">, import("@sinclair/typebox").TLiteral<"same_family">, import("@sinclair/typebox").TLiteral<"other_provider">]>;
565
+ export type KnownFallbackGroup = Static<typeof knownFallbackGroupSchema>;
566
+ export declare const messageFailureFallbackSchema: import("@sinclair/typebox").TObject<{
567
+ providerId: import("@sinclair/typebox").TString;
568
+ /** The provider entry's display label, such as "claude_work". */
569
+ providerLabel: import("@sinclair/typebox").TString;
570
+ /** Clients name the model from the model catalog. */
571
+ modelId: import("@sinclair/typebox").TString;
572
+ /** Percentage of one usage window already used; null without a fresh reading. */
573
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
574
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
575
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
576
+ /** Ranking group; menus label groups only when more than one is present. */
577
+ group: import("@sinclair/typebox").TString;
578
+ }>;
579
+ export type MessageFailureFallback = Static<typeof messageFailureFallbackSchema>;
580
+ /** The failed turn was sent again on the same route. */
581
+ export declare const retriedResolutionSchema: import("@sinclair/typebox").TObject<{
582
+ action: import("@sinclair/typebox").TLiteral<"retried">;
583
+ at: import("@sinclair/typebox").TInteger;
584
+ }>;
585
+ /** The chat moved to another route and the turn continued there. */
586
+ export declare const switchedResolutionSchema: import("@sinclair/typebox").TObject<{
587
+ action: import("@sinclair/typebox").TLiteral<"switched">;
588
+ at: import("@sinclair/typebox").TInteger;
589
+ modelId: import("@sinclair/typebox").TString;
590
+ providerId: import("@sinclair/typebox").TString;
591
+ }>;
592
+ /** A resolution action this client does not know; it still shows that the failure was handled. */
593
+ export declare const otherResolutionSchema: import("@sinclair/typebox").TObject<{
594
+ action: import("@sinclair/typebox").TString;
595
+ at: import("@sinclair/typebox").TInteger;
596
+ }>;
597
+ /** What the person did about a failure. The failed message stays in history and records it. */
598
+ export declare const messageFailureResolutionSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
599
+ action: import("@sinclair/typebox").TLiteral<"retried">;
600
+ at: import("@sinclair/typebox").TInteger;
601
+ }>, import("@sinclair/typebox").TObject<{
602
+ action: import("@sinclair/typebox").TLiteral<"switched">;
603
+ at: import("@sinclair/typebox").TInteger;
604
+ modelId: import("@sinclair/typebox").TString;
605
+ providerId: import("@sinclair/typebox").TString;
606
+ }>, import("@sinclair/typebox").TObject<{
607
+ action: import("@sinclair/typebox").TString;
608
+ at: import("@sinclair/typebox").TInteger;
609
+ }>]>;
610
+ export type MessageFailureResolution = Static<typeof retriedResolutionSchema> | Static<typeof switchedResolutionSchema> | (Static<typeof otherResolutionSchema> & {
611
+ action: string & {};
612
+ });
613
+ export declare const signinMissingFailureSchema: import("@sinclair/typebox").TObject<{
614
+ command: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
615
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
616
+ providerId: import("@sinclair/typebox").TString;
617
+ /** The provider entry's display label, such as "claude_work". */
618
+ providerLabel: import("@sinclair/typebox").TString;
619
+ /** Clients name the model from the model catalog. */
620
+ modelId: import("@sinclair/typebox").TString;
621
+ /** Percentage of one usage window already used; null without a fresh reading. */
622
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
623
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
624
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
625
+ /** Ranking group; menus label groups only when more than one is present. */
626
+ group: import("@sinclair/typebox").TString;
627
+ }>>;
628
+ kind: import("@sinclair/typebox").TLiteral<"signin_missing">;
629
+ message: import("@sinclair/typebox").TString;
630
+ product: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
631
+ provider: import("@sinclair/typebox").TObject<{
632
+ id: import("@sinclair/typebox").TString;
633
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
634
+ type: import("@sinclair/typebox").TString;
635
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
636
+ vendorName: import("@sinclair/typebox").TString;
637
+ /** The configured provider entry's display label, such as "claude_work". */
638
+ label: import("@sinclair/typebox").TString;
639
+ }>;
640
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
641
+ action: import("@sinclair/typebox").TLiteral<"retried">;
642
+ at: import("@sinclair/typebox").TInteger;
643
+ }>, import("@sinclair/typebox").TObject<{
644
+ action: import("@sinclair/typebox").TLiteral<"switched">;
645
+ at: import("@sinclair/typebox").TInteger;
646
+ modelId: import("@sinclair/typebox").TString;
647
+ providerId: import("@sinclair/typebox").TString;
648
+ }>, import("@sinclair/typebox").TObject<{
649
+ action: import("@sinclair/typebox").TString;
650
+ at: import("@sinclair/typebox").TInteger;
651
+ }>]>>;
652
+ }>;
653
+ export declare const usageLimitFailureSchema: import("@sinclair/typebox").TObject<{
654
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
655
+ providerId: import("@sinclair/typebox").TString;
656
+ /** The provider entry's display label, such as "claude_work". */
657
+ providerLabel: import("@sinclair/typebox").TString;
658
+ /** Clients name the model from the model catalog. */
659
+ modelId: import("@sinclair/typebox").TString;
660
+ /** Percentage of one usage window already used; null without a fresh reading. */
661
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
662
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
663
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
664
+ /** Ranking group; menus label groups only when more than one is present. */
665
+ group: import("@sinclair/typebox").TString;
666
+ }>>;
667
+ kind: import("@sinclair/typebox").TLiteral<"usage_limit">;
668
+ message: import("@sinclair/typebox").TString;
669
+ provider: import("@sinclair/typebox").TObject<{
670
+ id: import("@sinclair/typebox").TString;
671
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
672
+ type: import("@sinclair/typebox").TString;
673
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
674
+ vendorName: import("@sinclair/typebox").TString;
675
+ /** The configured provider entry's display label, such as "claude_work". */
676
+ label: import("@sinclair/typebox").TString;
677
+ }>;
678
+ resetsAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
679
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
680
+ action: import("@sinclair/typebox").TLiteral<"retried">;
681
+ at: import("@sinclair/typebox").TInteger;
682
+ }>, import("@sinclair/typebox").TObject<{
683
+ action: import("@sinclair/typebox").TLiteral<"switched">;
684
+ at: import("@sinclair/typebox").TInteger;
685
+ modelId: import("@sinclair/typebox").TString;
686
+ providerId: import("@sinclair/typebox").TString;
687
+ }>, import("@sinclair/typebox").TObject<{
688
+ action: import("@sinclair/typebox").TString;
689
+ at: import("@sinclair/typebox").TInteger;
690
+ }>]>>;
691
+ }>;
692
+ export declare const noAccountAvailableFailureSchema: import("@sinclair/typebox").TObject<{
693
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
694
+ providerId: import("@sinclair/typebox").TString;
695
+ /** The provider entry's display label, such as "claude_work". */
696
+ providerLabel: import("@sinclair/typebox").TString;
697
+ /** Clients name the model from the model catalog. */
698
+ modelId: import("@sinclair/typebox").TString;
699
+ /** Percentage of one usage window already used; null without a fresh reading. */
700
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
701
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
702
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
703
+ /** Ranking group; menus label groups only when more than one is present. */
704
+ group: import("@sinclair/typebox").TString;
705
+ }>>;
706
+ kind: import("@sinclair/typebox").TLiteral<"no_account_available">;
707
+ message: import("@sinclair/typebox").TString;
708
+ poolName: import("@sinclair/typebox").TString;
709
+ resetsAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
710
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
711
+ action: import("@sinclair/typebox").TLiteral<"retried">;
712
+ at: import("@sinclair/typebox").TInteger;
713
+ }>, import("@sinclair/typebox").TObject<{
714
+ action: import("@sinclair/typebox").TLiteral<"switched">;
715
+ at: import("@sinclair/typebox").TInteger;
716
+ modelId: import("@sinclair/typebox").TString;
717
+ providerId: import("@sinclair/typebox").TString;
718
+ }>, import("@sinclair/typebox").TObject<{
719
+ action: import("@sinclair/typebox").TString;
720
+ at: import("@sinclair/typebox").TInteger;
721
+ }>]>>;
722
+ }>;
723
+ export declare const rateLimitedFailureSchema: import("@sinclair/typebox").TObject<{
724
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
725
+ providerId: import("@sinclair/typebox").TString;
726
+ /** The provider entry's display label, such as "claude_work". */
727
+ providerLabel: import("@sinclair/typebox").TString;
728
+ /** Clients name the model from the model catalog. */
729
+ modelId: import("@sinclair/typebox").TString;
730
+ /** Percentage of one usage window already used; null without a fresh reading. */
731
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
732
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
733
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
734
+ /** Ranking group; menus label groups only when more than one is present. */
735
+ group: import("@sinclair/typebox").TString;
736
+ }>>;
737
+ kind: import("@sinclair/typebox").TLiteral<"rate_limited">;
738
+ message: import("@sinclair/typebox").TString;
739
+ provider: import("@sinclair/typebox").TObject<{
740
+ id: import("@sinclair/typebox").TString;
741
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
742
+ type: import("@sinclair/typebox").TString;
743
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
744
+ vendorName: import("@sinclair/typebox").TString;
745
+ /** The configured provider entry's display label, such as "claude_work". */
746
+ label: import("@sinclair/typebox").TString;
747
+ }>;
748
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
749
+ action: import("@sinclair/typebox").TLiteral<"retried">;
750
+ at: import("@sinclair/typebox").TInteger;
751
+ }>, import("@sinclair/typebox").TObject<{
752
+ action: import("@sinclair/typebox").TLiteral<"switched">;
753
+ at: import("@sinclair/typebox").TInteger;
754
+ modelId: import("@sinclair/typebox").TString;
755
+ providerId: import("@sinclair/typebox").TString;
756
+ }>, import("@sinclair/typebox").TObject<{
757
+ action: import("@sinclair/typebox").TString;
758
+ at: import("@sinclair/typebox").TInteger;
759
+ }>]>>;
760
+ }>;
761
+ export declare const providerUnavailableFailureSchema: import("@sinclair/typebox").TObject<{
762
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
763
+ providerId: import("@sinclair/typebox").TString;
764
+ /** The provider entry's display label, such as "claude_work". */
765
+ providerLabel: import("@sinclair/typebox").TString;
766
+ /** Clients name the model from the model catalog. */
767
+ modelId: import("@sinclair/typebox").TString;
768
+ /** Percentage of one usage window already used; null without a fresh reading. */
769
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
770
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
771
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
772
+ /** Ranking group; menus label groups only when more than one is present. */
773
+ group: import("@sinclair/typebox").TString;
774
+ }>>;
775
+ kind: import("@sinclair/typebox").TLiteral<"provider_unavailable">;
776
+ message: import("@sinclair/typebox").TString;
777
+ provider: import("@sinclair/typebox").TObject<{
778
+ id: import("@sinclair/typebox").TString;
779
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
780
+ type: import("@sinclair/typebox").TString;
781
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
782
+ vendorName: import("@sinclair/typebox").TString;
783
+ /** The configured provider entry's display label, such as "claude_work". */
784
+ label: import("@sinclair/typebox").TString;
785
+ }>;
786
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
787
+ action: import("@sinclair/typebox").TLiteral<"retried">;
788
+ at: import("@sinclair/typebox").TInteger;
789
+ }>, import("@sinclair/typebox").TObject<{
790
+ action: import("@sinclair/typebox").TLiteral<"switched">;
791
+ at: import("@sinclair/typebox").TInteger;
792
+ modelId: import("@sinclair/typebox").TString;
793
+ providerId: import("@sinclair/typebox").TString;
794
+ }>, import("@sinclair/typebox").TObject<{
795
+ action: import("@sinclair/typebox").TString;
796
+ at: import("@sinclair/typebox").TInteger;
797
+ }>]>>;
798
+ }>;
799
+ export declare const networkFailureSchema: import("@sinclair/typebox").TObject<{
800
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
801
+ providerId: import("@sinclair/typebox").TString;
802
+ /** The provider entry's display label, such as "claude_work". */
803
+ providerLabel: import("@sinclair/typebox").TString;
804
+ /** Clients name the model from the model catalog. */
805
+ modelId: import("@sinclair/typebox").TString;
806
+ /** Percentage of one usage window already used; null without a fresh reading. */
807
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
808
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
809
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
810
+ /** Ranking group; menus label groups only when more than one is present. */
811
+ group: import("@sinclair/typebox").TString;
812
+ }>>;
813
+ kind: import("@sinclair/typebox").TLiteral<"network">;
814
+ message: import("@sinclair/typebox").TString;
815
+ provider: import("@sinclair/typebox").TObject<{
816
+ id: import("@sinclair/typebox").TString;
817
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
818
+ type: import("@sinclair/typebox").TString;
819
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
820
+ vendorName: import("@sinclair/typebox").TString;
821
+ /** The configured provider entry's display label, such as "claude_work". */
822
+ label: import("@sinclair/typebox").TString;
823
+ }>;
824
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
825
+ action: import("@sinclair/typebox").TLiteral<"retried">;
826
+ at: import("@sinclair/typebox").TInteger;
827
+ }>, import("@sinclair/typebox").TObject<{
828
+ action: import("@sinclair/typebox").TLiteral<"switched">;
829
+ at: import("@sinclair/typebox").TInteger;
830
+ modelId: import("@sinclair/typebox").TString;
831
+ providerId: import("@sinclair/typebox").TString;
832
+ }>, import("@sinclair/typebox").TObject<{
833
+ action: import("@sinclair/typebox").TString;
834
+ at: import("@sinclair/typebox").TInteger;
835
+ }>]>>;
836
+ }>;
837
+ export declare const providerDisabledFailureSchema: import("@sinclair/typebox").TObject<{
838
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
839
+ providerId: import("@sinclair/typebox").TString;
840
+ /** The provider entry's display label, such as "claude_work". */
841
+ providerLabel: import("@sinclair/typebox").TString;
842
+ /** Clients name the model from the model catalog. */
843
+ modelId: import("@sinclair/typebox").TString;
844
+ /** Percentage of one usage window already used; null without a fresh reading. */
845
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
846
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
847
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
848
+ /** Ranking group; menus label groups only when more than one is present. */
849
+ group: import("@sinclair/typebox").TString;
850
+ }>>;
851
+ kind: import("@sinclair/typebox").TLiteral<"provider_disabled">;
852
+ message: import("@sinclair/typebox").TString;
853
+ provider: import("@sinclair/typebox").TObject<{
854
+ id: import("@sinclair/typebox").TString;
855
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
856
+ type: import("@sinclair/typebox").TString;
857
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
858
+ vendorName: import("@sinclair/typebox").TString;
859
+ /** The configured provider entry's display label, such as "claude_work". */
860
+ label: import("@sinclair/typebox").TString;
861
+ }>;
862
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
863
+ action: import("@sinclair/typebox").TLiteral<"retried">;
864
+ at: import("@sinclair/typebox").TInteger;
865
+ }>, import("@sinclair/typebox").TObject<{
866
+ action: import("@sinclair/typebox").TLiteral<"switched">;
867
+ at: import("@sinclair/typebox").TInteger;
868
+ modelId: import("@sinclair/typebox").TString;
869
+ providerId: import("@sinclair/typebox").TString;
870
+ }>, import("@sinclair/typebox").TObject<{
871
+ action: import("@sinclair/typebox").TString;
872
+ at: import("@sinclair/typebox").TInteger;
873
+ }>]>>;
874
+ }>;
875
+ export declare const contextTooLongFailureSchema: import("@sinclair/typebox").TObject<{
876
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
877
+ providerId: import("@sinclair/typebox").TString;
878
+ /** The provider entry's display label, such as "claude_work". */
879
+ providerLabel: import("@sinclair/typebox").TString;
880
+ /** Clients name the model from the model catalog. */
881
+ modelId: import("@sinclair/typebox").TString;
882
+ /** Percentage of one usage window already used; null without a fresh reading. */
883
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
884
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
885
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
886
+ /** Ranking group; menus label groups only when more than one is present. */
887
+ group: import("@sinclair/typebox").TString;
888
+ }>>;
889
+ kind: import("@sinclair/typebox").TLiteral<"context_too_long">;
890
+ message: import("@sinclair/typebox").TString;
891
+ modelId: import("@sinclair/typebox").TString;
892
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
893
+ action: import("@sinclair/typebox").TLiteral<"retried">;
894
+ at: import("@sinclair/typebox").TInteger;
895
+ }>, import("@sinclair/typebox").TObject<{
896
+ action: import("@sinclair/typebox").TLiteral<"switched">;
897
+ at: import("@sinclair/typebox").TInteger;
898
+ modelId: import("@sinclair/typebox").TString;
899
+ providerId: import("@sinclair/typebox").TString;
900
+ }>, import("@sinclair/typebox").TObject<{
901
+ action: import("@sinclair/typebox").TString;
902
+ at: import("@sinclair/typebox").TInteger;
903
+ }>]>>;
904
+ }>;
905
+ export declare const internalFailureSchema: import("@sinclair/typebox").TObject<{
906
+ detail: import("@sinclair/typebox").TString;
907
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
908
+ providerId: import("@sinclair/typebox").TString;
909
+ /** The provider entry's display label, such as "claude_work". */
910
+ providerLabel: import("@sinclair/typebox").TString;
911
+ /** Clients name the model from the model catalog. */
912
+ modelId: import("@sinclair/typebox").TString;
913
+ /** Percentage of one usage window already used; null without a fresh reading. */
914
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
915
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
916
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
917
+ /** Ranking group; menus label groups only when more than one is present. */
918
+ group: import("@sinclair/typebox").TString;
919
+ }>>;
920
+ kind: import("@sinclair/typebox").TLiteral<"internal">;
921
+ message: import("@sinclair/typebox").TString;
922
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
923
+ action: import("@sinclair/typebox").TLiteral<"retried">;
924
+ at: import("@sinclair/typebox").TInteger;
925
+ }>, import("@sinclair/typebox").TObject<{
926
+ action: import("@sinclair/typebox").TLiteral<"switched">;
927
+ at: import("@sinclair/typebox").TInteger;
928
+ modelId: import("@sinclair/typebox").TString;
929
+ providerId: import("@sinclair/typebox").TString;
930
+ }>, import("@sinclair/typebox").TObject<{
931
+ action: import("@sinclair/typebox").TString;
932
+ at: import("@sinclair/typebox").TInteger;
933
+ }>]>>;
934
+ }>;
935
+ /** A kind this client does not know: render `message` with Retry and Ask Chief of Staff. */
936
+ export declare const otherFailureSchema: import("@sinclair/typebox").TObject<{
937
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
938
+ providerId: import("@sinclair/typebox").TString;
939
+ /** The provider entry's display label, such as "claude_work". */
940
+ providerLabel: import("@sinclair/typebox").TString;
941
+ /** Clients name the model from the model catalog. */
942
+ modelId: import("@sinclair/typebox").TString;
943
+ /** Percentage of one usage window already used; null without a fresh reading. */
944
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
945
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
946
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
947
+ /** Ranking group; menus label groups only when more than one is present. */
948
+ group: import("@sinclair/typebox").TString;
949
+ }>>;
950
+ kind: import("@sinclair/typebox").TString;
951
+ message: import("@sinclair/typebox").TString;
952
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
953
+ action: import("@sinclair/typebox").TLiteral<"retried">;
954
+ at: import("@sinclair/typebox").TInteger;
955
+ }>, import("@sinclair/typebox").TObject<{
956
+ action: import("@sinclair/typebox").TLiteral<"switched">;
957
+ at: import("@sinclair/typebox").TInteger;
958
+ modelId: import("@sinclair/typebox").TString;
959
+ providerId: import("@sinclair/typebox").TString;
960
+ }>, import("@sinclair/typebox").TObject<{
961
+ action: import("@sinclair/typebox").TString;
962
+ at: import("@sinclair/typebox").TInteger;
963
+ }>]>>;
964
+ }>;
965
+ /**
966
+ * Typed failure on an ordinary error service message, protocol 30 or newer, discriminated by
967
+ * `kind`. Clients write the card text from the kind and its fields; the last variant keeps
968
+ * kinds added later readable.
969
+ */
970
+ export declare const messageFailureSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
971
+ command: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
972
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
973
+ providerId: import("@sinclair/typebox").TString;
974
+ /** The provider entry's display label, such as "claude_work". */
975
+ providerLabel: import("@sinclair/typebox").TString;
976
+ /** Clients name the model from the model catalog. */
977
+ modelId: import("@sinclair/typebox").TString;
978
+ /** Percentage of one usage window already used; null without a fresh reading. */
979
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
980
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
981
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
982
+ /** Ranking group; menus label groups only when more than one is present. */
983
+ group: import("@sinclair/typebox").TString;
984
+ }>>;
985
+ kind: import("@sinclair/typebox").TLiteral<"signin_missing">;
986
+ message: import("@sinclair/typebox").TString;
987
+ product: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
988
+ provider: import("@sinclair/typebox").TObject<{
989
+ id: import("@sinclair/typebox").TString;
990
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
991
+ type: import("@sinclair/typebox").TString;
992
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
993
+ vendorName: import("@sinclair/typebox").TString;
994
+ /** The configured provider entry's display label, such as "claude_work". */
995
+ label: import("@sinclair/typebox").TString;
996
+ }>;
997
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
998
+ action: import("@sinclair/typebox").TLiteral<"retried">;
999
+ at: import("@sinclair/typebox").TInteger;
1000
+ }>, import("@sinclair/typebox").TObject<{
1001
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1002
+ at: import("@sinclair/typebox").TInteger;
1003
+ modelId: import("@sinclair/typebox").TString;
1004
+ providerId: import("@sinclair/typebox").TString;
1005
+ }>, import("@sinclair/typebox").TObject<{
1006
+ action: import("@sinclair/typebox").TString;
1007
+ at: import("@sinclair/typebox").TInteger;
1008
+ }>]>>;
1009
+ }>, import("@sinclair/typebox").TObject<{
1010
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1011
+ providerId: import("@sinclair/typebox").TString;
1012
+ /** The provider entry's display label, such as "claude_work". */
1013
+ providerLabel: import("@sinclair/typebox").TString;
1014
+ /** Clients name the model from the model catalog. */
1015
+ modelId: import("@sinclair/typebox").TString;
1016
+ /** Percentage of one usage window already used; null without a fresh reading. */
1017
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1018
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1019
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1020
+ /** Ranking group; menus label groups only when more than one is present. */
1021
+ group: import("@sinclair/typebox").TString;
1022
+ }>>;
1023
+ kind: import("@sinclair/typebox").TLiteral<"usage_limit">;
1024
+ message: import("@sinclair/typebox").TString;
1025
+ provider: import("@sinclair/typebox").TObject<{
1026
+ id: import("@sinclair/typebox").TString;
1027
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
1028
+ type: import("@sinclair/typebox").TString;
1029
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
1030
+ vendorName: import("@sinclair/typebox").TString;
1031
+ /** The configured provider entry's display label, such as "claude_work". */
1032
+ label: import("@sinclair/typebox").TString;
1033
+ }>;
1034
+ resetsAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
1035
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1036
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1037
+ at: import("@sinclair/typebox").TInteger;
1038
+ }>, import("@sinclair/typebox").TObject<{
1039
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1040
+ at: import("@sinclair/typebox").TInteger;
1041
+ modelId: import("@sinclair/typebox").TString;
1042
+ providerId: import("@sinclair/typebox").TString;
1043
+ }>, import("@sinclair/typebox").TObject<{
1044
+ action: import("@sinclair/typebox").TString;
1045
+ at: import("@sinclair/typebox").TInteger;
1046
+ }>]>>;
1047
+ }>, import("@sinclair/typebox").TObject<{
1048
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1049
+ providerId: import("@sinclair/typebox").TString;
1050
+ /** The provider entry's display label, such as "claude_work". */
1051
+ providerLabel: import("@sinclair/typebox").TString;
1052
+ /** Clients name the model from the model catalog. */
1053
+ modelId: import("@sinclair/typebox").TString;
1054
+ /** Percentage of one usage window already used; null without a fresh reading. */
1055
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1056
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1057
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1058
+ /** Ranking group; menus label groups only when more than one is present. */
1059
+ group: import("@sinclair/typebox").TString;
1060
+ }>>;
1061
+ kind: import("@sinclair/typebox").TLiteral<"no_account_available">;
1062
+ message: import("@sinclair/typebox").TString;
1063
+ poolName: import("@sinclair/typebox").TString;
1064
+ resetsAt: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TInteger, import("@sinclair/typebox").TNull]>;
1065
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1066
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1067
+ at: import("@sinclair/typebox").TInteger;
1068
+ }>, import("@sinclair/typebox").TObject<{
1069
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1070
+ at: import("@sinclair/typebox").TInteger;
1071
+ modelId: import("@sinclair/typebox").TString;
1072
+ providerId: import("@sinclair/typebox").TString;
1073
+ }>, import("@sinclair/typebox").TObject<{
1074
+ action: import("@sinclair/typebox").TString;
1075
+ at: import("@sinclair/typebox").TInteger;
1076
+ }>]>>;
1077
+ }>, import("@sinclair/typebox").TObject<{
1078
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1079
+ providerId: import("@sinclair/typebox").TString;
1080
+ /** The provider entry's display label, such as "claude_work". */
1081
+ providerLabel: import("@sinclair/typebox").TString;
1082
+ /** Clients name the model from the model catalog. */
1083
+ modelId: import("@sinclair/typebox").TString;
1084
+ /** Percentage of one usage window already used; null without a fresh reading. */
1085
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1086
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1087
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1088
+ /** Ranking group; menus label groups only when more than one is present. */
1089
+ group: import("@sinclair/typebox").TString;
1090
+ }>>;
1091
+ kind: import("@sinclair/typebox").TLiteral<"rate_limited">;
1092
+ message: import("@sinclair/typebox").TString;
1093
+ provider: import("@sinclair/typebox").TObject<{
1094
+ id: import("@sinclair/typebox").TString;
1095
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
1096
+ type: import("@sinclair/typebox").TString;
1097
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
1098
+ vendorName: import("@sinclair/typebox").TString;
1099
+ /** The configured provider entry's display label, such as "claude_work". */
1100
+ label: import("@sinclair/typebox").TString;
1101
+ }>;
1102
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1103
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1104
+ at: import("@sinclair/typebox").TInteger;
1105
+ }>, import("@sinclair/typebox").TObject<{
1106
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1107
+ at: import("@sinclair/typebox").TInteger;
1108
+ modelId: import("@sinclair/typebox").TString;
1109
+ providerId: import("@sinclair/typebox").TString;
1110
+ }>, import("@sinclair/typebox").TObject<{
1111
+ action: import("@sinclair/typebox").TString;
1112
+ at: import("@sinclair/typebox").TInteger;
1113
+ }>]>>;
1114
+ }>, import("@sinclair/typebox").TObject<{
1115
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1116
+ providerId: import("@sinclair/typebox").TString;
1117
+ /** The provider entry's display label, such as "claude_work". */
1118
+ providerLabel: import("@sinclair/typebox").TString;
1119
+ /** Clients name the model from the model catalog. */
1120
+ modelId: import("@sinclair/typebox").TString;
1121
+ /** Percentage of one usage window already used; null without a fresh reading. */
1122
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1123
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1124
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1125
+ /** Ranking group; menus label groups only when more than one is present. */
1126
+ group: import("@sinclair/typebox").TString;
1127
+ }>>;
1128
+ kind: import("@sinclair/typebox").TLiteral<"provider_unavailable">;
1129
+ message: import("@sinclair/typebox").TString;
1130
+ provider: import("@sinclair/typebox").TObject<{
1131
+ id: import("@sinclair/typebox").TString;
1132
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
1133
+ type: import("@sinclair/typebox").TString;
1134
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
1135
+ vendorName: import("@sinclair/typebox").TString;
1136
+ /** The configured provider entry's display label, such as "claude_work". */
1137
+ label: import("@sinclair/typebox").TString;
1138
+ }>;
1139
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1140
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1141
+ at: import("@sinclair/typebox").TInteger;
1142
+ }>, import("@sinclair/typebox").TObject<{
1143
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1144
+ at: import("@sinclair/typebox").TInteger;
1145
+ modelId: import("@sinclair/typebox").TString;
1146
+ providerId: import("@sinclair/typebox").TString;
1147
+ }>, import("@sinclair/typebox").TObject<{
1148
+ action: import("@sinclair/typebox").TString;
1149
+ at: import("@sinclair/typebox").TInteger;
1150
+ }>]>>;
1151
+ }>, import("@sinclair/typebox").TObject<{
1152
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1153
+ providerId: import("@sinclair/typebox").TString;
1154
+ /** The provider entry's display label, such as "claude_work". */
1155
+ providerLabel: import("@sinclair/typebox").TString;
1156
+ /** Clients name the model from the model catalog. */
1157
+ modelId: import("@sinclair/typebox").TString;
1158
+ /** Percentage of one usage window already used; null without a fresh reading. */
1159
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1160
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1161
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1162
+ /** Ranking group; menus label groups only when more than one is present. */
1163
+ group: import("@sinclair/typebox").TString;
1164
+ }>>;
1165
+ kind: import("@sinclair/typebox").TLiteral<"network">;
1166
+ message: import("@sinclair/typebox").TString;
1167
+ provider: import("@sinclair/typebox").TObject<{
1168
+ id: import("@sinclair/typebox").TString;
1169
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
1170
+ type: import("@sinclair/typebox").TString;
1171
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
1172
+ vendorName: import("@sinclair/typebox").TString;
1173
+ /** The configured provider entry's display label, such as "claude_work". */
1174
+ label: import("@sinclair/typebox").TString;
1175
+ }>;
1176
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1177
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1178
+ at: import("@sinclair/typebox").TInteger;
1179
+ }>, import("@sinclair/typebox").TObject<{
1180
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1181
+ at: import("@sinclair/typebox").TInteger;
1182
+ modelId: import("@sinclair/typebox").TString;
1183
+ providerId: import("@sinclair/typebox").TString;
1184
+ }>, import("@sinclair/typebox").TObject<{
1185
+ action: import("@sinclair/typebox").TString;
1186
+ at: import("@sinclair/typebox").TInteger;
1187
+ }>]>>;
1188
+ }>, import("@sinclair/typebox").TObject<{
1189
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1190
+ providerId: import("@sinclair/typebox").TString;
1191
+ /** The provider entry's display label, such as "claude_work". */
1192
+ providerLabel: import("@sinclair/typebox").TString;
1193
+ /** Clients name the model from the model catalog. */
1194
+ modelId: import("@sinclair/typebox").TString;
1195
+ /** Percentage of one usage window already used; null without a fresh reading. */
1196
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1197
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1198
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1199
+ /** Ranking group; menus label groups only when more than one is present. */
1200
+ group: import("@sinclair/typebox").TString;
1201
+ }>>;
1202
+ kind: import("@sinclair/typebox").TLiteral<"provider_disabled">;
1203
+ message: import("@sinclair/typebox").TString;
1204
+ provider: import("@sinclair/typebox").TObject<{
1205
+ id: import("@sinclair/typebox").TString;
1206
+ /** Canonical family such as `claude`, `codex`, `grok`, or `bedrock`; extensible. */
1207
+ type: import("@sinclair/typebox").TString;
1208
+ /** The vendor as people say it in a sentence: "Claude", "Codex", "Grok", "Bedrock". */
1209
+ vendorName: import("@sinclair/typebox").TString;
1210
+ /** The configured provider entry's display label, such as "claude_work". */
1211
+ label: import("@sinclair/typebox").TString;
1212
+ }>;
1213
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1214
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1215
+ at: import("@sinclair/typebox").TInteger;
1216
+ }>, import("@sinclair/typebox").TObject<{
1217
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1218
+ at: import("@sinclair/typebox").TInteger;
1219
+ modelId: import("@sinclair/typebox").TString;
1220
+ providerId: import("@sinclair/typebox").TString;
1221
+ }>, import("@sinclair/typebox").TObject<{
1222
+ action: import("@sinclair/typebox").TString;
1223
+ at: import("@sinclair/typebox").TInteger;
1224
+ }>]>>;
1225
+ }>, import("@sinclair/typebox").TObject<{
1226
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1227
+ providerId: import("@sinclair/typebox").TString;
1228
+ /** The provider entry's display label, such as "claude_work". */
1229
+ providerLabel: import("@sinclair/typebox").TString;
1230
+ /** Clients name the model from the model catalog. */
1231
+ modelId: import("@sinclair/typebox").TString;
1232
+ /** Percentage of one usage window already used; null without a fresh reading. */
1233
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1234
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1235
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1236
+ /** Ranking group; menus label groups only when more than one is present. */
1237
+ group: import("@sinclair/typebox").TString;
1238
+ }>>;
1239
+ kind: import("@sinclair/typebox").TLiteral<"context_too_long">;
1240
+ message: import("@sinclair/typebox").TString;
1241
+ modelId: import("@sinclair/typebox").TString;
1242
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1243
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1244
+ at: import("@sinclair/typebox").TInteger;
1245
+ }>, import("@sinclair/typebox").TObject<{
1246
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1247
+ at: import("@sinclair/typebox").TInteger;
1248
+ modelId: import("@sinclair/typebox").TString;
1249
+ providerId: import("@sinclair/typebox").TString;
1250
+ }>, import("@sinclair/typebox").TObject<{
1251
+ action: import("@sinclair/typebox").TString;
1252
+ at: import("@sinclair/typebox").TInteger;
1253
+ }>]>>;
1254
+ }>, import("@sinclair/typebox").TObject<{
1255
+ detail: import("@sinclair/typebox").TString;
1256
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1257
+ providerId: import("@sinclair/typebox").TString;
1258
+ /** The provider entry's display label, such as "claude_work". */
1259
+ providerLabel: import("@sinclair/typebox").TString;
1260
+ /** Clients name the model from the model catalog. */
1261
+ modelId: import("@sinclair/typebox").TString;
1262
+ /** Percentage of one usage window already used; null without a fresh reading. */
1263
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1264
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1265
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1266
+ /** Ranking group; menus label groups only when more than one is present. */
1267
+ group: import("@sinclair/typebox").TString;
1268
+ }>>;
1269
+ kind: import("@sinclair/typebox").TLiteral<"internal">;
1270
+ message: import("@sinclair/typebox").TString;
1271
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1272
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1273
+ at: import("@sinclair/typebox").TInteger;
1274
+ }>, import("@sinclair/typebox").TObject<{
1275
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1276
+ at: import("@sinclair/typebox").TInteger;
1277
+ modelId: import("@sinclair/typebox").TString;
1278
+ providerId: import("@sinclair/typebox").TString;
1279
+ }>, import("@sinclair/typebox").TObject<{
1280
+ action: import("@sinclair/typebox").TString;
1281
+ at: import("@sinclair/typebox").TInteger;
1282
+ }>]>>;
1283
+ }>, import("@sinclair/typebox").TObject<{
1284
+ fallbackProviders: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
1285
+ providerId: import("@sinclair/typebox").TString;
1286
+ /** The provider entry's display label, such as "claude_work". */
1287
+ providerLabel: import("@sinclair/typebox").TString;
1288
+ /** Clients name the model from the model catalog. */
1289
+ modelId: import("@sinclair/typebox").TString;
1290
+ /** Percentage of one usage window already used; null without a fresh reading. */
1291
+ usedPercent: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
1292
+ /** Lowercase name of the window `usedPercent` comes from, such as "weekly" or "5h". */
1293
+ usageWindow: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
1294
+ /** Ranking group; menus label groups only when more than one is present. */
1295
+ group: import("@sinclair/typebox").TString;
1296
+ }>>;
1297
+ kind: import("@sinclair/typebox").TString;
1298
+ message: import("@sinclair/typebox").TString;
1299
+ resolution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
1300
+ action: import("@sinclair/typebox").TLiteral<"retried">;
1301
+ at: import("@sinclair/typebox").TInteger;
1302
+ }>, import("@sinclair/typebox").TObject<{
1303
+ action: import("@sinclair/typebox").TLiteral<"switched">;
1304
+ at: import("@sinclair/typebox").TInteger;
1305
+ modelId: import("@sinclair/typebox").TString;
1306
+ providerId: import("@sinclair/typebox").TString;
1307
+ }>, import("@sinclair/typebox").TObject<{
1308
+ action: import("@sinclair/typebox").TString;
1309
+ at: import("@sinclair/typebox").TInteger;
1310
+ }>]>>;
1311
+ }>]>;
1312
+ export type KnownMessageFailure = Static<typeof signinMissingFailureSchema> | Static<typeof usageLimitFailureSchema> | Static<typeof noAccountAvailableFailureSchema> | Static<typeof rateLimitedFailureSchema> | Static<typeof providerUnavailableFailureSchema> | Static<typeof networkFailureSchema> | Static<typeof providerDisabledFailureSchema> | Static<typeof contextTooLongFailureSchema> | Static<typeof internalFailureSchema>;
1313
+ /** Narrow on `kind` with {@link isKnownMessageFailure}; anything else is an unknown kind. */
1314
+ export type MessageFailure = KnownMessageFailure | Static<typeof otherFailureSchema>;
1315
+ /**
1316
+ * Whether this failure is one of the kinds this client understands, with every field that kind
1317
+ * requires. A known kind missing its typed fields stays an unknown-shaped failure, so a client
1318
+ * never reads a field such as `resetsAt` that is not there.
1319
+ */
1320
+ export declare function isKnownMessageFailure(failure: MessageFailure): failure is KnownMessageFailure;
1321
+ /** Service notices that are not failures; unknown kinds render the message text. */
1322
+ export declare const knownServiceNoticeKindSchema: import("@sinclair/typebox").TLiteral<"context_reset">;
1323
+ export type KnownServiceNoticeKind = Static<typeof knownServiceNoticeKindSchema>;
1324
+ /** A typed service notice, protocol 30 or newer. */
1325
+ export declare const serviceNoticeSchema: import("@sinclair/typebox").TObject<{
1326
+ kind: import("@sinclair/typebox").TString;
1327
+ }>;
1328
+ export type ServiceNotice = Static<typeof serviceNoticeSchema>;
519
1329
  /** An explicit request in a user message for Agent Base to execute one tool before inference. */
520
1330
  export declare const toolCallRequestBlockSchema: import("@sinclair/typebox").TObject<{
521
1331
  arguments: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TRecursive<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TThis>, import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TThis>]>>>>;
@@ -704,6 +1514,10 @@ export interface ServiceMessage {
704
1514
  metadata: MessageMetadata;
705
1515
  /** Supplementary diagnostics; the original full user-safe text remains in content. */
706
1516
  error?: MessageError;
1517
+ /** Typed failure the client renders from, protocol 30 or newer. */
1518
+ failure?: MessageFailure;
1519
+ /** Typed non-failure notice, such as a context reset; protocol 30 or newer. */
1520
+ notice?: ServiceNotice;
707
1521
  }
708
1522
  /** One durable execution configuration transition, never model input. */
709
1523
  export interface ConfigurationMessage extends Omit<ServiceMessage, "content"> {