agentic-runner 3.1.0__tar.gz → 3.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.
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/PKG-INFO +1 -1
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/registration.py +21 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/.gitignore +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/LICENSE +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/README.md +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/pyproject.toml +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/activities.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/claude_runtime.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/settings.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workstation.py +0 -0
|
@@ -69,6 +69,7 @@ INTAKE_IGNORED_PATH = "/api/runner/v1/runners/intake/ignored"
|
|
|
69
69
|
# The refusal a revoked Runner's heartbeat earns (06 §2: revocation *is* the refused
|
|
70
70
|
# heartbeat). The one reason this process stops on rather than retries.
|
|
71
71
|
RUNNER_REVOKED_REASON = "runner_revoked"
|
|
72
|
+
CONTROL_PLANE_OLDER_REASON = "control_plane_older"
|
|
72
73
|
|
|
73
74
|
# What the state directory holds after a successful bootstrap. One file, mode 0600: the
|
|
74
75
|
# private key is in it, and a Runner that loses it re-bootstraps rather than recovering.
|
|
@@ -346,9 +347,29 @@ def _refusal(response: httpx.Response) -> tuple[str, str]:
|
|
|
346
347
|
detail = None
|
|
347
348
|
if isinstance(detail, dict) and "reason" in detail:
|
|
348
349
|
return str(detail["reason"]), str(detail.get("detail", detail["reason"]))
|
|
350
|
+
if unknown := _fields_the_control_plane_does_not_know(response.status_code, detail):
|
|
351
|
+
return CONTROL_PLANE_OLDER_REASON, (
|
|
352
|
+
f"the control plane is older than this Runner (agentic-runner {runner_version}, "
|
|
353
|
+
f"agentic-runner-contracts {contracts_version}): it does not know "
|
|
354
|
+
f"{', '.join(unknown)}. Install the agentic-runner release that matches the "
|
|
355
|
+
"control plane, or ask your Organisation's Admin to upgrade it."
|
|
356
|
+
)
|
|
349
357
|
return "refused", f"{response.status_code}: {response.text[:200]}"
|
|
350
358
|
|
|
351
359
|
|
|
360
|
+
def _fields_the_control_plane_does_not_know(status_code: int, detail: Any) -> list[str]:
|
|
361
|
+
# A strict request model (extra="forbid") answering 422 with nothing but
|
|
362
|
+
# `extra_forbidden` errors is version skew, not a bad token: this Runner's contracts
|
|
363
|
+
# added fields the control plane's pinned contracts have not caught up to (RR-13).
|
|
364
|
+
if status_code != 422 or not isinstance(detail, list) or not detail:
|
|
365
|
+
return []
|
|
366
|
+
if not all(
|
|
367
|
+
isinstance(error, dict) and error.get("type") == "extra_forbidden" for error in detail
|
|
368
|
+
):
|
|
369
|
+
return []
|
|
370
|
+
return [str(error.get("loc", ["?"])[-1]) for error in detail]
|
|
371
|
+
|
|
372
|
+
|
|
352
373
|
class SignedIntakeStream:
|
|
353
374
|
""":class:`agentic_runner.user_sources.IntakeStream` over the signed outbound stream."""
|
|
354
375
|
|
|
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
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/fake_workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/fake_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/integrations/github/gh_client.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
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/runtime/verifier_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/testing/test_conformance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/_runtime_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/contract_device_login.py
RENAMED
|
File without changes
|
{agentic_runner-3.1.0 → agentic_runner-3.1.1}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|