agentic-runner 3.16.1__tar.gz → 3.16.2__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.16.1 → agentic_runner-3.16.2}/PKG-INFO +2 -2
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/pyproject.toml +1 -1
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_runtime.py +24 -13
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/settings.py +0 -4
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/.gitignore +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/LICENSE +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/README.md +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/activities.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/oauth_connectors.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/registration.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/skill.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/skills/agentic-runner-setup/SKILL.md +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/usage_windows.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/acp_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_sign_in.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workstation.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agentic-runner
|
|
3
|
-
Version: 3.16.
|
|
3
|
+
Version: 3.16.2
|
|
4
4
|
Summary: The Agentic OS Runner: an activity-only Temporal executor for workspaces, Agent Runtimes and verb seams
|
|
5
5
|
License-Expression: AGPL-3.0-only
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
Requires-Python: >=3.12
|
|
8
|
-
Requires-Dist: agentic-runner-contracts==3.16.
|
|
8
|
+
Requires-Dist: agentic-runner-contracts==3.16.2
|
|
9
9
|
Requires-Dist: cryptography<51,>=50
|
|
10
10
|
Requires-Dist: httpx<1.0,>=0.27
|
|
11
11
|
Requires-Dist: pydantic-settings<3.0,>=2.0
|
|
@@ -10,7 +10,7 @@ dependencies = [
|
|
|
10
10
|
# Exactly this release's contracts: the two ship as one version, and an unpinned
|
|
11
11
|
# requirement let `uv tool upgrade` keep an older contracts wheel the Runner cannot
|
|
12
12
|
# import from (QTS-1473). `scripts/set-version.py` moves it with the version.
|
|
13
|
-
"agentic-runner-contracts==3.16.
|
|
13
|
+
"agentic-runner-contracts==3.16.2",
|
|
14
14
|
# Imported directly by `registration.py` (the Ed25519 identity that signs every
|
|
15
15
|
# heartbeat); already present transitively through pyjwt[crypto], declared because
|
|
16
16
|
# we import it.
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_runtime.py
RENAMED
|
@@ -56,16 +56,18 @@ _SECRET_VALUE_PATTERNS: Final[tuple[re.Pattern[str], ...]] = (
|
|
|
56
56
|
class ClaudeRuntime(ResumableAgentRuntime):
|
|
57
57
|
"""Worker-local Claude Code CLI runtime.
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
Runs against the attempt's LLM proxy endpoint rather than a device-login session, so an
|
|
60
|
+
unattended Persona can run without an expiring browser session (ADR-0006), and the
|
|
61
|
+
subprocess holds only the attempt's bearer, never a provider key (QTS-1520). Like the
|
|
62
|
+
Codex runtime it confines execution to the supplied workspace, refuses fail-closed unless
|
|
63
|
+
the autonomous-permission guard is configured or the proxy endpoint is missing, and
|
|
64
|
+
returns bounded, redacted evidence safe for control-plane storage.
|
|
64
65
|
"""
|
|
65
66
|
|
|
66
|
-
# Subscription mode for Claude Code is local-agents 07; until then a
|
|
67
|
-
#
|
|
67
|
+
# Subscription mode for Claude Code is local-agents 07; until then a Contract with no
|
|
68
|
+
# delivered key has nothing this runtime may run on.
|
|
68
69
|
auth_modes = frozenset({AuthMode.API_KEY})
|
|
70
|
+
host_api_key = False
|
|
69
71
|
|
|
70
72
|
def __init__(
|
|
71
73
|
self,
|
|
@@ -75,7 +77,6 @@ class ClaudeRuntime(ResumableAgentRuntime):
|
|
|
75
77
|
) -> None:
|
|
76
78
|
self._settings = settings
|
|
77
79
|
self._runner = runner or run_subprocess_exec
|
|
78
|
-
self.host_api_key = bool(settings.ANTHROPIC_API_KEY)
|
|
79
80
|
|
|
80
81
|
def capabilities(self) -> RuntimeCapabilities:
|
|
81
82
|
return RuntimeCapabilities(
|
|
@@ -102,6 +103,17 @@ class ClaudeRuntime(ResumableAgentRuntime):
|
|
|
102
103
|
work_branch=request.work_branch,
|
|
103
104
|
evidence_limit_bytes=self._settings.CLAUDE_CLI_OUTPUT_LIMIT_BYTES,
|
|
104
105
|
)
|
|
106
|
+
if not dict(request.extra_env).get("ANTHROPIC_BASE_URL"):
|
|
107
|
+
# The proxy pair is the only credential this runtime hands the harness; without
|
|
108
|
+
# it the harness would fall back to whatever login or key it finds itself.
|
|
109
|
+
return _refused_result(
|
|
110
|
+
workspace_id=directive_workspace_id,
|
|
111
|
+
base_branch=request.base_branch,
|
|
112
|
+
work_branch=request.work_branch,
|
|
113
|
+
evidence_limit_bytes=self._settings.CLAUDE_CLI_OUTPUT_LIMIT_BYTES,
|
|
114
|
+
guard_mode="refused: api_key mode without an LLM proxy endpoint",
|
|
115
|
+
error="an api_key Claude Code Directive needs the attempt's LLM proxy endpoint",
|
|
116
|
+
)
|
|
105
117
|
|
|
106
118
|
model = request.model or self._settings.CLAUDE_MODEL
|
|
107
119
|
argv = _claude_argv(model)
|
|
@@ -140,7 +152,7 @@ class ClaudeRuntime(ResumableAgentRuntime):
|
|
|
140
152
|
)
|
|
141
153
|
# Per-Contract CLAUDE_CONFIG_DIR, never a fleet-wide one (ADR-0015 §4).
|
|
142
154
|
sandbox = request.sandbox
|
|
143
|
-
env = {
|
|
155
|
+
env: dict[str, str] = {}
|
|
144
156
|
if sandbox is not None:
|
|
145
157
|
env["CLAUDE_CONFIG_DIR"] = str(sandbox.harness_config_dir)
|
|
146
158
|
env["HOME"] = str(sandbox.home_dir)
|
|
@@ -207,7 +219,7 @@ class ClaudeRuntime(ResumableAgentRuntime):
|
|
|
207
219
|
|
|
208
220
|
|
|
209
221
|
def _guard_mode(settings: WorkerSettings) -> str | None:
|
|
210
|
-
if settings.
|
|
222
|
+
if settings.CLAUDE_DANGEROUSLY_SKIP_PERMISSIONS:
|
|
211
223
|
return "auth=api-key; permission=skip-in-sandbox; output=json"
|
|
212
224
|
return None
|
|
213
225
|
|
|
@@ -231,10 +243,9 @@ def _refused_result(
|
|
|
231
243
|
base_branch: str,
|
|
232
244
|
work_branch: str,
|
|
233
245
|
evidence_limit_bytes: int,
|
|
234
|
-
guard_mode: str = "refused: missing
|
|
246
|
+
guard_mode: str = "refused: missing autonomous permission configuration",
|
|
235
247
|
error: str = (
|
|
236
|
-
"Claude Code
|
|
237
|
-
"before worker-local execution"
|
|
248
|
+
"Claude Code autonomous permission configuration is required before worker-local execution"
|
|
238
249
|
),
|
|
239
250
|
) -> DirectiveResult:
|
|
240
251
|
command_hash = hash_command(["claude", "refused"])
|
|
@@ -115,10 +115,6 @@ class WorkerSettings(BaseSettings):
|
|
|
115
115
|
default=False,
|
|
116
116
|
description="Worker assertion that Codex policy hook or permission profile is configured",
|
|
117
117
|
)
|
|
118
|
-
ANTHROPIC_API_KEY: str = Field(
|
|
119
|
-
default="",
|
|
120
|
-
description="Claude Code runtime API key (api_key auth model; redacted from evidence)",
|
|
121
|
-
)
|
|
122
118
|
CLAUDE_MODEL: str = Field(
|
|
123
119
|
default="claude-opus-4-8",
|
|
124
120
|
description="Model id the Claude Code runtime runs with",
|
|
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.16.1 → agentic_runner-3.16.2}/src/agentic_runner/device_login_activities.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.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/gh_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/integrations/oauth/__init__.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
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/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
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/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
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/_runtime_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/command_policy.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_device_login.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/fastapi_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.16.2}/src/agentic_runner/workers/harness_outcome.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|