agentic-dev-loop 1.0.0a21__tar.gz → 1.0.0a22__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.
Potentially problematic release.
This version of agentic-dev-loop might be problematic. Click here for more details.
- {agentic_dev_loop-1.0.0a21/src/agentic_dev_loop.egg-info → agentic_dev_loop-1.0.0a22}/PKG-INFO +1 -1
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/pyproject.toml +1 -1
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/isolation.py +2 -2
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22/src/agentic_dev_loop.egg-info}/PKG-INFO +1 -1
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_028_declared_caches.py +18 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_isolation.py +1 -1
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/LICENSE +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/README.md +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/setup.cfg +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/config.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/paths.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/results.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/verdict.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/actions.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/agents.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/cli.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/deps.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/dryrun.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/egress_policy.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/egress_proxy.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/extensions/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/extensions/aidlc.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/graph.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/hostboundary.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/llm.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/loaders.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/mounts.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/outputs.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/presets.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/proc.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/registry.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/seccomp/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/seccomp/chromium-userns.json +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/secrets.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/stages.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/step_workspace.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/sync_back.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/py.typed +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/viz/__init__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/viz/__main__.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/viz/server.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/SOURCES.txt +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/dependency_links.txt +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/entry_points.txt +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/requires.txt +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/top_level.txt +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_actions.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_agents.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_aidlc.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_cli.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_config.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_deps.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_dry_run.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_e2e_fixtures.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_egress_proxy.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_graph.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_hostboundary.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_hostboundary_integration.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_isolation_integration.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_isolation_pbt.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_llm.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_loaders.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_module_contract.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_outputs.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_outputs_pbt.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_proc.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_publish.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_qa_prompt.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_registry.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_repo_ascii.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_results.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_sdk_compat.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_secrets.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_secrets_integration.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_secrets_pipeline.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_source_resolution.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_stages.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_step_workspace.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_sync_back.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_trigger_script.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_unit5_config.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_unit5_pbt.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_unit5_pure.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_verdict.py +0 -0
- {agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_viz.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentic-dev-loop"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.0a22"
|
|
8
8
|
description = "Turn an LLM into a gated, sandboxed, resumable construction loop over your codebase."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/isolation.py
RENAMED
|
@@ -524,7 +524,7 @@ def repair_venv_shebangs(venv_dir: str | Path, *,
|
|
|
524
524
|
if not bin_dir.is_dir():
|
|
525
525
|
return
|
|
526
526
|
target = str(Path(export_root) / SANDBOX_VENV_DIR / "bin" / "python")
|
|
527
|
-
stale_prefix =
|
|
527
|
+
stale_prefix = (Path(state_dir) / "exports").as_posix() + "/"
|
|
528
528
|
for entry in sorted(bin_dir.iterdir()):
|
|
529
529
|
if entry.is_symlink() or not entry.is_file():
|
|
530
530
|
continue
|
|
@@ -539,7 +539,7 @@ def repair_venv_shebangs(venv_dir: str | Path, *,
|
|
|
539
539
|
interpreter = line[2:].strip()
|
|
540
540
|
if not interpreter or interpreter == target:
|
|
541
541
|
continue
|
|
542
|
-
if not interpreter.startswith(stale_prefix):
|
|
542
|
+
if not interpreter.replace("\\", "/").startswith(stale_prefix):
|
|
543
543
|
continue
|
|
544
544
|
_rewrite_shebang(entry, target)
|
|
545
545
|
|
|
@@ -239,3 +239,21 @@ class TestRepairVenvShebangs:
|
|
|
239
239
|
|
|
240
240
|
repair_venv_shebangs(venv, state_dir=state, export_root=new_export)
|
|
241
241
|
assert script.read_text().splitlines()[0] == f"#!{new_python}"
|
|
242
|
+
|
|
243
|
+
def test_repair_detects_backslash_separated_stale_shebangs(self, tmp_path):
|
|
244
|
+
"""Windows-written venv shebangs (backslash separators) must be
|
|
245
|
+
detected as stale and repaired, never silently skipped (a21 CI)."""
|
|
246
|
+
venv = tmp_path / "venv"
|
|
247
|
+
(venv / "bin").mkdir(parents=True)
|
|
248
|
+
state = tmp_path / "state"
|
|
249
|
+
new_export = state / "exports" / "bbbb"
|
|
250
|
+
new_python = new_export / ".venv-sandbox" / "bin" / "python"
|
|
251
|
+
new_python.parent.mkdir(parents=True)
|
|
252
|
+
new_python.write_text("#!/bin/sh\n")
|
|
253
|
+
stale = str(state / "exports" / "aaaa" / ".venv-sandbox"
|
|
254
|
+
/ "bin" / "python").replace("/", "\\")
|
|
255
|
+
(venv / "bin" / "pip").write_text(f"#!{stale}\nprint('hi')\n")
|
|
256
|
+
|
|
257
|
+
repair_venv_shebangs(venv, state_dir=state, export_root=new_export)
|
|
258
|
+
|
|
259
|
+
assert (venv / "bin" / "pip").read_text().splitlines()[0] == f"#!{new_python}"
|
|
@@ -1646,7 +1646,7 @@ class TestDeclaredCachesAndSyncExcludes:
|
|
|
1646
1646
|
cfg.isolation.sandbox_venv_dir = str(venv_dir)
|
|
1647
1647
|
ws, _runner, sandbox = self._startup(tmp_path, monkeypatch, cfg)
|
|
1648
1648
|
try:
|
|
1649
|
-
target = f"#!{sandbox.export_root
|
|
1649
|
+
target = f"#!{Path(sandbox.export_root) / '.venv-sandbox' / 'bin' / 'python'}"
|
|
1650
1650
|
first = (venv_dir / "bin" / "pip").read_text().splitlines()[0]
|
|
1651
1651
|
assert first == target
|
|
1652
1652
|
finally:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/results.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/core/verdict.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/__init__.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/actions.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/agents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/dryrun.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/egress_policy.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/egress_proxy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/graph.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/hostboundary.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/loaders.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/mounts.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/outputs.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/presets.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/secrets.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/stages.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/engine/sync_back.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/viz/__init__.py
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop/viz/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/requires.txt
RENAMED
|
File without changes
|
{agentic_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/src/agentic_dev_loop.egg-info/top_level.txt
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_dev_loop-1.0.0a21 → agentic_dev_loop-1.0.0a22}/tests/test_hostboundary_integration.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
|
|
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
|