Version history

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

  1. Live 7824051e8e4e
    5/16/2026, 1:13:08 PM
    Content snapshot
    {
      "version": "0.1.0",
      "summary": "LLM-only causal reasoning over a causal graph. Uses the configured LLM (anthropic | openai | mock) to answer causal queries — no DoWhy subprocess needed. Returns a ranked list of upstream druggable targets and a summary. Per SPEC-106 §3.3 and SPEC-002 §4; LLM routing per SPEC-105.\n",
      "runtime": "causal_llm",
      "runtime_config": {
        "model": "claude-opus-4-7",
        "llm_provider": "mock",
        "system_prompt": "You are an expert causal reasoning system. Respond with valid JSON only.",
        "timeout_seconds": 60
      },
      "input_schema": {
        "type": "object",
        "required": [
          "graph",
          "query"
        ],
        "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"
                    }
                  }
                }
              },
              "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"
                    }
                  }
                }
              }
            }
          },
          "query": {
            "type": "string",
            "description": "Causal reasoning query, e.g. 'What is the most upstream druggable target?'"
          },
          "focus_nodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional list of node ids to restrict reasoning to a subgraph"
          }
        }
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "Human-readable causal reasoning summary"
          },
          "cost_usd": {
            "type": "number",
            "description": "Estimated cost in USD"
          },
          "tokens_in": {
            "type": "integer",
            "description": "Input token count"
          },
          "model_used": {
            "type": "string",
            "description": "LLM model that produced the result"
          },
          "tokens_out": {
            "type": "integer",
            "description": "Output token count"
          },
          "ranked_targets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "node": {
                  "type": "string"
                },
                "rank": {
                  "type": "integer"
                },
                "reason": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "resource_caps": {
        "network": "allow",
        "max_duration_secs": 60
      },
      "cost_model": {
        "notes": "Cost depends on LLM model and token count per SPEC-105.",
        "variable": true
      },
      "examples": [
        {
          "input": {
            "graph": {
              "edges": [
                {
                  "sign": "+",
                  "source": "gene:FOXP2",
                  "target": "pathway:Wnt"
                },
                {
                  "sign": "+",
                  "source": "pathway:Wnt",
                  "target": "phenotype:Alzheimer"
                }
              ],
              "nodes": [
                {
                  "id": "gene:FOXP2",
                  "type": "gene"
                },
                {
                  "id": "pathway:Wnt",
                  "type": "pathway"
                },
                {
                  "id": "phenotype:Alzheimer",
                  "type": "phenotype"
                }
              ]
            },
            "query": "Which is the most upstream druggable target for Alzheimer disease?"
          },
          "description": "LLM-based causal reasoning over a small Wnt pathway subgraph."
        }
      ],
      "lifecycle_state": "active"
    }