convertible-cli 0.2.0__tar.gz → 0.2.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.
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/CHANGELOG.md +6 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/CLAUDE.md +2 -1
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/PKG-INFO +7 -1
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/README.md +6 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/engines/vllm_openai.py +4 -2
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/pyproject.toml +1 -1
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_vllm_live.py +2 -2
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/uv.lock +1 -1
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/agent-config/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/run-tests/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/think/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/think/scripts/think.sh +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/version-bump/SKILL.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills.local.yaml.example +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.devague/current +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.devague/current_plan +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.devague/frames/convertible-v0-ships-point-it-at-a-repo-task-and-i.json +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.devague/plans/convertible-v0-ships-point-it-at-a-repo-task-and-i.json +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.flake8 +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.github/workflows/publish.yml +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.github/workflows/tests.yml +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.gitignore +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/.markdownlint-cli2.yaml +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/LICENSE +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/__main__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/artifact.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/cli.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/doctor.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/drive.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/explain.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/learn.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/overview.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/wheels.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_commands/whoami.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_errors.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/cli/_output.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/config.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/contract.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/engine.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/engines/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/engines/mock.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/explain/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/explain/catalog.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/handoff.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/loop.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/registry.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/convertible/tools.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/culture.yaml +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/docs/plans/2026-05-26-convertible-v0-ships-point-it-at-a-repo-task-and-i.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/docs/skill-sources.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/docs/specs/2026-05-26-convertible-v0-ships-point-it-at-a-repo-task-and-i.md +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/sonar-project.properties +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/__init__.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_artifact.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_cli.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_cli_introspection.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_config.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_contract.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_drive.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_e2e_mock.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_engine.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_handoff.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_loop.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_mock_engine.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_registry.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_tools.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_vllm_openai.py +0 -0
- {convertible_cli-0.2.0 → convertible_cli-0.2.1}/tests/test_wheels.py +0 -0
|
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/). This project
|
|
6
6
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.1] - 2026-05-27
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Generalized the vLLM tool-call-parser docs from hermes-specific to model-appropriate (e.g. hermes or qwen3_coder); the engine is parser-agnostic and only needs OpenAI-format tool calls. Touches vllm_openai docstring, the live-proof test docstring, README, and CLAUDE.md.
|
|
13
|
+
|
|
8
14
|
## [0.2.0] - 2026-05-27
|
|
9
15
|
|
|
10
16
|
### Added
|
|
@@ -75,7 +75,8 @@ uv run teken cli doctor . --strict # agent-first rubric gate
|
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
The live vLLM proof is opt-in (the reference rig must expose tool calling:
|
|
78
|
-
`--enable-auto-tool-choice
|
|
78
|
+
`--enable-auto-tool-choice` plus a model-appropriate `--tool-call-parser`, e.g.
|
|
79
|
+
`hermes` or `qwen3_coder`):
|
|
79
80
|
|
|
80
81
|
```bash
|
|
81
82
|
CONVERTIBLE_VLLM_E2E=1 uv run pytest tests/test_vllm_live.py -v
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: convertible-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Convertible CLI is a swappable coder-agent harness that turns different models into repo workers behind one shared task contract.
|
|
5
5
|
Project-URL: Homepage, https://github.com/agentculture/convertible
|
|
6
6
|
Project-URL: Issues, https://github.com/agentculture/convertible/issues
|
|
@@ -86,6 +86,12 @@ vllm serve Qwen/Qwen3-32B \
|
|
|
86
86
|
--tool-call-parser hermes
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
The right `--tool-call-parser` depends on the model **and** the vLLM build:
|
|
90
|
+
`hermes` works for many models (including `Qwen/Qwen3-32B` above), while other
|
|
91
|
+
builds need a different one — e.g. an NVFP4 Qwen3 checkpoint served via vLLM may
|
|
92
|
+
want `qwen3_coder`. The engine itself is parser-agnostic — any parser that makes
|
|
93
|
+
the server emit OpenAI-format tool calls works.
|
|
94
|
+
|
|
89
95
|
Then point Convertible at it (defaults already target `localhost:8001`):
|
|
90
96
|
|
|
91
97
|
```bash
|
|
@@ -69,6 +69,12 @@ vllm serve Qwen/Qwen3-32B \
|
|
|
69
69
|
--tool-call-parser hermes
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
+
The right `--tool-call-parser` depends on the model **and** the vLLM build:
|
|
73
|
+
`hermes` works for many models (including `Qwen/Qwen3-32B` above), while other
|
|
74
|
+
builds need a different one — e.g. an NVFP4 Qwen3 checkpoint served via vLLM may
|
|
75
|
+
want `qwen3_coder`. The engine itself is parser-agnostic — any parser that makes
|
|
76
|
+
the server emit OpenAI-format tool calls works.
|
|
77
|
+
|
|
72
78
|
Then point Convertible at it (defaults already target `localhost:8001`):
|
|
73
79
|
|
|
74
80
|
```bash
|
|
@@ -7,8 +7,10 @@ stdlib ``urllib`` rather than any vendor SDK — pointing :class:`EngineConfig`
|
|
|
7
7
|
any OpenAI-compatible server (vLLM, llama.cpp, an OpenAI proxy) is a config
|
|
8
8
|
change, never a code change (honesty condition h2).
|
|
9
9
|
|
|
10
|
-
vLLM note:
|
|
11
|
-
``--
|
|
10
|
+
vLLM note: tool calling needs the server started with ``--enable-auto-tool-choice``
|
|
11
|
+
and a ``--tool-call-parser`` matching the model (e.g. ``hermes`` for many models,
|
|
12
|
+
``qwen3_coder`` for some Qwen3 builds). The engine is parser-agnostic — it only
|
|
13
|
+
needs the server to emit OpenAI-format tool calls.
|
|
12
14
|
"""
|
|
13
15
|
|
|
14
16
|
from __future__ import annotations
|
|
@@ -12,8 +12,8 @@ Run it (with the reference rig up) like::
|
|
|
12
12
|
CONVERTIBLE_MODEL=Qwen/Qwen3-32B \\
|
|
13
13
|
uv run pytest tests/test_vllm_live.py -v
|
|
14
14
|
|
|
15
|
-
The server must expose tool calling (vLLM:
|
|
16
|
-
``--
|
|
15
|
+
The server must expose tool calling (vLLM: ``--enable-auto-tool-choice`` plus a
|
|
16
|
+
``--tool-call-parser`` for the model, e.g. ``hermes`` or ``qwen3_coder``).
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
19
|
from __future__ import annotations
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/_resolve-nick.sh
RENAMED
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/cicd/scripts/portability-lint.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/fetch-issues.sh
RENAMED
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/mesh-message.sh
RENAMED
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/post-comment.sh
RENAMED
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/communicate/scripts/post-issue.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/doc-test-alignment/scripts/check.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{convertible_cli-0.2.0 → convertible_cli-0.2.1}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh
RENAMED
|
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
|
|
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
|
|
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
|