Skip to main content
Manifest contract: Manifest + the *Config models (incl. the transport config TaiMCPConfig) + the filter-predicate signatures. The impl methods that build the derived lookup maps and run the include/exclude filtering (model_post_init + the private _build_*/_should_include helpers) are logic and stay with the impl — only the field shape, the model validators, and the public predicate/query signatures are the contract.

AgentsConfig

tai42_contract.manifest.AgentsConfig
Attributes

ApiToolsConfig

tai42_contract.manifest.ApiToolsConfig
Curates the MCP tool surface projected from the operations layer. A single app-owned block, so it carries no title and is deliberately NOT a BaseConfig subclass. include/exclude name operations to project or suppress; expose_destructive gates destructive-flagged operations; the extensions map (from the mixin) attaches extension combos to projected operations. Unlike BaseConfig, a name appearing in BOTH include and exclude is a loud validation error — this stricter rule is unique to this config and is never retrofitted onto other configs. Attributes

BaseConfig

tai42_contract.manifest.BaseConfig
Attributes

ExtensionElement

tai42_contract.manifest.ExtensionElement

ExtensionsConfigMixin

tai42_contract.manifest.ExtensionsConfigMixin
Carries the extensions attachment map, mixed into the config kinds that support clip-on extensions (ToolsConfig and TaiMCPConfig). extensions maps a tool base-name to the extension combo(s) attached to it, applied AFTER selection and independent of include/exclude. The stored shape is always tool -> list-of-combos (dict[str, list[list[ExtensionElement]]]) so resolution reads ONE shape regardless of how the YAML was written; each combo element is an extension name or a {"name", "config"} mapping binding author config to it. The normalizing validator wraps a flat combo and rejects malformed input loudly. Attributes

Members

normalize_extensions

tai42_contract.manifest.ExtensionsConfigMixin.normalize_extensions
Normalize each value to a list of combos and reject malformed input loudly (no silent coercion, mirroring normalize_dict_values above). A flat combo value is a single combo and is wrapped ({weather: [chain]} -> {"weather": [["chain"]]}); a list-of-combos value is kept as multiple combos. A combo element is an extension name or a {"name", "config"} mapping (author-bound config). This enforces SHAPE only: it does NOT check that the extension names are registered (ExtensionRegistry’s job) or that the tool is selected (missing_tools’ job). Parameters

MCPConfig

tai42_contract.manifest.MCPConfig
Attributes

Members

normalize_args

tai42_contract.manifest.MCPConfig.normalize_args
Parameters

normalize_dict_values

tai42_contract.manifest.MCPConfig.normalize_dict_values
Parameters

Manifest

tai42_contract.manifest.Manifest
Attributes

Members

should_include_tool

tai42_contract.manifest.Manifest.should_include_tool
Whether tool name from module survives the include/exclude filter (and record the decision on the matching config). Parameters

should_include_agent

tai42_contract.manifest.Manifest.should_include_agent
Parameters

should_include_mcp_tool

tai42_contract.manifest.Manifest.should_include_mcp_tool
Parameters

replace_mcp

tai42_contract.manifest.Manifest.replace_mcp
Swap the MCP rows and rebuild the derived maps (surgical reload). Parameters

live_manifest

tai42_contract.manifest.Manifest.live_manifest
A deep copy whose tools/agents/mcp reflect the live (post-filter) config maps.

find_title

tai42_contract.manifest.Manifest.find_title
Map a module path to the owning tool config’s title (longest prefix). Parameters

TaiMCPConfig

tai42_contract.manifest.TaiMCPConfig
Attributes

ToolsConfig

tai42_contract.manifest.ToolsConfig
Attributes