atomadic-forge 0.10.0__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.
- atomadic_forge-0.14.0/.github/workflows/surface-drift.yml +34 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/CHANGELOG.md +1008 -4
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/PKG-INFO +143 -44
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/README.md +141 -42
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/02-commands.md +521 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/04-llm-loops.md +42 -11
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/05-faq.md +80 -14
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/AGENTS_GUIDE.md +151 -65
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/CI_CD.md +82 -3
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/COMMANDS.md +7 -3
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/FIRST_10_MINUTES.md +12 -1
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/FORMALIZATION.md +4 -4
- atomadic_forge-0.14.0/docs/HIVE_PRIMITIVES.md +225 -0
- atomadic_forge-0.14.0/docs/HIVE_STATUS.md +362 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/MARKET_POSITIONING.md +11 -1
- atomadic_forge-0.14.0/docs/MIGRATION.md +607 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/RECEIPT.md +1 -1
- atomadic_forge-0.14.0/docs/RELAY_PROTOCOL.md +255 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/RELEASE_CHECKLIST.md +7 -2
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/RELEASE_MESSAGING.md +14 -1
- atomadic_forge-0.14.0/docs/ROADMAP.md +255 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/SHOWCASE.md +1 -1
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/SIDECAR.md +8 -4
- atomadic_forge-0.14.0/docs/TOOL_FACTORY_WALKTHROUGH.md +229 -0
- atomadic_forge-0.14.0/docs/WORKER_VS_LOCAL_MCP.md +318 -0
- atomadic_forge-0.14.0/docs/WORLD_COLLISION.md +239 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/06-javascript-quickstart.md +4 -2
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/pyproject.toml +2 -2
- atomadic_forge-0.14.0/src/atomadic_forge/__init__.py +24 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/handoff_constants.py +32 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/hive_constants.py +108 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/lang_extensions.py +40 -2
- atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/nexus_constants.py +66 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/schema_version_registry.py +33 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a0_qk_constants/wisdom_constants.py +47 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/body_extractor.py +140 -21
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/certify_checks.py +8 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/classify_tier.py +224 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/handoff_builder.py +144 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/hive_consensus_math.py +130 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/hive_io.py +226 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/mcp_protocol.py +897 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scout_walk.py +106 -5
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/smell_scan.py +29 -5
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wire_check.py +487 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_capture.py +129 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_io.py +136 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_promote.py +168 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a1_at_functions/wisdom_recall.py +113 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a2_mo_composites/nexus_client.py +159 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/handoff_feature.py +121 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/hive_sync.py +466 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/mcp_server.py +337 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/nexus_bridge.py +111 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/relay_daemon.py +189 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/surface_export.py +175 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/tool_factory.py +12 -1
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/verify_umbrella.py +148 -0
- atomadic_forge-0.14.0/src/atomadic_forge/a3_og_features/wisdom_feature.py +149 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/cli.py +56 -1
- atomadic_forge-0.14.0/src/atomadic_forge/commands/emergent_swarm.py +139 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/guard_install.py +93 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/handoff.py +177 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/harvest.py +89 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/hive.py +437 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/recon_swarm.py +76 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/relay.py +107 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/surface.py +152 -0
- atomadic_forge-0.14.0/src/atomadic_forge/commands/wisdom.py +272 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/PKG-INFO +143 -44
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/SOURCES.txt +46 -3
- atomadic_forge-0.14.0/tests/test_classify_tier_ast_signals.py +208 -0
- atomadic_forge-0.14.0/tests/test_handoff.py +241 -0
- atomadic_forge-0.14.0/tests/test_hive_sync.py +229 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_ignore_and_docs.py +39 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_mcp_protocol.py +69 -0
- atomadic_forge-0.14.0/tests/test_nexus_bridge.py +124 -0
- atomadic_forge-0.14.0/tests/test_polyglot_swift_kotlin_go.py +201 -0
- atomadic_forge-0.14.0/tests/test_smell_score_formula.py +96 -0
- atomadic_forge-0.14.0/tests/test_surface_export.py +204 -0
- atomadic_forge-0.14.0/tests/test_verify_suggested_recipe.py +163 -0
- atomadic_forge-0.14.0/tests/test_wire_type_checking.py +179 -0
- atomadic_forge-0.14.0/tests/test_wisdom.py +261 -0
- atomadic_forge-0.10.0/.github/workflows/forge-studio-ci.yml +0 -60
- atomadic_forge-0.10.0/docs/ROADMAP.md +0 -112
- atomadic_forge-0.10.0/docs/STRIPE_SETUP_HANDOFF.md +0 -299
- atomadic_forge-0.10.0/src/atomadic_forge/__init__.py +0 -12
- atomadic_forge-0.10.0/src/atomadic_forge/a1_at_functions/classify_tier.py +0 -115
- atomadic_forge-0.10.0/src/atomadic_forge/a1_at_functions/wire_check.py +0 -260
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/FUNDING.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/actions/forge-action/README.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/actions/forge-action/action.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/dependabot.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/pull_request_template.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/workflows/ci.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/workflows/customer-refactor.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/workflows/forge-self-certify.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/.github/workflows/release.yml +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/ARCHITECTURE.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/CONTRIBUTING.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/LICENSE +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/MANIFEST.in +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/SECURITY.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/assets/Atomadic-Forge-01.png +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/01-getting-started.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/03-tutorial.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/AIR_GAPPED.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/CODEX_WALKTHROUGH.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/LANDSCAPE.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/MULTI_REPO.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/README.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/STUDIO.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/WHY_NOW.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/INDEX.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/chat.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/commandsmith.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/config.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/demo.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/emergent-then-synergy.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/emergent.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/evolve-then-iterate.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/evolve.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/feature-then-emergent.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/iterate.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/synergy-then-emergent.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/commands/synergy.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/compliance/CMMC_AI_MAPPING.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/compliance/CS-1.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/compliance/EU_AI_ACT_ANNEX_IV.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/compliance/FDA_PCCP_MAPPING.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/compliance/SR_11-7_MAPPING.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/01-quickstart.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/02-your-first-package.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/03-the-five-tier-law.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/04-plug-in-llms.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/docs/tutorials/05-multi-repo-absorb.md +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/setup.cfg +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/__main__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/agent_plan_schema.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/auth_constants.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/commandsmith_types.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/config_defaults.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/emergent_types.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/error_codes.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/forge_types.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/gen_language.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/mhed_invariants.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/policy_schema.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/receipt_schema.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/roi_constants.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/semantic_types.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/sidecar_schema.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/synergy_types.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a0_qk_constants/tier_names.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_context_pack.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_memory.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_plan_emitter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/agent_summary.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/call_graph.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/card_renderer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/chat_context.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/cherry_pick.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/code_signature.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/commandsmith_discover.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/commandsmith_render.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/compiler_feedback.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/compliance_checker.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/config_io.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/cs1_renderer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/doc_synthesizer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_compose.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_rank.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_signature_extract.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/emergent_synthesize.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/enforce_planner.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/error_hints.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/evolution_log.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/exported_api_check.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/forge_auth.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/forge_feedback.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/forge_locate.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/generation_quality.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/import_repair.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/import_smoke.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/intent_similarity.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/js_parser.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lineage_chain.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lineage_reader.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/llm_client.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/local_signer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/lsp_protocol.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/manifest_diff.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/patch_scorer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/plan_adapter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/policy_loader.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/preflight_change.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/progress_reporter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/provider_detect.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/provider_resolver.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/receipt_emitter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/recipes.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/repo_explainer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/research_note_distiller.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/roi_calculator.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/rollback_planner.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sbom_emitter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_js.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_pyproject.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/scaffold_starter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sidecar_parser.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/sidecar_validator.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/stub_detector.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/synergy_detect.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/synergy_render.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/synergy_surface_extract.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/test_runner.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/test_selector.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/tier_init_rebuild.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/tool_composer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/transcript_log.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/trust_gate_response.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/validation_commands.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a1_at_functions/worktree_status.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/cost_circuit_breaker.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/cross_agent_intent_deduplicator.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/evolve_session_store.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/forge_auth_client.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/hierarchical_memory.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/iterate_session_store.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/lineage_chain_store.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/manifest_store.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/plan_store.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a2_mo_composites/receipt_signer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/agent_hire_protocol.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/cherry_hunter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/cna_check.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/commandsmith_feature.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/commit_compose.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/dedup_engine.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a0_qk_constants/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/src/mixed_pkg/a1_at_functions/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/conftest.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_packages/mixed_py_js/tests/test_mixed.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/demo_runner.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/emergent_feature.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/emergent_pipeline_integration.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/emergent_swarm.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_enforce.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_evolve.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_evolve_session.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_loop.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_loop_session.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_pipeline.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/forge_plan_apply.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/guard_install.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/lsp_server.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/setup_wizard.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a3_og_features/synergy_feature.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/copilots_cmd.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/login_cmd.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/a4_sy_orchestration/whoami_cmd.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/__init__.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/_registry.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/audit.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/chat.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/commandsmith.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/config_cmd.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/demo.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/emergent.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/emergent_then_synergy.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/evolve.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/evolve_then_iterate.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/feature_then_emergent.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/iterate.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/synergy.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge/commands/synergy_then_emergent.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/dependency_links.txt +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/entry_points.txt +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/requires.txt +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/src/atomadic_forge.egg-info/top_level.txt +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_aaaa_nexus_client.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_agent_hire_protocol.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_agent_plan.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_agent_summary.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_audit_verb.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_body_extractor_repairs.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_card_renderer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_certify_operational_axis.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_chat.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_classify_tier.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_cli_smoke.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_codex_5_complete.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_codex_6_enforce_polyglot.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_commandsmith.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_compiler_feedback.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_compliance_checker.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_config.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_copilots_copilot.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_cost_circuit_breaker.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_cs1_renderer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_dedup_engine.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_demo.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_emergent_compose.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_emergent_signature_extract.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_error_codes.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_error_hints.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_evolve_js.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_exported_api_check.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_forge_action.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_forge_auth_a1.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_forge_auth_a2.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_forge_enforce.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_generation_quality.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_hierarchical_memory.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_import_smoke.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_iterate_evolve.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_js_certify.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_js_parser.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_js_recon.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_js_wire.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_lineage_chain.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_ling_provider.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_local_signer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_lsp_protocol.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_manifest_diff.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_ollama_client.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_pipeline.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_plan_apply.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_pre_audit_smoke.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_precommit_hooks.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_progress_reporter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_receipt_emitter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_receipt_schema.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_receipt_signer.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_roi_calculator.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_sbom_emitter.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_scaffold.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_sidecar.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_sidecar_validate.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_stagnation.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_stub_detector.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_synergy.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_test_runner.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_tier_init_rebuild.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_trust_gate_response.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_whoami_cmd.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_wire_certify.py +0 -0
- {atomadic_forge-0.10.0 → atomadic_forge-0.14.0}/tests/test_wire_suggest_repairs.py +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Surface Drift Gate
|
|
2
|
+
|
|
3
|
+
# CI gate that prevents surface.json from drifting out of sync with
|
|
4
|
+
# the canonical regeneration. Any PR that changes TOOLS, schema
|
|
5
|
+
# registries, or recipes WITHOUT regenerating surface.json fails this
|
|
6
|
+
# check with the exact diff. Closes the friction loop where humans had
|
|
7
|
+
# to remember to update docs/website/badge after every surface change.
|
|
8
|
+
#
|
|
9
|
+
# Fix when this fails: forge surface emit --out surface.json && git add surface.json
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request:
|
|
13
|
+
paths:
|
|
14
|
+
- "src/atomadic_forge/a0_qk_constants/schema_version_registry.py"
|
|
15
|
+
- "src/atomadic_forge/a1_at_functions/mcp_protocol.py"
|
|
16
|
+
- "src/atomadic_forge/a1_at_functions/recipes.py"
|
|
17
|
+
- "src/atomadic_forge/a3_og_features/surface_export.py"
|
|
18
|
+
- "surface.json"
|
|
19
|
+
push:
|
|
20
|
+
branches: [main]
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
surface-drift:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
timeout-minutes: 5
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
- uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: "3.12"
|
|
31
|
+
- name: Install package (editable)
|
|
32
|
+
run: pip install -e . --quiet
|
|
33
|
+
- name: Surface drift check
|
|
34
|
+
run: forge surface check --path surface.json
|