daishi-sdk 0.2.1 → 0.2.2
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/generated.d.ts +46 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/generated.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type JsonObject = {
|
|
|
5
5
|
/** The API version these types describe. */
|
|
6
6
|
export declare const API_VERSION = "1.0.0";
|
|
7
7
|
/** Every error code the API documents. */
|
|
8
|
-
export type ErrorCode = 'token_required' | 'scope_required' | 'plan_api' | 'rate_limited' | 'bad_request' | 'bad_scenario' | 'bad_replicates' | 'profile_required' | 'bad_season_ticks' | 'bad_frame' | 'bad_env' | 'too_many_scenarios' | 'unknown_scenario' | 'bad_skill' | 'too_many_skills' | 'unknown_skill' | 'bad_roster' | 'bad_model' | 'bad_name' | 'bad_provider' | 'provider_key_required' | 'openrouter_key_required' | 'openrouter_balance_low' | 'billing_frozen' | 'email_unverified' | 'bad_trials' | 'bad_spend_cap' | 'plan_seats' | 'plan_ticks' | 'plan_series' | 'plan_quota' | 'too_many_runs' | 'run_history_full' | 'seed_not_allowed' | 'unknown_run' | 'unknown_batch' | 'unknown_experiment' | 'experiment_trial' | 'experiment_not_running' | 'experiment_arms' | 'bad_experiment' | 'experiment_scenario' | 'experiment_world_only' | 'experiment_env_seed' | 'experiment_stopping' | 'bad_metric' | 'plan_experiment_arms' | 'unknown_log' | 'plan_invites' | 'invite_world' | 'invite_series' | 'too_many_open_worlds' | 'no_invite' | 'invite_fixed' | 'bad_invite' | 'never_played' | 'run_playing' | 'bad_note' | 'note_too_long' | 'run_launching' | 'internal_error';
|
|
8
|
+
export type ErrorCode = 'token_required' | 'scope_required' | 'plan_api' | 'rate_limited' | 'bad_request' | 'bad_scenario' | 'bad_replicates' | 'profile_required' | 'bad_season_ticks' | 'bad_frame' | 'bad_env' | 'too_many_scenarios' | 'unknown_scenario' | 'bad_skill' | 'too_many_skills' | 'unknown_skill' | 'bad_roster' | 'bad_model' | 'bad_name' | 'bad_provider' | 'provider_key_required' | 'openrouter_key_required' | 'openrouter_balance_low' | 'billing_frozen' | 'email_unverified' | 'bad_trials' | 'bad_spend_cap' | 'plan_seats' | 'plan_ticks' | 'plan_series' | 'plan_quota' | 'too_many_runs' | 'run_history_full' | 'seed_not_allowed' | 'unknown_run' | 'unknown_batch' | 'unknown_experiment' | 'experiment_trial' | 'experiment_not_running' | 'experiment_arms' | 'bad_experiment' | 'experiment_scenario' | 'experiment_world_only' | 'experiment_env_seed' | 'experiment_stopping' | 'bad_metric' | 'experiment_effort_roster' | 'plan_experiment_arms' | 'unknown_log' | 'plan_invites' | 'invite_world' | 'invite_series' | 'too_many_open_worlds' | 'no_invite' | 'invite_fixed' | 'bad_invite' | 'never_played' | 'run_playing' | 'bad_note' | 'note_too_long' | 'run_launching' | 'internal_error';
|
|
9
9
|
export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
10
10
|
export interface RequestParts {
|
|
11
11
|
query?: Record<string, string | number | boolean | undefined | null>;
|
|
@@ -124,7 +124,8 @@ export interface Experiment {
|
|
|
124
124
|
scenario_id: string;
|
|
125
125
|
trials: number;
|
|
126
126
|
seed_mode: 'vary' | 'pinned';
|
|
127
|
-
metric: 'fitness_index' | 'rank' | 'survived';
|
|
127
|
+
metric: 'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn';
|
|
128
|
+
secondary_metrics: Array<'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn'>;
|
|
128
129
|
rule: StoppingRule;
|
|
129
130
|
arms: ExperimentArmView[];
|
|
130
131
|
created_at_ms: number;
|
|
@@ -145,13 +146,14 @@ export interface ExperimentReport {
|
|
|
145
146
|
scenario_id: string;
|
|
146
147
|
trials: number;
|
|
147
148
|
seed_mode: 'vary' | 'pinned';
|
|
148
|
-
metric: 'fitness_index' | 'rank' | 'survived';
|
|
149
|
-
analysis_scale: 'metric' | 'negative_rank';
|
|
149
|
+
metric: 'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn';
|
|
150
|
+
analysis_scale: 'metric' | 'negative_rank' | 'log';
|
|
150
151
|
rule: StoppingRule;
|
|
151
152
|
rule_text: string;
|
|
152
153
|
arms: ExperimentReportArm[];
|
|
153
154
|
pairs: ExperimentReportPair[];
|
|
154
155
|
comparisons: ExperimentReportComparison[];
|
|
156
|
+
secondary: ExperimentReportSecondary[];
|
|
155
157
|
detectable_gap: ExperimentReportDetectableGap;
|
|
156
158
|
decision: ExperimentReportDecision;
|
|
157
159
|
verdict: string;
|
|
@@ -222,8 +224,10 @@ export interface ExperimentBody {
|
|
|
222
224
|
name?: string;
|
|
223
225
|
/** vary (default): each trial its own world; pinned: one world for every trial, only the layout varies. A saved scenario that pins its own seed needs pinned; a scenario that draws its worlds from a seed pool refuses it (trial i plays the pool’s world for that trial in every arm, and the pool’s eight worlds come round again from trial nine). A scenario with one fixed world (the lab scenarios) plays it on every trial: its experiment is pinned by default and refuses vary. */
|
|
224
226
|
seed_mode?: 'vary' | 'pinned';
|
|
225
|
-
/** The per-trial score the arms are compared on, the mean over the arm’s roster seats: the Fitness Index (default), the rank in the field (lower is better, and the report compares on the negative rank so a positive difference always favors the arm),
|
|
226
|
-
metric?: 'fitness_index' | 'rank' | 'survived';
|
|
227
|
+
/** The per-trial score the arms are compared on, the mean over the arm’s roster seats: the Fitness Index (default), the rank in the field (lower is better, and the report compares on the negative rank so a positive difference always favors the arm), the share of seats that survived, or output tokens per play turn. Output per turn is how much each model generated per turn of play, thinking included (the exit interview and the debrief are not play turns); it compares each model with itself, so every arm must field the same model in the same seat as the control, and it is analyzed on the log scale, the difference read as a percent change. It has no better side: the verdict says which arm generated more. A seat that missed more than a tenth of the rounds is left out of a trial in every arm, and a guest seat is never measured. */
|
|
228
|
+
metric?: 'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn';
|
|
229
|
+
/** Outcomes reported beside metric, declared now and never changed: any of the metric’s values except the metric itself, each at most once. Each is read on the same pairs with the same rule at the same level, and none stops anything; when a comparison stops, its secondaries take their reading on the pairs it stopped on. Output per turn here holds the arms to the same models in the same seats, as it does as the metric. Default none. */
|
|
230
|
+
secondary_metrics?: Array<'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn'>;
|
|
227
231
|
/** anytime: an anytime-valid 95% confidence sequence on the paired difference, checked after every trial from the tenth on, stopping as soon as it excludes zero or at the last trial; it needs more than 10 trials per arm and is the default above that. fixed: one look at the last trial; the default at 10 or fewer. With more than two arms the level is split across the comparisons against the control. */
|
|
228
232
|
stopping?: 'anytime' | 'fixed';
|
|
229
233
|
/** Anytime rule only: also stop, undecided, once the whole interval lies within plus or minus this on the metric’s scale, so the gap, if any, is smaller than this. */
|
|
@@ -506,6 +510,7 @@ export interface ExperimentReportArm {
|
|
|
506
510
|
agent_turns: number;
|
|
507
511
|
usage: JsonObject;
|
|
508
512
|
awareness: JsonObject;
|
|
513
|
+
effort?: ExperimentReportArmEffort;
|
|
509
514
|
}
|
|
510
515
|
export interface ExperimentReportArmTrials {
|
|
511
516
|
finished: number;
|
|
@@ -521,6 +526,20 @@ export interface ExperimentReportArmScore {
|
|
|
521
526
|
sd: number | null;
|
|
522
527
|
ci: Interval | null;
|
|
523
528
|
}
|
|
529
|
+
export interface ExperimentReportArmEffort {
|
|
530
|
+
measured_seats: number;
|
|
531
|
+
short_seats: number;
|
|
532
|
+
unmeasured_seats: number;
|
|
533
|
+
models: ExperimentReportArmEffortModel[];
|
|
534
|
+
}
|
|
535
|
+
export interface ExperimentReportArmEffortModel {
|
|
536
|
+
model: string;
|
|
537
|
+
seats: number;
|
|
538
|
+
output_per_turn: number;
|
|
539
|
+
thinking_per_turn: number | null;
|
|
540
|
+
truncated_share: number;
|
|
541
|
+
served_by: JsonObject;
|
|
542
|
+
}
|
|
524
543
|
export interface ExperimentReportPair {
|
|
525
544
|
trial: number;
|
|
526
545
|
seed: number | null;
|
|
@@ -538,8 +557,28 @@ export interface ExperimentReportComparison {
|
|
|
538
557
|
alpha: number;
|
|
539
558
|
stop: boolean;
|
|
540
559
|
reason: string;
|
|
541
|
-
verdict: 'arm_better' | 'control_better' | 'undecided' | null;
|
|
560
|
+
verdict: 'arm_better' | 'control_better' | 'arm_higher' | 'control_higher' | 'undecided' | null;
|
|
561
|
+
interval: Interval | null;
|
|
562
|
+
detail: string;
|
|
563
|
+
}
|
|
564
|
+
export interface ExperimentReportSecondary {
|
|
565
|
+
metric: 'fitness_index' | 'rank' | 'survived' | 'output_tokens_per_turn';
|
|
566
|
+
analysis_scale: 'metric' | 'negative_rank' | 'log';
|
|
567
|
+
pairs: ExperimentReportSecondaryPair[];
|
|
568
|
+
comparisons: ExperimentReportSecondaryComparison[];
|
|
569
|
+
}
|
|
570
|
+
export interface ExperimentReportSecondaryPair {
|
|
571
|
+
trial: number;
|
|
572
|
+
values: Array<number | null>;
|
|
573
|
+
excluded: boolean;
|
|
574
|
+
}
|
|
575
|
+
export interface ExperimentReportSecondaryComparison {
|
|
576
|
+
arm: number;
|
|
577
|
+
control: number;
|
|
578
|
+
n: number;
|
|
579
|
+
mean_diff: number | null;
|
|
542
580
|
interval: Interval | null;
|
|
581
|
+
reading: 'arm_better' | 'control_better' | 'arm_higher' | 'control_higher' | 'undecided' | null;
|
|
543
582
|
detail: string;
|
|
544
583
|
}
|
|
545
584
|
export interface ExperimentReportDetectableGap {
|
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.
|
|
3
|
+
export declare const VERSION = "0.2.2";
|
|
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.
|
|
3
|
+
export const VERSION = '0.2.2';
|
|
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