# Static Analyzer Manifest

## Modules

| Name | Type | Description | Signals |
|------|------|-------------|---------|
| `conflict_detector.py` | Module | Conflict detector for workflow field name collisions. | - |
| `ConflictSeverity` | Class | Severity level of a conflict. | - |
| `ConflictType` | Class | Type of conflict detected. | - |
| `FieldProducer` | Class | Information about an action that produces a field. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `AffectedReference` | Class | A reference affected by a conflict. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `Conflict` | Class | Base class for all conflict types. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `ConflictAnalysisResult` | Class | Result of conflict analysis. | - |
|     └─ `has_conflicts` | Method | Check if any conflicts were detected. | - |
|     └─ `error_count` | Method | Count of error-level conflicts. | - |
|     └─ `warning_count` | Method | Count of warning-level conflicts. | - |
|     └─ `filter_by_action` | Method | Filter conflicts to those affecting a specific action. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `ConflictDetector` | Class | Detects field name conflicts in workflows. | - |
|     └─ `detect_all` | Method | Detect all conflicts in the workflow. | - |
|     └─ `get_shadowed_fields` | Method | Get mapping of shadowed fields to their producers. | - |
| `data_flow_graph.py` | Module | Data flow graph for workflow static analysis. | - |
| `ActionKind` | Class | Type of agent node (LLM, TOOL, HITL, SOURCE, SEED). | - |
| `OutputSchema` | Class | Represents the output schema of an agent. | - |
|     └─ `available_fields` | Method | Compute available fields. | - |
|     └─ `has_field` | Method | Check if field is available in output. | - |
| `InputSchema` | Class | Represents the input schema of an agent. | - |
|     └─ `all_fields` | Method | Get all input fields (required + optional). | - |
|     └─ `requires_field` | Method | Check if a field is required. | - |
|     └─ `accepts_field` | Method | Check if a field is accepted (required or optional). | - |
| `InputRequirement` | Class | A field reference requirement from an agent. | - |
| `DataFlowNode` | Class | Node in the data flow graph representing an agent. | - |
| `DataFlowEdge` | Class | Edge representing data flow from one agent to another. | - |
| `DataFlowGraph` | Class | Graph representation of workflow data flow. | - |
|     └─ `add_node` | Method | Add a node to the graph. | - |
|     └─ `add_edge` | Method | Add an edge to the graph. | - |
|     └─ `get_node` | Method | Get a node by name. | - |
|     └─ `has_node` | Method | Check if a node exists. | - |
|     └─ `is_special_namespace` | Method | Check if name is a special namespace (source, version, etc.). | - |
|     └─ `get_upstream_nodes` | Method | Get all nodes that this agent depends on. | - |
|     └─ `get_downstream_nodes` | Method | Get all nodes that depend on this agent. | - |
|     └─ `topological_sort` | Method | Return nodes in topological order (Kahn's algorithm, O(n) via pre-built adjacency map). | - |
|     └─ `build_edges_from_requirements` | Method | Build edges based on input requirements of each node. | - |
|     └─ `get_all_agent_names` | Method | Get names of all non-special nodes. | - |
| `errors.py` | Module | Error classes for static type checking. | `errors` |
| `ErrorSeverity` | Class | Severity level for static type errors. | - |
| `FieldLocation` | Class | Location of a field reference in config. | - |
| `StaticTypeIssue` | Class | Base class for static type checking issues. | - |
|     └─ `format_message` | Method | Format error for display. | - |
| `StaticTypeError` | Class | Blocking error that prevents workflow execution. | - |
| `StaticTypeWarning` | Class | Non-blocking warning that doesn't prevent execution. | - |
| `StaticValidationResult` | Class | Aggregated result of static type checking. | - |
|     └─ `is_valid` | Method | Returns True if no blocking errors exist. | - |
|     └─ `add_error` | Method | Add a blocking error. | - |
|     └─ `add_warning` | Method | Add a non-blocking warning. | - |
|     └─ `set_strict_mode` | Method | Enable strict mode where warnings are treated as errors. | - |
|     └─ `format_report` | Method | Format full validation report. | - |
|     └─ `raise_if_invalid` | Method | Raise exception if validation failed. | - |
|     └─ `merge` | Method | Merge another result into this one. | - |
|     └─ `to_dict` | Method | Convert result to dictionary for JSON serialization. | - |
| `field_flow_analyzer.py` | Module | Field flow analyzer for workflow data lineage tracking. | - |
| `FieldConsumer` | Class | A consumer of a field. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `FieldLineage` | Class | Represents a field's journey through the workflow. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `OutputFieldInfo` | Class | Information about an action's output fields. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `FieldReference` | Class | A field reference from an upstream agent. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `InputSchemaInfo` | Class | Information about an action's input schema (for tools). | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `ActionFlowInfo` | Class | Field flow information for a single action. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `WorkflowFlow` | Class | Complete field flow for a workflow. | - |
|     └─ `to_dict` | Method | Convert to dictionary for JSON serialization. | - |
| `FieldFlowAnalyzer` | Class | Analyzes field lineage and flow through a workflow. | - |
|     └─ `get_full_flow` | Method | Get complete field flow for the entire workflow. | - |
|     └─ `get_field_lineage` | Method | Trace a single field from production to all consumption points. | - |
|     └─ `get_action_flow_info` | Method | Get field flow info for a single action. | - |
|     └─ `to_dict` | Method | Convert full analysis to dictionary for JSON serialization. | - |
|     └─ `filter_to_field` | Method | Filter analysis to a specific field. | - |
| `reference_extractor.py` | Module | Extract field references from agent configurations. | - |
| `ReferenceExtractor` | Class | Extracts field references from agent prompts, guards, and directives. | - |
|     └─ `extract_from_agent` | Method | Extract all field references from an agent configuration. | - |
|     └─ `get_referenced_agents` | Method | Get set of all agents referenced (excluding special namespaces). | - |
|     └─ `extract_from_workflow` | Method | Extract references from all agents in a workflow. | - |
| `schema_extractor.py` | Module | Extract output schemas from agent configurations (LLM, tool, HITL). | `docs`, `response_processing` |
| `SchemaExtractor` | Class | Extracts output schemas from various agent types. | - |
|     └─ `extract_schema` | Method | Extract output schema from agent config. | - |
|     └─ `extract_input_schema` | Method | Extract input schema from agent config. | - |
|     └─ `extract_fields_from_json_schema` | Method | Extract top-level field names from a JSON schema dict. | - |
|     └─ `extract_from_workflow` | Method | Extract schemas from all agents in a workflow. | - |
| `type_checker.py` | Module | Static type checker for workflow field references. | - |
| `StaticTypeChecker` | Class | Performs static type checking on workflow data flow graph. | - |
|     └─ `check_all` | Method | Run all static type checks on the graph. | - |
|     └─ `check_unused_dependencies` | Method | Find declared dependencies that are never referenced. | - |
|     └─ `check_missing_dependencies` | Method | Find agents that are referenced but not declared in dependencies. | - |
| `workflow_static_analyzer.py` | Module | Main workflow static analyzer that orchestrates all components. | - |
| `WorkflowStaticAnalyzer` | Class | Static analyzer for workflow type checking. | - |
|     └─ `analyze` | Method | Perform static analysis of the workflow. | - |
|     └─ `get_graph` | Method | Return the data flow graph for inspection. | - |
|     └─ `get_agent_schema` | Method | Get the output schema for a specific agent. | - |
|     └─ `get_agent_input_schema` | Method | Get the input schema for a specific agent. | - |
|     └─ `get_action_schemas` | Method | Get input and output schemas for all actions. | - |
|     └─ `format_action_schemas` | Method | Format action schemas as a readable string. | - |
|     └─ `get_data_flow_summary` | Method | Get a summary of data flow in the workflow. | - |
|     └─ `from_workflow_file` | Method | Create analyzer from workflow file path. | - |
| `analyze_workflow` | Function | Convenience function to analyze a workflow configuration. | - |
