agentic-runner 3.26.0__tar.gz → 3.26.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.26.0 → agentic_runner-3.26.1}/PKG-INFO +2 -2
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/pyproject.toml +1 -1
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/sign_in.py +42 -35
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/.gitignore +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/LICENSE +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/README.md +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/activities.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/launch.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/llm_contracts.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/oauth_connectors.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/pool_key.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/registration.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/runner_limit.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/skill.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/skills/agentic-runner-setup/SKILL.md +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/usage_windows.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/acp_runtime.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/claude_runtime.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/claude_sign_in.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/contract_isolation.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/harness_logins.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/settings.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.26.0 → agentic_runner-3.26.1}/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.26.
|
|
3
|
+
Version: 3.26.1
|
|
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.26.
|
|
8
|
+
Requires-Dist: agentic-runner-contracts==3.26.1
|
|
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.26.
|
|
13
|
+
"agentic-runner-contracts==3.26.1",
|
|
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.
|
|
@@ -14,9 +14,10 @@ personal Runner serves one Contract, which the last heartbeat ack named
|
|
|
14
14
|
``codex login --device-auth`` with the code shown here. No code or token passes through
|
|
15
15
|
the control plane.
|
|
16
16
|
|
|
17
|
-
It refuses on a pool Runner, which uses only its pool's keys. It
|
|
18
|
-
when the ack says the Contract
|
|
19
|
-
|
|
17
|
+
It refuses on a pool Runner, which uses only its pool's keys. It offers a subscription
|
|
18
|
+
only when the ack says the Contract allows it; otherwise it says which of the right or
|
|
19
|
+
the person's acknowledgment is missing, names the console page that turns it on, and
|
|
20
|
+
offers the key (QTS-1776).
|
|
20
21
|
"""
|
|
21
22
|
|
|
22
23
|
from __future__ import annotations
|
|
@@ -92,14 +93,21 @@ class SignIn:
|
|
|
92
93
|
|
|
93
94
|
async def _one(self, cli_kind: str) -> int:
|
|
94
95
|
label = _LABELS[cli_kind]
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
offer = self._subscription_offer()
|
|
97
|
+
if isinstance(offer, str):
|
|
98
|
+
# Offering `[s]` and then refusing it is what sent an Organisation Admin looking
|
|
99
|
+
# for a switch nothing named (QTS-1776).
|
|
100
|
+
self.say(f"{label}: {offer}")
|
|
101
|
+
answer = self.ask(f"{label}: store an API [k]ey, or skip? [k/N] ")
|
|
102
|
+
else:
|
|
103
|
+
answer = self.ask(
|
|
104
|
+
f"{label}: sign in with your [s]ubscription, store an API [k]ey, or skip? [s/k/N] "
|
|
105
|
+
)
|
|
98
106
|
choice = answer.strip().lower()[:1]
|
|
99
107
|
if choice == "k":
|
|
100
108
|
return self._key(cli_kind)
|
|
101
|
-
if choice == "s":
|
|
102
|
-
return await self._subscription(cli_kind)
|
|
109
|
+
if choice == "s" and not isinstance(offer, str):
|
|
110
|
+
return await self._subscription(offer, cli_kind)
|
|
103
111
|
self.say(f"{label}: skipped")
|
|
104
112
|
return 0
|
|
105
113
|
|
|
@@ -118,39 +126,38 @@ class SignIn:
|
|
|
118
126
|
)
|
|
119
127
|
return 0
|
|
120
128
|
|
|
121
|
-
async def _subscription(self, cli_kind: str) -> int:
|
|
122
|
-
contract = self._contract()
|
|
123
|
-
if contract is None:
|
|
124
|
-
return 1
|
|
125
|
-
if contract.subscription == SubscriptionRight.NO_RIGHT:
|
|
126
|
-
self.say(
|
|
127
|
-
"refusing a subscription: your Contract does not allow your own subscription. "
|
|
128
|
-
"Ask an Organisation Admin to turn it on, or store an API key instead"
|
|
129
|
-
)
|
|
130
|
-
return 1
|
|
131
|
-
if contract.subscription == SubscriptionRight.NOT_ACKNOWLEDGED:
|
|
132
|
-
self.say(
|
|
133
|
-
"refusing a subscription: you have not acknowledged the subscription terms. "
|
|
134
|
-
"Acknowledge them on your Contract in the console, then run this again"
|
|
135
|
-
)
|
|
136
|
-
return 1
|
|
129
|
+
async def _subscription(self, contract: ContractLlmTerms, cli_kind: str) -> int:
|
|
137
130
|
returncode = await self.subscription(str(contract.contract_id), cli_kind)
|
|
138
131
|
if returncode != 0:
|
|
139
132
|
self.say(f"{_LABELS[cli_kind]}: the sign-in exited {returncode}; nothing changed")
|
|
140
133
|
return returncode
|
|
141
134
|
|
|
142
|
-
def
|
|
135
|
+
def _subscription_offer(self) -> ContractLlmTerms | str:
|
|
136
|
+
"""The one Contract a subscription signs in, or why the ack offers none."""
|
|
137
|
+
|
|
143
138
|
if self.contracts is None:
|
|
144
|
-
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
139
|
+
return (
|
|
140
|
+
"no subscription yet: this Runner has not yet been told its Contract. Start "
|
|
141
|
+
"it, wait for its first heartbeat, and run this again (the control plane must "
|
|
142
|
+
"be on contracts 3.25 or later)"
|
|
148
143
|
)
|
|
149
|
-
return None
|
|
150
144
|
if len(self.contracts) != 1:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
f"
|
|
145
|
+
return (
|
|
146
|
+
"no subscription: a personal Runner serves one Contract, and the control "
|
|
147
|
+
f"plane named {len(self.contracts)}"
|
|
148
|
+
)
|
|
149
|
+
contract = self.contracts[0]
|
|
150
|
+
if contract.subscription == SubscriptionRight.NO_RIGHT:
|
|
151
|
+
# TODO(QTS-1744): name the Contract editor once the right moves onto the Contract.
|
|
152
|
+
return (
|
|
153
|
+
"your own subscription is off for this Runner. An Organisation Admin turns it "
|
|
154
|
+
"on in the console with Allow subscription sign-in, on this Runner under "
|
|
155
|
+
"Personal Runners on /orgs/<organisation>/runners"
|
|
156
|
+
)
|
|
157
|
+
if contract.subscription == SubscriptionRight.NOT_ACKNOWLEDGED:
|
|
158
|
+
return (
|
|
159
|
+
"your own subscription is on for this Runner, and you have not acknowledged "
|
|
160
|
+
"the subscription terms. Acknowledge them in the console on My Contracts "
|
|
161
|
+
"(/me/contracts), then run this again"
|
|
154
162
|
)
|
|
155
|
-
|
|
156
|
-
return self.contracts[0]
|
|
163
|
+
return contract
|
|
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
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/integrations/github/gh_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.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
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.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
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/_runtime_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/claude_runtime.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/claude_sign_in.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/command_policy.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/fastapi_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/harness_logins.py
RENAMED
|
File without changes
|
{agentic_runner-3.26.0 → agentic_runner-3.26.1}/src/agentic_runner/workers/harness_outcome.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|