agentic-runner 3.16.0__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.0 → agentic_runner-3.16.2}/PKG-INFO +2 -2
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/pyproject.toml +1 -1
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/activities.py +4 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_runtime.py +24 -13
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/settings.py +0 -4
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/.gitignore +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/LICENSE +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/README.md +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/oauth_connectors.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/registration.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/skill.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/skills/agentic-runner-setup/SKILL.md +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/usage_windows.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/acp_runtime.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_sign_in.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.16.0 → 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.
|
|
@@ -1490,6 +1490,7 @@ def _persona_instructions_hash(instructions: str) -> str | None:
|
|
|
1490
1490
|
def _codex_evidence_payload(
|
|
1491
1491
|
codex_result: DirectiveResult,
|
|
1492
1492
|
*,
|
|
1493
|
+
cli_kind: str,
|
|
1493
1494
|
persona_slug: str | None = None,
|
|
1494
1495
|
persona_instructions: str = "",
|
|
1495
1496
|
prompt_notes: list[str] | None = None,
|
|
@@ -1517,6 +1518,7 @@ def _codex_evidence_payload(
|
|
|
1517
1518
|
),
|
|
1518
1519
|
"command_hash": codex_result.command_hash,
|
|
1519
1520
|
# What ran, which the Agent's configuration alone does not prove (ADR-0021).
|
|
1521
|
+
"cli_kind": cli_kind,
|
|
1520
1522
|
"model": codex_result.model or None,
|
|
1521
1523
|
"workspace": asdict(codex_result.evidence),
|
|
1522
1524
|
"persona_slug": persona_slug,
|
|
@@ -2145,6 +2147,7 @@ class RunnerRalphActivities:
|
|
|
2145
2147
|
source="ralph.codex_run",
|
|
2146
2148
|
payload=_codex_evidence_payload(
|
|
2147
2149
|
codex_result,
|
|
2150
|
+
cli_kind=runtime_state.cli_kind,
|
|
2148
2151
|
persona_slug=runtime_state.persona_slug,
|
|
2149
2152
|
persona_instructions=runtime_state.persona_instructions,
|
|
2150
2153
|
prompt_notes=prompt_notes,
|
|
@@ -5352,6 +5355,7 @@ class RunnerRalphActivities:
|
|
|
5352
5355
|
"agent_id": state.agent_id,
|
|
5353
5356
|
**_codex_evidence_payload(
|
|
5354
5357
|
codex_result,
|
|
5358
|
+
cli_kind=state.cli_kind,
|
|
5355
5359
|
persona_slug=state.persona_slug,
|
|
5356
5360
|
persona_instructions=state.persona_instructions,
|
|
5357
5361
|
prompt_notes=prompt_notes,
|
{agentic_runner-3.16.0 → 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
|
{agentic_runner-3.16.0 → 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.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/integrations/github/gh_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → 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.0 → 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.0 → 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.0 → 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.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/claude_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/command_policy.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_device_login.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → agentic_runner-3.16.2}/src/agentic_runner/workers/fastapi_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.0 → 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
|