studyfetch-sdk 0.1.0a4__py3-none-any.whl → 0.1.0a5__py3-none-any.whl

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.
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "studyfetch_sdk"
4
- __version__ = "0.1.0-alpha.4" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.5" # x-release-please-version
@@ -2,12 +2,15 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import List
6
+ from typing_extensions import Literal
7
+
5
8
  import httpx
6
9
 
7
10
  from ..._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
8
11
  from ..._utils import maybe_transform, async_maybe_transform
9
12
  from ..._compat import cached_property
10
- from ...types.v1 import explainer_handle_webhook_params
13
+ from ...types.v1 import explainer_create_params, explainer_handle_webhook_params
11
14
  from ..._resource import SyncAPIResource, AsyncAPIResource
12
15
  from ..._response import (
13
16
  to_raw_response_wrapper,
@@ -43,6 +46,17 @@ class ExplainersResource(SyncAPIResource):
43
46
  def create(
44
47
  self,
45
48
  *,
49
+ component_id: str,
50
+ folder_ids: List[str],
51
+ material_ids: List[str],
52
+ target_length: float,
53
+ title: str,
54
+ image_search: bool | NotGiven = NOT_GIVEN,
55
+ model: str | NotGiven = NOT_GIVEN,
56
+ style: str | NotGiven = NOT_GIVEN,
57
+ user_id: str | NotGiven = NOT_GIVEN,
58
+ vertical_video: bool | NotGiven = NOT_GIVEN,
59
+ web_search: bool | NotGiven = NOT_GIVEN,
46
60
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
47
61
  # The extra values given here take precedence over values defined on the client or passed to this method.
48
62
  extra_headers: Headers | None = None,
@@ -50,10 +64,59 @@ class ExplainersResource(SyncAPIResource):
50
64
  extra_body: Body | None = None,
51
65
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
52
66
  ) -> None:
53
- """Create explainers component"""
67
+ """
68
+ Create explainers component
69
+
70
+ Args:
71
+ component_id: Component ID
72
+
73
+ folder_ids: Folder IDs to include
74
+
75
+ material_ids: Material IDs to include
76
+
77
+ target_length: Target video length in seconds
78
+
79
+ title: Title for the explainer video
80
+
81
+ image_search: Enable image search for visuals
82
+
83
+ model: AI model to use
84
+
85
+ style: Video style
86
+
87
+ user_id: User ID
88
+
89
+ vertical_video: Create vertical video format (9:16)
90
+
91
+ web_search: Enable web search for additional content
92
+
93
+ extra_headers: Send extra headers
94
+
95
+ extra_query: Add additional query parameters to the request
96
+
97
+ extra_body: Add additional JSON properties to the request
98
+
99
+ timeout: Override the client-level default timeout for this request, in seconds
100
+ """
54
101
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
55
102
  return self._post(
56
103
  "/api/v1/explainers/create",
104
+ body=maybe_transform(
105
+ {
106
+ "component_id": component_id,
107
+ "folder_ids": folder_ids,
108
+ "material_ids": material_ids,
109
+ "target_length": target_length,
110
+ "title": title,
111
+ "image_search": image_search,
112
+ "model": model,
113
+ "style": style,
114
+ "user_id": user_id,
115
+ "vertical_video": vertical_video,
116
+ "web_search": web_search,
117
+ },
118
+ explainer_create_params.ExplainerCreateParams,
119
+ ),
57
120
  options=make_request_options(
58
121
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
59
122
  ),
@@ -63,7 +126,8 @@ class ExplainersResource(SyncAPIResource):
63
126
  def handle_webhook(
64
127
  self,
65
128
  *,
66
- body: str,
129
+ event: Literal["video.completed", "video.progress", "video.failed"],
130
+ video: explainer_handle_webhook_params.Video,
67
131
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
68
132
  # The extra values given here take precedence over values defined on the client or passed to this method.
69
133
  extra_headers: Headers | None = None,
@@ -72,9 +136,13 @@ class ExplainersResource(SyncAPIResource):
72
136
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
73
137
  ) -> None:
74
138
  """
75
- Handle webhook events
139
+ Handle explainer video webhook events
76
140
 
77
141
  Args:
142
+ event: Webhook event type
143
+
144
+ video: Video data
145
+
78
146
  extra_headers: Send extra headers
79
147
 
80
148
  extra_query: Add additional query parameters to the request
@@ -86,7 +154,13 @@ class ExplainersResource(SyncAPIResource):
86
154
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
87
155
  return self._post(
88
156
  "/api/v1/explainers/webhook",
89
- body=maybe_transform(body, explainer_handle_webhook_params.ExplainerHandleWebhookParams),
157
+ body=maybe_transform(
158
+ {
159
+ "event": event,
160
+ "video": video,
161
+ },
162
+ explainer_handle_webhook_params.ExplainerHandleWebhookParams,
163
+ ),
90
164
  options=make_request_options(
91
165
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
92
166
  ),
@@ -117,6 +191,17 @@ class AsyncExplainersResource(AsyncAPIResource):
117
191
  async def create(
118
192
  self,
119
193
  *,
194
+ component_id: str,
195
+ folder_ids: List[str],
196
+ material_ids: List[str],
197
+ target_length: float,
198
+ title: str,
199
+ image_search: bool | NotGiven = NOT_GIVEN,
200
+ model: str | NotGiven = NOT_GIVEN,
201
+ style: str | NotGiven = NOT_GIVEN,
202
+ user_id: str | NotGiven = NOT_GIVEN,
203
+ vertical_video: bool | NotGiven = NOT_GIVEN,
204
+ web_search: bool | NotGiven = NOT_GIVEN,
120
205
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
121
206
  # The extra values given here take precedence over values defined on the client or passed to this method.
122
207
  extra_headers: Headers | None = None,
@@ -124,10 +209,59 @@ class AsyncExplainersResource(AsyncAPIResource):
124
209
  extra_body: Body | None = None,
125
210
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
126
211
  ) -> None:
127
- """Create explainers component"""
212
+ """
213
+ Create explainers component
214
+
215
+ Args:
216
+ component_id: Component ID
217
+
218
+ folder_ids: Folder IDs to include
219
+
220
+ material_ids: Material IDs to include
221
+
222
+ target_length: Target video length in seconds
223
+
224
+ title: Title for the explainer video
225
+
226
+ image_search: Enable image search for visuals
227
+
228
+ model: AI model to use
229
+
230
+ style: Video style
231
+
232
+ user_id: User ID
233
+
234
+ vertical_video: Create vertical video format (9:16)
235
+
236
+ web_search: Enable web search for additional content
237
+
238
+ extra_headers: Send extra headers
239
+
240
+ extra_query: Add additional query parameters to the request
241
+
242
+ extra_body: Add additional JSON properties to the request
243
+
244
+ timeout: Override the client-level default timeout for this request, in seconds
245
+ """
128
246
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
129
247
  return await self._post(
130
248
  "/api/v1/explainers/create",
249
+ body=await async_maybe_transform(
250
+ {
251
+ "component_id": component_id,
252
+ "folder_ids": folder_ids,
253
+ "material_ids": material_ids,
254
+ "target_length": target_length,
255
+ "title": title,
256
+ "image_search": image_search,
257
+ "model": model,
258
+ "style": style,
259
+ "user_id": user_id,
260
+ "vertical_video": vertical_video,
261
+ "web_search": web_search,
262
+ },
263
+ explainer_create_params.ExplainerCreateParams,
264
+ ),
131
265
  options=make_request_options(
132
266
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
133
267
  ),
@@ -137,7 +271,8 @@ class AsyncExplainersResource(AsyncAPIResource):
137
271
  async def handle_webhook(
138
272
  self,
139
273
  *,
140
- body: str,
274
+ event: Literal["video.completed", "video.progress", "video.failed"],
275
+ video: explainer_handle_webhook_params.Video,
141
276
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
142
277
  # The extra values given here take precedence over values defined on the client or passed to this method.
143
278
  extra_headers: Headers | None = None,
@@ -146,9 +281,13 @@ class AsyncExplainersResource(AsyncAPIResource):
146
281
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
147
282
  ) -> None:
148
283
  """
149
- Handle webhook events
284
+ Handle explainer video webhook events
150
285
 
151
286
  Args:
287
+ event: Webhook event type
288
+
289
+ video: Video data
290
+
152
291
  extra_headers: Send extra headers
153
292
 
154
293
  extra_query: Add additional query parameters to the request
@@ -160,7 +299,13 @@ class AsyncExplainersResource(AsyncAPIResource):
160
299
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
161
300
  return await self._post(
162
301
  "/api/v1/explainers/webhook",
163
- body=await async_maybe_transform(body, explainer_handle_webhook_params.ExplainerHandleWebhookParams),
302
+ body=await async_maybe_transform(
303
+ {
304
+ "event": event,
305
+ "video": video,
306
+ },
307
+ explainer_handle_webhook_params.ExplainerHandleWebhookParams,
308
+ ),
164
309
  options=make_request_options(
165
310
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
166
311
  ),
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Iterable
6
+
5
7
  import httpx
6
8
 
7
9
  from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
@@ -76,9 +78,20 @@ class ComponentResource(SyncAPIResource):
76
78
 
77
79
  def update(
78
80
  self,
79
- component_id: str,
81
+ path_component_id: str,
80
82
  *,
81
- body: str,
83
+ body_component_id: str,
84
+ name: str,
85
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
86
+ context: str | NotGiven = NOT_GIVEN,
87
+ description: str | NotGiven = NOT_GIVEN,
88
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
89
+ format: str | NotGiven = NOT_GIVEN,
90
+ goal: str | NotGiven = NOT_GIVEN,
91
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
92
+ greeting_message: str | NotGiven = NOT_GIVEN,
93
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
94
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
82
95
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
83
96
  # The extra values given here take precedence over values defined on the client or passed to this method.
84
97
  extra_headers: Headers | None = None,
@@ -90,6 +103,30 @@ class ComponentResource(SyncAPIResource):
90
103
  Update scenario by component ID
91
104
 
92
105
  Args:
106
+ body_component_id: Associated component ID
107
+
108
+ name: Scenario name
109
+
110
+ characters: Scenario characters
111
+
112
+ context: Scenario context
113
+
114
+ description: Scenario description
115
+
116
+ final_answer_prompt: Prompt for final answer
117
+
118
+ format: Interaction format
119
+
120
+ goal: Scenario goal
121
+
122
+ greeting_character_id: Character ID for greeting
123
+
124
+ greeting_message: Greeting message
125
+
126
+ requires_final_answer: Whether scenario requires a final answer
127
+
128
+ tools: Available tools
129
+
93
130
  extra_headers: Send extra headers
94
131
 
95
132
  extra_query: Add additional query parameters to the request
@@ -98,12 +135,28 @@ class ComponentResource(SyncAPIResource):
98
135
 
99
136
  timeout: Override the client-level default timeout for this request, in seconds
100
137
  """
101
- if not component_id:
102
- raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
138
+ if not path_component_id:
139
+ raise ValueError(f"Expected a non-empty value for `path_component_id` but received {path_component_id!r}")
103
140
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
104
141
  return self._put(
105
- f"/api/v1/scenarios/component/{component_id}",
106
- body=maybe_transform(body, component_update_params.ComponentUpdateParams),
142
+ f"/api/v1/scenarios/component/{path_component_id}",
143
+ body=maybe_transform(
144
+ {
145
+ "body_component_id": body_component_id,
146
+ "name": name,
147
+ "characters": characters,
148
+ "context": context,
149
+ "description": description,
150
+ "final_answer_prompt": final_answer_prompt,
151
+ "format": format,
152
+ "goal": goal,
153
+ "greeting_character_id": greeting_character_id,
154
+ "greeting_message": greeting_message,
155
+ "requires_final_answer": requires_final_answer,
156
+ "tools": tools,
157
+ },
158
+ component_update_params.ComponentUpdateParams,
159
+ ),
107
160
  options=make_request_options(
108
161
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
109
162
  ),
@@ -201,9 +254,20 @@ class AsyncComponentResource(AsyncAPIResource):
201
254
 
202
255
  async def update(
203
256
  self,
204
- component_id: str,
257
+ path_component_id: str,
205
258
  *,
206
- body: str,
259
+ body_component_id: str,
260
+ name: str,
261
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
262
+ context: str | NotGiven = NOT_GIVEN,
263
+ description: str | NotGiven = NOT_GIVEN,
264
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
265
+ format: str | NotGiven = NOT_GIVEN,
266
+ goal: str | NotGiven = NOT_GIVEN,
267
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
268
+ greeting_message: str | NotGiven = NOT_GIVEN,
269
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
270
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
207
271
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
208
272
  # The extra values given here take precedence over values defined on the client or passed to this method.
209
273
  extra_headers: Headers | None = None,
@@ -215,6 +279,30 @@ class AsyncComponentResource(AsyncAPIResource):
215
279
  Update scenario by component ID
216
280
 
217
281
  Args:
282
+ body_component_id: Associated component ID
283
+
284
+ name: Scenario name
285
+
286
+ characters: Scenario characters
287
+
288
+ context: Scenario context
289
+
290
+ description: Scenario description
291
+
292
+ final_answer_prompt: Prompt for final answer
293
+
294
+ format: Interaction format
295
+
296
+ goal: Scenario goal
297
+
298
+ greeting_character_id: Character ID for greeting
299
+
300
+ greeting_message: Greeting message
301
+
302
+ requires_final_answer: Whether scenario requires a final answer
303
+
304
+ tools: Available tools
305
+
218
306
  extra_headers: Send extra headers
219
307
 
220
308
  extra_query: Add additional query parameters to the request
@@ -223,12 +311,28 @@ class AsyncComponentResource(AsyncAPIResource):
223
311
 
224
312
  timeout: Override the client-level default timeout for this request, in seconds
225
313
  """
226
- if not component_id:
227
- raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
314
+ if not path_component_id:
315
+ raise ValueError(f"Expected a non-empty value for `path_component_id` but received {path_component_id!r}")
228
316
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
229
317
  return await self._put(
230
- f"/api/v1/scenarios/component/{component_id}",
231
- body=await async_maybe_transform(body, component_update_params.ComponentUpdateParams),
318
+ f"/api/v1/scenarios/component/{path_component_id}",
319
+ body=await async_maybe_transform(
320
+ {
321
+ "body_component_id": body_component_id,
322
+ "name": name,
323
+ "characters": characters,
324
+ "context": context,
325
+ "description": description,
326
+ "final_answer_prompt": final_answer_prompt,
327
+ "format": format,
328
+ "goal": goal,
329
+ "greeting_character_id": greeting_character_id,
330
+ "greeting_message": greeting_message,
331
+ "requires_final_answer": requires_final_answer,
332
+ "tools": tools,
333
+ },
334
+ component_update_params.ComponentUpdateParams,
335
+ ),
232
336
  options=make_request_options(
233
337
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
234
338
  ),
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Iterable
6
+
5
7
  import httpx
6
8
 
7
9
  from .sessions import (
@@ -23,7 +25,7 @@ from .component import (
23
25
  AsyncComponentResourceWithStreamingResponse,
24
26
  )
25
27
  from ...._compat import cached_property
26
- from ....types.v1 import scenario_create_params, scenario_update_params
28
+ from ....types.v1 import scenario_create_params, scenario_submit_params, scenario_update_params
27
29
  from ...._resource import SyncAPIResource, AsyncAPIResource
28
30
  from ...._response import (
29
31
  to_raw_response_wrapper,
@@ -79,7 +81,18 @@ class ScenariosResource(SyncAPIResource):
79
81
  def create(
80
82
  self,
81
83
  *,
82
- body: str,
84
+ component_id: str,
85
+ name: str,
86
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
87
+ context: str | NotGiven = NOT_GIVEN,
88
+ description: str | NotGiven = NOT_GIVEN,
89
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
90
+ format: str | NotGiven = NOT_GIVEN,
91
+ goal: str | NotGiven = NOT_GIVEN,
92
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
93
+ greeting_message: str | NotGiven = NOT_GIVEN,
94
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
95
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
83
96
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
84
97
  # The extra values given here take precedence over values defined on the client or passed to this method.
85
98
  extra_headers: Headers | None = None,
@@ -91,6 +104,30 @@ class ScenariosResource(SyncAPIResource):
91
104
  Create a new scenario
92
105
 
93
106
  Args:
107
+ component_id: Associated component ID
108
+
109
+ name: Scenario name
110
+
111
+ characters: Scenario characters
112
+
113
+ context: Scenario context
114
+
115
+ description: Scenario description
116
+
117
+ final_answer_prompt: Prompt for final answer
118
+
119
+ format: Interaction format
120
+
121
+ goal: Scenario goal
122
+
123
+ greeting_character_id: Character ID for greeting
124
+
125
+ greeting_message: Greeting message
126
+
127
+ requires_final_answer: Whether scenario requires a final answer
128
+
129
+ tools: Available tools
130
+
94
131
  extra_headers: Send extra headers
95
132
 
96
133
  extra_query: Add additional query parameters to the request
@@ -102,7 +139,23 @@ class ScenariosResource(SyncAPIResource):
102
139
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
103
140
  return self._post(
104
141
  "/api/v1/scenarios",
105
- body=maybe_transform(body, scenario_create_params.ScenarioCreateParams),
142
+ body=maybe_transform(
143
+ {
144
+ "component_id": component_id,
145
+ "name": name,
146
+ "characters": characters,
147
+ "context": context,
148
+ "description": description,
149
+ "final_answer_prompt": final_answer_prompt,
150
+ "format": format,
151
+ "goal": goal,
152
+ "greeting_character_id": greeting_character_id,
153
+ "greeting_message": greeting_message,
154
+ "requires_final_answer": requires_final_answer,
155
+ "tools": tools,
156
+ },
157
+ scenario_create_params.ScenarioCreateParams,
158
+ ),
106
159
  options=make_request_options(
107
160
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
108
161
  ),
@@ -147,7 +200,18 @@ class ScenariosResource(SyncAPIResource):
147
200
  self,
148
201
  id: str,
149
202
  *,
150
- body: str,
203
+ component_id: str,
204
+ name: str,
205
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
206
+ context: str | NotGiven = NOT_GIVEN,
207
+ description: str | NotGiven = NOT_GIVEN,
208
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
209
+ format: str | NotGiven = NOT_GIVEN,
210
+ goal: str | NotGiven = NOT_GIVEN,
211
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
212
+ greeting_message: str | NotGiven = NOT_GIVEN,
213
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
214
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
151
215
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
152
216
  # The extra values given here take precedence over values defined on the client or passed to this method.
153
217
  extra_headers: Headers | None = None,
@@ -159,6 +223,30 @@ class ScenariosResource(SyncAPIResource):
159
223
  Update scenario
160
224
 
161
225
  Args:
226
+ component_id: Associated component ID
227
+
228
+ name: Scenario name
229
+
230
+ characters: Scenario characters
231
+
232
+ context: Scenario context
233
+
234
+ description: Scenario description
235
+
236
+ final_answer_prompt: Prompt for final answer
237
+
238
+ format: Interaction format
239
+
240
+ goal: Scenario goal
241
+
242
+ greeting_character_id: Character ID for greeting
243
+
244
+ greeting_message: Greeting message
245
+
246
+ requires_final_answer: Whether scenario requires a final answer
247
+
248
+ tools: Available tools
249
+
162
250
  extra_headers: Send extra headers
163
251
 
164
252
  extra_query: Add additional query parameters to the request
@@ -172,7 +260,23 @@ class ScenariosResource(SyncAPIResource):
172
260
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
173
261
  return self._put(
174
262
  f"/api/v1/scenarios/{id}",
175
- body=maybe_transform(body, scenario_update_params.ScenarioUpdateParams),
263
+ body=maybe_transform(
264
+ {
265
+ "component_id": component_id,
266
+ "name": name,
267
+ "characters": characters,
268
+ "context": context,
269
+ "description": description,
270
+ "final_answer_prompt": final_answer_prompt,
271
+ "format": format,
272
+ "goal": goal,
273
+ "greeting_character_id": greeting_character_id,
274
+ "greeting_message": greeting_message,
275
+ "requires_final_answer": requires_final_answer,
276
+ "tools": tools,
277
+ },
278
+ scenario_update_params.ScenarioUpdateParams,
279
+ ),
176
280
  options=make_request_options(
177
281
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
178
282
  ),
@@ -269,6 +373,8 @@ class ScenariosResource(SyncAPIResource):
269
373
  self,
270
374
  id: str,
271
375
  *,
376
+ conversation_history: Iterable[object],
377
+ final_answer: str | NotGiven = NOT_GIVEN,
272
378
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
273
379
  # The extra values given here take precedence over values defined on the client or passed to this method.
274
380
  extra_headers: Headers | None = None,
@@ -277,7 +383,13 @@ class ScenariosResource(SyncAPIResource):
277
383
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
278
384
  ) -> None:
279
385
  """
386
+ Submit scenario answer
387
+
280
388
  Args:
389
+ conversation_history: Conversation history
390
+
391
+ final_answer: Final answer for the scenario
392
+
281
393
  extra_headers: Send extra headers
282
394
 
283
395
  extra_query: Add additional query parameters to the request
@@ -291,6 +403,13 @@ class ScenariosResource(SyncAPIResource):
291
403
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
292
404
  return self._post(
293
405
  f"/api/v1/scenarios/{id}/submit",
406
+ body=maybe_transform(
407
+ {
408
+ "conversation_history": conversation_history,
409
+ "final_answer": final_answer,
410
+ },
411
+ scenario_submit_params.ScenarioSubmitParams,
412
+ ),
294
413
  options=make_request_options(
295
414
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
296
415
  ),
@@ -333,7 +452,18 @@ class AsyncScenariosResource(AsyncAPIResource):
333
452
  async def create(
334
453
  self,
335
454
  *,
336
- body: str,
455
+ component_id: str,
456
+ name: str,
457
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
458
+ context: str | NotGiven = NOT_GIVEN,
459
+ description: str | NotGiven = NOT_GIVEN,
460
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
461
+ format: str | NotGiven = NOT_GIVEN,
462
+ goal: str | NotGiven = NOT_GIVEN,
463
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
464
+ greeting_message: str | NotGiven = NOT_GIVEN,
465
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
466
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
337
467
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
338
468
  # The extra values given here take precedence over values defined on the client or passed to this method.
339
469
  extra_headers: Headers | None = None,
@@ -345,6 +475,30 @@ class AsyncScenariosResource(AsyncAPIResource):
345
475
  Create a new scenario
346
476
 
347
477
  Args:
478
+ component_id: Associated component ID
479
+
480
+ name: Scenario name
481
+
482
+ characters: Scenario characters
483
+
484
+ context: Scenario context
485
+
486
+ description: Scenario description
487
+
488
+ final_answer_prompt: Prompt for final answer
489
+
490
+ format: Interaction format
491
+
492
+ goal: Scenario goal
493
+
494
+ greeting_character_id: Character ID for greeting
495
+
496
+ greeting_message: Greeting message
497
+
498
+ requires_final_answer: Whether scenario requires a final answer
499
+
500
+ tools: Available tools
501
+
348
502
  extra_headers: Send extra headers
349
503
 
350
504
  extra_query: Add additional query parameters to the request
@@ -356,7 +510,23 @@ class AsyncScenariosResource(AsyncAPIResource):
356
510
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
357
511
  return await self._post(
358
512
  "/api/v1/scenarios",
359
- body=await async_maybe_transform(body, scenario_create_params.ScenarioCreateParams),
513
+ body=await async_maybe_transform(
514
+ {
515
+ "component_id": component_id,
516
+ "name": name,
517
+ "characters": characters,
518
+ "context": context,
519
+ "description": description,
520
+ "final_answer_prompt": final_answer_prompt,
521
+ "format": format,
522
+ "goal": goal,
523
+ "greeting_character_id": greeting_character_id,
524
+ "greeting_message": greeting_message,
525
+ "requires_final_answer": requires_final_answer,
526
+ "tools": tools,
527
+ },
528
+ scenario_create_params.ScenarioCreateParams,
529
+ ),
360
530
  options=make_request_options(
361
531
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
362
532
  ),
@@ -401,7 +571,18 @@ class AsyncScenariosResource(AsyncAPIResource):
401
571
  self,
402
572
  id: str,
403
573
  *,
404
- body: str,
574
+ component_id: str,
575
+ name: str,
576
+ characters: Iterable[object] | NotGiven = NOT_GIVEN,
577
+ context: str | NotGiven = NOT_GIVEN,
578
+ description: str | NotGiven = NOT_GIVEN,
579
+ final_answer_prompt: str | NotGiven = NOT_GIVEN,
580
+ format: str | NotGiven = NOT_GIVEN,
581
+ goal: str | NotGiven = NOT_GIVEN,
582
+ greeting_character_id: str | NotGiven = NOT_GIVEN,
583
+ greeting_message: str | NotGiven = NOT_GIVEN,
584
+ requires_final_answer: bool | NotGiven = NOT_GIVEN,
585
+ tools: Iterable[object] | NotGiven = NOT_GIVEN,
405
586
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
406
587
  # The extra values given here take precedence over values defined on the client or passed to this method.
407
588
  extra_headers: Headers | None = None,
@@ -413,6 +594,30 @@ class AsyncScenariosResource(AsyncAPIResource):
413
594
  Update scenario
414
595
 
415
596
  Args:
597
+ component_id: Associated component ID
598
+
599
+ name: Scenario name
600
+
601
+ characters: Scenario characters
602
+
603
+ context: Scenario context
604
+
605
+ description: Scenario description
606
+
607
+ final_answer_prompt: Prompt for final answer
608
+
609
+ format: Interaction format
610
+
611
+ goal: Scenario goal
612
+
613
+ greeting_character_id: Character ID for greeting
614
+
615
+ greeting_message: Greeting message
616
+
617
+ requires_final_answer: Whether scenario requires a final answer
618
+
619
+ tools: Available tools
620
+
416
621
  extra_headers: Send extra headers
417
622
 
418
623
  extra_query: Add additional query parameters to the request
@@ -426,7 +631,23 @@ class AsyncScenariosResource(AsyncAPIResource):
426
631
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
427
632
  return await self._put(
428
633
  f"/api/v1/scenarios/{id}",
429
- body=await async_maybe_transform(body, scenario_update_params.ScenarioUpdateParams),
634
+ body=await async_maybe_transform(
635
+ {
636
+ "component_id": component_id,
637
+ "name": name,
638
+ "characters": characters,
639
+ "context": context,
640
+ "description": description,
641
+ "final_answer_prompt": final_answer_prompt,
642
+ "format": format,
643
+ "goal": goal,
644
+ "greeting_character_id": greeting_character_id,
645
+ "greeting_message": greeting_message,
646
+ "requires_final_answer": requires_final_answer,
647
+ "tools": tools,
648
+ },
649
+ scenario_update_params.ScenarioUpdateParams,
650
+ ),
430
651
  options=make_request_options(
431
652
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
432
653
  ),
@@ -523,6 +744,8 @@ class AsyncScenariosResource(AsyncAPIResource):
523
744
  self,
524
745
  id: str,
525
746
  *,
747
+ conversation_history: Iterable[object],
748
+ final_answer: str | NotGiven = NOT_GIVEN,
526
749
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
527
750
  # The extra values given here take precedence over values defined on the client or passed to this method.
528
751
  extra_headers: Headers | None = None,
@@ -531,7 +754,13 @@ class AsyncScenariosResource(AsyncAPIResource):
531
754
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
532
755
  ) -> None:
533
756
  """
757
+ Submit scenario answer
758
+
534
759
  Args:
760
+ conversation_history: Conversation history
761
+
762
+ final_answer: Final answer for the scenario
763
+
535
764
  extra_headers: Send extra headers
536
765
 
537
766
  extra_query: Add additional query parameters to the request
@@ -545,6 +774,13 @@ class AsyncScenariosResource(AsyncAPIResource):
545
774
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
546
775
  return await self._post(
547
776
  f"/api/v1/scenarios/{id}/submit",
777
+ body=await async_maybe_transform(
778
+ {
779
+ "conversation_history": conversation_history,
780
+ "final_answer": final_answer,
781
+ },
782
+ scenario_submit_params.ScenarioSubmitParams,
783
+ ),
548
784
  options=make_request_options(
549
785
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
550
786
  ),
@@ -18,11 +18,13 @@ from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
18
18
  from .material_create_params import MaterialCreateParams as MaterialCreateParams
19
19
  from .material_list_response import MaterialListResponse as MaterialListResponse
20
20
  from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
21
+ from .scenario_submit_params import ScenarioSubmitParams as ScenarioSubmitParams
21
22
  from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
22
23
  from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
23
24
  from .component_create_params import ComponentCreateParams as ComponentCreateParams
24
25
  from .component_list_response import ComponentListResponse as ComponentListResponse
25
26
  from .component_update_params import ComponentUpdateParams as ComponentUpdateParams
27
+ from .explainer_create_params import ExplainerCreateParams as ExplainerCreateParams
26
28
  from .chat_send_message_params import ChatSendMessageParams as ChatSendMessageParams
27
29
  from .component_embed_response import ComponentEmbedResponse as ComponentEmbedResponse
28
30
  from .flashcard_get_all_params import FlashcardGetAllParams as FlashcardGetAllParams
@@ -109,6 +109,9 @@ class ConfigFlashcardsConfigDto(TypedDict, total=False):
109
109
  max_review_interval: Annotated[float, PropertyInfo(alias="maxReviewInterval")]
110
110
  """Maximum review interval in days"""
111
111
 
112
+ model: str
113
+ """AI model to use for flashcard generation"""
114
+
112
115
  total_flashcards: Annotated[float, PropertyInfo(alias="totalFlashcards")]
113
116
  """Total number of flashcards to generate"""
114
117
 
@@ -137,9 +140,15 @@ class ConfigScenariosConfigDtoTool(TypedDict, total=False):
137
140
  name: Required[str]
138
141
  """Tool name"""
139
142
 
143
+ data_format: Annotated[str, PropertyInfo(alias="dataFormat")]
144
+ """Data format provided by the tool"""
145
+
140
146
  description: str
141
147
  """Tool description"""
142
148
 
149
+ type: str
150
+ """Tool type"""
151
+
143
152
 
144
153
  class ConfigScenariosConfigDto(TypedDict, total=False):
145
154
  characters: Iterable[ConfigScenariosConfigDtoCharacter]
@@ -175,6 +184,9 @@ class ConfigScenariosConfigDto(TypedDict, total=False):
175
184
  materials: List[str]
176
185
  """Material IDs"""
177
186
 
187
+ model: str
188
+ """AI model to use for scenario generation"""
189
+
178
190
  placeholder_text: Annotated[str, PropertyInfo(alias="placeholderText")]
179
191
  """Placeholder text"""
180
192
 
@@ -226,6 +238,9 @@ class ConfigPracticeTestConfigDto(TypedDict, total=False):
226
238
  max_attempts: Annotated[float, PropertyInfo(alias="maxAttempts")]
227
239
  """Maximum attempts allowed"""
228
240
 
241
+ model: str
242
+ """AI model to use for question generation and grading"""
243
+
229
244
  passing_score: Annotated[float, PropertyInfo(alias="passingScore")]
230
245
  """Passing score percentage"""
231
246
 
@@ -254,29 +269,68 @@ class ConfigPracticeTestConfigDto(TypedDict, total=False):
254
269
 
255
270
 
256
271
  class ConfigAudioRecapConfigDto(TypedDict, total=False):
272
+ duration: float
273
+ """Duration of audio recap in minutes"""
274
+
257
275
  folders: List[str]
258
276
  """Folder IDs"""
259
277
 
260
- format: Literal["podcast", "summary", "lecture"]
261
- """Audio format"""
278
+ is_multi_voice: Annotated[bool, PropertyInfo(alias="isMultiVoice")]
279
+ """Enable multi-voice conversation mode"""
262
280
 
263
281
  materials: List[str]
264
282
  """Material IDs"""
265
283
 
266
- speed: float
267
- """Playback speed"""
284
+ model: str
285
+ """AI model to use for generation"""
286
+
287
+ num_parts: Annotated[float, PropertyInfo(alias="numParts")]
288
+ """Number of parts to split the audio into"""
289
+
290
+ recap_type: Annotated[Literal["SUMMARY", "LECTURE", "PODCAST", "AUDIO_BOOK"], PropertyInfo(alias="recapType")]
291
+ """Type of audio recap"""
292
+
293
+ theme: str
294
+ """Theme or style for the audio recap"""
268
295
 
269
- voice: str
270
- """Voice to use for audio"""
296
+ topic: str
297
+ """Specific topic to focus on"""
298
+
299
+ voice1: str
300
+ """Primary voice for narration"""
301
+
302
+ voice2: str
303
+ """Secondary voice for multi-voice mode"""
271
304
 
272
305
 
273
306
  class ConfigExplainersConfigDto(TypedDict, total=False):
274
307
  folders: List[str]
275
308
  """Folder IDs"""
276
309
 
310
+ image_search: Annotated[bool, PropertyInfo(alias="imageSearch")]
311
+ """Enable image search for visuals"""
312
+
277
313
  materials: List[str]
278
314
  """Material IDs"""
279
315
 
316
+ model: str
317
+ """AI model to use for generation"""
318
+
319
+ style: str
320
+ """Video style"""
321
+
322
+ target_length: Annotated[float, PropertyInfo(alias="targetLength")]
323
+ """Target length in seconds"""
324
+
325
+ title: str
326
+ """Video title (defaults to component name if not provided)"""
327
+
328
+ vertical_video: Annotated[bool, PropertyInfo(alias="verticalVideo")]
329
+ """Create vertical video format (9:16)"""
330
+
331
+ web_search: Annotated[bool, PropertyInfo(alias="webSearch")]
332
+ """Enable web search for additional content"""
333
+
280
334
 
281
335
  class ConfigUploadsConfigDto(TypedDict, total=False):
282
336
  folder_id: Required[Annotated[str, PropertyInfo(alias="folderId")]]
@@ -0,0 +1,45 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["ExplainerCreateParams"]
11
+
12
+
13
+ class ExplainerCreateParams(TypedDict, total=False):
14
+ component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
15
+ """Component ID"""
16
+
17
+ folder_ids: Required[Annotated[List[str], PropertyInfo(alias="folderIds")]]
18
+ """Folder IDs to include"""
19
+
20
+ material_ids: Required[Annotated[List[str], PropertyInfo(alias="materialIds")]]
21
+ """Material IDs to include"""
22
+
23
+ target_length: Required[Annotated[float, PropertyInfo(alias="targetLength")]]
24
+ """Target video length in seconds"""
25
+
26
+ title: Required[str]
27
+ """Title for the explainer video"""
28
+
29
+ image_search: Annotated[bool, PropertyInfo(alias="imageSearch")]
30
+ """Enable image search for visuals"""
31
+
32
+ model: str
33
+ """AI model to use"""
34
+
35
+ style: str
36
+ """Video style"""
37
+
38
+ user_id: Annotated[str, PropertyInfo(alias="userId")]
39
+ """User ID"""
40
+
41
+ vertical_video: Annotated[bool, PropertyInfo(alias="verticalVideo")]
42
+ """Create vertical video format (9:16)"""
43
+
44
+ web_search: Annotated[bool, PropertyInfo(alias="webSearch")]
45
+ """Enable web search for additional content"""
@@ -2,10 +2,52 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import List
6
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
7
 
7
- __all__ = ["ExplainerHandleWebhookParams"]
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["ExplainerHandleWebhookParams", "Video"]
8
11
 
9
12
 
10
13
  class ExplainerHandleWebhookParams(TypedDict, total=False):
11
- body: Required[str]
14
+ event: Required[Literal["video.completed", "video.progress", "video.failed"]]
15
+ """Webhook event type"""
16
+
17
+ video: Required[Video]
18
+ """Video data"""
19
+
20
+
21
+ class Video(TypedDict, total=False):
22
+ id: Required[str]
23
+ """Video ID"""
24
+
25
+ image_sources: Annotated[object, PropertyInfo(alias="imageSources")]
26
+ """Image sources"""
27
+
28
+ progress: float
29
+ """Progress percentage"""
30
+
31
+ sections: List[str]
32
+ """Video sections"""
33
+
34
+ stream_id: Annotated[str, PropertyInfo(alias="streamId")]
35
+ """Stream ID"""
36
+
37
+ stream_url: Annotated[str, PropertyInfo(alias="streamUrl")]
38
+ """Stream URL"""
39
+
40
+ thumbnail_url: Annotated[str, PropertyInfo(alias="thumbnailUrl")]
41
+ """Thumbnail URL"""
42
+
43
+ transcript: str
44
+ """Video transcript"""
45
+
46
+ video_url: Annotated[str, PropertyInfo(alias="videoUrl")]
47
+ """Video URL"""
48
+
49
+ web_search_results: Annotated[object, PropertyInfo(alias="webSearchResults")]
50
+ """Web search results"""
51
+
52
+ web_search_sources: Annotated[object, PropertyInfo(alias="webSearchSources")]
53
+ """Web search sources"""
@@ -2,10 +2,47 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
6
9
 
7
10
  __all__ = ["ScenarioCreateParams"]
8
11
 
9
12
 
10
13
  class ScenarioCreateParams(TypedDict, total=False):
11
- body: Required[str]
14
+ component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
15
+ """Associated component ID"""
16
+
17
+ name: Required[str]
18
+ """Scenario name"""
19
+
20
+ characters: Iterable[object]
21
+ """Scenario characters"""
22
+
23
+ context: str
24
+ """Scenario context"""
25
+
26
+ description: str
27
+ """Scenario description"""
28
+
29
+ final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
30
+ """Prompt for final answer"""
31
+
32
+ format: str
33
+ """Interaction format"""
34
+
35
+ goal: str
36
+ """Scenario goal"""
37
+
38
+ greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
39
+ """Character ID for greeting"""
40
+
41
+ greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
42
+ """Greeting message"""
43
+
44
+ requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
45
+ """Whether scenario requires a final answer"""
46
+
47
+ tools: Iterable[object]
48
+ """Available tools"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["ScenarioSubmitParams"]
11
+
12
+
13
+ class ScenarioSubmitParams(TypedDict, total=False):
14
+ conversation_history: Required[Annotated[Iterable[object], PropertyInfo(alias="conversationHistory")]]
15
+ """Conversation history"""
16
+
17
+ final_answer: Annotated[str, PropertyInfo(alias="finalAnswer")]
18
+ """Final answer for the scenario"""
@@ -2,10 +2,47 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
6
9
 
7
10
  __all__ = ["ScenarioUpdateParams"]
8
11
 
9
12
 
10
13
  class ScenarioUpdateParams(TypedDict, total=False):
11
- body: Required[str]
14
+ component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
15
+ """Associated component ID"""
16
+
17
+ name: Required[str]
18
+ """Scenario name"""
19
+
20
+ characters: Iterable[object]
21
+ """Scenario characters"""
22
+
23
+ context: str
24
+ """Scenario context"""
25
+
26
+ description: str
27
+ """Scenario description"""
28
+
29
+ final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
30
+ """Prompt for final answer"""
31
+
32
+ format: str
33
+ """Interaction format"""
34
+
35
+ goal: str
36
+ """Scenario goal"""
37
+
38
+ greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
39
+ """Character ID for greeting"""
40
+
41
+ greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
42
+ """Greeting message"""
43
+
44
+ requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
45
+ """Whether scenario requires a final answer"""
46
+
47
+ tools: Iterable[object]
48
+ """Available tools"""
@@ -2,10 +2,47 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ...._utils import PropertyInfo
6
9
 
7
10
  __all__ = ["ComponentUpdateParams"]
8
11
 
9
12
 
10
13
  class ComponentUpdateParams(TypedDict, total=False):
11
- body: Required[str]
14
+ body_component_id: Required[Annotated[str, PropertyInfo(alias="componentId")]]
15
+ """Associated component ID"""
16
+
17
+ name: Required[str]
18
+ """Scenario name"""
19
+
20
+ characters: Iterable[object]
21
+ """Scenario characters"""
22
+
23
+ context: str
24
+ """Scenario context"""
25
+
26
+ description: str
27
+ """Scenario description"""
28
+
29
+ final_answer_prompt: Annotated[str, PropertyInfo(alias="finalAnswerPrompt")]
30
+ """Prompt for final answer"""
31
+
32
+ format: str
33
+ """Interaction format"""
34
+
35
+ goal: str
36
+ """Scenario goal"""
37
+
38
+ greeting_character_id: Annotated[str, PropertyInfo(alias="greetingCharacterId")]
39
+ """Character ID for greeting"""
40
+
41
+ greeting_message: Annotated[str, PropertyInfo(alias="greetingMessage")]
42
+ """Greeting message"""
43
+
44
+ requires_final_answer: Annotated[bool, PropertyInfo(alias="requiresFinalAnswer")]
45
+ """Whether scenario requires a final answer"""
46
+
47
+ tools: Iterable[object]
48
+ """Available tools"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: studyfetch_sdk
3
- Version: 0.1.0a4
3
+ Version: 0.1.0a5
4
4
  Summary: The official Python library for the studyfetch-sdk API
5
5
  Project-URL: Homepage, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
6
6
  Project-URL: Repository, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
@@ -11,7 +11,7 @@ studyfetch_sdk/_resource.py,sha256=y0aoAqMIYwTAwStuxbpO8XpTPnrSNQQ_ZcgiH5xcntg,1
11
11
  studyfetch_sdk/_response.py,sha256=6ph8tSkqF5pNbTo_2Zhizhq2O-Eb67TcksHwyg3aXdc,28864
12
12
  studyfetch_sdk/_streaming.py,sha256=HZoENuPVzWhBn24eH3lnMCvRbWN0EPwvhWYfdlJfw0A,10128
13
13
  studyfetch_sdk/_types.py,sha256=6nvqHGarRGuhs_FL8tJ8sGXXD8XWajNynT2K78GxRUI,6205
14
- studyfetch_sdk/_version.py,sha256=PoPZ_kT3sPR6WjcswmbEnX77TlwtNlTb0W2Zc9OpZA4,174
14
+ studyfetch_sdk/_version.py,sha256=P9g-XswlFnHQJUeiV28qK7KIuczpCj7zMFGKkkZHO1U,174
15
15
  studyfetch_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  studyfetch_sdk/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
17
17
  studyfetch_sdk/_utils/_logs.py,sha256=EoZgOiIkpf2WB_0Ts0Ti7G3o_25v7IsPf_q-yEU6sbY,798
@@ -27,7 +27,7 @@ studyfetch_sdk/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
27
27
  studyfetch_sdk/resources/__init__.py,sha256=TSJ6b8GNHShyK5w7efHV93u1bY2jYVySQRa2zKc1dKM,500
28
28
  studyfetch_sdk/resources/v1/__init__.py,sha256=Xbao5pcvo3A7m4Px9Xts0hh-DX1HKq2E1-TUM78plbA,6572
29
29
  studyfetch_sdk/resources/v1/components.py,sha256=omSiBUsNpgsPcp-aACKs_itOdKw7Nbj2ASV4W5NAnwQ,35554
30
- studyfetch_sdk/resources/v1/explainers.py,sha256=dFk7044_qcf16Ia2VdEJ_dRRdnJeyHALNDHu6PVFbIM,8351
30
+ studyfetch_sdk/resources/v1/explainers.py,sha256=OvbLxUmr5Iac6bl7kF2eV0e7hMcO5MnYLRj8NrYtS6c,12889
31
31
  studyfetch_sdk/resources/v1/flashcards.py,sha256=-RKKuU3SQEZtXeCr1SasxuK1pMQO2FZzesvBeIoCGqo,29317
32
32
  studyfetch_sdk/resources/v1/folders.py,sha256=o43HhcVhqF3t7xWMFFNIiMPElhoqkXtaCTVjEE5s5so,27436
33
33
  studyfetch_sdk/resources/v1/usage.py,sha256=78OlA8pT13Ggja84nHdJJQoKSn7GjDO3SefPyxsCYWo,18513
@@ -51,8 +51,8 @@ studyfetch_sdk/resources/v1/materials/materials.py,sha256=k6eflgtL96qQ3veEC6YO3e
51
51
  studyfetch_sdk/resources/v1/materials/test.py,sha256=eGcjGYvPlrlZGrU6AnvZZX5qZ3aLgZgxIrNspXC1rnE,11355
52
52
  studyfetch_sdk/resources/v1/materials/upload.py,sha256=5GyF1aIaxUHCKTiTz-12IbKF6IcFv4xZWAjVJFpT27o,15726
53
53
  studyfetch_sdk/resources/v1/scenarios/__init__.py,sha256=WrMn3vQJgHGQzWKq5SRUTMMvRd4p15Bt5JjZpHhKHZs,2071
54
- studyfetch_sdk/resources/v1/scenarios/component.py,sha256=YS-NSqVjOBGggQn1cZfu-mH7V_BqUZZss2MdPItWEvA,12724
55
- studyfetch_sdk/resources/v1/scenarios/scenarios.py,sha256=LSJc70kBRc4k_hQXu-HcToj2GJNpRO6pj9NDlM_xQcc,26758
54
+ studyfetch_sdk/resources/v1/scenarios/component.py,sha256=RvB07dib9WtMY3Irr5UPjQIG1Bue9vGVPyhMrSKxwqk,16333
55
+ studyfetch_sdk/resources/v1/scenarios/scenarios.py,sha256=bta8bhoLJMo480AiJwoTA2ucs26-f7qUewEQtjGKmZ8,34807
56
56
  studyfetch_sdk/resources/v1/scenarios/sessions.py,sha256=nTa6kBd5SoCBTm4DoIdH_u_nj1bM5dIbo2yAy-rMzKg,8949
57
57
  studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py,sha256=rTtsEfGVta9DIHDkyL4p32yLV21bFcxkE-LRb_bpFvU,1041
58
58
  studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py,sha256=2wj6bWW4NXw3EjsCDQySGYOAym64QIUzLqp6UelJsqo,3773
@@ -64,11 +64,11 @@ studyfetch_sdk/resources/v1/upload/__init__.py,sha256=N5r6jpSMe43dezq-6RBAWLVlL3
64
64
  studyfetch_sdk/resources/v1/upload/component.py,sha256=BbiKtJ9hC7c7_Wv6Q_Zi_BZJmcusWFRNvBKJqaB75yA,15493
65
65
  studyfetch_sdk/resources/v1/upload/upload.py,sha256=RBkrsVi5_8qIqdYKypnSqj44ONvwW7u2XXIlpuJsKSg,3736
66
66
  studyfetch_sdk/types/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
67
- studyfetch_sdk/types/v1/__init__.py,sha256=aywccrChxnRGCoeK_FDPra7X3SKnfnyzI2oKmOyD0V4,3633
67
+ studyfetch_sdk/types/v1/__init__.py,sha256=ptidQei3WG8UBTlyXK3tJmtIwp8BzQcbx7rmru0o5EA,3798
68
68
  studyfetch_sdk/types/v1/chat_retrieve_session_params.py,sha256=j_egNBvVvOwAHQGayY5002fE_KK1q775XuIKlokEBsQ,388
69
69
  studyfetch_sdk/types/v1/chat_send_message_params.py,sha256=BRxjNsVXsqcBbdrp4J5TQGjjNPJ_bz7uXw3pnc-x0oU,1454
70
70
  studyfetch_sdk/types/v1/chat_stream_params.py,sha256=Aqp2Vdsa35PAH-75kaO_ZYlkqGrCgDZ5EyYTTLRAJoE,695
71
- studyfetch_sdk/types/v1/component_create_params.py,sha256=30lbEq-sy5L6FaMFXu-3Vxo-Ebx9Ir0mnYFTPZ4k5G8,8937
71
+ studyfetch_sdk/types/v1/component_create_params.py,sha256=ec6urTYr_9KEvITea9qThEIVFgWhRbY8tUhyk2RQHQQ,10496
72
72
  studyfetch_sdk/types/v1/component_create_response.py,sha256=zfrTvGBNGY_N5doR9CAg6DgJgFWXoi4iXiiwEgvipKo,1194
73
73
  studyfetch_sdk/types/v1/component_embed_params.py,sha256=hw7NcUe_QeYxrJ46qojicj8OVDY1KpRGHBPKgfx5FZc,3052
74
74
  studyfetch_sdk/types/v1/component_embed_response.py,sha256=PUr_rBcSsww_FFIAUh6hjXWzCJ6kMENY970dDNtpnpY,906
@@ -79,7 +79,8 @@ studyfetch_sdk/types/v1/component_update_params.py,sha256=IkSFyldrto9H_F_4GWIGG1
79
79
  studyfetch_sdk/types/v1/component_update_response.py,sha256=Red-3gvU3gf0uxbxFCtk88D7zXgq_qpqMo-15w-fUh4,1194
80
80
  studyfetch_sdk/types/v1/embed_get_theme_params.py,sha256=wKZn4X-Ne29dOrxEBkGThxBPTdhPTgb-CzV65KvSFVw,308
81
81
  studyfetch_sdk/types/v1/embed_verify_params.py,sha256=hixgK7Uyhi2Oaj0t5Q5sbFVUYGdvmMsk_2-fu_2C2nw,314
82
- studyfetch_sdk/types/v1/explainer_handle_webhook_params.py,sha256=woKIx4423Cuk15DNTQ3XfPWsZx5Ewm5KALkgB6wT4Sc,303
82
+ studyfetch_sdk/types/v1/explainer_create_params.py,sha256=DfTTxdkaUezNpD3TwTSyWZDsqcj3ZQ_pi-NiFmhldCk,1365
83
+ studyfetch_sdk/types/v1/explainer_handle_webhook_params.py,sha256=FroVkIVnrp3n_Jf5q5gfl4OaL41gswNRG2EZHXaeekY,1426
83
84
  studyfetch_sdk/types/v1/flashcard_batch_process_params.py,sha256=9rKglWAilYXnfqPSOdKLQWZ7DOrU45S20eLLGn6xsSk,1044
84
85
  studyfetch_sdk/types/v1/flashcard_batch_process_response.py,sha256=UKredDT61O5KA56gvhbJlF1qa8LzrdpLrD4ulzQOFlw,891
85
86
  studyfetch_sdk/types/v1/flashcard_get_algorithm_info_response.py,sha256=DXyISqmGJlqgjyrcAmjO2lrNFqFiwGSI6JPr6niSE0A,871
@@ -97,8 +98,9 @@ studyfetch_sdk/types/v1/material_get_download_url_params.py,sha256=7prrB3K-E4xAW
97
98
  studyfetch_sdk/types/v1/material_list_params.py,sha256=8yd556-GB4Xw-NFGshxm_Hx-nIG-MAg4dPtn-W38w3k,388
98
99
  studyfetch_sdk/types/v1/material_list_response.py,sha256=HHtjzeuZ3v0QrOQdUMFI7HRsKJ41n_jWk8N_JloDaIg,1827
99
100
  studyfetch_sdk/types/v1/material_retrieve_response.py,sha256=LtW5GDV5KExzVY1QmR0K0yp60rVQibBbE7pPPEUe2G0,1647
100
- studyfetch_sdk/types/v1/scenario_create_params.py,sha256=cT6bzoctWjw1_p0zRNtb65OkxhaZostNxHYUVrCR45k,287
101
- studyfetch_sdk/types/v1/scenario_update_params.py,sha256=y3sNt24zXLLDV_VbBYHJ_2IcoPEQYNApt0il9-C525U,287
101
+ studyfetch_sdk/types/v1/scenario_create_params.py,sha256=anCK913P4vYEtgY6GnxxxCxRnUazeV1H1NoyBV78sT8,1281
102
+ studyfetch_sdk/types/v1/scenario_submit_params.py,sha256=DV1s6zdCYFxS3s7_Ji-Y1CUddhaD-gsdQPqem0LZB0Y,585
103
+ studyfetch_sdk/types/v1/scenario_update_params.py,sha256=q-PB0dS3s2S9q_JCm46UWB-Dy2WVSUiAw3C6v6lq7XA,1281
102
104
  studyfetch_sdk/types/v1/test_create_params.py,sha256=-MrR4d4Igyp7FD9xni5Rh_Gn3JgCZyYGagXUG3GDvQc,537
103
105
  studyfetch_sdk/types/v1/test_retake_params.py,sha256=pSxTOQ8Io9D_ZquvrbwdbUGtpjG-idDfBd-28i6gQVM,379
104
106
  studyfetch_sdk/types/v1/test_submit_answer_params.py,sha256=KnXliGsq5TTCZIno5It7rK5pi_qttEavBw86X_yhyj0,549
@@ -127,11 +129,11 @@ studyfetch_sdk/types/v1/organizations/logo/__init__.py,sha256=OKfJYcKb4NObdiRObq
127
129
  studyfetch_sdk/types/v1/organizations/profile/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
128
130
  studyfetch_sdk/types/v1/organizations/team/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
129
131
  studyfetch_sdk/types/v1/scenarios/__init__.py,sha256=2DyrawNlb-TstNKw0gUMlQaNSq-UAUcLhmOGElM0l0U,207
130
- studyfetch_sdk/types/v1/scenarios/component_update_params.py,sha256=BDHJzJiiTVqSXhGzr9gbbC16VHBnLExpPGX2wQXlV2k,289
132
+ studyfetch_sdk/types/v1/scenarios/component_update_params.py,sha256=_Rs0wRJtrLMKyQCGH3hrpMjWG1fHJwD3QaTyeOfdZMA,1289
131
133
  studyfetch_sdk/types/v1/scenarios/submissions/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
132
134
  studyfetch_sdk/types/v1/tests/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
133
135
  studyfetch_sdk/types/v1/upload/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
134
- studyfetch_sdk-0.1.0a4.dist-info/METADATA,sha256=LzluIMWUivn1ko--oLfNtbiKSiGU13nGh5-8hWIyKJI,14826
135
- studyfetch_sdk-0.1.0a4.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
136
- studyfetch_sdk-0.1.0a4.dist-info/licenses/LICENSE,sha256=CsdbJMegH_AAWljUmVcwW0Cj_GyIm1hjw6qPqPnmdn4,11344
137
- studyfetch_sdk-0.1.0a4.dist-info/RECORD,,
136
+ studyfetch_sdk-0.1.0a5.dist-info/METADATA,sha256=KDONVG9Y25XyGij3xjRNCpcA-ImW3qu89_nV9Etiz-4,14826
137
+ studyfetch_sdk-0.1.0a5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
138
+ studyfetch_sdk-0.1.0a5.dist-info/licenses/LICENSE,sha256=CsdbJMegH_AAWljUmVcwW0Cj_GyIm1hjw6qPqPnmdn4,11344
139
+ studyfetch_sdk-0.1.0a5.dist-info/RECORD,,