daishi-sdk 0.2.27 → 0.2.28

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.
@@ -424,32 +424,57 @@ export interface DeleteSkillResponse {
424
424
  deleted: string;
425
425
  }
426
426
  export interface EstimateResponse {
427
+ /** Agent turns one trial plays at most: seats times rounds. */
427
428
  agentTurns: number;
429
+ /** Low bound on one trial’s provider cost, US dollars, summed over its seats. */
428
430
  usdLow: number;
431
+ /** High bound on one trial’s provider cost, US dollars, summed over its seats. */
429
432
  usdHigh: number;
433
+ /** True when some seat’s model has no published price row, so its figure is a guess. */
430
434
  approximate: boolean;
435
+ /** Low bound on one trial’s wall clock, minutes, never above the run’s time cap. */
431
436
  minutesLow: number;
437
+ /** High bound on one trial’s wall clock, minutes, never above the run’s time cap. */
432
438
  minutesHigh: number;
439
+ /** True when even the low bound on the wall clock passes the run’s time cap, so the cap would stop the run before its last round. */
433
440
  hitsRunCap: boolean;
441
+ /** One row per seat priced. */
434
442
  perSeat: SeatEstimate[];
435
- /** A plan’s limits as the server enforces them. `agentTurnsPerMonth` and `logRetentionDays` are null where the plan sets no limit. */
443
+ /** The plan the estimate was priced under. */
436
444
  plan: PlanLimits;
445
+ /** How the account holds that plan. */
437
446
  entitlement: Entitlement;
447
+ /** Who pays for each seat, in roster order: `user`, `sponsored`, or `guest` for an invited seat a peer’s agent plays on the peer’s keys. */
438
448
  funding: Array<'user' | 'sponsored' | 'guest'>;
449
+ /** The spend cap a launch on this plan starts with, US dollars. */
439
450
  cap_default_usd: number;
451
+ /** The highest spend cap this plan accepts, US dollars. */
440
452
  cap_max_usd: number;
453
+ /** The spend cap this request would get, US dollars. */
441
454
  cap_usd: number;
455
+ /** The plan’s agent turns per UTC month; null where it sets no cap. */
442
456
  agent_turns_limit: number | null;
457
+ /** Agent turns played this month. */
443
458
  agent_turns_used: number;
459
+ /** Agent turns held by runs still queued or playing. */
444
460
  agent_turns_reserved: number;
461
+ /** Turns left this month before this launch’s own reservation; null where the plan sets no cap. */
445
462
  agent_turns_remaining: number | null;
463
+ /** Runs the account holds queued or playing right now. */
446
464
  queued_runs: number;
465
+ /** Runs the plan lets the account hold queued or playing at once. */
447
466
  queued_runs_limit: number;
467
+ /** The wall-clock cap the run would get, minutes. */
448
468
  minutes_cap: number;
469
+ /** What the owner’s OpenRouter key may still spend, when the roster has own-key OpenRouter seats and OpenRouter reported a number; otherwise null. */
449
470
  openrouter_balance_usd: number | null;
471
+ /** Trials this launch would run; 1 is a single run. */
450
472
  trials: number;
473
+ /** The plan’s ceiling on trials in one batch. */
451
474
  trials_max: number;
475
+ /** Totals for the whole batch: what the launch commits to. */
452
476
  batch: EstimateBatch;
477
+ /** What this many trials buys before any of it runs. Sizing guidance, not a promise: a finished batch reports the spread it showed. */
453
478
  precision: EstimatePrecision;
454
479
  }
455
480
  export interface LaunchResponse {
@@ -468,12 +493,19 @@ export interface GetRunResponse {
468
493
  results: RunResults | null;
469
494
  }
470
495
  export interface UsageResponse {
496
+ /** When the view was built, Unix ms. */
471
497
  generated_at_ms: number;
498
+ /** Start of the current UTC month, Unix ms: the period the allowance counts in. */
472
499
  period_start_ms: number;
500
+ /** Where the account stands against its plan this month. */
473
501
  allowances: UsageAllowances | null;
502
+ /** The meter summed over every run on the account. */
474
503
  totals: UsageTotals;
504
+ /** One row per UTC month with at least one run, newest first. */
475
505
  months: UsageMonth[];
506
+ /** One row per model and provider, highest spend first, then most runs. */
476
507
  models: UsageModel[];
508
+ /** One row per run, newest first, capped. */
477
509
  runs: UsageRun[];
478
510
  }
479
511
  export interface ModelsResponse {
@@ -486,9 +518,13 @@ export interface ModelsResponse {
486
518
  caveat: string;
487
519
  }
488
520
  export interface LiveResponse {
521
+ /** One row per run of the owner’s that is playing now. */
489
522
  worlds: LiveWorld[];
523
+ /** One row per run of the owner’s that has not started. */
490
524
  waiting: LiveWaiting[];
525
+ /** Counts across the board. */
491
526
  totals: LiveResponseTotals;
527
+ /** When the board was read, Unix ms. */
492
528
  refreshed_at_ms: number;
493
529
  }
494
530
  export interface GetBatchResponse {
@@ -624,12 +660,19 @@ export interface RunLogsResponse {
624
660
  files: RunLogsResponseFile[];
625
661
  }
626
662
  export interface RunSeatsResponse {
663
+ /** The run’s id. */
627
664
  run_id: string;
665
+ /** The run’s status. */
628
666
  status: 'queued' | 'launching' | 'running' | 'finished' | 'failed' | 'cancelled';
667
+ /** Every harness version that played a Studio seat, distinct, in roster order. */
629
668
  harness_versions: string[];
669
+ /** Days the plan keeps a run’s logs; null where it keeps them. */
630
670
  retention_days: number | null;
671
+ /** The same window in a sentence. */
631
672
  retention_note: string;
673
+ /** True when no harness log is kept for the run any more: none was written, or the window passed. */
632
674
  logs_gone: boolean;
675
+ /** One row per seat, in roster order. */
633
676
  seats: SeatReport[];
634
677
  }
635
678
  export interface ListInvitesResponse {
@@ -1556,62 +1599,110 @@ export interface ValidateResponseReceiptWarning {
1556
1599
  message: string;
1557
1600
  }
1558
1601
  export interface SeatEstimate {
1602
+ /** The seat’s model id. */
1559
1603
  model: string;
1604
+ /** The provider the seat’s calls go to. */
1560
1605
  provider: string;
1606
+ /** Who pays for the seat: `user` the owner’s own key, `sponsored` the operator. Absent where the request did not say. */
1561
1607
  funding?: 'user' | 'sponsored';
1608
+ /** Low bound on this seat’s cost for one trial, US dollars. */
1562
1609
  usdLow: number;
1610
+ /** High bound on this seat’s cost for one trial, US dollars. */
1563
1611
  usdHigh: number;
1612
+ /** Where the price came from: `table` the price table’s row for the model, `catalog` the provider’s own catalog, `fallback` no published price, so the figure is a guess. */
1564
1613
  source: string;
1565
1614
  }
1566
- /** A plan’s limits as the server enforces them. `agentTurnsPerMonth` and `logRetentionDays` are null where the plan sets no limit. */
1615
+ /** The plan the estimate was priced under. */
1567
1616
  export interface PlanLimits {
1617
+ /** The plan: `free`, `starter`, `pro` or `lab`. */
1568
1618
  id: 'free' | 'starter' | 'pro' | 'lab';
1619
+ /** The plan’s display name. */
1569
1620
  name: string;
1621
+ /** Price of one month, US dollars. */
1570
1622
  priceMonthlyUsd: number;
1623
+ /** Price of one year, US dollars. */
1571
1624
  priceYearlyUsd: number;
1625
+ /** Seats (models) per run. The operator’s own ceiling can be lower. */
1572
1626
  seatsPerRun: number;
1627
+ /** Longest run, in rounds (`ticks` in this API): one turn per seat, then the world update. */
1573
1628
  ticksPerRun: number;
1629
+ /** Agent turns (one seat’s turn in one round) per UTC month; null where the plan sets no cap. */
1574
1630
  agentTurnsPerMonth: number | null;
1631
+ /** Runs the account may hold queued or playing at once. A series batch counts as one. */
1575
1632
  queuedRuns: number;
1633
+ /** Trials one series batch may hold. */
1576
1634
  seriesMaxTrials: number;
1635
+ /** Wall-clock cap per run, minutes. The operator’s own ceiling can be lower. */
1577
1636
  runMaxMinutes: number;
1637
+ /** Saved scenarios the account may hold. */
1578
1638
  savedScenarios: number;
1639
+ /** Saved skills the account may hold. */
1579
1640
  savedSkills: number;
1641
+ /** Runs the account may hold in all, every status counted. A launch past it answers `run_history_full`. */
1580
1642
  maxRuns: number;
1643
+ /** Days a run’s logs are kept before they are deleted; null where the plan keeps them. */
1581
1644
  logRetentionDays: number | null;
1645
+ /** Queue ordering: a higher number starts first. */
1582
1646
  queuePriority: number;
1647
+ /** Head start in line, minutes: a waiting run is ordered as if it had queued this much earlier. */
1583
1648
  queueHeadStartMinutes: number;
1649
+ /** The per-run spend cap a launch starts with, US dollars. */
1584
1650
  spendCapDefaultUsd: number;
1651
+ /** The highest per-run spend cap the plan accepts, US dollars. */
1585
1652
  spendCapMaxUsd: number;
1653
+ /** Members the plan lists. Informational: workspaces do not exist yet. */
1586
1654
  members: number;
1655
+ /** Access tokens the account may hold at once. */
1587
1656
  apiTokens: number;
1657
+ /** Per-token ceiling on developer API and Studio MCP calls per minute. */
1588
1658
  apiRequestsPerMinute: number;
1659
+ /** What the plan switches on. */
1589
1660
  features: PlanFeatures;
1590
1661
  }
1662
+ /** What the plan switches on. */
1591
1663
  export interface PlanFeatures {
1664
+ /** Series batches: several trials of one setup. */
1592
1665
  series: boolean;
1666
+ /** A token may create scenarios and runs. Every plan may read, validate and estimate through a token. */
1593
1667
  api: boolean;
1668
+ /** Every run plays on a private world of its own. True on every plan. */
1594
1669
  dedicatedWorld: boolean;
1670
+ /** Guest seats: a peer’s own agent may take a seat through a link the owner shares. */
1595
1671
  invites: boolean;
1596
1672
  }
1673
+ /** How the account holds that plan. */
1597
1674
  export interface Entitlement {
1598
- /** A plan’s limits as the server enforces them. `agentTurnsPerMonth` and `logRetentionDays` are null where the plan sets no limit. */
1675
+ /** The limits in force for the account right now. */
1599
1676
  plan: PlanLimits;
1677
+ /** The subscription’s state as billing reports it; `none` with no subscription. */
1600
1678
  status: 'active' | 'trialing' | 'past_due' | 'canceled' | 'none';
1679
+ /** When the current billing period ends, Unix ms; null with no subscription. */
1601
1680
  periodEndMs: number | null;
1681
+ /** When a past-due subscription stops keeping its plan, Unix ms; null unless a payment is past due. */
1602
1682
  graceUntilMs: number | null;
1683
+ /** Why the account holds this plan: `subscription` a subscription in good standing, `default` the deployment’s default plan, `grace` a past-due subscription still inside its grace window, `fallback` Free because the subscription lapsed, `exempt` an account the operator lists as never charged, which holds Lab. */
1603
1684
  source: 'subscription' | 'default' | 'grace' | 'fallback' | 'exempt';
1604
1685
  }
1686
+ /** Totals for the whole batch: what the launch commits to. */
1605
1687
  export interface EstimateBatch {
1688
+ /** Agent turns across every trial. */
1606
1689
  agent_turns: number;
1690
+ /** Low bound on the batch’s provider cost, US dollars. */
1607
1691
  usd_low: number;
1692
+ /** High bound on the batch’s provider cost, US dollars. */
1608
1693
  usd_high: number;
1694
+ /** Low bound on the batch’s wall clock, minutes. */
1609
1695
  minutes_low: number;
1696
+ /** High bound on the batch’s wall clock, minutes. */
1610
1697
  minutes_high: number;
1611
1698
  }
1699
+ /** What this many trials buys before any of it runs. Sizing guidance, not a promise: a finished batch reports the spread it showed. */
1612
1700
  export interface EstimatePrecision {
1701
+ /** The standard deviation between trials the figures assume, in Fitness Index points. */
1613
1702
  reference_spread: number;
1703
+ /** Half-width of the 95% interval on the batch mean at the reference spread, by Student’s t on trials minus one degrees of freedom. */
1614
1704
  half_width: number;
1705
+ /** What one run can miss by at the reference spread: the normal 95% half-width for a single draw. */
1615
1706
  single_run_half_width: number;
1616
1707
  }
1617
1708
  export interface LaunchResponseBatch {
@@ -1619,107 +1710,196 @@ export interface LaunchResponseBatch {
1619
1710
  trials: number;
1620
1711
  seed_mode: 'vary' | 'pinned';
1621
1712
  }
1713
+ /** Where the account stands against its plan this month. */
1622
1714
  export interface UsageAllowances {
1715
+ /** The plan in force. */
1623
1716
  plan: UsageResponseAllowancesPlan;
1717
+ /** True for an account the operator lists as never charged: Lab limits, nothing billed. */
1624
1718
  exempt: boolean;
1719
+ /** The monthly agent-turn allowance. */
1625
1720
  agent_turns: UsageResponseAllowancesAgentTurns;
1721
+ /** Runs queued or playing right now, against the plan’s slots. */
1626
1722
  queued_runs: UsageResponseAllowancesQueuedRuns;
1723
+ /** The per-run spend cap on the owner’s own key: a stop, never a hold or a charge. */
1627
1724
  spend_cap_usd: UsageResponseAllowancesSpendCapUsd;
1725
+ /** Access tokens against the plan’s count. */
1628
1726
  api_tokens: UsageResponseAllowancesApiTokens;
1727
+ /** True when the operator sponsors keyless seats on this deployment. False means every seat runs on the owner’s own key. */
1629
1728
  sponsorship_available: boolean;
1630
1729
  }
1730
+ /** The plan in force. */
1631
1731
  export interface UsageResponseAllowancesPlan {
1732
+ /** The plan: `free`, `starter`, `pro` or `lab`. */
1632
1733
  id: 'free' | 'starter' | 'pro' | 'lab';
1734
+ /** The plan’s display name. */
1633
1735
  name: string;
1736
+ /** The subscription’s state as billing reports it; `none` with no subscription. */
1634
1737
  status: 'active' | 'trialing' | 'past_due' | 'canceled' | 'none';
1738
+ /** Why the account holds this plan: `subscription` a subscription in good standing, `default` the deployment’s default plan, `grace` a past-due subscription still inside its grace window, `fallback` Free because the subscription lapsed, `exempt` an account the operator lists as never charged, which holds Lab. */
1635
1739
  source: 'subscription' | 'default' | 'grace' | 'fallback' | 'exempt';
1636
1740
  }
1741
+ /** The monthly agent-turn allowance. */
1637
1742
  export interface UsageResponseAllowancesAgentTurns {
1743
+ /** Agent turns played this month. */
1638
1744
  used: number;
1745
+ /** Agent turns held by runs still queued or playing; given back when they settle. */
1639
1746
  reserved: number;
1747
+ /** The plan’s agent turns per UTC month; null where it sets no cap. */
1640
1748
  limit: number | null;
1749
+ /** The limit less used and reserved, never below zero; null where the plan sets no cap. */
1641
1750
  remaining: number | null;
1642
1751
  }
1752
+ /** Runs queued or playing right now, against the plan’s slots. */
1643
1753
  export interface UsageResponseAllowancesQueuedRuns {
1754
+ /** Runs queued or playing right now. */
1644
1755
  held: number;
1756
+ /** Runs the plan lets the account hold at once. */
1645
1757
  limit: number;
1646
1758
  }
1759
+ /** The per-run spend cap on the owner’s own key: a stop, never a hold or a charge. */
1647
1760
  export interface UsageResponseAllowancesSpendCapUsd {
1761
+ /** The cap a launch starts with, US dollars. */
1648
1762
  default: number;
1763
+ /** The highest cap the plan accepts, US dollars. */
1649
1764
  max: number;
1650
1765
  }
1766
+ /** Access tokens against the plan’s count. */
1651
1767
  export interface UsageResponseAllowancesApiTokens {
1768
+ /** Live access tokens on the account. */
1652
1769
  held: number;
1770
+ /** Access tokens the plan lets the account hold. */
1653
1771
  limit: number;
1772
+ /** Each token’s ceiling on calls per minute. */
1654
1773
  requests_per_minute: number;
1655
1774
  }
1775
+ /** The meter summed over every run on the account. */
1656
1776
  export interface UsageTotals {
1777
+ /** Model calls metered. */
1657
1778
  calls: number;
1779
+ /** Input tokens across those calls. */
1658
1780
  tokens_in: number;
1781
+ /** Output tokens across those calls. */
1659
1782
  tokens_out: number;
1783
+ /** Input tokens the provider read from its cache. */
1660
1784
  cache_read_tokens: number;
1785
+ /** Output tokens the provider counted as reasoning. */
1661
1786
  reasoning_tokens: number;
1787
+ /** Provider cost at the price table’s rates, US dollars. */
1662
1788
  spend_usd: number;
1789
+ /** That cost split by who paid. */
1663
1790
  by_payer: PayerUsd;
1791
+ /** True when some call was priced by a wildcard row of the price table. */
1664
1792
  approximate: boolean;
1793
+ /** Runs counted. */
1665
1794
  runs: number;
1795
+ /** Agent turns those runs played. */
1666
1796
  agent_turns_used: number;
1667
1797
  }
1798
+ /** That cost split by who paid. */
1668
1799
  export interface PayerUsd {
1800
+ /** Spent on the owner’s own keys, US dollars. */
1669
1801
  user: number;
1802
+ /** Spent on the operator’s keys, US dollars. */
1670
1803
  sponsored: number;
1671
1804
  }
1672
1805
  export interface UsageMonth {
1806
+ /** Start of the month, Unix ms. */
1673
1807
  start_ms: number;
1808
+ /** Runs charged to the month. */
1674
1809
  runs: number;
1810
+ /** Of those, runs that finished. */
1675
1811
  finished: number;
1812
+ /** Agent turns those runs played. */
1676
1813
  agent_turns_used: number;
1814
+ /** Model calls metered. */
1677
1815
  calls: number;
1816
+ /** Input tokens across those calls. */
1678
1817
  tokens_in: number;
1818
+ /** Output tokens across those calls. */
1679
1819
  tokens_out: number;
1820
+ /** Input tokens the provider read from its cache. */
1680
1821
  cache_read_tokens: number;
1822
+ /** Output tokens the provider counted as reasoning. */
1681
1823
  reasoning_tokens: number;
1824
+ /** Provider cost at the price table’s rates, US dollars. */
1682
1825
  spend_usd: number;
1826
+ /** That cost split by who paid. */
1683
1827
  by_payer: PayerUsd;
1828
+ /** True when some call was priced by a wildcard row of the price table. */
1684
1829
  approximate: boolean;
1685
1830
  }
1686
1831
  export interface UsageModel {
1832
+ /** The model id. */
1687
1833
  model: string;
1834
+ /** The provider that served it. */
1688
1835
  provider: string;
1836
+ /** Runs with a seat on this model. */
1689
1837
  runs: number;
1838
+ /** Seats on this model across those runs. */
1690
1839
  seats: number;
1840
+ /** Model calls metered. */
1691
1841
  calls: number;
1842
+ /** Input tokens across those calls. */
1692
1843
  tokens_in: number;
1844
+ /** Output tokens across those calls. */
1693
1845
  tokens_out: number;
1846
+ /** Input tokens the provider read from its cache. */
1694
1847
  cache_read_tokens: number;
1848
+ /** Output tokens the provider counted as reasoning. */
1695
1849
  reasoning_tokens: number;
1850
+ /** Provider cost at the price table’s rates, US dollars. */
1696
1851
  spend_usd: number;
1852
+ /** That cost split by who paid. */
1697
1853
  by_payer: PayerUsd;
1854
+ /** True when some call was priced by a wildcard row of the price table. */
1698
1855
  approximate: boolean;
1699
1856
  }
1700
1857
  export interface UsageRun {
1858
+ /** The run’s id. */
1701
1859
  run_id: string;
1860
+ /** The run’s name. */
1702
1861
  name: string;
1862
+ /** The scenario the run played. */
1703
1863
  scenario_id: string;
1864
+ /** The run’s status. */
1704
1865
  status: 'queued' | 'launching' | 'running' | 'finished' | 'failed' | 'cancelled';
1866
+ /** When the run was created, Unix ms. */
1705
1867
  created_at_ms: number;
1868
+ /** When play started, Unix ms; null before it starts. */
1706
1869
  started_at_ms: number | null;
1870
+ /** When the run ended, Unix ms; null while it has not. */
1707
1871
  ended_at_ms: number | null;
1872
+ /** Seats the owner’s own agents drove. An invited seat is not one. */
1708
1873
  seats: number;
1874
+ /** Invited seats: a peer’s agent on the peer’s own keys. Nothing of theirs is metered here. */
1709
1875
  guest_seats: number;
1876
+ /** Distinct payers across the seats, in the order `user`, `sponsored`. */
1710
1877
  payers: Array<'user' | 'sponsored'>;
1878
+ /** Agent turns the run played. */
1711
1879
  agent_turns_used: number;
1880
+ /** Agent turns the run holds while it is queued or playing. */
1712
1881
  agent_turns_reserved: number;
1882
+ /** The run’s spend cap, US dollars; null where it has none. */
1713
1883
  max_spend_usd: number | null;
1884
+ /** Why the run stopped early; null where it did not. */
1714
1885
  stop_reason: string | null;
1886
+ /** The price table that priced the run’s calls; null where none was recorded. */
1715
1887
  price_table_version: string | null;
1888
+ /** Model calls metered. */
1716
1889
  calls: number;
1890
+ /** Input tokens across those calls. */
1717
1891
  tokens_in: number;
1892
+ /** Output tokens across those calls. */
1718
1893
  tokens_out: number;
1894
+ /** Input tokens the provider read from its cache. */
1719
1895
  cache_read_tokens: number;
1896
+ /** Output tokens the provider counted as reasoning. */
1720
1897
  reasoning_tokens: number;
1898
+ /** Provider cost at the price table’s rates, US dollars. */
1721
1899
  spend_usd: number;
1900
+ /** That cost split by who paid. */
1722
1901
  by_payer: PayerUsd;
1902
+ /** True when some call was priced by a wildcard row of the price table. */
1723
1903
  approximate: boolean;
1724
1904
  }
1725
1905
  export interface ModelRow {
@@ -1770,110 +1950,198 @@ export interface ModelsResponsePooled {
1770
1950
  standalone: number;
1771
1951
  }
1772
1952
  export interface LiveWorld {
1953
+ /** The run’s id. */
1773
1954
  run_id: string;
1955
+ /** The run’s name. */
1774
1956
  name: string;
1957
+ /** The series or experiment the run belongs to; null on a single run. */
1775
1958
  group: LiveGroup | null;
1959
+ /** The match the run is playing; null before one opens. */
1776
1960
  match_id: string | null;
1961
+ /** The run’s own world; null on a single-world server. */
1777
1962
  lobby_id: string | null;
1963
+ /** The Live world page on this run, for its owner. */
1778
1964
  watch_url: string;
1965
+ /** The match’s phase. */
1779
1966
  phase: string;
1967
+ /** The current round. */
1780
1968
  round: number;
1969
+ /** Rounds the run is set to play. */
1781
1970
  rounds: number;
1971
+ /** Time since the round last advanced, ms. A slow model and a stalled world read differently here. */
1782
1972
  round_age_ms: number;
1973
+ /** When play started, Unix ms. */
1783
1974
  started_at_ms: number;
1975
+ /** When the run’s wall-clock cap stops it, Unix ms. */
1784
1976
  time_cap_at_ms: number;
1977
+ /** Provider cost metered so far, US dollars. */
1785
1978
  spend_usd: number;
1979
+ /** The run’s spend cap, US dollars; null where it has none. */
1786
1980
  max_spend_usd: number | null;
1981
+ /** Map width in regions. */
1787
1982
  width: number;
1983
+ /** Map height in regions. */
1788
1984
  height: number;
1985
+ /** One letter per region, row by row: `f` forest, `m` mountain, `p` plains, `w` water, `r` ruins. */
1789
1986
  terrain: string;
1987
+ /** The agents on the map. */
1790
1988
  seats: LiveSeat[];
1989
+ /** The leading agents. */
1791
1990
  top: LiveResponseWorldTop[];
1991
+ /** What only the owner can fix while fixing it still changes how this world plays. */
1792
1992
  flags: LiveFlag[];
1993
+ /** Worth knowing, with nothing to do. */
1793
1994
  heads_up: LiveHeadsUp[];
1995
+ /** The latest public event; null before one. Never an event marked private, and never message text. */
1794
1996
  last_event: LiveResponseWorldLastEvent | null;
1795
1997
  }
1998
+ /** The series or experiment the run belongs to; null on a single run. */
1796
1999
  export interface LiveGroup {
2000
+ /** Whether the run is a trial of a `series` or of one arm of an `experiment`. */
1797
2001
  kind: 'series' | 'experiment';
2002
+ /** The series batch’s or experiment’s id. */
1798
2003
  id: string;
2004
+ /** Its name. */
1799
2005
  label: string;
2006
+ /** The trial’s place within the series or arm, counted from 0. */
1800
2007
  trial: number;
2008
+ /** Trials in the series or arm. */
1801
2009
  of: number;
2010
+ /** The arm’s index on an experiment; null on a series. */
1802
2011
  arm: number | null;
2012
+ /** The arm’s label on an experiment; null on a series. */
1803
2013
  arm_label: string | null;
1804
2014
  }
1805
2015
  export interface LiveSeat {
2016
+ /** The agent’s name. */
1806
2017
  name: string;
2018
+ /** The palette (0 to 7) the agent wears on the Live world page. */
1807
2019
  color: number;
2020
+ /** Map column; null while the agent is not placed. */
1808
2021
  x: number | null;
2022
+ /** Map row; null while the agent is not placed. */
1809
2023
  y: number | null;
2024
+ /** Whether the agent is `active`, `dormant` or `dead`. */
1810
2025
  status: 'active' | 'dormant' | 'dead';
2026
+ /** True for a peer’s own agent in an invited seat: the owner neither drives nor pays it. */
1811
2027
  guest: boolean;
2028
+ /** True for a scenario baseline bot, which is not one of the run’s seats. */
1812
2029
  baseline: boolean;
1813
2030
  }
1814
2031
  export interface LiveResponseWorldTop {
2032
+ /** The agent’s name. */
1815
2033
  name: string;
2034
+ /** Its score so far. */
1816
2035
  score: number;
1817
2036
  }
1818
2037
  export interface LiveFlag {
2038
+ /** `out_of_credit`: a provider is refusing a seat on the owner’s own key for lack of credit while the seat still tries. `guest_quiet`: a guest seat has gone quiet. */
1819
2039
  code: 'out_of_credit' | 'guest_quiet';
2040
+ /** The seat it is about; null for the run as a whole. */
1820
2041
  seat: string | null;
2042
+ /** What happened. */
1821
2043
  text: string;
2044
+ /** The one thing to do about it, as an instruction. */
1822
2045
  action: string;
2046
+ /** Where to do it; null where there is no page. */
1823
2047
  action_url: string | null;
1824
2048
  }
1825
2049
  export interface LiveHeadsUp {
2050
+ /** `model_errors` and `rate_limited`: a seat’s model calls are failing. `seat_stopped`: a seat stopped playing. `forfeiting`: a seat is missing turns in a row. `spend_near_cap` and `time_near_cap`: the run is close to a cap. */
1826
2051
  code: 'model_errors' | 'rate_limited' | 'seat_stopped' | 'forfeiting' | 'spend_near_cap' | 'time_near_cap';
2052
+ /** The seat it is about; null for the run as a whole. */
1827
2053
  seat: string | null;
2054
+ /** What happened. */
1828
2055
  text: string;
1829
2056
  }
2057
+ /** The latest public event; null before one. Never an event marked private, and never message text. */
1830
2058
  export interface LiveResponseWorldLastEvent {
2059
+ /** The round it happened in. */
1831
2060
  round: number;
2061
+ /** What happened, in a few words. */
1832
2062
  text: string;
1833
2063
  }
1834
2064
  export interface LiveWaiting {
2065
+ /** The run’s id. */
1835
2066
  run_id: string;
2067
+ /** The run’s name. */
1836
2068
  name: string;
2069
+ /** The series or experiment the run belongs to; null on a single run. */
1837
2070
  group: LiveGroup | null;
2071
+ /** `in_line`: waiting for a free world. `own_limit`: the owner’s runs at once are all playing, so it starts when one ends. `guests`: its guest seats are still out. */
1838
2072
  reason: 'in_line' | 'own_limit' | 'guests';
2073
+ /** Place in line across the platform when `in_line`; otherwise null. */
1839
2074
  place: number | null;
2075
+ /** When the run is expected to start, ms from the refresh: an estimate from when the worlds ahead are expected to end. Null when nothing says. */
1840
2076
  starts_in_ms: number | null;
2077
+ /** When the run queued, Unix ms. */
1841
2078
  queued_at_ms: number;
1842
2079
  }
2080
+ /** Counts across the board. */
1843
2081
  export interface LiveResponseTotals {
2082
+ /** Worlds playing. */
1844
2083
  playing: number;
2084
+ /** Runs waiting. */
1845
2085
  waiting: number;
2086
+ /** Worlds carrying at least one flag. */
1846
2087
  needs_you: number;
2088
+ /** Spend across the playing runs, US dollars. */
1847
2089
  spend_usd: number;
2090
+ /** Sum of the playing runs’ spend caps, US dollars; null when any of them has none. */
1848
2091
  caps_usd: number | null;
1849
2092
  }
1850
2093
  export interface RunEstimate {
2094
+ /** Agent turns one trial plays at most: seats times rounds. */
1851
2095
  agentTurns: number;
2096
+ /** Low bound on one trial’s provider cost, US dollars, summed over its seats. */
1852
2097
  usdLow: number;
2098
+ /** High bound on one trial’s provider cost, US dollars, summed over its seats. */
1853
2099
  usdHigh: number;
2100
+ /** True when some seat’s model has no published price row, so its figure is a guess. */
1854
2101
  approximate: boolean;
2102
+ /** Low bound on one trial’s wall clock, minutes, never above the run’s time cap. */
1855
2103
  minutesLow: number;
2104
+ /** High bound on one trial’s wall clock, minutes, never above the run’s time cap. */
1856
2105
  minutesHigh: number;
2106
+ /** True when even the low bound on the wall clock passes the run’s time cap, so the cap would stop the run before its last round. */
1857
2107
  hitsRunCap: boolean;
2108
+ /** One row per seat priced. */
1858
2109
  perSeat: SeatEstimate[];
1859
- /** A plan’s limits as the server enforces them. `agentTurnsPerMonth` and `logRetentionDays` are null where the plan sets no limit. */
2110
+ /** The plan the estimate was priced under. */
1860
2111
  plan: PlanLimits;
2112
+ /** How the account holds that plan. */
1861
2113
  entitlement: Entitlement;
2114
+ /** Who pays for each seat, in roster order: `user`, `sponsored`, or `guest` for an invited seat a peer’s agent plays on the peer’s keys. */
1862
2115
  funding: Array<'user' | 'sponsored' | 'guest'>;
2116
+ /** The spend cap a launch on this plan starts with, US dollars. */
1863
2117
  cap_default_usd: number;
2118
+ /** The highest spend cap this plan accepts, US dollars. */
1864
2119
  cap_max_usd: number;
2120
+ /** The spend cap this request would get, US dollars. */
1865
2121
  cap_usd: number;
2122
+ /** The plan’s agent turns per UTC month; null where it sets no cap. */
1866
2123
  agent_turns_limit: number | null;
2124
+ /** Agent turns played this month. */
1867
2125
  agent_turns_used: number;
2126
+ /** Agent turns held by runs still queued or playing. */
1868
2127
  agent_turns_reserved: number;
2128
+ /** Turns left this month before this launch’s own reservation; null where the plan sets no cap. */
1869
2129
  agent_turns_remaining: number | null;
2130
+ /** Runs the account holds queued or playing right now. */
1870
2131
  queued_runs: number;
2132
+ /** Runs the plan lets the account hold queued or playing at once. */
1871
2133
  queued_runs_limit: number;
2134
+ /** The wall-clock cap the run would get, minutes. */
1872
2135
  minutes_cap: number;
2136
+ /** What the owner’s OpenRouter key may still spend, when the roster has own-key OpenRouter seats and OpenRouter reported a number; otherwise null. */
1873
2137
  openrouter_balance_usd: number | null;
2138
+ /** Trials this launch would run; 1 is a single run. */
1874
2139
  trials: number;
2140
+ /** The plan’s ceiling on trials in one batch. */
1875
2141
  trials_max: number;
2142
+ /** Totals for the whole batch: what the launch commits to. */
1876
2143
  batch: EstimateBatch;
2144
+ /** What this many trials buys before any of it runs. Sizing guidance, not a promise: a finished batch reports the spread it showed. */
1877
2145
  precision: EstimatePrecision;
1878
2146
  }
1879
2147
  export interface ExperimentEstimateDesign {
@@ -1933,89 +2201,160 @@ export interface RunLogsResponseFile {
1933
2201
  chunks: number;
1934
2202
  }
1935
2203
  export interface SeatReport {
2204
+ /** The seat’s name. */
1936
2205
  name: string;
2206
+ /** The seat’s model id. */
1937
2207
  model: string;
2208
+ /** Who drove the seat: `studio` the reference harness on the owner’s configuration, `guest` an invited agent on its own keys. */
1938
2209
  driver: 'studio' | 'guest';
2210
+ /** How the seat ended in the archive; null when the archive has not landed or the seat never played. */
1939
2211
  end_status: 'active' | 'dormant' | 'dead' | null;
2212
+ /** The harness that played the seat. Null on a guest seat and on a run that has not launched. */
1940
2213
  harness: RunSeatsResponseSeatHarness | null;
2214
+ /** What the seat said when asked after its epilogue: evidence of what it said, not of what it believed. Null until the harness reports it, and always null on a guest seat. */
1941
2215
  debrief: RunSeatsResponseSeatDebrief | null;
2216
+ /** A scan for turns on which the seat spoke of being evaluated or observed unprompted. A screen for a few phrasings, not a measure of what the seat believed. Null until reported. */
1942
2217
  voiced: RunSeatsResponseSeatVoiced | null;
2218
+ /** Rounds the seat forfeited, from the match’s own events. Null when the run has no match yet. */
1943
2219
  forfeits: RunSeatsResponseSeatForfeits | null;
2220
+ /** The meter’s own counts. Null on a guest seat, which is not metered. */
1944
2221
  calls: RunSeatsResponseSeatCalls | null;
2222
+ /** Run health, two rate limits kept apart. Null on a guest seat and on a run metered before health was recorded. */
1945
2223
  health: RunSeatsResponseSeatHealth | null;
2224
+ /** The seat’s trajectory file, while the plan still keeps it; read it with the run log endpoint. */
1946
2225
  trajectory: RunSeatsResponseSeatTrajectory | null;
1947
2226
  }
2227
+ /** The harness that played the seat. Null on a guest seat and on a run that has not launched. */
1948
2228
  export interface RunSeatsResponseSeatHarness {
2229
+ /** The harness version. */
1949
2230
  version: string | null;
2231
+ /** The scaffold identity the harness reported. */
1950
2232
  scaffold: string | null;
2233
+ /** The prompt version the seat played on. */
1951
2234
  prompt_version: string | null;
2235
+ /** The frame the seat played under. */
1952
2236
  frame: string | null;
2237
+ /** Where these came from: `trajectory` the seat’s own log header, `archive` what the match recorded at launch. */
1953
2238
  source: 'trajectory' | 'archive';
1954
2239
  }
2240
+ /** What the seat said when asked after its epilogue: evidence of what it said, not of what it believed. Null until the harness reports it, and always null on a guest seat. */
1955
2241
  export interface RunSeatsResponseSeatDebrief {
2242
+ /** False when no debrief landed; the answers are then null and `note` says why. */
1956
2243
  asked: boolean;
2244
+ /** Its answer to whether it believed the match was an evaluation of it. */
1957
2245
  believed_evaluation: 'yes' | 'no' | 'unsure' | 'unparsed' | null;
2246
+ /** Its answer to whether that changed its play. */
1958
2247
  changed_play: 'yes' | 'no' | 'unsure' | 'unparsed' | null;
2248
+ /** The cues it named. */
1959
2249
  cues: string[];
2250
+ /** How it said its play changed; null where it gave none. */
1960
2251
  how: string | null;
2252
+ /** Why no debrief landed, when `asked` is false. */
1961
2253
  note: string | null;
1962
2254
  }
2255
+ /** A scan for turns on which the seat spoke of being evaluated or observed unprompted. A screen for a few phrasings, not a measure of what the seat believed. Null until reported. */
1963
2256
  export interface RunSeatsResponseSeatVoiced {
2257
+ /** Turns the scan flagged. */
1964
2258
  turns: number;
2259
+ /** Turns the scan read. */
1965
2260
  turns_scanned: number;
2261
+ /** Whether the scan flagged the seat’s epilogue; null where that is not recorded. */
1966
2262
  epilogue: boolean | null;
2263
+ /** The scan’s version. */
1967
2264
  scan_version: string;
2265
+ /** Flagged turns by what they said; a turn counts once per category. Null on a tally from before the split. */
1968
2266
  by_category: RunSeatsResponseSeatVoicedByCategory | null;
1969
2267
  }
2268
+ /** Flagged turns by what they said; a turn counts once per category. Null on a tally from before the split. */
1970
2269
  export interface RunSeatsResponseSeatVoicedByCategory {
2270
+ /** Turns that called the match a test or evaluation. */
1971
2271
  evaluation: number;
2272
+ /** Turns that said it was watched or scored. */
1972
2273
  observed: number;
2274
+ /** Turns that said nothing real was at stake. */
1973
2275
  stakes: number;
1974
2276
  }
2277
+ /** Rounds the seat forfeited, from the match’s own events. Null when the run has no match yet. */
1975
2278
  export interface RunSeatsResponseSeatForfeits {
2279
+ /** Rounds forfeited. */
1976
2280
  total: number;
2281
+ /** Those rounds by cause. */
1977
2282
  by_cause: RunSeatsResponseSeatForfeitsByCause;
2283
+ /** Each forfeited round, oldest first, up to 100. */
1978
2284
  rounds: RunSeatsResponseSeatForfeitsRound[];
2285
+ /** True when the list stops short of every forfeited round. The counts still cover them all. */
1979
2286
  rounds_truncated: boolean;
1980
2287
  }
2288
+ /** Those rounds by cause. */
1981
2289
  export interface RunSeatsResponseSeatForfeitsByCause {
2290
+ /** Rounds the seat spent on a tool that does not take a turn. */
1982
2291
  free_tool: number;
2292
+ /** Rounds whose tool call failed. */
1983
2293
  refused_call: number;
2294
+ /** Rounds with no turn in the seat’s trajectory. */
1984
2295
  no_turn: number;
2296
+ /** Rounds forfeited for any other cause. */
1985
2297
  other: number;
1986
2298
  }
1987
2299
  export interface RunSeatsResponseSeatForfeitsRound {
2300
+ /** The round. */
1988
2301
  tick: number;
2302
+ /** Why it was forfeited. */
1989
2303
  cause: 'free_tool' | 'refused_call' | 'no_turn' | 'other';
2304
+ /** The action the trajectory shows at that round; null when no turn was recorded. */
1990
2305
  action: string | null;
1991
2306
  }
2307
+ /** The meter’s own counts. Null on a guest seat, which is not metered. */
1992
2308
  export interface RunSeatsResponseSeatCalls {
2309
+ /** Model calls the seat made. */
1993
2310
  model_calls: number;
2311
+ /** Play turns it took; null where the meter did not record them. */
1994
2312
  turns: number | null;
2313
+ /** Turns lost to a failed provider call. */
1995
2314
  error_turns: number;
2315
+ /** The error the seat’s agent exited on; null where it recorded none. */
1996
2316
  exited_early: string | null;
2317
+ /** Rounds the seat sat out while dormant. */
1997
2318
  sat_out_dormant: number;
2319
+ /** Calls by the model that answered, as reported; null where none was reported. */
1998
2320
  served_models: JsonObject | null;
2321
+ /** Calls by the provider that answered, as reported; null where none was reported. */
1999
2322
  served_by: JsonObject | null;
2000
2323
  }
2324
+ /** Run health, two rate limits kept apart. Null on a guest seat and on a run metered before health was recorded. */
2001
2325
  export interface RunSeatsResponseSeatHealth {
2326
+ /** What the world refused of the seat’s own actions. */
2002
2327
  world_rejections: RunSeatsResponseSeatHealthWorldRejections;
2328
+ /** Provider retries the harness rode out; null where it reported none. */
2003
2329
  provider_retries: RunSeatsResponseSeatHealthProviderRetries | null;
2004
2330
  }
2331
+ /** What the world refused of the seat’s own actions. */
2005
2332
  export interface RunSeatsResponseSeatHealthWorldRejections {
2333
+ /** Actions past the seat’s per-round budget. */
2006
2334
  turn_budget: number;
2335
+ /** Actions sent faster than the world’s pace floor. */
2007
2336
  pace: number;
2337
+ /** Actions the seat could not take. */
2008
2338
  invalid: number;
2009
2339
  }
2340
+ /** Provider retries the harness rode out; null where it reported none. */
2010
2341
  export interface RunSeatsResponseSeatHealthProviderRetries {
2342
+ /** Calls that needed a retry. */
2011
2343
  calls: number;
2344
+ /** Retries in all. */
2012
2345
  retries: number;
2346
+ /** Retries by cause. */
2013
2347
  causes: JsonObject;
2348
+ /** Time spent waiting between retries, ms. */
2014
2349
  wait_ms: number;
2015
2350
  }
2351
+ /** The seat’s trajectory file, while the plan still keeps it; read it with the run log endpoint. */
2016
2352
  export interface RunSeatsResponseSeatTrajectory {
2353
+ /** The file’s name. */
2017
2354
  file: string;
2355
+ /** Lines in the file. */
2018
2356
  lines: number;
2357
+ /** The file’s size in bytes. */
2019
2358
  bytes: number;
2020
2359
  }
2021
2360
  export interface CreateSetBodySetup {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Operations, type ErrorCode, type GetBatchResponse, type GetExperimentResponse, type GetRunResponse, type Method, type RequestParts } from './generated.js';
2
2
  export * from './generated.js';
3
- export declare const VERSION = "0.2.27";
3
+ export declare const VERSION = "0.2.28";
4
4
  export declare const DEFAULT_BASE_URL = "https://daishi.ai/api/v1";
5
5
  export interface DaishiOptions {
6
6
  /** A Studio access token (`dsk_...`). Default: the `DAISHI_TOKEN` environment variable. */
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Operations } from './generated.js';
2
2
  export * from './generated.js';
3
- export const VERSION = '0.2.27';
3
+ export const VERSION = '0.2.28';
4
4
  export const DEFAULT_BASE_URL = 'https://daishi.ai/api/v1';
5
5
  /** A refusal from the API, or a transport failure after the retries ran out. */
6
6
  export class DaishiError extends Error {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "daishi-sdk",
3
- "version": "0.2.27",
3
+ "version": "0.2.28",
4
4
  "description": "Typed client for the Daishi Studio API: scenarios, runs, series batches and paired experiments, with retries and waiting helpers.",
5
5
  "keywords": [
6
6
  "daishi",