codex-python 1.114.2__tar.gz → 1.122.0__tar.gz
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.
- {codex_python-1.114.2 → codex_python-1.122.0}/PKG-INFO +1 -1
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/__init__.py +1 -1
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_async_services.py +71 -3
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_async_threads.py +18 -8
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_sync_services.py +90 -3
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_sync_threads.py +19 -4
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/models.py +33 -4
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/options.py +32 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/protocol/types.py +5344 -4126
- {codex_python-1.114.2 → codex_python-1.122.0}/crates/codex_native/Cargo.lock +7 -7
- {codex_python-1.114.2 → codex_python-1.122.0}/crates/codex_native/Cargo.toml +1 -1
- {codex_python-1.114.2 → codex_python-1.122.0}/LICENSE +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/README.md +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/_binary.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/_config_types.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/_file_utils.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/_runtime.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/_turn_options.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/__init__.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_async_client.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_payloads.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_protocol_helpers.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_session.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_sync_client.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_sync_support.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/_types.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/errors.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/app_server/transports.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/codex.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/dynamic_tools.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/errors.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/options.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/output_schema.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/output_schema_file.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/protocol/__init__.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/py.typed +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/thread.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/codex/vendor/.gitkeep +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/crates/codex_native/codex/__init__.py +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/crates/codex_native/src/lib.rs +0 -0
- {codex_python-1.114.2 → codex_python-1.122.0}/pyproject.toml +0 -0
|
@@ -26,6 +26,7 @@ from codex.app_server.models import (
|
|
|
26
26
|
ModelInfo,
|
|
27
27
|
ModelListResult,
|
|
28
28
|
SkillsConfigWriteResult,
|
|
29
|
+
SkillsListEntry,
|
|
29
30
|
SkillsListResult,
|
|
30
31
|
WindowsSandboxSetupStartResult,
|
|
31
32
|
)
|
|
@@ -113,7 +114,7 @@ class AsyncSkillsClient(_AsyncServiceClient):
|
|
|
113
114
|
cwds: Sequence[str] | None = None,
|
|
114
115
|
force_reload: bool | None = None,
|
|
115
116
|
per_cwd_extra_user_roots: Sequence[protocol.SkillsListExtraRootsForCwd] | None = None,
|
|
116
|
-
) -> list[
|
|
117
|
+
) -> list[SkillsListEntry]:
|
|
117
118
|
return (
|
|
118
119
|
await self.list_page(
|
|
119
120
|
cwds=cwds,
|
|
@@ -139,7 +140,10 @@ class AsyncSkillsClient(_AsyncServiceClient):
|
|
|
139
140
|
return await self._rpc.request_typed("skills/list", params, SkillsListResult)
|
|
140
141
|
|
|
141
142
|
async def write_config(self, *, path: str, enabled: bool) -> SkillsConfigWriteResult:
|
|
142
|
-
params = protocol.SkillsConfigWriteParams(
|
|
143
|
+
params = protocol.SkillsConfigWriteParams(
|
|
144
|
+
path=protocol.AbsolutePathBuf(path),
|
|
145
|
+
enabled=enabled,
|
|
146
|
+
)
|
|
143
147
|
return await self._rpc.request_typed("skills/config/write", params, SkillsConfigWriteResult)
|
|
144
148
|
|
|
145
149
|
|
|
@@ -322,19 +326,80 @@ class AsyncCommandClient(_AsyncServiceClient):
|
|
|
322
326
|
*,
|
|
323
327
|
command: Sequence[str],
|
|
324
328
|
cwd: str | None = None,
|
|
329
|
+
disable_output_cap: bool | None = None,
|
|
330
|
+
disable_timeout: bool | None = None,
|
|
331
|
+
env: Mapping[str, object | None] | None = None,
|
|
332
|
+
output_bytes_cap: int | None = None,
|
|
333
|
+
process_id: str | None = None,
|
|
325
334
|
sandbox_policy: protocol.SandboxPolicy | None = None,
|
|
335
|
+
size: protocol.CommandExecTerminalSize | None = None,
|
|
336
|
+
stream_stdin: bool | None = None,
|
|
337
|
+
stream_stdout_stderr: bool | None = None,
|
|
326
338
|
timeout_ms: int | None = None,
|
|
339
|
+
tty: bool | None = None,
|
|
327
340
|
) -> CommandExecResult:
|
|
328
341
|
params = protocol.CommandExecParams(
|
|
329
342
|
command=list(command),
|
|
330
343
|
cwd=cwd,
|
|
344
|
+
disableOutputCap=disable_output_cap,
|
|
345
|
+
disableTimeout=disable_timeout,
|
|
346
|
+
env=dict(env) if env is not None else None,
|
|
347
|
+
outputBytesCap=output_bytes_cap,
|
|
348
|
+
processId=process_id,
|
|
331
349
|
sandboxPolicy=sandbox_policy,
|
|
350
|
+
size=size,
|
|
351
|
+
streamStdin=stream_stdin,
|
|
352
|
+
streamStdoutStderr=stream_stdout_stderr,
|
|
332
353
|
timeoutMs=timeout_ms,
|
|
354
|
+
tty=tty,
|
|
333
355
|
)
|
|
334
356
|
return await self._rpc.request_typed("command/exec", params, CommandExecResult)
|
|
335
357
|
|
|
336
358
|
exec = execute
|
|
337
359
|
|
|
360
|
+
async def write_stdin(
|
|
361
|
+
self,
|
|
362
|
+
*,
|
|
363
|
+
process_id: str,
|
|
364
|
+
close_stdin: bool | None = None,
|
|
365
|
+
delta_base64: str | None = None,
|
|
366
|
+
) -> EmptyResult:
|
|
367
|
+
"""Write stdin bytes to a running `command/exec` process or close stdin.
|
|
368
|
+
|
|
369
|
+
This wraps the app-server `command/exec/write` request. `delta_base64`
|
|
370
|
+
is optional base64-encoded stdin data; `close_stdin` closes the
|
|
371
|
+
process stdin after the optional write.
|
|
372
|
+
"""
|
|
373
|
+
params = protocol.CommandExecWriteParams(
|
|
374
|
+
closeStdin=close_stdin,
|
|
375
|
+
deltaBase64=delta_base64,
|
|
376
|
+
processId=process_id,
|
|
377
|
+
)
|
|
378
|
+
return await self._rpc.request_typed("command/exec/write", params, EmptyResult)
|
|
379
|
+
|
|
380
|
+
async def resize_terminal(
|
|
381
|
+
self,
|
|
382
|
+
*,
|
|
383
|
+
process_id: str,
|
|
384
|
+
size: protocol.CommandExecTerminalSize,
|
|
385
|
+
) -> EmptyResult:
|
|
386
|
+
"""Resize the terminal attached to a running `command/exec` process.
|
|
387
|
+
|
|
388
|
+
This wraps the app-server `command/exec/resize` request and sends the
|
|
389
|
+
new terminal dimensions as `cols` and `rows`.
|
|
390
|
+
"""
|
|
391
|
+
params = protocol.CommandExecResizeParams(processId=process_id, size=size)
|
|
392
|
+
return await self._rpc.request_typed("command/exec/resize", params, EmptyResult)
|
|
393
|
+
|
|
394
|
+
async def terminate_process(self, *, process_id: str) -> EmptyResult:
|
|
395
|
+
"""Terminate a running `command/exec` process.
|
|
396
|
+
|
|
397
|
+
This wraps the app-server `command/exec/terminate` request for the
|
|
398
|
+
client-supplied process id.
|
|
399
|
+
"""
|
|
400
|
+
params = protocol.CommandExecTerminateParams(processId=process_id)
|
|
401
|
+
return await self._rpc.request_typed("command/exec/terminate", params, EmptyResult)
|
|
402
|
+
|
|
338
403
|
|
|
339
404
|
class AsyncExternalAgentConfigClient(_AsyncServiceClient):
|
|
340
405
|
async def detect(
|
|
@@ -369,7 +434,10 @@ class AsyncWindowsSandboxClient(_AsyncServiceClient):
|
|
|
369
434
|
mode: protocol.WindowsSandboxSetupMode,
|
|
370
435
|
cwd: str | None = None,
|
|
371
436
|
) -> WindowsSandboxSetupStartResult:
|
|
372
|
-
params = protocol.WindowsSandboxSetupStartParams(
|
|
437
|
+
params = protocol.WindowsSandboxSetupStartParams(
|
|
438
|
+
cwd=protocol.AbsolutePathBuf(cwd) if cwd is not None else None,
|
|
439
|
+
mode=mode,
|
|
440
|
+
)
|
|
373
441
|
return await self._rpc.request_typed(
|
|
374
442
|
"windowsSandbox/setupStart",
|
|
375
443
|
params,
|
|
@@ -41,9 +41,13 @@ _TURN_STREAM_NOTIFICATION_METHODS = {
|
|
|
41
41
|
"turn/completed",
|
|
42
42
|
"turn/diff/updated",
|
|
43
43
|
"turn/plan/updated",
|
|
44
|
+
"hook/started",
|
|
45
|
+
"hook/completed",
|
|
44
46
|
"thread/tokenUsage/updated",
|
|
45
47
|
"item/started",
|
|
46
48
|
"item/completed",
|
|
49
|
+
"item/autoApprovalReview/started",
|
|
50
|
+
"item/autoApprovalReview/completed",
|
|
47
51
|
"item/agentMessage/delta",
|
|
48
52
|
"item/plan/delta",
|
|
49
53
|
"item/reasoning/summaryTextDelta",
|
|
@@ -235,15 +239,21 @@ class AsyncTurnStream:
|
|
|
235
239
|
self._require_terminal_turn()
|
|
236
240
|
return self._final_message
|
|
237
241
|
|
|
238
|
-
async def steer(
|
|
242
|
+
async def steer(
|
|
243
|
+
self,
|
|
244
|
+
input: TurnInput,
|
|
245
|
+
*,
|
|
246
|
+
responsesapi_client_metadata: Mapping[str, object] | None = None,
|
|
247
|
+
) -> TurnIdResult:
|
|
239
248
|
"""Append additional user input to the in-flight turn."""
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
249
|
+
payload: dict[str, object] = {
|
|
250
|
+
"threadId": self.thread_id,
|
|
251
|
+
"expectedTurnId": self.turn_id,
|
|
252
|
+
"input": normalize_turn_input(input),
|
|
253
|
+
}
|
|
254
|
+
if responsesapi_client_metadata is not None:
|
|
255
|
+
payload["responsesapiClientMetadata"] = dict(responsesapi_client_metadata)
|
|
256
|
+
params = protocol.TurnSteerParams.model_validate(payload)
|
|
247
257
|
return await self._thread._client.rpc.request_typed("turn/steer", params, TurnIdResult)
|
|
248
258
|
|
|
249
259
|
async def interrupt(self) -> EmptyResult:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from collections.abc import Callable, Coroutine, Sequence
|
|
3
|
+
from collections.abc import Callable, Coroutine, Mapping, Sequence
|
|
4
4
|
from typing import Any, Protocol
|
|
5
5
|
|
|
6
6
|
from codex.app_server._sync_support import _SyncRunner
|
|
@@ -25,6 +25,7 @@ from codex.app_server.models import (
|
|
|
25
25
|
ModelInfo,
|
|
26
26
|
ModelListResult,
|
|
27
27
|
SkillsConfigWriteResult,
|
|
28
|
+
SkillsListEntry,
|
|
28
29
|
SkillsListResult,
|
|
29
30
|
WindowsSandboxSetupStartResult,
|
|
30
31
|
)
|
|
@@ -76,7 +77,7 @@ class _AsyncSkillsClientLike(Protocol):
|
|
|
76
77
|
cwds: Sequence[str] | None = None,
|
|
77
78
|
force_reload: bool | None = None,
|
|
78
79
|
per_cwd_extra_user_roots: Sequence[protocol.SkillsListExtraRootsForCwd] | None = None,
|
|
79
|
-
) -> list[
|
|
80
|
+
) -> list[SkillsListEntry]: ...
|
|
80
81
|
|
|
81
82
|
async def list_page(
|
|
82
83
|
self,
|
|
@@ -184,10 +185,36 @@ class _AsyncCommandClientLike(Protocol):
|
|
|
184
185
|
*,
|
|
185
186
|
command: Sequence[str],
|
|
186
187
|
cwd: str | None = None,
|
|
188
|
+
disable_output_cap: bool | None = None,
|
|
189
|
+
disable_timeout: bool | None = None,
|
|
190
|
+
env: Mapping[str, object | None] | None = None,
|
|
191
|
+
output_bytes_cap: int | None = None,
|
|
192
|
+
process_id: str | None = None,
|
|
187
193
|
sandbox_policy: protocol.SandboxPolicy | None = None,
|
|
194
|
+
size: protocol.CommandExecTerminalSize | None = None,
|
|
195
|
+
stream_stdin: bool | None = None,
|
|
196
|
+
stream_stdout_stderr: bool | None = None,
|
|
188
197
|
timeout_ms: int | None = None,
|
|
198
|
+
tty: bool | None = None,
|
|
189
199
|
) -> CommandExecResult: ...
|
|
190
200
|
|
|
201
|
+
async def write_stdin(
|
|
202
|
+
self,
|
|
203
|
+
*,
|
|
204
|
+
process_id: str,
|
|
205
|
+
close_stdin: bool | None = None,
|
|
206
|
+
delta_base64: str | None = None,
|
|
207
|
+
) -> EmptyResult: ...
|
|
208
|
+
|
|
209
|
+
async def resize_terminal(
|
|
210
|
+
self,
|
|
211
|
+
*,
|
|
212
|
+
process_id: str,
|
|
213
|
+
size: protocol.CommandExecTerminalSize,
|
|
214
|
+
) -> EmptyResult: ...
|
|
215
|
+
|
|
216
|
+
async def terminate_process(self, *, process_id: str) -> EmptyResult: ...
|
|
217
|
+
|
|
191
218
|
|
|
192
219
|
class _AsyncExternalAgentConfigClientLike(Protocol):
|
|
193
220
|
async def detect(
|
|
@@ -312,7 +339,7 @@ class _SkillsClient(_SyncRunner):
|
|
|
312
339
|
cwds: Sequence[str] | None = None,
|
|
313
340
|
force_reload: bool | None = None,
|
|
314
341
|
per_cwd_extra_user_roots: Sequence[protocol.SkillsListExtraRootsForCwd] | None = None,
|
|
315
|
-
) -> list[
|
|
342
|
+
) -> list[SkillsListEntry]:
|
|
316
343
|
return self._run(
|
|
317
344
|
self._async_client.list(
|
|
318
345
|
cwds=cwds,
|
|
@@ -529,20 +556,80 @@ class _CommandClient(_SyncRunner):
|
|
|
529
556
|
*,
|
|
530
557
|
command: Sequence[str],
|
|
531
558
|
cwd: str | None = None,
|
|
559
|
+
disable_output_cap: bool | None = None,
|
|
560
|
+
disable_timeout: bool | None = None,
|
|
561
|
+
env: Mapping[str, object | None] | None = None,
|
|
562
|
+
output_bytes_cap: int | None = None,
|
|
563
|
+
process_id: str | None = None,
|
|
532
564
|
sandbox_policy: protocol.SandboxPolicy | None = None,
|
|
565
|
+
size: protocol.CommandExecTerminalSize | None = None,
|
|
566
|
+
stream_stdin: bool | None = None,
|
|
567
|
+
stream_stdout_stderr: bool | None = None,
|
|
533
568
|
timeout_ms: int | None = None,
|
|
569
|
+
tty: bool | None = None,
|
|
534
570
|
) -> CommandExecResult:
|
|
535
571
|
return self._run(
|
|
536
572
|
self._async_client.execute(
|
|
537
573
|
command=command,
|
|
538
574
|
cwd=cwd,
|
|
575
|
+
disable_output_cap=disable_output_cap,
|
|
576
|
+
disable_timeout=disable_timeout,
|
|
577
|
+
env=env,
|
|
578
|
+
output_bytes_cap=output_bytes_cap,
|
|
579
|
+
process_id=process_id,
|
|
539
580
|
sandbox_policy=sandbox_policy,
|
|
581
|
+
size=size,
|
|
582
|
+
stream_stdin=stream_stdin,
|
|
583
|
+
stream_stdout_stderr=stream_stdout_stderr,
|
|
540
584
|
timeout_ms=timeout_ms,
|
|
585
|
+
tty=tty,
|
|
541
586
|
)
|
|
542
587
|
)
|
|
543
588
|
|
|
544
589
|
exec = execute
|
|
545
590
|
|
|
591
|
+
def write_stdin(
|
|
592
|
+
self,
|
|
593
|
+
*,
|
|
594
|
+
process_id: str,
|
|
595
|
+
close_stdin: bool | None = None,
|
|
596
|
+
delta_base64: str | None = None,
|
|
597
|
+
) -> EmptyResult:
|
|
598
|
+
"""Write stdin bytes to a running `command/exec` process or close stdin.
|
|
599
|
+
|
|
600
|
+
This wraps the app-server `command/exec/write` request. `delta_base64`
|
|
601
|
+
is optional base64-encoded stdin data; `close_stdin` closes the
|
|
602
|
+
process stdin after the optional write.
|
|
603
|
+
"""
|
|
604
|
+
return self._run(
|
|
605
|
+
self._async_client.write_stdin(
|
|
606
|
+
process_id=process_id,
|
|
607
|
+
close_stdin=close_stdin,
|
|
608
|
+
delta_base64=delta_base64,
|
|
609
|
+
)
|
|
610
|
+
)
|
|
611
|
+
|
|
612
|
+
def resize_terminal(
|
|
613
|
+
self,
|
|
614
|
+
*,
|
|
615
|
+
process_id: str,
|
|
616
|
+
size: protocol.CommandExecTerminalSize,
|
|
617
|
+
) -> EmptyResult:
|
|
618
|
+
"""Resize the terminal attached to a running `command/exec` process.
|
|
619
|
+
|
|
620
|
+
This wraps the app-server `command/exec/resize` request and sends the
|
|
621
|
+
new terminal dimensions as `cols` and `rows`.
|
|
622
|
+
"""
|
|
623
|
+
return self._run(self._async_client.resize_terminal(process_id=process_id, size=size))
|
|
624
|
+
|
|
625
|
+
def terminate_process(self, *, process_id: str) -> EmptyResult:
|
|
626
|
+
"""Terminate a running `command/exec` process.
|
|
627
|
+
|
|
628
|
+
This wraps the app-server `command/exec/terminate` request for the
|
|
629
|
+
client-supplied process id.
|
|
630
|
+
"""
|
|
631
|
+
return self._run(self._async_client.terminate_process(process_id=process_id))
|
|
632
|
+
|
|
546
633
|
|
|
547
634
|
class _ExternalAgentConfigClient(_SyncRunner):
|
|
548
635
|
def __init__(
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from collections.abc import Callable, Collection, Coroutine
|
|
5
|
+
from collections.abc import Callable, Collection, Coroutine, Mapping
|
|
6
6
|
from typing import Any, Protocol, TypeVar
|
|
7
7
|
|
|
8
8
|
from pydantic import BaseModel
|
|
@@ -45,7 +45,12 @@ class _AsyncTurnStreamLike(Protocol):
|
|
|
45
45
|
|
|
46
46
|
def raise_for_terminal_status(self) -> None: ...
|
|
47
47
|
|
|
48
|
-
async def steer(
|
|
48
|
+
async def steer(
|
|
49
|
+
self,
|
|
50
|
+
input: TurnInput,
|
|
51
|
+
*,
|
|
52
|
+
responsesapi_client_metadata: Mapping[str, object] | None = None,
|
|
53
|
+
) -> TurnIdResult: ...
|
|
49
54
|
|
|
50
55
|
async def interrupt(self) -> EmptyResult: ...
|
|
51
56
|
|
|
@@ -217,8 +222,18 @@ class TurnStream(_SyncRunner):
|
|
|
217
222
|
def raise_for_terminal_status(self) -> None:
|
|
218
223
|
self._async_stream.raise_for_terminal_status()
|
|
219
224
|
|
|
220
|
-
def steer(
|
|
221
|
-
|
|
225
|
+
def steer(
|
|
226
|
+
self,
|
|
227
|
+
input: TurnInput,
|
|
228
|
+
*,
|
|
229
|
+
responsesapi_client_metadata: Mapping[str, object] | None = None,
|
|
230
|
+
) -> TurnIdResult:
|
|
231
|
+
return self._run(
|
|
232
|
+
self._async_stream.steer(
|
|
233
|
+
input,
|
|
234
|
+
responsesapi_client_metadata=responsesapi_client_metadata,
|
|
235
|
+
)
|
|
236
|
+
)
|
|
222
237
|
|
|
223
238
|
def interrupt(self) -> EmptyResult:
|
|
224
239
|
return self._run(self._async_stream.interrupt())
|
|
@@ -71,6 +71,7 @@ DEFAULT_INPUT_MODALITIES: tuple[Literal["text", "image"], Literal["text", "image
|
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
class ModelInfo(AppServerResultModel):
|
|
74
|
+
additional_speed_tiers: list[str] | None = Field(default_factory=list)
|
|
74
75
|
availability_nux: ModelAvailabilityNux | None = None
|
|
75
76
|
default_reasoning_effort: protocol.ReasoningEffort
|
|
76
77
|
description: str
|
|
@@ -98,8 +99,34 @@ class AppListResult(AppServerResultModel):
|
|
|
98
99
|
next_cursor: str | None = None
|
|
99
100
|
|
|
100
101
|
|
|
102
|
+
class SkillInterface(AppServerResultModel):
|
|
103
|
+
display_name: str | None = None
|
|
104
|
+
short_description: str | None = None
|
|
105
|
+
icon_small: str | None = None
|
|
106
|
+
icon_large: str | None = None
|
|
107
|
+
brand_color: str | None = None
|
|
108
|
+
default_prompt: str | None = None
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class SkillInfo(AppServerResultModel):
|
|
112
|
+
name: str
|
|
113
|
+
description: str
|
|
114
|
+
dependencies: protocol.SkillDependencies | None = None
|
|
115
|
+
enabled: bool
|
|
116
|
+
path: str
|
|
117
|
+
scope: str
|
|
118
|
+
interface: SkillInterface | None = None
|
|
119
|
+
short_description: str | None = None
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class SkillsListEntry(AppServerResultModel):
|
|
123
|
+
cwd: str
|
|
124
|
+
skills: list[SkillInfo]
|
|
125
|
+
errors: list[protocol.SkillErrorInfo] = Field(default_factory=list)
|
|
126
|
+
|
|
127
|
+
|
|
101
128
|
class SkillsListResult(AppServerResultModel):
|
|
102
|
-
data: list[
|
|
129
|
+
data: list[SkillsListEntry]
|
|
103
130
|
|
|
104
131
|
|
|
105
132
|
class SkillsConfigWriteResult(AppServerResultModel):
|
|
@@ -181,10 +208,12 @@ class ConfigWriteResult(AppServerResultModel):
|
|
|
181
208
|
|
|
182
209
|
class ConfigRequirements(AppServerResultModel):
|
|
183
210
|
allowed_approval_policies: list[protocol.AskForApproval] | None = None
|
|
211
|
+
allowed_approvals_reviewers: list[protocol.ApprovalsReviewer] | None = None
|
|
184
212
|
allowed_sandbox_modes: list[protocol.SandboxMode] | None = None
|
|
185
|
-
allowed_web_search_modes: list[
|
|
186
|
-
enforce_residency:
|
|
187
|
-
feature_requirements: dict[str,
|
|
213
|
+
allowed_web_search_modes: list[protocol.WebSearchMode] | None = None
|
|
214
|
+
enforce_residency: protocol.ResidencyRequirement | None = None
|
|
215
|
+
feature_requirements: dict[str, object] | None = None
|
|
216
|
+
network: protocol.NetworkRequirements | None = None
|
|
188
217
|
|
|
189
218
|
|
|
190
219
|
class ConfigRequirementsReadResult(AppServerResultModel):
|
|
@@ -189,6 +189,10 @@ class AppServerTurnOptions(_AppServerOptionsModel):
|
|
|
189
189
|
default=None,
|
|
190
190
|
description="Sent as turn/start approvalPolicy.",
|
|
191
191
|
)
|
|
192
|
+
approvals_reviewer: protocol.ApprovalsReviewer | None = Field(
|
|
193
|
+
default=None,
|
|
194
|
+
description="Sent as turn/start approvalsReviewer.",
|
|
195
|
+
)
|
|
192
196
|
collaboration_mode: protocol.CollaborationMode | None = Field(
|
|
193
197
|
default=None,
|
|
194
198
|
description="Sent as turn/start collaborationMode.",
|
|
@@ -216,6 +220,10 @@ class AppServerTurnOptions(_AppServerOptionsModel):
|
|
|
216
220
|
default=None,
|
|
217
221
|
description="Sent as turn/start personality.",
|
|
218
222
|
)
|
|
223
|
+
responsesapi_client_metadata: dict[str, object] | None = Field(
|
|
224
|
+
default=None,
|
|
225
|
+
description="Sent as turn/start responsesapiClientMetadata.",
|
|
226
|
+
)
|
|
219
227
|
sandbox_policy: protocol.SandboxPolicy | None = Field(
|
|
220
228
|
default=None,
|
|
221
229
|
description="Sent as turn/start sandboxPolicy.",
|
|
@@ -249,6 +257,10 @@ class AppServerThreadStartOptions(_AppServerOptionsModel):
|
|
|
249
257
|
default=None,
|
|
250
258
|
description="Sent as thread/start approvalPolicy.",
|
|
251
259
|
)
|
|
260
|
+
approvals_reviewer: protocol.ApprovalsReviewer | None = Field(
|
|
261
|
+
default=None,
|
|
262
|
+
description="Sent as thread/start approvalsReviewer.",
|
|
263
|
+
)
|
|
252
264
|
base_instructions: str | None = Field(
|
|
253
265
|
default=None,
|
|
254
266
|
description="Sent as thread/start baseInstructions.",
|
|
@@ -321,6 +333,10 @@ class AppServerThreadStartOptions(_AppServerOptionsModel):
|
|
|
321
333
|
default=None,
|
|
322
334
|
description="Sent as thread/start serviceTier.",
|
|
323
335
|
)
|
|
336
|
+
session_start_source: protocol.ThreadStartSource | None = Field(
|
|
337
|
+
default=None,
|
|
338
|
+
description="Sent as thread/start sessionStartSource.",
|
|
339
|
+
)
|
|
324
340
|
|
|
325
341
|
def to_params(self) -> protocol.ThreadStartParams:
|
|
326
342
|
return cast(
|
|
@@ -336,6 +352,10 @@ class AppServerThreadResumeOptions(_AppServerOptionsModel):
|
|
|
336
352
|
default=None,
|
|
337
353
|
description="Sent as thread/resume approvalPolicy.",
|
|
338
354
|
)
|
|
355
|
+
approvals_reviewer: protocol.ApprovalsReviewer | None = Field(
|
|
356
|
+
default=None,
|
|
357
|
+
description="Sent as thread/resume approvalsReviewer.",
|
|
358
|
+
)
|
|
339
359
|
base_instructions: str | None = Field(
|
|
340
360
|
default=None,
|
|
341
361
|
description="Sent as thread/resume baseInstructions.",
|
|
@@ -404,6 +424,10 @@ class AppServerThreadForkOptions(_AppServerOptionsModel):
|
|
|
404
424
|
default=None,
|
|
405
425
|
description="Sent as thread/fork approvalPolicy.",
|
|
406
426
|
)
|
|
427
|
+
approvals_reviewer: protocol.ApprovalsReviewer | None = Field(
|
|
428
|
+
default=None,
|
|
429
|
+
description="Sent as thread/fork approvalsReviewer.",
|
|
430
|
+
)
|
|
407
431
|
base_instructions: str | None = Field(
|
|
408
432
|
default=None,
|
|
409
433
|
description="Sent as thread/fork baseInstructions.",
|
|
@@ -420,6 +444,10 @@ class AppServerThreadForkOptions(_AppServerOptionsModel):
|
|
|
420
444
|
default=None,
|
|
421
445
|
description="Sent as thread/fork developerInstructions.",
|
|
422
446
|
)
|
|
447
|
+
ephemeral: bool | None = Field(
|
|
448
|
+
default=None,
|
|
449
|
+
description="Sent as thread/fork ephemeral.",
|
|
450
|
+
)
|
|
423
451
|
model: str | None = Field(
|
|
424
452
|
default=None,
|
|
425
453
|
description="Sent as thread/fork model.",
|
|
@@ -491,6 +519,10 @@ class AppServerThreadListOptions(_AppServerOptionsModel):
|
|
|
491
519
|
default=None,
|
|
492
520
|
description="Sent as thread/list sortKey.",
|
|
493
521
|
)
|
|
522
|
+
sort_direction: protocol.SortDirection | None = Field(
|
|
523
|
+
default=None,
|
|
524
|
+
description="Sent as thread/list sortDirection.",
|
|
525
|
+
)
|
|
494
526
|
source_kinds: list[protocol.ThreadSourceKind] | None = Field(
|
|
495
527
|
default=None,
|
|
496
528
|
description="Sent as thread/list sourceKinds.",
|