atomadic-forge 0.3.2__py3-none-any.whl

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 (131) hide show
  1. atomadic_forge/__init__.py +12 -0
  2. atomadic_forge/__main__.py +5 -0
  3. atomadic_forge/a0_qk_constants/__init__.py +1 -0
  4. atomadic_forge/a0_qk_constants/agent_plan_schema.py +120 -0
  5. atomadic_forge/a0_qk_constants/commandsmith_types.py +49 -0
  6. atomadic_forge/a0_qk_constants/config_defaults.py +38 -0
  7. atomadic_forge/a0_qk_constants/emergent_types.py +77 -0
  8. atomadic_forge/a0_qk_constants/error_codes.py +296 -0
  9. atomadic_forge/a0_qk_constants/forge_types.py +89 -0
  10. atomadic_forge/a0_qk_constants/gen_language.py +116 -0
  11. atomadic_forge/a0_qk_constants/lang_extensions.py +150 -0
  12. atomadic_forge/a0_qk_constants/policy_schema.py +48 -0
  13. atomadic_forge/a0_qk_constants/receipt_schema.py +311 -0
  14. atomadic_forge/a0_qk_constants/roi_constants.py +96 -0
  15. atomadic_forge/a0_qk_constants/semantic_types.py +61 -0
  16. atomadic_forge/a0_qk_constants/sidecar_schema.py +81 -0
  17. atomadic_forge/a0_qk_constants/synergy_types.py +62 -0
  18. atomadic_forge/a0_qk_constants/tier_names.py +47 -0
  19. atomadic_forge/a1_at_functions/__init__.py +1 -0
  20. atomadic_forge/a1_at_functions/agent_context_pack.py +193 -0
  21. atomadic_forge/a1_at_functions/agent_memory.py +139 -0
  22. atomadic_forge/a1_at_functions/agent_plan_emitter.py +324 -0
  23. atomadic_forge/a1_at_functions/agent_summary.py +277 -0
  24. atomadic_forge/a1_at_functions/body_extractor.py +306 -0
  25. atomadic_forge/a1_at_functions/card_renderer.py +210 -0
  26. atomadic_forge/a1_at_functions/certify_checks.py +445 -0
  27. atomadic_forge/a1_at_functions/chat_context.py +170 -0
  28. atomadic_forge/a1_at_functions/cherry_pick.py +71 -0
  29. atomadic_forge/a1_at_functions/classify_tier.py +115 -0
  30. atomadic_forge/a1_at_functions/commandsmith_discover.py +167 -0
  31. atomadic_forge/a1_at_functions/commandsmith_render.py +267 -0
  32. atomadic_forge/a1_at_functions/compiler_feedback.py +94 -0
  33. atomadic_forge/a1_at_functions/compliance_checker.py +228 -0
  34. atomadic_forge/a1_at_functions/config_io.py +68 -0
  35. atomadic_forge/a1_at_functions/cs1_renderer.py +588 -0
  36. atomadic_forge/a1_at_functions/doc_synthesizer.py +205 -0
  37. atomadic_forge/a1_at_functions/emergent_compose.py +192 -0
  38. atomadic_forge/a1_at_functions/emergent_rank.py +116 -0
  39. atomadic_forge/a1_at_functions/emergent_signature_extract.py +242 -0
  40. atomadic_forge/a1_at_functions/emergent_synthesize.py +88 -0
  41. atomadic_forge/a1_at_functions/enforce_planner.py +208 -0
  42. atomadic_forge/a1_at_functions/error_hints.py +105 -0
  43. atomadic_forge/a1_at_functions/evolution_log.py +94 -0
  44. atomadic_forge/a1_at_functions/forge_feedback.py +433 -0
  45. atomadic_forge/a1_at_functions/generation_quality.py +322 -0
  46. atomadic_forge/a1_at_functions/import_repair.py +211 -0
  47. atomadic_forge/a1_at_functions/import_smoke.py +102 -0
  48. atomadic_forge/a1_at_functions/js_parser.py +539 -0
  49. atomadic_forge/a1_at_functions/lineage_chain.py +144 -0
  50. atomadic_forge/a1_at_functions/lineage_reader.py +107 -0
  51. atomadic_forge/a1_at_functions/llm_client.py +554 -0
  52. atomadic_forge/a1_at_functions/local_signer.py +134 -0
  53. atomadic_forge/a1_at_functions/lsp_protocol.py +379 -0
  54. atomadic_forge/a1_at_functions/manifest_diff.py +314 -0
  55. atomadic_forge/a1_at_functions/mcp_protocol.py +1066 -0
  56. atomadic_forge/a1_at_functions/patch_scorer.py +267 -0
  57. atomadic_forge/a1_at_functions/plan_adapter.py +75 -0
  58. atomadic_forge/a1_at_functions/policy_loader.py +107 -0
  59. atomadic_forge/a1_at_functions/preflight_change.py +227 -0
  60. atomadic_forge/a1_at_functions/progress_reporter.py +81 -0
  61. atomadic_forge/a1_at_functions/provider_detect.py +157 -0
  62. atomadic_forge/a1_at_functions/provider_resolver.py +48 -0
  63. atomadic_forge/a1_at_functions/receipt_emitter.py +291 -0
  64. atomadic_forge/a1_at_functions/recipes.py +186 -0
  65. atomadic_forge/a1_at_functions/repo_explainer.py +124 -0
  66. atomadic_forge/a1_at_functions/roi_calculator.py +265 -0
  67. atomadic_forge/a1_at_functions/rollback_planner.py +147 -0
  68. atomadic_forge/a1_at_functions/sbom_emitter.py +155 -0
  69. atomadic_forge/a1_at_functions/scaffold_js.py +55 -0
  70. atomadic_forge/a1_at_functions/scaffold_pyproject.py +62 -0
  71. atomadic_forge/a1_at_functions/scaffold_starter.py +94 -0
  72. atomadic_forge/a1_at_functions/scout_walk.py +309 -0
  73. atomadic_forge/a1_at_functions/sidecar_parser.py +161 -0
  74. atomadic_forge/a1_at_functions/sidecar_validator.py +202 -0
  75. atomadic_forge/a1_at_functions/stub_detector.py +158 -0
  76. atomadic_forge/a1_at_functions/synergy_detect.py +166 -0
  77. atomadic_forge/a1_at_functions/synergy_render.py +252 -0
  78. atomadic_forge/a1_at_functions/synergy_surface_extract.py +163 -0
  79. atomadic_forge/a1_at_functions/test_runner.py +196 -0
  80. atomadic_forge/a1_at_functions/test_selector.py +122 -0
  81. atomadic_forge/a1_at_functions/tier_init_rebuild.py +122 -0
  82. atomadic_forge/a1_at_functions/tool_composer.py +130 -0
  83. atomadic_forge/a1_at_functions/transcript_log.py +70 -0
  84. atomadic_forge/a1_at_functions/wire_check.py +260 -0
  85. atomadic_forge/a2_mo_composites/__init__.py +1 -0
  86. atomadic_forge/a2_mo_composites/lineage_chain_store.py +122 -0
  87. atomadic_forge/a2_mo_composites/manifest_store.py +46 -0
  88. atomadic_forge/a2_mo_composites/plan_store.py +164 -0
  89. atomadic_forge/a2_mo_composites/receipt_signer.py +231 -0
  90. atomadic_forge/a3_og_features/__init__.py +1 -0
  91. atomadic_forge/a3_og_features/commandsmith_feature.py +267 -0
  92. atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py +3 -0
  93. atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py +4 -0
  94. atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py +14 -0
  95. atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py +10 -0
  96. atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py +18 -0
  97. atomadic_forge/a3_og_features/demo_runner.py +502 -0
  98. atomadic_forge/a3_og_features/emergent_feature.py +95 -0
  99. atomadic_forge/a3_og_features/emergent_pipeline_integration.py +154 -0
  100. atomadic_forge/a3_og_features/forge_enforce.py +107 -0
  101. atomadic_forge/a3_og_features/forge_evolve.py +176 -0
  102. atomadic_forge/a3_og_features/forge_loop.py +528 -0
  103. atomadic_forge/a3_og_features/forge_pipeline.py +295 -0
  104. atomadic_forge/a3_og_features/forge_plan_apply.py +222 -0
  105. atomadic_forge/a3_og_features/lsp_server.py +98 -0
  106. atomadic_forge/a3_og_features/mcp_server.py +160 -0
  107. atomadic_forge/a3_og_features/setup_wizard.py +337 -0
  108. atomadic_forge/a3_og_features/synergy_feature.py +65 -0
  109. atomadic_forge/a4_sy_orchestration/__init__.py +1 -0
  110. atomadic_forge/a4_sy_orchestration/cli.py +1284 -0
  111. atomadic_forge/commands/__init__.py +1 -0
  112. atomadic_forge/commands/_registry.py +36 -0
  113. atomadic_forge/commands/audit.py +142 -0
  114. atomadic_forge/commands/chat.py +133 -0
  115. atomadic_forge/commands/commandsmith.py +178 -0
  116. atomadic_forge/commands/config_cmd.py +145 -0
  117. atomadic_forge/commands/demo.py +142 -0
  118. atomadic_forge/commands/emergent.py +124 -0
  119. atomadic_forge/commands/emergent_then_synergy.py +70 -0
  120. atomadic_forge/commands/evolve.py +122 -0
  121. atomadic_forge/commands/evolve_then_iterate.py +70 -0
  122. atomadic_forge/commands/feature_then_emergent.py +111 -0
  123. atomadic_forge/commands/iterate.py +140 -0
  124. atomadic_forge/commands/synergy.py +96 -0
  125. atomadic_forge/commands/synergy_then_emergent.py +70 -0
  126. atomadic_forge-0.3.2.dist-info/METADATA +471 -0
  127. atomadic_forge-0.3.2.dist-info/RECORD +131 -0
  128. atomadic_forge-0.3.2.dist-info/WHEEL +5 -0
  129. atomadic_forge-0.3.2.dist-info/entry_points.txt +3 -0
  130. atomadic_forge-0.3.2.dist-info/licenses/LICENSE +15 -0
  131. atomadic_forge-0.3.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,471 @@
1
+ Metadata-Version: 2.4
2
+ Name: atomadic-forge
3
+ Version: 0.3.2
4
+ Summary: Atomadic Forge — absorb, enforce, emerge. Polyglot (Python + JavaScript/TypeScript) architecture guardian for AI-generated code.
5
+ Author: Atomadic
6
+ License-Expression: BUSL-1.1
7
+ Keywords: atomadic,ass-ade,monadic,architecture,forge,code-quality,ai,agents,javascript,typescript,polyglot
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Topic :: Software Development :: Quality Assurance
14
+ Requires-Python: >=3.10
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: click<9,>=8.1
18
+ Requires-Dist: typer<1,>=0.15
19
+ Requires-Dist: rich<15,>=14
20
+ Requires-Dist: pyyaml<7,>=6
21
+ Provides-Extra: dev
22
+ Requires-Dist: pytest>=7; extra == "dev"
23
+ Requires-Dist: import-linter<3,>=2.0; extra == "dev"
24
+ Requires-Dist: ruff>=0.4; extra == "dev"
25
+ Requires-Dist: build<2,>=1; extra == "dev"
26
+ Requires-Dist: twine<7,>=5; extra == "dev"
27
+ Requires-Dist: tomli>=2; python_version < "3.11" and extra == "dev"
28
+ Requires-Dist: cryptography<46,>=42; extra == "dev"
29
+ Provides-Extra: signing
30
+ Requires-Dist: cryptography<46,>=42; extra == "signing"
31
+ Dynamic: license-file
32
+
33
+ <p align="center">
34
+ <img src="assets/Atomadic-Forge-01.png" alt="Atomadic Forge" width="720"/>
35
+ </p>
36
+
37
+ # Atomadic Forge
38
+
39
+ [![PyPI](https://img.shields.io/pypi/v/atomadic-forge.svg)](https://pypi.org/project/atomadic-forge/)
40
+ [![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
41
+ [![License: BSL-1.1](https://img.shields.io/badge/License-BSL--1.1-yellow.svg)](LICENSE)
42
+ [![CI](https://github.com/atomadictech/atomadic-forge/actions/workflows/ci.yml/badge.svg)](https://github.com/atomadictech/atomadic-forge/actions/workflows/ci.yml)
43
+ [![Forge certify](https://img.shields.io/badge/forge_certify-100%2F100-brightgreen)](docs/SHOWCASE.md)
44
+
45
+ > **Absorb. Enforce. Emerge.** The architecture substrate for AI-generated code — now polyglot (Python, JavaScript, TypeScript).
46
+
47
+ Forge is a monadic-architecture engine that does three things no existing
48
+ tool combines:
49
+
50
+ 1. **Absorbs** Python or JavaScript / TypeScript repositories into a verified
51
+ 5-tier layout.
52
+ 2. **Enforces** the upward-only import law on every emitted file.
53
+ 3. **Emerges** new capabilities by composing what already exists — and
54
+ refuses to credit code that lies about what it does.
55
+
56
+ It's the substrate Cursor and Devin and Lovable don't have. It runs on
57
+ free local models, free cloud tiers, or paid frontier models — same
58
+ loop, swap the LLM, watch the trajectory carry harder tasks higher.
59
+
60
+ **Languages:** Python (`.py`), JavaScript (`.js` / `.mjs` / `.cjs` / `.jsx`),
61
+ TypeScript (`.ts` / `.tsx`). Cloudflare Workers, Node back-ends, and mixed
62
+ Python+JS repositories all classify in a single pass — no Node dependency,
63
+ `node_modules/` skipped automatically.
64
+
65
+ ## Get started in 10 minutes
66
+
67
+ **Read [docs/FIRST_10_MINUTES.md](docs/FIRST_10_MINUTES.md).** It is
68
+ the canonical onboarding path: install, a 30-second offline demo, a
69
+ 10-second free recon on your own repo, then a fork into either
70
+ "absorb existing code" or "generate from intent" with explicit cost,
71
+ privacy, and wallclock numbers.
72
+
73
+ For deeper paths once you have done the 10-minute path:
74
+
75
+ - [docs/MULTI_REPO.md](docs/MULTI_REPO.md) — absorb more than one repo at once.
76
+ - [docs/CI_CD.md](docs/CI_CD.md) — GitHub Actions, GitLab CI, pre-commit.
77
+ - [docs/AIR_GAPPED.md](docs/AIR_GAPPED.md) — offline / on-prem install.
78
+ - [docs/SHOWCASE.md](docs/SHOWCASE.md) — live trajectories of real runs.
79
+
80
+ ### Polyglot recon (JS/TS in a single pass)
81
+
82
+ ```bash
83
+ $ forge recon ./my-cloudflare-worker
84
+
85
+ Recon: ./my-cloudflare-worker
86
+ ------------------------------------------------------------
87
+ python files: 0
88
+ javascript files: 4
89
+ typescript files: 1
90
+ primary language: javascript
91
+ symbols: 17
92
+ tier dist: {'a0_qk_constants': 1, 'a1_at_functions': 2,
93
+ 'a2_mo_composites': 1, 'a4_sy_orchestration': 1}
94
+ effect dist: {'pure': 9, 'state': 5, 'io': 3}
95
+ recommendations:
96
+ - JS/TS files are not yet split into aN_* tier directories —
97
+ see suggested_tier per file in symbols[].
98
+ ```
99
+
100
+ ## Pipeline lanes
101
+
102
+ ```bash
103
+ forge auto ./messy-repo ./out --apply # Absorb a flat repo into 5-tier layout
104
+ forge evolve run "<intent>" ./out --auto 5 # LLM-driven recursive generation
105
+ forge demo run --preset NAME # Click-to-launch-video preset
106
+ forge chat ask "what should I fix next?" --context .
107
+ ```
108
+
109
+ **What Forge does:**
110
+ - Walks any Python or JavaScript/TypeScript repo, classifies every symbol into one of 5 architectural tiers
111
+ - Materializes into a tier-organized tree with strict upward-only imports
112
+ - Detects architecture violations (upward imports, misclassified symbols) — Python or JS, same law
113
+ - Scores conformance: documentation, tests, tier layout, import discipline
114
+ - Works with AI-generated code — absorbs it, fixes the architecture, ships it
115
+
116
+ **What Forge does NOT do:**
117
+ - Pretend `forge auto` magically finished your product; absorption creates a
118
+ tiered starter skeleton. `iterate` / `evolve` can generate code through your
119
+ configured LLM, but Forge still gates it with wire/certify feedback.
120
+ - Create semantic unification (two `User` classes stay two `User` classes)
121
+ - Bypass the 5-tier law (Forge itself passes its own `wire` scan 100%)
122
+ - Store secrets or credentials
123
+
124
+ ## Why Forge exists
125
+
126
+ AI agents produce 30–50% of new code in many teams. The output is **fast and often correct**. But it's almost universally **architecturally incoherent**:
127
+
128
+ - God classes mixing concerns
129
+ - Leaky abstractions and circular imports
130
+ - Same concept named five different ways
131
+ - Test coverage is scattered
132
+ - No module organization
133
+
134
+ **Linters say "no."** Forge says **"yes, but reorganised like this"** and shows the diff.
135
+
136
+ Forge is **not a style checker**. It's an **architecture rebuilder**. It absorbs your code (including AI-generated code), re-tiers it, enforces the 5-tier monadic law, and emits a clean, verifiable structure with certification scores.
137
+
138
+ ## The 5-tier monadic law
139
+
140
+ Every source file (Python `.py`, JavaScript `.js`/`.mjs`/`.cjs`/`.jsx`, or
141
+ TypeScript `.ts`/`.tsx`) belongs to exactly one tier. **Tiers compose upward
142
+ only** — never sideways, never downward.
143
+
144
+ ```
145
+ a4_sy_orchestration/ ← CLI, entry points, top-level orchestration
146
+
147
+ a3_og_features/ ← Feature modules (compose a2 into capabilities)
148
+
149
+ a2_mo_composites/ ← Stateful classes (clients, registries, stores)
150
+
151
+ a1_at_functions/ ← Pure functions (validators, parsers, formatters)
152
+
153
+ a0_qk_constants/ ← Constants, enums, TypedDicts (zero logic)
154
+ ```
155
+
156
+ | Tier | Directory | What lives here | May import |
157
+ |------|-----------|-----------------|------------|
158
+ | **a0** | `a0_qk_constants/` | Constants, enums, TypedDicts, config | Nothing |
159
+ | **a1** | `a1_at_functions/` | Pure stateless functions | a0 only |
160
+ | **a2** | `a2_mo_composites/` | Stateful classes, clients, stores | a0, a1 |
161
+ | **a3** | `a3_og_features/` | Features combining composites | a0–a2 |
162
+ | **a4** | `a4_sy_orchestration/` | CLI commands, entry points | a0–a3 |
163
+
164
+ ### Why the tiers work
165
+
166
+ Each tier is a layer of **verified building blocks**. Higher tiers never invent logic — they **compose** blocks from lower tiers. This means:
167
+
168
+ - **a0 is bulletproof:** no imports, no logic, 100% verifiable
169
+ - **a1 is isolated:** pure functions on pure data, trivial to test
170
+ - **a2 wraps logic:** state + verified building blocks, testable in isolation
171
+ - **a3 orchestrates:** combines composites into features, handles cross-cutting concerns
172
+ - **a4 glues everything:** CLI layer only, zero business logic
173
+
174
+ **Upward-only import law:** `forge wire` detects violations, `import-linter` enforces at CI, contract lives in `pyproject.toml`.
175
+
176
+ ## Installation
177
+
178
+ ```bash
179
+ pip install atomadic-forge
180
+ forge --version # atomadic-forge 0.3.1
181
+ forge doctor # environment check
182
+ ```
183
+
184
+ Then follow [docs/FIRST_10_MINUTES.md](docs/FIRST_10_MINUTES.md) for
185
+ the canonical first-run path (offline demo, free recon, then absorb or
186
+ generate).
187
+
188
+ **From source (contributors):**
189
+
190
+ ```bash
191
+ git clone https://github.com/atomadictech/atomadic-forge && cd atomadic-forge
192
+ pip install -e ".[dev]"
193
+ python -m pytest # 783 passing, 2 skipped
194
+ ```
195
+
196
+ ## AI Agent integration (MCP)
197
+
198
+ Forge ships a **Model Context Protocol server** — add it to Cursor, Claude Code, Aider, Devin, or any MCP-compatible agent and they can drive forge without touching the CLI:
199
+
200
+ ```json
201
+ {
202
+ "mcpServers": {
203
+ "atomadic-forge": {
204
+ "command": "forge",
205
+ "args": ["mcp", "serve", "--project", "/path/to/your/repo"]
206
+ }
207
+ }
208
+ }
209
+ ```
210
+
211
+ **21 tools exposed:** `recon` · `wire` · `certify` · `enforce` · `audit_list` · `auto_plan` · `auto_step` · `auto_apply` · `context_pack` · `preflight_change` · `score_patch` · `select_tests` · `rollback_plan` · `explain_repo` · `adapt_plan` · `compose_tools` · `load_policy` · `why_did_this_change` · `what_failed_last_time` · `list_recipes` · `get_recipe`
212
+
213
+ **5 resources:** Receipt schema · formalization docs · lineage chain · blocker summary · verdicts
214
+
215
+ ```bash
216
+ forge mcp serve --help # full tool + resource listing with examples
217
+ ```
218
+
219
+ ## Forge Studio — desktop GUI
220
+
221
+ A native Tauri 2 + React desktop app that connects to your project via the MCP server:
222
+
223
+ ```bash
224
+ cd forge-studio
225
+ npm install
226
+ npm run tauri dev # development
227
+ npm run tauri build # native binary
228
+ ```
229
+
230
+ **Panels:** Architecture Graph (5-tier Cytoscape) · Complexity Heatmap · Real-Time Debt Counter · Wire violations · Lineage log
231
+
232
+ ## Code-from-intent (LLM-driven, with Forge as the architectural backbone)
233
+
234
+ Plug a free Gemini key in and let the loop produce architecturally-coherent
235
+ code from a paragraph of intent:
236
+
237
+ ```bash
238
+ # Get a free key at https://aistudio.google.com/apikey
239
+ export GEMINI_API_KEY=your-key-here # never commit this
240
+
241
+ # Single-shot generate (one user-intent → multi-turn LLM loop):
242
+ forge iterate run "build a tiny calculator CLI" ./out \
243
+ --package calc --provider gemini --max-iterations 4
244
+
245
+ # Recursive self-improvement: N rounds, catalog grows each round:
246
+ forge evolve run "build a markdown-to-PDF service" ./out \
247
+ --auto 5 --provider gemini --target-score 80
248
+
249
+ # Pre-flight (no LLM call) — print the system + first prompt:
250
+ forge iterate preflight "..." --package whatever
251
+ ```
252
+
253
+ Every Python `iterate` / `evolve` run now ends with a deterministic quality
254
+ phase: Forge adds conservative missing docstrings, writes `docs/API.md` and
255
+ `docs/TESTING.md`, and creates `tests/test_generated_smoke.py` so the
256
+ package has import-smoke coverage even when the model forgets tests. These
257
+ generated tests are a floor; add behavior tests for real inputs before
258
+ shipping.
259
+
260
+ ### Chat copilot
261
+
262
+ Use your configured AI agent as a Forge-aware terminal copilot. The chat
263
+ surface uses the same provider layer as `iterate` and `evolve`, and can pack
264
+ bounded repo context without sending `.env` or obvious secret files.
265
+
266
+ ```bash
267
+ # One-shot question with repo context
268
+ forge chat ask "what should I run before release?" --context .
269
+
270
+ # Interactive session against your AAAA-Nexus agent
271
+ export AAAA_NEXUS_API_KEY=...
272
+ forge chat repl --provider nexus --context src --context docs
273
+
274
+ # Offline smoke test for scripts / CI
275
+ forge chat ask "hello" --provider stub --no-cwd-context --json
276
+ ```
277
+
278
+ ### LLM provider matrix
279
+
280
+ | Provider | Cost | Env var | Default model | When to use |
281
+ |----------|------|---------|---------------|-------------|
282
+ | `gemini` | **free tier** | `GEMINI_API_KEY` / `GOOGLE_API_KEY` | `gemini-2.5-flash` | Best free cloud option; override with `FORGE_GEMINI_MODEL` |
283
+ | `nexus` / `aaaa-nexus` | paid | `AAAA_NEXUS_API_KEY` | (Nexus default) | AAAA-Nexus sovereign AI; most reliable for long runs |
284
+ | `anthropic` | paid | `ANTHROPIC_API_KEY` | `claude-3-5-sonnet-latest` | Highest code quality |
285
+ | `openai` | paid | `OPENAI_API_KEY` | `gpt-4o-mini` | Cheap GPT path |
286
+ | `openrouter` | **free tier available** | `OPENROUTER_API_KEY` | `google/gemma-3-27b-it:free` | Access 200+ models; good fallback when Gemini quota exhausted; override with `FORGE_OPENROUTER_MODEL` |
287
+ | `ollama` | free, local | `FORGE_OLLAMA=1` | `qwen2.5-coder:7b` | Offline; fully private |
288
+ | `stub` | free, offline | n/a | n/a | Tests, CI, dry-runs |
289
+
290
+ `--provider auto` resolves in the code-defined order:
291
+ AAAA-Nexus, Anthropic, Gemini, OpenAI, OpenRouter, Ollama, then `stub`.
292
+ Explicit `--provider gemini` (or any other provider name) always wins.
293
+
294
+ For busy laptops or desktops, run Ollama with the small local profile:
295
+
296
+ ```bash
297
+ export FORGE_OLLAMA=1
298
+ export FORGE_OLLAMA_MODEL=qwen2.5-coder:1.5b
299
+ export FORGE_OLLAMA_NUM_PREDICT=768
300
+ export FORGE_OLLAMA_TIMEOUT=180
301
+ forge chat ask "what should I fix next?" --provider ollama --context src
302
+ ```
303
+
304
+ Use `qwen2.5-coder:7b` when the machine is idle and you want better code
305
+ quality. `FORGE_OLLAMA_NUM_PREDICT` caps each generation; lower it if
306
+ Ollama starts paging or crashing. `FORGE_OLLAMA_TIMEOUT` controls how long
307
+ Forge waits before returning a clear provider error.
308
+
309
+ ## Commands
310
+
311
+ **Flagship:** `forge auto` does everything in one shot.
312
+
313
+ ### Absorb pipeline
314
+
315
+ | Command | Purpose | Typical use |
316
+ |---------|---------|-------------|
317
+ | **`forge auto`** | Scout → cherry-pick → materialize → wire → certify. *The main verb.* | `forge auto ./repo ./out --apply` |
318
+ | `forge recon` | Walk a repo, classify every symbol. Shows tier distribution. | `forge recon ./repo` |
319
+ | `forge cherry` | Build a cherry-pick manifest. Select specific symbols or `--pick all`. | `forge cherry ./repo --pick all` |
320
+ | `forge finalize` | Materialize, wire, certify. Run separately if needed. | `forge finalize ./repo ./out --apply` |
321
+ | `forge wire` | Scan a tier tree for upward-import violations. | `forge wire ./out/src/package` |
322
+ | `forge certify` | Score: documentation, tests, tier layout, import discipline. | `forge certify ./out --fail-under 90` |
323
+ | `forge enforce` | Apply F-code-routed mechanical fixes (rollback-safe). | `forge enforce ./out/src/package` |
324
+ | `forge status` | Wire + certify in one call. The quick health check. | `forge status .` |
325
+
326
+ ### Observability & compliance
327
+
328
+ | Command | Purpose |
329
+ |---------|---------|
330
+ | `forge audit list / show / log` | Browse `.atomadic-forge/lineage.jsonl` — run history, saved manifests. |
331
+ | `forge doctor` | Environment check — Python, optional deps (complexipy, cryptography). |
332
+ | `forge sbom` | Emit a CycloneDX 1.5 SBOM from the scout report. |
333
+ | `forge cs1` | Render a Conformity Statement (EU AI Act / SR 11-7 / FDA PCCP / CMMC-AI). |
334
+ | `forge diff` | Schema-aware compare of two scout or certify manifests. |
335
+ | `forge sidecar parse / validate` | Parse + cross-check `.forge` v1.0 sidecar grammar. |
336
+
337
+ ### Agent & LLM loops
338
+
339
+ | Command | Purpose |
340
+ |---------|---------|
341
+ | `forge mcp serve` | Stdio JSON-RPC MCP server — 21 tools for Cursor / Claude Code / Aider / Devin. |
342
+ | `forge plan / plan-list / plan-show / plan-step / plan-apply` | Agent plan persistence and step-by-step apply. |
343
+ | `forge iterate` | LLM loop: intent → code → absorb → wire → score → iterate. Single shot. |
344
+ | `forge evolve` | Recursive improvement: N rounds, catalog grows each round. |
345
+ | `forge chat` | Terminal copilot over forge docs/source using the same AI provider layer. |
346
+ | `forge context-pack` | Pack bounded repo context for agent first-call orientation. |
347
+ | `forge preflight` | Pre-edit guardrail — forbidden imports, tier checks. |
348
+ | `forge recipes` | List and fetch golden-path recipe templates. |
349
+
350
+ ### Composition & tooling
351
+
352
+ | Command | Purpose |
353
+ |---------|---------|
354
+ | `forge emergent` | Symbol-level composition discovery. |
355
+ | `forge synergy` | Feature-pair detection + auto-generate adapters. |
356
+ | `forge commandsmith` | Auto-register CLI commands, regenerate `_registry.py`, smoke-test all verbs. |
357
+ | `forge lsp serve` | Stdio LSP server for `.forge` files (live diagnostics, hover, goto). |
358
+
359
+ ## Targeted workflows
360
+
361
+ ```bash
362
+ # Targeted: just see what's in a repo
363
+ forge recon ./repo
364
+
365
+ # Targeted: pick specific symbols
366
+ forge cherry ./repo --pick infer_tier --pick CherryPicker
367
+
368
+ # Targeted: merge two repos with conflict resolution
369
+ forge cherry ./repo-a --pick all
370
+ forge finalize ./repo-a ./out --apply --on-conflict rename
371
+
372
+ # Specialty: surface compositions across your own catalog
373
+ forge emergent scan
374
+ ```
375
+
376
+ ## Known limits (honest & concrete)
377
+
378
+ Forge ships with named limits. No overpromise.
379
+
380
+ 1. **Python and JavaScript/TypeScript today; Rust / Go on the roadmap.** As of 0.2, `recon`, `wire`, and `certify` classify `.py`, `.js`, `.mjs`, `.cjs`, `.jsx`, `.ts`, and `.tsx`. The runtime-import smoke check (the +25 score component for "package actually loads in a fresh subprocess") and the behavioural pytest gate remain Python-only — JS/TS packages are scored on documentation, tests-present, tier layout, and upward-import discipline. The JS parser is regex + brace-walking, not a real AST; it handles the surface (imports, exports, class signals, Worker default-`{ fetch, scheduled }` shape) the tier law cares about.
381
+
382
+ 2. **Building material, not shipping software.** `forge auto` output is a **tier-organised starter skeleton**, not a deployable app. Every `--apply` emits `STATUS.md` listing required follow-up:
383
+ - Integration tests against real inputs
384
+ - Runtime configuration (secrets, env vars, DB URLs)
385
+ - Observability (logging, metrics, tracing)
386
+ - Cross-symbol reconciliation (two `User` classes need unification, not duplication)
387
+
388
+ 3. **Tier classification is heuristic.** Forge uses word-boundary tokens + body-state detection (mutable instance variables in Python; class declarations + module-level `let`/`var` in JS). The scout report logs the rationale per symbol so you can override misclassifications via `--override-tier`.
389
+
390
+ 4. **No semantic merge.** Two `class User` from different repos don't auto-unify. Forge detects the collision via `--on-conflict` (rename | first | last | fail) and reports it. **You** decide how to reconcile.
391
+
392
+ 5. **Auto-generated adapters are scaffolding.** The `synergy` pipeline emits adapters marked with `# REVIEW:` blocks. Read them. Refine them. They're templates, not production code.
393
+
394
+ 6. **Certificates are locally signed only.** Ed25519 signing via `forge certify --local-sign` is available (requires `pip install cryptography`). Chain-of-custody / notarization infrastructure is a future milestone.
395
+
396
+ ## Design philosophy
397
+
398
+ - **Absorb-first, generate-never.** Forge never writes code from scratch. It absorbs and reorganises code that already exists — including AI-generated code.
399
+
400
+ - **Dry-run by default.** No verb writes to disk without `--apply` or equivalent. Only `.atomadic-forge/` manifests (diagnostic reports) are written in dry-run mode.
401
+
402
+ - **The 5-tier law is non-negotiable.** Anything that ships with Forge passes its own `wire` scan. Forge's 53 source files live in a0–a4; it eats its own dogfood.
403
+
404
+ - **Honest output.** Every report includes `schema_version`. Every apply emits `STATUS.md` (required follow-up). Every artifact is provable and traced (lineage recorded in `.atomadic-forge/lineage.jsonl`).
405
+
406
+ - **Composability, not coupling.** Forge outputs JSON manifests at each stage (scout, cherry, assimilate, wire, certify). Pipe them. Script them. Build on them.
407
+
408
+ ## Atomadic family
409
+
410
+ | Product | What it is | Status |
411
+ |---------|------------|--------|
412
+ | **AAAA-Nexus** | Trust/safety/payments substrate for autonomous agents | Live at [atomadic.tech](https://atomadic.tech) |
413
+ | **Atomadic Forge** | Absorb-and-emerge engine for developers (this repo) | **0.3.1** — on PyPI, 783 tests, MCP server, desktop GUI |
414
+ | **Atomadic Assistant** | Sovereign AI assistant with cognitive loop on Cloudflare | In development |
415
+
416
+ ## License
417
+
418
+ [Business Source License 1.1](LICENSE). Free for non-production use.
419
+ Commercial license required for production. Change Date: 2030-04-27 →
420
+ Apache 2.0.
421
+
422
+ ## Documentation
423
+
424
+ - **[Showcase](docs/SHOWCASE.md)** — Live runs with live results (start here)
425
+ - **[Landscape](docs/LANDSCAPE.md)** — How Forge sits next to Cursor / Devin / Lovable / Copilot Workspace
426
+ - **[Why now](docs/WHY_NOW.md)** — The urgency case for an architecture substrate
427
+ - **[Commands](docs/COMMANDS.md)** — Full reference for all 13+ verbs
428
+ - **[Release checklist](docs/RELEASE_CHECKLIST.md)** — Shippability gates, CLI scenarios, local-model smoke checks
429
+ - **[Roadmap](docs/ROADMAP.md)** — 0.2 / 0.3 / 1.0 milestones
430
+ - **[Architecture guide](ARCHITECTURE.md)** — How Forge itself is built (monadic tiers, data flows, design)
431
+ - **[Security policy](SECURITY.md)** — Private vulnerability reporting and secret-handling expectations
432
+ - **[Tutorials](docs/tutorials/)** — Quickstart, your-first-package, the 5-tier law, plug-in-LLMs, multi-repo absorb
433
+ - **[Contributing guide](CONTRIBUTING.md)** — How to extend Forge
434
+ - **[Changelog](CHANGELOG.md)** — Version history and roadmap
435
+
436
+ ## For developers
437
+
438
+ **Forge itself is monadic.** Every source file belongs to one tier. The repo is a worked example:
439
+
440
+ ```bash
441
+ python -m pytest # 783 passing, 2 skipped
442
+ forge doctor # Environment check
443
+ forge wire src/atomadic_forge # Scan for violations (PASS)
444
+ forge certify . --fail-under 100 # Score and gate the repo (100/100)
445
+ forge status . # Quick health snapshot
446
+ forge commandsmith smoke # Smoke-test all 36+ registered verbs
447
+ ```
448
+
449
+ **Before submitting a PR:**
450
+ 1. Run the test suite — must pass
451
+ 2. Run `ruff check src/ tests/` — code style check
452
+ 3. Run `forge wire src/atomadic_forge` — import discipline
453
+ 4. Update CHANGELOG.md
454
+
455
+ ## Status
456
+
457
+ **Production-ready for architecture enforcement. Working, honest, self-eating.**
458
+
459
+ - ✓ **783 tests** passing (2 skipped)
460
+ - ✓ **100/100 certify** — forge scores itself on every CI run
461
+ - ✓ **0 wire violations** — forge passes its own import-law scan
462
+ - ✓ **On PyPI** — `pip install atomadic-forge`
463
+ - ✓ **MCP server** — 21 tools, 5 resources; works with Cursor, Claude Code, Aider, Devin
464
+ - ✓ **Desktop GUI** — Forge Studio (Tauri 2 + React)
465
+ - ✓ **Ed25519 signing** — `forge certify --local-sign`
466
+ - ✓ **CycloneDX SBOM** — `forge sbom`
467
+ - ✓ **Compliance mappings** — EU AI Act · NIST SR 11-7 · FDA PCCP · CMMC-AI
468
+ - ✓ **Polyglot** — Python + JavaScript + TypeScript, same 5-tier law
469
+ - ✓ **Cloudflare badge worker** — live certify score in any README
470
+ - ✗ Chain-of-custody notarization (future)
471
+ - ✗ Rust / Go tier classification (roadmap)
@@ -0,0 +1,131 @@
1
+ atomadic_forge/__init__.py,sha256=o9mk6apJ62JpUisH8fXTcf0fFKLPypjJTpar_qTYNzI,410
2
+ atomadic_forge/__main__.py,sha256=Ya9BC-A9hEVTDDl9RQV-8yIVy6NnhRY-ssLQpuocI0M,127
3
+ atomadic_forge/a0_qk_constants/__init__.py,sha256=zrohRqN1ukJjC4vsGK8NnMa9JUpZ5lMrAGKq2MUlQiE,62
4
+ atomadic_forge/a0_qk_constants/agent_plan_schema.py,sha256=lk0DR_pM6ahYfJqEsklugfVmYfj7QCAbGAC_DXh7BQA,4420
5
+ atomadic_forge/a0_qk_constants/commandsmith_types.py,sha256=C490fiZsXxtrc5mn4SVtS39P8QK1vtJ6cCcz2V1SFqc,1830
6
+ atomadic_forge/a0_qk_constants/config_defaults.py,sha256=oG7X4ZAu0szgO20fHE_aChomZFQYabSNNEclmFBnnP4,941
7
+ atomadic_forge/a0_qk_constants/emergent_types.py,sha256=wkuZbZ7NW9mHYLSFnvUcAFte546tOy-V1GbqdOX7jlU,2951
8
+ atomadic_forge/a0_qk_constants/error_codes.py,sha256=y2BtELb3mxoEyx52hwoTXGHb15O7EN3ROT7l7eJUFEA,10415
9
+ atomadic_forge/a0_qk_constants/forge_types.py,sha256=e5ZxLZEQc-arQtIPSi4khezu1iQl_laBvGq9hJEtIig,2264
10
+ atomadic_forge/a0_qk_constants/gen_language.py,sha256=6hL7YLAHhIz72OYt2T0wjifk0Ovc8KViw02ZnCejyeU,4389
11
+ atomadic_forge/a0_qk_constants/lang_extensions.py,sha256=a06AxVDF5rbA7IcFnN3FREXzIWadZlG3uuvxVYcvHmA,5616
12
+ atomadic_forge/a0_qk_constants/policy_schema.py,sha256=HN1Y3Yq9a2-O7-mbXS0PmJq7xxzcRjMeQMOZ0QJ0EN0,1577
13
+ atomadic_forge/a0_qk_constants/receipt_schema.py,sha256=zX9JIg2XQyZPiSF4DLqSbnVR0csKR2rsWhFPrryo1aI,12133
14
+ atomadic_forge/a0_qk_constants/roi_constants.py,sha256=-hWxgqc6AyTNJ6M72_rneXv38sXcZd8_hSBlnyjybl8,3857
15
+ atomadic_forge/a0_qk_constants/semantic_types.py,sha256=L_GztnhDRmHqoG6Q9sIzzxPAlx33t8KyZtJypcLdtZA,2283
16
+ atomadic_forge/a0_qk_constants/sidecar_schema.py,sha256=0qzOH1ooNsRzlCoA4CqzJBv1KNynzl9E04D83cWT48o,2818
17
+ atomadic_forge/a0_qk_constants/synergy_types.py,sha256=U6ZBu0JvWwSTXE0U1GmfSGVoi-93oO72qiC7IR6sSpU,2521
18
+ atomadic_forge/a0_qk_constants/tier_names.py,sha256=pXbiDw9eYm_9W1BkpsmH1xbkxxdTjeSUjcT5RVkEnXs,1408
19
+ atomadic_forge/a1_at_functions/__init__.py,sha256=pDRmz5vx3KaM6baDoTqG2290B58GO-Edz0UGpprd3-E,77
20
+ atomadic_forge/a1_at_functions/agent_context_pack.py,sha256=9ckuExkKecifMh5r7u7KFMGP_za8nAOKBtuAPG13rZ4,6707
21
+ atomadic_forge/a1_at_functions/agent_memory.py,sha256=--ZNt8qX2o7S_64Qs6UcRq1sz-ljC7UliKDqK8WfQBA,4600
22
+ atomadic_forge/a1_at_functions/agent_plan_emitter.py,sha256=3dcHGfqiB6l-JMFvPda7caGiOeMMVcwNC2qFdiobmD0,12166
23
+ atomadic_forge/a1_at_functions/agent_summary.py,sha256=4zwT0x-Q07ZWFGAaURbxM4Y3eCXZksoKCkAhH_d66jA,9700
24
+ atomadic_forge/a1_at_functions/body_extractor.py,sha256=Ddh74_HcVtyK3E3Y0hXJHWxvRPMLneShsthzHsefbPQ,11827
25
+ atomadic_forge/a1_at_functions/card_renderer.py,sha256=a9mPUuSSD1B93yG-AmC-M2pyFNAvlq18mGeUnTNbUrw,7800
26
+ atomadic_forge/a1_at_functions/certify_checks.py,sha256=augr7lP4mBq6VWduQQZ3oGb1y6wKdMGl2zq5gWYJ_PY,18050
27
+ atomadic_forge/a1_at_functions/chat_context.py,sha256=E_XWK45wUw-IxUH_u89nYWqqkPxwunF4Zv79KxypS9o,5711
28
+ atomadic_forge/a1_at_functions/cherry_pick.py,sha256=qcggSG6m6aAocSiv2ImSPzdMqAalCEaXc_lTxNiLFgk,2722
29
+ atomadic_forge/a1_at_functions/classify_tier.py,sha256=lRyabK-B5bGNAqNtOAPBNmg2fQxjmoFAvaumm_yjazc,4172
30
+ atomadic_forge/a1_at_functions/commandsmith_discover.py,sha256=M8jgv1YzyVyXBG4o56SobnwmTwBpdkmEk7owU0cpH8Q,6686
31
+ atomadic_forge/a1_at_functions/commandsmith_render.py,sha256=erLP8DX8mK2BXiFggHiOQIN1ySmhvRHeqrfsaX3PXII,9920
32
+ atomadic_forge/a1_at_functions/compiler_feedback.py,sha256=FrYfwNVatyIO3b_-VlbGDjHE_VEvnKRCusuEwkCblCQ,3772
33
+ atomadic_forge/a1_at_functions/compliance_checker.py,sha256=ZdFDTRxWHhFbfhorSc_fvVyXye_fNsZwgcRtBennHds,7345
34
+ atomadic_forge/a1_at_functions/config_io.py,sha256=fh6NU3hN0Q6pJNqR0L3qNZ0KmxtICC6fpvUzJsp7khE,2482
35
+ atomadic_forge/a1_at_functions/cs1_renderer.py,sha256=dXaQ-fp6C1h0hWBa1tOOQBAviy125AqoLVtd85aE1IU,23776
36
+ atomadic_forge/a1_at_functions/doc_synthesizer.py,sha256=mPYBhe7Dy6vVcexgpdQLTRp2c5tq6DnqjFZVeYcy_YI,8157
37
+ atomadic_forge/a1_at_functions/emergent_compose.py,sha256=YFuVEprNeSr8sTJzcAt7mDWGao6UYQkAY-OBIBqIokQ,6736
38
+ atomadic_forge/a1_at_functions/emergent_rank.py,sha256=Rn768cmjnQdaS_kSznmLl0iorW33U0Uyl2nTxraFZL8,4437
39
+ atomadic_forge/a1_at_functions/emergent_signature_extract.py,sha256=TJujOc55m1tysdewlSqu4S29U32tzq-wIGL-pgxf2BE,9238
40
+ atomadic_forge/a1_at_functions/emergent_synthesize.py,sha256=JIR1SdYWsXv1NlNxkQGx9q0sSu0V-qAodZ6S86RcdGg,3224
41
+ atomadic_forge/a1_at_functions/enforce_planner.py,sha256=8ednYJhussUHhJSlPIEOyT6cq8wQ8asXSY4--AwZGZs,7808
42
+ atomadic_forge/a1_at_functions/error_hints.py,sha256=LebB8Ax3FoRvOAolQqTxMERmr1RxfQGFohX9p9WjOZo,4487
43
+ atomadic_forge/a1_at_functions/evolution_log.py,sha256=kGuC8wFngI0mVbTx6ldylUflQmB7odzVWCPNYs-MVLU,2944
44
+ atomadic_forge/a1_at_functions/forge_feedback.py,sha256=KGywvzrmjipBNXJ8WDAIovFwvqCBB-Dr74bhym2CSxc,20022
45
+ atomadic_forge/a1_at_functions/generation_quality.py,sha256=BqypDwQpu2Uzwx9iN62tqUurf1bP8wbbh5p4qdtlJDY,11726
46
+ atomadic_forge/a1_at_functions/import_repair.py,sha256=UUis8clDYhRSLqr1fyP9tXO2Pv6pdTh7Kfy4Gi05kig,8976
47
+ atomadic_forge/a1_at_functions/import_smoke.py,sha256=gFnrAU65179p6wNZuJ8uo_VQVjoh5GRniFdgVkXBuOE,3989
48
+ atomadic_forge/a1_at_functions/js_parser.py,sha256=IUsopDneC2rENGKfjPooRc5dh1__adXyS_qZADVdvH8,18402
49
+ atomadic_forge/a1_at_functions/lineage_chain.py,sha256=tJs68-BkMGxYTeduo1zaJ6DYNOcDTwrAKHgRrm2YQMI,5341
50
+ atomadic_forge/a1_at_functions/lineage_reader.py,sha256=ttXRJ66DISO2uOqllkCIKi4-DrtcHr8ymUMbEaGmd7k,3555
51
+ atomadic_forge/a1_at_functions/llm_client.py,sha256=20Vo7ZmaS4MUkrwHv8jPKv52b0p8HAbxm7WosY2IqqA,23462
52
+ atomadic_forge/a1_at_functions/local_signer.py,sha256=9pZptkMeF1j-XlM65gX742nllJ4QbIRgLhv7hPWVxG8,4894
53
+ atomadic_forge/a1_at_functions/lsp_protocol.py,sha256=rS9_rKZAnzu_RZL-NUPB-GdPXGDVq6stL4I4iR_Z2zI,13820
54
+ atomadic_forge/a1_at_functions/manifest_diff.py,sha256=PG0YrguuX4GhHx576TTQP3lGGfgEhWtx6Gv0nujglgQ,11666
55
+ atomadic_forge/a1_at_functions/mcp_protocol.py,sha256=1iQg9A3w7wmILCZFl-OcQOg8HRE6kTbgp8ywKDgDgdc,39493
56
+ atomadic_forge/a1_at_functions/patch_scorer.py,sha256=wIQuKLtzh2nEN7LgxPqkdA1QXd-zzYse4bDzbfUF0fg,9080
57
+ atomadic_forge/a1_at_functions/plan_adapter.py,sha256=1QO1rCVF9CaNxzQJe0ui3NQeYDfGgBimB5Rx6w4RUtc,2804
58
+ atomadic_forge/a1_at_functions/policy_loader.py,sha256=U1YlKRroStfGQhTDaLsEtu-SaEVs5lcaYRsWsf9iOmU,3906
59
+ atomadic_forge/a1_at_functions/preflight_change.py,sha256=uQ2Io2N7tnY2A8Ak7WCbpNZsoZO-v0KdFHDEYTqPDUI,7613
60
+ atomadic_forge/a1_at_functions/progress_reporter.py,sha256=igT0TGZTUYxKdGH3BlcBFyTUq04Yu7Z1Haos6HQt0kI,3030
61
+ atomadic_forge/a1_at_functions/provider_detect.py,sha256=DxEzthnHyTe-RMDOqYO21LswqNAgH4-F79mvyZkLaYE,6689
62
+ atomadic_forge/a1_at_functions/provider_resolver.py,sha256=nRvxfJEOLtNAeIy4Y9fF6WoG8yVgeRxhdMe8ecqq9D4,1531
63
+ atomadic_forge/a1_at_functions/receipt_emitter.py,sha256=tFQ8Lx8rOs45UkcWY9wO3MqLuo5Hi9c4BiKAZ6Evhl0,10366
64
+ atomadic_forge/a1_at_functions/recipes.py,sha256=2mob0CUZG9JSwOgXBFXT9vEUPK0L2Xa_XMDaHyHfU5g,6773
65
+ atomadic_forge/a1_at_functions/repo_explainer.py,sha256=k1McEqjHEy-ahC6t2fuQpyLrN96jGXQAG57GJ8sneZA,4623
66
+ atomadic_forge/a1_at_functions/roi_calculator.py,sha256=xwHk81VYmZfFaJVEf10SAtMy1LQ8QTSvT9kuLFbgd-U,9224
67
+ atomadic_forge/a1_at_functions/rollback_planner.py,sha256=vVgR1tAanRKzfIF3GNLuMfJKSM2HMJv9-6z06EPiTFE,4560
68
+ atomadic_forge/a1_at_functions/sbom_emitter.py,sha256=CC37WgQ9R9mUIvapx9Z7Yu3s5oMDNJfktipECJgSY6g,4865
69
+ atomadic_forge/a1_at_functions/scaffold_js.py,sha256=trX4RVm80IUahTrT7ppVYOIKSSr9gxxrQcZJyO5gJfI,2275
70
+ atomadic_forge/a1_at_functions/scaffold_pyproject.py,sha256=AMG1NEKjTXGG6pH1wzhU3EH4dWqXKIVUA9NZbu1pn44,2075
71
+ atomadic_forge/a1_at_functions/scaffold_starter.py,sha256=OIpVvz6FluutdB__wdqeaQ2fCwDQ6Fh32ATz452Gdzg,2846
72
+ atomadic_forge/a1_at_functions/scout_walk.py,sha256=e_sZgfpXerVnD9u2FJ3jIEWTu6navvPwSD0LvhoC5z4,12191
73
+ atomadic_forge/a1_at_functions/sidecar_parser.py,sha256=9Ni7Rw4YbjNUVaXceI1EwBJCU9PkBkidWsBwyLxWl2E,5511
74
+ atomadic_forge/a1_at_functions/sidecar_validator.py,sha256=xQSIq9pNk4GVMOBjpzXlISXEE-iIDgAE1g94VAw3wy0,7665
75
+ atomadic_forge/a1_at_functions/stub_detector.py,sha256=H69ZGby_UtC1m_Pvs2TEMK8j95VTcu00vNdlXH81r-c,5670
76
+ atomadic_forge/a1_at_functions/synergy_detect.py,sha256=ufyGCRfjLvscL8KGT984RC1-777lMC4tH3u2IkSDZNk,7032
77
+ atomadic_forge/a1_at_functions/synergy_render.py,sha256=CTMhVFuKrrwIInX-7bfKCmWHPxeCe6hJKLFMtdQW390,12105
78
+ atomadic_forge/a1_at_functions/synergy_surface_extract.py,sha256=L6xd-ZNARZwHJwLbVv5oNoRi5B0CKp4ktddcR7xrvQQ,6000
79
+ atomadic_forge/a1_at_functions/test_runner.py,sha256=kZU5aLI_6b1K4IWbkbfA_26VOIrBXC5MLE3MNb71fhI,7481
80
+ atomadic_forge/a1_at_functions/test_selector.py,sha256=C1uckp3SsxRVU3PW--mAtTmQ44dJ7-akKE4HkuGONPs,3865
81
+ atomadic_forge/a1_at_functions/tier_init_rebuild.py,sha256=aXAAKjouCTEA7MxIJ5-zIrKlvMV_1CvqiuAXwrgC8hs,4453
82
+ atomadic_forge/a1_at_functions/tool_composer.py,sha256=TqqhQStFBbNPR87K1krrA_fFjriMV-RfhnLYDtI3VXs,4349
83
+ atomadic_forge/a1_at_functions/transcript_log.py,sha256=QHyWCqusKGiUGPLSa3dq2XXJ2ZV5U7_dpWZOOeCnBhg,2581
84
+ atomadic_forge/a1_at_functions/wire_check.py,sha256=6rET-nu6DeZva-4LZ2z5o6Gv-6tk7m8jNsHpVcCb_-w,9604
85
+ atomadic_forge/a2_mo_composites/__init__.py,sha256=Zj0BBH0o3IOsotbeL7gxq4G3t0Qan3thaJyfGqL3vyA,69
86
+ atomadic_forge/a2_mo_composites/lineage_chain_store.py,sha256=wi4_lc7aHHwH18DV77gNT1Id_cam9WcvftqohVf6GMk,4336
87
+ atomadic_forge/a2_mo_composites/manifest_store.py,sha256=MlT5DJBSWvCZEMOgyBqo_3CBr7-Zzphsqi6qvrFYRUY,1595
88
+ atomadic_forge/a2_mo_composites/plan_store.py,sha256=cPqyjxJT-m27fma2iQTxrS4ckgKBRPsgn2G-29XVL-U,5998
89
+ atomadic_forge/a2_mo_composites/receipt_signer.py,sha256=OU8a1I497t8Kbz3HqkgGqhRTH2h09mWaI-1uyVYOgBc,8665
90
+ atomadic_forge/a3_og_features/__init__.py,sha256=onDQb9tTySUfxxYK78GE4S0gOfCNWtZQn35j0buo4ko,81
91
+ atomadic_forge/a3_og_features/commandsmith_feature.py,sha256=Eyn043Vyq2qG0Y535C043D5p2y71xk5lglAZA_izLQQ,10487
92
+ atomadic_forge/a3_og_features/demo_runner.py,sha256=Tnzl4wlqR-KptYCz--RaZQw_BHFV8EFffVe-cdiuwTM,19281
93
+ atomadic_forge/a3_og_features/emergent_feature.py,sha256=we3W3n2yFJtSkwE0zAy6RFdUrjeijqkfxuG-Rct4XOI,3526
94
+ atomadic_forge/a3_og_features/emergent_pipeline_integration.py,sha256=SsdgW8AeLdocp4rj8V0_u-RawwxS2aPTPOLB3_eKXZs,5802
95
+ atomadic_forge/a3_og_features/forge_enforce.py,sha256=MX1zOyB3L-fYtD40LexGKBHkbfAbDyvGecihwYAtMDQ,3987
96
+ atomadic_forge/a3_og_features/forge_evolve.py,sha256=rgDQ1xyQ4ltcjfpfKpcTo0DPqCzfo61L--X4lPAimg0,6773
97
+ atomadic_forge/a3_og_features/forge_loop.py,sha256=x4FgAAftSYT3Lb6Q0XcJCgM2pVJQXKbZQcytsiXbYvs,20796
98
+ atomadic_forge/a3_og_features/forge_pipeline.py,sha256=aI0tOXG4GfQG0h4iSeqBYow49CI_0cqmxYwD9adZavU,11269
99
+ atomadic_forge/a3_og_features/forge_plan_apply.py,sha256=stnqV0ayIfUaGBJDB5aEU5998zpq_wm_UTptm4y62ow,8082
100
+ atomadic_forge/a3_og_features/lsp_server.py,sha256=nnkEifXSKe6fsQ7p7-1sVYPyvYOi4DPomYKs5127gOo,3100
101
+ atomadic_forge/a3_og_features/mcp_server.py,sha256=RJgtAZu9iULKR71fzTng-6SmAvR13n2xXMQs4DylZUU,5627
102
+ atomadic_forge/a3_og_features/setup_wizard.py,sha256=0Exg8CIuqEVx3Yh97bVFpofVGeSsjxjlsOi5uDIiuWk,12818
103
+ atomadic_forge/a3_og_features/synergy_feature.py,sha256=tNn2-dF3Kvw8AeKDKEuNb0ZdQBavjXlLKnmoIX_fNJI,2514
104
+ atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py,sha256=I9EsZhU4sx83TLoEWa958_8LNnl6xYr3J1zDymyXn9c,83
105
+ atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py,sha256=fy5GPzwKVrFkhZo6OMsbJIFqJV3U1sxkItvOiZPz6qQ,98
106
+ atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py,sha256=KD0ITSlRHkbayjcnw--bzaOpI3MqJeNFRMgdtwdON3w,471
107
+ atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py,sha256=Dp3obj3FSMTvnkZXap9bzEwQuxqzKdfQoxXoiV7oMcE,242
108
+ atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py,sha256=ac3BNeL1qUs_kSE5u2iMf05-XstCknC_1swFQDHKOrY,459
109
+ atomadic_forge/a4_sy_orchestration/__init__.py,sha256=Vr8dBnfp-nTPdiGegP7v5rhWxdaD099M0zla_eEdFEM,60
110
+ atomadic_forge/a4_sy_orchestration/cli.py,sha256=IxB29nrn3B5QUmubU4gy2rFfJNgyvL9NSWiGgTNO68I,55003
111
+ atomadic_forge/commands/__init__.py,sha256=YIMPzDzbWcDTr-GPH8XVwZhuRvV-9tUhrZF7PUjTLoc,49
112
+ atomadic_forge/commands/_registry.py,sha256=hncfZ2ZJ6W8XNRw9g5I6D3JzDc5rRMHVlPy9gFhRnYo,3139
113
+ atomadic_forge/commands/audit.py,sha256=ANrU0gewDVJEmx9_6ljONo4-GWhj2ysTt41rX4OZz00,5225
114
+ atomadic_forge/commands/chat.py,sha256=XYuCf4p9qOwPeRpBSWtLz0fdRvGMPEEaC75ZaeBQIFE,4822
115
+ atomadic_forge/commands/commandsmith.py,sha256=hxWWHirvp_F7m90At1zje3SsuAKAbBu4FuCNRWqcZZk,7246
116
+ atomadic_forge/commands/config_cmd.py,sha256=ew21oMIrKiYzaWcMZCC5eg1uUTBxwTB22cEbQTm_ISo,4695
117
+ atomadic_forge/commands/demo.py,sha256=6jcgd3EawZA82nd66aKPNFU2Sx3dBrXmjMqT7TQm1U4,5089
118
+ atomadic_forge/commands/emergent.py,sha256=yOqQzEiZ4ZVrjRb0kSNDgCfIA-U7VbV-1b0f7Uo4hiA,5491
119
+ atomadic_forge/commands/emergent_then_synergy.py,sha256=QMRVHSLxoFhzEPJBEWPgg0ZwtEazhkURtdJp8B9xet0,2409
120
+ atomadic_forge/commands/evolve.py,sha256=wOzhePKIQEzj8X3Fy8Tr8TRbWxhOCOMpX9fK1_vY7Pg,5168
121
+ atomadic_forge/commands/evolve_then_iterate.py,sha256=yTFNE63ze20Yos02QBj7GL4bfT7BO0tpeQ7LjK9ywy8,2393
122
+ atomadic_forge/commands/feature_then_emergent.py,sha256=MnkQ3idboHI0lc5ZZbkxxm2RS-ujCXHZxMNgwiV7ULg,4503
123
+ atomadic_forge/commands/iterate.py,sha256=liiM_fNvj7jXHgk363v_zHav7PC2ZGZW158iV2rfxh4,5625
124
+ atomadic_forge/commands/synergy.py,sha256=HGTdx-kp2tfiRNEMz--7K15m4X32iemxwn4uxa4YcUA,3945
125
+ atomadic_forge/commands/synergy_then_emergent.py,sha256=SNs7zFyQrGTOB7-w2aECzmgZlEhBya-wDuDLVolDUB4,2409
126
+ atomadic_forge-0.3.2.dist-info/licenses/LICENSE,sha256=50aXqASkUgvKuc_08HyiTvhNj52WiNFFUkvro-E6eOs,649
127
+ atomadic_forge-0.3.2.dist-info/METADATA,sha256=22aZEk3MVeOgtzkQgXOLRyivOXsmak4wZB03LZ3AN-Q,22791
128
+ atomadic_forge-0.3.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
129
+ atomadic_forge-0.3.2.dist-info/entry_points.txt,sha256=5wWHIm2ZL_SS36kc3FBi0ePRT8u71aSornkdsDPT_uY,131
130
+ atomadic_forge-0.3.2.dist-info/top_level.txt,sha256=01-Fm_rEjO0MhDJoH5QCAzQfwMDiOyPBrcYle3A4jYw,15
131
+ atomadic_forge-0.3.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ atomadic-forge = atomadic_forge.a4_sy_orchestration.cli:main
3
+ forge = atomadic_forge.a4_sy_orchestration.cli:main
@@ -0,0 +1,15 @@
1
+ Business Source License 1.1
2
+
3
+ Licensor: Atomadic Technologies / Thomas Ralph Colvin IV
4
+ Licensed Work: Atomadic Forge
5
+ Additional Use Grant: Non-commercial and open-source use is permitted.
6
+ Commercial use requires a paid license from the Licensor.
7
+ Change Date: 2030-04-27
8
+ Change License: Apache License, Version 2.0
9
+
10
+ For commercial licensing inquiries, contact the Licensor at atomadic.tech
11
+
12
+ The full BSL 1.1 text is at: https://mariadb.com/bsl11/
13
+
14
+ This software is provided "AS IS" without warranty of any kind. The Licensor
15
+ will not be liable for damages arising from the use of this software.
@@ -0,0 +1 @@
1
+ atomadic_forge