femic.freshforge Module

The femic.freshforge module owns FEMIC’s optional FreshForge provider integration.

It intentionally keeps FreshForge optional. Normal FEMIC imports do not import FreshForge eagerly, and users install FreshForge alongside FEMIC when they need workflow orchestration.

Responsibilities

  • expose provider ID femic through freshforge.providers entry-point discovery;

  • describe reusable FEMIC model-build stages as FreshForge node types;

  • validate broad node parameters, inputs, outputs, and artifact declarations;

  • execute existing FEMIC CLI commands only when freshforge run is called;

  • leave instance-specific workflow composition and provider namespaces to instance repositories; and

  • preserve the boundary that FreshForge validation, inspection, and planning do not execute FEMIC.

API

FreshForge provider integration for FEMIC model-build workflows.

Validation and planning remain non-mutating. Execution is only available when a caller explicitly invokes freshforge run against providers from this module.

class femic.freshforge.FemicFreshForgeProvider(command_runner=None)[source]

Bases: object

FreshForge provider for generic FEMIC workflow stages.

Parameters:

command_runner (CommandRunner | None)

execute_node(node, node_type, *, context)[source]

Execute one generic FEMIC node through the installed FEMIC CLI.

This method is retained as a compatibility shim for callers that used FEMIC’s pre-release FreshForge execution hook. FreshForge v0.1.0a4 calls run_node() instead.

Parameters:
  • node (Any)

  • node_type (Any)

  • context (Any)

Return type:

Any

metadata()[source]

Return FreshForge provider metadata.

Return type:

Any

run_node(node, node_type, *, context)[source]

Execute one generic FEMIC node through the released FreshForge API.

Parameters:
  • node (Any)

  • node_type (Any)

  • context (Any)

Return type:

Any

validate_node(node, node_type, *, location)[source]

Validate broad FEMIC node shape without executing FEMIC.

Parameters:
  • node (Any)

  • node_type (Any)

  • location (str)

Return type:

tuple[Any, …]

femic.freshforge.provider_factory()[source]

Return the FEMIC FreshForge provider for entry-point discovery.

Return type:

FemicFreshForgeProvider