cli-agent-runner 0.1.0__tar.gz → 0.1.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.
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/ISSUE_TEMPLATE/config.yml +1 -1
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/workflows/release.yml +37 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/CHANGELOG.md +21 -2
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/CONTRIBUTING.md +2 -2
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/PKG-INFO +25 -16
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/README.md +19 -10
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/README.zh.md +16 -7
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/SECURITY.md +1 -1
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/_version.py +2 -2
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/quickstart.md +1 -1
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/pyproject.toml +5 -5
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.codecov.yml +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.github/workflows/ci.yml +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.gitignore +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/.vulture-whitelist.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/CODE_OF_CONDUCT.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/LICENSE +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/_docgen.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/agent_runtime.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/api.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/api_types.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/__main__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/common.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/init_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/install_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/monitor_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/peek_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/round_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/serve_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/cli/service_cmd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/config.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/context_store.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/critic.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/defenses.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/events.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/lifecycle.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/metrics.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/monitor.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/prompt_loader.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/round_view.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/runner.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/scaffold.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/service_unit.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/startup_check.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/agent_runner/vcs_state.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/build.sh +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/deploy/example-agent-runner.toml +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/deploy/launchd.plist.tmpl +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/deploy/run-loop.sh +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/deploy/systemd.service.tmpl +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/README.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/architecture.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/commands.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/configuration.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/docs/runbook.md +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/conftest.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/conftest.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/test_e2e_graceful_stop.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/test_e2e_install_systemd.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/test_e2e_monitor_remote.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/e2e/test_e2e_round_lifecycle.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_install_dry_run.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_monitor_seeded.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_run_loop_backoff.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_run_one_round_with_fake_agent.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_serve_loop.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_atomic_write_enforced.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_docs_generated.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_event_kind_registry.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_module_boundaries.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_no_pytest_skip_on_parse_fail.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_phase2_architecture.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_phase2_catalogs.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_phase2_module_sizes.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_repo_constants_patched_in_tests.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_stash_uses_sha_not_index.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/literate/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/literate/parser.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/literate/test_parser.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/literate/test_quickstart.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/__init__.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_agent_runtime.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_api_observation.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_api_service.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_api_types.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_cli.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_cli_common.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_cli_init_install.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_cli_service_peek_monitor.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_config.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_context_store.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_critic.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_defenses.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_docgen.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_events.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_lifecycle.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_metrics.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_monitor_assembly.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_monitor_detectors.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_monitor_remote.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_peek_argparse.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_prompt_loader.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_round_view.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_runner.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_scaffold.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_service_unit.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_startup_check.py +0 -0
- {cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_vcs_state.py +0 -0
|
@@ -56,3 +56,40 @@ jobs:
|
|
|
56
56
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
57
|
with:
|
|
58
58
|
attestations: true
|
|
59
|
+
|
|
60
|
+
github-release:
|
|
61
|
+
needs: publish-pypi
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
timeout-minutes: 5
|
|
64
|
+
permissions:
|
|
65
|
+
contents: write
|
|
66
|
+
steps:
|
|
67
|
+
- uses: actions/checkout@v4
|
|
68
|
+
- uses: actions/download-artifact@v4
|
|
69
|
+
with:
|
|
70
|
+
name: dist
|
|
71
|
+
path: dist/
|
|
72
|
+
- name: extract CHANGELOG section for this tag
|
|
73
|
+
run: |
|
|
74
|
+
VERSION="${GITHUB_REF#refs/tags/v}"
|
|
75
|
+
awk -v ver="$VERSION" '
|
|
76
|
+
/^## \[/ {
|
|
77
|
+
if (found) exit
|
|
78
|
+
if ($0 ~ "\\[" ver "\\]") { found = 1; next }
|
|
79
|
+
}
|
|
80
|
+
found { print }
|
|
81
|
+
' CHANGELOG.md > release-notes.md
|
|
82
|
+
if [ ! -s release-notes.md ]; then
|
|
83
|
+
echo "No CHANGELOG section for v$VERSION — using auto-generated notes." > release-notes.md
|
|
84
|
+
fi
|
|
85
|
+
echo "--- release-notes.md preview ---"
|
|
86
|
+
cat release-notes.md
|
|
87
|
+
- name: create GitHub Release
|
|
88
|
+
env:
|
|
89
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
90
|
+
run: |
|
|
91
|
+
VERSION="${GITHUB_REF#refs/tags/v}"
|
|
92
|
+
gh release create "v$VERSION" \
|
|
93
|
+
--title "v$VERSION" \
|
|
94
|
+
--notes-file release-notes.md \
|
|
95
|
+
dist/*
|
|
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.1] — 2026-05-12
|
|
11
|
+
|
|
12
|
+
Post-release polish: PyPI install path is documented as the primary entry,
|
|
13
|
+
the repository was renamed for naming parity with the distribution, and the
|
|
14
|
+
release workflow now auto-creates GitHub Releases.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- README + README.zh now show `pip install cli-agent-runner` as the primary
|
|
18
|
+
install path; the previous `git clone` flow moved to the Development section.
|
|
19
|
+
- Repository renamed from `wan9yu/agent-runner` to `wan9yu/cli-agent-runner`
|
|
20
|
+
for parity with the PyPI distribution name. All in-tree URL references
|
|
21
|
+
updated; GitHub redirects keep old links working.
|
|
22
|
+
|
|
23
|
+
### Build & CI
|
|
24
|
+
- Release workflow now creates a GitHub Release after PyPI publish, attaches
|
|
25
|
+
the sdist + wheel as release artifacts, and pulls release notes from the
|
|
26
|
+
matching CHANGELOG section.
|
|
27
|
+
|
|
10
28
|
## [0.1.0] — 2026-05-12
|
|
11
29
|
|
|
12
30
|
Initial public release on PyPI as `cli-agent-runner`.
|
|
@@ -39,5 +57,6 @@ Initial public release on PyPI as `cli-agent-runner`.
|
|
|
39
57
|
- Codecov-uploaded coverage from one canonical matrix cell.
|
|
40
58
|
- Tag-triggered release with TestPyPI smoke stage before PyPI.
|
|
41
59
|
|
|
42
|
-
[Unreleased]: https://github.com/wan9yu/agent-runner/compare/v0.1.
|
|
43
|
-
[0.1.
|
|
60
|
+
[Unreleased]: https://github.com/wan9yu/cli-agent-runner/compare/v0.1.1...HEAD
|
|
61
|
+
[0.1.1]: https://github.com/wan9yu/cli-agent-runner/releases/tag/v0.1.1
|
|
62
|
+
[0.1.0]: https://github.com/wan9yu/cli-agent-runner/releases/tag/v0.1.0
|
|
@@ -5,8 +5,8 @@ Thanks for your interest in contributing!
|
|
|
5
5
|
## Development setup
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
git clone https://github.com/wan9yu/agent-runner.git
|
|
9
|
-
cd agent-runner
|
|
8
|
+
git clone https://github.com/wan9yu/cli-agent-runner.git
|
|
9
|
+
cd cli-agent-runner
|
|
10
10
|
python3 -m venv .venv && source .venv/bin/activate
|
|
11
11
|
pip install -e ".[dev]"
|
|
12
12
|
./build.sh check
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cli-agent-runner
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Restart-on-exit supervisor for autonomous CLI agents
|
|
5
|
-
Project-URL: Homepage, https://github.com/wan9yu/agent-runner
|
|
6
|
-
Project-URL: Documentation, https://github.com/wan9yu/agent-runner#readme
|
|
7
|
-
Project-URL: Repository, https://github.com/wan9yu/agent-runner
|
|
8
|
-
Project-URL: Issues, https://github.com/wan9yu/agent-runner/issues
|
|
9
|
-
Project-URL: Changelog, https://github.com/wan9yu/agent-runner/blob/main/CHANGELOG.md
|
|
5
|
+
Project-URL: Homepage, https://github.com/wan9yu/cli-agent-runner
|
|
6
|
+
Project-URL: Documentation, https://github.com/wan9yu/cli-agent-runner#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/wan9yu/cli-agent-runner
|
|
8
|
+
Project-URL: Issues, https://github.com/wan9yu/cli-agent-runner/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/wan9yu/cli-agent-runner/blob/main/CHANGELOG.md
|
|
10
10
|
Author-email: wangyu <wangyu@go2imagination.com>
|
|
11
11
|
License-Expression: Apache-2.0
|
|
12
12
|
License-File: LICENSE
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
|
|
38
38
|
> **[中文](README.zh.md)** · English
|
|
39
39
|
|
|
40
|
-
[](https://github.com/wan9yu/agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/agent-runner) [](https://github.com/astral-sh/ruff)
|
|
40
|
+
[](https://github.com/wan9yu/cli-agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/cli-agent-runner) [](https://github.com/astral-sh/ruff)
|
|
41
41
|
|
|
42
42
|
# agent-runner
|
|
43
43
|
|
|
@@ -56,15 +56,19 @@ OAuth burn loops, full disks, runaway memory.
|
|
|
56
56
|
└──────────────────────────────────────────┘
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
##
|
|
59
|
+
## Install
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
pip install cli-agent-runner
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The installed CLI command is `agent-runner` (the PyPI distribution name is
|
|
66
|
+
prefixed for namespace disambiguation; the import name and command are not).
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
## Quick start
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
cd your-project
|
|
68
72
|
agent-runner init # scaffold agent-runner.toml + prompts/main.md
|
|
69
73
|
$EDITOR agent-runner.toml # point agent.command at your CLI
|
|
70
74
|
agent-runner install --monitor # systemd user units for serve + monitor
|
|
@@ -135,9 +139,14 @@ implementation TBD.
|
|
|
135
139
|
## Development
|
|
136
140
|
|
|
137
141
|
```bash
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
git clone https://github.com/wan9yu/cli-agent-runner.git
|
|
143
|
+
cd cli-agent-runner
|
|
144
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
145
|
+
pip install -e ".[dev]"
|
|
146
|
+
|
|
147
|
+
./build.sh check # full local-CI sweep
|
|
148
|
+
./build.sh test # unit + integration only
|
|
149
|
+
AGENT_RUNNER_E2E_PI=1 ./build.sh e2e # opt-in pi e2e (needs ssh alias `pi`)
|
|
141
150
|
```
|
|
142
151
|
|
|
143
152
|
Some `docs/*.md` blocks are generated from code — `./build.sh docs` rewrites
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
> **[中文](README.zh.md)** · English
|
|
2
2
|
|
|
3
|
-
[](https://github.com/wan9yu/agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/agent-runner) [](https://github.com/astral-sh/ruff)
|
|
3
|
+
[](https://github.com/wan9yu/cli-agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/cli-agent-runner) [](https://github.com/astral-sh/ruff)
|
|
4
4
|
|
|
5
5
|
# agent-runner
|
|
6
6
|
|
|
@@ -19,15 +19,19 @@ OAuth burn loops, full disks, runaway memory.
|
|
|
19
19
|
└──────────────────────────────────────────┘
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Install
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
pip install cli-agent-runner
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The installed CLI command is `agent-runner` (the PyPI distribution name is
|
|
29
|
+
prefixed for namespace disambiguation; the import name and command are not).
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
## Quick start
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cd your-project
|
|
31
35
|
agent-runner init # scaffold agent-runner.toml + prompts/main.md
|
|
32
36
|
$EDITOR agent-runner.toml # point agent.command at your CLI
|
|
33
37
|
agent-runner install --monitor # systemd user units for serve + monitor
|
|
@@ -98,9 +102,14 @@ implementation TBD.
|
|
|
98
102
|
## Development
|
|
99
103
|
|
|
100
104
|
```bash
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
git clone https://github.com/wan9yu/cli-agent-runner.git
|
|
106
|
+
cd cli-agent-runner
|
|
107
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
108
|
+
pip install -e ".[dev]"
|
|
109
|
+
|
|
110
|
+
./build.sh check # full local-CI sweep
|
|
111
|
+
./build.sh test # unit + integration only
|
|
112
|
+
AGENT_RUNNER_E2E_PI=1 ./build.sh e2e # opt-in pi e2e (needs ssh alias `pi`)
|
|
104
113
|
```
|
|
105
114
|
|
|
106
115
|
Some `docs/*.md` blocks are generated from code — `./build.sh docs` rewrites
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
> 中文 · **[English](README.md)**
|
|
2
2
|
|
|
3
|
-
[](https://github.com/wan9yu/agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/agent-runner) [](https://github.com/astral-sh/ruff)
|
|
3
|
+
[](https://github.com/wan9yu/cli-agent-runner/actions/workflows/ci.yml) [](https://pypi.org/project/cli-agent-runner/) [](https://pypi.org/project/cli-agent-runner/) [](https://opensource.org/licenses/Apache-2.0) [](https://codecov.io/gh/wan9yu/cli-agent-runner) [](https://github.com/astral-sh/ruff)
|
|
4
4
|
|
|
5
5
|
# agent-runner
|
|
6
6
|
|
|
@@ -34,15 +34,19 @@ supervisor 重启 —— 这是核心模式。中间穿插 11 条防御,避开
|
|
|
34
34
|
- `serve` 包住 round 形成长服务
|
|
35
35
|
- `monitor` 可以从本机也可以远程通过 ssh 观测一台 pi 上的 supervisor
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## 安装
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
pip install cli-agent-runner
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
CLI 命令仍是 `agent-runner`(PyPI 包名加 `cli-` 前缀只是为了规避命名冲突,
|
|
44
|
+
导入名 `agent_runner` 和命令名都不变)。
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
## 上手
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
cd your-project
|
|
46
50
|
agent-runner init # 生成 agent-runner.toml + prompts/main.md
|
|
47
51
|
$EDITOR agent-runner.toml # 把 agent.command 指向你的 CLI
|
|
48
52
|
agent-runner install --monitor # 装 systemd user unit(serve + monitor)
|
|
@@ -134,6 +138,11 @@ agent-runner monitor --json | jq -c # 输出 JSON 给下游 consumer
|
|
|
134
138
|
## 开发
|
|
135
139
|
|
|
136
140
|
```bash
|
|
141
|
+
git clone https://github.com/wan9yu/cli-agent-runner.git
|
|
142
|
+
cd cli-agent-runner
|
|
143
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
144
|
+
pip install -e ".[dev]"
|
|
145
|
+
|
|
137
146
|
./build.sh check # lint + 单元 + 集成 + literate + docs 一致性,本地 CI 全套
|
|
138
147
|
./build.sh test # 仅 230+ 单元 + 集成测试
|
|
139
148
|
./build.sh literate # 仅跑 quickstart.md 的可执行块
|
|
@@ -7,7 +7,7 @@ The latest tagged release. We do not back-port security fixes to older versions.
|
|
|
7
7
|
## Reporting a vulnerability
|
|
8
8
|
|
|
9
9
|
Please report security issues privately via GitHub Security Advisories:
|
|
10
|
-
<https://github.com/wan9yu/agent-runner/security/advisories/new>
|
|
10
|
+
<https://github.com/wan9yu/cli-agent-runner/security/advisories/new>
|
|
11
11
|
|
|
12
12
|
If GitHub Security Advisories is not workable for you, email
|
|
13
13
|
`wangyu@go2imagination.com` with the subject line `agent-runner security`.
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
21
|
+
__version__ = version = '0.1.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 1)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -6,7 +6,7 @@ with `python3.11+`, `git`, and the `claude` CLI on PATH.
|
|
|
6
6
|
## 1. Install agent-runner
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
git clone https://github.com/wan9yu/agent-runner.git ~/.agent-runner-pkg
|
|
9
|
+
git clone https://github.com/wan9yu/cli-agent-runner.git ~/.agent-runner-pkg
|
|
10
10
|
cd ~/.agent-runner-pkg
|
|
11
11
|
python3 -m venv .venv
|
|
12
12
|
.venv/bin/pip install -e .
|
|
@@ -35,11 +35,11 @@ dependencies = [
|
|
|
35
35
|
]
|
|
36
36
|
|
|
37
37
|
[project.urls]
|
|
38
|
-
Homepage = "https://github.com/wan9yu/agent-runner"
|
|
39
|
-
Documentation = "https://github.com/wan9yu/agent-runner#readme"
|
|
40
|
-
Repository = "https://github.com/wan9yu/agent-runner"
|
|
41
|
-
Issues = "https://github.com/wan9yu/agent-runner/issues"
|
|
42
|
-
Changelog = "https://github.com/wan9yu/agent-runner/blob/main/CHANGELOG.md"
|
|
38
|
+
Homepage = "https://github.com/wan9yu/cli-agent-runner"
|
|
39
|
+
Documentation = "https://github.com/wan9yu/cli-agent-runner#readme"
|
|
40
|
+
Repository = "https://github.com/wan9yu/cli-agent-runner"
|
|
41
|
+
Issues = "https://github.com/wan9yu/cli-agent-runner/issues"
|
|
42
|
+
Changelog = "https://github.com/wan9yu/cli-agent-runner/blob/main/CHANGELOG.md"
|
|
43
43
|
|
|
44
44
|
[project.scripts]
|
|
45
45
|
agent-runner = "agent_runner.cli:main"
|
|
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
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/integration/test_run_loop_backoff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_atomic_write_enforced.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_event_kind_registry.py
RENAMED
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_module_boundaries.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_phase2_architecture.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_phase2_module_sizes.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/invariants/test_stash_uses_sha_not_index.py
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
|
{cli_agent_runner-0.1.0 → cli_agent_runner-0.1.1}/tests/unit/test_cli_service_peek_monitor.py
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
|