agentic-runner 3.4.1__tar.gz → 3.4.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.4.1 → agentic_runner-3.4.2}/PKG-INFO +1 -1
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/__init__.py +1 -1
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/contract_isolation.py +15 -3
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/.gitignore +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/LICENSE +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/README.md +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/pyproject.toml +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/activities.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/attempts.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/auth_mode.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/build.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/callback.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/child_watcher.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/cli.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/cli_floor.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/config.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/credentials.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/device_login_activities.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/egress.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/harness_self_test.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/heartbeat_link.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/hooks.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/host_store.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/contracts.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/evidence.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/workspace.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/auth.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/fake_client.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/gh_client.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/lifecycle.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/llm_proxy.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/mcp.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/message_store.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/private_state.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/py.typed +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/recipient_key_secret.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/registration.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/runtime/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/runtime/verifier_command.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/sealed_box.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/service.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/__main__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/control_plane.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/plugin.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/test_conformance.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/testing/workflow.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/tiny_http.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/triage_activities.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/user_sources.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/__init__.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/_runtime_support.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/agent_runtime.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/claude_runtime.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/codex_runtime.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/command_policy.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/contract_device_login.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/fastapi_client.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/harness_outcome.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/harness_usage.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/mcp_config.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/settings.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/skills.py +0 -0
- {agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workstation.py +0 -0
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/contract_isolation.py
RENAMED
|
@@ -133,11 +133,15 @@ class DirectiveSandbox:
|
|
|
133
133
|
|
|
134
134
|
``max_memory_bytes`` is None where the kernel cannot hold a memory ceiling (macOS, see
|
|
135
135
|
``ContractIsolation``): the spawn runs without one rather than not at all.
|
|
136
|
+
|
|
137
|
+
``max_processes`` is None whenever ``uid`` is: ``RLIMIT_NPROC`` counts every process
|
|
138
|
+
the real uid owns, not the spawn's descendants, so on the Runner's own user it is a
|
|
139
|
+
ceiling on the whole login session and the CLI's first fork fails (QTS-1321).
|
|
136
140
|
"""
|
|
137
141
|
|
|
138
142
|
home_dir: Path
|
|
139
143
|
harness_config_dir: Path
|
|
140
|
-
max_processes: int
|
|
144
|
+
max_processes: int | None
|
|
141
145
|
max_memory_bytes: int | None
|
|
142
146
|
uid: int | None = None
|
|
143
147
|
gid: int | None = None
|
|
@@ -191,7 +195,8 @@ class DirectiveSandbox:
|
|
|
191
195
|
max_memory_bytes = self.max_memory_bytes
|
|
192
196
|
|
|
193
197
|
def apply_floor() -> None:
|
|
194
|
-
|
|
198
|
+
if max_processes is not None:
|
|
199
|
+
resource.setrlimit(resource.RLIMIT_NPROC, (max_processes, max_processes))
|
|
195
200
|
if max_memory_bytes is not None:
|
|
196
201
|
resource.setrlimit(resource.RLIMIT_DATA, (max_memory_bytes, max_memory_bytes))
|
|
197
202
|
|
|
@@ -250,6 +255,13 @@ class ContractIsolation:
|
|
|
250
255
|
self._can_limit_memory = (
|
|
251
256
|
sys.platform != "darwin" if can_limit_memory is None else can_limit_memory
|
|
252
257
|
)
|
|
258
|
+
if not self._can_separate_uids:
|
|
259
|
+
_logger.warning(
|
|
260
|
+
"this host cannot separate Contract uids: Directive spawns run without the "
|
|
261
|
+
"%d-process RLIMIT_NPROC ceiling, which would count every process this "
|
|
262
|
+
"Runner's user owns",
|
|
263
|
+
max_processes,
|
|
264
|
+
)
|
|
253
265
|
if not self._can_limit_memory:
|
|
254
266
|
_logger.warning(
|
|
255
267
|
"this host refuses RLIMIT_DATA: Directive spawns run without the %d-byte "
|
|
@@ -332,7 +344,7 @@ class ContractIsolation:
|
|
|
332
344
|
return DirectiveSandbox(
|
|
333
345
|
home_dir=home,
|
|
334
346
|
harness_config_dir=harness,
|
|
335
|
-
max_processes=self._max_processes,
|
|
347
|
+
max_processes=self._max_processes if uid is not None else None,
|
|
336
348
|
max_memory_bytes=(
|
|
337
349
|
(memory_limit_bytes or self._memory_limit_bytes) if self._can_limit_memory else None
|
|
338
350
|
),
|
|
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
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/contracts.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/evidence.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/fake_workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/git/workspace.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/__init__.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/auth.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/fake_client.py
RENAMED
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/integrations/github/gh_client.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
|
{agentic_runner-3.4.1 → agentic_runner-3.4.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
|
{agentic_runner-3.4.1 → agentic_runner-3.4.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
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/_runtime_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_runner-3.4.1 → agentic_runner-3.4.2}/src/agentic_runner/workers/contract_device_login.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
|