codexcw 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codexcw-0.2.2 → codexcw-0.2.3}/Cargo.lock +3 -3
- {codexcw-0.2.2 → codexcw-0.2.3}/Cargo.toml +2 -2
- {codexcw-0.2.2 → codexcw-0.2.3}/PKG-INFO +1 -1
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/uv.lock +1 -1
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/decoder.rs +15 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/event.rs +5 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/pyproject.toml +1 -1
- {codexcw-0.2.2 → codexcw-0.2.3}/README.md +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/Cargo.toml +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/README.md +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/src/lib.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/tests/fixtures/fake_codex.sh +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/tests/test_smoke.py +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/Cargo.toml +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/README.md +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/examples/run.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/account_usage.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/args.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/error.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/group.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/lib.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/request.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/runner.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/session.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/tail.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/account_usage_it.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/common/mod.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/runner_it.rs +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/__init__.py +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/_codexcw.pyi +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/aio.py +0 -0
- {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/py.typed +0 -0
|
@@ -22,7 +22,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
22
22
|
|
|
23
23
|
[[package]]
|
|
24
24
|
name = "codexcw"
|
|
25
|
-
version = "0.2.
|
|
25
|
+
version = "0.2.3"
|
|
26
26
|
dependencies = [
|
|
27
27
|
"serde",
|
|
28
28
|
"serde_json",
|
|
@@ -35,7 +35,7 @@ dependencies = [
|
|
|
35
35
|
|
|
36
36
|
[[package]]
|
|
37
37
|
name = "codexcw-node"
|
|
38
|
-
version = "0.2.
|
|
38
|
+
version = "0.2.3"
|
|
39
39
|
dependencies = [
|
|
40
40
|
"codexcw",
|
|
41
41
|
"napi",
|
|
@@ -47,7 +47,7 @@ dependencies = [
|
|
|
47
47
|
|
|
48
48
|
[[package]]
|
|
49
49
|
name = "codexcw-py"
|
|
50
|
-
version = "0.2.
|
|
50
|
+
version = "0.2.3"
|
|
51
51
|
dependencies = [
|
|
52
52
|
"codexcw",
|
|
53
53
|
"pyo3",
|
|
@@ -3,7 +3,7 @@ resolver = "2"
|
|
|
3
3
|
members = ["crates/codexcw", "bindings/python"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.2.
|
|
6
|
+
version = "0.2.3"
|
|
7
7
|
edition = "2021"
|
|
8
8
|
rust-version = "1.90"
|
|
9
9
|
license = "CC0-1.0"
|
|
@@ -12,7 +12,7 @@ homepage = "https://github.com/c3-oss/codexcw"
|
|
|
12
12
|
authors = ["c3-oss"]
|
|
13
13
|
|
|
14
14
|
[workspace.dependencies]
|
|
15
|
-
codexcw = { path = "crates/codexcw", version = "0.2.
|
|
15
|
+
codexcw = { path = "crates/codexcw", version = "0.2.3" }
|
|
16
16
|
tokio = { version = "1", default-features = false, features = [
|
|
17
17
|
"process",
|
|
18
18
|
"io-util",
|
|
@@ -202,6 +202,21 @@ mod tests {
|
|
|
202
202
|
assert_eq!(item.status, "failed");
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
+
#[test]
|
|
206
|
+
fn decodes_collab_tool_call_kind() {
|
|
207
|
+
let event = decode_event(
|
|
208
|
+
br#"{"type":"item.started","item":{"id":"i0","type":"collab_tool_call","tool":"wait","sender_thread_id":"t-parent","receiver_thread_ids":[],"agents_states":{},"status":"in_progress"}}"#,
|
|
209
|
+
"run-x",
|
|
210
|
+
"t-parent",
|
|
211
|
+
SystemTime::UNIX_EPOCH,
|
|
212
|
+
)
|
|
213
|
+
.unwrap();
|
|
214
|
+
let item = event.item_started().unwrap();
|
|
215
|
+
assert_eq!(item.kind, ItemKind::CollabToolCall);
|
|
216
|
+
assert_eq!(item.status, "in_progress");
|
|
217
|
+
assert!(item.raw.contains("\"tool\":\"wait\""));
|
|
218
|
+
}
|
|
219
|
+
|
|
205
220
|
#[test]
|
|
206
221
|
fn missing_type_is_an_error() {
|
|
207
222
|
let err = decode_event(b"{}", "run", "", SystemTime::UNIX_EPOCH).unwrap_err();
|
|
@@ -80,6 +80,9 @@ pub enum ItemKind {
|
|
|
80
80
|
WebSearch,
|
|
81
81
|
/// `plan_update` — a Codex plan update.
|
|
82
82
|
PlanUpdate,
|
|
83
|
+
/// `collab_tool_call` — a multi-agent collab tool call
|
|
84
|
+
/// (spawn/wait/send between agent threads).
|
|
85
|
+
CollabToolCall,
|
|
83
86
|
/// `error` — an item-scoped Codex error.
|
|
84
87
|
Error,
|
|
85
88
|
/// An item type not yet modelled by this crate.
|
|
@@ -97,6 +100,7 @@ impl ItemKind {
|
|
|
97
100
|
ItemKind::McpToolCall => "mcp_tool_call",
|
|
98
101
|
ItemKind::WebSearch => "web_search",
|
|
99
102
|
ItemKind::PlanUpdate => "plan_update",
|
|
103
|
+
ItemKind::CollabToolCall => "collab_tool_call",
|
|
100
104
|
ItemKind::Error => "error",
|
|
101
105
|
ItemKind::Other(value) => value,
|
|
102
106
|
}
|
|
@@ -111,6 +115,7 @@ impl ItemKind {
|
|
|
111
115
|
"mcp_tool_call" => ItemKind::McpToolCall,
|
|
112
116
|
"web_search" => ItemKind::WebSearch,
|
|
113
117
|
"plan_update" => ItemKind::PlanUpdate,
|
|
118
|
+
"collab_tool_call" => ItemKind::CollabToolCall,
|
|
114
119
|
"error" => ItemKind::Error,
|
|
115
120
|
other => ItemKind::Other(other.to_string()),
|
|
116
121
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|