Skip to content

Commit 4ef2680

Browse files
feat(benchmarks): add update_scenarios method to benchmarks resource
1 parent ee67c94 commit 4ef2680

7 files changed

Lines changed: 87 additions & 2 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 97
1+
configured_endpoints: 98
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-370a5d676ff0ef41f3ca6ed669d29b6e3e6b7f0a914ac3dbed6bd45e75533c74.yml
33
openapi_spec_hash: 7bb5ea1117d754b7985aff0da5bca3a7
4-
config_hash: 2363f563f42501d2b1587a4f64bdccaf
4+
config_hash: 7b7fc2ccd6bf3551718a79332772e713

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Types:
1616
- <code><a href="./src/resources/benchmarks/benchmarks.ts">BenchmarkCreateParameters</a></code>
1717
- <code><a href="./src/resources/benchmarks/benchmarks.ts">BenchmarkRunListView</a></code>
1818
- <code><a href="./src/resources/benchmarks/benchmarks.ts">BenchmarkRunView</a></code>
19+
- <code><a href="./src/resources/benchmarks/benchmarks.ts">BenchmarkScenarioUpdateParameters</a></code>
1920
- <code><a href="./src/resources/benchmarks/benchmarks.ts">BenchmarkView</a></code>
2021
- <code><a href="./src/resources/benchmarks/benchmarks.ts">ScenarioDefinitionListView</a></code>
2122
- <code><a href="./src/resources/benchmarks/benchmarks.ts">StartBenchmarkRunParameters</a></code>
@@ -29,6 +30,7 @@ Methods:
2930
- <code title="get /v1/benchmarks/{id}/definitions">client.benchmarks.<a href="./src/resources/benchmarks/benchmarks.ts">definitions</a>(id, { ...params }) -> ScenarioDefinitionListView</code>
3031
- <code title="get /v1/benchmarks/list_public">client.benchmarks.<a href="./src/resources/benchmarks/benchmarks.ts">listPublic</a>({ ...params }) -> BenchmarkViewsBenchmarksCursorIDPage</code>
3132
- <code title="post /v1/benchmarks/start_run">client.benchmarks.<a href="./src/resources/benchmarks/benchmarks.ts">startRun</a>({ ...params }) -> BenchmarkRunView</code>
33+
- <code title="post /v1/benchmarks/{id}/scenarios">client.benchmarks.<a href="./src/resources/benchmarks/benchmarks.ts">updateScenarios</a>(id, { ...params }) -> BenchmarkView</code>
3234

3335
## Runs
3436

src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,10 @@ import {
106106
BenchmarkListPublicParams,
107107
BenchmarkRunListView,
108108
BenchmarkRunView,
109+
BenchmarkScenarioUpdateParameters,
109110
BenchmarkStartRunParams,
110111
BenchmarkUpdateParams,
112+
BenchmarkUpdateScenariosParams,
111113
BenchmarkView,
112114
BenchmarkViewsBenchmarksCursorIDPage,
113115
Benchmarks,
@@ -442,6 +444,7 @@ export declare namespace Runloop {
442444
type BenchmarkCreateParameters as BenchmarkCreateParameters,
443445
type BenchmarkRunListView as BenchmarkRunListView,
444446
type BenchmarkRunView as BenchmarkRunView,
447+
type BenchmarkScenarioUpdateParameters as BenchmarkScenarioUpdateParameters,
445448
type BenchmarkView as BenchmarkView,
446449
type ScenarioDefinitionListView as ScenarioDefinitionListView,
447450
type StartBenchmarkRunParameters as StartBenchmarkRunParameters,
@@ -452,6 +455,7 @@ export declare namespace Runloop {
452455
type BenchmarkDefinitionsParams as BenchmarkDefinitionsParams,
453456
type BenchmarkListPublicParams as BenchmarkListPublicParams,
454457
type BenchmarkStartRunParams as BenchmarkStartRunParams,
458+
type BenchmarkUpdateScenariosParams as BenchmarkUpdateScenariosParams,
455459
};
456460

457461
export {

src/resources/benchmarks/benchmarks.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,26 @@ export class Benchmarks extends APIResource {
111111
startRun(body: BenchmarkStartRunParams, options?: Core.RequestOptions): Core.APIPromise<BenchmarkRunView> {
112112
return this._client.post('/v1/benchmarks/start_run', { body, ...options });
113113
}
114+
115+
/**
116+
* Add and/or remove Scenario IDs from an existing Benchmark.
117+
*/
118+
updateScenarios(
119+
id: string,
120+
body?: BenchmarkUpdateScenariosParams,
121+
options?: Core.RequestOptions,
122+
): Core.APIPromise<BenchmarkView>;
123+
updateScenarios(id: string, options?: Core.RequestOptions): Core.APIPromise<BenchmarkView>;
124+
updateScenarios(
125+
id: string,
126+
body: BenchmarkUpdateScenariosParams | Core.RequestOptions = {},
127+
options?: Core.RequestOptions,
128+
): Core.APIPromise<BenchmarkView> {
129+
if (isRequestOptions(body)) {
130+
return this.updateScenarios(id, {}, body);
131+
}
132+
return this._client.post(`/v1/benchmarks/${id}/scenarios`, { body, ...options });
133+
}
114134
}
115135

116136
export class BenchmarkViewsBenchmarksCursorIDPage extends BenchmarksCursorIDPage<BenchmarkView> {}
@@ -237,6 +257,18 @@ export interface BenchmarkRunView {
237257
secrets_provided?: { [key: string]: string } | null;
238258
}
239259

260+
export interface BenchmarkScenarioUpdateParameters {
261+
/**
262+
* Scenario IDs to add to the Benchmark.
263+
*/
264+
scenarios_to_add?: Array<string> | null;
265+
266+
/**
267+
* Scenario IDs to remove from the Benchmark.
268+
*/
269+
scenarios_to_remove?: Array<string> | null;
270+
}
271+
240272
/**
241273
* A BenchmarkDefinitionView represents a grouped set of Scenarios that together
242274
* form a Benchmark.
@@ -448,6 +480,18 @@ export interface BenchmarkStartRunParams {
448480
runProfile?: Shared.RunProfile | null;
449481
}
450482

483+
export interface BenchmarkUpdateScenariosParams {
484+
/**
485+
* Scenario IDs to add to the Benchmark.
486+
*/
487+
scenarios_to_add?: Array<string> | null;
488+
489+
/**
490+
* Scenario IDs to remove from the Benchmark.
491+
*/
492+
scenarios_to_remove?: Array<string> | null;
493+
}
494+
451495
Benchmarks.BenchmarkViewsBenchmarksCursorIDPage = BenchmarkViewsBenchmarksCursorIDPage;
452496
Benchmarks.Runs = Runs;
453497

@@ -456,6 +500,7 @@ export declare namespace Benchmarks {
456500
type BenchmarkCreateParameters as BenchmarkCreateParameters,
457501
type BenchmarkRunListView as BenchmarkRunListView,
458502
type BenchmarkRunView as BenchmarkRunView,
503+
type BenchmarkScenarioUpdateParameters as BenchmarkScenarioUpdateParameters,
459504
type BenchmarkView as BenchmarkView,
460505
type ScenarioDefinitionListView as ScenarioDefinitionListView,
461506
type StartBenchmarkRunParameters as StartBenchmarkRunParameters,
@@ -466,6 +511,7 @@ export declare namespace Benchmarks {
466511
type BenchmarkDefinitionsParams as BenchmarkDefinitionsParams,
467512
type BenchmarkListPublicParams as BenchmarkListPublicParams,
468513
type BenchmarkStartRunParams as BenchmarkStartRunParams,
514+
type BenchmarkUpdateScenariosParams as BenchmarkUpdateScenariosParams,
469515
};
470516

471517
export {

src/resources/benchmarks/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export {
77
type BenchmarkCreateParameters,
88
type BenchmarkRunListView,
99
type BenchmarkRunView,
10+
type BenchmarkScenarioUpdateParameters,
1011
type BenchmarkView,
1112
type ScenarioDefinitionListView,
1213
type StartBenchmarkRunParameters,
@@ -16,5 +17,6 @@ export {
1617
type BenchmarkDefinitionsParams,
1718
type BenchmarkListPublicParams,
1819
type BenchmarkStartRunParams,
20+
type BenchmarkUpdateScenariosParams,
1921
} from './benchmarks';
2022
export { Runs, type RunListParams, type RunListScenarioRunsParams } from './runs';

src/resources/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export {
1717
type BenchmarkCreateParameters,
1818
type BenchmarkRunListView,
1919
type BenchmarkRunView,
20+
type BenchmarkScenarioUpdateParameters,
2021
type BenchmarkView,
2122
type ScenarioDefinitionListView,
2223
type StartBenchmarkRunParameters,
@@ -26,6 +27,7 @@ export {
2627
type BenchmarkDefinitionsParams,
2728
type BenchmarkListPublicParams,
2829
type BenchmarkStartRunParams,
30+
type BenchmarkUpdateScenariosParams,
2931
} from './benchmarks/benchmarks';
3032
export {
3133
BlueprintViewsBlueprintsCursorIDPage,

tests/api-resources/benchmarks/benchmarks.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,33 @@ describe('resource benchmarks', () => {
195195
},
196196
});
197197
});
198+
199+
test('updateScenarios', async () => {
200+
const responsePromise = client.benchmarks.updateScenarios('id');
201+
const rawResponse = await responsePromise.asResponse();
202+
expect(rawResponse).toBeInstanceOf(Response);
203+
const response = await responsePromise;
204+
expect(response).not.toBeInstanceOf(Response);
205+
const dataAndResponse = await responsePromise.withResponse();
206+
expect(dataAndResponse.data).toBe(response);
207+
expect(dataAndResponse.response).toBe(rawResponse);
208+
});
209+
210+
test('updateScenarios: request options instead of params are passed correctly', async () => {
211+
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
212+
await expect(
213+
client.benchmarks.updateScenarios('id', { path: '/_stainless_unknown_path' }),
214+
).rejects.toThrow(Runloop.NotFoundError);
215+
});
216+
217+
test('updateScenarios: request options and params are passed correctly', async () => {
218+
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
219+
await expect(
220+
client.benchmarks.updateScenarios(
221+
'id',
222+
{ scenarios_to_add: ['string'], scenarios_to_remove: ['string'] },
223+
{ path: '/_stainless_unknown_path' },
224+
),
225+
).rejects.toThrow(Runloop.NotFoundError);
226+
});
198227
});

0 commit comments

Comments
 (0)