agentic-runner 3.18.1__tar.gz → 3.18.3__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.18.1 → agentic_runner-3.18.3}/PKG-INFO +2 -2
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/pyproject.toml +1 -1
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/cli.py +13 -46
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/skills/agentic-runner-setup/SKILL.md +2 -3
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workstation.py +3 -48
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/.gitignore +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/LICENSE +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/README.md +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/activities.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/launch.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/oauth_connectors.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/registration.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/skill.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/usage_windows.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/acp_runtime.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/claude_runtime.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/claude_sign_in.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/settings.py +0 -0
- {agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/skills.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agentic-runner
|
|
3
|
-
Version: 3.18.
|
|
3
|
+
Version: 3.18.3
|
|
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.18.
|
|
8
|
+
Requires-Dist: agentic-runner-contracts==3.18.3
|
|
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.18.
|
|
13
|
+
"agentic-runner-contracts==3.18.3",
|
|
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.
|
|
@@ -13,8 +13,7 @@ the Organisation's cap.
|
|
|
13
13
|
|
|
14
14
|
``install | start | stop | status <org>`` and ``credential set`` are the workstation
|
|
15
15
|
Runner (PRD issue 47, ``workstation.py``): one login agent per Organisation, managed by
|
|
16
|
-
the user who hosts it, with no ``sudo`` anywhere.
|
|
17
|
-
beside them, reusing their control plane and ``PATH`` (ADR-0022 §21).
|
|
16
|
+
the user who hosts it, with no ``sudo`` anywhere.
|
|
18
17
|
|
|
19
18
|
``sign-in --contract <id>`` signs one Contract's Claude Code in with Anthropic's own flow,
|
|
20
19
|
in this terminal, as that Contract's uid in its harness root (QTS-1448). No code or token
|
|
@@ -165,7 +164,9 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
165
164
|
"--control-plane", default=os.environ.get(CONTROL_PLANE_ENV), help="control plane URL"
|
|
166
165
|
)
|
|
167
166
|
install.add_argument(
|
|
168
|
-
"--temporal-address",
|
|
167
|
+
"--temporal-address",
|
|
168
|
+
default="",
|
|
169
|
+
help="host:port; a fallback only, the Runner uses the address its registration gives",
|
|
169
170
|
)
|
|
170
171
|
install.add_argument(
|
|
171
172
|
"--temporal-plaintext",
|
|
@@ -180,21 +181,6 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
180
181
|
)
|
|
181
182
|
install.add_argument("--no-start", action="store_true", help="write the agent, do not start")
|
|
182
183
|
install.add_argument("--root", default=None, type=Path, help="state root (default per OS)")
|
|
183
|
-
|
|
184
|
-
add = subcommands.add_parser(
|
|
185
|
-
"add",
|
|
186
|
-
help="register another Runner under this install, with its own process, identity "
|
|
187
|
-
"and Recipient Key (one per Contract)",
|
|
188
|
-
)
|
|
189
|
-
add.add_argument("org", metavar="name", help="the new Runner's name on this machine")
|
|
190
|
-
add.add_argument(
|
|
191
|
-
"--beside",
|
|
192
|
-
default=None,
|
|
193
|
-
help="the installed Runner whose control plane and PATH to reuse; needed only when "
|
|
194
|
-
"the installed Runners talk to different control planes",
|
|
195
|
-
)
|
|
196
|
-
add.add_argument("--no-start", action="store_true", help="write the agent, do not start")
|
|
197
|
-
add.add_argument("--root", default=None, type=Path, help="state root (default per OS)")
|
|
198
184
|
for service_verb in ("start", "stop"):
|
|
199
185
|
driven = subcommands.add_parser(
|
|
200
186
|
service_verb, help=f"{service_verb} one Organisation's login agent"
|
|
@@ -328,7 +314,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
328
314
|
if arguments.org:
|
|
329
315
|
return workstation.run_process(_org_paths(arguments), login_agent=arguments.login_agent)
|
|
330
316
|
return asyncio.run(service.run(attestation=_image_attestation()))
|
|
331
|
-
if arguments.command in {"install", "
|
|
317
|
+
if arguments.command in {"install", "start", "stop", "credential"}:
|
|
332
318
|
return _workstation(arguments)
|
|
333
319
|
if arguments.command == "recipient-key":
|
|
334
320
|
api, kube_ns = in_cluster()
|
|
@@ -375,8 +361,6 @@ def _workstation(arguments: argparse.Namespace) -> int:
|
|
|
375
361
|
try:
|
|
376
362
|
if arguments.command == "install":
|
|
377
363
|
return _install(arguments, paths)
|
|
378
|
-
if arguments.command == "add":
|
|
379
|
-
return _add(arguments, paths)
|
|
380
364
|
if arguments.command == "start":
|
|
381
365
|
workstation.start(paths)
|
|
382
366
|
print(f"started {paths.org}")
|
|
@@ -440,7 +424,11 @@ def _install(arguments: argparse.Namespace, paths: workstation.OrgPaths) -> int:
|
|
|
440
424
|
except ValueError as error:
|
|
441
425
|
print(str(error), file=sys.stderr)
|
|
442
426
|
return 2
|
|
443
|
-
|
|
427
|
+
# Pasted, never a flag: a flag is in the process table for every uid on the box.
|
|
428
|
+
token = registration_token_from_env() or getpass.getpass(
|
|
429
|
+
"Runner Registration Token (yours from /me/runners, or the Organisation Admin's for "
|
|
430
|
+
"an Organisation Runner): "
|
|
431
|
+
)
|
|
444
432
|
settings = workstation.WorkstationSettings(
|
|
445
433
|
org=paths.org,
|
|
446
434
|
control_plane_url=arguments.control_plane,
|
|
@@ -450,19 +438,11 @@ def _install(arguments: argparse.Namespace, paths: workstation.OrgPaths) -> int:
|
|
|
450
438
|
install_channel=workstation.install_channel(),
|
|
451
439
|
acp_cli_kinds=acp_cli_kinds,
|
|
452
440
|
)
|
|
453
|
-
return _register(paths, settings, token, start=not arguments.no_start)
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
def _register(
|
|
457
|
-
paths: workstation.OrgPaths,
|
|
458
|
-
settings: workstation.WorkstationSettings,
|
|
459
|
-
token: str,
|
|
460
|
-
*,
|
|
461
|
-
start: bool,
|
|
462
|
-
) -> int:
|
|
463
441
|
try:
|
|
464
442
|
lines = asyncio.run(
|
|
465
|
-
workstation.install(
|
|
443
|
+
workstation.install(
|
|
444
|
+
paths, settings, registration_token=token, start_service=not arguments.no_start
|
|
445
|
+
)
|
|
466
446
|
)
|
|
467
447
|
except (workstation.CliMissingError, RunnerRegistrationError, RuntimeError) as error:
|
|
468
448
|
print(f"install refused: {error}", file=sys.stderr)
|
|
@@ -472,19 +452,6 @@ def _register(
|
|
|
472
452
|
return 0
|
|
473
453
|
|
|
474
454
|
|
|
475
|
-
def _add(arguments: argparse.Namespace, paths: workstation.OrgPaths) -> int:
|
|
476
|
-
settings = workstation.settings_to_add(paths, beside=arguments.beside)
|
|
477
|
-
return _register(paths, settings, _registration_token(), start=not arguments.no_start)
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
def _registration_token() -> str:
|
|
481
|
-
# Pasted, never a flag: a flag is in the process table for every uid on the box.
|
|
482
|
-
return registration_token_from_env() or getpass.getpass(
|
|
483
|
-
"Runner Registration Token (yours from /me/runners, or the Organisation Admin's for "
|
|
484
|
-
"an Organisation Runner): "
|
|
485
|
-
)
|
|
486
|
-
|
|
487
|
-
|
|
488
455
|
def _acp_cli_kinds(flag: str | None, paths: workstation.OrgPaths) -> str:
|
|
489
456
|
# A reinstall to pick up a new PATH or retry a token must not turn ACP off (QTS-1355).
|
|
490
457
|
if flag is not None:
|
|
@@ -22,7 +22,6 @@ The prompt they pasted from the console holds these. Ask for any that is missing
|
|
|
22
22
|
- **Control plane URL**: the Runner's `controlPlane.url`, copied from the console's
|
|
23
23
|
Runners page. It is the only control plane address you use, and only as a value you
|
|
24
24
|
pass to the Runner. Never call it or any other control plane address yourself.
|
|
25
|
-
- **Temporal address**: `host:port`, from the same page.
|
|
26
25
|
|
|
27
26
|
The **Runner Registration Token** is not one of them. It is the reusable credential a Runner registers
|
|
28
27
|
with, and the person types it only where the Runner reads it, never into this
|
|
@@ -82,7 +81,7 @@ without showing it:
|
|
|
82
81
|
|
|
83
82
|
```sh
|
|
84
83
|
uv tool install agentic-runner
|
|
85
|
-
agentic-runner install <org> --control-plane <control-plane-url>
|
|
84
|
+
agentic-runner install <org> --control-plane <control-plane-url>
|
|
86
85
|
```
|
|
87
86
|
|
|
88
87
|
You run the first line. Do not run the second yourself: wait until the person says it
|
|
@@ -91,7 +90,7 @@ finished, and ask for its last lines of output.
|
|
|
91
90
|
**Docker.** Follow
|
|
92
91
|
https://github.com/qtsone/agentic-runner/blob/main/docs/docker.md#the-env-file and then
|
|
93
92
|
https://github.com/qtsone/agentic-runner/blob/main/docs/docker.md#docker-run. Create
|
|
94
|
-
`runner.env` with the
|
|
93
|
+
`runner.env` with the control plane URL filled in, and ask the person to add the Agent
|
|
95
94
|
Token line to it themselves.
|
|
96
95
|
|
|
97
96
|
**Kubernetes.** Follow
|
|
@@ -7,8 +7,6 @@ precedent does on a developer machine and nothing a daemon would need:
|
|
|
7
7
|
identity, namespace, Runner Token, hooks, credential store and Workspaces under
|
|
8
8
|
``<root>/<org>/``. A contractor with two clients runs two. There is no supervisor over
|
|
9
9
|
N Organisations -- that is the "one Runner straddling Organisations" 12 A6 rejected.
|
|
10
|
-
``add <name>`` puts another such process beside them, a personal Runner per Contract
|
|
11
|
-
(ADR-0022 §21), named freely rather than after its Organisation.
|
|
12
10
|
* **A login agent, never a system daemon** (23 item 1): a LaunchAgent in
|
|
13
11
|
``~/Library/LaunchAgents`` on macOS, a systemd *user* unit (with linger) on Linux, a
|
|
14
12
|
per-user logon task on Windows. No ``sudo`` anywhere: the login keychain is unreachable
|
|
@@ -83,7 +81,6 @@ __all__ = [
|
|
|
83
81
|
"run_environment",
|
|
84
82
|
"run_process",
|
|
85
83
|
"service_definition",
|
|
86
|
-
"settings_to_add",
|
|
87
84
|
"start",
|
|
88
85
|
"status_lines",
|
|
89
86
|
"stop",
|
|
@@ -201,7 +198,9 @@ class WorkstationSettings(BaseModel):
|
|
|
201
198
|
|
|
202
199
|
org: str
|
|
203
200
|
control_plane_url: str
|
|
204
|
-
|
|
201
|
+
# A fallback only: `run` uses the address the registration response carries (ADR-0022
|
|
202
|
+
# §4). An install made before 3.17 saved one and keeps it.
|
|
203
|
+
temporal_address: str = ""
|
|
205
204
|
# `temporal-grpc.<zone>` over TLS with the Runner Token (15's note on 23): no VPN, no
|
|
206
205
|
# client certificate. Plaintext exists for a local dev server only.
|
|
207
206
|
temporal_tls: bool = True
|
|
@@ -676,50 +675,6 @@ async def install(
|
|
|
676
675
|
return lines
|
|
677
676
|
|
|
678
677
|
|
|
679
|
-
def settings_to_add(paths: OrgPaths, *, beside: str | None) -> WorkstationSettings:
|
|
680
|
-
"""``add <name>``: what ``install`` registers another Runner with (ADR-0022 §21).
|
|
681
|
-
|
|
682
|
-
A personal Runner serves one Contract, so a person with three Contracts runs three. Each
|
|
683
|
-
is ``install``'s own process with its own state directory -- identity, Runner Token and
|
|
684
|
-
Recipient Key (§37) -- and only the settings an earlier ``install`` was told are copied,
|
|
685
|
-
so the command the console shows carries no Temporal address.
|
|
686
|
-
"""
|
|
687
|
-
|
|
688
|
-
# Registered state, not workstation.json: ``install`` saves the settings before it
|
|
689
|
-
# registers, so a refused token leaves them behind and the retry must go through.
|
|
690
|
-
if load_state(paths.state_dir) is not None:
|
|
691
|
-
raise ValueError(
|
|
692
|
-
f"{paths.org!r} is already installed under {paths.root}; pick a new name for "
|
|
693
|
-
"the Runner you are adding"
|
|
694
|
-
)
|
|
695
|
-
return _settings_beside(paths.root, beside).model_copy(update={"org": paths.org})
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
def _settings_beside(root: Path, beside: str | None) -> WorkstationSettings:
|
|
699
|
-
if beside is not None:
|
|
700
|
-
return WorkstationSettings.load(OrgPaths(root=root, org=validate_org(beside)))
|
|
701
|
-
installed = [
|
|
702
|
-
WorkstationSettings.load(OrgPaths(root=root, org=file.parent.name))
|
|
703
|
-
for file in sorted(root.glob("*/workstation.json"), key=lambda file: file.stat().st_mtime)
|
|
704
|
-
]
|
|
705
|
-
if not installed:
|
|
706
|
-
raise FileNotFoundError(
|
|
707
|
-
f"no Runner is installed under {root}; run `agentic-runner install` first"
|
|
708
|
-
)
|
|
709
|
-
endpoints = {
|
|
710
|
-
(settings.control_plane_url, settings.temporal_address, settings.temporal_tls)
|
|
711
|
-
for settings in installed
|
|
712
|
-
}
|
|
713
|
-
if len(endpoints) > 1:
|
|
714
|
-
names = ", ".join(sorted(settings.org for settings in installed))
|
|
715
|
-
raise ValueError(
|
|
716
|
-
f"the Runners under {root} ({names}) talk to different control planes; "
|
|
717
|
-
"name the one to add beside with --beside"
|
|
718
|
-
)
|
|
719
|
-
# The newest install's PATH and ACP kinds: the latest the person told this machine.
|
|
720
|
-
return installed[-1]
|
|
721
|
-
|
|
722
|
-
|
|
723
678
|
def start(paths: OrgPaths, **driver: Any) -> None:
|
|
724
679
|
_drive_service(paths, "start", **driver)
|
|
725
680
|
|
|
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.18.1 → agentic_runner-3.18.3}/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.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/integrations/github/gh_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/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
|
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/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
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/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.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/_runtime_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/claude_runtime.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/claude_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/command_policy.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/contract_device_login.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/fastapi_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.18.1 → agentic_runner-3.18.3}/src/agentic_runner/workers/harness_outcome.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|