agentic-dev-loop 0.12.0__tar.gz → 0.12.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.
Files changed (139) hide show
  1. {agentic_dev_loop-0.12.0/src/agentic_dev_loop.egg-info → agentic_dev_loop-0.12.1}/PKG-INFO +40 -2
  2. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/README.md +39 -1
  3. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/pyproject.toml +1 -1
  4. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1/src/agentic_dev_loop.egg-info}/PKG-INFO +40 -2
  5. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/LICENSE +0 -0
  6. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/setup.cfg +0 -0
  7. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/__init__.py +0 -0
  8. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/__init__.py +0 -0
  9. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/config.py +0 -0
  10. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/paths.py +0 -0
  11. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/profiles/__init__.py +0 -0
  12. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/profiles/data/dotnet-node.yaml +0 -0
  13. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/profiles/data/python.yaml +0 -0
  14. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/results.py +0 -0
  15. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/core/verdict.py +0 -0
  16. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/__init__.py +0 -0
  17. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/actions.py +0 -0
  18. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/agent_error_guide.md +0 -0
  19. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/agent_error_guide.py +0 -0
  20. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/agents.py +0 -0
  21. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/allowlist.py +0 -0
  22. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/brief_coverage.py +0 -0
  23. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/brief_prompt.md +0 -0
  24. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/brief_prompt.py +0 -0
  25. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/cli.py +0 -0
  26. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/containers.py +0 -0
  27. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/copilot_auth.py +0 -0
  28. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/deps.py +0 -0
  29. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/dryrun.py +0 -0
  30. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/egress_policy.py +0 -0
  31. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/egress_proxy.py +0 -0
  32. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/extensions/__init__.py +0 -0
  33. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/extensions/aidlc.py +0 -0
  34. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/forbidden.py +0 -0
  35. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/graph.py +0 -0
  36. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/hostboundary.py +0 -0
  37. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/isolation.py +0 -0
  38. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/llm.py +0 -0
  39. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/loaders.py +0 -0
  40. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/mounts.py +0 -0
  41. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/__init__.py +0 -0
  42. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/checks.py +0 -0
  43. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/doctor.py +0 -0
  44. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/init.py +0 -0
  45. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/recipes/dotnet-node.yaml +0 -0
  46. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/recipes/python.yaml +0 -0
  47. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/recipes.py +0 -0
  48. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates/dev.agent.md +0 -0
  49. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates/env.example +0 -0
  50. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates/qa.agent.md +0 -0
  51. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates/review.agent.md +0 -0
  52. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates/trigger-agentic-dev-loop.sh +0 -0
  53. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/templates.py +0 -0
  54. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/onboarding/upgrade.py +0 -0
  55. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/outputs.py +0 -0
  56. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/presets.py +0 -0
  57. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/proc.py +0 -0
  58. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/provider_wire.py +0 -0
  59. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/registry.py +0 -0
  60. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/seccomp/__init__.py +0 -0
  61. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/seccomp/chromium-userns.json +0 -0
  62. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/secrets.py +0 -0
  63. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/stages.py +0 -0
  64. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/step_workspace.py +0 -0
  65. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/engine/sync_back.py +0 -0
  66. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/py.typed +0 -0
  67. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/viz/__init__.py +0 -0
  68. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/viz/__main__.py +0 -0
  69. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/viz/layout.py +0 -0
  70. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/viz/page.py +0 -0
  71. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop/viz/server.py +0 -0
  72. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop.egg-info/SOURCES.txt +0 -0
  73. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop.egg-info/dependency_links.txt +0 -0
  74. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop.egg-info/entry_points.txt +0 -0
  75. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop.egg-info/requires.txt +0 -0
  76. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/src/agentic_dev_loop.egg-info/top_level.txt +0 -0
  77. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_029_merge_on_conflict.py +0 -0
  78. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_033_brief_step.py +0 -0
  79. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_035_finalize_nudge.py +0 -0
  80. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_036_banned_commands_and_lane_boundary.py +0 -0
  81. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_041_brief_coverage.py +0 -0
  82. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_046_brief_prompt.py +0 -0
  83. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_cli.py +0 -0
  84. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_doctor.py +0 -0
  85. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_init.py +0 -0
  86. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_profile_loading.py +0 -0
  87. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_profiles.py +0 -0
  88. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_recipes.py +0 -0
  89. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_schema_lock.py +0 -0
  90. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_templates.py +0 -0
  91. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_055_upgrade.py +0 -0
  92. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_actions.py +0 -0
  93. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_agent_error_guide.py +0 -0
  94. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_agents.py +0 -0
  95. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_aidlc.py +0 -0
  96. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_build_viz_page.py +0 -0
  97. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_cli.py +0 -0
  98. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_config.py +0 -0
  99. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_containers.py +0 -0
  100. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_copilot_auth.py +0 -0
  101. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_copilot_cli.py +0 -0
  102. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_deps.py +0 -0
  103. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_dry_run.py +0 -0
  104. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_e2e_fixtures.py +0 -0
  105. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_egress_proxy.py +0 -0
  106. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_graph.py +0 -0
  107. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_hostboundary.py +0 -0
  108. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_hostboundary_integration.py +0 -0
  109. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_isolation.py +0 -0
  110. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_isolation_integration.py +0 -0
  111. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_isolation_pbt.py +0 -0
  112. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_llm.py +0 -0
  113. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_loaders.py +0 -0
  114. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_module_contract.py +0 -0
  115. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_outputs.py +0 -0
  116. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_outputs_pbt.py +0 -0
  117. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_proc.py +0 -0
  118. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_provider_wire.py +0 -0
  119. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_publish.py +0 -0
  120. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_qa_prompt.py +0 -0
  121. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_registry.py +0 -0
  122. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_repo_ascii.py +0 -0
  123. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_results.py +0 -0
  124. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_sdk_compat.py +0 -0
  125. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_secrets.py +0 -0
  126. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_secrets_integration.py +0 -0
  127. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_secrets_pipeline.py +0 -0
  128. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_source_resolution.py +0 -0
  129. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_stages.py +0 -0
  130. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_step_workspace.py +0 -0
  131. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_sync_back.py +0 -0
  132. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_trigger_script.py +0 -0
  133. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_unit5_config.py +0 -0
  134. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_unit5_pbt.py +0 -0
  135. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_unit5_pure.py +0 -0
  136. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_verdict.py +0 -0
  137. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_viz.py +0 -0
  138. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_viz_demo.py +0 -0
  139. {agentic_dev_loop-0.12.0 → agentic_dev_loop-0.12.1}/tests/test_viz_layout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentic-dev-loop
3
- Version: 0.12.0
3
+ Version: 0.12.1
4
4
  Summary: Turn an LLM into a gated, sandboxed, resumable construction loop over your codebase.
5
5
  Author: Luke Wilson
6
6
  License-Expression: Apache-2.0
@@ -60,6 +60,10 @@ checkpointed, and nothing gets committed until every gate passes.
60
60
  parsed from files, retries are bounded, nothing is best-effort.
61
61
  - **Sandboxed by default.** The agent's shell and every command step run inside
62
62
  an always-on Docker sandbox. There is no opt-out.
63
+ - **Any OpenAI-compatible model, or your Copilot subscription.** Point
64
+ `llm.base_url` at any OpenAI-compatible endpoint with an API key, or log in
65
+ with `agentic-dev-loop copilot-login` and run on Copilot models. See
66
+ [LLM providers](#llm-providers).
63
67
 
64
68
  ---
65
69
 
@@ -94,6 +98,40 @@ Docker engine does:
94
98
  Native Windows (outside WSL2) is not supported: every Windows-specific code
95
99
  path and test was removed, and CI runs on Ubuntu only.
96
100
 
101
+ ## LLM providers
102
+
103
+ Two ways to run the same pipeline. The engine speaks OpenAI-compatible wire
104
+ format throughout, so every step, profile, and gate works identically on
105
+ either provider style:
106
+
107
+ | Provider | Setup |
108
+ | --- | --- |
109
+ | **Any OpenAI-compatible endpoint** | API key via `api_key_env` + `base_url` in the `llm:` block: DeepSeek, OpenAI, or any OpenAI-compatible API. Full reference: [pipeline.yaml reference](#pipelineyaml-reference). |
110
+ | **GitHub Copilot subscription** | `agentic-dev-loop copilot-login` once, then point the `llm:` block at `https://api.githubcopilot.com` with the file-backed token. Probe-validated pins: `openai/gpt-5.6-luna` (pro) and `openai/gpt-4.1` (lite). Full config and known limitations: [Copilot subscription endpoint](#copilot-subscription-endpoint). |
111
+
112
+ ```yaml
113
+ # OpenAI-compatible endpoint (any provider)
114
+ llm:
115
+ model: openai/deepseek-v4-pro
116
+ base_url: https://api.deepseek.com
117
+ api_key_env: OPENAI_API_KEY
118
+ ```
119
+
120
+ ```yaml
121
+ # GitHub Copilot subscription
122
+ llm:
123
+ model: openai/gpt-5.6-luna # pro; probe-validated pin
124
+ base_url: https://api.githubcopilot.com
125
+ api_key_secret:
126
+ from: file
127
+ key: ~/.agentic-dev-loop/auth/copilot.json
128
+ json_key: access_token
129
+ headers:
130
+ Copilot-Integration-Id: vscode-chat
131
+ Editor-Version: vscode/1.94.0
132
+ Openai-Intent: conversation-panel
133
+ ```
134
+
97
135
  ## Installation
98
136
 
99
137
  **Prerequisites**
@@ -102,7 +140,7 @@ path and test was removed, and CI runs on Ubuntu only.
102
140
  | --- | --- |
103
141
  | Python | ≥ 3.12 |
104
142
  | Docker engine | Engine API ≥ 1.43 (Engine 24). Any compliant engine works - Docker Desktop, OrbStack, Colima, Rancher Desktop, podman docker-compat. On Windows, run under WSL2: the repo must live on the WSL filesystem, not /mnt/c. |
105
- | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. |
143
+ | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. Alternatively, `agentic-dev-loop copilot-login` authenticates a Copilot subscription (see [LLM providers](#llm-providers)). |
106
144
 
107
145
  ```bash
108
146
  pip install "agentic-dev-loop==1.0.0a17"
@@ -16,6 +16,10 @@ checkpointed, and nothing gets committed until every gate passes.
16
16
  parsed from files, retries are bounded, nothing is best-effort.
17
17
  - **Sandboxed by default.** The agent's shell and every command step run inside
18
18
  an always-on Docker sandbox. There is no opt-out.
19
+ - **Any OpenAI-compatible model, or your Copilot subscription.** Point
20
+ `llm.base_url` at any OpenAI-compatible endpoint with an API key, or log in
21
+ with `agentic-dev-loop copilot-login` and run on Copilot models. See
22
+ [LLM providers](#llm-providers).
19
23
 
20
24
  ---
21
25
 
@@ -50,6 +54,40 @@ Docker engine does:
50
54
  Native Windows (outside WSL2) is not supported: every Windows-specific code
51
55
  path and test was removed, and CI runs on Ubuntu only.
52
56
 
57
+ ## LLM providers
58
+
59
+ Two ways to run the same pipeline. The engine speaks OpenAI-compatible wire
60
+ format throughout, so every step, profile, and gate works identically on
61
+ either provider style:
62
+
63
+ | Provider | Setup |
64
+ | --- | --- |
65
+ | **Any OpenAI-compatible endpoint** | API key via `api_key_env` + `base_url` in the `llm:` block: DeepSeek, OpenAI, or any OpenAI-compatible API. Full reference: [pipeline.yaml reference](#pipelineyaml-reference). |
66
+ | **GitHub Copilot subscription** | `agentic-dev-loop copilot-login` once, then point the `llm:` block at `https://api.githubcopilot.com` with the file-backed token. Probe-validated pins: `openai/gpt-5.6-luna` (pro) and `openai/gpt-4.1` (lite). Full config and known limitations: [Copilot subscription endpoint](#copilot-subscription-endpoint). |
67
+
68
+ ```yaml
69
+ # OpenAI-compatible endpoint (any provider)
70
+ llm:
71
+ model: openai/deepseek-v4-pro
72
+ base_url: https://api.deepseek.com
73
+ api_key_env: OPENAI_API_KEY
74
+ ```
75
+
76
+ ```yaml
77
+ # GitHub Copilot subscription
78
+ llm:
79
+ model: openai/gpt-5.6-luna # pro; probe-validated pin
80
+ base_url: https://api.githubcopilot.com
81
+ api_key_secret:
82
+ from: file
83
+ key: ~/.agentic-dev-loop/auth/copilot.json
84
+ json_key: access_token
85
+ headers:
86
+ Copilot-Integration-Id: vscode-chat
87
+ Editor-Version: vscode/1.94.0
88
+ Openai-Intent: conversation-panel
89
+ ```
90
+
53
91
  ## Installation
54
92
 
55
93
  **Prerequisites**
@@ -58,7 +96,7 @@ path and test was removed, and CI runs on Ubuntu only.
58
96
  | --- | --- |
59
97
  | Python | ≥ 3.12 |
60
98
  | Docker engine | Engine API ≥ 1.43 (Engine 24). Any compliant engine works - Docker Desktop, OrbStack, Colima, Rancher Desktop, podman docker-compat. On Windows, run under WSL2: the repo must live on the WSL filesystem, not /mnt/c. |
61
- | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. |
99
+ | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. Alternatively, `agentic-dev-loop copilot-login` authenticates a Copilot subscription (see [LLM providers](#llm-providers)). |
62
100
 
63
101
  ```bash
64
102
  pip install "agentic-dev-loop==1.0.0a17"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agentic-dev-loop"
7
- version = "0.12.0"
7
+ version = "0.12.1"
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"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentic-dev-loop
3
- Version: 0.12.0
3
+ Version: 0.12.1
4
4
  Summary: Turn an LLM into a gated, sandboxed, resumable construction loop over your codebase.
5
5
  Author: Luke Wilson
6
6
  License-Expression: Apache-2.0
@@ -60,6 +60,10 @@ checkpointed, and nothing gets committed until every gate passes.
60
60
  parsed from files, retries are bounded, nothing is best-effort.
61
61
  - **Sandboxed by default.** The agent's shell and every command step run inside
62
62
  an always-on Docker sandbox. There is no opt-out.
63
+ - **Any OpenAI-compatible model, or your Copilot subscription.** Point
64
+ `llm.base_url` at any OpenAI-compatible endpoint with an API key, or log in
65
+ with `agentic-dev-loop copilot-login` and run on Copilot models. See
66
+ [LLM providers](#llm-providers).
63
67
 
64
68
  ---
65
69
 
@@ -94,6 +98,40 @@ Docker engine does:
94
98
  Native Windows (outside WSL2) is not supported: every Windows-specific code
95
99
  path and test was removed, and CI runs on Ubuntu only.
96
100
 
101
+ ## LLM providers
102
+
103
+ Two ways to run the same pipeline. The engine speaks OpenAI-compatible wire
104
+ format throughout, so every step, profile, and gate works identically on
105
+ either provider style:
106
+
107
+ | Provider | Setup |
108
+ | --- | --- |
109
+ | **Any OpenAI-compatible endpoint** | API key via `api_key_env` + `base_url` in the `llm:` block: DeepSeek, OpenAI, or any OpenAI-compatible API. Full reference: [pipeline.yaml reference](#pipelineyaml-reference). |
110
+ | **GitHub Copilot subscription** | `agentic-dev-loop copilot-login` once, then point the `llm:` block at `https://api.githubcopilot.com` with the file-backed token. Probe-validated pins: `openai/gpt-5.6-luna` (pro) and `openai/gpt-4.1` (lite). Full config and known limitations: [Copilot subscription endpoint](#copilot-subscription-endpoint). |
111
+
112
+ ```yaml
113
+ # OpenAI-compatible endpoint (any provider)
114
+ llm:
115
+ model: openai/deepseek-v4-pro
116
+ base_url: https://api.deepseek.com
117
+ api_key_env: OPENAI_API_KEY
118
+ ```
119
+
120
+ ```yaml
121
+ # GitHub Copilot subscription
122
+ llm:
123
+ model: openai/gpt-5.6-luna # pro; probe-validated pin
124
+ base_url: https://api.githubcopilot.com
125
+ api_key_secret:
126
+ from: file
127
+ key: ~/.agentic-dev-loop/auth/copilot.json
128
+ json_key: access_token
129
+ headers:
130
+ Copilot-Integration-Id: vscode-chat
131
+ Editor-Version: vscode/1.94.0
132
+ Openai-Intent: conversation-panel
133
+ ```
134
+
97
135
  ## Installation
98
136
 
99
137
  **Prerequisites**
@@ -102,7 +140,7 @@ path and test was removed, and CI runs on Ubuntu only.
102
140
  | --- | --- |
103
141
  | Python | ≥ 3.12 |
104
142
  | Docker engine | Engine API ≥ 1.43 (Engine 24). Any compliant engine works - Docker Desktop, OrbStack, Colima, Rancher Desktop, podman docker-compat. On Windows, run under WSL2: the repo must live on the WSL filesystem, not /mnt/c. |
105
- | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. |
143
+ | LLM API key | The env var named by your pipeline's `api_key_env` (e.g. `OPENAI_API_KEY`) must be set - a missing key fails fast, naming it. Alternatively, `agentic-dev-loop copilot-login` authenticates a Copilot subscription (see [LLM providers](#llm-providers)). |
106
144
 
107
145
  ```bash
108
146
  pip install "agentic-dev-loop==1.0.0a17"