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.
Files changed (32) hide show
  1. {codexcw-0.2.2 → codexcw-0.2.3}/Cargo.lock +3 -3
  2. {codexcw-0.2.2 → codexcw-0.2.3}/Cargo.toml +2 -2
  3. {codexcw-0.2.2 → codexcw-0.2.3}/PKG-INFO +1 -1
  4. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/uv.lock +1 -1
  5. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/decoder.rs +15 -0
  6. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/event.rs +5 -0
  7. {codexcw-0.2.2 → codexcw-0.2.3}/pyproject.toml +1 -1
  8. {codexcw-0.2.2 → codexcw-0.2.3}/README.md +0 -0
  9. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/Cargo.toml +0 -0
  10. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/README.md +0 -0
  11. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/src/lib.rs +0 -0
  12. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/tests/fixtures/fake_codex.sh +0 -0
  13. {codexcw-0.2.2 → codexcw-0.2.3}/bindings/python/tests/test_smoke.py +0 -0
  14. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/Cargo.toml +0 -0
  15. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/README.md +0 -0
  16. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/examples/run.rs +0 -0
  17. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/account_usage.rs +0 -0
  18. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/args.rs +0 -0
  19. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/error.rs +0 -0
  20. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/group.rs +0 -0
  21. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/lib.rs +0 -0
  22. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/request.rs +0 -0
  23. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/runner.rs +0 -0
  24. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/session.rs +0 -0
  25. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/src/tail.rs +0 -0
  26. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/account_usage_it.rs +0 -0
  27. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/common/mod.rs +0 -0
  28. {codexcw-0.2.2 → codexcw-0.2.3}/crates/codexcw/tests/runner_it.rs +0 -0
  29. {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/__init__.py +0 -0
  30. {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/_codexcw.pyi +0 -0
  31. {codexcw-0.2.2 → codexcw-0.2.3}/python/codexcw/aio.py +0 -0
  32. {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.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.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.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.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.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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codexcw
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Operating System :: POSIX
@@ -17,7 +17,7 @@ wheels = [
17
17
 
18
18
  [[package]]
19
19
  name = "codexcw"
20
- version = "0.2.2"
20
+ version = "0.2.3"
21
21
  source = { editable = "." }
22
22
 
23
23
  [package.optional-dependencies]
@@ -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
  }
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "codexcw"
7
- version = "0.2.2"
7
+ version = "0.2.3"
8
8
  description = "Run the Codex CLI non-interactively from Python, backed by a Rust core."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes