deeploop 0.1.0__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 (128) hide show
  1. deeploop-0.1.0/LICENSE +21 -0
  2. deeploop-0.1.0/PKG-INFO +210 -0
  3. deeploop-0.1.0/README.md +171 -0
  4. deeploop-0.1.0/pyproject.toml +67 -0
  5. deeploop-0.1.0/setup.cfg +4 -0
  6. deeploop-0.1.0/src/deeploop/__init__.py +1 -0
  7. deeploop-0.1.0/src/deeploop/artifacts/__init__.py +2 -0
  8. deeploop-0.1.0/src/deeploop/artifacts/artifact_packager.py +1046 -0
  9. deeploop-0.1.0/src/deeploop/artifacts/mission_package.py +121 -0
  10. deeploop-0.1.0/src/deeploop/artifacts/release_automation.py +444 -0
  11. deeploop-0.1.0/src/deeploop/autonomy/__init__.py +2 -0
  12. deeploop-0.1.0/src/deeploop/autonomy/gate_taxonomy.py +312 -0
  13. deeploop-0.1.0/src/deeploop/autonomy/mission_autonomy.py +238 -0
  14. deeploop-0.1.0/src/deeploop/autonomy/mission_contract_snapshot.py +146 -0
  15. deeploop-0.1.0/src/deeploop/autonomy/operating_modes.py +53 -0
  16. deeploop-0.1.0/src/deeploop/autonomy/operator_inbox.py +198 -0
  17. deeploop-0.1.0/src/deeploop/cli/__init__.py +1 -0
  18. deeploop-0.1.0/src/deeploop/cli/analyze.py +235 -0
  19. deeploop-0.1.0/src/deeploop/cli/init_mission.py +49 -0
  20. deeploop-0.1.0/src/deeploop/cli/package_mission.py +34 -0
  21. deeploop-0.1.0/src/deeploop/cli/run_project.py +59 -0
  22. deeploop-0.1.0/src/deeploop/core/__init__.py +2 -0
  23. deeploop-0.1.0/src/deeploop/core/config_paths.py +22 -0
  24. deeploop-0.1.0/src/deeploop/core/dotted.py +16 -0
  25. deeploop-0.1.0/src/deeploop/core/ledger.py +39 -0
  26. deeploop-0.1.0/src/deeploop/core/paths.py +66 -0
  27. deeploop-0.1.0/src/deeploop/core/structured_io.py +96 -0
  28. deeploop-0.1.0/src/deeploop/fresh_context_redteam.py +382 -0
  29. deeploop-0.1.0/src/deeploop/mission/__init__.py +2 -0
  30. deeploop-0.1.0/src/deeploop/mission/_autonomy_gap_telemetry.py +287 -0
  31. deeploop-0.1.0/src/deeploop/mission/_constants.py +19 -0
  32. deeploop-0.1.0/src/deeploop/mission/_monitor_classification.py +1071 -0
  33. deeploop-0.1.0/src/deeploop/mission/_monitor_render.py +574 -0
  34. deeploop-0.1.0/src/deeploop/mission/_monitor_snapshot.py +266 -0
  35. deeploop-0.1.0/src/deeploop/mission/_operator_surface.py +475 -0
  36. deeploop-0.1.0/src/deeploop/mission/_runtime_contract.py +76 -0
  37. deeploop-0.1.0/src/deeploop/mission/_runtime_persistence.py +360 -0
  38. deeploop-0.1.0/src/deeploop/mission/mission_decision_engine.py +1582 -0
  39. deeploop-0.1.0/src/deeploop/mission/mission_management.py +1468 -0
  40. deeploop-0.1.0/src/deeploop/mission/mission_memory.py +732 -0
  41. deeploop-0.1.0/src/deeploop/mission/mission_monitor.py +6 -0
  42. deeploop-0.1.0/src/deeploop/mission/mission_progress.py +9 -0
  43. deeploop-0.1.0/src/deeploop/mission/mission_runtime.py +2028 -0
  44. deeploop-0.1.0/src/deeploop/mission/mission_scheduler.py +880 -0
  45. deeploop-0.1.0/src/deeploop/mission/mission_state.py +47 -0
  46. deeploop-0.1.0/src/deeploop/mission/orchestrator.py +472 -0
  47. deeploop-0.1.0/src/deeploop/mission/plain_folder_followup.py +227 -0
  48. deeploop-0.1.0/src/deeploop/mission/project_bootstrap.py +173 -0
  49. deeploop-0.1.0/src/deeploop/mission/project_runner.py +208 -0
  50. deeploop-0.1.0/src/deeploop/platform/__init__.py +13 -0
  51. deeploop-0.1.0/src/deeploop/platform/contracts.py +549 -0
  52. deeploop-0.1.0/src/deeploop/project_contract.py +256 -0
  53. deeploop-0.1.0/src/deeploop/research/__init__.py +2 -0
  54. deeploop-0.1.0/src/deeploop/research/confound_guard.py +1005 -0
  55. deeploop-0.1.0/src/deeploop/research/indexed_memory.py +553 -0
  56. deeploop-0.1.0/src/deeploop/research/novelty_refresh.py +529 -0
  57. deeploop-0.1.0/src/deeploop/research/sanity_gates.py +694 -0
  58. deeploop-0.1.0/src/deeploop/research/self_correction.py +624 -0
  59. deeploop-0.1.0/src/deeploop/research/self_optimization.py +480 -0
  60. deeploop-0.1.0/src/deeploop/research/statistical_rigor.py +728 -0
  61. deeploop-0.1.0/src/deeploop/research/utility_scorer.py +852 -0
  62. deeploop-0.1.0/src/deeploop/runtime/__init__.py +2 -0
  63. deeploop-0.1.0/src/deeploop/runtime/_prompt_renderer.py +306 -0
  64. deeploop-0.1.0/src/deeploop/runtime/_stage_kernel_registry.py +43 -0
  65. deeploop-0.1.0/src/deeploop/runtime/_stage_kernel_reporting.py +224 -0
  66. deeploop-0.1.0/src/deeploop/runtime/_stage_kernel_resolution.py +99 -0
  67. deeploop-0.1.0/src/deeploop/runtime/adaptation_training_runtime.py +646 -0
  68. deeploop-0.1.0/src/deeploop/runtime/copilot_adapter.py +30 -0
  69. deeploop-0.1.0/src/deeploop/runtime/metric_ratchets.py +169 -0
  70. deeploop-0.1.0/src/deeploop/runtime/mission_executor_registry.py +424 -0
  71. deeploop-0.1.0/src/deeploop/runtime/plain_folder_adapter.py +125 -0
  72. deeploop-0.1.0/src/deeploop/runtime/provider_launcher.py +800 -0
  73. deeploop-0.1.0/src/deeploop/runtime/recursive_agent_runtime.py +1320 -0
  74. deeploop-0.1.0/src/deeploop/runtime/runtime_recovery.py +289 -0
  75. deeploop-0.1.0/src/deeploop/runtime/sandbox.py +51 -0
  76. deeploop-0.1.0/src/deeploop/runtime/self_healing_runtime.py +871 -0
  77. deeploop-0.1.0/src/deeploop/runtime/stage_kernels.py +3715 -0
  78. deeploop-0.1.0/src/deeploop/testing/__init__.py +19 -0
  79. deeploop-0.1.0/src/deeploop/testing/acceptance_campaigns.py +198 -0
  80. deeploop-0.1.0/src/deeploop/testing/plain_folder_proof_matrix.py +132 -0
  81. deeploop-0.1.0/src/deeploop/testing/proof_matrix_reviews.py +305 -0
  82. deeploop-0.1.0/src/deeploop/testing/test_tiers.py +114 -0
  83. deeploop-0.1.0/src/deeploop.egg-info/PKG-INFO +210 -0
  84. deeploop-0.1.0/src/deeploop.egg-info/SOURCES.txt +126 -0
  85. deeploop-0.1.0/src/deeploop.egg-info/dependency_links.txt +1 -0
  86. deeploop-0.1.0/src/deeploop.egg-info/entry_points.txt +6 -0
  87. deeploop-0.1.0/src/deeploop.egg-info/requires.txt +20 -0
  88. deeploop-0.1.0/src/deeploop.egg-info/top_level.txt +1 -0
  89. deeploop-0.1.0/tests/test_acceptance_campaigns.py +104 -0
  90. deeploop-0.1.0/tests/test_adaptation_training_runtime.py +192 -0
  91. deeploop-0.1.0/tests/test_artifact_packager.py +491 -0
  92. deeploop-0.1.0/tests/test_confound_guard.py +155 -0
  93. deeploop-0.1.0/tests/test_core_paths.py +39 -0
  94. deeploop-0.1.0/tests/test_end_to_end_smoke.py +135 -0
  95. deeploop-0.1.0/tests/test_fresh_context_redteam.py +267 -0
  96. deeploop-0.1.0/tests/test_indexed_research_memory.py +156 -0
  97. deeploop-0.1.0/tests/test_metric_ratchets.py +71 -0
  98. deeploop-0.1.0/tests/test_mission_autonomy.py +108 -0
  99. deeploop-0.1.0/tests/test_mission_decision_engine.py +443 -0
  100. deeploop-0.1.0/tests/test_mission_executor_registry.py +258 -0
  101. deeploop-0.1.0/tests/test_mission_management.py +840 -0
  102. deeploop-0.1.0/tests/test_mission_monitor.py +921 -0
  103. deeploop-0.1.0/tests/test_mission_package.py +80 -0
  104. deeploop-0.1.0/tests/test_mission_runtime.py +2249 -0
  105. deeploop-0.1.0/tests/test_mission_scheduler.py +186 -0
  106. deeploop-0.1.0/tests/test_mission_state.py +103 -0
  107. deeploop-0.1.0/tests/test_novelty_refresh.py +314 -0
  108. deeploop-0.1.0/tests/test_package_structure.py +143 -0
  109. deeploop-0.1.0/tests/test_plain_folder_proof_matrix.py +87 -0
  110. deeploop-0.1.0/tests/test_platform_integration.py +233 -0
  111. deeploop-0.1.0/tests/test_project_contract.py +353 -0
  112. deeploop-0.1.0/tests/test_project_runner.py +539 -0
  113. deeploop-0.1.0/tests/test_proof_matrix_reviews.py +193 -0
  114. deeploop-0.1.0/tests/test_provider_launcher.py +357 -0
  115. deeploop-0.1.0/tests/test_public_bootstrap.py +219 -0
  116. deeploop-0.1.0/tests/test_record_finding.py +97 -0
  117. deeploop-0.1.0/tests/test_recursive_agent_runtime.py +1143 -0
  118. deeploop-0.1.0/tests/test_release_automation.py +177 -0
  119. deeploop-0.1.0/tests/test_repo_contract.py +516 -0
  120. deeploop-0.1.0/tests/test_runtime_recovery.py +217 -0
  121. deeploop-0.1.0/tests/test_sandbox.py +38 -0
  122. deeploop-0.1.0/tests/test_self_correction.py +214 -0
  123. deeploop-0.1.0/tests/test_self_healing_runtime.py +481 -0
  124. deeploop-0.1.0/tests/test_self_optimization.py +468 -0
  125. deeploop-0.1.0/tests/test_stage_kernels.py +1373 -0
  126. deeploop-0.1.0/tests/test_statistical_rigor.py +426 -0
  127. deeploop-0.1.0/tests/test_test_tiers.py +52 -0
  128. deeploop-0.1.0/tests/test_utility_scorer.py +599 -0
deeploop-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DeepLoop contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,210 @@
1
+ Metadata-Version: 2.4
2
+ Name: deeploop
3
+ Version: 0.1.0
4
+ Summary: DeepLoop autonomous research autopilot control plane.
5
+ Author: DeepLoop maintainers
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://deeplooplabs.com/
8
+ Project-URL: Documentation, https://github.com/tnetal/DeepLoop/tree/main/docs
9
+ Project-URL: Issues, https://github.com/tnetal/DeepLoop/issues
10
+ Project-URL: Source, https://github.com/tnetal/DeepLoop
11
+ Project-URL: Changelog, https://github.com/tnetal/DeepLoop/blob/main/CHANGELOG.md
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: jsonschema
22
+ Requires-Dist: pandas
23
+ Requires-Dist: pyyaml
24
+ Requires-Dist: rich
25
+ Requires-Dist: typer
26
+ Provides-Extra: docs
27
+ Requires-Dist: mkdocs; extra == "docs"
28
+ Requires-Dist: mkdocs-material; extra == "docs"
29
+ Requires-Dist: pymdown-extensions; extra == "docs"
30
+ Provides-Extra: llm
31
+ Requires-Dist: accelerate; extra == "llm"
32
+ Requires-Dist: safetensors; extra == "llm"
33
+ Requires-Dist: sentencepiece; extra == "llm"
34
+ Requires-Dist: torch; extra == "llm"
35
+ Requires-Dist: transformers; extra == "llm"
36
+ Provides-Extra: dev
37
+ Requires-Dist: deeploop[docs]; extra == "dev"
38
+ Dynamic: license-file
39
+
40
+ # DeepLoop
41
+
42
+ > Structured research missions from a local project folder — with visible autonomy boundaries, durable mission state, and an explicit operator inbox.
43
+
44
+ DeepLoop helps researchers and operators run structured work from the artifacts already on disk instead of rebuilding everything around one long chat. It keeps the loop moving, pauses only at real safety, authority, or support boundaries, and makes the path legible when you need to inspect or redirect it.
45
+
46
+ DeepLoop **owns behavior** and orchestration; substrate repos own reusable domain or science rules.
47
+
48
+ ## Why it matters
49
+
50
+ - **Start from real project artifacts:** bootstrap from a plain project folder, not just a prompt.
51
+ - **Keep control visible:** `status`, `inbox`, and `resume` make the operator inbox explicit when DeepLoop needs a real decision.
52
+ - **Inspect the loop:** operator-facing summaries expose runtime telemetry, inner-loop progress, stage-kernel activity, reroutes, and temporary gaps instead of hiding them in raw JSON.
53
+ - **Keep evidence close to the work:** your project folder stays focused on facts, docs, and outputs while DeepLoop keeps durable mission state.
54
+ - **Use autonomy with governance:** the shipped path includes explicit release boundaries, autonomy governance, and reviewed promotion surfaces.
55
+ - **Separate platform from domain logic:** DeepLoop runs the loop; substrate repos keep reusable methods, constraints, and science rules.
56
+
57
+ ## Getting started
58
+
59
+ 1. **Install DeepLoop**
60
+
61
+ Choose the installation path that matches your use case:
62
+
63
+ - **Standard user** — install from PyPI (no local checkout required):
64
+
65
+ ```text
66
+ pip install deeploop
67
+ ```
68
+
69
+ For the latest unreleased commit without a local checkout, use the
70
+ GitHub URL directly:
71
+
72
+ ```text
73
+ pip install git+https://github.com/tnetal/DeepLoop.git
74
+ ```
75
+
76
+ Both paths copy the library into `site-packages`, fully isolating running
77
+ missions from any local source changes.
78
+
79
+ - **Contributor** — clone the repo and install in editable mode with dev
80
+ extras:
81
+
82
+ ```text
83
+ git clone https://github.com/tnetal/DeepLoop.git
84
+ cd DeepLoop
85
+ pip install -e ".[dev]"
86
+ ```
87
+
88
+ > **Warning:** Editable installs tie every spawned Python subprocess
89
+ > directly to the live source tree. `deeploop start` automatically
90
+ > snapshots the package into `~/.deeploop/runtime_cache/` before launching
91
+ > the daemon, insulating the background mission from subsequent source
92
+ > edits. It also warns if the working tree is dirty at launch time. Even
93
+ > so, avoid switching Git branches or introducing syntax errors during a
94
+ > live mission run.
95
+
96
+ - **Hybrid user** (running long missions *and* developing features
97
+ simultaneously): maintain **two separate clones** — one stable clone
98
+ installed with `pip install git+…` or `pip install .` for running missions,
99
+ and one development clone with `pip install -e ".[dev]"` for writing PRs.
100
+ Never run a background mission from the development clone.
101
+
102
+ Or use the documented Conda path (installs in non-editable mode by default):
103
+
104
+ ```text
105
+ conda env create -n deeploop -f environment.yml
106
+ ```
107
+
108
+ 2. **Prepare the workspace and validate the supported path**
109
+
110
+ ```text
111
+ make setup
112
+ make public-bootstrap-check
113
+ ```
114
+
115
+ 3. **Prepare a provider**
116
+ - [Provider setup](docs/reference/provider-setup.md)
117
+ - [Provider selection](docs/reference/provider-selection.md)
118
+
119
+ 4. **Run the canonical example or your own plain-folder project**
120
+ - canonical example: [`examples/translation-budget-ladder/`](examples/translation-budget-ladder/)
121
+ - optional copy step:
122
+
123
+ ```text
124
+ cp -R examples/translation-budget-ladder PROJECT_FOLDER
125
+ ```
126
+
127
+ - fastest path:
128
+
129
+ ```text
130
+ deeploop run --project-root examples/translation-budget-ladder --until-complete
131
+ ```
132
+
133
+ > **Note:** If `<project-folder>/.deeploop/missions/*.yaml` files exist, `deeploop run`
134
+ > automatically uses the first one instead of bootstrapping a blank mission.
135
+ > For a plain folder with no existing config, it bootstraps from the folder's facts.
136
+ > To target a specific explicit config directly, use
137
+ > `deeploop init --config <mission-config.yaml>` followed by
138
+ > `deeploop start --mission-state <mission-state.json>`.
139
+
140
+ - explicit operator path:
141
+
142
+ ```text
143
+ deeploop init --project-root examples/translation-budget-ladder --force
144
+ ```
145
+
146
+ On a copied folder, substitute `PROJECT_FOLDER` in the commands above.
147
+
148
+ 5. **Use the operator CLI when a run pauses**
149
+
150
+ ```text
151
+ deeploop status --mission-state MISSION_STATE_PATH
152
+ deeploop inbox --mission-state MISSION_STATE_PATH
153
+ deeploop resume --mission-state MISSION_STATE_PATH
154
+ ```
155
+
156
+ The `deeploop` CLI is the single entry point — `run`, `init`, `status`, `inbox`, `resume`, and more are all subcommands.
157
+
158
+ ## Best fit today
159
+
160
+ DeepLoop is best when you already have:
161
+
162
+ - a project folder on disk
163
+ - a clear mission or question
164
+ - an operator who can check `status` and respond when the operator inbox opens
165
+ - a need for bounded autonomy, durable state, and evidence-aware summaries
166
+
167
+ > **Public alpha** — best on Linux with Python 3.11; not claiming a fully automatic experience for everyone. See the [roadmap](docs/release/public-autonomy-roadmap.md) for current scope.
168
+
169
+ ## Key capabilities
170
+
171
+ ### Operating modes
172
+
173
+ - **`sandboxed-yolo`** for the fastest bounded path when you want DeepLoop to keep moving inside the supported guardrails
174
+ - **`managed`** when you want intervention hooks before DeepLoop continues; managed mode can surface a bounded retry, reroute, or downscope step for review
175
+ - **`human-directed`** when you want to approve important choices yourself
176
+
177
+ ### What you can inspect
178
+
179
+ - operator-facing status surfaces runtime telemetry, inner-loop progress, ratchets, reroutes, and temporary-gap recovery hints
180
+ - stage-kernel execution stays visible instead of disappearing behind one opaque agent loop
181
+ - the operator inbox keeps handoffs explicit when DeepLoop reaches a real decision or support boundary
182
+
183
+ ### Reusable methods and governance
184
+
185
+ - keep skills for reusable methods and domain/science rules in substrate repos
186
+ - use [Release posture](docs/release/README.md) for the current claim and [Autonomy governance](docs/release/autonomy-governance.md) for current boundaries
187
+ - review the current [multi-substrate proof](docs/release/multi-substrate-proof.md) as proof of a bounded contract, not a claim of broad portability
188
+
189
+ ## Documentation
190
+
191
+ - [Docs home](docs/index.md)
192
+ - [Getting started](docs/getting-started.md)
193
+ - [Examples](docs/how-to/examples.md)
194
+ - [Plain-folder starter](docs/how-to/plain-folder-starter.md)
195
+ - [Release posture](docs/release/README.md)
196
+ - [Portable bootstrap](docs/release/portable-bootstrap.md)
197
+ - [Provider setup](docs/reference/provider-setup.md)
198
+ - [Provider selection](docs/reference/provider-selection.md)
199
+ - [Autonomy governance](docs/release/autonomy-governance.md)
200
+ - [Multi-substrate proof](docs/release/multi-substrate-proof.md)
201
+ - [Technical reference](docs/reference/index.md)
202
+
203
+ ## Contributing
204
+
205
+ Contributions, bug reports, and discussion are welcome.
206
+
207
+ - [Contributing guide](CONTRIBUTING.md)
208
+ - [Code of conduct](CODE_OF_CONDUCT.md)
209
+ - [Security policy](SECURITY.md)
210
+ - [Changelog](CHANGELOG.md)
@@ -0,0 +1,171 @@
1
+ # DeepLoop
2
+
3
+ > Structured research missions from a local project folder — with visible autonomy boundaries, durable mission state, and an explicit operator inbox.
4
+
5
+ DeepLoop helps researchers and operators run structured work from the artifacts already on disk instead of rebuilding everything around one long chat. It keeps the loop moving, pauses only at real safety, authority, or support boundaries, and makes the path legible when you need to inspect or redirect it.
6
+
7
+ DeepLoop **owns behavior** and orchestration; substrate repos own reusable domain or science rules.
8
+
9
+ ## Why it matters
10
+
11
+ - **Start from real project artifacts:** bootstrap from a plain project folder, not just a prompt.
12
+ - **Keep control visible:** `status`, `inbox`, and `resume` make the operator inbox explicit when DeepLoop needs a real decision.
13
+ - **Inspect the loop:** operator-facing summaries expose runtime telemetry, inner-loop progress, stage-kernel activity, reroutes, and temporary gaps instead of hiding them in raw JSON.
14
+ - **Keep evidence close to the work:** your project folder stays focused on facts, docs, and outputs while DeepLoop keeps durable mission state.
15
+ - **Use autonomy with governance:** the shipped path includes explicit release boundaries, autonomy governance, and reviewed promotion surfaces.
16
+ - **Separate platform from domain logic:** DeepLoop runs the loop; substrate repos keep reusable methods, constraints, and science rules.
17
+
18
+ ## Getting started
19
+
20
+ 1. **Install DeepLoop**
21
+
22
+ Choose the installation path that matches your use case:
23
+
24
+ - **Standard user** — install from PyPI (no local checkout required):
25
+
26
+ ```text
27
+ pip install deeploop
28
+ ```
29
+
30
+ For the latest unreleased commit without a local checkout, use the
31
+ GitHub URL directly:
32
+
33
+ ```text
34
+ pip install git+https://github.com/tnetal/DeepLoop.git
35
+ ```
36
+
37
+ Both paths copy the library into `site-packages`, fully isolating running
38
+ missions from any local source changes.
39
+
40
+ - **Contributor** — clone the repo and install in editable mode with dev
41
+ extras:
42
+
43
+ ```text
44
+ git clone https://github.com/tnetal/DeepLoop.git
45
+ cd DeepLoop
46
+ pip install -e ".[dev]"
47
+ ```
48
+
49
+ > **Warning:** Editable installs tie every spawned Python subprocess
50
+ > directly to the live source tree. `deeploop start` automatically
51
+ > snapshots the package into `~/.deeploop/runtime_cache/` before launching
52
+ > the daemon, insulating the background mission from subsequent source
53
+ > edits. It also warns if the working tree is dirty at launch time. Even
54
+ > so, avoid switching Git branches or introducing syntax errors during a
55
+ > live mission run.
56
+
57
+ - **Hybrid user** (running long missions *and* developing features
58
+ simultaneously): maintain **two separate clones** — one stable clone
59
+ installed with `pip install git+…` or `pip install .` for running missions,
60
+ and one development clone with `pip install -e ".[dev]"` for writing PRs.
61
+ Never run a background mission from the development clone.
62
+
63
+ Or use the documented Conda path (installs in non-editable mode by default):
64
+
65
+ ```text
66
+ conda env create -n deeploop -f environment.yml
67
+ ```
68
+
69
+ 2. **Prepare the workspace and validate the supported path**
70
+
71
+ ```text
72
+ make setup
73
+ make public-bootstrap-check
74
+ ```
75
+
76
+ 3. **Prepare a provider**
77
+ - [Provider setup](docs/reference/provider-setup.md)
78
+ - [Provider selection](docs/reference/provider-selection.md)
79
+
80
+ 4. **Run the canonical example or your own plain-folder project**
81
+ - canonical example: [`examples/translation-budget-ladder/`](examples/translation-budget-ladder/)
82
+ - optional copy step:
83
+
84
+ ```text
85
+ cp -R examples/translation-budget-ladder PROJECT_FOLDER
86
+ ```
87
+
88
+ - fastest path:
89
+
90
+ ```text
91
+ deeploop run --project-root examples/translation-budget-ladder --until-complete
92
+ ```
93
+
94
+ > **Note:** If `<project-folder>/.deeploop/missions/*.yaml` files exist, `deeploop run`
95
+ > automatically uses the first one instead of bootstrapping a blank mission.
96
+ > For a plain folder with no existing config, it bootstraps from the folder's facts.
97
+ > To target a specific explicit config directly, use
98
+ > `deeploop init --config <mission-config.yaml>` followed by
99
+ > `deeploop start --mission-state <mission-state.json>`.
100
+
101
+ - explicit operator path:
102
+
103
+ ```text
104
+ deeploop init --project-root examples/translation-budget-ladder --force
105
+ ```
106
+
107
+ On a copied folder, substitute `PROJECT_FOLDER` in the commands above.
108
+
109
+ 5. **Use the operator CLI when a run pauses**
110
+
111
+ ```text
112
+ deeploop status --mission-state MISSION_STATE_PATH
113
+ deeploop inbox --mission-state MISSION_STATE_PATH
114
+ deeploop resume --mission-state MISSION_STATE_PATH
115
+ ```
116
+
117
+ The `deeploop` CLI is the single entry point — `run`, `init`, `status`, `inbox`, `resume`, and more are all subcommands.
118
+
119
+ ## Best fit today
120
+
121
+ DeepLoop is best when you already have:
122
+
123
+ - a project folder on disk
124
+ - a clear mission or question
125
+ - an operator who can check `status` and respond when the operator inbox opens
126
+ - a need for bounded autonomy, durable state, and evidence-aware summaries
127
+
128
+ > **Public alpha** — best on Linux with Python 3.11; not claiming a fully automatic experience for everyone. See the [roadmap](docs/release/public-autonomy-roadmap.md) for current scope.
129
+
130
+ ## Key capabilities
131
+
132
+ ### Operating modes
133
+
134
+ - **`sandboxed-yolo`** for the fastest bounded path when you want DeepLoop to keep moving inside the supported guardrails
135
+ - **`managed`** when you want intervention hooks before DeepLoop continues; managed mode can surface a bounded retry, reroute, or downscope step for review
136
+ - **`human-directed`** when you want to approve important choices yourself
137
+
138
+ ### What you can inspect
139
+
140
+ - operator-facing status surfaces runtime telemetry, inner-loop progress, ratchets, reroutes, and temporary-gap recovery hints
141
+ - stage-kernel execution stays visible instead of disappearing behind one opaque agent loop
142
+ - the operator inbox keeps handoffs explicit when DeepLoop reaches a real decision or support boundary
143
+
144
+ ### Reusable methods and governance
145
+
146
+ - keep skills for reusable methods and domain/science rules in substrate repos
147
+ - use [Release posture](docs/release/README.md) for the current claim and [Autonomy governance](docs/release/autonomy-governance.md) for current boundaries
148
+ - review the current [multi-substrate proof](docs/release/multi-substrate-proof.md) as proof of a bounded contract, not a claim of broad portability
149
+
150
+ ## Documentation
151
+
152
+ - [Docs home](docs/index.md)
153
+ - [Getting started](docs/getting-started.md)
154
+ - [Examples](docs/how-to/examples.md)
155
+ - [Plain-folder starter](docs/how-to/plain-folder-starter.md)
156
+ - [Release posture](docs/release/README.md)
157
+ - [Portable bootstrap](docs/release/portable-bootstrap.md)
158
+ - [Provider setup](docs/reference/provider-setup.md)
159
+ - [Provider selection](docs/reference/provider-selection.md)
160
+ - [Autonomy governance](docs/release/autonomy-governance.md)
161
+ - [Multi-substrate proof](docs/release/multi-substrate-proof.md)
162
+ - [Technical reference](docs/reference/index.md)
163
+
164
+ ## Contributing
165
+
166
+ Contributions, bug reports, and discussion are welcome.
167
+
168
+ - [Contributing guide](CONTRIBUTING.md)
169
+ - [Code of conduct](CODE_OF_CONDUCT.md)
170
+ - [Security policy](SECURITY.md)
171
+ - [Changelog](CHANGELOG.md)
@@ -0,0 +1,67 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "deeploop"
7
+ version = "0.1.0"
8
+ description = "DeepLoop autonomous research autopilot control plane."
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [
14
+ { name = "DeepLoop maintainers" },
15
+ ]
16
+ dependencies = [
17
+ "jsonschema",
18
+ "pandas",
19
+ "pyyaml",
20
+ "rich",
21
+ "typer",
22
+ ]
23
+ classifiers = [
24
+ "Development Status :: 3 - Alpha",
25
+ "Intended Audience :: Science/Research",
26
+ "Operating System :: POSIX :: Linux",
27
+ "Programming Language :: Python :: 3",
28
+ "Programming Language :: Python :: 3.11",
29
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://deeplooplabs.com/"
34
+ Documentation = "https://github.com/tnetal/DeepLoop/tree/main/docs"
35
+ Issues = "https://github.com/tnetal/DeepLoop/issues"
36
+ Source = "https://github.com/tnetal/DeepLoop"
37
+ Changelog = "https://github.com/tnetal/DeepLoop/blob/main/CHANGELOG.md"
38
+
39
+ [project.scripts]
40
+ deeploop = "deeploop.mission.mission_management:main"
41
+ deeploop-init-mission = "deeploop.cli.init_mission:main"
42
+ deeploop-run-project = "deeploop.cli.run_project:main"
43
+ deeploop-package-mission = "deeploop.cli.package_mission:main"
44
+ deeploop-analyze = "deeploop.cli.analyze:main"
45
+
46
+ [project.optional-dependencies]
47
+ docs = [
48
+ "mkdocs",
49
+ "mkdocs-material",
50
+ "pymdown-extensions",
51
+ ]
52
+ llm = [
53
+ "accelerate",
54
+ "safetensors",
55
+ "sentencepiece",
56
+ "torch",
57
+ "transformers",
58
+ ]
59
+ dev = [
60
+ "deeploop[docs]",
61
+ ]
62
+
63
+ [tool.setuptools]
64
+ package-dir = {"" = "src"}
65
+
66
+ [tool.setuptools.packages.find]
67
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,2 @@
1
+ """Packaging and mission artifact bundle surfaces."""
2
+