mirror of
https://github.com/openai/codex.git
synced 2026-05-22 20:14:17 +00:00
Compare commits
141 Commits
rust-v0.11
...
cconger/v8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
131ecf8840 | ||
|
|
a8b23627a0 | ||
|
|
9ef9d5d5f5 | ||
|
|
e268210ea5 | ||
|
|
e1ce599001 | ||
|
|
23ede7ee13 | ||
|
|
c91fc32b4a | ||
|
|
70ead086a7 | ||
|
|
3463b323e1 | ||
|
|
7ec408fa32 | ||
|
|
014e19510d | ||
|
|
914f7c7317 | ||
|
|
d58620c852 | ||
|
|
50558e6507 | ||
|
|
3aabce9e0a | ||
|
|
9dba7337f2 | ||
|
|
8567e3a5c7 | ||
|
|
9f2da5a9ce | ||
|
|
59b588b8ec | ||
|
|
958f93f899 | ||
|
|
6b3d82daca | ||
|
|
9c9867c9fa | ||
|
|
8e89e9eded | ||
|
|
c7e847aaeb | ||
|
|
2253a9d1d7 | ||
|
|
eaf81d3f6f | ||
|
|
0c60eea4a5 | ||
|
|
7c7e267501 | ||
|
|
3e8f47169e | ||
|
|
650beb177e | ||
|
|
0daffe667a | ||
|
|
1a363d5fcf | ||
|
|
f194d4b115 | ||
|
|
7626f61274 | ||
|
|
6912da84a8 | ||
|
|
d9a403a8c0 | ||
|
|
793bf32585 | ||
|
|
76d8d174b1 | ||
|
|
1ea69e8d50 | ||
|
|
b7dba72dbd | ||
|
|
d32820ab07 | ||
|
|
53d5972226 | ||
|
|
651717323c | ||
|
|
a2546d5dff | ||
|
|
b560494c9f | ||
|
|
a314c7d3ae | ||
|
|
bc48b9289a | ||
|
|
04e14bdf23 | ||
|
|
11812383c5 | ||
|
|
dadffd27d4 | ||
|
|
a5a4899d0c | ||
|
|
f35d46002a | ||
|
|
09ba6b47ae | ||
|
|
d3e6680531 | ||
|
|
4724a2e9e7 | ||
|
|
25e301ed98 | ||
|
|
d1b03f0d7f | ||
|
|
3e96c867fe | ||
|
|
fa26597689 | ||
|
|
4fa7d6f444 | ||
|
|
cfe3f6821a | ||
|
|
774965f1e8 | ||
|
|
4e99c0f179 | ||
|
|
c0528b9bd9 | ||
|
|
09aa71adb7 | ||
|
|
a30b807efe | ||
|
|
ff6764e808 | ||
|
|
2f03b1a322 | ||
|
|
0c8a36676a | ||
|
|
7f2ca502f5 | ||
|
|
745ed4e5e0 | ||
|
|
23e55d7668 | ||
|
|
19d0949aab | ||
|
|
e99e8e4a6b | ||
|
|
04892b4ceb | ||
|
|
b5f927b973 | ||
|
|
f6c6128fc7 | ||
|
|
367a8a2210 | ||
|
|
ba5b94287e | ||
|
|
917c2df201 | ||
|
|
5bc82c5b93 | ||
|
|
bf5e997b31 | ||
|
|
c2d5458d67 | ||
|
|
c1ea3f95d1 | ||
|
|
f276325cdc | ||
|
|
77b0c75267 | ||
|
|
72631755e0 | ||
|
|
f50e88db82 | ||
|
|
8791f0ab9a | ||
|
|
f548309797 | ||
|
|
5a89660ae4 | ||
|
|
5259e5e236 | ||
|
|
f5bb338fdb | ||
|
|
c32c445f1c | ||
|
|
52a3bde6cc | ||
|
|
8f8a0f55ce | ||
|
|
65b325159d | ||
|
|
7b2cee53db | ||
|
|
fa1242c83b | ||
|
|
548583198a | ||
|
|
7f22329389 | ||
|
|
fd4a673525 | ||
|
|
f385199cc0 | ||
|
|
180a5820fc | ||
|
|
12ee9eb6e0 | ||
|
|
a4d884c767 | ||
|
|
39c1bc1c68 | ||
|
|
31bf1dbe63 | ||
|
|
01792a4c61 | ||
|
|
da74da6684 | ||
|
|
c8446d7cf3 | ||
|
|
285b3a5143 | ||
|
|
8a099b3dfb | ||
|
|
e77b2fd925 | ||
|
|
9b5078d3e8 | ||
|
|
c1a424691f | ||
|
|
83b22bb612 | ||
|
|
2621ba17e3 | ||
|
|
889b4796fc | ||
|
|
8ac27b2a16 | ||
|
|
07c22d20f6 | ||
|
|
ce1d9abf11 | ||
|
|
b1dddcb76e | ||
|
|
a67660da2d | ||
|
|
3d41ff0b77 | ||
|
|
ee8f84153e | ||
|
|
d5694529ca | ||
|
|
722e8f08e1 | ||
|
|
91ca20c7c3 | ||
|
|
3d4628c9c4 | ||
|
|
d751e68f44 | ||
|
|
f2d66fadd8 | ||
|
|
b7f8e9195a | ||
|
|
3b1c78a5c5 | ||
|
|
4ac6042850 | ||
|
|
c4d35084f5 | ||
|
|
52a7f4b68b | ||
|
|
00ea8aa7ee | ||
|
|
f9cba5cb16 | ||
|
|
026cfde023 | ||
|
|
7144f84c69 |
4
.bazelrc
4
.bazelrc
@@ -56,3 +56,7 @@ common --jobs=30
|
||||
common:remote --extra_execution_platforms=//:rbe
|
||||
common:remote --remote_executor=grpcs://remote.buildbuddy.io
|
||||
common:remote --jobs=800
|
||||
# TODO(team): Evaluate if this actually helps, zbarsky is not sure, everything seems bottlenecked on `core` either way.
|
||||
# Enable pipelined compilation since we are not bound by local CPU count.
|
||||
#common:remote --@rules_rust//rust/settings:pipelined_compilation
|
||||
|
||||
|
||||
8
.github/blob-size-allowlist.txt
vendored
Normal file
8
.github/blob-size-allowlist.txt
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Paths are matched exactly, relative to the repository root.
|
||||
# Keep this list short and limited to intentional large checked-in assets.
|
||||
|
||||
.github/codex-cli-splash.png
|
||||
MODULE.bazel.lock
|
||||
codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json
|
||||
codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json
|
||||
codex-rs/tui/tests/fixtures/oss-story.jsonl
|
||||
641
.github/scripts/rusty_v8_bazel.py
vendored
Normal file
641
.github/scripts/rusty_v8_bazel.py
vendored
Normal file
@@ -0,0 +1,641 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import gzip
|
||||
import hashlib
|
||||
import os
|
||||
import re
|
||||
import shlex
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tarfile
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
MODULE_BAZEL = ROOT / "MODULE.bazel"
|
||||
RUNTIME_LIB_FILENAMES = {
|
||||
"libcxx": "liblibcxx.static.a",
|
||||
"libcxxabi": "liblibcxxabi.static.a",
|
||||
"libunwind": "liblibunwind.static.a",
|
||||
}
|
||||
RUNTIME_LIB_LABELS = {
|
||||
"libcxx": "@llvm//runtimes/libcxx:libcxx.static",
|
||||
"libcxxabi": "@llvm//runtimes/libcxx:libcxxabi.static",
|
||||
"libunwind": "@llvm//runtimes/libunwind:libunwind.static",
|
||||
}
|
||||
VALIDATE_BUNDLE_SUPPORT_LABELS = {
|
||||
"resource_dir": "@llvm//runtimes:resource_directory",
|
||||
"crt_objects_dir": "@llvm//runtimes:crt_objects_directory_linux",
|
||||
"libcxx_library_dir": "@llvm//runtimes/libcxx:libcxx_library_search_directory",
|
||||
"libunwind_library_dir": "@llvm//runtimes/libunwind:libunwind_library_search_directory",
|
||||
"musl_library_dir": "@llvm//runtimes/musl:musl_library_search_directory",
|
||||
"libcxx_headers_dir": "@llvm//runtimes/libcxx:libcxx_headers_include_search_directory",
|
||||
"libcxxabi_headers_dir": "@llvm//runtimes/libcxx:libcxxabi_headers_include_search_directory",
|
||||
"musl_headers_dir": "@llvm//runtimes/musl:musl_headers_include_search_directory",
|
||||
}
|
||||
COMPILER_RT_BUILTINS_LABEL = "@llvm//runtimes/compiler-rt:clang_rt.builtins.static"
|
||||
COMPILER_RT_BUILTINS_FILENAME = "libclang_rt.builtins.static.a"
|
||||
V8_CACHE_KEY_INPUT_PATTERNS = [
|
||||
".bazelrc",
|
||||
".bazelversion",
|
||||
".github/workflows/ci.bazelrc",
|
||||
".github/scripts/rusty_v8_bazel.py",
|
||||
"MODULE.bazel",
|
||||
"MODULE.bazel.lock",
|
||||
"patches/**",
|
||||
"third_party/v8/**",
|
||||
]
|
||||
|
||||
|
||||
def parse_v8_crate_version() -> str:
|
||||
text = MODULE_BAZEL.read_text()
|
||||
match = re.search(
|
||||
r"https://static\.crates\.io/crates/v8/v8-([0-9.]+)\.crate",
|
||||
text,
|
||||
)
|
||||
if match is None:
|
||||
raise SystemExit("could not determine v8 crate version from MODULE.bazel")
|
||||
return match.group(1)
|
||||
|
||||
|
||||
def v8_cache_key_inputs() -> list[Path]:
|
||||
paths: set[Path] = set()
|
||||
for pattern in V8_CACHE_KEY_INPUT_PATTERNS:
|
||||
for path in ROOT.glob(pattern):
|
||||
if path.is_file():
|
||||
paths.add(path)
|
||||
if not paths:
|
||||
raise SystemExit("could not find any inputs for V8 cache key")
|
||||
return sorted(paths, key=lambda path: path.relative_to(ROOT).as_posix())
|
||||
|
||||
|
||||
def print_cache_key() -> None:
|
||||
hasher = hashlib.sha256()
|
||||
for path in v8_cache_key_inputs():
|
||||
relpath = path.relative_to(ROOT).as_posix()
|
||||
hasher.update(relpath.encode("utf-8"))
|
||||
hasher.update(b"\0")
|
||||
hasher.update(path.read_bytes())
|
||||
hasher.update(b"\0")
|
||||
print(hasher.hexdigest())
|
||||
|
||||
|
||||
def bazel_execroot() -> Path:
|
||||
result = subprocess.run(
|
||||
["bazel", "info", "execution_root"],
|
||||
cwd=ROOT,
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
return Path(result.stdout.strip())
|
||||
|
||||
|
||||
def bazel_cache_root() -> Path:
|
||||
return bazel_execroot().parents[1]
|
||||
|
||||
|
||||
def bazel_output_files(platform: str, labels: list[str]) -> list[Path]:
|
||||
expression = "set(" + " ".join(labels) + ")"
|
||||
result = subprocess.run(
|
||||
[
|
||||
"bazel",
|
||||
"cquery",
|
||||
f"--platforms=@llvm//platforms:{platform}",
|
||||
"--output=files",
|
||||
expression,
|
||||
],
|
||||
cwd=ROOT,
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
execroot = bazel_execroot()
|
||||
return [execroot / line.strip() for line in result.stdout.splitlines() if line.strip()]
|
||||
|
||||
|
||||
def first_existing_path(paths: list[Path], description: str) -> Path:
|
||||
for path in paths:
|
||||
if path.exists():
|
||||
return path
|
||||
raise SystemExit(f"could not find {description}")
|
||||
|
||||
|
||||
def find_single_path(pattern: str, description: str) -> Path:
|
||||
matches = sorted(bazel_cache_root().glob(pattern))
|
||||
if not matches:
|
||||
raise SystemExit(f"could not find {description}")
|
||||
return matches[-1]
|
||||
|
||||
|
||||
def bazel_output_path(platform: str, label: str, description: str) -> Path:
|
||||
return first_existing_path(
|
||||
bazel_output_files(platform, [label]),
|
||||
description,
|
||||
)
|
||||
|
||||
|
||||
def toolchain_dir() -> Path:
|
||||
return find_single_path(
|
||||
"external/llvm++http_archive+llvm-toolchain-minimal-*",
|
||||
"llvm toolchain dir",
|
||||
)
|
||||
|
||||
|
||||
def kernel_headers_dir(target: str) -> Path:
|
||||
arch = target.split("-", 1)[0]
|
||||
arch_patterns = {
|
||||
"x86_64": ["*linux_kernel_headers_x86.*"],
|
||||
"aarch64": ["*linux_kernel_headers_arm64.*", "*linux_kernel_headers_aarch64.*"],
|
||||
}.get(arch, [f"*linux_kernel_headers_{arch}.*"])
|
||||
for pattern in arch_patterns:
|
||||
matches = sorted((bazel_cache_root() / "external").glob(pattern))
|
||||
if matches:
|
||||
return matches[-1] / "include"
|
||||
raise SystemExit(f"could not find kernel headers dir for {target}")
|
||||
|
||||
|
||||
def static_runtime_libs(platform: str) -> tuple[Path, Path, Path]:
|
||||
outputs = bazel_output_files(platform, list(RUNTIME_LIB_LABELS.values()))
|
||||
return (
|
||||
first_existing_path(
|
||||
[path for path in outputs if path.name == RUNTIME_LIB_FILENAMES["libcxx"]],
|
||||
"libcxx static archive",
|
||||
),
|
||||
first_existing_path(
|
||||
[path for path in outputs if path.name == RUNTIME_LIB_FILENAMES["libcxxabi"]],
|
||||
"libcxxabi static archive",
|
||||
),
|
||||
first_existing_path(
|
||||
[path for path in outputs if path.name == RUNTIME_LIB_FILENAMES["libunwind"]],
|
||||
"libunwind static archive",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def compiler_rt_builtins(platform: str) -> Path:
|
||||
return first_existing_path(
|
||||
[
|
||||
path
|
||||
for path in bazel_output_files(platform, [COMPILER_RT_BUILTINS_LABEL])
|
||||
if path.name == COMPILER_RT_BUILTINS_FILENAME
|
||||
],
|
||||
"compiler-rt builtins static archive",
|
||||
)
|
||||
|
||||
|
||||
def validate_bundle_support_paths(platform: str) -> dict[str, Path]:
|
||||
return {
|
||||
key: bazel_output_path(platform, label, f"{key} output")
|
||||
for key, label in VALIDATE_BUNDLE_SUPPORT_LABELS.items()
|
||||
}
|
||||
|
||||
|
||||
def v8_crate_dir() -> Path:
|
||||
version_suffix = parse_v8_crate_version().replace(".", "_")
|
||||
path = bazel_cache_root() / "external" / f"+http_archive+v8_crate_{version_suffix}"
|
||||
return first_existing_path([path], "v8 crate dir")
|
||||
|
||||
|
||||
def cargo_runtime_rustflags_from_libs(
|
||||
libcxx_static: Path,
|
||||
libcxxabi_static: Path,
|
||||
libunwind_static: Path,
|
||||
compiler_rt_builtins_static: Path | None = None,
|
||||
) -> str:
|
||||
flags = [
|
||||
f"-C link-arg={libcxx_static}",
|
||||
f"-C link-arg={libcxxabi_static}",
|
||||
f"-C link-arg={libunwind_static}",
|
||||
]
|
||||
if compiler_rt_builtins_static is not None:
|
||||
flags.append(f"-C link-arg={compiler_rt_builtins_static}")
|
||||
flags.extend(
|
||||
[
|
||||
"-C link-arg=-lc",
|
||||
"-C link-arg=-lpthread",
|
||||
"-C link-arg=-ldl",
|
||||
]
|
||||
)
|
||||
return " ".join(flags)
|
||||
|
||||
|
||||
def cargo_runtime_rustflags(platform: str) -> str:
|
||||
return cargo_runtime_rustflags_from_libs(
|
||||
*static_runtime_libs(platform),
|
||||
compiler_rt_builtins(platform),
|
||||
)
|
||||
|
||||
|
||||
def cargo_target_rustflags_env_var(target: str) -> str:
|
||||
return f"CARGO_TARGET_{target.upper().replace('-', '_')}_RUSTFLAGS"
|
||||
|
||||
|
||||
def append_flag_string(existing: str | None, extra: str) -> str:
|
||||
if existing:
|
||||
return f"{existing} {extra}"
|
||||
return extra
|
||||
|
||||
|
||||
def staged_cargo_inputs(output_dir: Path, target: str) -> tuple[Path, Path]:
|
||||
archive = output_dir / f"librusty_v8_release_{target}.a.gz"
|
||||
binding = output_dir / f"src_binding_release_{target}.rs"
|
||||
return (
|
||||
first_existing_path([archive], f"staged V8 archive for {target}"),
|
||||
first_existing_path([binding], f"staged V8 binding for {target}"),
|
||||
)
|
||||
|
||||
|
||||
def runtime_output_dir(output_dir: Path) -> Path:
|
||||
return output_dir / "runtime"
|
||||
|
||||
|
||||
def staged_runtime_libs(output_dir: Path) -> tuple[Path, Path, Path]:
|
||||
runtime_dir = runtime_output_dir(output_dir)
|
||||
return (
|
||||
first_existing_path(
|
||||
[runtime_dir / RUNTIME_LIB_FILENAMES["libcxx"]],
|
||||
"staged libcxx static archive",
|
||||
),
|
||||
first_existing_path(
|
||||
[runtime_dir / RUNTIME_LIB_FILENAMES["libcxxabi"]],
|
||||
"staged libcxxabi static archive",
|
||||
),
|
||||
first_existing_path(
|
||||
[runtime_dir / RUNTIME_LIB_FILENAMES["libunwind"]],
|
||||
"staged libunwind static archive",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def staged_compiler_rt_builtins(output_dir: Path) -> Path:
|
||||
runtime_dir = runtime_output_dir(output_dir)
|
||||
return first_existing_path(
|
||||
[runtime_dir / COMPILER_RT_BUILTINS_FILENAME],
|
||||
"staged compiler-rt builtins static archive",
|
||||
)
|
||||
|
||||
|
||||
def print_cargo_env(platform: str, target: str, output_dir: Path) -> None:
|
||||
archive, binding = staged_cargo_inputs(output_dir, target)
|
||||
target_rustflags_var = cargo_target_rustflags_env_var(target)
|
||||
runtime_libs = tuple(path.resolve() for path in staged_runtime_libs(output_dir))
|
||||
cargo_rustflags = cargo_runtime_rustflags_from_libs(
|
||||
*runtime_libs,
|
||||
staged_compiler_rt_builtins(output_dir).resolve(),
|
||||
)
|
||||
|
||||
print(f"export RUSTY_V8_ARCHIVE={shlex.quote(str(archive.resolve()))}")
|
||||
print(f"export RUSTY_V8_SRC_BINDING_PATH={shlex.quote(str(binding.resolve()))}")
|
||||
print(f"export CODEX_V8_RUSTFLAGS={shlex.quote(cargo_rustflags)}")
|
||||
print(
|
||||
f'export {target_rustflags_var}="${{{target_rustflags_var}:+${target_rustflags_var} }}$CODEX_V8_RUSTFLAGS"'
|
||||
)
|
||||
|
||||
|
||||
def write_cargo_smoke_project(project_dir: Path, crate_dir: Path) -> None:
|
||||
project_dir.mkdir(parents=True, exist_ok=True)
|
||||
(project_dir / "src").mkdir(exist_ok=True)
|
||||
(project_dir / "Cargo.toml").write_text(
|
||||
f"""[package]
|
||||
name = "cargo_v8_smoke"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
v8 = {{ path = "{crate_dir.as_posix()}" }}
|
||||
"""
|
||||
)
|
||||
(project_dir / "src/main.rs").write_text(
|
||||
"""fn main() {
|
||||
let platform = v8::new_default_platform(0, false).make_shared();
|
||||
v8::V8::initialize_platform(platform);
|
||||
v8::V8::initialize();
|
||||
|
||||
{
|
||||
let isolate = &mut v8::Isolate::new(v8::CreateParams::default());
|
||||
v8::scope!(let handle_scope, isolate);
|
||||
let context = v8::Context::new(handle_scope, Default::default());
|
||||
let scope = &mut v8::ContextScope::new(handle_scope, context);
|
||||
let code = v8::String::new(scope, "1 + 2").unwrap();
|
||||
let script = v8::Script::compile(scope, code, None).unwrap();
|
||||
let result = script.run(scope).unwrap();
|
||||
let value = result.integer_value(scope).unwrap();
|
||||
assert_eq!(value, 3);
|
||||
println!("{value}");
|
||||
}
|
||||
|
||||
unsafe {
|
||||
v8::V8::dispose();
|
||||
}
|
||||
v8::V8::dispose_platform();
|
||||
}
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def add_regular_file_to_tar(
|
||||
tar: tarfile.TarFile,
|
||||
*,
|
||||
source: Path,
|
||||
arcname: str,
|
||||
) -> None:
|
||||
info = tar.gettarinfo(str(source), arcname=arcname)
|
||||
info.uid = 0
|
||||
info.gid = 0
|
||||
info.uname = ""
|
||||
info.gname = ""
|
||||
info.mtime = 0
|
||||
with source.open("rb") as src:
|
||||
tar.addfile(info, src)
|
||||
|
||||
|
||||
def write_bundle_archive(
|
||||
*,
|
||||
output_path: Path,
|
||||
target: str,
|
||||
lib_path: Path,
|
||||
binding_path: Path,
|
||||
include_root: Path,
|
||||
runtime_libs: tuple[Path, Path, Path],
|
||||
) -> None:
|
||||
bundle_root = f"rusty_v8_{target}"
|
||||
|
||||
with output_path.open("wb") as dst:
|
||||
with gzip.GzipFile(
|
||||
filename="",
|
||||
mode="wb",
|
||||
fileobj=dst,
|
||||
compresslevel=9,
|
||||
mtime=0,
|
||||
) as gz:
|
||||
with tarfile.open(
|
||||
fileobj=gz,
|
||||
mode="w",
|
||||
format=tarfile.PAX_FORMAT,
|
||||
) as tar:
|
||||
add_regular_file_to_tar(
|
||||
tar,
|
||||
source=lib_path,
|
||||
arcname=f"{bundle_root}/lib/librusty_v8.a",
|
||||
)
|
||||
add_regular_file_to_tar(
|
||||
tar,
|
||||
source=binding_path,
|
||||
arcname=f"{bundle_root}/src_binding_release.rs",
|
||||
)
|
||||
for runtime_lib in runtime_libs:
|
||||
add_regular_file_to_tar(
|
||||
tar,
|
||||
source=runtime_lib,
|
||||
arcname=f"{bundle_root}/runtime/{runtime_lib.name}",
|
||||
)
|
||||
for header_path in sorted(include_root.rglob("*")):
|
||||
if not header_path.is_file():
|
||||
continue
|
||||
relpath = header_path.relative_to(include_root.parent)
|
||||
add_regular_file_to_tar(
|
||||
tar,
|
||||
source=header_path,
|
||||
arcname=f"{bundle_root}/{relpath.as_posix()}",
|
||||
)
|
||||
|
||||
|
||||
def validate_bundle(platform: str, target: str, bundle_path: Path) -> None:
|
||||
support_paths = validate_bundle_support_paths(platform)
|
||||
toolchain = toolchain_dir()
|
||||
kernel_headers = kernel_headers_dir(target)
|
||||
compiler_rt = bazel_cache_root() / "external/llvm++llvm_source+compiler-rt/include"
|
||||
with tempfile.TemporaryDirectory(prefix="rusty-v8-bundle-") as tmpdir:
|
||||
tmpdir_path = Path(tmpdir)
|
||||
with tarfile.open(bundle_path, "r:gz") as tar:
|
||||
tar.extractall(tmpdir_path, filter="data")
|
||||
|
||||
bundle_root = tmpdir_path / f"rusty_v8_{target}"
|
||||
libcxx_static, libcxxabi_static, libunwind_static = staged_runtime_libs(bundle_root)
|
||||
output_binary = tmpdir_path / "non_bazel_v8_smoke_test"
|
||||
|
||||
cmd = [
|
||||
str(toolchain / "bin/clang++"),
|
||||
"-target",
|
||||
target,
|
||||
"--sysroot=/dev/null",
|
||||
"-static-pie",
|
||||
"-fuse-ld=lld",
|
||||
"-rtlib=compiler-rt",
|
||||
"-nostdlib++",
|
||||
"--unwindlib=none",
|
||||
"-resource-dir",
|
||||
str(support_paths["resource_dir"]),
|
||||
"-B" + str(support_paths["crt_objects_dir"]),
|
||||
"-L" + str(support_paths["libcxx_library_dir"]),
|
||||
"-L" + str(support_paths["libunwind_library_dir"]),
|
||||
"-L" + str(support_paths["musl_library_dir"]),
|
||||
"-nostdlibinc",
|
||||
"-isystem",
|
||||
str(support_paths["libcxx_headers_dir"]),
|
||||
"-isystem",
|
||||
str(support_paths["libcxxabi_headers_dir"]),
|
||||
"-isystem",
|
||||
str(kernel_headers),
|
||||
"-isystem",
|
||||
str(support_paths["musl_headers_dir"]),
|
||||
"-isystem",
|
||||
str(compiler_rt),
|
||||
"-Xclang",
|
||||
"-internal-isystem",
|
||||
"-Xclang",
|
||||
str(toolchain / "lib/clang/22/include"),
|
||||
"-std=c++20",
|
||||
"-I" + str(bundle_root / "include"),
|
||||
"-Wl,-no-as-needed",
|
||||
"-Wl,-z,relro,-z,now",
|
||||
"-Wl,--push-state",
|
||||
"-Wl,--as-needed",
|
||||
"-lpthread",
|
||||
"-ldl",
|
||||
"-Wl,--pop-state",
|
||||
str(ROOT / "third_party/v8/smoke_test.cc"),
|
||||
str(bundle_root / "lib/librusty_v8.a"),
|
||||
str(libcxx_static),
|
||||
str(libcxxabi_static),
|
||||
str(libunwind_static),
|
||||
"-Wl,-S",
|
||||
"-Wl,-soname,non_bazel_v8_smoke_test",
|
||||
"-Wl,--no-as-needed",
|
||||
"-ldl",
|
||||
"-pthread",
|
||||
"-o",
|
||||
str(output_binary),
|
||||
]
|
||||
subprocess.run(cmd, cwd=ROOT, check=True)
|
||||
subprocess.run([str(output_binary)], cwd=ROOT, check=True)
|
||||
print(output_binary)
|
||||
|
||||
|
||||
def validate_cargo_bundle(platform: str, target: str, bundle_path: Path) -> None:
|
||||
crate_dir = v8_crate_dir()
|
||||
target_rustflags_var = cargo_target_rustflags_env_var(target)
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix="rusty-v8-cargo-") as tmpdir:
|
||||
tmpdir_path = Path(tmpdir)
|
||||
with tarfile.open(bundle_path, "r:gz") as tar:
|
||||
tar.extractall(tmpdir_path, filter="data")
|
||||
|
||||
bundle_root = tmpdir_path / f"rusty_v8_{target}"
|
||||
project_dir = tmpdir_path / "cargo_smoke"
|
||||
write_cargo_smoke_project(project_dir, crate_dir)
|
||||
|
||||
env = os.environ.copy()
|
||||
env["RUSTY_V8_ARCHIVE"] = str(bundle_root / "lib/librusty_v8.a")
|
||||
env["RUSTY_V8_SRC_BINDING_PATH"] = str(bundle_root / "src_binding_release.rs")
|
||||
bundle_runtime_rustflags = cargo_runtime_rustflags_from_libs(
|
||||
*staged_runtime_libs(bundle_root),
|
||||
staged_compiler_rt_builtins(bundle_root),
|
||||
)
|
||||
env[target_rustflags_var] = append_flag_string(
|
||||
env.get(target_rustflags_var),
|
||||
bundle_runtime_rustflags,
|
||||
)
|
||||
subprocess.run(
|
||||
["cargo", "run", "--target", target],
|
||||
cwd=project_dir,
|
||||
env=env,
|
||||
check=True,
|
||||
)
|
||||
print(project_dir / "target" / target / "debug" / "cargo_v8_smoke")
|
||||
|
||||
|
||||
def stage_release_assets(platform: str, target: str, output_dir: Path) -> None:
|
||||
target_suffix = target.replace("-", "_")
|
||||
version_suffix = parse_v8_crate_version().replace(".", "_")
|
||||
lib_label = f"//third_party/v8:v8_{version_suffix}_{target_suffix}"
|
||||
binding_label = f"//third_party/v8:src_binding_release_{target_suffix}"
|
||||
|
||||
outputs = bazel_output_files(platform, [lib_label, binding_label])
|
||||
try:
|
||||
lib_path = next(path for path in outputs if path.suffix == ".a")
|
||||
except StopIteration as exc:
|
||||
raise SystemExit(f"missing static archive output for {target}") from exc
|
||||
try:
|
||||
binding_path = next(path for path in outputs if path.suffix == ".rs")
|
||||
except StopIteration as exc:
|
||||
raise SystemExit(f"missing binding output for {target}") from exc
|
||||
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
archive_name = f"librusty_v8_release_{target}.a.gz"
|
||||
binding_name = f"src_binding_release_{target}.rs"
|
||||
bundle_name = f"rusty_v8_bundle_{target}.tar.gz"
|
||||
runtime_dir = runtime_output_dir(output_dir)
|
||||
runtime_dir.mkdir(exist_ok=True)
|
||||
|
||||
with lib_path.open("rb") as src, (output_dir / archive_name).open("wb") as dst:
|
||||
with gzip.GzipFile(
|
||||
filename="",
|
||||
mode="wb",
|
||||
fileobj=dst,
|
||||
compresslevel=9,
|
||||
mtime=0,
|
||||
) as gz:
|
||||
shutil.copyfileobj(src, gz)
|
||||
|
||||
shutil.copyfile(binding_path, output_dir / binding_name)
|
||||
staged_runtime_paths = []
|
||||
for runtime_lib in static_runtime_libs(platform):
|
||||
staged_runtime_path = runtime_dir / runtime_lib.name
|
||||
shutil.copyfile(runtime_lib, staged_runtime_path)
|
||||
staged_runtime_paths.append(staged_runtime_path)
|
||||
builtins_path = compiler_rt_builtins(platform)
|
||||
staged_builtins_path = runtime_dir / builtins_path.name
|
||||
shutil.copyfile(builtins_path, staged_builtins_path)
|
||||
staged_runtime_paths.append(staged_builtins_path)
|
||||
write_bundle_archive(
|
||||
output_path=output_dir / bundle_name,
|
||||
target=target,
|
||||
lib_path=lib_path,
|
||||
binding_path=binding_path,
|
||||
include_root=bazel_execroot() / "external" / "v8+" / "include",
|
||||
runtime_libs=tuple(staged_runtime_paths),
|
||||
)
|
||||
|
||||
print(output_dir / archive_name)
|
||||
print(output_dir / binding_name)
|
||||
print(output_dir / bundle_name)
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
subparsers.add_parser("print-version")
|
||||
subparsers.add_parser("print-cache-key")
|
||||
|
||||
stage_parser = subparsers.add_parser("stage")
|
||||
stage_parser.add_argument("--platform", required=True)
|
||||
stage_parser.add_argument("--target", required=True)
|
||||
stage_parser.add_argument("--output-dir", required=True)
|
||||
|
||||
validate_parser = subparsers.add_parser("validate-bundle")
|
||||
validate_parser.add_argument("--platform", required=True)
|
||||
validate_parser.add_argument("--target", required=True)
|
||||
validate_parser.add_argument("--bundle-path", required=True)
|
||||
|
||||
cargo_validate_parser = subparsers.add_parser("validate-cargo")
|
||||
cargo_validate_parser.add_argument("--platform", required=True)
|
||||
cargo_validate_parser.add_argument("--target", required=True)
|
||||
cargo_validate_parser.add_argument("--bundle-path", required=True)
|
||||
|
||||
print_env_parser = subparsers.add_parser("print-cargo-env")
|
||||
print_env_parser.add_argument("--platform", required=True)
|
||||
print_env_parser.add_argument("--target", required=True)
|
||||
print_env_parser.add_argument("--output-dir", required=True)
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
if args.command == "print-version":
|
||||
print(parse_v8_crate_version())
|
||||
return 0
|
||||
if args.command == "print-cache-key":
|
||||
print_cache_key()
|
||||
return 0
|
||||
if args.command == "stage":
|
||||
stage_release_assets(
|
||||
platform=args.platform,
|
||||
target=args.target,
|
||||
output_dir=Path(args.output_dir),
|
||||
)
|
||||
return 0
|
||||
if args.command == "validate-bundle":
|
||||
validate_bundle(
|
||||
platform=args.platform,
|
||||
target=args.target,
|
||||
bundle_path=Path(args.bundle_path),
|
||||
)
|
||||
return 0
|
||||
if args.command == "validate-cargo":
|
||||
validate_cargo_bundle(
|
||||
platform=args.platform,
|
||||
target=args.target,
|
||||
bundle_path=Path(args.bundle_path),
|
||||
)
|
||||
return 0
|
||||
if args.command == "print-cargo-env":
|
||||
print_cargo_env(
|
||||
platform=args.platform,
|
||||
target=args.target,
|
||||
output_dir=Path(args.output_dir),
|
||||
)
|
||||
return 0
|
||||
raise SystemExit(f"unsupported command: {args.command}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
29
.github/workflows/blob-size-policy.yml
vendored
Normal file
29
.github/workflows/blob-size-policy.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: blob-size-policy
|
||||
|
||||
on:
|
||||
pull_request: {}
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Blob size policy
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Determine PR comparison range
|
||||
id: range
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
echo "base=$(git rev-parse HEAD^1)" >> "$GITHUB_OUTPUT"
|
||||
echo "head=$(git rev-parse HEAD^2)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Check changed blob sizes
|
||||
run: |
|
||||
python3 scripts/check_blob_size.py \
|
||||
--base "${{ steps.range.outputs.base }}" \
|
||||
--head "${{ steps.range.outputs.head }}" \
|
||||
--max-bytes 512000 \
|
||||
--allowlist .github/blob-size-allowlist.txt
|
||||
223
.github/workflows/rusty-v8-bazel-build.yml
vendored
Normal file
223
.github/workflows/rusty-v8-bazel-build.yml
vendored
Normal file
@@ -0,0 +1,223 @@
|
||||
name: rusty-v8-bazel-build
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- ".bazelrc"
|
||||
- ".bazelversion"
|
||||
- ".github/workflows/ci.bazelrc"
|
||||
- ".github/workflows/rusty-v8-bazel-build.yml"
|
||||
- ".github/scripts/rusty_v8_bazel.py"
|
||||
- "MODULE.bazel"
|
||||
- "MODULE.bazel.lock"
|
||||
- "codex-rs/v8-poc/**"
|
||||
- "patches/**"
|
||||
- "third_party/v8/**"
|
||||
- "**/*.bzl"
|
||||
- "**/BUILD"
|
||||
- "**/BUILD.bazel"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- ".bazelrc"
|
||||
- ".bazelversion"
|
||||
- ".github/workflows/ci.bazelrc"
|
||||
- ".github/workflows/rusty-v8-bazel-build.yml"
|
||||
- ".github/scripts/rusty_v8_bazel.py"
|
||||
- "MODULE.bazel"
|
||||
- "MODULE.bazel.lock"
|
||||
- "codex-rs/v8-poc/**"
|
||||
- "patches/**"
|
||||
- "third_party/v8/**"
|
||||
- "**/*.bzl"
|
||||
- "**/BUILD"
|
||||
- "**/BUILD.bazel"
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}::${{ github.ref_name }}
|
||||
cancel-in-progress: ${{ github.ref_name != 'main' }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build ${{ matrix.target }}
|
||||
runs-on: ${{ matrix.runner }}
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: ubuntu-24.04
|
||||
platform: linux_amd64_musl
|
||||
target: x86_64-unknown-linux-musl
|
||||
- runner: ubuntu-24.04-arm
|
||||
platform: linux_aarch64_musl
|
||||
target: aarch64-unknown-linux-musl
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Bazel
|
||||
uses: bazelbuild/setup-bazelisk@v3
|
||||
|
||||
- name: Set up Rust
|
||||
uses: dtolnay/rust-toolchain@1.93.0
|
||||
with:
|
||||
targets: ${{ matrix.target }}
|
||||
|
||||
- name: Compute V8 bundle cache key
|
||||
id: cache_key
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
echo "key=rusty-v8-bundle-v2-${{ matrix.target }}-$(python3 .github/scripts/rusty_v8_bazel.py print-cache-key)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Restore staged V8 bundle cache
|
||||
id: bundle_cache_restore
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: dist/${{ matrix.target }}
|
||||
key: ${{ steps.cache_key.outputs.key }}
|
||||
|
||||
- name: Build Bazel V8 musl artifacts
|
||||
if: ${{ steps.bundle_cache_restore.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }}
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
TARGET: ${{ matrix.target }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
version="$(python3 .github/scripts/rusty_v8_bazel.py print-version)"
|
||||
version_suffix="${version//./_}"
|
||||
target_suffix="${TARGET//-/_}"
|
||||
lib_target="//third_party/v8:v8_${version_suffix}_${target_suffix}"
|
||||
binding_target="//third_party/v8:src_binding_release_${target_suffix}"
|
||||
runtime_targets=(
|
||||
'@llvm//runtimes/libcxx:libcxx.static'
|
||||
'@llvm//runtimes/libcxx:libcxxabi.static'
|
||||
'@llvm//runtimes/libunwind:libunwind.static'
|
||||
'@llvm//runtimes/compiler-rt:clang_rt.builtins.static'
|
||||
'@llvm//runtimes:resource_directory'
|
||||
'@llvm//runtimes:crt_objects_directory_linux'
|
||||
'@llvm//runtimes/libcxx:libcxx_library_search_directory'
|
||||
'@llvm//runtimes/libunwind:libunwind_library_search_directory'
|
||||
'@llvm//runtimes/musl:musl_library_search_directory'
|
||||
'@llvm//runtimes/libcxx:libcxx_headers_include_search_directory'
|
||||
'@llvm//runtimes/libcxx:libcxxabi_headers_include_search_directory'
|
||||
'@llvm//runtimes/musl:musl_headers_include_search_directory'
|
||||
)
|
||||
|
||||
bazel_args=(
|
||||
build
|
||||
"--platforms=@llvm//platforms:${PLATFORM}"
|
||||
--remote_download_toplevel
|
||||
"${lib_target}"
|
||||
"${binding_target}"
|
||||
"${runtime_targets[@]}"
|
||||
'--remote_download_regex=.*third_party/v8/libv8_.*\.a$'
|
||||
'--remote_download_regex=.*third_party/v8/src_binding_release_.*\.rs$'
|
||||
'--remote_download_regex=.*liblibcxx\.static\.a$'
|
||||
'--remote_download_regex=.*liblibcxxabi\.static\.a$'
|
||||
'--remote_download_regex=.*liblibunwind\.static\.a$'
|
||||
'--remote_download_regex=.*libclang_rt\.builtins\.static\.a$'
|
||||
--build_metadata=REPO_URL=https://github.com/${GITHUB_REPOSITORY}.git
|
||||
--build_metadata=COMMIT_SHA=$(git rev-parse HEAD)
|
||||
--build_metadata=ROLE=CI
|
||||
--build_metadata=VISIBILITY=PUBLIC
|
||||
)
|
||||
|
||||
if [[ -n "${BUILDBUDDY_API_KEY:-}" ]]; then
|
||||
bazel \
|
||||
--noexperimental_remote_repo_contents_cache \
|
||||
--bazelrc=.github/workflows/ci.bazelrc \
|
||||
"${bazel_args[@]}" \
|
||||
"--remote_header=x-buildbuddy-api-key=${BUILDBUDDY_API_KEY}"
|
||||
else
|
||||
bazel \
|
||||
--noexperimental_remote_repo_contents_cache \
|
||||
"${bazel_args[@]}" \
|
||||
--remote_cache= \
|
||||
--remote_executor=
|
||||
fi
|
||||
|
||||
- name: Stage rusty_v8 release assets
|
||||
if: ${{ steps.bundle_cache_restore.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
TARGET: ${{ matrix.target }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
output_dir="dist/${TARGET}"
|
||||
python3 .github/scripts/rusty_v8_bazel.py stage \
|
||||
--platform "${PLATFORM}" \
|
||||
--target "${TARGET}" \
|
||||
--output-dir "${output_dir}"
|
||||
|
||||
- name: Validate staged bundle outside Bazel
|
||||
if: ${{ steps.bundle_cache_restore.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
TARGET: ${{ matrix.target }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
python3 .github/scripts/rusty_v8_bazel.py validate-bundle \
|
||||
--platform "${PLATFORM}" \
|
||||
--target "${TARGET}" \
|
||||
--bundle-path "dist/${TARGET}/rusty_v8_bundle_${TARGET}.tar.gz"
|
||||
|
||||
- name: Validate staged bundle with Cargo
|
||||
if: ${{ steps.bundle_cache_restore.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
TARGET: ${{ matrix.target }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
python3 .github/scripts/rusty_v8_bazel.py validate-cargo \
|
||||
--platform "${PLATFORM}" \
|
||||
--target "${TARGET}" \
|
||||
--bundle-path "dist/${TARGET}/rusty_v8_bundle_${TARGET}.tar.gz"
|
||||
|
||||
- name: Save staged V8 bundle cache
|
||||
if: ${{ steps.bundle_cache_restore.outputs.cache-hit != 'true' }}
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: dist/${{ matrix.target }}
|
||||
key: ${{ steps.cache_key.outputs.key }}
|
||||
|
||||
- name: Build codex-v8-poc against staged bundle
|
||||
env:
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
TARGET: ${{ matrix.target }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
eval "$(python3 .github/scripts/rusty_v8_bazel.py print-cargo-env \
|
||||
--platform "${PLATFORM}" \
|
||||
--target "${TARGET}" \
|
||||
--output-dir "dist/${TARGET}")"
|
||||
|
||||
cargo test \
|
||||
--manifest-path codex-rs/v8-poc/Cargo.toml \
|
||||
--locked \
|
||||
--lib \
|
||||
--target "${TARGET}"
|
||||
|
||||
- name: Upload staged artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: rusty-v8-${{ matrix.target }}
|
||||
path: dist/${{ matrix.target }}/*
|
||||
4
.github/workflows/sdk.yml
vendored
4
.github/workflows/sdk.yml
vendored
@@ -7,7 +7,9 @@ on:
|
||||
|
||||
jobs:
|
||||
sdks:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on:
|
||||
group: codex-runners
|
||||
labels: codex-linux-x64
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
||||
15
AGENTS.md
15
AGENTS.md
@@ -19,7 +19,22 @@ In the codex-rs folder where the rust code lives:
|
||||
repo root to refresh `MODULE.bazel.lock`, and include that lockfile update in the same change.
|
||||
- After dependency changes, run `just bazel-lock-check` from the repo root so lockfile drift is caught
|
||||
locally before CI.
|
||||
- Bazel does not automatically make source-tree files available to compile-time Rust file access. If
|
||||
you add `include_str!`, `include_bytes!`, `sqlx::migrate!`, or similar build-time file or
|
||||
directory reads, update the crate's `BUILD.bazel` (`compile_data`, `build_script_data`, or test
|
||||
data) or Bazel may fail even when Cargo passes.
|
||||
- Do not create small helper methods that are referenced only once.
|
||||
- Avoid large modules:
|
||||
- Prefer adding new modules instead of growing existing ones.
|
||||
- Target Rust modules under 500 LoC, excluding tests.
|
||||
- If a file exceeds roughly 800 LoC, add new functionality in a new module instead of extending
|
||||
the existing file unless there is a strong documented reason not to.
|
||||
- This rule applies especially to high-touch files that already attract unrelated changes, such
|
||||
as `codex-rs/tui/src/app.rs`, `codex-rs/tui/src/bottom_pane/chat_composer.rs`,
|
||||
`codex-rs/tui/src/bottom_pane/footer.rs`, `codex-rs/tui/src/chatwidget.rs`,
|
||||
`codex-rs/tui/src/bottom_pane/mod.rs`, and similarly central orchestration modules.
|
||||
- When extracting code from a large module, move the related tests and module/type docs toward
|
||||
the new implementation so the invariants stay close to the code that owns them.
|
||||
|
||||
Run `just fmt` (in `codex-rs` directory) automatically after you have finished making Rust code changes; do not ask for approval to run it. Additionally, run the tests:
|
||||
|
||||
|
||||
267
MODULE.bazel
267
MODULE.bazel
@@ -1,14 +1,9 @@
|
||||
module(name = "codex")
|
||||
|
||||
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
bazel_dep(name = "platforms", version = "1.0.0")
|
||||
bazel_dep(name = "llvm", version = "0.6.1")
|
||||
single_version_override(
|
||||
module_name = "llvm",
|
||||
patch_strip = 1,
|
||||
patches = [
|
||||
"//patches:toolchains_llvm_bootstrapped_resource_dir.patch",
|
||||
],
|
||||
)
|
||||
bazel_dep(name = "llvm", version = "0.6.7")
|
||||
|
||||
register_toolchains("@llvm//toolchain:all")
|
||||
|
||||
@@ -39,7 +34,7 @@ use_repo(osx, "macos_sdk")
|
||||
bazel_dep(name = "apple_support", version = "2.1.0")
|
||||
bazel_dep(name = "rules_cc", version = "0.2.16")
|
||||
bazel_dep(name = "rules_platform", version = "0.1.0")
|
||||
bazel_dep(name = "rules_rs", version = "0.0.40")
|
||||
bazel_dep(name = "rules_rs", version = "0.0.43")
|
||||
|
||||
rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust")
|
||||
use_repo(rules_rust, "rules_rust")
|
||||
@@ -91,7 +86,6 @@ crate.annotation(
|
||||
inject_repo(crate, "zstd")
|
||||
|
||||
bazel_dep(name = "bzip2", version = "1.0.8.bcr.3")
|
||||
bazel_dep(name = "libcap", version = "2.27.bcr.1")
|
||||
|
||||
crate.annotation(
|
||||
crate = "bzip2-sys",
|
||||
@@ -149,13 +143,13 @@ crate.annotation(
|
||||
"@macos_sdk//sysroot",
|
||||
],
|
||||
build_script_env = {
|
||||
"BINDGEN_EXTRA_CLANG_ARGS": "-isystem $(location @llvm//:builtin_headers)",
|
||||
"BINDGEN_EXTRA_CLANG_ARGS": "-Xclang -internal-isystem -Xclang $(location @llvm//:builtin_resource_dir)/include",
|
||||
"COREAUDIO_SDK_PATH": "$(location @macos_sdk//sysroot)",
|
||||
"LIBCLANG_PATH": "$(location @llvm-project//clang:libclang_interface_output)",
|
||||
},
|
||||
build_script_tools = [
|
||||
"@llvm-project//clang:libclang_interface_output",
|
||||
"@llvm//:builtin_headers",
|
||||
"@llvm//:builtin_resource_dir",
|
||||
],
|
||||
crate = "coreaudio-sys",
|
||||
gen_build_script = "on",
|
||||
@@ -182,8 +176,257 @@ crate.annotation(
|
||||
|
||||
inject_repo(crate, "alsa_lib")
|
||||
|
||||
bazel_dep(name = "v8", version = "14.6.202.11")
|
||||
archive_override(
|
||||
module_name = "v8",
|
||||
integrity = "sha256-Ju45oFJMyCWyT/r+d+MDsCbCeoDBisGaj4+KZYIIYSU=",
|
||||
patch_cmds = ["""
|
||||
python3 - <<'PY'
|
||||
from pathlib import Path
|
||||
|
||||
module = Path("MODULE.bazel")
|
||||
text = module.read_text()
|
||||
start = text.index("# Define the local LLVM toolchain repository\\n")
|
||||
end = text.index('libcxx_repository(\\n name = "libcxx",\\n)\\n') + len('libcxx_repository(\\n name = "libcxx",\\n)\\n')
|
||||
text = text[:start] + text[end:]
|
||||
fast_float_build = '''load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
cc_library(
|
||||
name = "fast_float",
|
||||
hdrs = glob(["include/fast_float/*.h"]),
|
||||
includes = ["include"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
'''
|
||||
simdutf_build = '''load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
cc_library(
|
||||
name = "simdutf",
|
||||
srcs = ["simdutf.cpp"],
|
||||
hdrs = ["simdutf.h"],
|
||||
copts = ["-std=c++20"],
|
||||
includes = ["."],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
'''
|
||||
dragonbox_build = '''load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
cc_library(
|
||||
name = "dragonbox",
|
||||
hdrs = ["include/dragonbox/dragonbox.h"],
|
||||
includes = ["include"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
'''
|
||||
fp16_build = '''load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
|
||||
cc_library(
|
||||
name = "fp16",
|
||||
hdrs = glob(["include/**/*.h"]),
|
||||
includes = ["include"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
'''
|
||||
highway_patch_cmd = '''python3 - <<'PY'
|
||||
from pathlib import Path
|
||||
|
||||
build = Path("BUILD")
|
||||
text = build.read_text()
|
||||
text = text.replace(
|
||||
'load("@rules_cc//cc:defs.bzl", "cc_test")',
|
||||
'load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")',
|
||||
)
|
||||
build.write_text(text)
|
||||
PY'''
|
||||
module_insertion = f'''bazel_dep(name = "rules_license", version = "0.0.4")
|
||||
|
||||
git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
|
||||
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
http_archive(
|
||||
name = "highway",
|
||||
patch_cmds = [{highway_patch_cmd!r}],
|
||||
sha256 = "7e0be78b8318e8bdbf6fa545d2ecb4c90f947df03f7aadc42c1967f019e63343",
|
||||
strip_prefix = "highway-1.2.0",
|
||||
urls = ["https://github.com/google/highway/archive/refs/tags/1.2.0.tar.gz"],
|
||||
)
|
||||
|
||||
git_repository(
|
||||
name = "icu",
|
||||
build_file = "@v8//:bazel/BUILD.icu",
|
||||
commit = "a86a32e67b8d1384b33f8fa48c83a6079b86f8cd",
|
||||
patch_cmds = ["find source -name BUILD.bazel | xargs rm"],
|
||||
patch_cmds_win = ["Get-ChildItem -Path source -File -Include BUILD.bazel -Recurse | Remove-Item"],
|
||||
remote = "https://chromium.googlesource.com/chromium/deps/icu.git",
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "fast_float",
|
||||
build_file_content = {fast_float_build!r},
|
||||
sha256 = "e14a33089712b681d74d94e2a11362643bd7d769ae8f7e7caefe955f57f7eacd",
|
||||
strip_prefix = "fast_float-8.0.2",
|
||||
urls = ["https://github.com/fastfloat/fast_float/archive/refs/tags/v8.0.2.tar.gz"],
|
||||
)
|
||||
|
||||
git_repository(
|
||||
name = "simdutf",
|
||||
build_file_content = {simdutf_build!r},
|
||||
commit = "93b35aec29256f705c97f675fe4623578bd7a395",
|
||||
remote = "https://chromium.googlesource.com/chromium/src/third_party/simdutf",
|
||||
)
|
||||
|
||||
git_repository(
|
||||
name = "dragonbox",
|
||||
build_file_content = {dragonbox_build!r},
|
||||
commit = "beeeef91cf6fef89a4d4ba5e95d47ca64ccb3a44",
|
||||
remote = "https://chromium.googlesource.com/external/github.com/jk-jeon/dragonbox.git",
|
||||
)
|
||||
|
||||
git_repository(
|
||||
name = "fp16",
|
||||
build_file_content = {fp16_build!r},
|
||||
commit = "3d2de1816307bac63c16a297e8c4dc501b4076df",
|
||||
remote = "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git",
|
||||
)
|
||||
'''
|
||||
text = text.replace('bazel_dep(name = "highway", version = "1.2.0")\\n', module_insertion)
|
||||
module.write_text(text)
|
||||
|
||||
defs = Path("bazel/defs.bzl")
|
||||
text = defs.read_text()
|
||||
text = text.replace(' deps = [":define_flags", "@libcxx//:libc++"],\\n', ' deps = [":define_flags"],\\n')
|
||||
text = text.replace(
|
||||
' "//conditions:default": ["-Wl,--no-as-needed -ldl -latomic -pthread"],\\n',
|
||||
' "//conditions:default": ["-Wl,--no-as-needed -ldl -pthread"],\\n',
|
||||
)
|
||||
defs.write_text(text)
|
||||
|
||||
build = Path("BUILD.bazel")
|
||||
text = build.read_text()
|
||||
text = text.replace(' default = "none",\\n', ' default = "False",\\n', 1)
|
||||
text = text.replace("//external:icu", "@icu//:icu")
|
||||
text = text.replace("//third_party/fast_float/src:fast_float", "@fast_float//:fast_float")
|
||||
text = text.replace(
|
||||
'alias(\\n name = "core_lib_icu",\\n actual = "icu/v8",\\n)\\n',
|
||||
'alias(\\n name = "core_lib_icu",\\n actual = "icu/v8",\\n visibility = ["//visibility:public"],\\n)\\n',
|
||||
)
|
||||
text = text.replace(
|
||||
' srcs = [\\n "include/js_protocol.pdl",\\n "src/inspector/inspector_protocol_config.json",\\n ],\\n',
|
||||
' srcs = [\\n "include/js_protocol.pdl",\\n "src/inspector/inspector_protocol_config.json",\\n "third_party/inspector_protocol/code_generator.py",\\n "third_party/inspector_protocol/pdl.py",\\n "third_party/inspector_protocol/lib/Forward_h.template",\\n "third_party/inspector_protocol/lib/Object_cpp.template",\\n "third_party/inspector_protocol/lib/Object_h.template",\\n "third_party/inspector_protocol/lib/Protocol_cpp.template",\\n "third_party/inspector_protocol/lib/ValueConversions_cpp.template",\\n "third_party/inspector_protocol/lib/ValueConversions_h.template",\\n "third_party/inspector_protocol/lib/Values_cpp.template",\\n "third_party/inspector_protocol/lib/Values_h.template",\\n "third_party/inspector_protocol/templates/Exported_h.template",\\n "third_party/inspector_protocol/templates/Imported_h.template",\\n "third_party/inspector_protocol/templates/TypeBuilder_cpp.template",\\n "third_party/inspector_protocol/templates/TypeBuilder_h.template",\\n ],\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
' cmd = "$(location :code_generator) --jinja_dir . \\\\\\n --inspector_protocol_dir third_party/inspector_protocol \\\\\\n --config $(location :src/inspector/inspector_protocol_config.json) \\\\\\n --config_value protocol.path=$(location :include/js_protocol.pdl) \\\\\\n --output_base $(@D)/src/inspector",\\n',
|
||||
' cmd = "INSPECTOR_PROTOCOL_DIR=$$(dirname $(execpath third_party/inspector_protocol/code_generator.py)); \\\\\\n PYTHONPATH=$$INSPECTOR_PROTOCOL_DIR:external/rules_python++pip+v8_python_deps_311_jinja2/site-packages:external/rules_python++pip+v8_python_deps_311_markupsafe/site-packages:$${PYTHONPATH-} \\\\\\n python3 $(execpath third_party/inspector_protocol/code_generator.py) --jinja_dir . \\\\\\n --inspector_protocol_dir $$INSPECTOR_PROTOCOL_DIR \\\\\\n --config $(location :src/inspector/inspector_protocol_config.json) \\\\\\n --config_value protocol.path=$(location :include/js_protocol.pdl) \\\\\\n --output_base $(@D)/src/inspector",\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
' tools = [\\n ":code_generator",\\n ],\\n',
|
||||
' tools = [\\n requirement("jinja2"),\\n requirement("markupsafe"),\\n ],\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
'cc_library(\\n name = "simdutf",\\n srcs = ["third_party/simdutf/simdutf.cpp"],\\n hdrs = ["third_party/simdutf/simdutf.h"],\\n copts = select({\\n "@v8//bazel/config:is_clang": ["-std=c++20"],\\n "@v8//bazel/config:is_gcc": ["-std=gnu++2a"],\\n "@v8//bazel/config:is_windows": ["/std:c++20"],\\n "//conditions:default": [],\\n }),\\n)\\n',
|
||||
'alias(\\n name = "simdutf",\\n actual = "@simdutf//:simdutf",\\n)\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
'v8_library(\\n name = "lib_dragonbox",\\n srcs = ["third_party/dragonbox/src/include/dragonbox/dragonbox.h"],\\n hdrs = [\\n "third_party/dragonbox/src/include/dragonbox/dragonbox.h",\\n ],\\n includes = [\\n "third_party/dragonbox/src/include",\\n ],\\n)\\n',
|
||||
'alias(\\n name = "lib_dragonbox",\\n actual = "@dragonbox//:dragonbox",\\n)\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
'v8_library(\\n name = "lib_fp16",\\n srcs = ["third_party/fp16/src/include/fp16.h"],\\n hdrs = [\\n "third_party/fp16/src/include/fp16/fp16.h",\\n "third_party/fp16/src/include/fp16/bitcasts.h",\\n "third_party/fp16/src/include/fp16/macros.h",\\n ],\\n includes = [\\n "third_party/fp16/src/include",\\n ],\\n)\\n',
|
||||
'alias(\\n name = "lib_fp16",\\n actual = "@fp16//:fp16",\\n)\\n',
|
||||
1,
|
||||
)
|
||||
needle = 'filegroup(\\n name = "d8_files",\\n'
|
||||
insert = 'cc_library(\\n name = "rusty_v8_internal_headers",\\n hdrs = [\\n "src/libplatform/default-platform.h",\\n ],\\n strip_include_prefix = "",\\n visibility = ["//visibility:public"],\\n)\\n\\n'
|
||||
if needle not in text:
|
||||
raise SystemExit("could not find d8_files insertion point")
|
||||
build.write_text(text.replace(needle, insert + needle, 1))
|
||||
|
||||
stack_trace = Path("src/base/debug/stack_trace_posix.cc")
|
||||
text = stack_trace.read_text()
|
||||
text = text.replace(
|
||||
'bool dump_stack_in_signal_handler = true;\\n\\n// The prefix used for mangled symbols, per the Itanium C++ ABI:\\n// http://www.codesourcery.com/cxx-abi/abi.html#mangling\\nconst char kMangledSymbolPrefix[] = "_Z";\\n\\n// Characters that can be used for symbols, generated by Ruby:\\n// ((\\'a\\'..\\'z\\').to_a+(\\'A\\'..\\'Z\\').to_a+(\\'0\\'..\\'9\\').to_a + [\\'_\\']).join\\nconst char kSymbolCharacters[] =\\n "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";\\n\\n#if HAVE_EXECINFO_H\\n',
|
||||
'bool dump_stack_in_signal_handler = true;\\n\\n#if HAVE_EXECINFO_H\\n// The prefix used for mangled symbols, per the Itanium C++ ABI:\\n// http://www.codesourcery.com/cxx-abi/abi.html#mangling\\nconst char kMangledSymbolPrefix[] = "_Z";\\n\\n// Characters that can be used for symbols, generated by Ruby:\\n// ((\\'a\\'..\\'z\\').to_a+(\\'A\\'..\\'Z\\').to_a+(\\'0\\'..\\'9\\').to_a + [\\'_\\']).join\\nconst char kSymbolCharacters[] =\\n "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";\\n\\n',
|
||||
1,
|
||||
)
|
||||
stack_trace.write_text(text)
|
||||
|
||||
platform_posix = Path("src/base/platform/platform-posix.cc")
|
||||
text = platform_posix.read_text()
|
||||
text = text.replace(
|
||||
'#if defined(V8_LIBC_GLIBC)\\nextern "C" void* __libc_stack_end;\\n#endif\\n',
|
||||
'',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
'#if defined(V8_LIBC_GLIBC)\\n // pthread_getattr_np can fail for the main thread.\\n // For the main thread we prefer using __libc_stack_end (if it exists) since\\n // it generally provides a tighter limit for CSS.\\n return __libc_stack_end;\\n#else\\n return nullptr;\\n#endif // !defined(V8_LIBC_GLIBC)\\n',
|
||||
' return nullptr;\\n',
|
||||
1,
|
||||
)
|
||||
text = text.replace(
|
||||
'#if defined(V8_LIBC_GLIBC)\\n // __libc_stack_end is process global and thus is only valid for\\n // the main thread. Check whether this is the main thread by checking\\n // __libc_stack_end is within the thread\\'s stack.\\n if ((base <= __libc_stack_end) && (__libc_stack_end <= stack_start)) {\\n DCHECK(MainThreadIsCurrentThread());\\n return __libc_stack_end;\\n }\\n#endif // !defined(V8_LIBC_GLIBC)\\n',
|
||||
'',
|
||||
1,
|
||||
)
|
||||
platform_posix.write_text(text)
|
||||
|
||||
thread_isolated_allocator = Path("src/libplatform/default-thread-isolated-allocator.cc")
|
||||
text = thread_isolated_allocator.read_text()
|
||||
text = text.replace(
|
||||
"bool KernelHasPkruFix() {\\n",
|
||||
"[[maybe_unused]] bool KernelHasPkruFix() {\\n",
|
||||
1,
|
||||
)
|
||||
thread_isolated_allocator.write_text(text)
|
||||
|
||||
for path in Path("src").rglob("*"):
|
||||
if not path.is_file():
|
||||
continue
|
||||
text = path.read_text()
|
||||
text = text.replace('"third_party/fp16/src/include/fp16.h"', '"fp16.h"')
|
||||
text = text.replace('"third_party/simdutf/simdutf.h"', '"simdutf.h"')
|
||||
text = text.replace(
|
||||
'"third_party/fast_float/src/include/fast_float/fast_float.h"',
|
||||
'"fast_float/fast_float.h"',
|
||||
)
|
||||
text = text.replace(
|
||||
'"third_party/fast_float/src/include/fast_float/float_common.h"',
|
||||
'"fast_float/float_common.h"',
|
||||
)
|
||||
text = text.replace(
|
||||
'"third_party/dragonbox/src/include/dragonbox/dragonbox.h"',
|
||||
'"dragonbox/dragonbox.h"',
|
||||
)
|
||||
path.write_text(text)
|
||||
|
||||
icu_build = Path("bazel/BUILD.icu")
|
||||
text = icu_build.read_text()
|
||||
if 'load("@rules_cc//cc:defs.bzl", "cc_library")\\n\\n' not in text:
|
||||
text = 'load("@rules_cc//cc:defs.bzl", "cc_library")\\n\\n' + text
|
||||
icu_build.write_text(text)
|
||||
PY
|
||||
"""],
|
||||
strip_prefix = "v8-14.6.202.11",
|
||||
urls = ["https://github.com/v8/v8/archive/refs/tags/14.6.202.11.tar.gz"],
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "v8_crate_146_4_0",
|
||||
build_file = "//third_party/v8:v8_crate.BUILD.bazel",
|
||||
sha256 = "d97bcac5cdc5a195a4813f1855a6bc658f240452aac36caa12fd6c6f16026ab1",
|
||||
strip_prefix = "v8-146.4.0",
|
||||
type = "tar.gz",
|
||||
urls = ["https://static.crates.io/crates/v8/v8-146.4.0.crate"],
|
||||
)
|
||||
|
||||
use_repo(crate, "crates")
|
||||
|
||||
bazel_dep(name = "libcap", version = "2.27.bcr.1")
|
||||
|
||||
rbe_platform_repository = use_repo_rule("//:rbe.bzl", "rbe_platform_repository")
|
||||
|
||||
rbe_platform_repository(
|
||||
|
||||
55
MODULE.bazel.lock
generated
55
MODULE.bazel.lock
generated
@@ -12,6 +12,7 @@
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1",
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215",
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8",
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2",
|
||||
"https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c",
|
||||
"https://bcr.bazel.build/modules/alsa_lib/1.2.9.bcr.4/MODULE.bazel": "66842efc2b50b7c12274a5218d468119a5d6f9dc46a5164d9496fb517f64aba6",
|
||||
@@ -24,10 +25,6 @@
|
||||
"https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4",
|
||||
"https://bcr.bazel.build/modules/apple_support/2.1.0/MODULE.bazel": "b15c125dabed01b6803c129cd384de4997759f02f8ec90dc5136bcf6dfc5086a",
|
||||
"https://bcr.bazel.build/modules/apple_support/2.1.0/source.json": "78064cfefe18dee4faaf51893661e0d403784f3efe88671d727cdcdc67ed8fb3",
|
||||
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f",
|
||||
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca",
|
||||
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/source.json": "ffab9254c65ba945f8369297ad97ca0dec213d3adc6e07877e23a48624a8b456",
|
||||
"https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838",
|
||||
"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.2/MODULE.bazel": "598e7fe3b54f5fa64fdbeead1027653963a359cc23561d43680006f3b463d5a4",
|
||||
"https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.2/source.json": "c6f5c39e6f32eb395f8fdaea63031a233bbe96d49a3bfb9f75f6fce9b74bec6c",
|
||||
"https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
|
||||
@@ -53,8 +50,8 @@
|
||||
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
|
||||
"https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
|
||||
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d",
|
||||
"https://bcr.bazel.build/modules/bazel_lib/3.2.0/MODULE.bazel": "39b50d94b9be6bda507862254e20c263f9b950e3160112348d10a938be9ce2c2",
|
||||
"https://bcr.bazel.build/modules/bazel_lib/3.2.0/source.json": "a6f45a903134bebbf33a6166dd42b4c7ab45169de094b37a85f348ca41170a84",
|
||||
"https://bcr.bazel.build/modules/bazel_lib/3.2.2/MODULE.bazel": "e2c890c8a515d6bca9c66d47718aa9e44b458fde64ec7204b8030bf2d349058c",
|
||||
"https://bcr.bazel.build/modules/bazel_lib/3.2.2/source.json": "9e84e115c20e14652c5c21401ae85ff4daa8702e265b5c0b3bf89353f17aa212",
|
||||
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
|
||||
"https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
|
||||
"https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
|
||||
@@ -73,8 +70,8 @@
|
||||
"https://bcr.bazel.build/modules/buildozer/8.2.1/source.json": "7c33f6a26ee0216f85544b4bca5e9044579e0219b6898dd653f5fb449cf2e484",
|
||||
"https://bcr.bazel.build/modules/bzip2/1.0.8.bcr.3/MODULE.bazel": "29ecf4babfd3c762be00d7573c288c083672ab60e79c833ff7f49ee662e54471",
|
||||
"https://bcr.bazel.build/modules/bzip2/1.0.8.bcr.3/source.json": "8be4a3ef2599693f759e5c0990a4cc5a246ac08db4c900a38f852ba25b5c39be",
|
||||
"https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8",
|
||||
"https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/source.json": "fa7b512dfcb5eafd90ce3959cf42a2a6fe96144ebbb4b3b3928054895f2afac2",
|
||||
"https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d",
|
||||
"https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/source.json": "ebe931bfe362e4b41e59ee00a528db6074157ff2ced92eb9e970acab2e1089c9",
|
||||
"https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
|
||||
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
|
||||
"https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
|
||||
@@ -82,22 +79,18 @@
|
||||
"https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
|
||||
"https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46",
|
||||
"https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713",
|
||||
"https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f",
|
||||
"https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5",
|
||||
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
|
||||
"https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0",
|
||||
"https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000",
|
||||
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/MODULE.bazel": "7c034d7a4d92b2293294934377f5d1cbc88119710a11079fa8142120f6f08768",
|
||||
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/source.json": "3b116cbdbd25a68ffb587b672205f6d353a4c19a35452e480d58fc89531e0a10",
|
||||
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
||||
"https://bcr.bazel.build/modules/llvm/0.6.0/MODULE.bazel": "42c2182c49f13d2df83a4a4a95ab55d31efda47b2d67acf419bf6b31522b2a30",
|
||||
"https://bcr.bazel.build/modules/llvm/0.6.1/MODULE.bazel": "29170ab19f4e2dc9b6bbf9b3d101738e84142f63ba29a13cc33e0d40f74c79b0",
|
||||
"https://bcr.bazel.build/modules/llvm/0.6.1/source.json": "2d8cdd3a5f8e1d16132dbbe97250133101e4863c0376d23273d9afd7363cc331",
|
||||
"https://bcr.bazel.build/modules/llvm/0.6.7/MODULE.bazel": "d37a2e10571864dc6a5bb53c29216d90b9400bbcadb422337f49107fd2eaf0d2",
|
||||
"https://bcr.bazel.build/modules/llvm/0.6.7/source.json": "c40bcce08d2adbd658aae609976ce4ae4fdc44f3299fffa29c7fa9bf7e7d6d2b",
|
||||
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
|
||||
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
|
||||
"https://bcr.bazel.build/modules/openssl/3.5.4.bcr.0/MODULE.bazel": "0f6b8f20b192b9ff0781406256150bcd46f19e66d807dcb0c540548439d6fc35",
|
||||
"https://bcr.bazel.build/modules/openssl/3.5.4.bcr.0/source.json": "543ed7627cc18e6460b9c1ae4a1b6b1debc5a5e0aca878b00f7531c7186b73da",
|
||||
"https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92",
|
||||
"https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4",
|
||||
"https://bcr.bazel.build/modules/package_metadata/0.0.5/source.json": "2326db2f6592578177751c3e1f74786b79382cd6008834c9d01ec865b9126a85",
|
||||
"https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
|
||||
@@ -112,6 +105,7 @@
|
||||
"https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96",
|
||||
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
|
||||
"https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
|
||||
"https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
|
||||
"https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
|
||||
"https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92",
|
||||
"https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95",
|
||||
@@ -155,7 +149,6 @@
|
||||
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
|
||||
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
|
||||
"https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
|
||||
"https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
|
||||
"https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
|
||||
"https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
|
||||
@@ -176,6 +169,7 @@
|
||||
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
|
||||
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
|
||||
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
|
||||
"https://bcr.bazel.build/modules/rules_license/0.0.4/MODULE.bazel": "6a88dd22800cf1f9f79ba32cacad0d3a423ed28efa2c2ed5582eaa78dd3ac1e5",
|
||||
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
|
||||
"https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
|
||||
"https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
|
||||
@@ -190,6 +184,7 @@
|
||||
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
|
||||
"https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
|
||||
"https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
|
||||
"https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
|
||||
"https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96",
|
||||
"https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e",
|
||||
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
|
||||
@@ -199,13 +194,14 @@
|
||||
"https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
|
||||
"https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
|
||||
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8",
|
||||
"https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32",
|
||||
"https://bcr.bazel.build/modules/rules_rs/0.0.40/MODULE.bazel": "63238bcb69010753dbd37b5ed08cb79d3af2d88a40b0fda0b110f60f307e86d4",
|
||||
"https://bcr.bazel.build/modules/rules_rs/0.0.40/source.json": "ae3b17d2f9e4fbcd3de543318e71f83d8522c8527f385bf2b2a7665ec504827e",
|
||||
"https://bcr.bazel.build/modules/rules_rs/0.0.43/MODULE.bazel": "7adfc2a97d90218ebeb9882de9eb18d9c6b0b41d2884be6ab92c9daadb17c78d",
|
||||
"https://bcr.bazel.build/modules/rules_rs/0.0.43/source.json": "c315361abf625411f506ab935e660f49f14dc64fa30c125ca0a177c34cd63a2a",
|
||||
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
||||
"https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
|
||||
"https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592",
|
||||
@@ -220,21 +216,17 @@
|
||||
"https://bcr.bazel.build/modules/sed/4.9.bcr.3/source.json": "31c0cf4c135ed3fa58298cd7bcfd4301c54ea4cf59d7c4e2ea0a180ce68eb34f",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5",
|
||||
"https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216",
|
||||
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91",
|
||||
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f",
|
||||
"https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b",
|
||||
"https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468",
|
||||
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/MODULE.bazel": "a3584b4edcfafcabd9b0ef9819808f05b372957bbdff41601429d5fd0aac2e7c",
|
||||
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/source.json": "4a620381df075a16cb3a7ed57bd1d05f7480222394c64a20fa51bdb636fda658",
|
||||
"https://bcr.bazel.build/modules/tar.bzl/0.9.0/MODULE.bazel": "452a22d7f02b1c9d7a22ab25edf20f46f3e1101f0f67dc4bfbf9a474ddf02445",
|
||||
"https://bcr.bazel.build/modules/tar.bzl/0.9.0/source.json": "c732760a374831a2cf5b08839e4be75017196b4d796a5aa55235272ee17cd839",
|
||||
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
||||
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38",
|
||||
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/source.json": "3f3fbaeafecaf629877ad152a2c9def21f8d330d91aa94c5dc75bbb98c10b8b8",
|
||||
"https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072",
|
||||
"https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3",
|
||||
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca",
|
||||
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.8/MODULE.bazel": "772c674bb78a0342b8caf32ab5c25085c493ca4ff08398208dcbe4375fe9f776",
|
||||
@@ -248,7 +240,7 @@
|
||||
"@@aspect_tools_telemetry+//:extension.bzl%telemetry": {
|
||||
"general": {
|
||||
"bzlTransitiveDigest": "dnnhvKMf9MIXMulhbhHBblZdDAfAkiSVjApIXpUz9Y8=",
|
||||
"usagesDigest": "2ScE07TNSr/xo2GnYHCRI4JX4hiql6iZaNKUIUshUv4=",
|
||||
"usagesDigest": "aAcu2vTLy2HUXbcYIow0P6OHLLog/f5FFk8maEC/fpQ=",
|
||||
"recordedInputs": [
|
||||
"REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+",
|
||||
"REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+"
|
||||
@@ -261,18 +253,17 @@
|
||||
"abseil-cpp": "20250814.1",
|
||||
"alsa_lib": "1.2.9.bcr.4",
|
||||
"apple_support": "2.1.0",
|
||||
"aspect_bazel_lib": "2.19.3",
|
||||
"aspect_tools_telemetry": "0.3.2",
|
||||
"bazel_features": "1.34.0",
|
||||
"bazel_lib": "3.2.0",
|
||||
"bazel_features": "1.42.0",
|
||||
"bazel_lib": "3.2.2",
|
||||
"bazel_skylib": "1.8.2",
|
||||
"buildozer": "8.2.1",
|
||||
"bzip2": "1.0.8.bcr.3",
|
||||
"gawk": "5.3.2.bcr.1",
|
||||
"gawk": "5.3.2.bcr.3",
|
||||
"googletest": "1.17.0",
|
||||
"jq.bzl": "0.1.0",
|
||||
"jsoncpp": "1.9.6",
|
||||
"libcap": "2.27.bcr.1",
|
||||
"llvm": "0.6.7",
|
||||
"nlohmann_json": "3.6.1",
|
||||
"openssl": "3.5.4.bcr.0",
|
||||
"package_metadata": "0.0.5",
|
||||
@@ -292,15 +283,15 @@
|
||||
"rules_platform": "0.1.0",
|
||||
"rules_proto": "7.1.0",
|
||||
"rules_python": "1.7.0",
|
||||
"rules_rs": "0.0.40",
|
||||
"rules_shell": "0.6.1",
|
||||
"rules_swift": "3.1.2",
|
||||
"sed": "4.9.bcr.3",
|
||||
"stardoc": "0.7.2",
|
||||
"swift_argument_parser": "1.3.1.2",
|
||||
"tar.bzl": "0.6.0",
|
||||
"toolchains_llvm_bootstrapped": "0.5.6",
|
||||
"tar.bzl": "0.9.0",
|
||||
"toolchains_llvm_bootstrapped": "0.5.2",
|
||||
"with_cfg.bzl": "0.12.0",
|
||||
"yq.bzl": "0.1.1",
|
||||
"zlib": "1.3.1.bcr.8",
|
||||
"zstd": "1.5.7"
|
||||
}
|
||||
|
||||
32
codex-rs/Cargo.lock
generated
32
codex-rs/Cargo.lock
generated
@@ -1442,6 +1442,8 @@ dependencies = [
|
||||
"codex-utils-pty",
|
||||
"core_test_support",
|
||||
"futures",
|
||||
"opentelemetry",
|
||||
"opentelemetry_sdk",
|
||||
"owo-colors",
|
||||
"pretty_assertions",
|
||||
"reqwest",
|
||||
@@ -1457,6 +1459,7 @@ dependencies = [
|
||||
"tokio-util",
|
||||
"toml 0.9.11+spec-1.1.0",
|
||||
"tracing",
|
||||
"tracing-opentelemetry",
|
||||
"tracing-subscriber",
|
||||
"uuid",
|
||||
"wiremock",
|
||||
@@ -1593,6 +1596,7 @@ version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-backend-openapi-models",
|
||||
"codex-client",
|
||||
"codex-core",
|
||||
"codex-protocol",
|
||||
"pretty_assertions",
|
||||
@@ -1616,6 +1620,7 @@ version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
"codex-connectors",
|
||||
"codex-core",
|
||||
"codex-git",
|
||||
"codex-utils-cargo-bin",
|
||||
@@ -1625,7 +1630,6 @@ dependencies = [
|
||||
"serde_json",
|
||||
"tempfile",
|
||||
"tokio",
|
||||
"urlencoding",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1680,15 +1684,22 @@ version = "0.0.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"codex-utils-cargo-bin",
|
||||
"codex-utils-rustls-provider",
|
||||
"eventsource-stream",
|
||||
"futures",
|
||||
"http 1.4.0",
|
||||
"opentelemetry",
|
||||
"opentelemetry_sdk",
|
||||
"pretty_assertions",
|
||||
"rand 0.9.2",
|
||||
"reqwest",
|
||||
"rustls",
|
||||
"rustls-native-certs",
|
||||
"rustls-pki-types",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tempfile",
|
||||
"thiserror 2.0.18",
|
||||
"tokio",
|
||||
"tracing",
|
||||
@@ -1729,6 +1740,7 @@ dependencies = [
|
||||
"base64 0.22.1",
|
||||
"chrono",
|
||||
"clap",
|
||||
"codex-client",
|
||||
"codex-cloud-tasks-client",
|
||||
"codex-core",
|
||||
"codex-login",
|
||||
@@ -1787,6 +1799,18 @@ dependencies = [
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-connectors"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"codex-app-server-protocol",
|
||||
"pretty_assertions",
|
||||
"serde",
|
||||
"tokio",
|
||||
"urlencoding",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codex-core"
|
||||
version = "0.0.0"
|
||||
@@ -1811,6 +1835,7 @@ dependencies = [
|
||||
"codex-async-utils",
|
||||
"codex-client",
|
||||
"codex-config",
|
||||
"codex-connectors",
|
||||
"codex-execpolicy",
|
||||
"codex-file-search",
|
||||
"codex-git",
|
||||
@@ -2117,6 +2142,7 @@ dependencies = [
|
||||
"base64 0.22.1",
|
||||
"chrono",
|
||||
"codex-app-server-protocol",
|
||||
"codex-client",
|
||||
"codex-core",
|
||||
"core_test_support",
|
||||
"pretty_assertions",
|
||||
@@ -2319,6 +2345,7 @@ version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
"codex-client",
|
||||
"codex-keyring-store",
|
||||
"codex-protocol",
|
||||
"codex-utils-cargo-bin",
|
||||
@@ -2442,7 +2469,6 @@ name = "codex-stdio-to-uds"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"assert_cmd",
|
||||
"codex-utils-cargo-bin",
|
||||
"pretty_assertions",
|
||||
"tempfile",
|
||||
@@ -2469,11 +2495,13 @@ dependencies = [
|
||||
"chrono",
|
||||
"clap",
|
||||
"codex-ansi-escape",
|
||||
"codex-app-server-client",
|
||||
"codex-app-server-protocol",
|
||||
"codex-arg0",
|
||||
"codex-backend-client",
|
||||
"codex-chatgpt",
|
||||
"codex-cli",
|
||||
"codex-client",
|
||||
"codex-cloud-requirements",
|
||||
"codex-core",
|
||||
"codex-feedback",
|
||||
|
||||
@@ -16,6 +16,7 @@ members = [
|
||||
"cloud-tasks",
|
||||
"cloud-tasks-client",
|
||||
"cli",
|
||||
"connectors",
|
||||
"config",
|
||||
"shell-command",
|
||||
"shell-escalation",
|
||||
@@ -98,6 +99,7 @@ codex-chatgpt = { path = "chatgpt" }
|
||||
codex-cli = { path = "cli" }
|
||||
codex-client = { path = "codex-client" }
|
||||
codex-cloud-requirements = { path = "cloud-requirements" }
|
||||
codex-connectors = { path = "connectors" }
|
||||
codex-config = { path = "config" }
|
||||
codex-core = { path = "core" }
|
||||
codex-exec = { path = "exec" }
|
||||
@@ -238,6 +240,8 @@ rustls = { version = "0.23", default-features = false, features = [
|
||||
"ring",
|
||||
"std",
|
||||
] }
|
||||
rustls-native-certs = "0.8.3"
|
||||
rustls-pki-types = "1.14.0"
|
||||
schemars = "0.8.22"
|
||||
seccompiler = "0.5.0"
|
||||
semver = "1.0"
|
||||
|
||||
@@ -36,9 +36,12 @@ use codex_app_server_protocol::JSONRPCErrorError;
|
||||
use codex_app_server_protocol::RequestId;
|
||||
use codex_app_server_protocol::Result as JsonRpcResult;
|
||||
use codex_arg0::Arg0DispatchPaths;
|
||||
use codex_core::AuthManager;
|
||||
use codex_core::ThreadManager;
|
||||
use codex_core::config::Config;
|
||||
use codex_core::config_loader::CloudRequirementsLoader;
|
||||
use codex_core::config_loader::LoaderOverrides;
|
||||
use codex_core::models_manager::collaboration_mode_presets::CollaborationModesConfig;
|
||||
use codex_feedback::CodexFeedback;
|
||||
use codex_protocol::protocol::SessionSource;
|
||||
use serde::de::DeserializeOwned;
|
||||
@@ -123,6 +126,16 @@ impl Error for TypedRequestError {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
struct SharedCoreManagers {
|
||||
// Temporary bootstrap escape hatch for embedders that still need direct
|
||||
// core handles during the in-process app-server migration. Once TUI/exec
|
||||
// stop depending on direct manager access, remove this wrapper and keep
|
||||
// manager ownership entirely inside the app-server runtime.
|
||||
auth_manager: Arc<AuthManager>,
|
||||
thread_manager: Arc<ThreadManager>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct InProcessClientStartArgs {
|
||||
/// Resolved argv0 dispatch paths used by command execution internals.
|
||||
@@ -156,6 +169,30 @@ pub struct InProcessClientStartArgs {
|
||||
}
|
||||
|
||||
impl InProcessClientStartArgs {
|
||||
fn shared_core_managers(&self) -> SharedCoreManagers {
|
||||
let auth_manager = AuthManager::shared(
|
||||
self.config.codex_home.clone(),
|
||||
self.enable_codex_api_key_env,
|
||||
self.config.cli_auth_credentials_store_mode,
|
||||
);
|
||||
let thread_manager = Arc::new(ThreadManager::new(
|
||||
self.config.as_ref(),
|
||||
auth_manager.clone(),
|
||||
self.session_source.clone(),
|
||||
CollaborationModesConfig {
|
||||
default_mode_request_user_input: self
|
||||
.config
|
||||
.features
|
||||
.enabled(codex_core::features::Feature::DefaultModeRequestUserInput),
|
||||
},
|
||||
));
|
||||
|
||||
SharedCoreManagers {
|
||||
auth_manager,
|
||||
thread_manager,
|
||||
}
|
||||
}
|
||||
|
||||
/// Builds initialize params from caller-provided metadata.
|
||||
pub fn initialize_params(&self) -> InitializeParams {
|
||||
let capabilities = InitializeCapabilities {
|
||||
@@ -177,7 +214,7 @@ impl InProcessClientStartArgs {
|
||||
}
|
||||
}
|
||||
|
||||
fn into_runtime_start_args(self) -> InProcessStartArgs {
|
||||
fn into_runtime_start_args(self, shared_core: &SharedCoreManagers) -> InProcessStartArgs {
|
||||
let initialize = self.initialize_params();
|
||||
InProcessStartArgs {
|
||||
arg0_paths: self.arg0_paths,
|
||||
@@ -185,6 +222,8 @@ impl InProcessClientStartArgs {
|
||||
cli_overrides: self.cli_overrides,
|
||||
loader_overrides: self.loader_overrides,
|
||||
cloud_requirements: self.cloud_requirements,
|
||||
auth_manager: Some(shared_core.auth_manager.clone()),
|
||||
thread_manager: Some(shared_core.thread_manager.clone()),
|
||||
feedback: self.feedback,
|
||||
config_warnings: self.config_warnings,
|
||||
session_source: self.session_source,
|
||||
@@ -238,6 +277,8 @@ pub struct InProcessAppServerClient {
|
||||
command_tx: mpsc::Sender<ClientCommand>,
|
||||
event_rx: mpsc::Receiver<InProcessServerEvent>,
|
||||
worker_handle: tokio::task::JoinHandle<()>,
|
||||
auth_manager: Arc<AuthManager>,
|
||||
thread_manager: Arc<ThreadManager>,
|
||||
}
|
||||
|
||||
impl InProcessAppServerClient {
|
||||
@@ -248,8 +289,9 @@ impl InProcessAppServerClient {
|
||||
/// with overload error instead of being silently dropped.
|
||||
pub async fn start(args: InProcessClientStartArgs) -> IoResult<Self> {
|
||||
let channel_capacity = args.channel_capacity.max(1);
|
||||
let shared_core = args.shared_core_managers();
|
||||
let mut handle =
|
||||
codex_app_server::in_process::start(args.into_runtime_start_args()).await?;
|
||||
codex_app_server::in_process::start(args.into_runtime_start_args(&shared_core)).await?;
|
||||
let request_sender = handle.sender();
|
||||
let (command_tx, mut command_rx) = mpsc::channel::<ClientCommand>(channel_capacity);
|
||||
let (event_tx, event_rx) = mpsc::channel::<InProcessServerEvent>(channel_capacity);
|
||||
@@ -400,9 +442,21 @@ impl InProcessAppServerClient {
|
||||
command_tx,
|
||||
event_rx,
|
||||
worker_handle,
|
||||
auth_manager: shared_core.auth_manager,
|
||||
thread_manager: shared_core.thread_manager,
|
||||
})
|
||||
}
|
||||
|
||||
/// Temporary bootstrap escape hatch for embedders migrating toward RPC-only usage.
|
||||
pub fn auth_manager(&self) -> Arc<AuthManager> {
|
||||
self.auth_manager.clone()
|
||||
}
|
||||
|
||||
/// Temporary bootstrap escape hatch for embedders migrating toward RPC-only usage.
|
||||
pub fn thread_manager(&self) -> Arc<ThreadManager> {
|
||||
self.thread_manager.clone()
|
||||
}
|
||||
|
||||
/// Sends a typed client request and returns raw JSON-RPC result.
|
||||
///
|
||||
/// Callers that expect a concrete response type should usually prefer
|
||||
@@ -555,6 +609,8 @@ impl InProcessAppServerClient {
|
||||
command_tx,
|
||||
event_rx,
|
||||
worker_handle,
|
||||
auth_manager: _,
|
||||
thread_manager: _,
|
||||
} = self;
|
||||
let mut worker_handle = worker_handle;
|
||||
// Drop the caller-facing receiver before asking the worker to shut
|
||||
@@ -606,6 +662,8 @@ mod tests {
|
||||
use codex_app_server_protocol::SessionSource as ApiSessionSource;
|
||||
use codex_app_server_protocol::ThreadStartParams;
|
||||
use codex_app_server_protocol::ThreadStartResponse;
|
||||
use codex_core::AuthManager;
|
||||
use codex_core::ThreadManager;
|
||||
use codex_core::config::ConfigBuilder;
|
||||
use pretty_assertions::assert_eq;
|
||||
use tokio::time::Duration;
|
||||
@@ -702,6 +760,35 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn shared_thread_manager_tracks_threads_started_via_app_server() {
|
||||
let client = start_test_client(SessionSource::Cli).await;
|
||||
|
||||
let response: ThreadStartResponse = client
|
||||
.request_typed(ClientRequest::ThreadStart {
|
||||
request_id: RequestId::Integer(3),
|
||||
params: ThreadStartParams {
|
||||
ephemeral: Some(true),
|
||||
..ThreadStartParams::default()
|
||||
},
|
||||
})
|
||||
.await
|
||||
.expect("thread/start should succeed");
|
||||
let created_thread_id = codex_protocol::ThreadId::from_string(&response.thread.id)
|
||||
.expect("thread id should parse");
|
||||
timeout(
|
||||
Duration::from_secs(2),
|
||||
client.thread_manager().get_thread(created_thread_id),
|
||||
)
|
||||
.await
|
||||
.expect("timed out waiting for retained thread manager to observe started thread")
|
||||
.expect("started thread should be visible through the shared thread manager");
|
||||
let thread_ids = client.thread_manager().list_thread_ids().await;
|
||||
assert!(thread_ids.contains(&created_thread_id));
|
||||
|
||||
client.shutdown().await.expect("shutdown should complete");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn tiny_channel_capacity_still_supports_request_roundtrip() {
|
||||
let client = start_test_client_with_capacity(SessionSource::Exec, 1).await;
|
||||
@@ -746,6 +833,22 @@ mod tests {
|
||||
let (command_tx, _command_rx) = mpsc::channel(1);
|
||||
let (event_tx, event_rx) = mpsc::channel(1);
|
||||
let worker_handle = tokio::spawn(async {});
|
||||
let config = build_test_config().await;
|
||||
let auth_manager = AuthManager::shared(
|
||||
config.codex_home.clone(),
|
||||
false,
|
||||
config.cli_auth_credentials_store_mode,
|
||||
);
|
||||
let thread_manager = Arc::new(ThreadManager::new(
|
||||
&config,
|
||||
auth_manager.clone(),
|
||||
SessionSource::Exec,
|
||||
CollaborationModesConfig {
|
||||
default_mode_request_user_input: config
|
||||
.features
|
||||
.enabled(codex_core::features::Feature::DefaultModeRequestUserInput),
|
||||
},
|
||||
));
|
||||
event_tx
|
||||
.send(InProcessServerEvent::Lagged { skipped: 3 })
|
||||
.await
|
||||
@@ -756,6 +859,8 @@ mod tests {
|
||||
command_tx,
|
||||
event_rx,
|
||||
worker_handle,
|
||||
auth_manager,
|
||||
thread_manager,
|
||||
};
|
||||
|
||||
let event = timeout(Duration::from_secs(2), client.next_event())
|
||||
@@ -798,4 +903,30 @@ mod tests {
|
||||
skipped: 1
|
||||
}));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn accessors_expose_retained_shared_managers() {
|
||||
let client = start_test_client(SessionSource::Cli).await;
|
||||
|
||||
assert!(
|
||||
Arc::ptr_eq(&client.auth_manager(), &client.auth_manager()),
|
||||
"auth_manager accessor should clone the retained shared manager"
|
||||
);
|
||||
assert!(
|
||||
Arc::ptr_eq(&client.thread_manager(), &client.thread_manager()),
|
||||
"thread_manager accessor should clone the retained shared manager"
|
||||
);
|
||||
|
||||
client.shutdown().await.expect("shutdown should complete");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn shutdown_completes_promptly_with_retained_shared_managers() {
|
||||
let client = start_test_client(SessionSource::Cli).await;
|
||||
|
||||
timeout(Duration::from_secs(1), client.shutdown())
|
||||
.await
|
||||
.expect("shutdown should not wait for the 5s fallback timeout")
|
||||
.expect("shutdown should complete");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -66,6 +66,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -77,9 +81,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -809,7 +813,7 @@
|
||||
"type": "boolean"
|
||||
},
|
||||
"optOutNotificationMethods": {
|
||||
"description": "Exact notification method names that should be suppressed for this connection (for example `codex/event/session_configured`).",
|
||||
"description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -1131,10 +1135,29 @@
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"forceRemoteSync": {
|
||||
"description": "When true, reconcile the official curated marketplace against the remote plugin state before listing marketplaces.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginReadParams": {
|
||||
"properties": {
|
||||
"marketplacePath": {
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
"pluginName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"marketplacePath",
|
||||
"pluginName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginUninstallParams": {
|
||||
"properties": {
|
||||
"pluginId": {
|
||||
@@ -1466,6 +1489,12 @@
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"function_call"
|
||||
@@ -1483,6 +1512,47 @@
|
||||
"title": "FunctionCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"writeOnly": true
|
||||
},
|
||||
"status": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_call"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"arguments",
|
||||
"execution",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
@@ -1572,6 +1642,41 @@
|
||||
"title": "CustomToolCallOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"tools": {
|
||||
"items": true,
|
||||
"type": "array"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_output"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"execution",
|
||||
"status",
|
||||
"tools",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"action": {
|
||||
@@ -2270,6 +2375,9 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"ephemeral": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"model": {
|
||||
"description": "Configuration overrides for the forked thread, if any.",
|
||||
"type": [
|
||||
@@ -3466,6 +3574,30 @@
|
||||
"title": "Plugin/listRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/definitions/RequestId"
|
||||
},
|
||||
"method": {
|
||||
"enum": [
|
||||
"plugin/read"
|
||||
],
|
||||
"title": "Plugin/readRequestMethod",
|
||||
"type": "string"
|
||||
},
|
||||
"params": {
|
||||
"$ref": "#/definitions/PluginReadParams"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"method",
|
||||
"params"
|
||||
],
|
||||
"title": "Plugin/readRequest",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
|
||||
@@ -39,15 +39,27 @@
|
||||
"calendar": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"contacts": {
|
||||
"$ref": "#/definitions/MacOsContactsPermission"
|
||||
},
|
||||
"launchServices": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"preferences": {
|
||||
"$ref": "#/definitions/MacOsPreferencesPermission"
|
||||
},
|
||||
"reminders": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"accessibility",
|
||||
"automations",
|
||||
"calendar",
|
||||
"preferences"
|
||||
"contacts",
|
||||
"launchServices",
|
||||
"preferences",
|
||||
"reminders"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
@@ -324,6 +336,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"MacOsContactsPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
"read_only",
|
||||
"read_write"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"MacOsPreferencesPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -39,15 +39,27 @@
|
||||
"calendar": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"contacts": {
|
||||
"$ref": "#/definitions/MacOsContactsPermission"
|
||||
},
|
||||
"launchServices": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"preferences": {
|
||||
"$ref": "#/definitions/MacOsPreferencesPermission"
|
||||
},
|
||||
"reminders": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"accessibility",
|
||||
"automations",
|
||||
"calendar",
|
||||
"preferences"
|
||||
"contacts",
|
||||
"launchServices",
|
||||
"preferences",
|
||||
"reminders"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
@@ -124,6 +136,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"MacOsContactsPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
"read_only",
|
||||
"read_write"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"MacOsPreferencesPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
|
||||
@@ -63,6 +63,22 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"contacts": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/MacOsContactsPermission"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"launchServices": {
|
||||
"type": [
|
||||
"boolean",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"preferences": {
|
||||
"anyOf": [
|
||||
{
|
||||
@@ -72,6 +88,12 @@
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"reminders": {
|
||||
"type": [
|
||||
"boolean",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -138,6 +160,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"MacOsContactsPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
"read_only",
|
||||
"read_write"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"MacOsPreferencesPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
|
||||
@@ -1588,6 +1588,18 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"ReasoningSummaryPartAddedNotification": {
|
||||
"properties": {
|
||||
"itemId": {
|
||||
@@ -2375,6 +2387,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -2382,6 +2401,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -39,15 +39,27 @@
|
||||
"calendar": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"contacts": {
|
||||
"$ref": "#/definitions/MacOsContactsPermission"
|
||||
},
|
||||
"launchServices": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"preferences": {
|
||||
"$ref": "#/definitions/MacOsPreferencesPermission"
|
||||
},
|
||||
"reminders": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"accessibility",
|
||||
"automations",
|
||||
"calendar",
|
||||
"preferences"
|
||||
"contacts",
|
||||
"launchServices",
|
||||
"preferences",
|
||||
"reminders"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
@@ -653,6 +665,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"MacOsContactsPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
"read_only",
|
||||
"read_write"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"MacOsPreferencesPermission": {
|
||||
"enum": [
|
||||
"none",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -31,7 +31,7 @@
|
||||
"type": "boolean"
|
||||
},
|
||||
"optOutNotificationMethods": {
|
||||
"description": "Exact notification method names that should be suppressed for this connection (for example `codex/event/session_configured`).",
|
||||
"description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
"platformFamily": {
|
||||
"description": "Platform family for the running app-server target, for example `\"unix\"` or `\"windows\"`.",
|
||||
"type": "string"
|
||||
},
|
||||
"platformOs": {
|
||||
"description": "Operating system for the running app-server target, for example `\"macos\"`, `\"linux\"`, or `\"windows\"`.",
|
||||
"type": "string"
|
||||
},
|
||||
"userAgent": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"platformFamily",
|
||||
"platformOs",
|
||||
"userAgent"
|
||||
],
|
||||
"title": "InitializeResponse",
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -157,6 +157,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -168,9 +172,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -29,6 +29,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -40,9 +44,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -374,6 +374,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -751,6 +763,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -758,6 +777,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -374,6 +374,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -751,6 +763,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -758,6 +777,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"definitions": {
|
||||
"AppSummary": {
|
||||
"description": "EXPERIMENTAL - app metadata summary for plugin-install responses.",
|
||||
"description": "EXPERIMENTAL - app metadata summary for plugin responses.",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": [
|
||||
@@ -28,6 +28,13 @@
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginAuthPolicy": {
|
||||
"enum": [
|
||||
"ON_INSTALL",
|
||||
"ON_USE"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
@@ -36,10 +43,14 @@
|
||||
"$ref": "#/definitions/AppSummary"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"authPolicy": {
|
||||
"$ref": "#/definitions/PluginAuthPolicy"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appsNeedingAuth"
|
||||
"appsNeedingAuth",
|
||||
"authPolicy"
|
||||
],
|
||||
"title": "PluginInstallResponse",
|
||||
"type": "object"
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"forceRemoteSync": {
|
||||
"description": "When true, reconcile the official curated marketplace against the remote plugin state before listing marketplaces.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"title": "PluginListParams",
|
||||
|
||||
@@ -5,6 +5,21 @@
|
||||
"description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
|
||||
"type": "string"
|
||||
},
|
||||
"PluginAuthPolicy": {
|
||||
"enum": [
|
||||
"ON_INSTALL",
|
||||
"ON_USE"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
"AVAILABLE",
|
||||
"INSTALLED_BY_DEFAULT"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginInterface": {
|
||||
"properties": {
|
||||
"brandColor": {
|
||||
@@ -154,12 +169,18 @@
|
||||
},
|
||||
"PluginSummary": {
|
||||
"properties": {
|
||||
"authPolicy": {
|
||||
"$ref": "#/definitions/PluginAuthPolicy"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"installPolicy": {
|
||||
"$ref": "#/definitions/PluginInstallPolicy"
|
||||
},
|
||||
"installed": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@@ -181,8 +202,10 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"authPolicy",
|
||||
"enabled",
|
||||
"id",
|
||||
"installPolicy",
|
||||
"installed",
|
||||
"name",
|
||||
"source"
|
||||
@@ -196,6 +219,12 @@
|
||||
"$ref": "#/definitions/PluginMarketplaceEntry"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"remoteSyncError": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"definitions": {
|
||||
"AbsolutePathBuf": {
|
||||
"description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"marketplacePath": {
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
"pluginName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"marketplacePath",
|
||||
"pluginName"
|
||||
],
|
||||
"title": "PluginReadParams",
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"definitions": {
|
||||
"AbsolutePathBuf": {
|
||||
"description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
|
||||
"type": "string"
|
||||
},
|
||||
"AppSummary": {
|
||||
"description": "EXPERIMENTAL - app metadata summary for plugin responses.",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"installUrl": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginAuthPolicy": {
|
||||
"enum": [
|
||||
"ON_INSTALL",
|
||||
"ON_USE"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginDetail": {
|
||||
"properties": {
|
||||
"apps": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/AppSummary"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"description": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"marketplaceName": {
|
||||
"type": "string"
|
||||
},
|
||||
"marketplacePath": {
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
"mcpServers": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"skills": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/SkillSummary"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"summary": {
|
||||
"$ref": "#/definitions/PluginSummary"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"apps",
|
||||
"marketplaceName",
|
||||
"marketplacePath",
|
||||
"mcpServers",
|
||||
"skills",
|
||||
"summary"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
"AVAILABLE",
|
||||
"INSTALLED_BY_DEFAULT"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginInterface": {
|
||||
"properties": {
|
||||
"brandColor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"capabilities": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"category": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"composerIcon": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"defaultPrompt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"developerName": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"displayName": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"logo": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"longDescription": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"privacyPolicyUrl": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"screenshots": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"shortDescription": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"termsOfServiceUrl": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"websiteUrl": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"capabilities",
|
||||
"screenshots"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"path": {
|
||||
"$ref": "#/definitions/AbsolutePathBuf"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"local"
|
||||
],
|
||||
"title": "LocalPluginSourceType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"path",
|
||||
"type"
|
||||
],
|
||||
"title": "LocalPluginSource",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginSummary": {
|
||||
"properties": {
|
||||
"authPolicy": {
|
||||
"$ref": "#/definitions/PluginAuthPolicy"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"installPolicy": {
|
||||
"$ref": "#/definitions/PluginInstallPolicy"
|
||||
},
|
||||
"installed": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"interface": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginInterface"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"source": {
|
||||
"$ref": "#/definitions/PluginSource"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"authPolicy",
|
||||
"enabled",
|
||||
"id",
|
||||
"installPolicy",
|
||||
"installed",
|
||||
"name",
|
||||
"source"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"SkillInterface": {
|
||||
"properties": {
|
||||
"brandColor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"defaultPrompt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"displayName": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"iconLarge": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"iconSmall": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"shortDescription": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"SkillSummary": {
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"interface": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/SkillInterface"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"path": {
|
||||
"type": "string"
|
||||
},
|
||||
"shortDescription": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"description",
|
||||
"name",
|
||||
"path"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"plugin": {
|
||||
"$ref": "#/definitions/PluginDetail"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"plugin"
|
||||
],
|
||||
"title": "PluginReadResponse",
|
||||
"type": "object"
|
||||
}
|
||||
@@ -496,6 +496,12 @@
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"function_call"
|
||||
@@ -513,6 +519,47 @@
|
||||
"title": "FunctionCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"writeOnly": true
|
||||
},
|
||||
"status": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_call"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"arguments",
|
||||
"execution",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
@@ -602,6 +649,41 @@
|
||||
"title": "CustomToolCallOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"tools": {
|
||||
"items": true,
|
||||
"type": "array"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_output"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"execution",
|
||||
"status",
|
||||
"tools",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"action": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -29,6 +29,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -40,9 +44,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -100,6 +104,9 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"ephemeral": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"model": {
|
||||
"description": "Configuration overrides for the forked thread, if any.",
|
||||
"type": [
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -33,6 +33,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -44,9 +48,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -1345,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1352,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -29,6 +29,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -40,9 +44,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -550,6 +554,12 @@
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"function_call"
|
||||
@@ -567,6 +577,47 @@
|
||||
"title": "FunctionCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"writeOnly": true
|
||||
},
|
||||
"status": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_call"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"arguments",
|
||||
"execution",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchCallResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
@@ -656,6 +707,41 @@
|
||||
"title": "CustomToolCallOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"call_id": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"execution": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"tools": {
|
||||
"items": true,
|
||||
"type": "array"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool_search_output"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItemType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"execution",
|
||||
"status",
|
||||
"tools",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolSearchOutputResponseItem",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"action": {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -33,6 +33,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -44,9 +48,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -1345,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1352,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -29,6 +29,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -40,9 +44,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -33,6 +33,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -44,9 +48,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
@@ -1345,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1352,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"reject": {
|
||||
"granular": {
|
||||
"properties": {
|
||||
"mcp_elicitations": {
|
||||
"type": "boolean"
|
||||
@@ -33,6 +33,10 @@
|
||||
},
|
||||
"sandbox_approval": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"skill_approval": {
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -44,9 +48,9 @@
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reject"
|
||||
"granular"
|
||||
],
|
||||
"title": "RejectAskForApproval",
|
||||
"title": "GranularAskForApproval",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AgentMessageContentDeltaEvent = { thread_id: string, turn_id: string, item_id: string, delta: string, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AgentMessageDeltaEvent = { delta: string, };
|
||||
@@ -1,21 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentMessageContent } from "./AgentMessageContent";
|
||||
import type { MessagePhase } from "./MessagePhase";
|
||||
|
||||
/**
|
||||
* Assistant-authored message payload used in turn-item streams.
|
||||
*
|
||||
* `phase` is optional because not all providers/models emit it. Consumers
|
||||
* should use it when present, but retain legacy completion semantics when it
|
||||
* is `None`.
|
||||
*/
|
||||
export type AgentMessageItem = { id: string, content: Array<AgentMessageContent>,
|
||||
/**
|
||||
* Optional phase metadata carried through from `ResponseItem::Message`.
|
||||
*
|
||||
* This is currently used by TUI rendering to distinguish mid-turn
|
||||
* commentary from a final answer and avoid status-indicator jitter.
|
||||
*/
|
||||
phase?: MessagePhase, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AgentReasoningRawContentDeltaEvent = { delta: string, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AgentReasoningRawContentEvent = { text: string, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type AgentReasoningSectionBreakEvent = { item_id: string, summary_index: bigint, };
|
||||
@@ -1,8 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* Agent lifecycle status, derived from emitted events.
|
||||
*/
|
||||
export type AgentStatus = "pending_init" | "running" | { "completed": string | null } | { "errored": string } | "shutdown" | "not_found";
|
||||
@@ -1,23 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { FileChange } from "./FileChange";
|
||||
|
||||
export type ApplyPatchApprovalRequestEvent = {
|
||||
/**
|
||||
* Responses API call id for the associated patch apply call, if available.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Turn ID that this patch belongs to.
|
||||
* Uses `#[serde(default)]` for backwards compatibility with older senders.
|
||||
*/
|
||||
turn_id: string, changes: { [key in string]?: FileChange },
|
||||
/**
|
||||
* Optional explanatory reason (e.g. request for extra write access).
|
||||
*/
|
||||
reason: string | null,
|
||||
/**
|
||||
* When set, the agent is asking the user to allow writes under this root for the remainder of the session.
|
||||
*/
|
||||
grant_root: string | null, };
|
||||
@@ -1,10 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { RejectConfig } from "./RejectConfig";
|
||||
|
||||
/**
|
||||
* Determines the conditions under which the user is consulted to approve
|
||||
* running the command proposed by Codex.
|
||||
*/
|
||||
export type AskForApproval = "untrusted" | "on-failure" | "on-request" | { "reject": RejectConfig } | "never";
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type BackgroundEventEvent = { message: string, };
|
||||
@@ -1,13 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ByteRange = {
|
||||
/**
|
||||
* Start byte offset (inclusive) within the UTF-8 text buffer.
|
||||
*/
|
||||
start: number,
|
||||
/**
|
||||
* End byte offset (exclusive) within the UTF-8 text buffer.
|
||||
*/
|
||||
end: number, };
|
||||
@@ -1,9 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { JsonValue } from "./serde_json/JsonValue";
|
||||
|
||||
/**
|
||||
* The server's response to a tool call.
|
||||
*/
|
||||
export type CallToolResult = { content: Array<JsonValue>, structuredContent?: JsonValue, isError?: boolean, _meta?: JsonValue, };
|
||||
@@ -27,6 +27,7 @@ import type { McpServerOauthLoginParams } from "./v2/McpServerOauthLoginParams";
|
||||
import type { ModelListParams } from "./v2/ModelListParams";
|
||||
import type { PluginInstallParams } from "./v2/PluginInstallParams";
|
||||
import type { PluginListParams } from "./v2/PluginListParams";
|
||||
import type { PluginReadParams } from "./v2/PluginReadParams";
|
||||
import type { PluginUninstallParams } from "./v2/PluginUninstallParams";
|
||||
import type { ReviewStartParams } from "./v2/ReviewStartParams";
|
||||
import type { SkillsConfigWriteParams } from "./v2/SkillsConfigWriteParams";
|
||||
@@ -54,4 +55,4 @@ import type { WindowsSandboxSetupStartParams } from "./v2/WindowsSandboxSetupSta
|
||||
/**
|
||||
* Request from the client to the server.
|
||||
*/
|
||||
export type ClientRequest ={ "method": "initialize", id: RequestId, params: InitializeParams, } | { "method": "thread/start", id: RequestId, params: ThreadStartParams, } | { "method": "thread/resume", id: RequestId, params: ThreadResumeParams, } | { "method": "thread/fork", id: RequestId, params: ThreadForkParams, } | { "method": "thread/archive", id: RequestId, params: ThreadArchiveParams, } | { "method": "thread/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "method": "thread/unarchive", id: RequestId, params: ThreadUnarchiveParams, } | { "method": "thread/compact/start", id: RequestId, params: ThreadCompactStartParams, } | { "method": "thread/rollback", id: RequestId, params: ThreadRollbackParams, } | { "method": "thread/list", id: RequestId, params: ThreadListParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "method": "plugin/list", id: RequestId, params: PluginListParams, } | { "method": "skills/remote/list", id: RequestId, params: SkillsRemoteReadParams, } | { "method": "skills/remote/export", id: RequestId, params: SkillsRemoteWriteParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "skills/config/write", id: RequestId, params: SkillsConfigWriteParams, } | { "method": "plugin/install", id: RequestId, params: PluginInstallParams, } | { "method": "plugin/uninstall", id: RequestId, params: PluginUninstallParams, } | { "method": "turn/start", id: RequestId, params: TurnStartParams, } | { "method": "turn/steer", id: RequestId, params: TurnSteerParams, } | { "method": "turn/interrupt", id: RequestId, params: TurnInterruptParams, } | { "method": "review/start", id: RequestId, params: ReviewStartParams, } | { "method": "model/list", id: RequestId, params: ModelListParams, } | { "method": "experimentalFeature/list", id: RequestId, params: ExperimentalFeatureListParams, } | { "method": "mcpServer/oauth/login", id: RequestId, params: McpServerOauthLoginParams, } | { "method": "config/mcpServer/reload", id: RequestId, params: undefined, } | { "method": "mcpServerStatus/list", id: RequestId, params: ListMcpServerStatusParams, } | { "method": "windowsSandbox/setupStart", id: RequestId, params: WindowsSandboxSetupStartParams, } | { "method": "account/login/start", id: RequestId, params: LoginAccountParams, } | { "method": "account/login/cancel", id: RequestId, params: CancelLoginAccountParams, } | { "method": "account/logout", id: RequestId, params: undefined, } | { "method": "account/rateLimits/read", id: RequestId, params: undefined, } | { "method": "feedback/upload", id: RequestId, params: FeedbackUploadParams, } | { "method": "command/exec", id: RequestId, params: CommandExecParams, } | { "method": "command/exec/write", id: RequestId, params: CommandExecWriteParams, } | { "method": "command/exec/terminate", id: RequestId, params: CommandExecTerminateParams, } | { "method": "command/exec/resize", id: RequestId, params: CommandExecResizeParams, } | { "method": "config/read", id: RequestId, params: ConfigReadParams, } | { "method": "externalAgentConfig/detect", id: RequestId, params: ExternalAgentConfigDetectParams, } | { "method": "externalAgentConfig/import", id: RequestId, params: ExternalAgentConfigImportParams, } | { "method": "config/value/write", id: RequestId, params: ConfigValueWriteParams, } | { "method": "config/batchWrite", id: RequestId, params: ConfigBatchWriteParams, } | { "method": "configRequirements/read", id: RequestId, params: undefined, } | { "method": "account/read", id: RequestId, params: GetAccountParams, } | { "method": "getConversationSummary", id: RequestId, params: GetConversationSummaryParams, } | { "method": "gitDiffToRemote", id: RequestId, params: GitDiffToRemoteParams, } | { "method": "getAuthStatus", id: RequestId, params: GetAuthStatusParams, } | { "method": "fuzzyFileSearch", id: RequestId, params: FuzzyFileSearchParams, };
|
||||
export type ClientRequest ={ "method": "initialize", id: RequestId, params: InitializeParams, } | { "method": "thread/start", id: RequestId, params: ThreadStartParams, } | { "method": "thread/resume", id: RequestId, params: ThreadResumeParams, } | { "method": "thread/fork", id: RequestId, params: ThreadForkParams, } | { "method": "thread/archive", id: RequestId, params: ThreadArchiveParams, } | { "method": "thread/unsubscribe", id: RequestId, params: ThreadUnsubscribeParams, } | { "method": "thread/name/set", id: RequestId, params: ThreadSetNameParams, } | { "method": "thread/metadata/update", id: RequestId, params: ThreadMetadataUpdateParams, } | { "method": "thread/unarchive", id: RequestId, params: ThreadUnarchiveParams, } | { "method": "thread/compact/start", id: RequestId, params: ThreadCompactStartParams, } | { "method": "thread/rollback", id: RequestId, params: ThreadRollbackParams, } | { "method": "thread/list", id: RequestId, params: ThreadListParams, } | { "method": "thread/loaded/list", id: RequestId, params: ThreadLoadedListParams, } | { "method": "thread/read", id: RequestId, params: ThreadReadParams, } | { "method": "skills/list", id: RequestId, params: SkillsListParams, } | { "method": "plugin/list", id: RequestId, params: PluginListParams, } | { "method": "plugin/read", id: RequestId, params: PluginReadParams, } | { "method": "skills/remote/list", id: RequestId, params: SkillsRemoteReadParams, } | { "method": "skills/remote/export", id: RequestId, params: SkillsRemoteWriteParams, } | { "method": "app/list", id: RequestId, params: AppsListParams, } | { "method": "skills/config/write", id: RequestId, params: SkillsConfigWriteParams, } | { "method": "plugin/install", id: RequestId, params: PluginInstallParams, } | { "method": "plugin/uninstall", id: RequestId, params: PluginUninstallParams, } | { "method": "turn/start", id: RequestId, params: TurnStartParams, } | { "method": "turn/steer", id: RequestId, params: TurnSteerParams, } | { "method": "turn/interrupt", id: RequestId, params: TurnInterruptParams, } | { "method": "review/start", id: RequestId, params: ReviewStartParams, } | { "method": "model/list", id: RequestId, params: ModelListParams, } | { "method": "experimentalFeature/list", id: RequestId, params: ExperimentalFeatureListParams, } | { "method": "mcpServer/oauth/login", id: RequestId, params: McpServerOauthLoginParams, } | { "method": "config/mcpServer/reload", id: RequestId, params: undefined, } | { "method": "mcpServerStatus/list", id: RequestId, params: ListMcpServerStatusParams, } | { "method": "windowsSandbox/setupStart", id: RequestId, params: WindowsSandboxSetupStartParams, } | { "method": "account/login/start", id: RequestId, params: LoginAccountParams, } | { "method": "account/login/cancel", id: RequestId, params: CancelLoginAccountParams, } | { "method": "account/logout", id: RequestId, params: undefined, } | { "method": "account/rateLimits/read", id: RequestId, params: undefined, } | { "method": "feedback/upload", id: RequestId, params: FeedbackUploadParams, } | { "method": "command/exec", id: RequestId, params: CommandExecParams, } | { "method": "command/exec/write", id: RequestId, params: CommandExecWriteParams, } | { "method": "command/exec/terminate", id: RequestId, params: CommandExecTerminateParams, } | { "method": "command/exec/resize", id: RequestId, params: CommandExecResizeParams, } | { "method": "config/read", id: RequestId, params: ConfigReadParams, } | { "method": "externalAgentConfig/detect", id: RequestId, params: ExternalAgentConfigDetectParams, } | { "method": "externalAgentConfig/import", id: RequestId, params: ExternalAgentConfigImportParams, } | { "method": "config/value/write", id: RequestId, params: ConfigValueWriteParams, } | { "method": "config/batchWrite", id: RequestId, params: ConfigBatchWriteParams, } | { "method": "configRequirements/read", id: RequestId, params: undefined, } | { "method": "account/read", id: RequestId, params: GetAccountParams, } | { "method": "getConversationSummary", id: RequestId, params: GetConversationSummaryParams, } | { "method": "gitDiffToRemote", id: RequestId, params: GitDiffToRemoteParams, } | { "method": "getAuthStatus", id: RequestId, params: GetAuthStatusParams, } | { "method": "fuzzyFileSearch", id: RequestId, params: FuzzyFileSearchParams, };
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* Codex errors that we expose to clients.
|
||||
*/
|
||||
export type CodexErrorInfo = "context_window_exceeded" | "usage_limit_exceeded" | "server_overloaded" | { "http_connection_failed": { http_status_code: number | null, } } | { "response_stream_connection_failed": { http_status_code: number | null, } } | "internal_server_error" | "unauthorized" | "bad_request" | "sandbox_error" | { "response_stream_disconnected": { http_status_code: number | null, } } | { "response_too_many_failed_attempts": { http_status_code: number | null, } } | "thread_rollback_failed" | "other";
|
||||
@@ -1,23 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentInteractionBeginEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId,
|
||||
/**
|
||||
* Prompt sent from the sender to the receiver. Can be empty to prevent CoT
|
||||
* leaking at the beginning.
|
||||
*/
|
||||
prompt: string, };
|
||||
@@ -1,36 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentInteractionEndEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_role?: string | null,
|
||||
/**
|
||||
* Prompt sent from the sender to the receiver. Can be empty to prevent CoT
|
||||
* leaking at the beginning.
|
||||
*/
|
||||
prompt: string,
|
||||
/**
|
||||
* Last known status of the receiver agent reported to the sender agent.
|
||||
*/
|
||||
status: AgentStatus, };
|
||||
@@ -1,18 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentRef = {
|
||||
/**
|
||||
* Thread ID of the receiver/new agent.
|
||||
*/
|
||||
thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to an AgentControl-spawned sub-agent.
|
||||
*/
|
||||
agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.
|
||||
*/
|
||||
agent_role?: string | null, };
|
||||
@@ -1,19 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentSpawnBeginEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the
|
||||
* beginning.
|
||||
*/
|
||||
prompt: string, };
|
||||
@@ -1,36 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentSpawnEndEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the newly spawned agent, if it was created.
|
||||
*/
|
||||
new_thread_id: ThreadId | null,
|
||||
/**
|
||||
* Optional nickname assigned to the new agent.
|
||||
*/
|
||||
new_agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role assigned to the new agent.
|
||||
*/
|
||||
new_agent_role?: string | null,
|
||||
/**
|
||||
* Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the
|
||||
* beginning.
|
||||
*/
|
||||
prompt: string,
|
||||
/**
|
||||
* Last known status of the new agent reported to the sender agent.
|
||||
*/
|
||||
status: AgentStatus, };
|
||||
@@ -1,23 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentStatusEntry = {
|
||||
/**
|
||||
* Thread ID of the receiver/new agent.
|
||||
*/
|
||||
thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to an AgentControl-spawned sub-agent.
|
||||
*/
|
||||
agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role (agent_role) assigned to an AgentControl-spawned sub-agent.
|
||||
*/
|
||||
agent_role?: string | null,
|
||||
/**
|
||||
* Last known status of the agent.
|
||||
*/
|
||||
status: AgentStatus, };
|
||||
@@ -1,18 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabCloseBeginEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId, };
|
||||
@@ -1,32 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabCloseEndEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_role?: string | null,
|
||||
/**
|
||||
* Last known status of the receiver agent reported to the sender agent before
|
||||
* the close.
|
||||
*/
|
||||
status: AgentStatus, };
|
||||
@@ -1,26 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabResumeBeginEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_role?: string | null, };
|
||||
@@ -1,32 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabResumeEndEvent = {
|
||||
/**
|
||||
* Identifier for the collab tool call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receiver.
|
||||
*/
|
||||
receiver_thread_id: ThreadId,
|
||||
/**
|
||||
* Optional nickname assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_nickname?: string | null,
|
||||
/**
|
||||
* Optional role assigned to the receiver agent.
|
||||
*/
|
||||
receiver_agent_role?: string | null,
|
||||
/**
|
||||
* Last known status of the receiver agent reported to the sender agent after
|
||||
* resume.
|
||||
*/
|
||||
status: AgentStatus, };
|
||||
@@ -1,23 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CollabAgentRef } from "./CollabAgentRef";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabWaitingBeginEvent = {
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* Thread ID of the receivers.
|
||||
*/
|
||||
receiver_thread_ids: Array<ThreadId>,
|
||||
/**
|
||||
* Optional nicknames/roles for receivers.
|
||||
*/
|
||||
receiver_agents?: Array<CollabAgentRef>,
|
||||
/**
|
||||
* ID of the waiting call.
|
||||
*/
|
||||
call_id: string, };
|
||||
@@ -1,24 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { CollabAgentStatusEntry } from "./CollabAgentStatusEntry";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabWaitingEndEvent = {
|
||||
/**
|
||||
* Thread ID of the sender.
|
||||
*/
|
||||
sender_thread_id: ThreadId,
|
||||
/**
|
||||
* ID of the waiting call.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Optional receiver metadata paired with final statuses.
|
||||
*/
|
||||
agent_statuses?: Array<CollabAgentStatusEntry>,
|
||||
/**
|
||||
* Last known status of the receiver agents reported to the sender agent.
|
||||
*/
|
||||
statuses: { [key in ThreadId]?: AgentStatus }, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ContextCompactionItem = { id: string, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type CreditsSnapshot = { has_credits: boolean, unlimited: boolean, balance: string | null, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type CustomPrompt = { name: string, path: string, content: string, description: string | null, argument_hint: string | null, };
|
||||
@@ -1,13 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type DeprecationNoticeEvent = {
|
||||
/**
|
||||
* Concise summary of what is deprecated.
|
||||
*/
|
||||
summary: string,
|
||||
/**
|
||||
* Optional extra guidance, such as migration steps or rationale.
|
||||
*/
|
||||
details: string | null, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type DynamicToolCallOutputContentItem = { "type": "inputText", text: string, } | { "type": "inputImage", imageUrl: string, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { JsonValue } from "./serde_json/JsonValue";
|
||||
|
||||
export type DynamicToolCallRequest = { callId: string, turnId: string, tool: string, arguments: JsonValue, };
|
||||
@@ -1,39 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { DynamicToolCallOutputContentItem } from "./DynamicToolCallOutputContentItem";
|
||||
import type { JsonValue } from "./serde_json/JsonValue";
|
||||
|
||||
export type DynamicToolCallResponseEvent = {
|
||||
/**
|
||||
* Identifier for the corresponding DynamicToolCallRequest.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Turn ID that this dynamic tool call belongs to.
|
||||
*/
|
||||
turn_id: string,
|
||||
/**
|
||||
* Dynamic tool name.
|
||||
*/
|
||||
tool: string,
|
||||
/**
|
||||
* Dynamic tool call arguments.
|
||||
*/
|
||||
arguments: JsonValue,
|
||||
/**
|
||||
* Dynamic tool response content items.
|
||||
*/
|
||||
content_items: Array<DynamicToolCallOutputContentItem>,
|
||||
/**
|
||||
* Whether the tool call succeeded.
|
||||
*/
|
||||
success: boolean,
|
||||
/**
|
||||
* Optional error text when the tool call failed before producing a response.
|
||||
*/
|
||||
error: string | null,
|
||||
/**
|
||||
* The duration of the dynamic tool call.
|
||||
*/
|
||||
duration: string, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { JsonValue } from "./serde_json/JsonValue";
|
||||
|
||||
export type ElicitationRequest = { "mode": "form", _meta?: JsonValue, message: string, requested_schema: JsonValue, } | { "mode": "url", _meta?: JsonValue, message: string, url: string, elicitation_id: string, };
|
||||
@@ -1,10 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ElicitationRequest } from "./ElicitationRequest";
|
||||
|
||||
export type ElicitationRequestEvent = {
|
||||
/**
|
||||
* Turn ID that this elicitation belongs to, when known.
|
||||
*/
|
||||
turn_id?: string, server_name: string, id: string | number, request: ElicitationRequest, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { CodexErrorInfo } from "./CodexErrorInfo";
|
||||
|
||||
export type ErrorEvent = { message: string, codex_error_info: CodexErrorInfo | null, };
|
||||
@@ -1,87 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentMessageContentDeltaEvent } from "./AgentMessageContentDeltaEvent";
|
||||
import type { AgentMessageDeltaEvent } from "./AgentMessageDeltaEvent";
|
||||
import type { AgentMessageEvent } from "./AgentMessageEvent";
|
||||
import type { AgentReasoningDeltaEvent } from "./AgentReasoningDeltaEvent";
|
||||
import type { AgentReasoningEvent } from "./AgentReasoningEvent";
|
||||
import type { AgentReasoningRawContentDeltaEvent } from "./AgentReasoningRawContentDeltaEvent";
|
||||
import type { AgentReasoningRawContentEvent } from "./AgentReasoningRawContentEvent";
|
||||
import type { AgentReasoningSectionBreakEvent } from "./AgentReasoningSectionBreakEvent";
|
||||
import type { ApplyPatchApprovalRequestEvent } from "./ApplyPatchApprovalRequestEvent";
|
||||
import type { BackgroundEventEvent } from "./BackgroundEventEvent";
|
||||
import type { CollabAgentInteractionBeginEvent } from "./CollabAgentInteractionBeginEvent";
|
||||
import type { CollabAgentInteractionEndEvent } from "./CollabAgentInteractionEndEvent";
|
||||
import type { CollabAgentSpawnBeginEvent } from "./CollabAgentSpawnBeginEvent";
|
||||
import type { CollabAgentSpawnEndEvent } from "./CollabAgentSpawnEndEvent";
|
||||
import type { CollabCloseBeginEvent } from "./CollabCloseBeginEvent";
|
||||
import type { CollabCloseEndEvent } from "./CollabCloseEndEvent";
|
||||
import type { CollabResumeBeginEvent } from "./CollabResumeBeginEvent";
|
||||
import type { CollabResumeEndEvent } from "./CollabResumeEndEvent";
|
||||
import type { CollabWaitingBeginEvent } from "./CollabWaitingBeginEvent";
|
||||
import type { CollabWaitingEndEvent } from "./CollabWaitingEndEvent";
|
||||
import type { ContextCompactedEvent } from "./ContextCompactedEvent";
|
||||
import type { DeprecationNoticeEvent } from "./DeprecationNoticeEvent";
|
||||
import type { DynamicToolCallRequest } from "./DynamicToolCallRequest";
|
||||
import type { DynamicToolCallResponseEvent } from "./DynamicToolCallResponseEvent";
|
||||
import type { ElicitationRequestEvent } from "./ElicitationRequestEvent";
|
||||
import type { ErrorEvent } from "./ErrorEvent";
|
||||
import type { ExecApprovalRequestEvent } from "./ExecApprovalRequestEvent";
|
||||
import type { ExecCommandBeginEvent } from "./ExecCommandBeginEvent";
|
||||
import type { ExecCommandEndEvent } from "./ExecCommandEndEvent";
|
||||
import type { ExecCommandOutputDeltaEvent } from "./ExecCommandOutputDeltaEvent";
|
||||
import type { ExitedReviewModeEvent } from "./ExitedReviewModeEvent";
|
||||
import type { GetHistoryEntryResponseEvent } from "./GetHistoryEntryResponseEvent";
|
||||
import type { HookCompletedEvent } from "./HookCompletedEvent";
|
||||
import type { HookStartedEvent } from "./HookStartedEvent";
|
||||
import type { ImageGenerationBeginEvent } from "./ImageGenerationBeginEvent";
|
||||
import type { ImageGenerationEndEvent } from "./ImageGenerationEndEvent";
|
||||
import type { ItemCompletedEvent } from "./ItemCompletedEvent";
|
||||
import type { ItemStartedEvent } from "./ItemStartedEvent";
|
||||
import type { ListCustomPromptsResponseEvent } from "./ListCustomPromptsResponseEvent";
|
||||
import type { ListRemoteSkillsResponseEvent } from "./ListRemoteSkillsResponseEvent";
|
||||
import type { ListSkillsResponseEvent } from "./ListSkillsResponseEvent";
|
||||
import type { McpListToolsResponseEvent } from "./McpListToolsResponseEvent";
|
||||
import type { McpStartupCompleteEvent } from "./McpStartupCompleteEvent";
|
||||
import type { McpStartupUpdateEvent } from "./McpStartupUpdateEvent";
|
||||
import type { McpToolCallBeginEvent } from "./McpToolCallBeginEvent";
|
||||
import type { McpToolCallEndEvent } from "./McpToolCallEndEvent";
|
||||
import type { ModelRerouteEvent } from "./ModelRerouteEvent";
|
||||
import type { PatchApplyBeginEvent } from "./PatchApplyBeginEvent";
|
||||
import type { PatchApplyEndEvent } from "./PatchApplyEndEvent";
|
||||
import type { PlanDeltaEvent } from "./PlanDeltaEvent";
|
||||
import type { RawResponseItemEvent } from "./RawResponseItemEvent";
|
||||
import type { RealtimeConversationClosedEvent } from "./RealtimeConversationClosedEvent";
|
||||
import type { RealtimeConversationRealtimeEvent } from "./RealtimeConversationRealtimeEvent";
|
||||
import type { RealtimeConversationStartedEvent } from "./RealtimeConversationStartedEvent";
|
||||
import type { ReasoningContentDeltaEvent } from "./ReasoningContentDeltaEvent";
|
||||
import type { ReasoningRawContentDeltaEvent } from "./ReasoningRawContentDeltaEvent";
|
||||
import type { RemoteSkillDownloadedEvent } from "./RemoteSkillDownloadedEvent";
|
||||
import type { RequestPermissionsEvent } from "./RequestPermissionsEvent";
|
||||
import type { RequestUserInputEvent } from "./RequestUserInputEvent";
|
||||
import type { ReviewRequest } from "./ReviewRequest";
|
||||
import type { SessionConfiguredEvent } from "./SessionConfiguredEvent";
|
||||
import type { StreamErrorEvent } from "./StreamErrorEvent";
|
||||
import type { TerminalInteractionEvent } from "./TerminalInteractionEvent";
|
||||
import type { ThreadNameUpdatedEvent } from "./ThreadNameUpdatedEvent";
|
||||
import type { ThreadRolledBackEvent } from "./ThreadRolledBackEvent";
|
||||
import type { TokenCountEvent } from "./TokenCountEvent";
|
||||
import type { TurnAbortedEvent } from "./TurnAbortedEvent";
|
||||
import type { TurnCompleteEvent } from "./TurnCompleteEvent";
|
||||
import type { TurnDiffEvent } from "./TurnDiffEvent";
|
||||
import type { TurnStartedEvent } from "./TurnStartedEvent";
|
||||
import type { UndoCompletedEvent } from "./UndoCompletedEvent";
|
||||
import type { UndoStartedEvent } from "./UndoStartedEvent";
|
||||
import type { UpdatePlanArgs } from "./UpdatePlanArgs";
|
||||
import type { UserMessageEvent } from "./UserMessageEvent";
|
||||
import type { ViewImageToolCallEvent } from "./ViewImageToolCallEvent";
|
||||
import type { WarningEvent } from "./WarningEvent";
|
||||
import type { WebSearchBeginEvent } from "./WebSearchBeginEvent";
|
||||
import type { WebSearchEndEvent } from "./WebSearchEndEvent";
|
||||
|
||||
/**
|
||||
* Response event from the agent
|
||||
* NOTE: Make sure none of these values have optional types, as it will mess up the extension code-gen.
|
||||
*/
|
||||
export type EventMsg = { "type": "error" } & ErrorEvent | { "type": "warning" } & WarningEvent | { "type": "realtime_conversation_started" } & RealtimeConversationStartedEvent | { "type": "realtime_conversation_realtime" } & RealtimeConversationRealtimeEvent | { "type": "realtime_conversation_closed" } & RealtimeConversationClosedEvent | { "type": "model_reroute" } & ModelRerouteEvent | { "type": "context_compacted" } & ContextCompactedEvent | { "type": "thread_rolled_back" } & ThreadRolledBackEvent | { "type": "task_started" } & TurnStartedEvent | { "type": "task_complete" } & TurnCompleteEvent | { "type": "token_count" } & TokenCountEvent | { "type": "agent_message" } & AgentMessageEvent | { "type": "user_message" } & UserMessageEvent | { "type": "agent_message_delta" } & AgentMessageDeltaEvent | { "type": "agent_reasoning" } & AgentReasoningEvent | { "type": "agent_reasoning_delta" } & AgentReasoningDeltaEvent | { "type": "agent_reasoning_raw_content" } & AgentReasoningRawContentEvent | { "type": "agent_reasoning_raw_content_delta" } & AgentReasoningRawContentDeltaEvent | { "type": "agent_reasoning_section_break" } & AgentReasoningSectionBreakEvent | { "type": "session_configured" } & SessionConfiguredEvent | { "type": "thread_name_updated" } & ThreadNameUpdatedEvent | { "type": "mcp_startup_update" } & McpStartupUpdateEvent | { "type": "mcp_startup_complete" } & McpStartupCompleteEvent | { "type": "mcp_tool_call_begin" } & McpToolCallBeginEvent | { "type": "mcp_tool_call_end" } & McpToolCallEndEvent | { "type": "web_search_begin" } & WebSearchBeginEvent | { "type": "web_search_end" } & WebSearchEndEvent | { "type": "image_generation_begin" } & ImageGenerationBeginEvent | { "type": "image_generation_end" } & ImageGenerationEndEvent | { "type": "exec_command_begin" } & ExecCommandBeginEvent | { "type": "exec_command_output_delta" } & ExecCommandOutputDeltaEvent | { "type": "terminal_interaction" } & TerminalInteractionEvent | { "type": "exec_command_end" } & ExecCommandEndEvent | { "type": "view_image_tool_call" } & ViewImageToolCallEvent | { "type": "exec_approval_request" } & ExecApprovalRequestEvent | { "type": "request_permissions" } & RequestPermissionsEvent | { "type": "request_user_input" } & RequestUserInputEvent | { "type": "dynamic_tool_call_request" } & DynamicToolCallRequest | { "type": "dynamic_tool_call_response" } & DynamicToolCallResponseEvent | { "type": "elicitation_request" } & ElicitationRequestEvent | { "type": "apply_patch_approval_request" } & ApplyPatchApprovalRequestEvent | { "type": "deprecation_notice" } & DeprecationNoticeEvent | { "type": "background_event" } & BackgroundEventEvent | { "type": "undo_started" } & UndoStartedEvent | { "type": "undo_completed" } & UndoCompletedEvent | { "type": "stream_error" } & StreamErrorEvent | { "type": "patch_apply_begin" } & PatchApplyBeginEvent | { "type": "patch_apply_end" } & PatchApplyEndEvent | { "type": "turn_diff" } & TurnDiffEvent | { "type": "get_history_entry_response" } & GetHistoryEntryResponseEvent | { "type": "mcp_list_tools_response" } & McpListToolsResponseEvent | { "type": "list_custom_prompts_response" } & ListCustomPromptsResponseEvent | { "type": "list_skills_response" } & ListSkillsResponseEvent | { "type": "list_remote_skills_response" } & ListRemoteSkillsResponseEvent | { "type": "remote_skill_downloaded" } & RemoteSkillDownloadedEvent | { "type": "skills_update_available" } | { "type": "plan_update" } & UpdatePlanArgs | { "type": "turn_aborted" } & TurnAbortedEvent | { "type": "shutdown_complete" } | { "type": "entered_review_mode" } & ReviewRequest | { "type": "exited_review_mode" } & ExitedReviewModeEvent | { "type": "raw_response_item" } & RawResponseItemEvent | { "type": "item_started" } & ItemStartedEvent | { "type": "item_completed" } & ItemCompletedEvent | { "type": "hook_started" } & HookStartedEvent | { "type": "hook_completed" } & HookCompletedEvent | { "type": "agent_message_content_delta" } & AgentMessageContentDeltaEvent | { "type": "plan_delta" } & PlanDeltaEvent | { "type": "reasoning_content_delta" } & ReasoningContentDeltaEvent | { "type": "reasoning_raw_content_delta" } & ReasoningRawContentDeltaEvent | { "type": "collab_agent_spawn_begin" } & CollabAgentSpawnBeginEvent | { "type": "collab_agent_spawn_end" } & CollabAgentSpawnEndEvent | { "type": "collab_agent_interaction_begin" } & CollabAgentInteractionBeginEvent | { "type": "collab_agent_interaction_end" } & CollabAgentInteractionEndEvent | { "type": "collab_waiting_begin" } & CollabWaitingBeginEvent | { "type": "collab_waiting_end" } & CollabWaitingEndEvent | { "type": "collab_close_begin" } & CollabCloseBeginEvent | { "type": "collab_close_end" } & CollabCloseEndEvent | { "type": "collab_resume_begin" } & CollabResumeBeginEvent | { "type": "collab_resume_end" } & CollabResumeEndEvent;
|
||||
@@ -1,67 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ExecApprovalRequestSkillMetadata } from "./ExecApprovalRequestSkillMetadata";
|
||||
import type { ExecPolicyAmendment } from "./ExecPolicyAmendment";
|
||||
import type { NetworkApprovalContext } from "./NetworkApprovalContext";
|
||||
import type { NetworkPolicyAmendment } from "./NetworkPolicyAmendment";
|
||||
import type { ParsedCommand } from "./ParsedCommand";
|
||||
import type { PermissionProfile } from "./PermissionProfile";
|
||||
import type { ReviewDecision } from "./ReviewDecision";
|
||||
|
||||
export type ExecApprovalRequestEvent = {
|
||||
/**
|
||||
* Identifier for the associated command execution item.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Identifier for this specific approval callback.
|
||||
*
|
||||
* When absent, the approval is for the command item itself (`call_id`).
|
||||
* This is present for subcommand approvals (via execve intercept).
|
||||
*/
|
||||
approval_id?: string,
|
||||
/**
|
||||
* Turn ID that this command belongs to.
|
||||
* Uses `#[serde(default)]` for backwards compatibility.
|
||||
*/
|
||||
turn_id: string,
|
||||
/**
|
||||
* The command to be executed.
|
||||
*/
|
||||
command: Array<string>,
|
||||
/**
|
||||
* The command's working directory.
|
||||
*/
|
||||
cwd: string,
|
||||
/**
|
||||
* Optional human-readable reason for the approval (e.g. retry without sandbox).
|
||||
*/
|
||||
reason: string | null,
|
||||
/**
|
||||
* Optional network context for a blocked request that can be approved.
|
||||
*/
|
||||
network_approval_context?: NetworkApprovalContext,
|
||||
/**
|
||||
* Proposed execpolicy amendment that can be applied to allow future runs.
|
||||
*/
|
||||
proposed_execpolicy_amendment?: ExecPolicyAmendment,
|
||||
/**
|
||||
* Proposed network policy amendments (for example allow/deny this host in future).
|
||||
*/
|
||||
proposed_network_policy_amendments?: Array<NetworkPolicyAmendment>,
|
||||
/**
|
||||
* Optional additional filesystem permissions requested for this command.
|
||||
*/
|
||||
additional_permissions?: PermissionProfile,
|
||||
/**
|
||||
* Optional skill metadata when the approval was triggered by a skill script.
|
||||
*/
|
||||
skill_metadata?: ExecApprovalRequestSkillMetadata,
|
||||
/**
|
||||
* Ordered list of decisions the client may present for this prompt.
|
||||
*
|
||||
* When absent, clients should derive the legacy default set from the
|
||||
* other fields on this request.
|
||||
*/
|
||||
available_decisions?: Array<ReviewDecision>, parsed_cmd: Array<ParsedCommand>, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ExecApprovalRequestSkillMetadata = { path_to_skills_md: string, };
|
||||
@@ -1,35 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ExecCommandSource } from "./ExecCommandSource";
|
||||
import type { ParsedCommand } from "./ParsedCommand";
|
||||
|
||||
export type ExecCommandBeginEvent = {
|
||||
/**
|
||||
* Identifier so this can be paired with the ExecCommandEnd event.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Identifier for the underlying PTY process (when available).
|
||||
*/
|
||||
process_id?: string,
|
||||
/**
|
||||
* Turn ID that this command belongs to.
|
||||
*/
|
||||
turn_id: string,
|
||||
/**
|
||||
* The command to be executed.
|
||||
*/
|
||||
command: Array<string>,
|
||||
/**
|
||||
* The command's working directory if not the default cwd for the agent.
|
||||
*/
|
||||
cwd: string, parsed_cmd: Array<ParsedCommand>,
|
||||
/**
|
||||
* Where the command originated. Defaults to Agent for backward compatibility.
|
||||
*/
|
||||
source: ExecCommandSource,
|
||||
/**
|
||||
* Raw input sent to a unified exec session (if this is an interaction event).
|
||||
*/
|
||||
interaction_input?: string, };
|
||||
@@ -1,64 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ExecCommandSource } from "./ExecCommandSource";
|
||||
import type { ExecCommandStatus } from "./ExecCommandStatus";
|
||||
import type { ParsedCommand } from "./ParsedCommand";
|
||||
|
||||
export type ExecCommandEndEvent = {
|
||||
/**
|
||||
* Identifier for the ExecCommandBegin that finished.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Identifier for the underlying PTY process (when available).
|
||||
*/
|
||||
process_id?: string,
|
||||
/**
|
||||
* Turn ID that this command belongs to.
|
||||
*/
|
||||
turn_id: string,
|
||||
/**
|
||||
* The command that was executed.
|
||||
*/
|
||||
command: Array<string>,
|
||||
/**
|
||||
* The command's working directory if not the default cwd for the agent.
|
||||
*/
|
||||
cwd: string, parsed_cmd: Array<ParsedCommand>,
|
||||
/**
|
||||
* Where the command originated. Defaults to Agent for backward compatibility.
|
||||
*/
|
||||
source: ExecCommandSource,
|
||||
/**
|
||||
* Raw input sent to a unified exec session (if this is an interaction event).
|
||||
*/
|
||||
interaction_input?: string,
|
||||
/**
|
||||
* Captured stdout
|
||||
*/
|
||||
stdout: string,
|
||||
/**
|
||||
* Captured stderr
|
||||
*/
|
||||
stderr: string,
|
||||
/**
|
||||
* Captured aggregated output
|
||||
*/
|
||||
aggregated_output: string,
|
||||
/**
|
||||
* The command's exit code.
|
||||
*/
|
||||
exit_code: number,
|
||||
/**
|
||||
* The duration of the command execution.
|
||||
*/
|
||||
duration: string,
|
||||
/**
|
||||
* Formatted output from the command, as seen by the model.
|
||||
*/
|
||||
formatted_output: string,
|
||||
/**
|
||||
* Completion status for this command execution.
|
||||
*/
|
||||
status: ExecCommandStatus, };
|
||||
@@ -1,18 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ExecOutputStream } from "./ExecOutputStream";
|
||||
|
||||
export type ExecCommandOutputDeltaEvent = {
|
||||
/**
|
||||
* Identifier for the ExecCommandBegin that produced this chunk.
|
||||
*/
|
||||
call_id: string,
|
||||
/**
|
||||
* Which stream produced this chunk.
|
||||
*/
|
||||
stream: ExecOutputStream,
|
||||
/**
|
||||
* Raw bytes from the stream (may not be valid UTF-8).
|
||||
*/
|
||||
chunk: string, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ExecCommandSource = "agent" | "user_shell" | "unified_exec_startup" | "unified_exec_interaction";
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ExecCommandStatus = "completed" | "failed" | "declined";
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type ExecOutputStream = "stdout" | "stderr";
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { ReviewOutputEvent } from "./ReviewOutputEvent";
|
||||
|
||||
export type ExitedReviewModeEvent = { review_output: ReviewOutputEvent | null, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AbsolutePathBuf } from "./AbsolutePathBuf";
|
||||
|
||||
export type FileSystemPermissions = { read: Array<AbsolutePathBuf> | null, write: Array<AbsolutePathBuf> | null, };
|
||||
@@ -1,10 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { HistoryEntry } from "./HistoryEntry";
|
||||
|
||||
export type GetHistoryEntryResponseEvent = { offset: number, log_id: bigint,
|
||||
/**
|
||||
* The entry at the requested offset, if available and parseable.
|
||||
*/
|
||||
entry: HistoryEntry | null, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type HistoryEntry = { conversation_id: string, ts: bigint, text: string, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { HookRunSummary } from "./HookRunSummary";
|
||||
|
||||
export type HookCompletedEvent = { turn_id: string | null, run: HookRunSummary, };
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user