atomadic-forge 0.6.1__tar.gz → 0.14.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 (364) hide show
  1. atomadic_forge-0.14.0/.github/FUNDING.yml +5 -0
  2. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/actions/forge-action/README.md +130 -130
  3. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/actions/forge-action/action.yml +227 -227
  4. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/workflows/ci.yml +96 -96
  5. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/workflows/customer-refactor.yml +302 -302
  6. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/workflows/forge-self-certify.yml +54 -54
  7. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/workflows/release.yml +55 -55
  8. atomadic_forge-0.14.0/.github/workflows/surface-drift.yml +34 -0
  9. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/ARCHITECTURE.md +147 -147
  10. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/CHANGELOG.md +1440 -0
  11. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/PKG-INFO +685 -510
  12. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/README.md +653 -478
  13. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/01-getting-started.md +285 -232
  14. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/02-commands.md +1191 -670
  15. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/03-tutorial.md +328 -328
  16. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/04-llm-loops.md +118 -0
  17. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/05-faq.md +541 -472
  18. atomadic_forge-0.14.0/docs/AGENTS_GUIDE.md +720 -0
  19. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/AIR_GAPPED.md +161 -161
  20. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/CI_CD.md +271 -192
  21. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/CODEX_WALKTHROUGH.md +124 -124
  22. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/COMMANDS.md +869 -794
  23. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/FIRST_10_MINUTES.md +211 -200
  24. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/FORMALIZATION.md +197 -197
  25. atomadic_forge-0.14.0/docs/HIVE_PRIMITIVES.md +225 -0
  26. atomadic_forge-0.14.0/docs/HIVE_STATUS.md +362 -0
  27. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/LANDSCAPE.md +111 -111
  28. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/MARKET_POSITIONING.md +11 -1
  29. atomadic_forge-0.14.0/docs/MIGRATION.md +607 -0
  30. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/MULTI_REPO.md +202 -202
  31. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/README.md +138 -138
  32. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/RECEIPT.md +305 -305
  33. atomadic_forge-0.14.0/docs/RELAY_PROTOCOL.md +255 -0
  34. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/RELEASE_CHECKLIST.md +7 -2
  35. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/RELEASE_MESSAGING.md +14 -1
  36. atomadic_forge-0.14.0/docs/ROADMAP.md +255 -0
  37. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/SHOWCASE.md +241 -241
  38. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/SIDECAR.md +143 -139
  39. atomadic_forge-0.14.0/docs/TOOL_FACTORY_WALKTHROUGH.md +229 -0
  40. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/WHY_NOW.md +119 -119
  41. atomadic_forge-0.14.0/docs/WORKER_VS_LOCAL_MCP.md +318 -0
  42. atomadic_forge-0.14.0/docs/WORLD_COLLISION.md +239 -0
  43. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/INDEX.md +18 -18
  44. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/chat.md +9 -9
  45. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/commandsmith.md +9 -9
  46. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/config.md +9 -9
  47. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/demo.md +9 -9
  48. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/emergent-then-synergy.md +9 -9
  49. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/emergent.md +9 -9
  50. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/evolve-then-iterate.md +9 -9
  51. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/evolve.md +9 -9
  52. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/feature-then-emergent.md +9 -9
  53. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/iterate.md +9 -9
  54. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/synergy-then-emergent.md +9 -9
  55. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/commands/synergy.md +9 -9
  56. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/compliance/CMMC_AI_MAPPING.md +157 -157
  57. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/compliance/CS-1.md +203 -203
  58. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/compliance/EU_AI_ACT_ANNEX_IV.md +145 -145
  59. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/compliance/FDA_PCCP_MAPPING.md +138 -138
  60. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/compliance/SR_11-7_MAPPING.md +104 -104
  61. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/01-quickstart.md +91 -91
  62. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/03-the-five-tier-law.md +133 -133
  63. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/05-multi-repo-absorb.md +155 -155
  64. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/06-javascript-quickstart.md +244 -242
  65. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/pyproject.toml +90 -90
  66. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/setup.cfg +4 -4
  67. atomadic_forge-0.14.0/src/atomadic_forge/__init__.py +24 -0
  68. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/agent_plan_schema.py +120 -120
  69. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/auth_constants.py +150 -132
  70. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/error_codes.py +296 -296
  71. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/handoff_constants.py +32 -0
  72. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/hive_constants.py +108 -0
  73. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/lang_extensions.py +192 -154
  74. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/mhed_invariants.py +134 -0
  75. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/nexus_constants.py +66 -0
  76. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/policy_schema.py +48 -48
  77. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/receipt_schema.py +311 -311
  78. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/roi_constants.py +96 -96
  79. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/schema_version_registry.py +139 -0
  80. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/sidecar_schema.py +81 -81
  81. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/synergy_types.py +14 -0
  82. atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/wisdom_constants.py +47 -0
  83. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/agent_context_pack.py +446 -0
  84. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_memory.py +139 -139
  85. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_plan_emitter.py +325 -325
  86. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_summary.py +277 -277
  87. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/body_extractor.py +140 -21
  88. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/call_graph.py +378 -0
  89. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/card_renderer.py +210 -210
  90. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/certify_checks.py +75 -31
  91. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/chat_context.py +170 -170
  92. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/classify_tier.py +224 -0
  93. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/code_signature.py +197 -197
  94. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/compiler_feedback.py +94 -94
  95. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/compliance_checker.py +228 -228
  96. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/cs1_renderer.py +588 -588
  97. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_compose.py +37 -2
  98. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/emergent_rank.py +209 -0
  99. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/enforce_planner.py +258 -208
  100. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/error_hints.py +105 -105
  101. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/exported_api_check.py +188 -188
  102. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/forge_auth.py +223 -217
  103. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/forge_locate.py +179 -0
  104. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/handoff_builder.py +144 -0
  105. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/hive_consensus_math.py +130 -0
  106. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/hive_io.py +226 -0
  107. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/intent_similarity.py +113 -113
  108. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/js_parser.py +539 -539
  109. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lineage_chain.py +144 -144
  110. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lineage_reader.py +107 -107
  111. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/llm_client.py +555 -555
  112. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/local_signer.py +134 -134
  113. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lsp_protocol.py +379 -379
  114. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/manifest_diff.py +314 -314
  115. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/mcp_protocol.py +3795 -0
  116. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/patch_scorer.py +290 -272
  117. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/plan_adapter.py +75 -75
  118. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/policy_loader.py +107 -107
  119. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/preflight_change.py +241 -241
  120. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/progress_reporter.py +81 -81
  121. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/receipt_emitter.py +291 -291
  122. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/recipes.py +88 -0
  123. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/repo_explainer.py +124 -124
  124. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/research_note_distiller.py +95 -95
  125. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/roi_calculator.py +264 -264
  126. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/rollback_planner.py +147 -147
  127. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sbom_emitter.py +155 -155
  128. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scout_walk.py +410 -309
  129. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sidecar_parser.py +161 -161
  130. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sidecar_validator.py +202 -202
  131. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/smell_scan.py +276 -0
  132. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/synergy_detect.py +352 -0
  133. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/synergy_render.py +114 -0
  134. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/synergy_surface_extract.py +334 -0
  135. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/test_runner.py +194 -194
  136. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/test_selector.py +147 -147
  137. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/tool_composer.py +168 -135
  138. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/trust_gate_response.py +221 -221
  139. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/validation_commands.py +183 -183
  140. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wire_check.py +487 -0
  141. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_capture.py +129 -0
  142. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_io.py +136 -0
  143. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_promote.py +168 -0
  144. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_recall.py +113 -0
  145. atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/worktree_status.py +209 -0
  146. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/cost_circuit_breaker.py +266 -266
  147. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/cross_agent_intent_deduplicator.py +69 -69
  148. atomadic_forge-0.14.0/src/atomadic_forge/a2_mo_composites/evolve_session_store.py +185 -0
  149. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/forge_auth_client.py +254 -251
  150. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/hierarchical_memory.py +307 -307
  151. atomadic_forge-0.14.0/src/atomadic_forge/a2_mo_composites/iterate_session_store.py +194 -0
  152. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/lineage_chain_store.py +122 -122
  153. atomadic_forge-0.14.0/src/atomadic_forge/a2_mo_composites/nexus_client.py +159 -0
  154. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/plan_store.py +164 -164
  155. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/receipt_signer.py +231 -231
  156. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/agent_hire_protocol.py +228 -228
  157. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/cherry_hunter.py +254 -0
  158. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/cna_check.py +280 -0
  159. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/commandsmith_feature.py +267 -267
  160. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/commit_compose.py +177 -0
  161. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/dedup_engine.py +280 -220
  162. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py +3 -3
  163. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py +4 -4
  164. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py +14 -14
  165. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py +10 -10
  166. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py +18 -18
  167. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_runner.py +489 -489
  168. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/emergent_feature.py +101 -95
  169. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/emergent_swarm.py +265 -0
  170. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_enforce.py +107 -107
  171. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/forge_evolve_session.py +306 -0
  172. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_loop.py +528 -528
  173. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/forge_loop_session.py +271 -0
  174. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_pipeline.py +295 -295
  175. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_plan_apply.py +222 -222
  176. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/guard_install.py +284 -0
  177. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/handoff_feature.py +121 -0
  178. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/hive_sync.py +466 -0
  179. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/lsp_server.py +98 -98
  180. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/mcp_server.py +1064 -0
  181. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/nexus_bridge.py +111 -0
  182. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/relay_daemon.py +189 -0
  183. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/surface_export.py +175 -0
  184. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/synergy_feature.py +65 -65
  185. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/tool_factory.py +499 -0
  186. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/verify_umbrella.py +354 -0
  187. atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/wisdom_feature.py +149 -0
  188. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/cli.py +1548 -1378
  189. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/copilots_cmd.py +263 -234
  190. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/login_cmd.py +8 -6
  191. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/whoami_cmd.py +159 -159
  192. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/_registry.py +36 -36
  193. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/audit.py +142 -142
  194. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/commandsmith.py +176 -176
  195. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/demo.py +82 -82
  196. atomadic_forge-0.14.0/src/atomadic_forge/commands/emergent_swarm.py +139 -0
  197. atomadic_forge-0.14.0/src/atomadic_forge/commands/guard_install.py +93 -0
  198. atomadic_forge-0.14.0/src/atomadic_forge/commands/handoff.py +177 -0
  199. atomadic_forge-0.14.0/src/atomadic_forge/commands/harvest.py +89 -0
  200. atomadic_forge-0.14.0/src/atomadic_forge/commands/hive.py +437 -0
  201. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/iterate.py +140 -140
  202. atomadic_forge-0.14.0/src/atomadic_forge/commands/recon_swarm.py +76 -0
  203. atomadic_forge-0.14.0/src/atomadic_forge/commands/relay.py +107 -0
  204. atomadic_forge-0.14.0/src/atomadic_forge/commands/surface.py +152 -0
  205. atomadic_forge-0.14.0/src/atomadic_forge/commands/wisdom.py +272 -0
  206. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/PKG-INFO +685 -510
  207. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/SOURCES.txt +64 -2
  208. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_agent_hire_protocol.py +99 -99
  209. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_agent_plan.py +282 -282
  210. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_agent_summary.py +329 -329
  211. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_audit_verb.py +169 -169
  212. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_card_renderer.py +200 -200
  213. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_chat.py +46 -46
  214. atomadic_forge-0.14.0/tests/test_classify_tier_ast_signals.py +208 -0
  215. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_cli_smoke.py +229 -199
  216. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_codex_5_complete.py +448 -448
  217. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_codex_6_enforce_polyglot.py +203 -202
  218. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_compiler_feedback.py +203 -203
  219. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_compliance_checker.py +245 -245
  220. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_copilots_copilot.py +464 -395
  221. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_cost_circuit_breaker.py +95 -95
  222. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_cs1_renderer.py +368 -368
  223. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_dedup_engine.py +157 -155
  224. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_error_codes.py +241 -241
  225. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_error_hints.py +127 -127
  226. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_exported_api_check.py +105 -150
  227. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_forge_action.py +259 -259
  228. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_forge_auth_a1.py +251 -228
  229. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_forge_auth_a2.py +391 -376
  230. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_forge_enforce.py +320 -266
  231. atomadic_forge-0.14.0/tests/test_handoff.py +241 -0
  232. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_hierarchical_memory.py +90 -90
  233. atomadic_forge-0.14.0/tests/test_hive_sync.py +229 -0
  234. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_ignore_and_docs.py +309 -270
  235. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_js_certify.py +76 -76
  236. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_js_parser.py +152 -152
  237. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_js_recon.py +101 -101
  238. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_js_wire.py +94 -94
  239. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_lineage_chain.py +255 -255
  240. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_local_signer.py +185 -185
  241. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_lsp_protocol.py +302 -302
  242. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_manifest_diff.py +201 -201
  243. atomadic_forge-0.14.0/tests/test_mcp_protocol.py +1844 -0
  244. atomadic_forge-0.14.0/tests/test_nexus_bridge.py +124 -0
  245. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_plan_apply.py +378 -378
  246. atomadic_forge-0.14.0/tests/test_polyglot_swift_kotlin_go.py +201 -0
  247. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_pre_audit_smoke.py +235 -235
  248. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_precommit_hooks.py +175 -175
  249. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_progress_reporter.py +103 -103
  250. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_receipt_emitter.py +222 -222
  251. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_receipt_schema.py +206 -206
  252. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_receipt_signer.py +217 -217
  253. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_roi_calculator.py +243 -243
  254. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_sbom_emitter.py +141 -141
  255. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_scaffold.py +111 -111
  256. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_sidecar.py +188 -188
  257. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_sidecar_validate.py +196 -196
  258. atomadic_forge-0.14.0/tests/test_smell_score_formula.py +96 -0
  259. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_stub_detector.py +163 -163
  260. atomadic_forge-0.14.0/tests/test_surface_export.py +204 -0
  261. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_synergy.py +6 -2
  262. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_test_runner.py +67 -1
  263. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_trust_gate_response.py +108 -108
  264. atomadic_forge-0.14.0/tests/test_verify_suggested_recipe.py +163 -0
  265. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_whoami_cmd.py +126 -126
  266. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_wire_certify.py +56 -56
  267. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_wire_suggest_repairs.py +145 -145
  268. atomadic_forge-0.14.0/tests/test_wire_type_checking.py +179 -0
  269. atomadic_forge-0.14.0/tests/test_wisdom.py +261 -0
  270. atomadic_forge-0.6.1/.github/workflows/forge-studio-ci.yml +0 -60
  271. atomadic_forge-0.6.1/docs/AGENTS_GUIDE.md +0 -486
  272. atomadic_forge-0.6.1/docs/ROADMAP.md +0 -112
  273. atomadic_forge-0.6.1/src/atomadic_forge/__init__.py +0 -12
  274. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/agent_context_pack.py +0 -166
  275. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/classify_tier.py +0 -115
  276. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/emergent_rank.py +0 -116
  277. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/mcp_protocol.py +0 -1234
  278. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/synergy_detect.py +0 -166
  279. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/synergy_surface_extract.py +0 -163
  280. atomadic_forge-0.6.1/src/atomadic_forge/a1_at_functions/wire_check.py +0 -260
  281. atomadic_forge-0.6.1/src/atomadic_forge/a3_og_features/mcp_server.py +0 -356
  282. atomadic_forge-0.6.1/tests/test_mcp_protocol.py +0 -397
  283. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  284. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  285. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  286. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/dependabot.yml +0 -0
  287. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/.github/pull_request_template.md +0 -0
  288. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/CONTRIBUTING.md +0 -0
  289. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/LICENSE +0 -0
  290. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/MANIFEST.in +0 -0
  291. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/SECURITY.md +0 -0
  292. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/assets/Atomadic-Forge-01.png +0 -0
  293. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/STUDIO.md +0 -0
  294. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/02-your-first-package.md +0 -0
  295. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/docs/tutorials/04-plug-in-llms.md +0 -0
  296. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/__main__.py +0 -0
  297. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/__init__.py +0 -0
  298. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/commandsmith_types.py +0 -0
  299. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/config_defaults.py +0 -0
  300. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/emergent_types.py +0 -0
  301. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/forge_types.py +0 -0
  302. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/gen_language.py +0 -0
  303. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/semantic_types.py +0 -0
  304. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/tier_names.py +0 -0
  305. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/__init__.py +0 -0
  306. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/cherry_pick.py +0 -0
  307. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/commandsmith_discover.py +0 -0
  308. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/commandsmith_render.py +0 -0
  309. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/config_io.py +0 -0
  310. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/doc_synthesizer.py +0 -0
  311. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_signature_extract.py +0 -0
  312. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_synthesize.py +0 -0
  313. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/evolution_log.py +0 -0
  314. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/forge_feedback.py +0 -0
  315. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/generation_quality.py +0 -0
  316. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/import_repair.py +0 -0
  317. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/import_smoke.py +0 -0
  318. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/provider_detect.py +0 -0
  319. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/provider_resolver.py +0 -0
  320. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_js.py +0 -0
  321. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_pyproject.py +0 -0
  322. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_starter.py +0 -0
  323. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/stub_detector.py +0 -0
  324. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/tier_init_rebuild.py +0 -0
  325. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/transcript_log.py +0 -0
  326. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/__init__.py +0 -0
  327. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/manifest_store.py +0 -0
  328. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/__init__.py +0 -0
  329. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/emergent_pipeline_integration.py +0 -0
  330. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_evolve.py +0 -0
  331. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/setup_wizard.py +0 -0
  332. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/__init__.py +0 -0
  333. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/__init__.py +0 -0
  334. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/chat.py +0 -0
  335. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/config_cmd.py +0 -0
  336. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/emergent.py +0 -0
  337. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/emergent_then_synergy.py +0 -0
  338. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/evolve.py +0 -0
  339. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/evolve_then_iterate.py +0 -0
  340. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/feature_then_emergent.py +0 -0
  341. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/synergy.py +0 -0
  342. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/synergy_then_emergent.py +0 -0
  343. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/dependency_links.txt +0 -0
  344. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/entry_points.txt +0 -0
  345. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/requires.txt +0 -0
  346. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/top_level.txt +0 -0
  347. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_aaaa_nexus_client.py +0 -0
  348. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_body_extractor_repairs.py +0 -0
  349. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_certify_operational_axis.py +0 -0
  350. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_classify_tier.py +0 -0
  351. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_commandsmith.py +0 -0
  352. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_config.py +0 -0
  353. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_demo.py +0 -0
  354. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_emergent_compose.py +0 -0
  355. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_emergent_signature_extract.py +0 -0
  356. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_evolve_js.py +0 -0
  357. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_generation_quality.py +0 -0
  358. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_import_smoke.py +0 -0
  359. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_iterate_evolve.py +0 -0
  360. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_ling_provider.py +0 -0
  361. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_ollama_client.py +0 -0
  362. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_pipeline.py +0 -0
  363. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_stagnation.py +0 -0
  364. {atomadic_forge-0.6.1 → atomadic_forge-0.14.0}/tests/test_tier_init_rebuild.py +0 -0
@@ -0,0 +1,5 @@
1
+ # Atomadic Forge — Support & Funding
2
+ ko_fi: []
3
+ custom:
4
+ - https://buymeacoffee.com/atomadic
5
+ - https://forge.atomadic.tech
@@ -1,130 +1,130 @@
1
- # forge-action
2
-
3
- [![Atomadic Forge](https://img.shields.io/badge/atomadic-forge-purple)](https://github.com/atomadictech/atomadic-forge)
4
-
5
- A GitHub Action that runs **`forge wire` + `forge certify`** on a
6
- tier-organized package and posts a **sticky PR comment** with the
7
- rendered Receipt card. Composite action — no Docker, no extra runtime.
8
-
9
- This is the Lane C W1 deliverable from the Atomadic Forge Golden Path.
10
- Eventually moves to its own repo (`atomadictech/forge-action`); today
11
- it ships in-tree under `.github/actions/forge-action/` so the action's
12
- ref tracks the Forge release that emitted it.
13
-
14
- ---
15
-
16
- ## One-line install
17
-
18
- In a consuming repo, add `.github/workflows/forge.yml`:
19
-
20
- ```yaml
21
- name: Atomadic Forge — architecture gate
22
- on:
23
- pull_request:
24
- push:
25
- branches: [main]
26
-
27
- permissions:
28
- contents: read
29
- pull-requests: write # required to post the sticky comment
30
-
31
- jobs:
32
- forge:
33
- runs-on: ubuntu-latest
34
- steps:
35
- - uses: actions/checkout@v4
36
- - uses: atomadictech/atomadic-forge/.github/actions/forge-action@main
37
- with:
38
- package_root: src/your_package
39
- package_name: your_package
40
- fail_under: '75'
41
- ```
42
-
43
- That's it. The action will:
44
-
45
- 1. Install Forge from the same ref the action checked out at.
46
- 2. Run `forge wire <package_root> --fail-on-violations --json` —
47
- exits 1 on any upward-import violation.
48
- 3. Run `forge certify . --fail-under <N> --emit-receipt
49
- .atomadic-forge/receipt.json --print-card --json` — exits 1 below
50
- the threshold.
51
- 4. Upload `wire.json`, `certify.json`, `receipt.json`, and the
52
- rendered card as a 14-day build artifact.
53
- 5. Post (or update) a single sticky PR comment with the rendered card
54
- and a one-line verdict summary.
55
-
56
- ---
57
-
58
- ## Inputs
59
-
60
- | Name | Required | Default | Notes |
61
- |---|---|---|---|
62
- | `package_root` | yes | – | Tier-organized package path (e.g. `src/your_package`) |
63
- | `project_root` | no | `.` | Project root passed to `forge certify` |
64
- | `package_name` | no | `''` | Forwarded to `forge certify --package` |
65
- | `fail_under` | no | `'75'` | Certify threshold; below this, the job fails |
66
- | `receipt_path` | no | `.atomadic-forge/receipt.json` | Receipt JSON emit path (relative to `project_root`) |
67
- | `python_version` | no | `'3.11'` | Python for the Forge install |
68
- | `forge_ref` | no | (action ref) | Override which `atomadic-forge` ref to install |
69
- | `comment_on_pr` | no | `'true'` | Set to `'false'` to skip the sticky comment |
70
- | `upload_artifacts` | no | `'true'` | Set to `'false'` to skip the artifact upload |
71
-
72
- ## Outputs
73
-
74
- | Name | Type | Notes |
75
- |---|---|---|
76
- | `certify_score` | string | The certify score (0–100) as text |
77
- | `wire_verdict` | string | `PASS` or `FAIL` |
78
- | `receipt_path` | string | Echoes back the input `receipt_path` |
79
-
80
- ---
81
-
82
- ## Soft-fail discipline
83
-
84
- - **Wire and certify gates fail the job by themselves.** The
85
- `--fail-on-violations` and `--fail-under` flags are native (shipped
86
- in 0.2.x); no `python -c` workarounds.
87
- - **The PR comment is best-effort.** When the workflow runs from a
88
- fork or without `pull-requests: write`, the comment step is skipped
89
- and the job still reports its real verdict via exit code.
90
- - **The Receipt is signable.** When `AAAA_NEXUS_API_KEY` is available
91
- in the environment and the consuming workflow re-invokes `forge
92
- certify --sign`, the Receipt's `signatures.aaaa_nexus` field is
93
- populated. `forge-action` does not call `--sign` by default — most
94
- CI runs are unsigned dev attestations.
95
-
96
- ---
97
-
98
- ## What the sticky comment looks like
99
-
100
- ```
101
- ### Atomadic Forge — wire + certify
102
-
103
- **wire:** `PASS` · **certify:** `100.0/100`
104
-
105
- ╔══════════════════════════════════════════════════════════╗
106
- │ Atomadic Forge Receipt atomadic-forge.receipt/v1 │
107
- │ ✓ PASS forge 0.2.2 │
108
- │ atomadic-forge │
109
- │ CERTIFY 100.0 / 100 │
110
- │ docs ✓ tests ✓ layout ✓ wire ✓ │
111
- │ WIRE PASS (0 violations) │
112
- │ SCOUT 952 symbols (python) 952 tier-placed │
113
- ╚══════════════════════════════════════════════════════════╝
114
-
115
- Posted by forge-action. The card and JSON receipt are also uploaded
116
- as build artifacts on this run.
117
- ```
118
-
119
- Updated in place on every push — never spams the PR.
120
-
121
- ---
122
-
123
- ## Status
124
-
125
- - **Today (Lane C W1):** in-tree under `.github/actions/forge-action/`,
126
- ref-pinned to the consuming Forge release.
127
- - **Lane C W12 (planned):** dedicated repo `atomadictech/forge-action`
128
- + Marketplace listing.
129
- - **Lane C W16+ (planned):** GitHub App variant that opens weekly
130
- drift-PRs via `forge iterate --dry-run`.
1
+ # forge-action
2
+
3
+ [![Atomadic Forge](https://img.shields.io/badge/atomadic-forge-purple)](https://github.com/atomadictech/atomadic-forge)
4
+
5
+ A GitHub Action that runs **`forge wire` + `forge certify`** on a
6
+ tier-organized package and posts a **sticky PR comment** with the
7
+ rendered Receipt card. Composite action — no Docker, no extra runtime.
8
+
9
+ This is the Lane C W1 deliverable from the Atomadic Forge Golden Path.
10
+ Eventually moves to its own repo (`atomadictech/forge-action`); today
11
+ it ships in-tree under `.github/actions/forge-action/` so the action's
12
+ ref tracks the Forge release that emitted it.
13
+
14
+ ---
15
+
16
+ ## One-line install
17
+
18
+ In a consuming repo, add `.github/workflows/forge.yml`:
19
+
20
+ ```yaml
21
+ name: Atomadic Forge — architecture gate
22
+ on:
23
+ pull_request:
24
+ push:
25
+ branches: [main]
26
+
27
+ permissions:
28
+ contents: read
29
+ pull-requests: write # required to post the sticky comment
30
+
31
+ jobs:
32
+ forge:
33
+ runs-on: ubuntu-latest
34
+ steps:
35
+ - uses: actions/checkout@v4
36
+ - uses: atomadictech/atomadic-forge/.github/actions/forge-action@main
37
+ with:
38
+ package_root: src/your_package
39
+ package_name: your_package
40
+ fail_under: '75'
41
+ ```
42
+
43
+ That's it. The action will:
44
+
45
+ 1. Install Forge from the same ref the action checked out at.
46
+ 2. Run `forge wire <package_root> --fail-on-violations --json` —
47
+ exits 1 on any upward-import violation.
48
+ 3. Run `forge certify . --fail-under <N> --emit-receipt
49
+ .atomadic-forge/receipt.json --print-card --json` — exits 1 below
50
+ the threshold.
51
+ 4. Upload `wire.json`, `certify.json`, `receipt.json`, and the
52
+ rendered card as a 14-day build artifact.
53
+ 5. Post (or update) a single sticky PR comment with the rendered card
54
+ and a one-line verdict summary.
55
+
56
+ ---
57
+
58
+ ## Inputs
59
+
60
+ | Name | Required | Default | Notes |
61
+ |---|---|---|---|
62
+ | `package_root` | yes | – | Tier-organized package path (e.g. `src/your_package`) |
63
+ | `project_root` | no | `.` | Project root passed to `forge certify` |
64
+ | `package_name` | no | `''` | Forwarded to `forge certify --package` |
65
+ | `fail_under` | no | `'75'` | Certify threshold; below this, the job fails |
66
+ | `receipt_path` | no | `.atomadic-forge/receipt.json` | Receipt JSON emit path (relative to `project_root`) |
67
+ | `python_version` | no | `'3.11'` | Python for the Forge install |
68
+ | `forge_ref` | no | (action ref) | Override which `atomadic-forge` ref to install |
69
+ | `comment_on_pr` | no | `'true'` | Set to `'false'` to skip the sticky comment |
70
+ | `upload_artifacts` | no | `'true'` | Set to `'false'` to skip the artifact upload |
71
+
72
+ ## Outputs
73
+
74
+ | Name | Type | Notes |
75
+ |---|---|---|
76
+ | `certify_score` | string | The certify score (0–100) as text |
77
+ | `wire_verdict` | string | `PASS` or `FAIL` |
78
+ | `receipt_path` | string | Echoes back the input `receipt_path` |
79
+
80
+ ---
81
+
82
+ ## Soft-fail discipline
83
+
84
+ - **Wire and certify gates fail the job by themselves.** The
85
+ `--fail-on-violations` and `--fail-under` flags are native (shipped
86
+ in 0.2.x); no `python -c` workarounds.
87
+ - **The PR comment is best-effort.** When the workflow runs from a
88
+ fork or without `pull-requests: write`, the comment step is skipped
89
+ and the job still reports its real verdict via exit code.
90
+ - **The Receipt is signable.** When `AAAA_NEXUS_API_KEY` is available
91
+ in the environment and the consuming workflow re-invokes `forge
92
+ certify --sign`, the Receipt's `signatures.aaaa_nexus` field is
93
+ populated. `forge-action` does not call `--sign` by default — most
94
+ CI runs are unsigned dev attestations.
95
+
96
+ ---
97
+
98
+ ## What the sticky comment looks like
99
+
100
+ ```
101
+ ### Atomadic Forge — wire + certify
102
+
103
+ **wire:** `PASS` · **certify:** `100.0/100`
104
+
105
+ ╔══════════════════════════════════════════════════════════╗
106
+ │ Atomadic Forge Receipt atomadic-forge.receipt/v1 │
107
+ │ ✓ PASS forge 0.2.2 │
108
+ │ atomadic-forge │
109
+ │ CERTIFY 100.0 / 100 │
110
+ │ docs ✓ tests ✓ layout ✓ wire ✓ │
111
+ │ WIRE PASS (0 violations) │
112
+ │ SCOUT 952 symbols (python) 952 tier-placed │
113
+ ╚══════════════════════════════════════════════════════════╝
114
+
115
+ Posted by forge-action. The card and JSON receipt are also uploaded
116
+ as build artifacts on this run.
117
+ ```
118
+
119
+ Updated in place on every push — never spams the PR.
120
+
121
+ ---
122
+
123
+ ## Status
124
+
125
+ - **Today (Lane C W1):** in-tree under `.github/actions/forge-action/`,
126
+ ref-pinned to the consuming Forge release.
127
+ - **Lane C W12 (planned):** dedicated repo `atomadictech/forge-action`
128
+ + Marketplace listing.
129
+ - **Lane C W16+ (planned):** GitHub App variant that opens weekly
130
+ drift-PRs via `forge iterate --dry-run`.