agentic-runner 3.16.1__tar.gz → 3.17.0__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.17.0}/PKG-INFO +2 -2
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/pyproject.toml +1 -1
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/activities.py +1 -1
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/registration.py +4 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/service.py +11 -1
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/control_plane.py +9 -1
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/claude_runtime.py +24 -13
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/settings.py +9 -5
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/.gitignore +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/LICENSE +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/README.md +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/oauth_connectors.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/skill.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/skills/agentic-runner-setup/SKILL.md +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/usage_windows.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/acp_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/claude_sign_in.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.16.1 → agentic_runner-3.17.0}/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.
|
|
3
|
+
Version: 3.17.0
|
|
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.
|
|
8
|
+
Requires-Dist: agentic-runner-contracts==3.17.0
|
|
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.
|
|
13
|
+
"agentic-runner-contracts==3.17.0",
|
|
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.
|
|
@@ -3888,7 +3888,7 @@ class RunnerRalphActivities:
|
|
|
3888
3888
|
"event": "directive.repository_refused",
|
|
3889
3889
|
"product_id": product_id,
|
|
3890
3890
|
"runner_id": str(self._routing_identity.runner_id),
|
|
3891
|
-
"selector":
|
|
3891
|
+
"selector": [requirement.as_payload() for requirement in selector or ()],
|
|
3892
3892
|
},
|
|
3893
3893
|
)
|
|
3894
3894
|
|
|
@@ -123,6 +123,9 @@ class RunnerState(BaseModel):
|
|
|
123
123
|
# The control plane's cadence, as bootstrap told it (06 §4's 30 s by default); a
|
|
124
124
|
# state file written before issue 47 carries none and keeps the default.
|
|
125
125
|
heartbeat_interval_seconds: int = 30
|
|
126
|
+
# Where bootstrap said the namespace lives (ADR-0022 §4). Blank in a state file written
|
|
127
|
+
# before it, or from an older control plane: the process then uses `TEMPORAL_ADDRESS`.
|
|
128
|
+
temporal_address: str = ""
|
|
126
129
|
|
|
127
130
|
def signer(self) -> Ed25519PrivateKey:
|
|
128
131
|
key = serialization.load_pem_private_key(
|
|
@@ -279,6 +282,7 @@ class RunnerRegistrationClient:
|
|
|
279
282
|
tags=dict(tags),
|
|
280
283
|
max_concurrent_directives=max_concurrent_directives,
|
|
281
284
|
heartbeat_interval_seconds=response.heartbeat_interval_seconds,
|
|
285
|
+
temporal_address=response.temporal_address,
|
|
282
286
|
)
|
|
283
287
|
return state, response
|
|
284
288
|
|
|
@@ -1112,6 +1112,14 @@ async def _serve(
|
|
|
1112
1112
|
print(f"refusing to start ({error.reason}): {error}", flush=True)
|
|
1113
1113
|
return 1
|
|
1114
1114
|
print(outcome, flush=True)
|
|
1115
|
+
temporal_address = state.temporal_address or settings.TEMPORAL_ADDRESS
|
|
1116
|
+
if not temporal_address:
|
|
1117
|
+
print(
|
|
1118
|
+
"refusing to start (configuration_missing): the control plane gave no Temporal "
|
|
1119
|
+
"address and TEMPORAL_ADDRESS is not set",
|
|
1120
|
+
flush=True,
|
|
1121
|
+
)
|
|
1122
|
+
return 1
|
|
1115
1123
|
interval = (
|
|
1116
1124
|
heartbeat_interval if heartbeat_interval is not None else state.heartbeat_interval_seconds
|
|
1117
1125
|
)
|
|
@@ -1125,6 +1133,7 @@ async def _serve(
|
|
|
1125
1133
|
config=config,
|
|
1126
1134
|
settings=settings,
|
|
1127
1135
|
state=state,
|
|
1136
|
+
temporal_address=temporal_address,
|
|
1128
1137
|
mode=mode,
|
|
1129
1138
|
can_change_uid=can_change_uid,
|
|
1130
1139
|
control_plane=control_plane,
|
|
@@ -1148,6 +1157,7 @@ async def _serve_registered(
|
|
|
1148
1157
|
config: RunnerConfig,
|
|
1149
1158
|
settings: WorkerSettings,
|
|
1150
1159
|
state: RunnerState,
|
|
1160
|
+
temporal_address: str,
|
|
1151
1161
|
mode: IsolationMode,
|
|
1152
1162
|
can_change_uid: bool,
|
|
1153
1163
|
control_plane: str,
|
|
@@ -1241,7 +1251,7 @@ async def _serve_registered(
|
|
|
1241
1251
|
await asyncio.sleep(interval)
|
|
1242
1252
|
|
|
1243
1253
|
client = await connect(
|
|
1244
|
-
|
|
1254
|
+
temporal_address,
|
|
1245
1255
|
namespace=state.temporal_namespace,
|
|
1246
1256
|
api_key=stream.runner_token,
|
|
1247
1257
|
tls=os.environ.get(TEMPORAL_TLS_ENV, "").strip().lower() in {"1", "true", "yes"},
|
|
@@ -167,6 +167,8 @@ class FakeControlPlane:
|
|
|
167
167
|
contract_id: UUID = DEFAULT_CONTRACT_ID
|
|
168
168
|
agent_id: UUID = DEFAULT_AGENT_ID
|
|
169
169
|
cli_kind: str = "codex_cli"
|
|
170
|
+
# Blank answers as a control plane from before ADR-0022 §4 does: no address at all.
|
|
171
|
+
temporal_address: str = ""
|
|
170
172
|
|
|
171
173
|
bootstraps: list[BootstrapRequest] = field(default_factory=list)
|
|
172
174
|
runner_ids: list[UUID] = field(default_factory=list)
|
|
@@ -396,8 +398,14 @@ class FakeControlPlane:
|
|
|
396
398
|
contracts_floor=self.contracts_floor,
|
|
397
399
|
host_party=self.host_party,
|
|
398
400
|
heartbeat_interval_seconds=self.heartbeat_interval_seconds,
|
|
401
|
+
temporal_address=self.temporal_address,
|
|
402
|
+
)
|
|
403
|
+
return _Answer(
|
|
404
|
+
200,
|
|
405
|
+
response.model_dump(
|
|
406
|
+
mode="json", exclude=None if self.temporal_address else {"temporal_address"}
|
|
407
|
+
),
|
|
399
408
|
)
|
|
400
|
-
return _Answer(200, response.model_dump(mode="json"))
|
|
401
409
|
|
|
402
410
|
def _heartbeat(self, method: str, target: str, headers: dict[str, str], body: bytes) -> _Answer:
|
|
403
411
|
runner_id, runner = self._signed(method, target, headers, body)
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/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"])
|
|
@@ -13,7 +13,13 @@ from agentic_runner_contracts.activity_io import DEFAULT_BUDGET, Budget
|
|
|
13
13
|
class WorkerSettings(BaseSettings):
|
|
14
14
|
"""Runtime configuration for worker-only processes."""
|
|
15
15
|
|
|
16
|
-
TEMPORAL_ADDRESS: str = Field(
|
|
16
|
+
TEMPORAL_ADDRESS: str = Field(
|
|
17
|
+
default="",
|
|
18
|
+
description=(
|
|
19
|
+
"Temporal server address in host:port format. Only a fallback: the Runner uses "
|
|
20
|
+
"the address its registration response carries (ADR-0022 §4)."
|
|
21
|
+
),
|
|
22
|
+
)
|
|
17
23
|
TEMPORAL_NAMESPACE: str = Field(default="default", description="Temporal namespace name")
|
|
18
24
|
PLATFORM_WORKER_SHARD_INDEX: int = Field(
|
|
19
25
|
default=0,
|
|
@@ -115,10 +121,6 @@ class WorkerSettings(BaseSettings):
|
|
|
115
121
|
default=False,
|
|
116
122
|
description="Worker assertion that Codex policy hook or permission profile is configured",
|
|
117
123
|
)
|
|
118
|
-
ANTHROPIC_API_KEY: str = Field(
|
|
119
|
-
default="",
|
|
120
|
-
description="Claude Code runtime API key (api_key auth model; redacted from evidence)",
|
|
121
|
-
)
|
|
122
124
|
CLAUDE_MODEL: str = Field(
|
|
123
125
|
default="claude-opus-4-8",
|
|
124
126
|
description="Model id the Claude Code runtime runs with",
|
|
@@ -220,6 +222,8 @@ class WorkerSettings(BaseSettings):
|
|
|
220
222
|
"""Validate host:port shape for Temporal server address."""
|
|
221
223
|
|
|
222
224
|
stripped_value = value.strip()
|
|
225
|
+
if not stripped_value:
|
|
226
|
+
return stripped_value
|
|
223
227
|
if stripped_value.count(":") < 1:
|
|
224
228
|
raise ValueError("TEMPORAL_ADDRESS must follow host:port")
|
|
225
229
|
|
|
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.17.0}/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.17.0}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/integrations/github/gh_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/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
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/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.16.1 → agentic_runner-3.17.0}/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.17.0}/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.17.0}/src/agentic_runner/workers/claude_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/command_policy.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/contract_device_login.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/fastapi_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.16.1 → agentic_runner-3.17.0}/src/agentic_runner/workers/harness_outcome.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|