mechaharness.di

pyiv Config for MechaHarness.

MechaHarnessConfig.configure() binds interfaces from overridable class hooks. Hosts subclass and override get_inference_class / get_harness_class. SettingsConfig resolves those classes from string maps (the OpenAPI/CLI configuration path).

class mechaharness.di.MechaHarnessConfig[source]

Bases: Config

Template-method pyiv Config. Override the get_*_class hooks.

configure() → None[source]

Override this method to register dependencies.

Example

def configure(self):

self.register(AbstractClass, ConcreteClass) self.register_instance(Logger, my_logger_instance)

get_access_control() → mechaharness.core.access.AccessControl[source]

Deny-by-default access control bound into harnesses.

get_access_policy() → AccessPolicy | CompoundPolicy[source]

Grant policy for harness tool gates.

Default wraps get_grants() in an AccessPolicy. Hosts override to return a CompoundPolicy of reusable grant sets. Not JudgementPolicy.

get_cost_accountant() → mechaharness.core.access.CostAccountant[source]

Ledger used to price inference and tool invocations.

get_event_log() → mechaharness.core.events.EventLog[source]

Shared EventLog for harnesses and access/cost policies.

get_grants() → list[object][source]

Deny-by-default grant list. Hosts override; unknown namespaced keys ok.

get_harness_class() → type[AbstractHarness][source]

Required override: class bound to AbstractHarness.

get_harness_config() → HarnessConfig[source]

Build HarnessConfig from get_settings().

get_inference_class() → type[InferenceStrategy][source]

Required override: class bound to InferenceStrategy.

get_inference_environment() → InferenceEnvironment[source]

Host probe for the active inference profile (default: no-op).

get_judge_connection() → APIConnectionConfig[source]

HTTP connection for the judge lane (override for OAuth, etc.).

get_judge_provider() → JudgeProvider[source]

Judge backend (default: System One over get_judge_connection()).

get_settings() → mechaharness.config.Settings[source]

Settings instance registered for this config (override to customize).

get_tools() → ToolRegistry[source]

Tools available to the harness (default: empty registry).

harness_classes() → dict[str, type[AbstractHarness]][source]

Named harness family map. Hosts merge via super().harness_classes().

include_subagent_tools() → bool[source]

When True, parent harnesses get list_subagents / get_subagent_events.

inference_classes() → dict[str, type[InferenceStrategy]][source]

Named backend map. Hosts merge via super().inference_classes().

class mechaharness.di.SettingsConfig(settings: TypeAliasForwardRef('mechaharness.config.Settings') | None = None, tools: ToolRegistry | None = None)[source]

Bases: MechaHarnessConfig

Resolves inference/harness classes from Settings name maps.

__init__(settings: TypeAliasForwardRef('mechaharness.config.Settings') | None = None, tools: ToolRegistry | None = None) → None[source]

Initialize the configuration.

get_harness_class() → type[AbstractHarness][source]

Required override: class bound to AbstractHarness.

get_inference_class() → type[InferenceStrategy][source]

Required override: class bound to InferenceStrategy.

get_settings() → mechaharness.config.Settings[source]

Settings instance registered for this config (override to customize).

get_tools() → ToolRegistry[source]

Tools available to the harness (default: empty registry).

mechaharness.di.apply_backend_defaults(settings: mechaharness.config.Settings) → mechaharness.config.Settings[source]

Fill base_url / api_key from the named backend when unset.

mechaharness.di.build_injector(settings: TypeAliasForwardRef('mechaharness.config.Settings') | None = None, tools: ToolRegistry | None = None) → Injector[source]

Build a pyiv injector from SettingsConfig (CLI/API/non-DI path).

mechaharness.di.list_harness_families() → list[str][source]

Sorted names from the default SettingsConfig.harness_classes() map.

mechaharness.di.list_inference_backends() → list[str][source]

Sorted names from the default SettingsConfig.inference_classes() map.