Version history

1 version on record. Newest first; the live version sits at the top with a live indicator.

  1. Live fa3f61aedf21
    5/16/2026, 1:13:08 PM
    Content snapshot
    {
      "version": "0.1.0",
      "summary": "Causal effect estimation via DoWhy/PyWhy subprocess. Runs a bundled Python script that builds a DoWhy CausalModel from the input graph, identifies the causal effect, and returns the effect estimate with confidence intervals. Per SPEC-106 §3.3 and SPEC-002 §4.\n",
      "runtime": "causal_dowhy",
      "runtime_config": {
        "timeout_seconds": 300
      },
      "input_schema": {
        "type": "object",
        "required": [
          "graph",
          "treatment",
          "outcome"
        ],
        "properties": {
          "graph": {
            "type": "object",
            "required": [
              "nodes",
              "edges"
            ],
            "properties": {
              "edges": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "source",
                    "target"
                  ],
                  "properties": {
                    "sign": {
                      "enum": [
                        "+",
                        "-",
                        "?"
                      ],
                      "type": "string",
                      "default": "+",
                      "description": "Causal sign"
                    },
                    "source": {
                      "type": "string",
                      "description": "Source node id"
                    },
                    "target": {
                      "type": "string",
                      "description": "Target node id"
                    },
                    "strength_prior": {
                      "type": "number",
                      "maximum": 1,
                      "minimum": 0,
                      "description": "Prior causal strength 0-1"
                    },
                    "intervention_tier": {
                      "enum": [
                        "T_obs",
                        "T_assoc",
                        "T_perturb",
                        "T_RCT"
                      ],
                      "type": "string",
                      "description": "Evidence tier per SPEC-106 §2"
                    }
                  }
                }
              },
              "nodes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Node identifier, e.g. gene:FOXP2"
                    },
                    "type": {
                      "type": "string",
                      "description": "Node type: gene|protein|pathway|phenotype|compound"
                    }
                  }
                }
              }
            }
          },
          "outcome": {
            "type": "string",
            "description": "Outcome node id, e.g. phenotype:Alzheimer"
          },
          "treatment": {
            "type": "string",
            "description": "Treatment node id, e.g. gene:FOXP2"
          },
          "estimate_method": {
            "type": "string",
            "default": "eager",
            "description": "DoWhy estimator method name"
          }
        }
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "DoWhy method used"
          },
          "p_value": {
            "type": "number",
            "description": "p-value for the estimate"
          },
          "effect_lower": {
            "type": "number",
            "description": "Lower confidence bound"
          },
          "effect_upper": {
            "type": "number",
            "description": "Upper confidence bound"
          },
          "refute_results": {
            "type": "array",
            "description": "Refutation test results"
          },
          "effect_estimate": {
            "type": "number",
            "description": "Estimated causal effect size"
          },
          "causal_graph_adjacency": {
            "type": "string",
            "description": "DOT graph representation"
          }
        }
      },
      "resource_caps": {
        "network": "allow",
        "max_duration_secs": 300
      },
      "cost_model": {
        "notes": "Subprocess-based DoWhy execution; cost is approximation.",
        "fixed_usd": 0.05
      },
      "examples": [
        {
          "input": {
            "graph": {
              "edges": [
                {
                  "sign": "+",
                  "source": "gene:FOXP2",
                  "target": "phenotype:Alzheimer"
                }
              ],
              "nodes": [
                {
                  "id": "gene:FOXP2",
                  "type": "gene"
                },
                {
                  "id": "phenotype:Alzheimer",
                  "type": "phenotype"
                }
              ]
            },
            "outcome": "phenotype:Alzheimer",
            "treatment": "gene:FOXP2"
          },
          "description": "Estimate causal effect of FOXP2 expression on Alzheimer progression."
        }
      ],
      "lifecycle_state": "active"
    }