# rye:signed:2026-03-17T01:41:08Z:f7e6c9cc4bf4d0047b4f1a7aa0292f84f1f38011b4c4d769fa1dc88645fb4fea:N5tZcU4ZoLuqMtXOhJRbXhtiVks72GqXsmticRCtLYWrUtflOfc1Pi1HZLOD48CFVE_ID8a68BVRDsidSgvBDA==:6ea18199041a1ea8
# rye:unsigned
version: "1.0.0"
tool_type: runtime
executor_id: rye/core/primitives/subprocess
category: rye/core/runtimes/state-graph
description: "State graph runtime — walks graph YAML tools, dispatching RYE for each node"

env_config:
  interpreter:
    type: local_binary
    binary: python
    candidates: [python3]
    search_paths: [".venv/bin", ".venv/Scripts"]
    var: RYE_PYTHON
    fallback: python3
  env:
    PYTHONUNBUFFERED: "1"
    PROJECT_VENV_PYTHON: "${RYE_PYTHON}"

anchor:
  enabled: true
  mode: always
  root: tool_dir
  lib: .
  env_paths:
    PYTHONPATH:
      prepend: ["{anchor_path}", "{runtime_lib}", "{runtime_lib}/../python/lib"]

verify_deps:
  enabled: true
  scope: anchor
  recursive: true
  extensions: [".py", ".yaml", ".yml", ".json"]
  exclude_dirs: ["__pycache__", ".venv", "node_modules", ".git", "config"]

config:
  command: "${RYE_PYTHON}"
  args:
    - "-c"
    - |
      import sys,json,os.path
      from walker import _load_graph_yaml, run_sync
      graph=_load_graph_yaml(sys.argv[1])
      graph["_file_path"]=sys.argv[1]
      graph["_item_id"]=graph.get("category","")+"/"+os.path.splitext(os.path.basename(sys.argv[1]))[0]
      r=run_sync(graph,json.loads(sys.argv[2]),sys.argv[3])
      print(json.dumps(r,default=str))
    - "{tool_path}"
    - "{params_json}"
    - "{project_path}"
  timeout: 600
