pilot-workers 0.4.0__tar.gz → 0.5.1__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 (97) hide show
  1. {pilot_workers-0.4.0/src/pilot_workers.egg-info → pilot_workers-0.5.1}/PKG-INFO +30 -20
  2. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/README.md +29 -19
  3. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/pyproject.toml +1 -1
  4. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/dispatch.py +298 -71
  5. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/fanout.py +249 -32
  6. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/install.py +146 -208
  7. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/main.py +4 -4
  8. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/run.py +86 -63
  9. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/status.py +79 -47
  10. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/providers/ds.yaml +3 -0
  11. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/providers/glm.yaml +3 -0
  12. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/providers/kimi-k3.yaml +3 -0
  13. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/integrations/README.md +2 -2
  14. pilot_workers-0.5.1/src/pilot_workers/integrations/claude-host/skills/pilot-workers/SKILL.md +198 -0
  15. pilot_workers-0.5.1/src/pilot_workers/integrations/codex-host/skills/pilot-workers/SKILL.md +183 -0
  16. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/maintain.py +99 -1
  17. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/policy.py +35 -3
  18. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/prompts/code.md +11 -0
  19. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/prompts/common.md +5 -1
  20. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/prompts/explore.md +8 -0
  21. pilot_workers-0.5.1/src/pilot_workers/prompts/review.md +17 -0
  22. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/prompts/test.md +10 -0
  23. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/providers.py +24 -0
  24. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/runners/base.py +2 -1
  25. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/runners/opencode_runner.py +47 -2
  26. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/runtime.py +144 -5
  27. {pilot_workers-0.4.0 → pilot_workers-0.5.1/src/pilot_workers.egg-info}/PKG-INFO +30 -20
  28. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers.egg-info/SOURCES.txt +8 -26
  29. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_cli_main.py +2 -1
  30. pilot_workers-0.5.1/tests/test_dispatch.py +474 -0
  31. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_fanout.py +104 -1
  32. pilot_workers-0.5.1/tests/test_fanout_watchdog.py +415 -0
  33. pilot_workers-0.5.1/tests/test_install.py +420 -0
  34. pilot_workers-0.5.1/tests/test_integrations.py +143 -0
  35. pilot_workers-0.5.1/tests/test_maintain.py +277 -0
  36. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_policy.py +100 -0
  37. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_providers.py +89 -0
  38. pilot_workers-0.5.1/tests/test_result_extract.py +163 -0
  39. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_run_cli.py +2 -1
  40. pilot_workers-0.5.1/tests/test_runner_cache.py +225 -0
  41. pilot_workers-0.5.1/tests/test_sandbox.py +314 -0
  42. pilot_workers-0.5.1/tests/test_status.py +168 -0
  43. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/ds-coder.md +0 -66
  44. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/ds-explorer.md +0 -56
  45. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/ds-reviewer.md +0 -50
  46. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/ds-tester.md +0 -46
  47. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/glm-coder.md +0 -66
  48. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/glm-explorer.md +0 -56
  49. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/glm-reviewer.md +0 -50
  50. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/glm-tester.md +0 -46
  51. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/kimi-coder.md +0 -66
  52. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/kimi-explorer.md +0 -56
  53. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/kimi-reviewer.md +0 -50
  54. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/agents/kimi-tester.md +0 -50
  55. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/glm/code.md +0 -48
  56. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/glm/explore.md +0 -38
  57. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/glm/review.md +0 -38
  58. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/glm/test.md +0 -30
  59. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/kimi/code.md +0 -47
  60. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/kimi/explore.md +0 -38
  61. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/kimi/review.md +0 -38
  62. pilot_workers-0.4.0/src/pilot_workers/integrations/claude-host/commands/kimi/test.md +0 -32
  63. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/ds/SKILL.md +0 -15
  64. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/ds/openai.yaml +0 -4
  65. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/glm/SKILL.md +0 -15
  66. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/glm/openai.yaml +0 -4
  67. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/kimi/SKILL.md +0 -15
  68. pilot_workers-0.4.0/src/pilot_workers/integrations/codex-host/kimi/openai.yaml +0 -4
  69. pilot_workers-0.4.0/src/pilot_workers/prompts/review.md +0 -5
  70. pilot_workers-0.4.0/tests/test_dispatch.py +0 -192
  71. pilot_workers-0.4.0/tests/test_install.py +0 -366
  72. pilot_workers-0.4.0/tests/test_status.py +0 -123
  73. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/LICENSE +0 -0
  74. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/setup.cfg +0 -0
  75. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/__init__.py +0 -0
  76. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/__main__.py +0 -0
  77. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/cli/__init__.py +0 -0
  78. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/credentials.py +0 -0
  79. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/permissions/README.md +0 -0
  80. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/permissions/relaxed.yaml +0 -0
  81. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/permissions/strict.yaml +0 -0
  82. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/providers/README.md +0 -0
  83. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/templates/code.md +0 -0
  84. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/templates/explore.md +0 -0
  85. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/templates/review.md +0 -0
  86. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/data/templates/test.md +0 -0
  87. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/fmt_events.py +0 -0
  88. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/runners/__init__.py +0 -0
  89. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers/scripts/install_runtime.sh +0 -0
  90. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers.egg-info/dependency_links.txt +0 -0
  91. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers.egg-info/entry_points.txt +0 -0
  92. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers.egg-info/requires.txt +0 -0
  93. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/src/pilot_workers.egg-info/top_level.txt +0 -0
  94. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_credentials.py +0 -0
  95. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_opencode_runner.py +0 -0
  96. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_render_unified.py +0 -0
  97. {pilot_workers-0.4.0 → pilot_workers-0.5.1}/tests/test_runtime.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pilot-workers
3
- Version: 0.4.0
3
+ Version: 0.5.1
4
4
  Summary: Dispatch bounded tasks to isolated LLM workers (GLM, Kimi, and more)
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.11
@@ -24,8 +24,9 @@ Dispatch bounded tasks to isolated LLM workers. Your main AI agent (Claude, Code
24
24
  - **Security by default**: API keys never appear in CLI args, environment variables, task contracts, or logs. Output is auto-redacted.
25
25
  - **Five modes**: `code` (edit), `explore` (read-only), `test` (run tests), `review` (read-only audit), `resume` (continue a prior code session).
26
26
  - **Pluggable runners**: the runner adapter layer (`Runner` ABC) abstracts engine-specific details. Currently ships with OpenCode; designed for future alternatives.
27
- - **Observable**: two-line JSON contract (`started` + `verdict`) for AI planners; human-readable `latest.log` for `tail -f`.
28
- - **Per-provider installs**: `install glm on claude` deploys only GLM's integration to Claude Code. Mix and match providers × hosts.
27
+ - **Observable**: two-line JSON contract (`started` + structured `verdict` carrying `parse_state`, a per-mode `result`, and `final_text_path`) for AI planners; human-readable `latest.log` for `tail -f`.
28
+ - **Per-run sandboxes**: every dispatch runs inside its own isolated XDG tree (`providers/<key>/runs/<run_id>/`) with a zero-copy symlink to the canonical credential and a shared per-provider cache; resume (`--session` + `--run-id`) reuses the original sandbox.
29
+ - **Host-level playbook**: one `pilot-workers` playbook skill per host (Claude Code or Codex). `install claude` / `install codex` deploys the same engine-neutral playbook regardless of which providers you've configured.
29
30
 
30
31
  ## Install
31
32
 
@@ -44,10 +45,10 @@ pilot-workers credentials glm
44
45
  pilot-workers credentials kimi-k3
45
46
  pilot-workers credentials ds
46
47
 
47
- # 3. Deploy integrations to your host
48
- pilot-workers install all on claude # Claude Code: 12 agents + 8 slash commands
49
- pilot-workers install all on codex # Codex: $glm / $kimi / $ds skills
50
- pilot-workers install glm on claude # or just one provider on one host
48
+ # 3. Deploy the playbook skill to your host
49
+ pilot-workers install claude # Claude Code: pilot-workers playbook skill
50
+ pilot-workers install codex # Codex: same playbook skill
51
+ pilot-workers install all # both hosts
51
52
 
52
53
  # 4. Check everything is ready
53
54
  pilot-workers status
@@ -71,17 +72,20 @@ pilot-workers <subcommand> [args]
71
72
  dispatch Deterministic wrapper around run (two-line JSON: started + verdict).
72
73
  fanout Dispatch several jobs concurrently; stdout = one JSON array of verdicts.
73
74
  template Print the task template for a mode (code|explore|test|review).
74
- install Install integrations or runner.
75
- install <provider|all> on <host|all>
75
+ install Install host playbook skill or runner.
76
+ install <host|all>
76
77
  install runner <name>
77
- uninstall Remove integrations or runner.
78
- uninstall <provider|all> on <host|all>
78
+ uninstall Remove host playbook skill or runner.
79
+ uninstall <host|all>
79
80
  uninstall runner <name>
80
81
  status Show provider credentials, host installs, and runner state.
81
82
  status [--json]
82
- status <provider> on <host>
83
+ status <host>
83
84
  credentials Configure isolated worker credentials.
84
- maintain Worker log and worktree lifecycle tools.
85
+ maintain Worker log, run-sandbox, and worktree lifecycle tools.
86
+ maintain logs --older-than-days N
87
+ maintain runs --older-than-days N [--keep M]
88
+ maintain worktrees list|remove <path>
85
89
  ```
86
90
 
87
91
  ## Adding a new provider
@@ -98,20 +102,26 @@ context_tokens: 128000
98
102
  output_tokens: 8192
99
103
  # runner: opencode # optional, default opencode
100
104
  # permissions: relaxed # optional, reference a permission profile
101
- # asset_prefix: my-model # optional, default = key; used for integration file naming
105
+ # asset_prefix: my-model # optional, default = key (legacy; no longer used for file naming)
106
+ # strengths: ... # optional, surfaced by `pilot-workers status`
107
+ # suitable_modes: ... # optional, surfaced by `pilot-workers status`
108
+ # notes: ... # optional, surfaced by `pilot-workers status`
102
109
  ```
103
110
 
104
- Then `pilot-workers credentials my-model` and `pilot-workers install my-model on claude`.
111
+ Then `pilot-workers credentials my-model` and `pilot-workers install claude` (or `codex`) to deploy/refresh the host playbook skill.
105
112
 
106
113
  Reserved keys (cannot be used as provider key): `runner`, `all`, `on`, `claude`, `codex`.
107
114
 
108
115
  ## Host integration
109
116
 
110
- The **host** is whatever AI agent acts as the planner. `integrations/` has ready-made configs:
111
- - **`claude-host/`**: 12 agents (glm/kimi/ds × coder/explorer/reviewer/tester) + 8 slash commands
112
- - **`codex-host/`**: `$glm` / `$kimi` / `$ds` skill entry points
117
+ The **host** is whatever AI agent acts as the planner. Each host ships ONE `pilot-workers` playbook skill (a doctrine playbook, not provider-specific syntax):
113
118
 
114
- Adding a new host: create `integrations/<name>-host/`, put whatever config your host needs, point it at `pilot-workers dispatch`. See `integrations/README.md`.
119
+ - **`claude-host/skills/pilot-workers/`**: playbook skill for Claude Code (installed to `~/.claude/skills/pilot-workers/`)
120
+ - **`codex-host/skills/pilot-workers/`**: the same playbook skill for Codex (installed to `$CODEX_HOME/skills/pilot-workers/`)
121
+
122
+ `pilot-workers install <host>` copies the skill into the host's skill directory; it carries no engine-specific knowledge and is the same regardless of which providers you've configured. (The v0.4.0 12-agents + 8-commands matrix is gone.)
123
+
124
+ Adding a new host: create `integrations/<name>-host/skills/pilot-workers/`, put whatever config your host needs, point it at `pilot-workers dispatch`. See `integrations/README.md`.
115
125
 
116
126
  ## Architecture
117
127
 
@@ -121,7 +131,7 @@ See [CLAUDE.md](CLAUDE.md) for the current architecture, module reference, and c
121
131
 
122
132
  ```bash
123
133
  python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"
124
- .venv/bin/pytest # 130 tests, all offline
134
+ .venv/bin/pytest # 297 tests, all offline
125
135
  ```
126
136
 
127
137
  ## License
@@ -9,8 +9,9 @@ Dispatch bounded tasks to isolated LLM workers. Your main AI agent (Claude, Code
9
9
  - **Security by default**: API keys never appear in CLI args, environment variables, task contracts, or logs. Output is auto-redacted.
10
10
  - **Five modes**: `code` (edit), `explore` (read-only), `test` (run tests), `review` (read-only audit), `resume` (continue a prior code session).
11
11
  - **Pluggable runners**: the runner adapter layer (`Runner` ABC) abstracts engine-specific details. Currently ships with OpenCode; designed for future alternatives.
12
- - **Observable**: two-line JSON contract (`started` + `verdict`) for AI planners; human-readable `latest.log` for `tail -f`.
13
- - **Per-provider installs**: `install glm on claude` deploys only GLM's integration to Claude Code. Mix and match providers × hosts.
12
+ - **Observable**: two-line JSON contract (`started` + structured `verdict` carrying `parse_state`, a per-mode `result`, and `final_text_path`) for AI planners; human-readable `latest.log` for `tail -f`.
13
+ - **Per-run sandboxes**: every dispatch runs inside its own isolated XDG tree (`providers/<key>/runs/<run_id>/`) with a zero-copy symlink to the canonical credential and a shared per-provider cache; resume (`--session` + `--run-id`) reuses the original sandbox.
14
+ - **Host-level playbook**: one `pilot-workers` playbook skill per host (Claude Code or Codex). `install claude` / `install codex` deploys the same engine-neutral playbook regardless of which providers you've configured.
14
15
 
15
16
  ## Install
16
17
 
@@ -29,10 +30,10 @@ pilot-workers credentials glm
29
30
  pilot-workers credentials kimi-k3
30
31
  pilot-workers credentials ds
31
32
 
32
- # 3. Deploy integrations to your host
33
- pilot-workers install all on claude # Claude Code: 12 agents + 8 slash commands
34
- pilot-workers install all on codex # Codex: $glm / $kimi / $ds skills
35
- pilot-workers install glm on claude # or just one provider on one host
33
+ # 3. Deploy the playbook skill to your host
34
+ pilot-workers install claude # Claude Code: pilot-workers playbook skill
35
+ pilot-workers install codex # Codex: same playbook skill
36
+ pilot-workers install all # both hosts
36
37
 
37
38
  # 4. Check everything is ready
38
39
  pilot-workers status
@@ -56,17 +57,20 @@ pilot-workers <subcommand> [args]
56
57
  dispatch Deterministic wrapper around run (two-line JSON: started + verdict).
57
58
  fanout Dispatch several jobs concurrently; stdout = one JSON array of verdicts.
58
59
  template Print the task template for a mode (code|explore|test|review).
59
- install Install integrations or runner.
60
- install <provider|all> on <host|all>
60
+ install Install host playbook skill or runner.
61
+ install <host|all>
61
62
  install runner <name>
62
- uninstall Remove integrations or runner.
63
- uninstall <provider|all> on <host|all>
63
+ uninstall Remove host playbook skill or runner.
64
+ uninstall <host|all>
64
65
  uninstall runner <name>
65
66
  status Show provider credentials, host installs, and runner state.
66
67
  status [--json]
67
- status <provider> on <host>
68
+ status <host>
68
69
  credentials Configure isolated worker credentials.
69
- maintain Worker log and worktree lifecycle tools.
70
+ maintain Worker log, run-sandbox, and worktree lifecycle tools.
71
+ maintain logs --older-than-days N
72
+ maintain runs --older-than-days N [--keep M]
73
+ maintain worktrees list|remove <path>
70
74
  ```
71
75
 
72
76
  ## Adding a new provider
@@ -83,20 +87,26 @@ context_tokens: 128000
83
87
  output_tokens: 8192
84
88
  # runner: opencode # optional, default opencode
85
89
  # permissions: relaxed # optional, reference a permission profile
86
- # asset_prefix: my-model # optional, default = key; used for integration file naming
90
+ # asset_prefix: my-model # optional, default = key (legacy; no longer used for file naming)
91
+ # strengths: ... # optional, surfaced by `pilot-workers status`
92
+ # suitable_modes: ... # optional, surfaced by `pilot-workers status`
93
+ # notes: ... # optional, surfaced by `pilot-workers status`
87
94
  ```
88
95
 
89
- Then `pilot-workers credentials my-model` and `pilot-workers install my-model on claude`.
96
+ Then `pilot-workers credentials my-model` and `pilot-workers install claude` (or `codex`) to deploy/refresh the host playbook skill.
90
97
 
91
98
  Reserved keys (cannot be used as provider key): `runner`, `all`, `on`, `claude`, `codex`.
92
99
 
93
100
  ## Host integration
94
101
 
95
- The **host** is whatever AI agent acts as the planner. `integrations/` has ready-made configs:
96
- - **`claude-host/`**: 12 agents (glm/kimi/ds × coder/explorer/reviewer/tester) + 8 slash commands
97
- - **`codex-host/`**: `$glm` / `$kimi` / `$ds` skill entry points
102
+ The **host** is whatever AI agent acts as the planner. Each host ships ONE `pilot-workers` playbook skill (a doctrine playbook, not provider-specific syntax):
98
103
 
99
- Adding a new host: create `integrations/<name>-host/`, put whatever config your host needs, point it at `pilot-workers dispatch`. See `integrations/README.md`.
104
+ - **`claude-host/skills/pilot-workers/`**: playbook skill for Claude Code (installed to `~/.claude/skills/pilot-workers/`)
105
+ - **`codex-host/skills/pilot-workers/`**: the same playbook skill for Codex (installed to `$CODEX_HOME/skills/pilot-workers/`)
106
+
107
+ `pilot-workers install <host>` copies the skill into the host's skill directory; it carries no engine-specific knowledge and is the same regardless of which providers you've configured. (The v0.4.0 12-agents + 8-commands matrix is gone.)
108
+
109
+ Adding a new host: create `integrations/<name>-host/skills/pilot-workers/`, put whatever config your host needs, point it at `pilot-workers dispatch`. See `integrations/README.md`.
100
110
 
101
111
  ## Architecture
102
112
 
@@ -106,7 +116,7 @@ See [CLAUDE.md](CLAUDE.md) for the current architecture, module reference, and c
106
116
 
107
117
  ```bash
108
118
  python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"
109
- .venv/bin/pytest # 130 tests, all offline
119
+ .venv/bin/pytest # 297 tests, all offline
110
120
  ```
111
121
 
112
122
  ## License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pilot-workers"
7
- version = "0.4.0"
7
+ version = "0.5.1"
8
8
  description = "Dispatch bounded tasks to isolated LLM workers (GLM, Kimi, and more)"
9
9
  readme = "README.md"
10
10
  license = "MIT"