Skip to content

Py sdk#1

Merged
Koukyosyumei merged 5 commits into
mainfrom
py-sdk
Jul 11, 2026
Merged

Py sdk#1
Koukyosyumei merged 5 commits into
mainfrom
py-sdk

Conversation

@Koukyosyumei

Copy link
Copy Markdown
Contributor

No description provided.

Stdlib-only asyncio package driving a child 'h5i orchestra serve' over
line-delimited JSON-RPC. Conductor/Agent mirror the Rust eDSL 1:1 (hire,
work/ask/review/revise, freeze, verify, judge, apply, step/scope/patched,
gate, preflight, trace); custom verdict policies are plain Python callables
committed through judge_begin/commit; on_turn= lets a score (or a test)
play the launcher. Typed frozen dataclasses carry the server's raw payloads
back verbatim for forward compatibility; errors map to a typed exception
hierarchy raised in the score's own stack frame. The patterns layer
(ensemble/integrate/pipeline/arena/map_reduce/judge_panel/debate) is ported
to public Python, port-faithful including the approval heuristic, the
independence expectations and the mean-score tie-break. Tests: 30 unit tests
against an in-process protocol mock + 2 integration tests against the real
binary, including a cross-process ensemble with scripted sh boxes mirroring
tests/orchestra_subprocess.rs.
… scores

Per-pattern: arena (ranked independent attempts + compare rows + gated
apply), pipeline (architect->implementer->hardener over materials),
judge_panel (rubric scoring over recorded evidence, judges hired pre-seal),
debate_then_build (conclusion steers work turns in the same run). Composed:
review_escalation (cheap-model-first ladder, senior takeover with the junior
artifact as material) and tournament (bracket of arena matches as separate
runs, semifinals concurrent — multi-run orchestration as plain function
calls). examples/README.md indexes them by when-to-reach-for-it; all
compile- and import-checked.
…ry integration)

test.yaml: ruff; pytest on 3.10-3.13 (integration auto-skips without a
binary); sdist/wheel build + twine check + clean-venv import; and an
integration job that checks out h5i-dev/h5i (branch-matched to the PR's
branch, falling back to main), builds the engine with rust-cache and
H5I_SKIP_WEB_BUILD=1, and runs the cross-process suite against the real
'h5i orchestra serve' — with a visible warning instead of a silent skip
while the bridge isn't on the engine's default branch yet.

release.yaml: on v* tags — verify tag==pyproject version, build, twine
check, publish via PyPI Trusted Publishing (OIDC, 'pypi' environment), and
attach dists to a GitHub release.

Also fixes the two ruff findings (unused asyncio import, E731 lambda) and
adds ruff to the dev extras.
… fix

The engine's H5I_SKIP_WEB_BUILD flag didn't create the web/dist folder
rust-embed requires at compile time (fixed upstream in h5i d18c953e, which
stubs it from build.rs); the mkdir keeps older engine refs — notably the
main-branch fallback — building too.
@Koukyosyumei Koukyosyumei merged commit 118f414 into main Jul 11, 2026
7 checks passed
@Koukyosyumei Koukyosyumei deleted the py-sdk branch July 11, 2026 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant