@0xinsider/sdk 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.d.ts CHANGED
@@ -598,7 +598,7 @@ export type EdgeHunterObservation = {
598
598
  conviction_score: number;
599
599
  /** Whether the provider holder page came from the shared cache or a live provider read. */
600
600
  provider_read_source: "cached" | "live";
601
- /** True only when neither provider outcome holder page hit the top-100 scan bound. False means the pile is a positive lower bound and cannot satisfy a future capital-promotion gate. */
601
+ /** True only when provider pagination proves exhaustion of both outcome holder populations. Observation collection may follow bounded cursor pages; hitting an individual 100-row page does not by itself prove incompleteness. Bounded or interrupted walks remain incomplete. False means holder counts and dollar totals measure the observed positive-holder subset. sharp_pct describes that observed subset and is not a lower bound on the full-population percentage. Incomplete scans cannot satisfy a future capital-promotion gate. */
602
602
  holder_scan_complete: boolean;
603
603
  /** Proven provider holder observation time. A warm cache hit uses only the original provider completion time from its companion metadata, never cache-read time. Null, malformed, future, or stale holder time fails in-play closed. */
604
604
  holder_snapshot_at: string | null;
@@ -615,7 +615,29 @@ export type EdgeHunterObservation = {
615
615
  /** Required nullable frozen metadata context. Null only during the legacy-generation transition; selected reads require sidecar readiness and fail closed with 503 instead. */
616
616
  market_context: EdgeHunterMarketContext | null;
617
617
  };
618
- /** Full Edge Hunter observations list envelope. The view literal distinguishes advanced collections, including empty pages. */
618
+ /** Measured coverage of the frozen canonical observation generation and this requested page. For sports and esports reads, the first four counts remain global through category, cohort and all selectors. They are neither a census of all provider markets nor a count of successfully evaluated holders. Selected and returned counts describe the requested projection. An unmappable legacy category synthesizes a zero-work empty generation with all six counts zero and no degradation reasons; it does not read the all-sports cache. */
619
+ export type EdgeHunterObservationCoverage = {
620
+ /** Sum of canonical source-generation funnel input across all sports, before category, cohort or selector projection. */
621
+ input_markets: number;
622
+ /** Canonical source-generation input assigned capacity_limited. These markets were intentionally outside the bounded holder-work admission and are not missing emitted rows. */
623
+ capacity_limited_markets: number;
624
+ /** All wider_holder and in_play observations emitted in the canonical source generation, before cohort, category or selector projection. Emerging pile is an overlapping projection and does not add source emissions. */
625
+ emitted_observations: number;
626
+ /** Canonical source-generation markets whose attempted holder scan did not establish complete coverage, including incomplete scans that did not emit an observation. */
627
+ incomplete_holder_markets: number;
628
+ /** Observations matching the requested cohort, category, selectors and applicable pinned projection cutoff before pagination. */
629
+ selected_observations: number;
630
+ /** Observation rows on this page; equals data.length. */
631
+ returned_observations: number;
632
+ };
633
+ /** One observed cause of operational degradation in the canonical all-sports observation generation. Reasons are independent of the one-terminal-per-input funnel and remain unchanged through category, cohort and selector projection. Intentional capacity limits and an unconfigured upcoming source are not degradation reasons. */
634
+ export type EdgeHunterObservationDegradationReason = {
635
+ /** Recorded producer cause. holder_scan_incomplete means at least one attempted holder scan did not establish complete coverage; directional_unavailable can accompany an emitted wider_holder row; live_source_stale means provider live evidence exceeded its freshness bound. Other values identify reconciliation, applicable board-source or terminal failure evidence. */
636
+ reason: "holder_scan_incomplete" | "live_source_stale" | "directional_unavailable" | "funnel_unreconciled" | "board_live_unavailable" | "board_upcoming_unavailable" | "provider_unavailable" | "holder_deadline_unavailable" | "holder_computation_unavailable" | "missing_stored_market" | "price_unavailable" | "in_play_stale_observed" | "in_play_directional_unavailable" | "internal_unclassified" | "board_source_unavailable" | "board_deadline_unavailable";
637
+ /** Canonical sport for the recorded cause; null only for generation-wide evidence without a sport attribution. */
638
+ sport: string | null;
639
+ };
640
+ /** Full Edge Hunter observations list envelope. Required degradation_reasons explains the source-generation verdict; required coverage distinguishes source input, intentional capacity exclusions, source emissions, incomplete holder scans, selection and the returned page. The view literal distinguishes advanced collections, including empty pages. */
619
641
  export type EdgeHunterObservationsResponse = {
620
642
  object: "list";
621
643
  view: "observations";
@@ -625,8 +647,11 @@ export type EdgeHunterObservationsResponse = {
625
647
  next_cursor: string | null;
626
648
  /** Completion time of the shared observation snapshot pinned by the cursor. */
627
649
  snapshot_as_of: string;
628
- /** True when an operational failure or unknown provider-board, holder, directional, reconciliation, or internal completeness state made this snapshot partial. This is snapshot-wide and can retain degradation that the funnel's one-terminal-per-input accounting cannot represent. Intentional bounded capacity_limited rows remain fully accounted in the funnel and do not by themselves set this field. */
650
+ /** True when an operational failure or unknown provider-board, holder, directional, reconciliation, or internal completeness state made this snapshot partial. This is snapshot-wide and can retain degradation that the funnel's one-terminal-per-input accounting cannot represent. Inspect degradation_reasons for every recorded source-generation cause and its nullable canonical sport attribution. Intentional bounded capacity_limited rows remain fully accounted in the funnel and do not by themselves set this field; board_upcoming_status=not_configured is not a failure. */
629
651
  degraded: boolean;
652
+ /** Sorted, deduplicated causes from the canonical all-sports generation, unchanged by category, cohort or selectors. Empty exactly when degraded is false. Capacity-limited input and board_upcoming_status=not_configured do not by themselves add a reason. */
653
+ degradation_reasons: EdgeHunterObservationDegradationReason[];
654
+ coverage: EdgeHunterObservationCoverage;
630
655
  funnel: EdgeHunterFunnelReport;
631
656
  meta: ResponseMeta;
632
657
  /** Normalized axes requested with a selector or category; omitted on an unselected default read. */
@@ -634,12 +659,14 @@ export type EdgeHunterObservationsResponse = {
634
659
  };
635
660
  /** Closed 25-value terminal-reason vocabulary for the accountable Edge Hunter observation funnel. capacity_limited is intentional bounded provider-work admission and does not itself set the snapshot degraded. board_source_unavailable is a completed board-source failure; board_deadline_unavailable means live-board work missed either an internal configured-scope deadline or the outer fair-wave deadline; both classify only already-started rows, so for the upcoming source read funnel.sports[].board_upcoming_status instead; provider_unavailable is reserved for an attempted holder-provider failure; holder_deadline_unavailable is holder cache/provider absolute-deadline exhaustion. */
636
661
  export type EdgeHunterObservationTerminalReason = "outside_horizon" | "resolved" | "provider_closed" | "provider_excluded" | "invalid_market" | "missing_token" | "missing_stored_market" | "not_provider_live" | "board_source_unavailable" | "board_deadline_unavailable" | "primary_slate_candidate" | "zero_indexed_holder_research" | "capacity_limited" | "provider_unavailable" | "holder_deadline_unavailable" | "holder_computation_unavailable" | "holder_scan_incomplete" | "no_current_graded_holder" | "split_holder_pile" | "price_unavailable" | "wider_holder_emitted" | "in_play_emitted" | "in_play_stale_observed" | "in_play_directional_unavailable" | "internal_unclassified";
637
- /** One provider outcome in YES/NO order. Null current_price means no verified current quote is available. */
662
+ /** One provider outcome in fixed YES/NO order, including its frozen token identity and independently observed quote. Null current_price means no verified current quote is available. */
638
663
  export type EdgeHunterOutcome = {
639
664
  index: 0 | 1;
640
665
  label: string | null;
641
666
  provider_id: number | null;
642
- current_price: EdgeHunterPrice;
667
+ /** Frozen provider CLOB token ID for this exact outcome in YES/NO order. Null when unavailable; not a participant identity. */
668
+ token_id: string | null;
669
+ current_price: EdgeHunterPrice | null;
643
670
  };
644
671
  export type EdgeHunterParticipant = {
645
672
  provider_id?: number;
@@ -754,7 +781,7 @@ export type EdgeHunterRow = {
754
781
  participants: EdgeHunterParticipant[];
755
782
  image: string | null;
756
783
  outcomes: EdgeHunterOutcome[];
757
- signal: EdgeHunterSignal;
784
+ signal: EdgeHunterSignal | null;
758
785
  /** Required nullable frozen metadata context. Null only during the legacy-generation transition; selected reads require sidecar readiness and fail closed with 503 instead. */
759
786
  market_context: EdgeHunterMarketContext | null;
760
787
  };
@@ -776,7 +803,7 @@ export type EdgeHunterSelection = {
776
803
  /** Exact provider series slugs. Read market_context.series_slug; a missing selected series excludes the row. */
777
804
  series_slugs?: string[];
778
805
  };
779
- /** Backed-side analytics from the ranked snapshot, plus a separately dated current quote. Scores rank attention; they are not probabilities or order instructions. */
806
+ /** Backed-side analytics, token identity, frozen ranked_at and aggregate category evidence from the ranked snapshot, plus a separately dated current quote. Scores rank attention; they are not probabilities or order instructions. */
780
807
  export type EdgeHunterSignal = {
781
808
  piled_side: string | null;
782
809
  piled_outcome_index: 0 | 1;
@@ -796,7 +823,13 @@ export type EdgeHunterSignal = {
796
823
  one_way_graded_usd: number | null;
797
824
  directional_confidence: number | null;
798
825
  directional_rank_score: number;
799
- current_price: EdgeHunterPrice;
826
+ current_price: EdgeHunterPrice | null;
827
+ /** Frozen provider CLOB token ID for the backed outcome. Null when unavailable; matches outcomes[piled_outcome_index].token_id when the shared provider context is available. */
828
+ token_id: string | null;
829
+ /** UTC computation time copied from this ranked row's frozen signal_created_at. It dates the ranking, not the separately observed quote, metadata writer, or wallet entry. */
830
+ ranked_at: string;
831
+ /** Existing aggregate category evidence copied from the same ranked snapshot. Read its status, coverage and own clocks; it never changes admission or ordering and is not a predicted return. */
832
+ category_skill: EdgeHunterCategorySkill;
800
833
  };
801
834
  /** Full Edge Hunter signals list envelope. The view literal distinguishes advanced collections, including empty pages. */
802
835
  export type EdgeHunterSignalsResponse = {