daishi-sdk 0.2.7 → 0.2.8

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.
@@ -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' | 'handover' | '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' | 'bad_design' | 'design_final' | 'design_late' | 'no_design' | 'experiment_effort_roster' | 'plan_experiment_arms' | 'plan_rerun' | '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' | 'handover' | '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' | 'bad_design' | 'design_final' | 'design_late' | 'no_design' | 'experiment_effort_roster' | 'plan_experiment_arms' | 'plan_rerun' | 'unknown_log' | 'plan_invites' | 'invite_world' | 'invite_series' | 'too_many_open_worlds' | 'no_invite' | 'invite_fixed' | 'bad_invite' | 'never_played' | 'run_playing' | 'study_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>;
@@ -162,6 +162,8 @@ export interface ExperimentReport {
162
162
  detectable_gap: ExperimentReportDetectableGap;
163
163
  decision: ExperimentReportDecision;
164
164
  verdict: string;
165
+ plain: string;
166
+ what_differed: ExperimentReportWhatDiffered[];
165
167
  cost: Cost;
166
168
  note: string | null;
167
169
  note_at_ms: number | null;
@@ -334,6 +336,8 @@ export interface LaunchResponse {
334
336
  }
335
337
  export interface ListRunsResponse {
336
338
  runs: Run[];
339
+ next_cursor: string | null;
340
+ total: number;
337
341
  }
338
342
  export interface GetRunResponse {
339
343
  run: Run;
@@ -403,6 +407,38 @@ export interface UnpublishRunResponse {
403
407
  run: Run;
404
408
  profile_url: string | null;
405
409
  }
410
+ export interface PublishExperimentBody {
411
+ /** The study’s note, your declared result. Omitted: the experiment keeps the note it has. "" or null: no note. */
412
+ note?: string | null;
413
+ }
414
+ export interface PublishExperimentResponse {
415
+ ok: boolean;
416
+ study: Study;
417
+ experiment: Experiment | null;
418
+ profile_url: string | null;
419
+ study_url: string | null;
420
+ }
421
+ export interface UnpublishExperimentResponse {
422
+ ok: boolean;
423
+ study: Study;
424
+ experiment: Experiment | null;
425
+ profile_url: string | null;
426
+ study_url: string | null;
427
+ }
428
+ export interface PublishBatchResponse {
429
+ ok: boolean;
430
+ study: Study;
431
+ experiment: Experiment | null;
432
+ profile_url: string | null;
433
+ study_url: string | null;
434
+ }
435
+ export interface UnpublishBatchResponse {
436
+ ok: boolean;
437
+ study: Study;
438
+ experiment: Experiment | null;
439
+ profile_url: string | null;
440
+ study_url: string | null;
441
+ }
406
442
  export interface ExtendInvitesBody {
407
443
  /** The new deadline, minutes from now, for every open seat. */
408
444
  minutes: number;
@@ -668,6 +704,11 @@ export interface ExperimentReportDecision {
668
704
  reason: string;
669
705
  summary: string;
670
706
  }
707
+ export interface ExperimentReportWhatDiffered {
708
+ arm: number;
709
+ label: string;
710
+ changes: string[];
711
+ }
671
712
  /** The environment. Every field is optional; an omitted field takes the base world default. */
672
713
  export interface Env {
673
714
  /** World seed: fixes the map. Omit to draw a fresh one per run; the drawn seed is recorded on the run. */
@@ -710,6 +751,13 @@ export interface LaunchResponseBatch {
710
751
  trials: number;
711
752
  seed_mode: 'vary' | 'pinned';
712
753
  }
754
+ export interface Study {
755
+ kind: 'experiment' | 'series';
756
+ id: string;
757
+ played: number;
758
+ published: number;
759
+ pending: number;
760
+ }
713
761
  /** One method per API operation. The transport is the subclass's. */
714
762
  export declare abstract class Operations {
715
763
  protected abstract request<T>(method: Method, path: string, parts?: RequestParts): Promise<T>;
@@ -761,6 +809,14 @@ export declare abstract class Operations {
761
809
  * @see https://daishi.ai/docs/developer/rest#ep-library-anchors
762
810
  */
763
811
  libraryAnchors(): Promise<JsonObject>;
812
+ /**
813
+ * Studio templates.
814
+ *
815
+ * The ready-made studies the Studio’s New run page offers, word for word.
816
+ *
817
+ * @see https://daishi.ai/docs/developer/rest#ep-templates
818
+ */
819
+ templates(): Promise<JsonObject>;
764
820
  /**
765
821
  * Validate a scenario.
766
822
  *
@@ -868,12 +924,13 @@ export declare abstract class Operations {
868
924
  /**
869
925
  * List your runs.
870
926
  *
871
- * Your runs, newest first.
927
+ * Your runs, newest first, a page at a time.
872
928
  *
873
929
  * @see https://daishi.ai/docs/developer/rest#ep-list-runs
874
930
  */
875
931
  listRuns(query?: {
876
932
  limit?: number;
933
+ cursor?: string;
877
934
  }): Promise<ListRunsResponse>;
878
935
  /**
879
936
  * Get a run.
@@ -891,6 +948,14 @@ export declare abstract class Operations {
891
948
  * @see https://daishi.ai/docs/developer/rest#ep-usage
892
949
  */
893
950
  usage(): Promise<JsonObject>;
951
+ /**
952
+ * Your models.
953
+ *
954
+ * Every finished run rolled up by model: the figures the Studio’s Models page draws.
955
+ *
956
+ * @see https://daishi.ai/docs/developer/rest#ep-models
957
+ */
958
+ models(): Promise<JsonObject>;
894
959
  /**
895
960
  * Live worlds.
896
961
  *
@@ -995,6 +1060,38 @@ export declare abstract class Operations {
995
1060
  * @see https://daishi.ai/docs/developer/rest#ep-unpublish-run
996
1061
  */
997
1062
  unpublishRun(id: string): Promise<UnpublishRunResponse>;
1063
+ /**
1064
+ * Publish an experiment.
1065
+ *
1066
+ * List a whole paired experiment on your public profile in one call: every trial that played, in every arm.
1067
+ *
1068
+ * @see https://daishi.ai/docs/developer/rest#ep-publish-experiment
1069
+ */
1070
+ publishExperiment(id: string, body: PublishExperimentBody): Promise<PublishExperimentResponse>;
1071
+ /**
1072
+ * Unpublish an experiment.
1073
+ *
1074
+ * Take every trial of a paired experiment off your public profile.
1075
+ *
1076
+ * @see https://daishi.ai/docs/developer/rest#ep-unpublish-experiment
1077
+ */
1078
+ unpublishExperiment(id: string): Promise<UnpublishExperimentResponse>;
1079
+ /**
1080
+ * Publish a series.
1081
+ *
1082
+ * List a whole series batch on your public profile in one call: every trial that played.
1083
+ *
1084
+ * @see https://daishi.ai/docs/developer/rest#ep-publish-batch
1085
+ */
1086
+ publishBatch(id: string): Promise<PublishBatchResponse>;
1087
+ /**
1088
+ * Unpublish a series.
1089
+ *
1090
+ * Take every trial of a series batch off your public profile.
1091
+ *
1092
+ * @see https://daishi.ai/docs/developer/rest#ep-unpublish-batch
1093
+ */
1094
+ unpublishBatch(id: string): Promise<UnpublishBatchResponse>;
998
1095
  /**
999
1096
  * List a run’s logs.
1000
1097
  *
@@ -1011,6 +1108,14 @@ export declare abstract class Operations {
1011
1108
  * @see https://daishi.ai/docs/developer/rest#ep-run-log
1012
1109
  */
1013
1110
  runLog(id: string, file: string): Promise<string>;
1111
+ /**
1112
+ * Read a run’s seats.
1113
+ *
1114
+ * Per seat: the debrief answer, voiced awareness, forfeited rounds with their causes, the harness that played it, and its trajectory file.
1115
+ *
1116
+ * @see https://daishi.ai/docs/developer/rest#ep-run-seats
1117
+ */
1118
+ runSeats(id: string): Promise<JsonObject>;
1014
1119
  /**
1015
1120
  * List a run’s guest seats.
1016
1121
  *
package/dist/generated.js CHANGED
@@ -64,6 +64,16 @@ export class Operations {
64
64
  libraryAnchors() {
65
65
  return this.request('GET', '/library/anchors');
66
66
  }
67
+ /**
68
+ * Studio templates.
69
+ *
70
+ * The ready-made studies the Studio’s New run page offers, word for word.
71
+ *
72
+ * @see https://daishi.ai/docs/developer/rest#ep-templates
73
+ */
74
+ templates() {
75
+ return this.request('GET', '/templates');
76
+ }
67
77
  /**
68
78
  * Validate a scenario.
69
79
  *
@@ -197,7 +207,7 @@ export class Operations {
197
207
  /**
198
208
  * List your runs.
199
209
  *
200
- * Your runs, newest first.
210
+ * Your runs, newest first, a page at a time.
201
211
  *
202
212
  * @see https://daishi.ai/docs/developer/rest#ep-list-runs
203
213
  */
@@ -224,6 +234,16 @@ export class Operations {
224
234
  usage() {
225
235
  return this.request('GET', '/usage');
226
236
  }
237
+ /**
238
+ * Your models.
239
+ *
240
+ * Every finished run rolled up by model: the figures the Studio’s Models page draws.
241
+ *
242
+ * @see https://daishi.ai/docs/developer/rest#ep-models
243
+ */
244
+ models() {
245
+ return this.request('GET', '/models');
246
+ }
227
247
  /**
228
248
  * Live worlds.
229
249
  *
@@ -354,6 +374,46 @@ export class Operations {
354
374
  unpublishRun(id) {
355
375
  return this.request('POST', `/runs/${encodeURIComponent(id)}/unpublish`);
356
376
  }
377
+ /**
378
+ * Publish an experiment.
379
+ *
380
+ * List a whole paired experiment on your public profile in one call: every trial that played, in every arm.
381
+ *
382
+ * @see https://daishi.ai/docs/developer/rest#ep-publish-experiment
383
+ */
384
+ publishExperiment(id, body) {
385
+ return this.request('POST', `/experiments/${encodeURIComponent(id)}/publish`, { body });
386
+ }
387
+ /**
388
+ * Unpublish an experiment.
389
+ *
390
+ * Take every trial of a paired experiment off your public profile.
391
+ *
392
+ * @see https://daishi.ai/docs/developer/rest#ep-unpublish-experiment
393
+ */
394
+ unpublishExperiment(id) {
395
+ return this.request('POST', `/experiments/${encodeURIComponent(id)}/unpublish`);
396
+ }
397
+ /**
398
+ * Publish a series.
399
+ *
400
+ * List a whole series batch on your public profile in one call: every trial that played.
401
+ *
402
+ * @see https://daishi.ai/docs/developer/rest#ep-publish-batch
403
+ */
404
+ publishBatch(id) {
405
+ return this.request('POST', `/batches/${encodeURIComponent(id)}/publish`);
406
+ }
407
+ /**
408
+ * Unpublish a series.
409
+ *
410
+ * Take every trial of a series batch off your public profile.
411
+ *
412
+ * @see https://daishi.ai/docs/developer/rest#ep-unpublish-batch
413
+ */
414
+ unpublishBatch(id) {
415
+ return this.request('POST', `/batches/${encodeURIComponent(id)}/unpublish`);
416
+ }
357
417
  /**
358
418
  * List a run’s logs.
359
419
  *
@@ -374,6 +434,16 @@ export class Operations {
374
434
  runLog(id, file) {
375
435
  return this.request('GET', `/runs/${encodeURIComponent(id)}/logs/${encodeURIComponent(file)}`, { text: true });
376
436
  }
437
+ /**
438
+ * Read a run’s seats.
439
+ *
440
+ * Per seat: the debrief answer, voiced awareness, forfeited rounds with their causes, the harness that played it, and its trajectory file.
441
+ *
442
+ * @see https://daishi.ai/docs/developer/rest#ep-run-seats
443
+ */
444
+ runSeats(id) {
445
+ return this.request('GET', `/runs/${encodeURIComponent(id)}/seats`);
446
+ }
377
447
  /**
378
448
  * List a run’s guest seats.
379
449
  *
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.7";
3
+ export declare const VERSION = "0.2.8";
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.7';
3
+ export const VERSION = '0.2.8';
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.7",
3
+ "version": "0.2.8",
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",