{
  "schema_version": 1,
  "source_revision": "2f2318653f6f794dddd321eff7c9d4b7b174643f",
  "scope": "All scanned tracked Python positions and the separately inventoried Markdown snippets; no runtime completeness claim.",
  "counts": {
    "tracked_python_files": 381,
    "source_positions": 2288,
    "direct_api_names": 83,
    "direct_api_positions": 518,
    "syntax_positions": 747,
    "import_positions": 147,
    "documentation_snippets": 29,
    "explained": 1412,
    "candidate": 670,
    "inferred": 206
  },
  "topics": [
    {
      "id": "coroutine-definition",
      "title": "定义协程函数与创建协程对象",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "apis": [],
      "methods": [],
      "syntax": [
        "async_def"
      ],
      "imports": [],
      "source_positions": 281
    },
    {
      "id": "run-entry",
      "title": "运行顶层协程与事件循环入口",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "apis": [
        "asyncio",
        "asyncio.run"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "asyncio"
      ],
      "source_positions": 112
    },
    {
      "id": "await",
      "title": "沿当前调用链等待与恢复",
      "lesson": "02-await",
      "anchor": "await-execution",
      "apis": [
        "asyncio.sleep"
      ],
      "methods": [],
      "syntax": [
        "await"
      ],
      "imports": [
        "time.sleep"
      ],
      "source_positions": 442
    },
    {
      "id": "blocking-sleep",
      "title": "阻塞线程与挂起任务的区别",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "apis": [
        "time.sleep"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "time"
      ],
      "source_positions": 57
    },
    {
      "id": "task-creation",
      "title": "创建任务与保留引用",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "apis": [
        "asyncio.create_task",
        "asyncio.Task"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 24
    },
    {
      "id": "gather",
      "title": "收集整组结果与异常边界",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "apis": [
        "asyncio.gather"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 27
    },
    {
      "id": "wait",
      "title": "等待条件与完成集合",
      "lesson": "04-results",
      "anchor": "wait-results",
      "apis": [
        "asyncio.wait",
        "asyncio.FIRST_COMPLETED"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 8
    },
    {
      "id": "as-completed",
      "title": "按完成顺序消费结果",
      "lesson": "04-results",
      "anchor": "as-completed-results",
      "apis": [
        "asyncio.as_completed"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "cancellation",
      "title": "请求取消与等待清理",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "apis": [
        "asyncio.CancelledError"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 11
    },
    {
      "id": "timeouts",
      "title": "超时与取消保护的边界",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "apis": [
        "asyncio.TimeoutError",
        "asyncio.timeout",
        "asyncio.wait_for",
        "asyncio.shield"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 18
    },
    {
      "id": "semaphore",
      "title": "许可区域、限流与归还",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "apis": [
        "asyncio.Semaphore"
      ],
      "methods": [
        "asyncio.Semaphore.acquire",
        "asyncio.Semaphore.release"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 11
    },
    {
      "id": "async-queue",
      "title": "异步队列的生产消费与背压",
      "lesson": "07-queues",
      "anchor": "async-queue",
      "apis": [
        "asyncio.Queue"
      ],
      "methods": [
        "asyncio.Queue.put",
        "asyncio.Queue.get",
        "asyncio.Queue.empty"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 4
    },
    {
      "id": "thread-queue",
      "title": "同步队列与立刻尝试取结果",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "apis": [
        "queue.Queue",
        "queue.Empty"
      ],
      "methods": [
        "queue.Queue.put",
        "queue.Queue.get",
        "queue.Queue.get_nowait",
        "queue.Queue.qsize",
        "queue.Queue.empty"
      ],
      "syntax": [],
      "imports": [
        "queue"
      ],
      "source_positions": 15
    },
    {
      "id": "thread-offload",
      "title": "把同步函数交给工作线程",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "apis": [
        "asyncio.to_thread"
      ],
      "methods": [
        "asyncio.AbstractEventLoop.run_in_executor"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 15
    },
    {
      "id": "thread-basics",
      "title": "线程启动、互斥、通知与退出",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "apis": [
        "threading.Thread",
        "threading.Lock",
        "threading.Event",
        "threading.get_ident"
      ],
      "methods": [
        "threading.Thread.start",
        "threading.Thread.join",
        "threading.Thread.is_alive",
        "threading.Lock.acquire",
        "threading.Lock.release",
        "threading.Event.wait",
        "threading.Event.set",
        "threading.Event.clear",
        "threading.Event.is_set"
      ],
      "syntax": [],
      "imports": [
        "threading"
      ],
      "source_positions": 120
    },
    {
      "id": "async-context",
      "title": "异步进入、退出与资源回收",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "apis": [
        "contextlib.asynccontextmanager"
      ],
      "methods": [],
      "syntax": [
        "async_with"
      ],
      "imports": [
        "contextlib"
      ],
      "source_positions": 48
    },
    {
      "id": "async-iteration",
      "title": "异步迭代与异步生成器",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "apis": [],
      "methods": [],
      "syntax": [
        "async_for",
        "async_generator_def",
        "async_yield"
      ],
      "imports": [],
      "source_positions": 15
    },
    {
      "id": "task-context",
      "title": "任务上下文与 token 恢复",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "apis": [
        "contextvars.ContextVar"
      ],
      "methods": [
        "contextvars.ContextVar.get",
        "contextvars.ContextVar.set",
        "contextvars.ContextVar.reset"
      ],
      "syntax": [],
      "imports": [
        "contextvars"
      ],
      "source_positions": 18
    },
    {
      "id": "process-intro",
      "title": "进程池分配与收集工作",
      "lesson": "12-processes",
      "anchor": "process-intro",
      "apis": [],
      "methods": [
        "multiprocessing.Pool.starmap",
        "multiprocessing.context.BaseContext.Pool"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 2
    },
    {
      "id": "lifecycle",
      "title": "回到 Slime 的创建、交接与清理",
      "lesson": "14-slime-walkthrough",
      "anchor": "slime-lifecycle",
      "apis": [],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "asyncio-event",
      "title": "Event 的等待、通知、状态与清零",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "apis": [
        "asyncio.Event"
      ],
      "methods": [
        "asyncio.Event.wait",
        "asyncio.Event.set",
        "asyncio.Event.clear",
        "asyncio.Event.is_set"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 35
    },
    {
      "id": "asyncio-lock",
      "title": "asyncio.Lock 保护任务共享状态",
      "lesson": "15-async-notification",
      "anchor": "async-lock",
      "apis": [
        "asyncio.Lock"
      ],
      "methods": [
        "asyncio.Lock.acquire",
        "asyncio.Lock.release",
        "asyncio.Lock.locked"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "threading-condition",
      "title": "Condition 谓词循环、锁交接与通知",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "apis": [
        "threading.Condition"
      ],
      "methods": [
        "threading.Condition.wait",
        "threading.Condition.wait_for",
        "threading.Condition.notify_all"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 24
    },
    {
      "id": "threading-rlock",
      "title": "同一线程重入 RLock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "apis": [
        "threading.RLock"
      ],
      "methods": [
        "threading.RLock.acquire",
        "threading.RLock.release"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 6
    },
    {
      "id": "threading-timer",
      "title": "Timer 启动、取消与退出",
      "lesson": "16-thread-coordination",
      "anchor": "timer-lifecycle",
      "apis": [
        "threading.Timer"
      ],
      "methods": [
        "threading.Timer.start",
        "threading.Timer.cancel",
        "threading.Timer.join"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 3
    },
    {
      "id": "executor-submit-map",
      "title": "线程池 submit 与 map 的结果组织",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "apis": [
        "concurrent.futures.ThreadPoolExecutor"
      ],
      "methods": [
        "concurrent.futures.ThreadPoolExecutor.submit",
        "concurrent.futures.ThreadPoolExecutor.map",
        "concurrent.futures.Executor.submit",
        "concurrent.futures.Executor.map"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 39
    },
    {
      "id": "future-result-state",
      "title": "同步 Future 的结果、异常与完成状态",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "apis": [
        "concurrent.futures.CancelledError"
      ],
      "methods": [
        "concurrent.futures.Future.result",
        "concurrent.futures.Future.exception",
        "concurrent.futures.Future.done"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 11
    },
    {
      "id": "future-cancel-callback",
      "title": "Future 取消边界与完成回调",
      "lesson": "17-executor-results",
      "anchor": "future-cancel-callback",
      "apis": [],
      "methods": [
        "concurrent.futures.Future.cancel",
        "concurrent.futures.Future.cancelled",
        "concurrent.futures.Future.running",
        "concurrent.futures.Future.add_done_callback"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "executor-wait-completed",
      "title": "同步 wait 与 FIRST_COMPLETED",
      "lesson": "17-executor-results",
      "anchor": "executor-wait-completed",
      "apis": [
        "concurrent.futures.wait",
        "concurrent.futures.FIRST_COMPLETED"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 4
    },
    {
      "id": "executor-as-completed",
      "title": "按完成次序消费线程池结果",
      "lesson": "17-executor-results",
      "anchor": "executor-as-completed",
      "apis": [
        "concurrent.futures.as_completed"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 4
    },
    {
      "id": "executor-shutdown",
      "title": "线程池关闭与在途工作清理",
      "lesson": "17-executor-results",
      "anchor": "executor-shutdown",
      "apis": [],
      "methods": [
        "concurrent.futures.ThreadPoolExecutor.shutdown",
        "concurrent.futures.Executor.shutdown"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 2
    },
    {
      "id": "future-test-double",
      "title": "测试替身直接构造 Future 并设置结果",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "apis": [
        "concurrent.futures.Future"
      ],
      "methods": [
        "concurrent.futures.Future.set_result",
        "concurrent.futures.Future.set_exception"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 5
    },
    {
      "id": "process-context",
      "title": "创建进程、启动上下文与所有权",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "apis": [
        "multiprocessing.Process",
        "multiprocessing.get_context",
        "multiprocessing.set_start_method",
        "multiprocessing.active_children"
      ],
      "methods": [
        "multiprocessing.Process.start",
        "multiprocessing.Process.is_alive",
        "multiprocessing.context.BaseContext.Process",
        "multiprocessing.context.BaseContext.Queue"
      ],
      "syntax": [],
      "imports": [
        "multiprocessing"
      ],
      "source_positions": 20
    },
    {
      "id": "process-queues",
      "title": "跨进程生产消费与结束协议",
      "lesson": "18-process-lifecycle",
      "anchor": "process-queue",
      "apis": [
        "multiprocessing.Queue",
        "queue.Empty"
      ],
      "methods": [
        "multiprocessing.Queue.put",
        "multiprocessing.Queue.get",
        "multiprocessing.Queue.empty",
        "multiprocessing.Queue.qsize"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 3
    },
    {
      "id": "process-reaping",
      "title": "等待、终止、回收与队列关闭",
      "lesson": "18-process-lifecycle",
      "anchor": "process-join",
      "apis": [],
      "methods": [
        "multiprocessing.Process.join",
        "multiprocessing.Process.terminate",
        "multiprocessing.Process.kill",
        "multiprocessing.Process.close",
        "multiprocessing.Queue.close",
        "multiprocessing.Queue.join_thread"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "process-pool-lifecycle",
      "title": "进程池分派与退出",
      "lesson": "18-process-lifecycle",
      "anchor": "process-pool",
      "apis": [
        "multiprocessing.Pool"
      ],
      "methods": [
        "multiprocessing.context.BaseContext.Pool",
        "multiprocessing.Pool.starmap",
        "multiprocessing.Pool.close",
        "multiprocessing.Pool.terminate",
        "multiprocessing.Pool.join",
        "multiprocessing.Pool.__enter__",
        "multiprocessing.Pool.__exit__"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "subprocess-communication",
      "title": "子进程通信、超时与回收",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "apis": [
        "subprocess.Popen",
        "subprocess.TimeoutExpired",
        "subprocess"
      ],
      "methods": [
        "subprocess.Popen.communicate",
        "subprocess.Popen.poll",
        "subprocess.Popen.wait",
        "subprocess.Popen.kill",
        "subprocess.Popen.terminate"
      ],
      "syntax": [],
      "imports": [
        "subprocess"
      ],
      "source_positions": 52
    },
    {
      "id": "subprocess-output",
      "title": "捕获、合并与丢弃输出",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "apis": [
        "subprocess.PIPE",
        "subprocess.STDOUT",
        "subprocess.DEVNULL"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 16
    },
    {
      "id": "subprocess-checked-results",
      "title": "同步命令检查与失败状态",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "apis": [
        "subprocess.run",
        "subprocess.check_call",
        "subprocess.check_output",
        "subprocess.CalledProcessError"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 22
    },
    {
      "id": "file-lock-ownership",
      "title": "跨进程文件锁与目录所有权",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "apis": [
        "fcntl.flock",
        "fcntl.LOCK_EX",
        "fcntl.LOCK_NB",
        "fcntl.LOCK_SH"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "fcntl"
      ],
      "source_positions": 9
    },
    {
      "id": "select-ready",
      "title": "管道可读等待与就绪协议",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "apis": [
        "select.select"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "select"
      ],
      "source_positions": 2
    },
    {
      "id": "file-lock-release",
      "title": "进程退出与解锁",
      "lesson": "19-signals-locks",
      "anchor": "lock-release",
      "apis": [
        "fcntl.LOCK_UN"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "process-identity",
      "title": "父子身份与定向信号",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "apis": [
        "os.getpid",
        "os.getppid",
        "os.kill"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "os"
      ],
      "source_positions": 35
    },
    {
      "id": "signal-handlers",
      "title": "保存、安装与恢复信号处理器",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "apis": [
        "signal.signal",
        "signal.getsignal",
        "signal.SIGINT",
        "signal.SIGTERM",
        "signal.SIGHUP",
        "signal.SIGKILL"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "signal"
      ],
      "source_positions": 14
    },
    {
      "id": "process-group-signal",
      "title": "进程组信号与清理范围",
      "lesson": "19-signals-locks",
      "anchor": "process-group",
      "apis": [
        "os.killpg",
        "signal.SIG_IGN"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 2
    },
    {
      "id": "signal-alarm",
      "title": "同步工作闹钟与恢复边界",
      "lesson": "19-signals-locks",
      "anchor": "signal-alarm",
      "apis": [
        "signal.alarm",
        "signal.SIGALRM"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 3
    },
    {
      "id": "shell-process-boundary",
      "title": "同步 shell 调用与退出状态",
      "lesson": "19-signals-locks",
      "anchor": "shell-boundary",
      "apis": [
        "os.system"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 4
    },
    {
      "id": "cancellation-boundaries",
      "title": "Task、线程、进程和进程组的不同停止责任",
      "lesson": "19-signals-locks",
      "anchor": "cancellation-boundary",
      "apis": [],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "future-basics",
      "title": "Future：待完成结果与所属 loop",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "apis": [
        "asyncio.get_running_loop",
        "asyncio.Future",
        "asyncio.InvalidStateError"
      ],
      "methods": [
        "asyncio.AbstractEventLoop.create_future",
        "asyncio.Future.result"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 13
    },
    {
      "id": "future-callbacks",
      "title": "Future 完成、取消与分批回调",
      "lesson": "13-event-loop",
      "anchor": "pacer-callbacks",
      "apis": [],
      "methods": [
        "asyncio.AbstractEventLoop.call_soon",
        "asyncio.AbstractEventLoop.call_later",
        "asyncio.Future.done",
        "asyncio.Future.set_result",
        "asyncio.Future.set_exception",
        "asyncio.Future.cancel",
        "asyncio.Future.cancelled",
        "asyncio.Future.add_done_callback"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 4
    },
    {
      "id": "event-loop-lifecycle",
      "title": "创建、登记、运行与跨线程提交",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "apis": [
        "asyncio.AbstractEventLoop",
        "asyncio.new_event_loop",
        "asyncio.set_event_loop",
        "asyncio.run_coroutine_threadsafe",
        "asyncio.wrap_future"
      ],
      "methods": [
        "asyncio.AbstractEventLoop.run_forever",
        "asyncio.AbstractEventLoop.run_until_complete",
        "concurrent.futures.Future.result"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 23
    },
    {
      "id": "loop-shutdown",
      "title": "事件循环停止、executor 排空与关闭",
      "lesson": "13-event-loop",
      "anchor": "loop-shutdown",
      "apis": [],
      "methods": [
        "asyncio.AbstractEventLoop.call_soon_threadsafe",
        "asyncio.AbstractEventLoop.is_running",
        "asyncio.AbstractEventLoop.stop",
        "asyncio.AbstractEventLoop.close",
        "asyncio.AbstractEventLoop.shutdown_default_executor"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 2
    },
    {
      "id": "task-inspection",
      "title": "Task 身份、归属与完成读取",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "apis": [
        "asyncio.current_task",
        "asyncio.all_tasks",
        "asyncio.Task",
        "asyncio.CancelledError"
      ],
      "methods": [
        "asyncio.Task.done",
        "asyncio.Task.result",
        "asyncio.Task.exception",
        "asyncio.Task.cancel",
        "asyncio.Task.cancelled",
        "asyncio.Task.get_loop",
        "asyncio.Task.add_done_callback"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 17
    },
    {
      "id": "manual-loop-cleanup",
      "title": "手动 loop 的异步生成器兜底清理",
      "lesson": "13-event-loop",
      "anchor": "lifecycle-lab",
      "apis": [],
      "methods": [
        "asyncio.AbstractEventLoop.shutdown_asyncgens"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "start-server",
      "title": "创建本地监听与流式连接",
      "lesson": "20-async-streams",
      "anchor": "start-server",
      "apis": [
        "asyncio.start_server",
        "asyncio.open_connection",
        "asyncio.Server",
        "asyncio.StreamReader",
        "asyncio.StreamWriter"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "stream-reader",
      "title": "流式读取与协议分帧",
      "lesson": "20-async-streams",
      "anchor": "stream-reader",
      "apis": [
        "asyncio.LimitOverrunError"
      ],
      "methods": [
        "asyncio.StreamReader.read",
        "asyncio.StreamReader.readline",
        "asyncio.StreamReader.readuntil",
        "asyncio.StreamReader.readexactly"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "incomplete-read",
      "title": "提前 EOF 的部分数据与期待长度",
      "lesson": "20-async-streams",
      "anchor": "incomplete-read",
      "apis": [
        "asyncio.IncompleteReadError"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "stream-writer",
      "title": "写入流量控制与连接关闭",
      "lesson": "20-async-streams",
      "anchor": "stream-writer",
      "apis": [],
      "methods": [
        "asyncio.StreamWriter.write",
        "asyncio.StreamWriter.drain",
        "asyncio.StreamWriter.close",
        "asyncio.StreamWriter.wait_closed"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "server-lifecycle",
      "title": "监听器与连接任务的独立收尾",
      "lesson": "20-async-streams",
      "anchor": "server-lifecycle",
      "apis": [],
      "methods": [
        "asyncio.Server.is_serving",
        "asyncio.Server.serve_forever",
        "asyncio.Server.close",
        "asyncio.Server.wait_closed"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "inspect-awaitable",
      "title": "调用后检查返回对象能否 await",
      "lesson": "21-async-inspection",
      "anchor": "isawaitable",
      "apis": [
        "inspect.isawaitable"
      ],
      "methods": [],
      "syntax": [],
      "imports": [
        "inspect"
      ],
      "source_positions": 3
    },
    {
      "id": "inspect-coroutine-function",
      "title": "装饰时判断协程函数并选择 wrapper",
      "lesson": "21-async-inspection",
      "anchor": "iscoroutinefunction",
      "apis": [
        "inspect.iscoroutinefunction"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 1
    },
    {
      "id": "async-type-annotations",
      "title": "Awaitable 和 AsyncIterator 注解契约",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "apis": [
        "collections.abc.Awaitable",
        "collections.abc.AsyncIterator"
      ],
      "methods": [],
      "syntax": [],
      "imports": [],
      "source_positions": 7
    },
    {
      "id": "async-protocol-methods",
      "title": "上下文与迭代的异步协议入口",
      "lesson": "21-async-inspection",
      "anchor": "async-protocol-methods",
      "apis": [
        "builtins.StopAsyncIteration"
      ],
      "methods": [
        "contextlib.AbstractAsyncContextManager.__aenter__",
        "contextlib.AbstractAsyncContextManager.__aexit__",
        "collections.abc.AsyncIterable.__aiter__",
        "collections.abc.AsyncIterator.__anext__"
      ],
      "syntax": [
        "async_protocol_def"
      ],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "async-generator-cleanup",
      "title": "提前退出异步生成器时显式关闭",
      "lesson": "21-async-inspection",
      "anchor": "async-generator-cleanup",
      "apis": [
        "contextlib.aclosing"
      ],
      "methods": [
        "collections.abc.AsyncGenerator.aclose"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 0
    },
    {
      "id": "object-method-boundaries",
      "title": "同名方法与原生接收者证据边界",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "apis": [],
      "methods": [
        "dict.get",
        "str.join",
        "queue.Queue.get",
        "queue.Queue.join",
        "asyncio.Queue.get",
        "asyncio.Queue.join",
        "threading.Thread.join"
      ],
      "syntax": [],
      "imports": [],
      "source_positions": 670
    }
  ],
  "occurrences": [
    {
      "id": "occ-000001",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 20,
      "end_line": 20,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L20",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000002",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 27,
      "end_line": 27,
      "kind": "import",
      "name": "collections.abc.AsyncIterator",
      "source_line": "from collections.abc import AsyncIterator",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L27",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000003",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 28,
      "end_line": 28,
      "kind": "import",
      "name": "contextlib.asynccontextmanager",
      "source_line": "from contextlib import asynccontextmanager",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L28",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000004",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 92,
      "end_line": 92,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "_BOOT_SEM = asyncio.Semaphore(CONFIG.boot_concurrency)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L92",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000005",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 95,
      "end_line": 95,
      "kind": "api_reference",
      "name": "contextlib.asynccontextmanager",
      "source_line": "@asynccontextmanager",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L95",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000006",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 96,
      "end_line": 134,
      "kind": "async_generator_def",
      "name": "boot_agent_sandbox",
      "source_line": "async def boot_agent_sandbox(image: str, instance_id: str) -> AsyncIterator[E2BSandbox]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L96-L134",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000007",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 96,
      "end_line": 96,
      "kind": "api_reference",
      "name": "collections.abc.AsyncIterator",
      "source_line": "async def boot_agent_sandbox(image: str, instance_id: str) -> AsyncIterator[E2BSandbox]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L96",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000008",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 108,
      "end_line": 114,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with _BOOT_SEM:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L108-L114",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000009",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 109,
      "end_line": 109,
      "kind": "await",
      "name": "await",
      "source_line": "                await cand.__aenter__()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L109",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000010",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 109,
      "end_line": 109,
      "kind": "instance_candidate",
      "name": "__aenter__",
      "source_line": "                await cand.__aenter__()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L109",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cand"
    },
    {
      "id": "occ-000011",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 111,
      "end_line": 111,
      "kind": "await",
      "name": "await",
      "source_line": "                    await HARNESS_CLS().install_cli(cand)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L111",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000012",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 113,
      "end_line": 113,
      "kind": "await",
      "name": "await",
      "source_line": "                    await cand.__aexit__(None, None, None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L113",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000013",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 113,
      "end_line": 113,
      "kind": "instance_candidate",
      "name": "__aexit__",
      "source_line": "                    await cand.__aexit__(None, None, None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L113",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cand"
    },
    {
      "id": "occ-000014",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 127,
      "end_line": 127,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(1 + attempt + random.random())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L127",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000015",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 127,
      "end_line": 127,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(1 + attempt + random.random())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L127",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000016",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 132,
      "end_line": 132,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "        yield sb",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L132",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000017",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 134,
      "end_line": 134,
      "kind": "await",
      "name": "await",
      "source_line": "        await sb.__aexit__(None, None, None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L134",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000018",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 134,
      "end_line": 134,
      "kind": "instance_candidate",
      "name": "__aexit__",
      "source_line": "        await sb.__aexit__(None, None, None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L134",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "boot_agent_sandbox",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sb"
    },
    {
      "id": "occ-000019",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 182,
      "end_line": 283,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args, base_sample: Sample, sampling_params: dict[str, Any], evaluation: bool = False):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L182-L283",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000020",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 202,
      "end_line": 268,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with asyncio.timeout(CONFIG.rollout_guard_sec):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L202-L268",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000021",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 202,
      "end_line": 202,
      "kind": "api_call",
      "name": "asyncio.timeout",
      "source_line": "        async with asyncio.timeout(CONFIG.rollout_guard_sec):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L202",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000022",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 203,
      "end_line": 213,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with boot_agent_sandbox(md[\"image\"], instance_id) as sb:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L203-L213",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000023",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 204,
      "end_line": 204,
      "kind": "await",
      "name": "await",
      "source_line": "                await swe.prepare_workspace(sb, md[\"workdir\"], md)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L204",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000024",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 205,
      "end_line": 212,
      "kind": "await",
      "name": "await",
      "source_line": "                agent_exit_code = await HARNESS_CLS().run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L205-L212",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000025",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 213,
      "end_line": 213,
      "kind": "await",
      "name": "await",
      "source_line": "                diff_text = await swe.git_diff(sb, md[\"workdir\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L213",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000026",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 215,
      "end_line": 219,
      "kind": "await",
      "name": "await",
      "source_line": "            reward, applied_cleanly = await swe.run_evaluation(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L215-L219",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000027",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 237,
      "end_line": 245,
      "kind": "await",
      "name": "await",
      "source_line": "            samples = await state.adapter.finish_session(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L237-L245",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000028",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 270,
      "end_line": 270,
      "kind": "api_reference",
      "name": "asyncio.TimeoutError",
      "source_line": "    except asyncio.TimeoutError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L270",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000029",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 282,
      "end_line": 282,
      "kind": "await",
      "name": "await",
      "source_line": "        await state.adapter.drop_session(session_id, wait_timeout=30)  # cleanup only, idempotent",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L282",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000030",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 283,
      "end_line": 283,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L283",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000031",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 283,
      "end_line": 283,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L283",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000032",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 290,
      "end_line": 290,
      "kind": "api_call",
      "name": "asyncio.all_tasks",
      "source_line": "        pending = [t for t in asyncio.all_tasks() if not t.done()]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L290",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "_log_timeout_diagnostic",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000033",
      "file": "examples/coding_agent_rl/generate.py",
      "line": 290,
      "end_line": 290,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "        pending = [t for t in asyncio.all_tasks() if not t.done()]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/generate.py#L290",
      "snapshot": "source_snapshot/examples/coding_agent_rl/generate.py.txt",
      "symbol": "_log_timeout_diagnostic.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000034",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 27,
      "end_line": 27,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L27",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000035",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 91,
      "end_line": 91,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    rem = m.get(\"remote_env_info\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L91",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000036",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 93,
      "end_line": 93,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    swepro = m.get(\"swepro\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L93",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000037",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 94,
      "end_line": 94,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    eval_cmd = m.get(\"eval_cmd\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L94",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000038",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 95,
      "end_line": 95,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    f2p_script = rem.get(\"f2p_script\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L95",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000039",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 96,
      "end_line": 96,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    looks_swebench = bool(rem.get(\"test_patch\")) and not (swepro or eval_cmd or f2p_script)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L96",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000040",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 99,
      "end_line": 99,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"instance_id\": m.get(\"instance_id\") or rem.get(\"instance_id\") or label or \"unknown\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L99",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000041",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 99,
      "end_line": 99,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"instance_id\": m.get(\"instance_id\") or rem.get(\"instance_id\") or label or \"unknown\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L99",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000042",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"image\": m.get(\"image\") or rem.get(\"image_url\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L100",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000043",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"image\": m.get(\"image\") or rem.get(\"image_url\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L100",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000044",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 101,
      "end_line": 101,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"workdir\": m.get(\"workdir\") or rem.get(\"workdir\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L101",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000045",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 101,
      "end_line": 101,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"workdir\": m.get(\"workdir\") or rem.get(\"workdir\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L101",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000046",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 102,
      "end_line": 102,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"problem_statement\": m.get(\"problem_statement\") or _coerce_prompt(sample.prompt),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L102",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000047",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 108,
      "end_line": 108,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            \"pre_commands\": m.get(\"pre_commands\") or rem.get(\"pre_commands\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L108",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000048",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 108,
      "end_line": 108,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            \"pre_commands\": m.get(\"pre_commands\") or rem.get(\"pre_commands\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L108",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000049",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 117,
      "end_line": 117,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    rem = m.get(\"remote_env_info\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L117",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000050",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 119,
      "end_line": 119,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"instance_id\": rem.get(\"instance_id\") or \"unknown\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L119",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000051",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"repo\": rem.get(\"repo\") or \"\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L120",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000052",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 121,
      "end_line": 121,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"version\": rem.get(\"version\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L121",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000053",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 122,
      "end_line": 122,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"base_commit\": rem.get(\"base_commit\") or \"\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L122",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000054",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 123,
      "end_line": 123,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"problem_statement\": rem.get(\"problem_statement\") or _coerce_prompt(sample.prompt),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L123",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000055",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 124,
      "end_line": 124,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"hints_text\": rem.get(\"hints_text\") or \"\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L124",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000056",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 125,
      "end_line": 125,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"test_patch\": rem.get(\"test_patch\") or \"\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L125",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000057",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 126,
      "end_line": 126,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"FAIL_TO_PASS\": rem.get(\"FAIL_TO_PASS\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L126",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000058",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 127,
      "end_line": 127,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"PASS_TO_PASS\": rem.get(\"PASS_TO_PASS\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L127",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000059",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 128,
      "end_line": 128,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"environment_setup_commit\": rem.get(\"environment_setup_commit\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L128",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000060",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 133,
      "end_line": 133,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"image\": rem.get(\"image\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L133",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000061",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 134,
      "end_line": 134,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"workdir\": rem.get(\"workdir\") or \"/testbed\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L134",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_metadata_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rem"
    },
    {
      "id": "occ-000062",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 146,
      "end_line": 146,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if isinstance(m, dict) and m.get(\"role\") == \"user\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L146",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_coerce_prompt",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000063",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 147,
      "end_line": 147,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                return flatten_content(m.get(\"content\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L147",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_coerce_prompt",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000064",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 152,
      "end_line": 152,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if md.get(\"protocol\") == PROTOCOL_SWEBENCH:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L152",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "evaluability_check",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000065",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 154,
      "end_line": 154,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    return \"protocol_row_mismatch:looks_swebench\" if md.get(\"looks_swebench\") else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L154",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "evaluability_check",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000066",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 160,
      "end_line": 160,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    inst = md.get(\"grading\", {}).get(\"sweb_instance\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L160",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_evaluability_check_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md.get(\"grading\", {})"
    },
    {
      "id": "occ-000067",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 160,
      "end_line": 160,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    inst = md.get(\"grading\", {}).get(\"sweb_instance\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L160",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_evaluability_check_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000068",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 161,
      "end_line": 161,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if not inst.get(\"repo\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L161",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_evaluability_check_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "inst"
    },
    {
      "id": "occ-000069",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 163,
      "end_line": 163,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if not inst.get(\"base_commit\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L163",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_evaluability_check_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "inst"
    },
    {
      "id": "occ-000070",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 165,
      "end_line": 165,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if not (inst.get(\"test_patch\") or \"\").strip():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L165",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_evaluability_check_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "inst"
    },
    {
      "id": "occ-000071",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 177,
      "end_line": 198,
      "kind": "async_def",
      "name": "prepare_workspace",
      "source_line": "async def prepare_workspace(sb: Sandbox, workdir: str, md: dict) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L177-L198",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000072",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 185,
      "end_line": 185,
      "kind": "await",
      "name": "await",
      "source_line": "    await agent_sandbox.ensure_agent_user(sb, workdir)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L185",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000073",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 186,
      "end_line": 186,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if md.get(\"protocol\") == PROTOCOL_SCALESWE:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L186",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000074",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 187,
      "end_line": 187,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        grading = md.get(\"grading\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L187",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000075",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 188,
      "end_line": 188,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        swepro = grading.get(\"swepro\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L188",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000076",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 190,
      "end_line": 190,
      "kind": "await",
      "name": "await",
      "source_line": "            await apply_before_repo_set_cmd(sb, workdir, swepro)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L190",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000077",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 191,
      "end_line": 191,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        pre_commands = grading.get(\"pre_commands\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L191",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000078",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 193,
      "end_line": 193,
      "kind": "await",
      "name": "await",
      "source_line": "            await apply_pre_commands(sb, workdir, pre_commands)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L193",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000079",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 194,
      "end_line": 198,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L194-L198",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000080",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 196,
      "end_line": 196,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        md.get(\"problem_statement\") or \"\",",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L196",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "prepare_workspace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000081",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 201,
      "end_line": 211,
      "kind": "async_def",
      "name": "apply_before_repo_set_cmd",
      "source_line": "async def apply_before_repo_set_cmd(sb: Sandbox, workdir: str, swepro: dict) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L201-L211",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000082",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 203,
      "end_line": 203,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    before = swepro.get(\"before_repo_set_cmd\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L203",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_before_repo_set_cmd",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "swepro"
    },
    {
      "id": "occ-000083",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 207,
      "end_line": 209,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L207-L209",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_before_repo_set_cmd",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000084",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 210,
      "end_line": 210,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(\"/workspace/swepro_setup/before.sh\", payload, user=\"agent\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L210",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_before_repo_set_cmd",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000085",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 211,
      "end_line": 211,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(\"bash /workspace/swepro_setup/before.sh\", user=\"agent\", check=False, timeout=600)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L211",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_before_repo_set_cmd",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000086",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 214,
      "end_line": 224,
      "kind": "async_def",
      "name": "apply_pre_commands",
      "source_line": "async def apply_pre_commands(sb: Sandbox, workdir: str, pre: list[str] | str) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L214-L224",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000087",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 222,
      "end_line": 222,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        body = \"\\n\".join(c for c in (pre or []) if c)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L222",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_pre_commands",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-000088",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 223,
      "end_line": 223,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(_PRE, \"set -e\\n\" + body, user=\"agent\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L223",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_pre_commands",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000089",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 224,
      "end_line": 224,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(f\"chmod 755 {_PRE} && cd {workdir} && bash {_PRE}\", user=\"agent\", check=False, timeout=600)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L224",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "apply_pre_commands",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000090",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 230,
      "end_line": 233,
      "kind": "async_def",
      "name": "git_diff",
      "source_line": "async def git_diff(sb: Sandbox, workdir: str) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L230-L233",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000091",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 232,
      "end_line": 232,
      "kind": "await",
      "name": "await",
      "source_line": "    _, out, _ = await sb.exec(cmd, user=\"agent\", timeout=120)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L232",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "git_diff",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000092",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 239,
      "end_line": 247,
      "kind": "async_def",
      "name": "run_evaluation",
      "source_line": "async def run_evaluation(md: dict, *, diff_text: str, timeout_sec: int) -> EvalResult:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L239-L247",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000093",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 245,
      "end_line": 245,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if md.get(\"protocol\") == PROTOCOL_SWEBENCH:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L245",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "run_evaluation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000094",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 246,
      "end_line": 246,
      "kind": "await",
      "name": "await",
      "source_line": "        return await _grade_swebench(md, diff_text, timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L246",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "run_evaluation",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000095",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 247,
      "end_line": 247,
      "kind": "await",
      "name": "await",
      "source_line": "    return await _grade_scaleswe(md, diff_text, timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L247",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "run_evaluation",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000096",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 253,
      "end_line": 287,
      "kind": "async_def",
      "name": "_grade_scaleswe",
      "source_line": "async def _grade_scaleswe(md: dict, diff_text: str, timeout_sec: int) -> EvalResult:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L253-L287",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000097",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 259,
      "end_line": 259,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    grading = md.get(\"grading\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L259",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "md"
    },
    {
      "id": "occ-000098",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 260,
      "end_line": 260,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    swepro = grading.get(\"swepro\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L260",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000099",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 261,
      "end_line": 261,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    eval_cmd = grading.get(\"eval_cmd\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L261",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000100",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 262,
      "end_line": 262,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    f2p_script = grading.get(\"f2p_script\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L262",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000101",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    pre_commands = grading.get(\"pre_commands\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L263",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "grading"
    },
    {
      "id": "occ-000102",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 269,
      "end_line": 287,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with E2BSandbox(image) as ev:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L269-L287",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000103",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 270,
      "end_line": 270,
      "kind": "await",
      "name": "await",
      "source_line": "        await agent_sandbox.ensure_agent_user(ev, workdir)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L270",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000104",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 272,
      "end_line": 272,
      "kind": "await",
      "name": "await",
      "source_line": "            await _setup_swepro_assets(ev, swepro)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L272",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000105",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 273,
      "end_line": 273,
      "kind": "await",
      "name": "await",
      "source_line": "            await apply_before_repo_set_cmd(ev, workdir, swepro)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L273",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000106",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 275,
      "end_line": 275,
      "kind": "await",
      "name": "await",
      "source_line": "            await apply_pre_commands(ev, workdir, pre_commands)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L275",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000107",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 277,
      "end_line": 277,
      "kind": "await",
      "name": "await",
      "source_line": "        applied = await _apply_diff(ev, workdir, diff_text)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L277",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000108",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 282,
      "end_line": 282,
      "kind": "await",
      "name": "await",
      "source_line": "            r = await _run_swepro(ev, workdir, swepro, timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L282",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000109",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 284,
      "end_line": 284,
      "kind": "await",
      "name": "await",
      "source_line": "            r = await _run_eval_cmd(ev, workdir, eval_cmd, timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L284",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000110",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 286,
      "end_line": 286,
      "kind": "await",
      "name": "await",
      "source_line": "            r = await _run_f2p_script(ev, workdir, f2p_script, timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L286",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_scaleswe",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000111",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 290,
      "end_line": 296,
      "kind": "async_def",
      "name": "_setup_swepro_assets",
      "source_line": "async def _setup_swepro_assets(ev: Sandbox, swepro: dict) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L290-L296",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000112",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 291,
      "end_line": 291,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.exec(f\"mkdir -p {_SWEPRO_DIR} && chmod 777 {_SWEPRO_DIR}\", user=\"root\", check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L291",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_setup_swepro_assets",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000113",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 293,
      "end_line": 293,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        host_p = swepro.get(k)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L293",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_setup_swepro_assets",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "swepro"
    },
    {
      "id": "occ-000114",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 295,
      "end_line": 295,
      "kind": "await",
      "name": "await",
      "source_line": "            await ev.write_file(f\"{_SWEPRO_DIR}/{dst}\", Path(host_p), user=\"root\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L295",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_setup_swepro_assets",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000115",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 296,
      "end_line": 296,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.exec(f\"chmod 755 {_SWEPRO_DIR}/* && chown -R agent:agent {_SWEPRO_DIR}\", user=\"root\", check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L296",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_setup_swepro_assets",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000116",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 299,
      "end_line": 313,
      "kind": "async_def",
      "name": "_apply_diff",
      "source_line": "async def _apply_diff(ev: Sandbox, workdir: str, diff_text: str) -> bool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L299-L313",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000117",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 302,
      "end_line": 302,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.write_file(_PATCH, diff_text, user=\"agent\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L302",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_apply_diff",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000118",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 304,
      "end_line": 304,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    ladder = \" || \".join(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L304",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_apply_diff",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" || \""
    },
    {
      "id": "occ-000119",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 312,
      "end_line": 312,
      "kind": "await",
      "name": "await",
      "source_line": "    ec, _, _ = await ev.exec(f\"cd {workdir} && ({ladder})\", user=\"agent\", check=False, timeout=120)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L312",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_apply_diff",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000120",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 316,
      "end_line": 338,
      "kind": "async_def",
      "name": "_run_swepro",
      "source_line": "async def _run_swepro(ev: Sandbox, workdir: str, swepro: dict, timeout: int) -> float:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L316-L338",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000121",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 317,
      "end_line": 317,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    test_arg = \",\".join(swepro.get(\"selected_test_files\") or [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L317",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-000122",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 317,
      "end_line": 317,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    test_arg = \",\".join(swepro.get(\"selected_test_files\") or [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L317",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "swepro"
    },
    {
      "id": "occ-000123",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 321,
      "end_line": 326,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L321-L326",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000124",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 327,
      "end_line": 332,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L327-L332",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000125",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 333,
      "end_line": 333,
      "kind": "await",
      "name": "await",
      "source_line": "    raw = await ev.read_file(result_f, user=\"agent\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L333",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000126",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 335,
      "end_line": 335,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    passed = {t[\"name\"] for t in parsed.get(\"tests\", []) if t.get(\"status\") == \"PASSED\"}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L335",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "parsed"
    },
    {
      "id": "occ-000127",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 335,
      "end_line": 335,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    passed = {t[\"name\"] for t in parsed.get(\"tests\", []) if t.get(\"status\") == \"PASSED\"}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L335",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000128",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 336,
      "end_line": 336,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    required = set(swepro.get(\"fail_to_pass\") or []) | set(swepro.get(\"pass_to_pass\") or [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L336",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "swepro"
    },
    {
      "id": "occ-000129",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 336,
      "end_line": 336,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    required = set(swepro.get(\"fail_to_pass\") or []) | set(swepro.get(\"pass_to_pass\") or [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L336",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_swepro",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "swepro"
    },
    {
      "id": "occ-000130",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 341,
      "end_line": 343,
      "kind": "async_def",
      "name": "_run_eval_cmd",
      "source_line": "async def _run_eval_cmd(ev: Sandbox, workdir: str, cmd: str, timeout: int) -> float:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L341-L343",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000131",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 342,
      "end_line": 342,
      "kind": "await",
      "name": "await",
      "source_line": "    ec, _, _ = await ev.exec(f\"cd {workdir} && {cmd}\", user=\"agent\", check=False, timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L342",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_eval_cmd",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000132",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 346,
      "end_line": 352,
      "kind": "async_def",
      "name": "_run_f2p_script",
      "source_line": "async def _run_f2p_script(ev: Sandbox, workdir: str, script: str, timeout: int) -> float:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L346-L352",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000133",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 350,
      "end_line": 350,
      "kind": "await",
      "name": "await",
      "source_line": "    await ev.write_file(_F2P, script, user=\"agent\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L350",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_f2p_script",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000134",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 351,
      "end_line": 351,
      "kind": "await",
      "name": "await",
      "source_line": "    ec, _, _ = await ev.exec(f\"cd {workdir} && python {_F2P}\", user=\"agent\", check=False, timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L351",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_run_f2p_script",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000135",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 364,
      "end_line": 374,
      "kind": "async_def",
      "name": "_apply_model_patch",
      "source_line": "async def _apply_model_patch(ev: Sandbox, workdir: str) -> bool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L364-L374",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000136",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 368,
      "end_line": 368,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    ladder = \" || \".join(f\"{cmd} /tmp/patch.diff\" for cmd in _GIT_APPLY_CMDS)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L368",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_apply_model_patch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" || \""
    },
    {
      "id": "occ-000137",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 373,
      "end_line": 373,
      "kind": "await",
      "name": "await",
      "source_line": "    ec, _, _ = await ev.exec(cmd, user=\"root\", check=False, timeout=120)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L373",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_apply_model_patch",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000138",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 388,
      "end_line": 388,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        tmp.write(log)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L388",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_eval_report_from_log",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tmp"
    },
    {
      "id": "occ-000139",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 390,
      "end_line": 390,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        tmp.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L390",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_eval_report_from_log",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tmp"
    },
    {
      "id": "occ-000140",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 411,
      "end_line": 411,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    passed, failed = d.get(\"success\", []), d.get(\"failure\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L411",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_ratio",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "d"
    },
    {
      "id": "occ-000141",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 411,
      "end_line": 411,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    passed, failed = d.get(\"success\", []), d.get(\"failure\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L411",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_ratio",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "d"
    },
    {
      "id": "occ-000142",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 419,
      "end_line": 419,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if info.get(\"resolved\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L419",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_log_swebench_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "info"
    },
    {
      "id": "occ-000143",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 422,
      "end_line": 422,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    ts_status = info.get(\"tests_status\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L422",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_log_swebench_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "info"
    },
    {
      "id": "occ-000144",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 423,
      "end_line": 423,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    f2p_pass, f2p_total = _ratio(ts_status.get(\"FAIL_TO_PASS\", {}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L423",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_log_swebench_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ts_status"
    },
    {
      "id": "occ-000145",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 424,
      "end_line": 424,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    p2p_pass, p2p_total = _ratio(ts_status.get(\"PASS_TO_PASS\", {}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L424",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_log_swebench_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ts_status"
    },
    {
      "id": "occ-000146",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 431,
      "end_line": 431,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        bool(info.get(\"patch_successfully_applied\")),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L431",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_log_swebench_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "info"
    },
    {
      "id": "occ-000147",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 440,
      "end_line": 492,
      "kind": "async_def",
      "name": "_grade_swebench",
      "source_line": "async def _grade_swebench(md: dict, diff_text: str, timeout_sec: int) -> EvalResult:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L440-L492",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000148",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 465,
      "end_line": 477,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with E2BSandbox(image) as ev:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L465-L477",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000149",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 466,
      "end_line": 469,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L466-L469",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000150",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 466,
      "end_line": 466,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L466",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000151",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 472,
      "end_line": 472,
      "kind": "await",
      "name": "await",
      "source_line": "        if not await _apply_model_patch(ev, md[\"workdir\"]):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L472",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000152",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 475,
      "end_line": 477,
      "kind": "await",
      "name": "await",
      "source_line": "        exit_code, log = await exec_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L475-L477",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000153",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 490,
      "end_line": 490,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    info = report.get(instance_id, {})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L490",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "report"
    },
    {
      "id": "occ-000154",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 492,
      "end_line": 492,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    return EvalResult(1.0 if info.get(\"resolved\") else 0.0, bool(info.get(\"patch_successfully_applied\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L492",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "info"
    },
    {
      "id": "occ-000155",
      "file": "examples/coding_agent_rl/swe.py",
      "line": 492,
      "end_line": 492,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    return EvalResult(1.0 if info.get(\"resolved\") else 0.0, bool(info.get(\"patch_successfully_applied\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/swe.py#L492",
      "snapshot": "source_snapshot/examples/coding_agent_rl/swe.py.txt",
      "symbol": "_grade_swebench",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "info"
    },
    {
      "id": "occ-000156",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 66,
      "end_line": 66,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    tools = metadata.get(\"tools\") if metadata else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L66",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "_encode_observation_for_generation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-000157",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 110,
      "end_line": 110,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if multimodal_inputs and multimodal_inputs.get(\"images\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L110",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "_encode_observation_for_generation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "multimodal_inputs"
    },
    {
      "id": "occ-000158",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 165,
      "end_line": 165,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if sample.multimodal_inputs and sample.multimodal_inputs.get(\"images\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L165",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "_prepare_initial_inputs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.multimodal_inputs"
    },
    {
      "id": "occ-000159",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 187,
      "end_line": 187,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    elif sampling_params.get(\"max_new_tokens\") is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L187",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "_prepare_start_state",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sampling_params"
    },
    {
      "id": "occ-000160",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 192,
      "end_line": 209,
      "kind": "async_def",
      "name": "_run_inference_step",
      "source_line": "async def _run_inference_step(url: str, tokens: list[int], sampling_params: dict, image_data, tokenizer):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L192-L209",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000161",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 201,
      "end_line": 201,
      "kind": "await",
      "name": "await",
      "source_line": "    output = await post(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L201",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "_run_inference_step",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000162",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 315,
      "end_line": 387,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args: Any, sample: Sample, sampling_params) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L315-L387",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000163",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 325,
      "end_line": 325,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "        env.reset()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L325",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "env"
    },
    {
      "id": "occ-000164",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 336,
      "end_line": 336,
      "kind": "await",
      "name": "await",
      "source_line": "                await _run_inference_step(url, sample.tokens, cur_sampling_params, current_image_data, state.tokenizer)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L336",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000165",
      "file": "examples/geo3k_vlm_multi_turn/rollout.py",
      "line": 385,
      "end_line": 385,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            env.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/geo3k_vlm_multi_turn/rollout.py#L385",
      "snapshot": "source_snapshot/examples/geo3k_vlm_multi_turn/rollout.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "env"
    },
    {
      "id": "occ-000166",
      "file": "examples/multi_agent/agent_system.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L1",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000167",
      "file": "examples/multi_agent/agent_system.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L3",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000168",
      "file": "examples/multi_agent/agent_system.py",
      "line": 14,
      "end_line": 86,
      "kind": "async_def",
      "name": "generate_response",
      "source_line": "async def generate_response(args, prompt, key):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L14-L86",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000169",
      "file": "examples/multi_agent/agent_system.py",
      "line": 37,
      "end_line": 37,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await post(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L37",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "generate_response",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000170",
      "file": "examples/multi_agent/agent_system.py",
      "line": 95,
      "end_line": 105,
      "kind": "async_def",
      "name": "run",
      "source_line": "    async def run(self, args, prompt, max_retries: int = 1, key: str = None) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L95-L105",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "Agent",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000171",
      "file": "examples/multi_agent/agent_system.py",
      "line": 99,
      "end_line": 99,
      "kind": "await",
      "name": "await",
      "source_line": "                response = await generate_response(args, prompt, key=key)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L99",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "Agent.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000172",
      "file": "examples/multi_agent/agent_system.py",
      "line": 103,
      "end_line": 103,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L103",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "Agent.run",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000173",
      "file": "examples/multi_agent/agent_system.py",
      "line": 114,
      "end_line": 117,
      "kind": "async_def",
      "name": "generate_initial_solution",
      "source_line": "    async def generate_initial_solution(self, args, problem_statement) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L114-L117",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "SolverAgent",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000174",
      "file": "examples/multi_agent/agent_system.py",
      "line": 117,
      "end_line": 117,
      "kind": "await",
      "name": "await",
      "source_line": "        return await self.run(args, prompt, max_retries=3, key=\"solver\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L117",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "SolverAgent.generate_initial_solution",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000175",
      "file": "examples/multi_agent/agent_system.py",
      "line": 126,
      "end_line": 138,
      "kind": "async_def",
      "name": "rewrite",
      "source_line": "    async def rewrite(self, args, problem_statement, previous_solutions: list[str]) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L126-L138",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "RewriterAgent",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000176",
      "file": "examples/multi_agent/agent_system.py",
      "line": 138,
      "end_line": 138,
      "kind": "await",
      "name": "await",
      "source_line": "        return await self.run(args, prompt, max_retries=1, key=\"rewriter\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L138",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "RewriterAgent.rewrite",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000177",
      "file": "examples/multi_agent/agent_system.py",
      "line": 147,
      "end_line": 159,
      "kind": "async_def",
      "name": "select",
      "source_line": "    async def select(self, args, problem_statement, candidate_solutions: list[str]) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L147-L159",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "SelectorAgent",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000178",
      "file": "examples/multi_agent/agent_system.py",
      "line": 159,
      "end_line": 159,
      "kind": "await",
      "name": "await",
      "source_line": "        return await self.run(args, prompt, max_retries=10, key=\"selector\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L159",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "SelectorAgent.select",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000179",
      "file": "examples/multi_agent/agent_system.py",
      "line": 176,
      "end_line": 179,
      "kind": "async_def",
      "name": "rewrite_worker",
      "source_line": "async def rewrite_worker(args, previous_solutions, problem_statement, worker_id):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L176-L179",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000180",
      "file": "examples/multi_agent/agent_system.py",
      "line": 178,
      "end_line": 178,
      "kind": "await",
      "name": "await",
      "source_line": "    new_solution = await rewriter.rewrite(args, problem_statement, previous_solutions)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L178",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "rewrite_worker",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000181",
      "file": "examples/multi_agent/agent_system.py",
      "line": 182,
      "end_line": 195,
      "kind": "async_def",
      "name": "solver_worker",
      "source_line": "async def solver_worker(args, problem_statement, worker_id):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L182-L195",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000182",
      "file": "examples/multi_agent/agent_system.py",
      "line": 189,
      "end_line": 189,
      "kind": "await",
      "name": "await",
      "source_line": "        current_solution = await solver.generate_initial_solution(args, problem_statement)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L189",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "solver_worker",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000183",
      "file": "examples/multi_agent/agent_system.py",
      "line": 198,
      "end_line": 296,
      "kind": "async_def",
      "name": "run_agent_system",
      "source_line": "async def run_agent_system(args, sample):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L198-L296",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000184",
      "file": "examples/multi_agent/agent_system.py",
      "line": 222,
      "end_line": 222,
      "kind": "await",
      "name": "await",
      "source_line": "    results = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L222",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000185",
      "file": "examples/multi_agent/agent_system.py",
      "line": 222,
      "end_line": 222,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    results = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L222",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000186",
      "file": "examples/multi_agent/agent_system.py",
      "line": 224,
      "end_line": 224,
      "kind": "await",
      "name": "await",
      "source_line": "    rewards = await batched_async_rm(args, args.results_dict[\"solver\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L224",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000187",
      "file": "examples/multi_agent/agent_system.py",
      "line": 244,
      "end_line": 244,
      "kind": "await",
      "name": "await",
      "source_line": "    rewrited_solutions_raw = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L244",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000188",
      "file": "examples/multi_agent/agent_system.py",
      "line": 244,
      "end_line": 244,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    rewrited_solutions_raw = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L244",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000189",
      "file": "examples/multi_agent/agent_system.py",
      "line": 252,
      "end_line": 252,
      "kind": "await",
      "name": "await",
      "source_line": "    rewards = await batched_async_rm(args, args.results_dict[\"rewriter\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L252",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000190",
      "file": "examples/multi_agent/agent_system.py",
      "line": 263,
      "end_line": 263,
      "kind": "await",
      "name": "await",
      "source_line": "    response = await selector.select(args, problem_statement, rewrited_solutions)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/agent_system.py#L263",
      "snapshot": "source_snapshot/examples/multi_agent/agent_system.py.txt",
      "symbol": "run_agent_system",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000191",
      "file": "examples/multi_agent/rollout_with_multi_agents.py",
      "line": 16,
      "end_line": 33,
      "kind": "async_def",
      "name": "generate_with_multi_agents",
      "source_line": "async def generate_with_multi_agents(args, sample: Sample, sampling_params, evaluation=False) -> list[Sample]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/rollout_with_multi_agents.py#L16-L33",
      "snapshot": "source_snapshot/examples/multi_agent/rollout_with_multi_agents.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000192",
      "file": "examples/multi_agent/rollout_with_multi_agents.py",
      "line": 29,
      "end_line": 29,
      "kind": "await",
      "name": "await",
      "source_line": "    samples = await custom_multi_agent_func(args, sample)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/multi_agent/rollout_with_multi_agents.py#L29",
      "snapshot": "source_snapshot/examples/multi_agent/rollout_with_multi_agents.py.txt",
      "symbol": "generate_with_multi_agents",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000193",
      "file": "examples/retool/generate_with_retool.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            tool_name = tool_call_data.get(\"name\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L120",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "postprocess_predictions",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool_call_data"
    },
    {
      "id": "occ-000194",
      "file": "examples/retool/generate_with_retool.py",
      "line": 121,
      "end_line": 121,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            arguments = tool_call_data.get(\"arguments\", {})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L121",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "postprocess_predictions",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool_call_data"
    },
    {
      "id": "occ-000195",
      "file": "examples/retool/generate_with_retool.py",
      "line": 124,
      "end_line": 124,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                code = arguments.get(\"code\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L124",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "postprocess_predictions",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "arguments"
    },
    {
      "id": "occ-000196",
      "file": "examples/retool/generate_with_retool.py",
      "line": 183,
      "end_line": 212,
      "kind": "async_def",
      "name": "execute_predictions",
      "source_line": "async def execute_predictions(prediction: str) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L183-L212",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000197",
      "file": "examples/retool/generate_with_retool.py",
      "line": 192,
      "end_line": 193,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with SEMAPHORE:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L192-L193",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "execute_predictions",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000198",
      "file": "examples/retool/generate_with_retool.py",
      "line": 193,
      "end_line": 193,
      "kind": "await",
      "name": "await",
      "source_line": "                result = await tool_registry.execute_tool(\"code_interpreter\", {\"code\": code})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L193",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "execute_predictions",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000199",
      "file": "examples/retool/generate_with_retool.py",
      "line": 215,
      "end_line": 404,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args, sample: Sample, sampling_params) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L215-L404",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000200",
      "file": "examples/retool/generate_with_retool.py",
      "line": 266,
      "end_line": 266,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sampling_params.get(\"max_new_tokens\", remaining_budget),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L266",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sampling_params"
    },
    {
      "id": "occ-000201",
      "file": "examples/retool/generate_with_retool.py",
      "line": 299,
      "end_line": 299,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await post(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L299",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000202",
      "file": "examples/retool/generate_with_retool.py",
      "line": 335,
      "end_line": 335,
      "kind": "await",
      "name": "await",
      "source_line": "        next_obs, done = await execute_predictions(cur_response)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L335",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000203",
      "file": "examples/retool/generate_with_retool.py",
      "line": 407,
      "end_line": 432,
      "kind": "async_def",
      "name": "reward_func",
      "source_line": "async def reward_func(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/generate_with_retool.py#L407-L432",
      "snapshot": "source_snapshot/examples/retool/generate_with_retool.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000204",
      "file": "examples/retool/tool_sandbox.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L10",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000205",
      "file": "examples/retool/tool_sandbox.py",
      "line": 14,
      "end_line": 14,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L14",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000206",
      "file": "examples/retool/tool_sandbox.py",
      "line": 38,
      "end_line": 38,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "SEMAPHORE = asyncio.Semaphore(TOOL_CONFIGS[\"tool_concurrency\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L38",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000207",
      "file": "examples/retool/tool_sandbox.py",
      "line": 193,
      "end_line": 297,
      "kind": "async_def",
      "name": "execute_code",
      "source_line": "    async def execute_code(self, code: str) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L193-L297",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000208",
      "file": "examples/retool/tool_sandbox.py",
      "line": 209,
      "end_line": 209,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        indented_code = \"\\n\".join(\"    \" + line for line in code.split(\"\\n\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L209",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-000209",
      "file": "examples/retool/tool_sandbox.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                f.write(wrapped_code)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L263",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-000210",
      "file": "examples/retool/tool_sandbox.py",
      "line": 267,
      "end_line": 267,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "                process = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L267",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000211",
      "file": "examples/retool/tool_sandbox.py",
      "line": 269,
      "end_line": 269,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                    stdout=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L269",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000212",
      "file": "examples/retool/tool_sandbox.py",
      "line": 270,
      "end_line": 270,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                    stderr=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L270",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000213",
      "file": "examples/retool/tool_sandbox.py",
      "line": 278,
      "end_line": 278,
      "kind": "instance_candidate",
      "name": "communicate",
      "source_line": "                    stdout, stderr = process.communicate(timeout=self.timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L278",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-000214",
      "file": "examples/retool/tool_sandbox.py",
      "line": 285,
      "end_line": 285,
      "kind": "api_reference",
      "name": "subprocess.TimeoutExpired",
      "source_line": "                except subprocess.TimeoutExpired:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L285",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000215",
      "file": "examples/retool/tool_sandbox.py",
      "line": 286,
      "end_line": 286,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "                    process.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L286",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "PythonSandbox.execute_code",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-000216",
      "file": "examples/retool/tool_sandbox.py",
      "line": 337,
      "end_line": 346,
      "kind": "async_def",
      "name": "execute_tool",
      "source_line": "    async def execute_tool(self, tool_name: str, arguments: dict[str, Any]) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L337-L346",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000217",
      "file": "examples/retool/tool_sandbox.py",
      "line": 342,
      "end_line": 346,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with SEMAPHORE:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L342-L346",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry.execute_tool",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000218",
      "file": "examples/retool/tool_sandbox.py",
      "line": 344,
      "end_line": 344,
      "kind": "await",
      "name": "await",
      "source_line": "                return await self._execute_python(arguments)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L344",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry.execute_tool",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000219",
      "file": "examples/retool/tool_sandbox.py",
      "line": 348,
      "end_line": 356,
      "kind": "async_def",
      "name": "_execute_python",
      "source_line": "    async def _execute_python(self, arguments: dict[str, Any]) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L348-L356",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000220",
      "file": "examples/retool/tool_sandbox.py",
      "line": 350,
      "end_line": 350,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        code = arguments.get(\"code\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L350",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry._execute_python",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "arguments"
    },
    {
      "id": "occ-000221",
      "file": "examples/retool/tool_sandbox.py",
      "line": 355,
      "end_line": 355,
      "kind": "await",
      "name": "await",
      "source_line": "        result = await self.python_sandbox.execute_code(code)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/retool/tool_sandbox.py#L355",
      "snapshot": "source_snapshot/examples/retool/tool_sandbox.py.txt",
      "symbol": "ToolRegistry._execute_python",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000222",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L4",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000223",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 41,
      "end_line": 41,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "SEMAPHORE = asyncio.Semaphore(SEARCH_R1_CONFIGS[\"search_concurrency\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L41",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000224",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 53,
      "end_line": 53,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        text = \"\\n\".join(content.split(\"\\n\")[1:])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L53",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "_passages2string",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-000225",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 59,
      "end_line": 90,
      "kind": "async_def",
      "name": "search",
      "source_line": "async def search(query: str) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L59-L90",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000226",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 70,
      "end_line": 75,
      "kind": "await",
      "name": "await",
      "source_line": "        result = await local_search(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L70-L75",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "search",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000227",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 80,
      "end_line": 86,
      "kind": "await",
      "name": "await",
      "source_line": "        result = await google_search(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L80-L86",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "search",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000228",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 124,
      "end_line": 142,
      "kind": "async_def",
      "name": "execute_predictions",
      "source_line": "async def execute_predictions(prediction: str) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L124-L142",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000229",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 129,
      "end_line": 130,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with SEMAPHORE:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L129-L130",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "execute_predictions",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000230",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 130,
      "end_line": 130,
      "kind": "await",
      "name": "await",
      "source_line": "            search_results = await search(search_query)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L130",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "execute_predictions",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000231",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 145,
      "end_line": 274,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args, sample: Sample, sampling_params) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L145-L274",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000232",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 174,
      "end_line": 174,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    _existing_stop = sampling_params.get(\"stop\") or []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L174",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sampling_params"
    },
    {
      "id": "occ-000233",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 188,
      "end_line": 188,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await post(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L188",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000234",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 235,
      "end_line": 235,
      "kind": "await",
      "name": "await",
      "source_line": "        next_obs, done = await execute_predictions(cur_response)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L235",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000235",
      "file": "examples/search-r1/generate_with_search.py",
      "line": 277,
      "end_line": 293,
      "kind": "async_def",
      "name": "reward_func",
      "source_line": "async def reward_func(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/generate_with_search.py#L277-L293",
      "snapshot": "source_snapshot/examples/search-r1/generate_with_search.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000236",
      "file": "examples/search-r1/google_search_server.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L1",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000237",
      "file": "examples/search-r1/google_search_server.py",
      "line": 33,
      "end_line": 33,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        for item in result.get(\"items\", []):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L33",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "filter_links",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000238",
      "file": "examples/search-r1/google_search_server.py",
      "line": 42,
      "end_line": 60,
      "kind": "async_def",
      "name": "fetch",
      "source_line": "async def fetch(session: aiohttp.ClientSession, url: str, semaphore: asyncio.Semaphore) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L42-L60",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000239",
      "file": "examples/search-r1/google_search_server.py",
      "line": 42,
      "end_line": 42,
      "kind": "api_reference",
      "name": "asyncio.Semaphore",
      "source_line": "async def fetch(session: aiohttp.ClientSession, url: str, semaphore: asyncio.Semaphore) -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L42",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000240",
      "file": "examples/search-r1/google_search_server.py",
      "line": 52,
      "end_line": 60,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with semaphore:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L52-L60",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000241",
      "file": "examples/search-r1/google_search_server.py",
      "line": 54,
      "end_line": 58,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with session.get(url, headers=headers) as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L54-L58",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000242",
      "file": "examples/search-r1/google_search_server.py",
      "line": 54,
      "end_line": 54,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            async with session.get(url, headers=headers) as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L54",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "session"
    },
    {
      "id": "occ-000243",
      "file": "examples/search-r1/google_search_server.py",
      "line": 55,
      "end_line": 55,
      "kind": "await",
      "name": "await",
      "source_line": "                raw = await response.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L55",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000244",
      "file": "examples/search-r1/google_search_server.py",
      "line": 55,
      "end_line": 55,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                raw = await response.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L55",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "response"
    },
    {
      "id": "occ-000245",
      "file": "examples/search-r1/google_search_server.py",
      "line": 59,
      "end_line": 59,
      "kind": "api_reference",
      "name": "asyncio.TimeoutError",
      "source_line": "        except (aiohttp.ClientError, asyncio.TimeoutError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L59",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000246",
      "file": "examples/search-r1/google_search_server.py",
      "line": 63,
      "end_line": 70,
      "kind": "async_def",
      "name": "fetch_all",
      "source_line": "async def fetch_all(urls: list[str], limit: int = 8) -> list[str]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L63-L70",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000247",
      "file": "examples/search-r1/google_search_server.py",
      "line": 64,
      "end_line": 64,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "    semaphore = asyncio.Semaphore(limit)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L64",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch_all",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000248",
      "file": "examples/search-r1/google_search_server.py",
      "line": 68,
      "end_line": 70,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession(timeout=timeout, connector=connector) as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L68-L70",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch_all",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000249",
      "file": "examples/search-r1/google_search_server.py",
      "line": 70,
      "end_line": 70,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L70",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch_all",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000250",
      "file": "examples/search-r1/google_search_server.py",
      "line": 70,
      "end_line": 70,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        return await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L70",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "fetch_all",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000251",
      "file": "examples/search-r1/google_search_server.py",
      "line": 91,
      "end_line": 91,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    return \"\\n\".join(ctx_paras)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L91",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "collect_context",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-000252",
      "file": "examples/search-r1/google_search_server.py",
      "line": 94,
      "end_line": 149,
      "kind": "async_def",
      "name": "google_search",
      "source_line": "async def google_search(api_key, query, top_k=5, timeout: int = 60, proxy=None, snippet_only=False) -> list[dict]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L94-L149",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000253",
      "file": "examples/search-r1/google_search_server.py",
      "line": 99,
      "end_line": 116,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession(**session_kwargs) as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L99-L116",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000254",
      "file": "examples/search-r1/google_search_server.py",
      "line": 100,
      "end_line": 116,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with session.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L100-L116",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000255",
      "file": "examples/search-r1/google_search_server.py",
      "line": 115,
      "end_line": 115,
      "kind": "await",
      "name": "await",
      "source_line": "            response = await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L115",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000256",
      "file": "examples/search-r1/google_search_server.py",
      "line": 116,
      "end_line": 116,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            items = response.get(\"organic\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L116",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "response"
    },
    {
      "id": "occ-000257",
      "file": "examples/search-r1/google_search_server.py",
      "line": 121,
      "end_line": 121,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            title = item.get(\"title\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L121",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000258",
      "file": "examples/search-r1/google_search_server.py",
      "line": 122,
      "end_line": 122,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            context = \" \".join(parse_snippet(item.get(\"snippet\", \"\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L122",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-000259",
      "file": "examples/search-r1/google_search_server.py",
      "line": 122,
      "end_line": 122,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            context = \" \".join(parse_snippet(item.get(\"snippet\", \"\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L122",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000260",
      "file": "examples/search-r1/google_search_server.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        links = [item.get(\"link\", \"\") for item in items if \"link\" in item]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L132",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000261",
      "file": "examples/search-r1/google_search_server.py",
      "line": 133,
      "end_line": 133,
      "kind": "await",
      "name": "await",
      "source_line": "        web_contents = await fetch_all(links)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L133",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000262",
      "file": "examples/search-r1/google_search_server.py",
      "line": 136,
      "end_line": 136,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            title = item.get(\"title\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L136",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000263",
      "file": "examples/search-r1/google_search_server.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            snippet = item.get(\"snippet\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/google_search_server.py#L137",
      "snapshot": "source_snapshot/examples/search-r1/google_search_server.py.txt",
      "symbol": "google_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000264",
      "file": "examples/search-r1/local_search_server.py",
      "line": 25,
      "end_line": 97,
      "kind": "async_def",
      "name": "local_search",
      "source_line": "async def local_search(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L25-L97",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000265",
      "file": "examples/search-r1/local_search_server.py",
      "line": 66,
      "end_line": 69,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with aiohttp.ClientSession(**session_kwargs) as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L66-L69",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "local_search",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000266",
      "file": "examples/search-r1/local_search_server.py",
      "line": 67,
      "end_line": 69,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with session.post(search_url, json=payload, timeout=timeout_obj) as resp:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L67-L69",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "local_search",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000267",
      "file": "examples/search-r1/local_search_server.py",
      "line": 69,
      "end_line": 69,
      "kind": "await",
      "name": "await",
      "source_line": "                result = await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L69",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "local_search",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000268",
      "file": "examples/search-r1/local_search_server.py",
      "line": 76,
      "end_line": 76,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    retrieval_results = result.get(\"result\", [[]])[0]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L76",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "local_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000269",
      "file": "examples/search-r1/local_search_server.py",
      "line": 86,
      "end_line": 86,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            content = item.get(\"contents\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/search-r1/local_search_server.py#L86",
      "snapshot": "source_snapshot/examples/search-r1/local_search_server.py.txt",
      "symbol": "local_search",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "item"
    },
    {
      "id": "occ-000270",
      "file": "examples/strands_sglang/generate_with_strands.py",
      "line": 41,
      "end_line": 87,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args, sample: Sample, sampling_params) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/generate_with_strands.py#L41-L87",
      "snapshot": "source_snapshot/examples/strands_sglang/generate_with_strands.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000271",
      "file": "examples/strands_sglang/generate_with_strands.py",
      "line": 66,
      "end_line": 66,
      "kind": "await",
      "name": "await",
      "source_line": "        await agent.invoke_async(prompt)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/generate_with_strands.py#L66",
      "snapshot": "source_snapshot/examples/strands_sglang/generate_with_strands.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000272",
      "file": "examples/strands_sglang/generate_with_strands.py",
      "line": 85,
      "end_line": 85,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "    model.reset()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/generate_with_strands.py#L85",
      "snapshot": "source_snapshot/examples/strands_sglang/generate_with_strands.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "model"
    },
    {
      "id": "occ-000273",
      "file": "examples/strands_sglang/generate_with_strands.py",
      "line": 90,
      "end_line": 108,
      "kind": "async_def",
      "name": "reward_func",
      "source_line": "async def reward_func(args, sample: Sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/generate_with_strands.py#L90-L108",
      "snapshot": "source_snapshot/examples/strands_sglang/generate_with_strands.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000274",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 27,
      "end_line": 27,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L27",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000275",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 141,
      "end_line": 141,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                source = f.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L141",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-000276",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 228,
      "end_line": 228,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "            proc = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L228",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000277",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 230,
      "end_line": 230,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                stdout=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L230",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000278",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 231,
      "end_line": 231,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                stderr=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L231",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000279",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 237,
      "end_line": 237,
      "kind": "instance_candidate",
      "name": "communicate",
      "source_line": "            stdout, stderr = proc.communicate(timeout=self.execution_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L237",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "proc"
    },
    {
      "id": "occ-000280",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 239,
      "end_line": 239,
      "kind": "api_reference",
      "name": "subprocess.TimeoutExpired",
      "source_line": "        except subprocess.TimeoutExpired:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L239",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000281",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 240,
      "end_line": 240,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "            proc.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L240",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "proc"
    },
    {
      "id": "occ-000282",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 241,
      "end_line": 241,
      "kind": "instance_candidate",
      "name": "communicate",
      "source_line": "            stdout, stderr = proc.communicate()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L241",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.run_file",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "proc"
    },
    {
      "id": "occ-000283",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 360,
      "end_line": 360,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                f.write(code)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L360",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._create_temp_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-000284",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 380,
      "end_line": 380,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "                f\"{', '.join(self._CODE_EXTENSION_MAPPING.keys())}.\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L380",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._check_code_type",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "', '"
    },
    {
      "id": "occ-000285",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 416,
      "end_line": 416,
      "kind": "api_call",
      "name": "subprocess.check_call",
      "source_line": "                    subprocess.check_call(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L416",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._is_command_available",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000286",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 423,
      "end_line": 423,
      "kind": "api_reference",
      "name": "subprocess.CalledProcessError",
      "source_line": "            except subprocess.CalledProcessError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L423",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._is_command_available",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000287",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 429,
      "end_line": 429,
      "kind": "api_call",
      "name": "subprocess.check_call",
      "source_line": "                    subprocess.check_call(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L429",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._is_command_available",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000288",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 436,
      "end_line": 436,
      "kind": "api_reference",
      "name": "subprocess.CalledProcessError",
      "source_line": "            except subprocess.CalledProcessError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L436",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter._is_command_available",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000289",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 467,
      "end_line": 467,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "            proc = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L467",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.execute_command",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000290",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 469,
      "end_line": 469,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                stdout=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L469",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.execute_command",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000291",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 470,
      "end_line": 470,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "                stderr=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L470",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.execute_command",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000292",
      "file": "examples/strands_sglang/subprocess_interpreter.py",
      "line": 476,
      "end_line": 476,
      "kind": "instance_candidate",
      "name": "communicate",
      "source_line": "            stdout, stderr = proc.communicate(timeout=self.execution_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/strands_sglang/subprocess_interpreter.py#L476",
      "snapshot": "source_snapshot/examples/strands_sglang/subprocess_interpreter.py.txt",
      "symbol": "SubprocessInterpreter.execute_command",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "proc"
    },
    {
      "id": "occ-000293",
      "file": "examples/tau-bench/generate_with_tau.py",
      "line": 60,
      "end_line": 60,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    status = status_mapping.get(res.status)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/generate_with_tau.py#L60",
      "snapshot": "source_snapshot/examples/tau-bench/generate_with_tau.py.txt",
      "symbol": "res_to_sample",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "status_mapping"
    },
    {
      "id": "occ-000294",
      "file": "examples/tau-bench/generate_with_tau.py",
      "line": 100,
      "end_line": 153,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args: dict[str, Any], sample: Sample, sampling_params: dict) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/generate_with_tau.py#L100-L153",
      "snapshot": "source_snapshot/examples/tau-bench/generate_with_tau.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000295",
      "file": "examples/tau-bench/generate_with_tau.py",
      "line": 147,
      "end_line": 147,
      "kind": "await",
      "name": "await",
      "source_line": "    interaction_result = await agent.asolve(env, agent.rollout_args, agent.sampling_params, task_index)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/generate_with_tau.py#L147",
      "snapshot": "source_snapshot/examples/tau-bench/generate_with_tau.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000296",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 91,
      "end_line": 102,
      "kind": "async_def",
      "name": "_call_llm",
      "source_line": "    async def _call_llm(self, url: str, payload: dict[str, Any]) -> dict[str, Any]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L91-L102",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000297",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 102,
      "end_line": 102,
      "kind": "await",
      "name": "await",
      "source_line": "        return await post(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L102",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin._call_llm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000298",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 116,
      "end_line": 127,
      "kind": "async_def",
      "name": "_execute_tool",
      "source_line": "    async def _execute_tool(self, env, action: Action):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L116-L127",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000299",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 141,
      "end_line": 141,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "            env_reset_res = env.reset(task_index=task_index)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L141",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin._initialize_environment",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "env"
    },
    {
      "id": "occ-000300",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 143,
      "end_line": 143,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "            env_reset_res = env.reset()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L143",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin._initialize_environment",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "env"
    },
    {
      "id": "occ-000301",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 177,
      "end_line": 337,
      "kind": "async_def",
      "name": "asolve",
      "source_line": "    async def asolve(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L177-L337",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000302",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 232,
      "end_line": 232,
      "kind": "await",
      "name": "await",
      "source_line": "            output = await self._call_llm(url, payload)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L232",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin.asolve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000303",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 293,
      "end_line": 293,
      "kind": "await",
      "name": "await",
      "source_line": "                env_response = await self._execute_tool(env, action)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L293",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin.asolve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000304",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 397,
      "end_line": 397,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        res.response = \"\".join([msg.get(\"content\", \"\") for msg in messages if msg[\"role\"] == \"assistant\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L397",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin._build_final_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-000305",
      "file": "examples/tau-bench/trainable_agents.py",
      "line": 397,
      "end_line": 397,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        res.response = \"\".join([msg.get(\"content\", \"\") for msg in messages if msg[\"role\"] == \"assistant\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/tau-bench/trainable_agents.py#L397",
      "snapshot": "source_snapshot/examples/tau-bench/trainable_agents.py.txt",
      "symbol": "TrainableAgentMixin._build_final_result.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000306",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        translated = _translate_messages(body.get(\"messages\") or [], body.get(\"system\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L59",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "AnthropicAdapter._translate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000307",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        translated = _translate_messages(body.get(\"messages\") or [], body.get(\"system\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L59",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "AnthropicAdapter._translate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000308",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 60,
      "end_line": 60,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        tools_schema = _tools_to_chat_tools(body.get(\"tools\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L60",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "AnthropicAdapter._translate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000309",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 71,
      "end_line": 75,
      "kind": "async_def",
      "name": "_respond",
      "source_line": "    async def _respond(self, request, body, reply, in_tok, out_tok, stream) -> web.StreamResponse:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L71-L75",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "AnthropicAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000310",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 74,
      "end_line": 74,
      "kind": "await",
      "name": "await",
      "source_line": "            return await _render_stream(request, blocks, stop_reason, in_tok, out_tok)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L74",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "AnthropicAdapter._respond",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000311",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 89,
      "end_line": 89,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        role, content = m.get(\"role\"), m.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L89",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000312",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 89,
      "end_line": 89,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        role, content = m.get(\"role\"), m.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L89",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000313",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 93,
      "end_line": 93,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if isinstance(b, dict) and b.get(\"type\") == \"tool_result\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L93",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000314",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 94,
      "end_line": 94,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    translated.append({\"role\": \"tool\", \"content\": flatten_content(b.get(\"content\"))})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L94",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000315",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 95,
      "end_line": 95,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                elif isinstance(b, dict) and b.get(\"type\") == \"text\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L95",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000316",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 96,
      "end_line": 96,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    translated.append({\"role\": \"user\", \"content\": b.get(\"text\", \"\")})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L96",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000317",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 105,
      "end_line": 105,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if b.get(\"type\") == \"text\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L105",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000318",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 106,
      "end_line": 106,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    texts.append(b.get(\"text\", \"\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L106",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000319",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 107,
      "end_line": 107,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                elif b.get(\"type\") == \"thinking\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L107",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000320",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 108,
      "end_line": 108,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    thinkings.append(b.get(\"thinking\", \"\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L108",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000321",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 109,
      "end_line": 109,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                elif b.get(\"type\") == \"tool_use\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L109",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000322",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 111,
      "end_line": 111,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    tcs.append(tool_call_dict(b.get(\"name\", \"tool\"), b.get(\"input\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L111",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000323",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 111,
      "end_line": 111,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    tcs.append(tool_call_dict(b.get(\"name\", \"tool\"), b.get(\"input\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L111",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000324",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 112,
      "end_line": 112,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            mo: dict[str, Any] = {\"role\": \"assistant\", \"content\": \"\".join(texts)}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L112",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-000325",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 114,
      "end_line": 114,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "                mo[\"reasoning_content\"] = \"\".join(thinkings)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L114",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-000326",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 136,
      "end_line": 136,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    \"description\": t.get(\"description\", \"\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L136",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000327",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    \"parameters\": t.get(\"input_schema\") or t.get(\"parameters\") or {\"type\": \"object\", \"properties\": {}},",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L137",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000328",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    \"parameters\": t.get(\"input_schema\") or t.get(\"parameters\") or {\"type\": \"object\", \"properties\": {}},",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L137",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000329",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 168,
      "end_line": 168,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        manager_tcs.append(tool_call_dict(tu[\"name\"], tu.get(\"input\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L168",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_build_reply_parts",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tu"
    },
    {
      "id": "occ-000330",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 195,
      "end_line": 195,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    return sid_from_bearer(request) or (request.headers.get(\"X-Api-Key\") or \"\").strip() or \"default\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L195",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_request_session_id",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request.headers"
    },
    {
      "id": "occ-000331",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 203,
      "end_line": 203,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"model\": body.get(\"model\", \"slime-actor\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L203",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_response",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000332",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 211,
      "end_line": 274,
      "kind": "async_def",
      "name": "_render_stream",
      "source_line": "async def _render_stream(request, blocks, stop_reason, in_tok, out_tok) -> web.StreamResponse:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L211-L274",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000333",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 223,
      "end_line": 223,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.prepare(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L223",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000334",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 238,
      "end_line": 238,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.write(f\"event: message_start\\ndata: {json.dumps(ms_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L238",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000335",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 238,
      "end_line": 238,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "    await out.write(f\"event: message_start\\ndata: {json.dumps(ms_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L238",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000336",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 256,
      "end_line": 256,
      "kind": "await",
      "name": "await",
      "source_line": "        await out.write(f\"event: content_block_start\\ndata: {json.dumps(cbs_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L256",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000337",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 256,
      "end_line": 256,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        await out.write(f\"event: content_block_start\\ndata: {json.dumps(cbs_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L256",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000338",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 259,
      "end_line": 259,
      "kind": "await",
      "name": "await",
      "source_line": "        await out.write(f\"event: content_block_delta\\ndata: {json.dumps(cbd_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L259",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000339",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 259,
      "end_line": 259,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        await out.write(f\"event: content_block_delta\\ndata: {json.dumps(cbd_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L259",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000340",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 262,
      "end_line": 262,
      "kind": "await",
      "name": "await",
      "source_line": "        await out.write(f\"event: content_block_stop\\ndata: {json.dumps(cbe_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L262",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000341",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 262,
      "end_line": 262,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        await out.write(f\"event: content_block_stop\\ndata: {json.dumps(cbe_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L262",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000342",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 269,
      "end_line": 269,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.write(f\"event: message_delta\\ndata: {json.dumps(md_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L269",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000343",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 269,
      "end_line": 269,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "    await out.write(f\"event: message_delta\\ndata: {json.dumps(md_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L269",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000344",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 272,
      "end_line": 272,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.write(f\"event: message_stop\\ndata: {json.dumps(mst_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L272",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000345",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 272,
      "end_line": 272,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "    await out.write(f\"event: message_stop\\ndata: {json.dumps(mst_data, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L272",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000346",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 279,
      "end_line": 281,
      "kind": "async_def",
      "name": "_count_tokens",
      "source_line": "async def _count_tokens(request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L279-L281",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000347",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 280,
      "end_line": 280,
      "kind": "await",
      "name": "await",
      "source_line": "    await request.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L280",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_count_tokens",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000348",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 280,
      "end_line": 280,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "    await request.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L280",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_count_tokens",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request"
    },
    {
      "id": "occ-000349",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 301,
      "end_line": 301,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    msgs = body_obj.get(\"messages\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L301",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body_obj"
    },
    {
      "id": "occ-000350",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 305,
      "end_line": 305,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    system_idx = [i for i, m in enumerate(msgs) if isinstance(m, dict) and m.get(\"role\") == \"system\" and i > 0]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L305",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-000351",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 310,
      "end_line": 310,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        c = msg.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L310",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user._promote_to_list",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000352",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 326,
      "end_line": 326,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        wrapped = _wrap(flatten_content(sys_msg.get(\"content\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L326",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sys_msg"
    },
    {
      "id": "occ-000353",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 330,
      "end_line": 330,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if isinstance(cand, dict) and cand.get(\"role\") == \"user\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L330",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cand"
    },
    {
      "id": "occ-000354",
      "file": "slime/agent/adapters/anthropic.py",
      "line": 337,
      "end_line": 337,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if isinstance(cand, dict) and cand.get(\"role\") == \"user\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/anthropic.py#L337",
      "snapshot": "source_snapshot/slime/agent/adapters/anthropic.py.txt",
      "symbol": "_fold_mid_list_system_into_user",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cand"
    },
    {
      "id": "occ-000355",
      "file": "slime/agent/adapters/common.py",
      "line": 15,
      "end_line": 15,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L15",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000356",
      "file": "slime/agent/adapters/common.py",
      "line": 96,
      "end_line": 96,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        t = b.get(\"type\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L96",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000357",
      "file": "slime/agent/adapters/common.py",
      "line": 98,
      "end_line": 98,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parts.append(b.get(\"text\", \"\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L98",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000358",
      "file": "slime/agent/adapters/common.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parts.append(flatten_content(b.get(\"content\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L100",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000359",
      "file": "slime/agent/adapters/common.py",
      "line": 104,
      "end_line": 104,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parts.append(flatten_content(b.get(\"content\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L104",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000360",
      "file": "slime/agent/adapters/common.py",
      "line": 106,
      "end_line": 106,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parts.append(str(b.get(\"text\") or \"\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L106",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-000361",
      "file": "slime/agent/adapters/common.py",
      "line": 107,
      "end_line": 107,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    return \"\\n\".join(p for p in parts if p)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L107",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "flatten_content",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-000362",
      "file": "slime/agent/adapters/common.py",
      "line": 157,
      "end_line": 157,
      "kind": "api_reference",
      "name": "asyncio.Task",
      "source_line": "        self.inflight: dict[str, set[asyncio.Task]] = {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L157",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.__init__",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000363",
      "file": "slime/agent/adapters/common.py",
      "line": 197,
      "end_line": 206,
      "kind": "async_def",
      "name": "_respond",
      "source_line": "    async def _respond(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L197-L206",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000364",
      "file": "slime/agent/adapters/common.py",
      "line": 225,
      "end_line": 243,
      "kind": "async_def",
      "name": "shutdown_session",
      "source_line": "    async def shutdown_session(self, sid: str, *, wait_timeout: float = 5.0) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L225-L243",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000365",
      "file": "slime/agent/adapters/common.py",
      "line": 228,
      "end_line": 228,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "        tasks = [t for t in self.inflight.pop(sid, ()) if not t.done()]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L228",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-000366",
      "file": "slime/agent/adapters/common.py",
      "line": 232,
      "end_line": 237,
      "kind": "async_def",
      "name": "_drain",
      "source_line": "        async def _drain() -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L232-L237",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000367",
      "file": "slime/agent/adapters/common.py",
      "line": 233,
      "end_line": 233,
      "kind": "await",
      "name": "await",
      "source_line": "            _, pending = await asyncio.wait(tasks, timeout=wait_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L233",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session._drain",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000368",
      "file": "slime/agent/adapters/common.py",
      "line": 233,
      "end_line": 233,
      "kind": "api_call",
      "name": "asyncio.wait",
      "source_line": "            _, pending = await asyncio.wait(tasks, timeout=wait_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L233",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session._drain",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000369",
      "file": "slime/agent/adapters/common.py",
      "line": 235,
      "end_line": 235,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "                task.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L235",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session._drain",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-000370",
      "file": "slime/agent/adapters/common.py",
      "line": 237,
      "end_line": 237,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.gather(*pending, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L237",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session._drain",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000371",
      "file": "slime/agent/adapters/common.py",
      "line": 237,
      "end_line": 237,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "                await asyncio.gather(*pending, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L237",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session._drain",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000372",
      "file": "slime/agent/adapters/common.py",
      "line": 239,
      "end_line": 239,
      "kind": "instance_candidate",
      "name": "get_loop",
      "source_line": "        loop = tasks[0].get_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L239",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tasks[0]"
    },
    {
      "id": "occ-000373",
      "file": "slime/agent/adapters/common.py",
      "line": 241,
      "end_line": 241,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.wrap_future(asyncio.run_coroutine_threadsafe(_drain(), loop))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L241",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000374",
      "file": "slime/agent/adapters/common.py",
      "line": 241,
      "end_line": 241,
      "kind": "api_call",
      "name": "asyncio.wrap_future",
      "source_line": "            await asyncio.wrap_future(asyncio.run_coroutine_threadsafe(_drain(), loop))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L241",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000375",
      "file": "slime/agent/adapters/common.py",
      "line": 241,
      "end_line": 241,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "            await asyncio.wrap_future(asyncio.run_coroutine_threadsafe(_drain(), loop))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L241",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000376",
      "file": "slime/agent/adapters/common.py",
      "line": 243,
      "end_line": 243,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "            self.logger.exception(\"[%s] sid=%s shutdown drain failed\", self.log_prefix, sid)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L243",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.shutdown_session",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.logger"
    },
    {
      "id": "occ-000377",
      "file": "slime/agent/adapters/common.py",
      "line": 245,
      "end_line": 276,
      "kind": "async_def",
      "name": "finish_session",
      "source_line": "    async def finish_session(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L245-L276",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000378",
      "file": "slime/agent/adapters/common.py",
      "line": 261,
      "end_line": 261,
      "kind": "await",
      "name": "await",
      "source_line": "        await self.shutdown_session(sid, wait_timeout=wait_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L261",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.finish_session",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000379",
      "file": "slime/agent/adapters/common.py",
      "line": 278,
      "end_line": 281,
      "kind": "async_def",
      "name": "drop_session",
      "source_line": "    async def drop_session(self, sid: str, *, wait_timeout: float = 5.0) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L278-L281",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000380",
      "file": "slime/agent/adapters/common.py",
      "line": 279,
      "end_line": 279,
      "kind": "await",
      "name": "await",
      "source_line": "        await self.shutdown_session(sid, wait_timeout=wait_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L279",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter.drop_session",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000381",
      "file": "slime/agent/adapters/common.py",
      "line": 293,
      "end_line": 293,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        prior = self._sid_turn_count.get(sid, 0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L293",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._check_turn_cap",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sid_turn_count"
    },
    {
      "id": "occ-000382",
      "file": "slime/agent/adapters/common.py",
      "line": 316,
      "end_line": 316,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "            self.logger.exception(\"debug_callback failed (sid=%s)\", sid)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L316",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_debug_callback",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.logger"
    },
    {
      "id": "occ-000383",
      "file": "slime/agent/adapters/common.py",
      "line": 318,
      "end_line": 393,
      "kind": "async_def",
      "name": "_run_turn",
      "source_line": "    async def _run_turn(self, request: web.Request) -> web.StreamResponse:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L318-L393",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000384",
      "file": "slime/agent/adapters/common.py",
      "line": 325,
      "end_line": 325,
      "kind": "await",
      "name": "await",
      "source_line": "        body = await request.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L325",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000385",
      "file": "slime/agent/adapters/common.py",
      "line": 337,
      "end_line": 337,
      "kind": "api_call",
      "name": "asyncio.current_task",
      "source_line": "        task = asyncio.current_task()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L337",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000386",
      "file": "slime/agent/adapters/common.py",
      "line": 344,
      "end_line": 344,
      "kind": "await",
      "name": "await",
      "source_line": "            turn = await call_sglang_generate(prompt_ids, s, body, adapter=self, session_id=sid)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L344",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000387",
      "file": "slime/agent/adapters/common.py",
      "line": 357,
      "end_line": 357,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            stream = body.get(\"stream\") is True or \"text/event-stream\" in request.headers.get(\"Accept\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L357",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000388",
      "file": "slime/agent/adapters/common.py",
      "line": 357,
      "end_line": 357,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            stream = body.get(\"stream\") is True or \"text/event-stream\" in request.headers.get(\"Accept\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L357",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request.headers"
    },
    {
      "id": "occ-000389",
      "file": "slime/agent/adapters/common.py",
      "line": 363,
      "end_line": 363,
      "kind": "await",
      "name": "await",
      "source_line": "                response = await self._respond(request, body, reply, in_tok, out_tok, stream)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L363",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000390",
      "file": "slime/agent/adapters/common.py",
      "line": 364,
      "end_line": 364,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "            except (ConnectionResetError, asyncio.CancelledError) as e:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L364",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000391",
      "file": "slime/agent/adapters/common.py",
      "line": 372,
      "end_line": 372,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "                if isinstance(e, asyncio.CancelledError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L372",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000392",
      "file": "slime/agent/adapters/common.py",
      "line": 393,
      "end_line": 393,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            self.inflight.get(sid, set()).discard(task)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L393",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "BaseAdapter._run_turn",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.inflight"
    },
    {
      "id": "occ-000393",
      "file": "slime/agent/adapters/common.py",
      "line": 398,
      "end_line": 398,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    auth = request.headers.get(\"Authorization\", \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L398",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "sid_from_bearer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request.headers"
    },
    {
      "id": "occ-000394",
      "file": "slime/agent/adapters/common.py",
      "line": 408,
      "end_line": 408,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    metadata = body.get(\"metadata\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L408",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "sid_from_body",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000395",
      "file": "slime/agent/adapters/common.py",
      "line": 409,
      "end_line": 409,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if isinstance(metadata, dict) and metadata.get(\"session_id\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L409",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "sid_from_body",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-000396",
      "file": "slime/agent/adapters/common.py",
      "line": 411,
      "end_line": 411,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if body.get(\"user\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L411",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "sid_from_body",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000397",
      "file": "slime/agent/adapters/common.py",
      "line": 426,
      "end_line": 426,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if body.get(key) is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L426",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_sampling_params",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000398",
      "file": "slime/agent/adapters/common.py",
      "line": 427,
      "end_line": 427,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sp[\"max_new_tokens\"] = min(int(sp.get(\"max_new_tokens\", body[key])), int(body[key]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L427",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_sampling_params",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sp"
    },
    {
      "id": "occ-000399",
      "file": "slime/agent/adapters/common.py",
      "line": 435,
      "end_line": 435,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if body.get(key):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L435",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_sampling_params",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000400",
      "file": "slime/agent/adapters/common.py",
      "line": 442,
      "end_line": 514,
      "kind": "async_def",
      "name": "call_sglang_generate",
      "source_line": "async def call_sglang_generate(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L442-L514",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000401",
      "file": "slime/agent/adapters/common.py",
      "line": 468,
      "end_line": 468,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        sp[\"max_new_tokens\"] = min(int(sp.get(\"max_new_tokens\", remaining_context)), remaining_context)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L468",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sp"
    },
    {
      "id": "occ-000402",
      "file": "slime/agent/adapters/common.py",
      "line": 475,
      "end_line": 496,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with aiohttp.ClientSession(timeout=timeout) as sess, sess.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L475-L496",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000403",
      "file": "slime/agent/adapters/common.py",
      "line": 486,
      "end_line": 486,
      "kind": "await",
      "name": "await",
      "source_line": "                text = await r.text()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L486",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000404",
      "file": "slime/agent/adapters/common.py",
      "line": 496,
      "end_line": 496,
      "kind": "await",
      "name": "await",
      "source_line": "            data = await r.json(content_type=None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L496",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000405",
      "file": "slime/agent/adapters/common.py",
      "line": 497,
      "end_line": 497,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        meta = data.get(\"meta_info\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L497",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data"
    },
    {
      "id": "occ-000406",
      "file": "slime/agent/adapters/common.py",
      "line": 498,
      "end_line": 498,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        output_token_logprobs = meta.get(\"output_token_logprobs\") or []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L498",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta"
    },
    {
      "id": "occ-000407",
      "file": "slime/agent/adapters/common.py",
      "line": 501,
      "end_line": 501,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        finish = (meta.get(\"finish_reason\") or {}).get(\"type\", \"stop\") or \"stop\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L501",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta.get(\"finish_reason\") or {}"
    },
    {
      "id": "occ-000408",
      "file": "slime/agent/adapters/common.py",
      "line": 501,
      "end_line": 501,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        finish = (meta.get(\"finish_reason\") or {}).get(\"type\", \"stop\") or \"stop\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L501",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta"
    },
    {
      "id": "occ-000409",
      "file": "slime/agent/adapters/common.py",
      "line": 502,
      "end_line": 502,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "    except (asyncio.CancelledError, aiohttp.ClientError, asyncio.TimeoutError) as e:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L502",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000410",
      "file": "slime/agent/adapters/common.py",
      "line": 502,
      "end_line": 502,
      "kind": "api_reference",
      "name": "asyncio.TimeoutError",
      "source_line": "    except (asyncio.CancelledError, aiohttp.ClientError, asyncio.TimeoutError) as e:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L502",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000411",
      "file": "slime/agent/adapters/common.py",
      "line": 506,
      "end_line": 506,
      "kind": "await",
      "name": "await",
      "source_line": "        await _abort_sglang_request(sglang_url, rid, logger)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L506",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "call_sglang_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000412",
      "file": "slime/agent/adapters/common.py",
      "line": 517,
      "end_line": 554,
      "kind": "async_def",
      "name": "_abort_sglang_request",
      "source_line": "async def _abort_sglang_request(sglang_url: str, rid: str, logger: logging.Logger) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L517-L554",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000413",
      "file": "slime/agent/adapters/common.py",
      "line": 521,
      "end_line": 547,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with aiohttp.ClientSession(timeout=timeout) as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L521-L547",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000414",
      "file": "slime/agent/adapters/common.py",
      "line": 523,
      "end_line": 528,
      "kind": "async_def",
      "name": "abort_worker",
      "source_line": "            async def abort_worker(url: str) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L523-L528",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000415",
      "file": "slime/agent/adapters/common.py",
      "line": 525,
      "end_line": 526,
      "kind": "async_with",
      "name": "async with",
      "source_line": "                    async with session.post(f\"{url}/abort_request\", json={\"rid\": rid}):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L525-L526",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request.abort_worker",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000416",
      "file": "slime/agent/adapters/common.py",
      "line": 530,
      "end_line": 535,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with session.get(f\"{sglang_url}/workers\") as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L530-L535",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000417",
      "file": "slime/agent/adapters/common.py",
      "line": 530,
      "end_line": 530,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            async with session.get(f\"{sglang_url}/workers\") as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L530",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "session"
    },
    {
      "id": "occ-000418",
      "file": "slime/agent/adapters/common.py",
      "line": 532,
      "end_line": 532,
      "kind": "await",
      "name": "await",
      "source_line": "                    await abort_worker(sglang_url)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L532",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000419",
      "file": "slime/agent/adapters/common.py",
      "line": 535,
      "end_line": 535,
      "kind": "await",
      "name": "await",
      "source_line": "                payload = await response.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L535",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000420",
      "file": "slime/agent/adapters/common.py",
      "line": 543,
      "end_line": 543,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                for worker in payload.get(\"workers\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L543",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000421",
      "file": "slime/agent/adapters/common.py",
      "line": 544,
      "end_line": 544,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if isinstance(worker, dict) and isinstance(worker.get(\"url\"), str) and worker[\"url\"]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L544",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker"
    },
    {
      "id": "occ-000422",
      "file": "slime/agent/adapters/common.py",
      "line": 547,
      "end_line": 547,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(*(abort_worker(url) for url in worker_urls))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L547",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000423",
      "file": "slime/agent/adapters/common.py",
      "line": 547,
      "end_line": 547,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(*(abort_worker(url) for url in worker_urls))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L547",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "_abort_sglang_request",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000424",
      "file": "slime/agent/adapters/common.py",
      "line": 557,
      "end_line": 559,
      "kind": "async_def",
      "name": "_health",
      "source_line": "async def _health(request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/common.py#L557-L559",
      "snapshot": "source_snapshot/slime/agent/adapters/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000425",
      "file": "slime/agent/adapters/openai.py",
      "line": 54,
      "end_line": 54,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        messages = body.get(\"messages\") or []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L54",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "OpenAIAdapter._translate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000426",
      "file": "slime/agent/adapters/openai.py",
      "line": 58,
      "end_line": 58,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        tools_schema = _tools_to_chat_tools(body.get(\"tools\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L58",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "OpenAIAdapter._translate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000427",
      "file": "slime/agent/adapters/openai.py",
      "line": 69,
      "end_line": 73,
      "kind": "async_def",
      "name": "_respond",
      "source_line": "    async def _respond(self, request, body, reply, in_tok, out_tok, stream) -> web.StreamResponse:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L69-L73",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "OpenAIAdapter",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000428",
      "file": "slime/agent/adapters/openai.py",
      "line": 72,
      "end_line": 72,
      "kind": "await",
      "name": "await",
      "source_line": "            return await _render_stream(request, body, wire_message, wire_finish, in_tok, out_tok)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L72",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "OpenAIAdapter._respond",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000429",
      "file": "slime/agent/adapters/openai.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        role = msg.get(\"role\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L120",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000430",
      "file": "slime/agent/adapters/openai.py",
      "line": 121,
      "end_line": 121,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        content = msg.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L121",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000431",
      "file": "slime/agent/adapters/openai.py",
      "line": 135,
      "end_line": 135,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            reasoning = msg.get(\"reasoning_content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L135",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000432",
      "file": "slime/agent/adapters/openai.py",
      "line": 138,
      "end_line": 138,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            tool_calls = msg.get(\"tool_calls\") or []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L138",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-000433",
      "file": "slime/agent/adapters/openai.py",
      "line": 143,
      "end_line": 143,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                function = call.get(\"function\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L143",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "call"
    },
    {
      "id": "occ-000434",
      "file": "slime/agent/adapters/openai.py",
      "line": 144,
      "end_line": 144,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                name = function.get(\"name\") or call.get(\"name\") or \"tool\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L144",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "function"
    },
    {
      "id": "occ-000435",
      "file": "slime/agent/adapters/openai.py",
      "line": 144,
      "end_line": 144,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                name = function.get(\"name\") or call.get(\"name\") or \"tool\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L144",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "call"
    },
    {
      "id": "occ-000436",
      "file": "slime/agent/adapters/openai.py",
      "line": 145,
      "end_line": 145,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                arguments = function.get(\"arguments\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L145",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "function"
    },
    {
      "id": "occ-000437",
      "file": "slime/agent/adapters/openai.py",
      "line": 147,
      "end_line": 147,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    arguments = call.get(\"arguments\", {})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L147",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_translate_messages",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "call"
    },
    {
      "id": "occ-000438",
      "file": "slime/agent/adapters/openai.py",
      "line": 174,
      "end_line": 174,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if tool.get(\"type\") and tool.get(\"type\") != \"function\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L174",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000439",
      "file": "slime/agent/adapters/openai.py",
      "line": 174,
      "end_line": 174,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if tool.get(\"type\") and tool.get(\"type\") != \"function\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L174",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000440",
      "file": "slime/agent/adapters/openai.py",
      "line": 176,
      "end_line": 176,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        function = tool.get(\"function\") if isinstance(tool.get(\"function\"), dict) else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L176",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000441",
      "file": "slime/agent/adapters/openai.py",
      "line": 176,
      "end_line": 176,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        function = tool.get(\"function\") if isinstance(tool.get(\"function\"), dict) else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L176",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000442",
      "file": "slime/agent/adapters/openai.py",
      "line": 178,
      "end_line": 178,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            name = function.get(\"name\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L178",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "function"
    },
    {
      "id": "occ-000443",
      "file": "slime/agent/adapters/openai.py",
      "line": 186,
      "end_line": 186,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        \"description\": function.get(\"description\", \"\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L186",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "function"
    },
    {
      "id": "occ-000444",
      "file": "slime/agent/adapters/openai.py",
      "line": 187,
      "end_line": 187,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        \"parameters\": function.get(\"parameters\") or {\"type\": \"object\", \"properties\": {}},",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L187",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "function"
    },
    {
      "id": "occ-000445",
      "file": "slime/agent/adapters/openai.py",
      "line": 192,
      "end_line": 192,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            name = tool.get(\"name\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L192",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000446",
      "file": "slime/agent/adapters/openai.py",
      "line": 200,
      "end_line": 200,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        \"description\": tool.get(\"description\", \"\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L200",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000447",
      "file": "slime/agent/adapters/openai.py",
      "line": 201,
      "end_line": 201,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        \"parameters\": tool.get(\"parameters\") or {\"type\": \"object\", \"properties\": {}},",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L201",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_tools_to_chat_tools",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tool"
    },
    {
      "id": "occ-000448",
      "file": "slime/agent/adapters/openai.py",
      "line": 225,
      "end_line": 225,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        name = tu.get(\"name\", \"tool\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L225",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_build_reply_parts",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tu"
    },
    {
      "id": "occ-000449",
      "file": "slime/agent/adapters/openai.py",
      "line": 226,
      "end_line": 226,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        args_dict = tu.get(\"input\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L226",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_build_reply_parts",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tu"
    },
    {
      "id": "occ-000450",
      "file": "slime/agent/adapters/openai.py",
      "line": 312,
      "end_line": 312,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"model\": body.get(\"model\", \"slime-actor\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L312",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_response",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000451",
      "file": "slime/agent/adapters/openai.py",
      "line": 324,
      "end_line": 378,
      "kind": "async_def",
      "name": "_render_stream",
      "source_line": "async def _render_stream(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L324-L378",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000452",
      "file": "slime/agent/adapters/openai.py",
      "line": 347,
      "end_line": 347,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.prepare(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L347",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000453",
      "file": "slime/agent/adapters/openai.py",
      "line": 351,
      "end_line": 361,
      "kind": "async_def",
      "name": "emit",
      "source_line": "    async def emit(delta: dict[str, Any], finish_reason: str | None = None, usage: dict | None = None) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L351-L361",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000454",
      "file": "slime/agent/adapters/openai.py",
      "line": 356,
      "end_line": 356,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            \"model\": body.get(\"model\", \"slime-actor\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L356",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream.emit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "body"
    },
    {
      "id": "occ-000455",
      "file": "slime/agent/adapters/openai.py",
      "line": 361,
      "end_line": 361,
      "kind": "await",
      "name": "await",
      "source_line": "        await out.write(f\"data: {json.dumps(chunk, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L361",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream.emit",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000456",
      "file": "slime/agent/adapters/openai.py",
      "line": 361,
      "end_line": 361,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        await out.write(f\"data: {json.dumps(chunk, ensure_ascii=False)}\\n\\n\".encode())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L361",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream.emit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000457",
      "file": "slime/agent/adapters/openai.py",
      "line": 363,
      "end_line": 363,
      "kind": "await",
      "name": "await",
      "source_line": "    await emit({\"role\": \"assistant\"})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L363",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000458",
      "file": "slime/agent/adapters/openai.py",
      "line": 364,
      "end_line": 364,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    reasoning = wire_message.get(\"reasoning_content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L364",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "wire_message"
    },
    {
      "id": "occ-000459",
      "file": "slime/agent/adapters/openai.py",
      "line": 366,
      "end_line": 366,
      "kind": "await",
      "name": "await",
      "source_line": "        await emit({\"reasoning_content\": reasoning})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L366",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000460",
      "file": "slime/agent/adapters/openai.py",
      "line": 367,
      "end_line": 367,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    content = wire_message.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L367",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "wire_message"
    },
    {
      "id": "occ-000461",
      "file": "slime/agent/adapters/openai.py",
      "line": 369,
      "end_line": 369,
      "kind": "await",
      "name": "await",
      "source_line": "        await emit({\"content\": content})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L369",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000462",
      "file": "slime/agent/adapters/openai.py",
      "line": 373,
      "end_line": 373,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    tool_calls = wire_message.get(\"tool_calls\") or []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L373",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "wire_message"
    },
    {
      "id": "occ-000463",
      "file": "slime/agent/adapters/openai.py",
      "line": 375,
      "end_line": 375,
      "kind": "await",
      "name": "await",
      "source_line": "        await emit({\"tool_calls\": [{**call, \"index\": idx} for idx, call in enumerate(tool_calls)]})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L375",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000464",
      "file": "slime/agent/adapters/openai.py",
      "line": 376,
      "end_line": 376,
      "kind": "await",
      "name": "await",
      "source_line": "    await emit({}, finish_reason=wire_finish, usage=_usage(in_tok, out_tok))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L376",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000465",
      "file": "slime/agent/adapters/openai.py",
      "line": 377,
      "end_line": 377,
      "kind": "await",
      "name": "await",
      "source_line": "    await out.write(b\"data: [DONE]\\n\\n\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L377",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000466",
      "file": "slime/agent/adapters/openai.py",
      "line": 377,
      "end_line": 377,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "    await out.write(b\"data: [DONE]\\n\\n\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/adapters/openai.py#L377",
      "snapshot": "source_snapshot/slime/agent/adapters/openai.py.txt",
      "symbol": "_render_stream",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "out"
    },
    {
      "id": "occ-000467",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L5",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000468",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L6",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000469",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 29,
      "end_line": 29,
      "kind": "api_reference",
      "name": "threading.Thread",
      "source_line": "    thread: threading.Thread",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L29",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000470",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 30,
      "end_line": 30,
      "kind": "api_reference",
      "name": "asyncio.AbstractEventLoop",
      "source_line": "    loop: asyncio.AbstractEventLoop",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L30",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000471",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 34,
      "end_line": 35,
      "kind": "async_def",
      "name": "_shutdown",
      "source_line": "        async def _shutdown() -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L34-L35",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000472",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 35,
      "end_line": 35,
      "kind": "await",
      "name": "await",
      "source_line": "            await self.runner.cleanup()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L35",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop._shutdown",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000473",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 38,
      "end_line": 38,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "            fut = asyncio.run_coroutine_threadsafe(_shutdown(), self.loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L38",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000474",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 39,
      "end_line": 39,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            fut.result(timeout=10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L39",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "fut"
    },
    {
      "id": "occ-000475",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 42,
      "end_line": 42,
      "kind": "instance_candidate",
      "name": "call_soon_threadsafe",
      "source_line": "        self.loop.call_soon_threadsafe(self.loop.stop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L42",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.loop"
    },
    {
      "id": "occ-000476",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 43,
      "end_line": 43,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        self.thread.join(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L43",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "AppHandle.stop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.thread"
    },
    {
      "id": "occ-000477",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 61,
      "end_line": 61,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    started = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L61",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000478",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 66,
      "end_line": 66,
      "kind": "api_call",
      "name": "asyncio.new_event_loop",
      "source_line": "        loop = asyncio.new_event_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L66",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000479",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 67,
      "end_line": 67,
      "kind": "api_call",
      "name": "asyncio.set_event_loop",
      "source_line": "        asyncio.set_event_loop(loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L67",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000480",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 70,
      "end_line": 70,
      "kind": "instance_candidate",
      "name": "run_until_complete",
      "source_line": "            loop.run_until_complete(runner.setup())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L70",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-000481",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 72,
      "end_line": 72,
      "kind": "instance_candidate",
      "name": "run_until_complete",
      "source_line": "            loop.run_until_complete(site.start())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L72",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-000482",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 72,
      "end_line": 72,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            loop.run_until_complete(site.start())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L72",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "site"
    },
    {
      "id": "occ-000483",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 80,
      "end_line": 80,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            started.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L80",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "started"
    },
    {
      "id": "occ-000484",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 81,
      "end_line": 81,
      "kind": "instance_candidate",
      "name": "run_forever",
      "source_line": "            loop.run_forever()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L81",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-000485",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 84,
      "end_line": 84,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            started.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L84",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread._run",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "started"
    },
    {
      "id": "occ-000486",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 87,
      "end_line": 87,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "    thread = threading.Thread(target=_run, name=thread_name, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L87",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000487",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 88,
      "end_line": 88,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L88",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "thread"
    },
    {
      "id": "occ-000488",
      "file": "slime/agent/aiohttp_threaded.py",
      "line": 89,
      "end_line": 89,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "    started.wait(timeout=start_timeout_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/aiohttp_threaded.py#L89",
      "snapshot": "source_snapshot/slime/agent/aiohttp_threaded.py.txt",
      "symbol": "run_app_in_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "started"
    },
    {
      "id": "occ-000489",
      "file": "slime/agent/harness/claude_code.py",
      "line": 36,
      "end_line": 42,
      "kind": "async_def",
      "name": "install_cli",
      "source_line": "    async def install_cli(self, sb: Sandbox) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L36-L42",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000490",
      "file": "slime/agent/harness/claude_code.py",
      "line": 37,
      "end_line": 42,
      "kind": "await",
      "name": "await",
      "source_line": "        await install_npm_cli(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L37-L42",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness.install_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000491",
      "file": "slime/agent/harness/claude_code.py",
      "line": 44,
      "end_line": 55,
      "kind": "async_def",
      "name": "write_config",
      "source_line": "    async def write_config(self, sb: Sandbox, ctx: HarnessContext) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L44-L55",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000492",
      "file": "slime/agent/harness/claude_code.py",
      "line": 47,
      "end_line": 55,
      "kind": "await",
      "name": "await",
      "source_line": "        await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L47-L55",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness.write_config",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000493",
      "file": "slime/agent/harness/claude_code.py",
      "line": 57,
      "end_line": 71,
      "kind": "async_def",
      "name": "launch_and_wait",
      "source_line": "    async def launch_and_wait(self, sb: Sandbox, ctx: HarnessContext, prompt: str, time_budget_sec: int) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L57-L71",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000494",
      "file": "slime/agent/harness/claude_code.py",
      "line": 71,
      "end_line": 71,
      "kind": "await",
      "name": "await",
      "source_line": "        return await run_agent(sb, workdir=ctx.workdir, start_cmd=cmd, env=env, time_budget_sec=time_budget_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/claude_code.py#L71",
      "snapshot": "source_snapshot/slime/agent/harness/claude_code.py.txt",
      "symbol": "ClaudeCodeHarness.launch_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000495",
      "file": "slime/agent/harness/codex.py",
      "line": 48,
      "end_line": 54,
      "kind": "async_def",
      "name": "install_cli",
      "source_line": "    async def install_cli(self, sb: Sandbox) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L48-L54",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000496",
      "file": "slime/agent/harness/codex.py",
      "line": 49,
      "end_line": 54,
      "kind": "await",
      "name": "await",
      "source_line": "        await install_npm_cli(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L49-L54",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness.install_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000497",
      "file": "slime/agent/harness/codex.py",
      "line": 56,
      "end_line": 67,
      "kind": "async_def",
      "name": "write_config",
      "source_line": "    async def write_config(self, sb: Sandbox, ctx: HarnessContext) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L56-L67",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000498",
      "file": "slime/agent/harness/codex.py",
      "line": 59,
      "end_line": 67,
      "kind": "await",
      "name": "await",
      "source_line": "        await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L59-L67",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness.write_config",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000499",
      "file": "slime/agent/harness/codex.py",
      "line": 69,
      "end_line": 86,
      "kind": "async_def",
      "name": "launch_and_wait",
      "source_line": "    async def launch_and_wait(self, sb: Sandbox, ctx: HarnessContext, prompt: str, time_budget_sec: int) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L69-L86",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000500",
      "file": "slime/agent/harness/codex.py",
      "line": 86,
      "end_line": 86,
      "kind": "await",
      "name": "await",
      "source_line": "        return await run_agent(sb, workdir=ctx.workdir, start_cmd=cmd, env=env, time_budget_sec=time_budget_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/codex.py#L86",
      "snapshot": "source_snapshot/slime/agent/harness/codex.py.txt",
      "symbol": "CodexHarness.launch_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000501",
      "file": "slime/agent/harness/common.py",
      "line": 18,
      "end_line": 18,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L18",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000502",
      "file": "slime/agent/harness/common.py",
      "line": 64,
      "end_line": 66,
      "kind": "async_def",
      "name": "install_cli",
      "source_line": "    async def install_cli(self, sb: Sandbox) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L64-L66",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000503",
      "file": "slime/agent/harness/common.py",
      "line": 69,
      "end_line": 70,
      "kind": "async_def",
      "name": "write_config",
      "source_line": "    async def write_config(self, sb: Sandbox, ctx: HarnessContext) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L69-L70",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000504",
      "file": "slime/agent/harness/common.py",
      "line": 73,
      "end_line": 79,
      "kind": "async_def",
      "name": "launch_and_wait",
      "source_line": "    async def launch_and_wait(self, sb: Sandbox, ctx: HarnessContext, prompt: str, time_budget_sec: int) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L73-L79",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000505",
      "file": "slime/agent/harness/common.py",
      "line": 81,
      "end_line": 104,
      "kind": "async_def",
      "name": "run",
      "source_line": "    async def run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L81-L104",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000506",
      "file": "slime/agent/harness/common.py",
      "line": 97,
      "end_line": 97,
      "kind": "await",
      "name": "await",
      "source_line": "        await _sandbox.ensure_agent_user(sb, workdir)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L97",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000507",
      "file": "slime/agent/harness/common.py",
      "line": 103,
      "end_line": 103,
      "kind": "await",
      "name": "await",
      "source_line": "        await self.write_config(sb, ctx)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L103",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000508",
      "file": "slime/agent/harness/common.py",
      "line": 104,
      "end_line": 104,
      "kind": "await",
      "name": "await",
      "source_line": "        return await self.launch_and_wait(sb, ctx, prompt, time_budget_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L104",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "BaseHarness.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000509",
      "file": "slime/agent/harness/common.py",
      "line": 107,
      "end_line": 122,
      "kind": "async_def",
      "name": "run_agent",
      "source_line": "async def run_agent(sb: Sandbox, *, workdir: str, start_cmd: str, env: dict[str, str], time_budget_sec: int) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L107-L122",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000510",
      "file": "slime/agent/harness/common.py",
      "line": 110,
      "end_line": 110,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(f\"mkdir -p {meta_dir} && chown agent:agent {meta_dir}\", user=\"root\", check=True, timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L110",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "run_agent",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000511",
      "file": "slime/agent/harness/common.py",
      "line": 111,
      "end_line": 121,
      "kind": "await",
      "name": "await",
      "source_line": "    exit_code, _ = await exec_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L111-L121",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "run_agent",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000512",
      "file": "slime/agent/harness/common.py",
      "line": 125,
      "end_line": 151,
      "kind": "async_def",
      "name": "install_npm_cli",
      "source_line": "async def install_npm_cli(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L125-L151",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000513",
      "file": "slime/agent/harness/common.py",
      "line": 135,
      "end_line": 135,
      "kind": "await",
      "name": "await",
      "source_line": "    await install_node22(sb, node_runtime)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L135",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_npm_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000514",
      "file": "slime/agent/harness/common.py",
      "line": 137,
      "end_line": 137,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(\"/tmp/harness-cli.tgz\", npm_package)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L137",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_npm_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000515",
      "file": "slime/agent/harness/common.py",
      "line": 142,
      "end_line": 144,
      "kind": "await",
      "name": "await",
      "source_line": "        exit_code, last_log = await exec_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L142-L144",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_npm_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000516",
      "file": "slime/agent/harness/common.py",
      "line": 148,
      "end_line": 148,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(NPM_INSTALL_BACKOFF_SEC * (attempt + 1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L148",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_npm_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000517",
      "file": "slime/agent/harness/common.py",
      "line": 148,
      "end_line": 148,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(NPM_INSTALL_BACKOFF_SEC * (attempt + 1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L148",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_npm_cli",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000518",
      "file": "slime/agent/harness/common.py",
      "line": 154,
      "end_line": 178,
      "kind": "async_def",
      "name": "install_node22",
      "source_line": "async def install_node22(sb: Sandbox, host_tarball: Path) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L154-L178",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000519",
      "file": "slime/agent/harness/common.py",
      "line": 167,
      "end_line": 167,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(\"/tmp/node22.tar\", host_tarball)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L167",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_node22",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000520",
      "file": "slime/agent/harness/common.py",
      "line": 168,
      "end_line": 178,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/harness/common.py#L168-L178",
      "snapshot": "source_snapshot/slime/agent/harness/common.py.txt",
      "symbol": "install_node22",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000521",
      "file": "slime/agent/sandbox.py",
      "line": 11,
      "end_line": 11,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L11",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000522",
      "file": "slime/agent/sandbox.py",
      "line": 42,
      "end_line": 42,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self) -> Sandbox: ...",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L42",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "Sandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000523",
      "file": "slime/agent/sandbox.py",
      "line": 44,
      "end_line": 44,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, exc_type, exc, tb) -> None: ...",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L44",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "Sandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000524",
      "file": "slime/agent/sandbox.py",
      "line": 46,
      "end_line": 55,
      "kind": "async_def",
      "name": "exec",
      "source_line": "    async def exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L46-L55",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "Sandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000525",
      "file": "slime/agent/sandbox.py",
      "line": 57,
      "end_line": 57,
      "kind": "async_def",
      "name": "write_file",
      "source_line": "    async def write_file(self, sandbox_path: str, content: FileContent, *, user: str = \"root\") -> None: ...",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L57",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "Sandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000526",
      "file": "slime/agent/sandbox.py",
      "line": 59,
      "end_line": 59,
      "kind": "async_def",
      "name": "read_file",
      "source_line": "    async def read_file(self, sandbox_path: str, *, user: str = \"root\") -> str: ...",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L59",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "Sandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000527",
      "file": "slime/agent/sandbox.py",
      "line": 65,
      "end_line": 79,
      "kind": "async_def",
      "name": "_await_done_marker",
      "source_line": "async def _await_done_marker(sb: Sandbox, done_file: str, *, user: str, time_budget_sec: int) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L65-L79",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000528",
      "file": "slime/agent/sandbox.py",
      "line": 75,
      "end_line": 75,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L75",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "_await_done_marker",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000529",
      "file": "slime/agent/sandbox.py",
      "line": 75,
      "end_line": 75,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L75",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "_await_done_marker",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000530",
      "file": "slime/agent/sandbox.py",
      "line": 76,
      "end_line": 76,
      "kind": "await",
      "name": "await",
      "source_line": "        ec, out, _ = await sb.exec(f\"test -f {done_file} && cat {done_file}\", user=user, timeout=15, check=False)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L76",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "_await_done_marker",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000531",
      "file": "slime/agent/sandbox.py",
      "line": 82,
      "end_line": 145,
      "kind": "async_def",
      "name": "exec_and_wait",
      "source_line": "async def exec_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L82-L145",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000532",
      "file": "slime/agent/sandbox.py",
      "line": 113,
      "end_line": 113,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.write_file(launcher, launcher_body, user=user)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L113",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000533",
      "file": "slime/agent/sandbox.py",
      "line": 122,
      "end_line": 128,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L122-L128",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000534",
      "file": "slime/agent/sandbox.py",
      "line": 129,
      "end_line": 138,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L129-L138",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000535",
      "file": "slime/agent/sandbox.py",
      "line": 139,
      "end_line": 139,
      "kind": "await",
      "name": "await",
      "source_line": "    exit_code = await _await_done_marker(sb, done_file, user=user, time_budget_sec=time_budget_sec)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L139",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000536",
      "file": "slime/agent/sandbox.py",
      "line": 143,
      "end_line": 143,
      "kind": "await",
      "name": "await",
      "source_line": "        return exit_code, await sb.read_file(out_file, user=user)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L143",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000537",
      "file": "slime/agent/sandbox.py",
      "line": 144,
      "end_line": 144,
      "kind": "await",
      "name": "await",
      "source_line": "    _, tail, _ = await sb.exec(f\"tail -c 512 {out_file} 2>/dev/null\", user=user, timeout=15, check=False)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L144",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "exec_and_wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000538",
      "file": "slime/agent/sandbox.py",
      "line": 237,
      "end_line": 271,
      "kind": "async_def",
      "name": "_rpc_retry",
      "source_line": "    async def _rpc_retry(self, op_name: str, coro_factory, *, idempotent: bool = True):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L237-L271",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000539",
      "file": "slime/agent/sandbox.py",
      "line": 249,
      "end_line": 249,
      "kind": "await",
      "name": "await",
      "source_line": "                return await coro_factory()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L249",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox._rpc_retry",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000540",
      "file": "slime/agent/sandbox.py",
      "line": 257,
      "end_line": 257,
      "kind": "await",
      "name": "await",
      "source_line": "                    await self._reset_conn_pool()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L257",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox._rpc_retry",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000541",
      "file": "slime/agent/sandbox.py",
      "line": 269,
      "end_line": 269,
      "kind": "await",
      "name": "await",
      "source_line": "                    await asyncio.sleep(backoff)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L269",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox._rpc_retry",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000542",
      "file": "slime/agent/sandbox.py",
      "line": 269,
      "end_line": 269,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                    await asyncio.sleep(backoff)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L269",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox._rpc_retry",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000543",
      "file": "slime/agent/sandbox.py",
      "line": 273,
      "end_line": 279,
      "kind": "async_def",
      "name": "_reset_conn_pool",
      "source_line": "    async def _reset_conn_pool(self) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L273-L279",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000544",
      "file": "slime/agent/sandbox.py",
      "line": 277,
      "end_line": 277,
      "kind": "await",
      "name": "await",
      "source_line": "            await pool.aclose()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L277",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox._reset_conn_pool",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000545",
      "file": "slime/agent/sandbox.py",
      "line": 281,
      "end_line": 300,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self) -> E2BSandbox:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L281-L300",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000546",
      "file": "slime/agent/sandbox.py",
      "line": 298,
      "end_line": 298,
      "kind": "await",
      "name": "await",
      "source_line": "        self._sb = await self._rpc_retry(\"create\", lambda: AsyncSandbox.create(timeout=self.timeout, metadata=md))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L298",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.__aenter__",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000547",
      "file": "slime/agent/sandbox.py",
      "line": 302,
      "end_line": 307,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, exc_type, exc, tb) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L302-L307",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000548",
      "file": "slime/agent/sandbox.py",
      "line": 305,
      "end_line": 305,
      "kind": "await",
      "name": "await",
      "source_line": "                await self._sb.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L305",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.__aexit__",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000549",
      "file": "slime/agent/sandbox.py",
      "line": 305,
      "end_line": 305,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "                await self._sb.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L305",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.__aexit__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sb"
    },
    {
      "id": "occ-000550",
      "file": "slime/agent/sandbox.py",
      "line": 309,
      "end_line": 340,
      "kind": "async_def",
      "name": "exec",
      "source_line": "    async def exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L309-L340",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000551",
      "file": "slime/agent/sandbox.py",
      "line": 322,
      "end_line": 333,
      "kind": "await",
      "name": "await",
      "source_line": "            res = await self._rpc_retry(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L322-L333",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.exec",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000552",
      "file": "slime/agent/sandbox.py",
      "line": 342,
      "end_line": 378,
      "kind": "async_def",
      "name": "write_file",
      "source_line": "    async def write_file(self, sandbox_path: str, content: FileContent, *, user: str = \"root\") -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L342-L378",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000553",
      "file": "slime/agent/sandbox.py",
      "line": 346,
      "end_line": 355,
      "kind": "async_def",
      "name": "_do_path",
      "source_line": "            async def _do_path():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L346-L355",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000554",
      "file": "slime/agent/sandbox.py",
      "line": 348,
      "end_line": 355,
      "kind": "await",
      "name": "await",
      "source_line": "                    await self._sb.files.write(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L348-L355",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file._do_path",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000555",
      "file": "slime/agent/sandbox.py",
      "line": 348,
      "end_line": 348,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                    await self._sb.files.write(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L348",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file._do_path",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sb.files"
    },
    {
      "id": "occ-000556",
      "file": "slime/agent/sandbox.py",
      "line": 357,
      "end_line": 357,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._rpc_retry(f\"write_file({sandbox_path} <- {host_path.name})\", _do_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L357",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000557",
      "file": "slime/agent/sandbox.py",
      "line": 362,
      "end_line": 370,
      "kind": "async_def",
      "name": "_do_bytes",
      "source_line": "            async def _do_bytes():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L362-L370",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000558",
      "file": "slime/agent/sandbox.py",
      "line": 363,
      "end_line": 370,
      "kind": "await",
      "name": "await",
      "source_line": "                await self._sb.files.write(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L363-L370",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file._do_bytes",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000559",
      "file": "slime/agent/sandbox.py",
      "line": 363,
      "end_line": 363,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                await self._sb.files.write(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L363",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file._do_bytes",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sb.files"
    },
    {
      "id": "occ-000560",
      "file": "slime/agent/sandbox.py",
      "line": 372,
      "end_line": 372,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._rpc_retry(f\"write_file({sandbox_path}, bytes={len(content)})\", _do_bytes)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L372",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000561",
      "file": "slime/agent/sandbox.py",
      "line": 375,
      "end_line": 378,
      "kind": "await",
      "name": "await",
      "source_line": "        await self._rpc_retry(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L375-L378",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000562",
      "file": "slime/agent/sandbox.py",
      "line": 377,
      "end_line": 377,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "            lambda: self._sb.files.write(sandbox_path, content, user=user),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L377",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.write_file.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sb.files"
    },
    {
      "id": "occ-000563",
      "file": "slime/agent/sandbox.py",
      "line": 380,
      "end_line": 387,
      "kind": "async_def",
      "name": "read_file",
      "source_line": "    async def read_file(self, sandbox_path: str, *, user: str = \"root\") -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L380-L387",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000564",
      "file": "slime/agent/sandbox.py",
      "line": 382,
      "end_line": 385,
      "kind": "await",
      "name": "await",
      "source_line": "            return await self._rpc_retry(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L382-L385",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.read_file",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000565",
      "file": "slime/agent/sandbox.py",
      "line": 384,
      "end_line": 384,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                lambda: self._sb.files.read(sandbox_path, user=user),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L384",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "E2BSandbox.read_file.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._sb.files"
    },
    {
      "id": "occ-000566",
      "file": "slime/agent/sandbox.py",
      "line": 390,
      "end_line": 399,
      "kind": "async_def",
      "name": "ensure_agent_user",
      "source_line": "async def ensure_agent_user(sb: Sandbox, workdir: str) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L390-L399",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000567",
      "file": "slime/agent/sandbox.py",
      "line": 392,
      "end_line": 399,
      "kind": "await",
      "name": "await",
      "source_line": "    await sb.exec(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/agent/sandbox.py#L392-L399",
      "snapshot": "source_snapshot/slime/agent/sandbox.py.txt",
      "symbol": "ensure_agent_user",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000568",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L1",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000569",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L3",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000570",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L4",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000571",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 79,
      "end_line": 79,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    return float(payload.get(\"timeout_s\") or args.megatron_server_update_timeout_s)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L79",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_get_update_timeout_s",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000572",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 181,
      "end_line": 181,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                req for req in self._pending_requests if req.get(\"request_id\") != request_id",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L181",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.cancel_request.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "req"
    },
    {
      "id": "occ-000573",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 187,
      "end_line": 187,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            rid = req.get(\"request_id\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L187",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager._pop_next_request",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "req"
    },
    {
      "id": "occ-000574",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 204,
      "end_line": 204,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        sample_n = req.get(\"sample_n\", 0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L204",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.get_input_data",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "req"
    },
    {
      "id": "occ-000575",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 205,
      "end_line": 205,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        label_token_ids = req.get(\"label_token_ids\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L205",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.get_input_data",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "req"
    },
    {
      "id": "occ-000576",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                log_probs = output_item.get(\"log_probs\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L263",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.save_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "output_item"
    },
    {
      "id": "occ-000577",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 264,
      "end_line": 264,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                sampled_token_ids = output_item.get(\"sampled_token_ids\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L264",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.save_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "output_item"
    },
    {
      "id": "occ-000578",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 265,
      "end_line": 265,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                sampled_log_probs = output_item.get(\"sampled_log_probs\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L265",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.save_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "output_item"
    },
    {
      "id": "occ-000579",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 266,
      "end_line": 266,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                label_token_log_probs = output_item.get(\"label_token_log_probs\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L266",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "SampleManager.save_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "output_item"
    },
    {
      "id": "occ-000580",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 287,
      "end_line": 287,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    logp_parts.sort(key=lambda x: x.get(\"dp_rank\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L287",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "x"
    },
    {
      "id": "occ-000581",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 290,
      "end_line": 290,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        has_log_prob = part.get(\"log_prob\") is not None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L290",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000582",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 291,
      "end_line": 291,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        has_sampled = part.get(\"sampled_log_probs\") is not None or part.get(\"sampled_token_ids\") is not None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L291",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000583",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 291,
      "end_line": 291,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        has_sampled = part.get(\"sampled_log_probs\") is not None or part.get(\"sampled_token_ids\") is not None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L291",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000584",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 292,
      "end_line": 292,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        has_label = part.get(\"label_token_log_probs\") is not None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L292",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000585",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 297,
      "end_line": 297,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                \"log_probs\": part.get(\"log_prob\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L297",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000586",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 298,
      "end_line": 298,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                \"sampled_log_probs\": part.get(\"sampled_log_probs\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L298",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000587",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 299,
      "end_line": 299,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                \"sampled_token_ids\": part.get(\"sampled_token_ids\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L299",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000588",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 300,
      "end_line": 300,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                \"label_token_log_probs\": part.get(\"label_token_log_probs\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L300",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_merge_log_probs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "part"
    },
    {
      "id": "occ-000589",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 315,
      "end_line": 315,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(interval)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L315",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_run_stats_printer",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000590",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 355,
      "end_line": 356,
      "kind": "async_def",
      "name": "_ray_get",
      "source_line": "async def _ray_get(ref):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L355-L356",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000591",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 356,
      "end_line": 356,
      "kind": "await",
      "name": "await",
      "source_line": "    return await asyncio.to_thread(ray.get, ref)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L356",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_ray_get",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000592",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 356,
      "end_line": 356,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "    return await asyncio.to_thread(ray.get, ref)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L356",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_ray_get",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000593",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 359,
      "end_line": 366,
      "kind": "async_def",
      "name": "_read_json_payload",
      "source_line": "async def _read_json_payload(request: web.Request) -> dict[str, Any]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L359-L366",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000594",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 363,
      "end_line": 363,
      "kind": "await",
      "name": "await",
      "source_line": "        payload = await request.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L363",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_read_json_payload",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000595",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 382,
      "end_line": 382,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"log_probs\": _crop_sequence(result.get(\"log_probs\"), expected_len),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L382",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_generate_response",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000596",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 385,
      "end_line": 385,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        value = result.get(key)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L385",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_generate_response",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000597",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 391,
      "end_line": 399,
      "kind": "async_def",
      "name": "_wait_until_idle",
      "source_line": "async def _wait_until_idle(sample_manager, timeout_s: float) -> dict[str, Any]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L391-L399",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000598",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 394,
      "end_line": 394,
      "kind": "await",
      "name": "await",
      "source_line": "        loads = await _ray_get(sample_manager.get_loads.remote())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L394",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_wait_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000599",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 399,
      "end_line": 399,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L399",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_wait_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000600",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 399,
      "end_line": 399,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L399",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_wait_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000601",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 403,
      "end_line": 403,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    model_path = payload.get(\"model_path\") or payload.get(\"path\") or payload.get(\"load\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L403",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_get_update_model_path",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000602",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 403,
      "end_line": 403,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    model_path = payload.get(\"model_path\") or payload.get(\"path\") or payload.get(\"load\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L403",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_get_update_model_path",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000603",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 403,
      "end_line": 403,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    model_path = payload.get(\"model_path\") or payload.get(\"path\") or payload.get(\"load\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L403",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_get_update_model_path",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000604",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 429,
      "end_line": 429,
      "kind": "api_call",
      "name": "asyncio.Lock",
      "source_line": "    update_lock = asyncio.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L429",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "asyncio-lock",
      "lesson": "15-async-notification",
      "anchor": "async-lock",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000605",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 431,
      "end_line": 432,
      "kind": "async_def",
      "name": "detect",
      "source_line": "    async def detect(_request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L431-L432",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000606",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 434,
      "end_line": 435,
      "kind": "async_def",
      "name": "healthz",
      "source_line": "    async def healthz(_request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L434-L435",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000607",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 437,
      "end_line": 438,
      "kind": "async_def",
      "name": "info",
      "source_line": "    async def info(_request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L437-L438",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000608",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 440,
      "end_line": 441,
      "kind": "async_def",
      "name": "get_loads",
      "source_line": "    async def get_loads(_request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L440-L441",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000609",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 441,
      "end_line": 441,
      "kind": "await",
      "name": "await",
      "source_line": "        return web.json_response(await _ray_get(sample_manager.get_loads.remote()))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L441",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.get_loads",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000610",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 443,
      "end_line": 515,
      "kind": "async_def",
      "name": "update_from_disk",
      "source_line": "    async def update_from_disk(request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L443-L515",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000611",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 447,
      "end_line": 447,
      "kind": "await",
      "name": "await",
      "source_line": "        payload = await _read_json_payload(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L447",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000612",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 452,
      "end_line": 468,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with update_lock:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L452-L468",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000613",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 464,
      "end_line": 464,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "                update_future = asyncio.get_running_loop().create_future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L464",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000614",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 464,
      "end_line": 464,
      "kind": "instance_candidate",
      "name": "create_future",
      "source_line": "                update_future = asyncio.get_running_loop().create_future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L464",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "asyncio.get_running_loop()"
    },
    {
      "id": "occ-000615",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 471,
      "end_line": 471,
      "kind": "await",
      "name": "await",
      "source_line": "            result = await asyncio.shield(update_future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L471",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000616",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 471,
      "end_line": 471,
      "kind": "api_call",
      "name": "asyncio.shield",
      "source_line": "            result = await asyncio.shield(update_future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L471",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000617",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 472,
      "end_line": 472,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if result.get(\"ok\") is True:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L472",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000618",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 476,
      "end_line": 476,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            return _json_error(result.get(\"error\", \"update_from_disk failed\"), int(result.get(\"status\", 500)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L476",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000619",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 476,
      "end_line": 476,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            return _json_error(result.get(\"error\", \"update_from_disk failed\"), int(result.get(\"status\", 500)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L476",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "result"
    },
    {
      "id": "occ-000620",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 482,
      "end_line": 482,
      "kind": "await",
      "name": "await",
      "source_line": "            before_loads = await _wait_until_idle(sample_manager, timeout_s)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L482",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000621",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 483,
      "end_line": 483,
      "kind": "await",
      "name": "await",
      "source_line": "            update_result = await asyncio.to_thread(update_from_disk_fn, model_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L483",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000622",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 483,
      "end_line": 483,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "            update_result = await asyncio.to_thread(update_from_disk_fn, model_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L483",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000623",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 484,
      "end_line": 484,
      "kind": "await",
      "name": "await",
      "source_line": "            after_loads = await _ray_get(sample_manager.get_loads.remote())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L484",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000624",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 504,
      "end_line": 511,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with update_lock:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L504-L511",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000625",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 506,
      "end_line": 506,
      "kind": "instance_candidate",
      "name": "set_result",
      "source_line": "                    update_future.set_result(result)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L506",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "future-callbacks",
      "lesson": "13-event-loop",
      "anchor": "pacer-callbacks",
      "status": "inferred",
      "receiver_type": "asyncio.Future",
      "receiver": "update_future"
    },
    {
      "id": "occ-000626",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 508,
      "end_line": 508,
      "kind": "instance_candidate",
      "name": "set_result",
      "source_line": "                    update_future.set_result(error)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L508",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.update_from_disk",
      "topic_id": "future-callbacks",
      "lesson": "13-event-loop",
      "anchor": "pacer-callbacks",
      "status": "inferred",
      "receiver_type": "asyncio.Future",
      "receiver": "update_future"
    },
    {
      "id": "occ-000627",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 517,
      "end_line": 595,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L517-L595",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000628",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 521,
      "end_line": 521,
      "kind": "await",
      "name": "await",
      "source_line": "        payload = await _read_json_payload(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L521",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000629",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 541,
      "end_line": 541,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sample_n = _parse_sample_n(payload.get(\"sample_n\", 0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L541",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000630",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 543,
      "end_line": 543,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            label_token_ids = _normalize_label_token_ids(payload.get(\"label_token_ids\"), valid_response_length)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L543",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000631",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 548,
      "end_line": 548,
      "kind": "await",
      "name": "await",
      "source_line": "            stats = await _ray_get(sample_manager.get_stats.remote())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L548",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000632",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 570,
      "end_line": 578,
      "kind": "await",
      "name": "await",
      "source_line": "            request_id = await _ray_get(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L570-L578",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000633",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 581,
      "end_line": 581,
      "kind": "await",
      "name": "await",
      "source_line": "                result = await _ray_get(sample_manager.get_result.remote(request_id))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L581",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000634",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 584,
      "end_line": 584,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L584",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000635",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 584,
      "end_line": 584,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L584",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000636",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 585,
      "end_line": 585,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "        except asyncio.CancelledError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L585",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000637",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 588,
      "end_line": 588,
      "kind": "await",
      "name": "await",
      "source_line": "                await _ray_get(sample_manager.cancel_request.remote(request_id))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L588",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_build_http_app.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000638",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 616,
      "end_line": 616,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "    stats_thread = threading.Thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L616",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_start_http_server",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000639",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 622,
      "end_line": 622,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    stats_thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L622",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_start_http_server",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "stats_thread"
    },
    {
      "id": "occ-000640",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 667,
      "end_line": 667,
      "kind": "instance_candidate",
      "name": "stop",
      "source_line": "        warmup_handle.stop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L667",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "_run_warmup_via_private_http",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "warmup_handle"
    },
    {
      "id": "occ-000641",
      "file": "slime/backends/megatron_utils/server/megatron_server.py",
      "line": 689,
      "end_line": 689,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                    time.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/server/megatron_server.py#L689",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/server/megatron_server.py.txt",
      "symbol": "run_megatron_dp_models_loop_worker",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000642",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "queue",
      "source_line": "import queue",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L6",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000643",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L10",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000644",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 124,
      "end_line": 124,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        self._snapshot.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L124",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._publish_full",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._snapshot"
    },
    {
      "id": "occ-000645",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                writer.write(tensors, chunk_index)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L132",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._publish_full",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "writer"
    },
    {
      "id": "occ-000646",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 234,
      "end_line": 234,
      "kind": "api_reference",
      "name": "queue.Queue",
      "source_line": "        free_q: queue.Queue = queue.Queue()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L234",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000647",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 234,
      "end_line": 234,
      "kind": "api_call",
      "name": "queue.Queue",
      "source_line": "        free_q: queue.Queue = queue.Queue()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L234",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000648",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 238,
      "end_line": 238,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "                free_q.put(torch.empty(max_bytes, dtype=torch.uint8, pin_memory=True))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L238",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "free_q"
    },
    {
      "id": "occ-000649",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 247,
      "end_line": 247,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "                free_q.put(buf)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L247",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta.diff_and_compress",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "free_q"
    },
    {
      "id": "occ-000650",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 266,
      "end_line": 266,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            name, new, compressed, digest, changed = fut.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L266",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta.collect",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fut"
    },
    {
      "id": "occ-000651",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 273,
      "end_line": 273,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        pool = ThreadPoolExecutor(max_workers=NUM_WORKERS)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L273",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000652",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 280,
      "end_line": 280,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    buf = free_q.get()  # blocks when all buffers are in flight -> backpressures the gather",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L280",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "free_q"
    },
    {
      "id": "occ-000653",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 287,
      "end_line": 287,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "                inflight.append(pool.submit(diff_and_compress, name, payload, nbytes, pinned))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L287",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "pool"
    },
    {
      "id": "occ-000654",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 293,
      "end_line": 293,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "            pool.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L293",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "UpdateWeightFromDiskDelta._encode_delta",
      "topic_id": "executor-shutdown",
      "lesson": "17-executor-results",
      "anchor": "executor-shutdown",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "pool"
    },
    {
      "id": "occ-000655",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py",
      "line": 320,
      "end_line": 320,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        f.write(data)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py#L320",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_disk_delta.py.txt",
      "symbol": "_atomic_write",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-000656",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L4",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000657",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 237,
      "end_line": 237,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            handle.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L237",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "UpdateWeightFromDistributed._ep_gather_and_convert",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "handle"
    },
    {
      "id": "occ-000658",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 239,
      "end_line": 239,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        named_tensors.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L239",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "UpdateWeightFromDistributed._ep_gather_and_convert",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "named_tensors"
    },
    {
      "id": "occ-000659",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 260,
      "end_line": 260,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L260",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "UpdateWeightFromDistributed._update_bucket_weights_from_distributed",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000660",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 272,
      "end_line": 272,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        converted_named_tensors.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L272",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "UpdateWeightFromDistributed._update_bucket_weights_from_distributed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "converted_named_tensors"
    },
    {
      "id": "occ-000661",
      "file": "slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py",
      "line": 362,
      "end_line": 362,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        handle.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py#L362",
      "snapshot": "source_snapshot/slime/backends/megatron_utils/update_weight/update_weight_from_distributed.py.txt",
      "symbol": "update_weights_from_distributed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "handle"
    },
    {
      "id": "occ-000662",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "multiprocessing",
      "source_line": "import multiprocessing",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L4",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000663",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L6",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000664",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 53,
      "end_line": 53,
      "kind": "api_call",
      "name": "multiprocessing.Process",
      "source_line": "    process = multiprocessing.Process(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L53",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "_start_router",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000665",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 58,
      "end_line": 58,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    process.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L58",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "_start_router",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "process"
    },
    {
      "id": "occ-000666",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 59,
      "end_line": 59,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "    time.sleep(3)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L59",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "_start_router",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000667",
      "file": "slime/backends/sglang_utils/deployment.py",
      "line": 60,
      "end_line": 60,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "    assert process.is_alive()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/deployment.py#L60",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/deployment.py.txt",
      "symbol": "_start_router",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "process"
    },
    {
      "id": "occ-000668",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L1",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000669",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 21,
      "end_line": 21,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        response = client.get(f\"{router_url}/workers\", timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L21",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "unregister_worker",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-000670",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 31,
      "end_line": 58,
      "kind": "async_def",
      "name": "get_live_router_workers",
      "source_line": "async def get_live_router_workers(router_url: str, *, timeout: float) -> list[dict]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L31-L58",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000671",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 38,
      "end_line": 58,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with httpx.AsyncClient(timeout=timeout, trust_env=False) as client:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L38-L58",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000672",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 39,
      "end_line": 39,
      "kind": "await",
      "name": "await",
      "source_line": "        response = await client.get(f\"{router_url}/workers\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L39",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000673",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 39,
      "end_line": 39,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        response = await client.get(f\"{router_url}/workers\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L39",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-000674",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 42,
      "end_line": 54,
      "kind": "async_def",
      "name": "check",
      "source_line": "        async def check(worker):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L42-L54",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000675",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 44,
      "end_line": 44,
      "kind": "await",
      "name": "await",
      "source_line": "                response = await client.get(f\"{worker['url']}/health_generate\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L44",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000676",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 44,
      "end_line": 44,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                response = await client.get(f\"{worker['url']}/health_generate\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L44",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers.check",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-000677",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 50,
      "end_line": 50,
      "kind": "await",
      "name": "await",
      "source_line": "                response = await client.delete(f\"{router_url}/workers/{worker['id']}\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L50",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000678",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 57,
      "end_line": 57,
      "kind": "await",
      "name": "await",
      "source_line": "        workers = await asyncio.gather(*(check(worker) for worker in response.json()[\"workers\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L57",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000679",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 57,
      "end_line": 57,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        workers = await asyncio.gather(*(check(worker) for worker in response.json()[\"workers\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L57",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "get_live_router_workers",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000680",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 72,
      "end_line": 72,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        value = load.get(key)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L72",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "num_requests_from_load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000681",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 77,
      "end_line": 77,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        running = load.get(\"num_running_reqs\", load.get(\"total_running_reqs\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L77",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "num_requests_from_load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000682",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 77,
      "end_line": 77,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        running = load.get(\"num_running_reqs\", load.get(\"total_running_reqs\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L77",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "num_requests_from_load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000683",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 78,
      "end_line": 78,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        waiting = load.get(\"num_waiting_reqs\", load.get(\"total_waiting_reqs\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L78",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "num_requests_from_load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000684",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 78,
      "end_line": 78,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        waiting = load.get(\"num_waiting_reqs\", load.get(\"total_waiting_reqs\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L78",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "num_requests_from_load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000685",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 110,
      "end_line": 110,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    loads = load.get(\"loads\", [load])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L110",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "load"
    },
    {
      "id": "occ-000686",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 118,
      "end_line": 118,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        dp_rank = rank_load.get(\"dp_rank\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L118",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rank_load"
    },
    {
      "id": "occ-000687",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        inflight = rank_load.get(\"inflight\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L120",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rank_load"
    },
    {
      "id": "occ-000688",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 125,
      "end_line": 125,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                reqs = queue.get(\"reqs\") if isinstance(queue.get(\"reqs\"), list) else []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L125",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queue"
    },
    {
      "id": "occ-000689",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 125,
      "end_line": 125,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                reqs = queue.get(\"reqs\") if isinstance(queue.get(\"reqs\"), list) else []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L125",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queue"
    },
    {
      "id": "occ-000690",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 126,
      "end_line": 126,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                count = queue.get(\"num_reqs\", len(reqs))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L126",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queue"
    },
    {
      "id": "occ-000691",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 130,
      "end_line": 130,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        {\"dp_rank\": dp_rank, \"queue\": queue.get(\"name\", \"unknown\"), \"num_reqs\": count, \"reqs\": reqs}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L130",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queue"
    },
    {
      "id": "occ-000692",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            section = rank_load.get(section_name)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L137",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rank_load"
    },
    {
      "id": "occ-000693",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 144,
      "end_line": 144,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            value = rank_load.get(key)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L144",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "non_idle_request_details",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rank_load"
    },
    {
      "id": "occ-000694",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 152,
      "end_line": 156,
      "kind": "async_def",
      "name": "_abort_server_once",
      "source_line": "async def _abort_server_once(url: str, request_timeout: float) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L152-L156",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000695",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 153,
      "end_line": 156,
      "kind": "await",
      "name": "await",
      "source_line": "    await asyncio.wait_for(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L153-L156",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "_abort_server_once",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000696",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 153,
      "end_line": 153,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "    await asyncio.wait_for(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L153",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "_abort_server_once",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000697",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 159,
      "end_line": 163,
      "kind": "async_def",
      "name": "_get_server_load",
      "source_line": "async def _get_server_load(url: str, request_timeout: float) -> Any:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L159-L163",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000698",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 160,
      "end_line": 163,
      "kind": "await",
      "name": "await",
      "source_line": "    return await asyncio.wait_for(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L160-L163",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "_get_server_load",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000699",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 160,
      "end_line": 160,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "    return await asyncio.wait_for(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L160",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "_get_server_load",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000700",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 166,
      "end_line": 234,
      "kind": "async_def",
      "name": "abort_server_until_idle",
      "source_line": "async def abort_server_until_idle(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L166-L234",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000701",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 176,
      "end_line": 176,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "    loop = asyncio.get_running_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L176",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_server_until_idle",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000702",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 199,
      "end_line": 199,
      "kind": "await",
      "name": "await",
      "source_line": "            await _abort_server_once(url, per_request_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L199",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_server_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000703",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 210,
      "end_line": 210,
      "kind": "await",
      "name": "await",
      "source_line": "            load = await _get_server_load(url, min(request_timeout, remaining))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L210",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_server_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000704",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 233,
      "end_line": 233,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(min(retry_interval, remaining))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L233",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_server_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000705",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 233,
      "end_line": 233,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(min(retry_interval, remaining))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L233",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_server_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000706",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 237,
      "end_line": 254,
      "kind": "async_def",
      "name": "abort_servers_until_idle",
      "source_line": "async def abort_servers_until_idle(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L237-L254",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000707",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 245,
      "end_line": 248,
      "kind": "await",
      "name": "await",
      "source_line": "    results = await asyncio.gather(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L245-L248",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_servers_until_idle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000708",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 245,
      "end_line": 245,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    results = await asyncio.gather(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L245",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_servers_until_idle",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000709",
      "file": "slime/backends/sglang_utils/server_control.py",
      "line": 251,
      "end_line": 251,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        detail = \"; \".join(f\"{url}: {error}\" for url, error in failures)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/server_control.py#L251",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/server_control.py.txt",
      "symbol": "abort_servers_until_idle",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"; \""
    },
    {
      "id": "occ-000710",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "multiprocessing",
      "source_line": "import multiprocessing",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L4",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000711",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L5",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000712",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L6",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000713",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 32,
      "end_line": 32,
      "kind": "api_reference",
      "name": "multiprocessing.Process",
      "source_line": "def launch_server_process(server_args: ServerArgs) -> multiprocessing.Process:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L32",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000714",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 49,
      "end_line": 49,
      "kind": "api_call",
      "name": "multiprocessing.set_start_method",
      "source_line": "    multiprocessing.set_start_method(\"spawn\", force=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L49",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "launch_server_process",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000715",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_call",
      "name": "multiprocessing.Process",
      "source_line": "    p = multiprocessing.Process(target=_launch_server, args=(server_args, os.getpid()))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L51",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "launch_server_process",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000716",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    p = multiprocessing.Process(target=_launch_server, args=(server_args, os.getpid()))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L51",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "launch_server_process",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000717",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 52,
      "end_line": 52,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    p.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L52",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "launch_server_process",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "p"
    },
    {
      "id": "occ-000718",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 60,
      "end_line": 60,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "        is_process_alive=lambda: p.is_alive(),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L60",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "launch_server_process.<lambda>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "p"
    },
    {
      "id": "occ-000719",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 73,
      "end_line": 73,
      "kind": "api_call",
      "name": "os.getppid",
      "source_line": "    if os.getppid() == parent_pid:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L73",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_launch_server",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000720",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 86,
      "end_line": 86,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                response = session.get(f\"{base_url}/health_generate\", headers=headers, timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L86",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_wait_server_healthy",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "session"
    },
    {
      "id": "occ-000721",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 95,
      "end_line": 95,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L95",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_wait_server_healthy",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000722",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 173,
      "end_line": 173,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                expect_value = expect_server_args.get(name)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L173",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine._init_external._sanity_check_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "expect_server_args"
    },
    {
      "id": "occ-000723",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 174,
      "end_line": 174,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                actual_value = actual_server_args.get(name)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L174",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine._init_external._sanity_check_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "actual_server_args"
    },
    {
      "id": "occ-000724",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 199,
      "end_line": 199,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                bootstrap_port = server_args_dict.get(\"disaggregation_bootstrap_port\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L199",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine._register_to_router",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "server_args_dict"
    },
    {
      "id": "occ-000725",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 292,
      "end_line": 292,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L292",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine.flush_cache",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000726",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 297,
      "end_line": 297,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L297",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine.flush_cache",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000727",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 529,
      "end_line": 529,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "        self.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L529",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "SGLangEngine.simulate_crash",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000728",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 547,
      "end_line": 547,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    pp_size = int(normalized_overrides.get(\"pp_size\", args.sglang_pp_size))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L547",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_compute_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "normalized_overrides"
    },
    {
      "id": "occ-000729",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 548,
      "end_line": 548,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    tp_size = int(normalized_overrides.get(\"tp_size\", _gpus_per_engine // pp_size))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L548",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_compute_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "normalized_overrides"
    },
    {
      "id": "occ-000730",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 633,
      "end_line": 633,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        and kwargs.get(\"enable_memory_saver\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L633",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_compute_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "kwargs"
    },
    {
      "id": "occ-000731",
      "file": "slime/backends/sglang_utils/sglang_engine.py",
      "line": 634,
      "end_line": 634,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        and kwargs.get(\"cuda_graph_backend_prefill\") is None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/backends/sglang_utils/sglang_engine.py#L634",
      "snapshot": "source_snapshot/slime/backends/sglang_utils/sglang_engine.py.txt",
      "symbol": "_compute_server_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "kwargs"
    },
    {
      "id": "occ-000732",
      "file": "slime/data/archive.py",
      "line": 26,
      "end_line": 26,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if self.index.get(\"format\") != \"slime.straw-debug\" or self.index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L26",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.__init__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.index"
    },
    {
      "id": "occ-000733",
      "file": "slime/data/archive.py",
      "line": 26,
      "end_line": 26,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if self.index.get(\"format\") != \"slime.straw-debug\" or self.index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L26",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.__init__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.index"
    },
    {
      "id": "occ-000734",
      "file": "slime/data/archive.py",
      "line": 56,
      "end_line": 56,
      "kind": "import",
      "name": "threading",
      "source_line": "            import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L56",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.save",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000735",
      "file": "slime/data/archive.py",
      "line": 66,
      "end_line": 66,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "            codec, lock = SampleCodec(store, args=args), threading.RLock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L66",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.save",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000736",
      "file": "slime/data/archive.py",
      "line": 133,
      "end_line": 133,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                store.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L133",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.save",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "store"
    },
    {
      "id": "occ-000737",
      "file": "slime/data/archive.py",
      "line": 146,
      "end_line": 146,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if index.get(\"format\") != \"slime.straw-debug\" or index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L146",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.check_metadata",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "index"
    },
    {
      "id": "occ-000738",
      "file": "slime/data/archive.py",
      "line": 146,
      "end_line": 146,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if index.get(\"format\") != \"slime.straw-debug\" or index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L146",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.check_metadata",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "index"
    },
    {
      "id": "occ-000739",
      "file": "slime/data/archive.py",
      "line": 148,
      "end_line": 148,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        metadata = index.get(\"sample_metadata\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L148",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.check_metadata",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "index"
    },
    {
      "id": "occ-000740",
      "file": "slime/data/archive.py",
      "line": 154,
      "end_line": 154,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if metadata.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L154",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.check_metadata",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-000741",
      "file": "slime/data/archive.py",
      "line": 184,
      "end_line": 184,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            chunk = entry.get(\"chunk\", \"raw\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L184",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.load_samples",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entry"
    },
    {
      "id": "occ-000742",
      "file": "slime/data/archive.py",
      "line": 222,
      "end_line": 222,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "        self.store.release(self.index[\"storage_owner\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L222",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.store"
    },
    {
      "id": "occ-000743",
      "file": "slime/data/archive.py",
      "line": 225,
      "end_line": 225,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        self.store.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L225",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.store"
    },
    {
      "id": "occ-000744",
      "file": "slime/data/archive.py",
      "line": 231,
      "end_line": 231,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        self.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/archive.py#L231",
      "snapshot": "source_snapshot/slime/data/archive.py.txt",
      "symbol": "RolloutArchive.__exit__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000745",
      "file": "slime/data/queue_data_source.py",
      "line": 11,
      "end_line": 11,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L11",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000746",
      "file": "slime/data/queue_data_source.py",
      "line": 13,
      "end_line": 13,
      "kind": "import",
      "name": "fcntl",
      "source_line": "import fcntl",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L13",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "<module>",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000747",
      "file": "slime/data/queue_data_source.py",
      "line": 16,
      "end_line": 16,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L16",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000748",
      "file": "slime/data/queue_data_source.py",
      "line": 17,
      "end_line": 17,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L17",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000749",
      "file": "slime/data/queue_data_source.py",
      "line": 19,
      "end_line": 19,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L19",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000750",
      "file": "slime/data/queue_data_source.py",
      "line": 73,
      "end_line": 73,
      "kind": "api_call",
      "name": "fcntl.flock",
      "source_line": "                    fcntl.flock(self._checkpoint_lock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L73",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000751",
      "file": "slime/data/queue_data_source.py",
      "line": 73,
      "end_line": 73,
      "kind": "api_reference",
      "name": "fcntl.LOCK_EX",
      "source_line": "                    fcntl.flock(self._checkpoint_lock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L73",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000752",
      "file": "slime/data/queue_data_source.py",
      "line": 73,
      "end_line": 73,
      "kind": "api_reference",
      "name": "fcntl.LOCK_NB",
      "source_line": "                    fcntl.flock(self._checkpoint_lock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L73",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000753",
      "file": "slime/data/queue_data_source.py",
      "line": 84,
      "end_line": 84,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if parent := branch.get(\"parent\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L84",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "branch"
    },
    {
      "id": "occ-000754",
      "file": "slime/data/queue_data_source.py",
      "line": 147,
      "end_line": 147,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "            self._producer_lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L147",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000755",
      "file": "slime/data/queue_data_source.py",
      "line": 153,
      "end_line": 153,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "            self._training_lock = threading.RLock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L153",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000756",
      "file": "slime/data/queue_data_source.py",
      "line": 154,
      "end_line": 154,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "            self._gc_stop = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L154",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000757",
      "file": "slime/data/queue_data_source.py",
      "line": 184,
      "end_line": 184,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "            self._gc_thread = threading.Thread(target=self._gc_loop, name=\"straw-gc\", daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L184",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._start_gc",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000758",
      "file": "slime/data/queue_data_source.py",
      "line": 185,
      "end_line": 185,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            self._gc_thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L185",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._start_gc",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._gc_thread"
    },
    {
      "id": "occ-000759",
      "file": "slime/data/queue_data_source.py",
      "line": 200,
      "end_line": 200,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        while not self._gc_stop.wait(60):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L200",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._gc_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._gc_stop"
    },
    {
      "id": "occ-000760",
      "file": "slime/data/queue_data_source.py",
      "line": 205,
      "end_line": 205,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "                self._gc_stop.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L205",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._gc_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._gc_stop"
    },
    {
      "id": "occ-000761",
      "file": "slime/data/queue_data_source.py",
      "line": 206,
      "end_line": 206,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "                logger.exception(\"straw online GC failed; retained storage must be inspected\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L206",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._gc_loop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "logger"
    },
    {
      "id": "occ-000762",
      "file": "slime/data/queue_data_source.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                    for chunk in iter(lambda: stream.read(4 * 1024 * 1024), b\"\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L263",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.configuration.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "stream"
    },
    {
      "id": "occ-000763",
      "file": "slime/data/queue_data_source.py",
      "line": 292,
      "end_line": 292,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            inflight = self.queue.metrics()[\"tasks\"].get(\"leased\", 0) > 0",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L292",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.pending_snapshot",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue.metrics()[\"tasks\"]"
    },
    {
      "id": "occ-000764",
      "file": "slime/data/queue_data_source.py",
      "line": 324,
      "end_line": 324,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if \"producer_cursor\" not in pending or pending.get(\"inflight\", True):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L324",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.fork_source",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "pending"
    },
    {
      "id": "occ-000765",
      "file": "slime/data/queue_data_source.py",
      "line": 356,
      "end_line": 356,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                        receipt = self.result(Lease(**status[\"lease\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L356",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.fork_source",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000766",
      "file": "slime/data/queue_data_source.py",
      "line": 358,
      "end_line": 358,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "                        page = self.queue.acquire(\"fork-import\", 1, task_ids=[task_id])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L358",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.fork_source",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000767",
      "file": "slime/data/queue_data_source.py",
      "line": 403,
      "end_line": 403,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        return sum(spec.metadata.get(\"returned\", False) for spec in self.queue.pending_tasks(task_prefix=\"prompt:\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L403",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.pending_count.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "spec.metadata"
    },
    {
      "id": "occ-000768",
      "file": "slime/data/queue_data_source.py",
      "line": 438,
      "end_line": 438,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                key: saved.get(key, default)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L438",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_pending.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "saved"
    },
    {
      "id": "occ-000769",
      "file": "slime/data/queue_data_source.py",
      "line": 447,
      "end_line": 447,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "                    self.release([Lease(**status[\"lease\"])])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L447",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_pending",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000770",
      "file": "slime/data/queue_data_source.py",
      "line": 448,
      "end_line": 448,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "                page = self.queue.acquire(\"checkpoint-restore\", 1, task_ids=[saved[\"task_id\"]])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L448",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_pending",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000771",
      "file": "slime/data/queue_data_source.py",
      "line": 459,
      "end_line": 459,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                receipt = self.result(Lease(**status[\"lease\"])) if status and status[\"state\"] == \"completed\" else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L459",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_pending",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000772",
      "file": "slime/data/queue_data_source.py",
      "line": 463,
      "end_line": 463,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        set(metadata.get(\"source_positions\", [])) | {receipt.position}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L463",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_pending",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-000773",
      "file": "slime/data/queue_data_source.py",
      "line": 486,
      "end_line": 486,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        return self.codec.load(RecordSetRef.from_dict(state[\"state_ref\"])).get(\"metadata\", {}) if state else {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L486",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.reader_metadata",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.codec.load(RecordSetRef.from_dict(state[\"state_ref\"]))"
    },
    {
      "id": "occ-000774",
      "file": "slime/data/queue_data_source.py",
      "line": 501,
      "end_line": 501,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "        page = self.queue.acquire(reader_id, count, task_prefix=\"prompt:\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L501",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.take",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000775",
      "file": "slime/data/queue_data_source.py",
      "line": 506,
      "end_line": 506,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "            page = self.queue.acquire(reader_id, count, task_prefix=\"prompt:\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L506",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.take",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000776",
      "file": "slime/data/queue_data_source.py",
      "line": 558,
      "end_line": 558,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "        return self.queue.acquire(reader_id, requested, task_prefix=\"prompt:\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L558",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.take",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000777",
      "file": "slime/data/queue_data_source.py",
      "line": 564,
      "end_line": 564,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "        if lease.worker_id in self._retired_readers and self.result(lease) is None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L564",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.complete",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000778",
      "file": "slime/data/queue_data_source.py",
      "line": 580,
      "end_line": 580,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        positions = self.queue.task_status(lease.task_id)[\"spec\"][\"metadata\"].get(\"source_positions\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L580",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.reject",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue.task_status(lease.task_id)[\"spec\"][\"metadata\"]"
    },
    {
      "id": "occ-000779",
      "file": "slime/data/queue_data_source.py",
      "line": 596,
      "end_line": 596,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "        return [self.result(lease) if lease else None for lease in leases]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L596",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.results.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000780",
      "file": "slime/data/queue_data_source.py",
      "line": 621,
      "end_line": 621,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                for position in task[\"spec\"][\"metadata\"].get(\"source_positions\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L621",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.recover_reader_results.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task[\"spec\"][\"metadata\"]"
    },
    {
      "id": "occ-000781",
      "file": "slime/data/queue_data_source.py",
      "line": 657,
      "end_line": 657,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if state.get(\"conversion_started\") or state[\"processed_cursor\"] or state[\"processed_positions\"]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L657",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.recover_pending_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state"
    },
    {
      "id": "occ-000782",
      "file": "slime/data/queue_data_source.py",
      "line": 665,
      "end_line": 665,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                for position in task[\"spec\"][\"metadata\"].get(\"source_positions\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L665",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.recover_pending_rollout.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task[\"spec\"][\"metadata\"]"
    },
    {
      "id": "occ-000783",
      "file": "slime/data/queue_data_source.py",
      "line": 685,
      "end_line": 685,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "        page = self.queue.acquire(\"manager\", 1, task_ids=[task_id], control=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L685",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.begin_collection",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000784",
      "file": "slime/data/queue_data_source.py",
      "line": 702,
      "end_line": 702,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "        receipt = self.result(Lease(**task[\"lease\"])) if task[\"state\"] == \"completed\" else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L702",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000785",
      "file": "slime/data/queue_data_source.py",
      "line": 706,
      "end_line": 706,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            \"lease\": task.get(\"lease\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L706",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-000786",
      "file": "slime/data/queue_data_source.py",
      "line": 723,
      "end_line": 723,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "                self.queue.acquire(\"manager\", 1, task_ids=[batch_id], control=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L723",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.plan_batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000787",
      "file": "slime/data/queue_data_source.py",
      "line": 725,
      "end_line": 725,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if not state.get(\"conversion_started\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L725",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.plan_batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state"
    },
    {
      "id": "occ-000788",
      "file": "slime/data/queue_data_source.py",
      "line": 756,
      "end_line": 756,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            positions.update(task[\"spec\"][\"metadata\"].get(\"source_positions\", []))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L756",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController._advance",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task[\"spec\"][\"metadata\"]"
    },
    {
      "id": "occ-000789",
      "file": "slime/data/queue_data_source.py",
      "line": 821,
      "end_line": 821,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "                    page = self.queue.acquire(\"manager\", 1, task_ids=[batch_id], control=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L821",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.ready_batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.queue"
    },
    {
      "id": "occ-000790",
      "file": "slime/data/queue_data_source.py",
      "line": 838,
      "end_line": 838,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            receipt = self.result(Lease(**task[\"lease\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L838",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.finish_batch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000791",
      "file": "slime/data/queue_data_source.py",
      "line": 851,
      "end_line": 851,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if not decision.get(\"reason\") or any(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L851",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.record_dispositions",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "decision"
    },
    {
      "id": "occ-000792",
      "file": "slime/data/queue_data_source.py",
      "line": 903,
      "end_line": 903,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                            receipt = self.result(Lease(**lease))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L903",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_training_state.visit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000793",
      "file": "slime/data/queue_data_source.py",
      "line": 907,
      "end_line": 907,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                                    receipt = self.result(Lease(**task[\"lease\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L907",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_training_state.visit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000794",
      "file": "slime/data/queue_data_source.py",
      "line": 911,
      "end_line": 911,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        retained.update(value.get(\"source_positions\", []))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L911",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.restore_training_state.visit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "value"
    },
    {
      "id": "occ-000795",
      "file": "slime/data/queue_data_source.py",
      "line": 970,
      "end_line": 970,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            self._gc_stop.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L970",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._gc_stop"
    },
    {
      "id": "occ-000796",
      "file": "slime/data/queue_data_source.py",
      "line": 972,
      "end_line": 972,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "                self._gc_thread.join()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L972",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._gc_thread"
    },
    {
      "id": "occ-000797",
      "file": "slime/data/queue_data_source.py",
      "line": 974,
      "end_line": 974,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                self._queue.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L974",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._queue"
    },
    {
      "id": "occ-000798",
      "file": "slime/data/queue_data_source.py",
      "line": 983,
      "end_line": 983,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                self._checkpoint_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L983",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "RolloutQueueController.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._checkpoint_lock"
    },
    {
      "id": "occ-000799",
      "file": "slime/data/queue_data_source.py",
      "line": 1034,
      "end_line": 1034,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "        self._lock = threading.RLock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1034",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.__init__",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000800",
      "file": "slime/data/queue_data_source.py",
      "line": 1035,
      "end_line": 1035,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        self._reader = ThreadPoolExecutor(max_workers=1, thread_name_prefix=\"queue-input\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1035",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.__init__",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000801",
      "file": "slime/data/queue_data_source.py",
      "line": 1036,
      "end_line": 1036,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "        self._stop = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1036",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000802",
      "file": "slime/data/queue_data_source.py",
      "line": 1044,
      "end_line": 1044,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "        self._heartbeats = threading.Thread(target=self._heartbeat_loop, name=\"queue-leases\", daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1044",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000803",
      "file": "slime/data/queue_data_source.py",
      "line": 1045,
      "end_line": 1045,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        self._heartbeats.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1045",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._heartbeats"
    },
    {
      "id": "occ-000804",
      "file": "slime/data/queue_data_source.py",
      "line": 1049,
      "end_line": 1049,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        while not self._stop.wait(interval):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1049",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader._heartbeat_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop"
    },
    {
      "id": "occ-000805",
      "file": "slime/data/queue_data_source.py",
      "line": 1058,
      "end_line": 1058,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                            if self._leases.get(lease.task_id) != lease:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1058",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader._heartbeat_loop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._leases"
    },
    {
      "id": "occ-000806",
      "file": "slime/data/queue_data_source.py",
      "line": 1093,
      "end_line": 1093,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1093",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.get_samples",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000807",
      "file": "slime/data/queue_data_source.py",
      "line": 1107,
      "end_line": 1107,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        sample._queue_source_positions = assignment.task.metadata.get(\"source_positions\", [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1107",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.get_samples",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "assignment.task.metadata"
    },
    {
      "id": "occ-000808",
      "file": "slime/data/queue_data_source.py",
      "line": 1113,
      "end_line": 1115,
      "kind": "async_def",
      "name": "get_samples_async",
      "source_line": "    async def get_samples_async(self, num_samples):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1113-L1115",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000809",
      "file": "slime/data/queue_data_source.py",
      "line": 1115,
      "end_line": 1115,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.get_running_loop().run_in_executor(self._reader, self.get_samples, num_samples)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1115",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.get_samples_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000810",
      "file": "slime/data/queue_data_source.py",
      "line": 1115,
      "end_line": 1115,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        return await asyncio.get_running_loop().run_in_executor(self._reader, self.get_samples, num_samples)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1115",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.get_samples_async",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000811",
      "file": "slime/data/queue_data_source.py",
      "line": 1115,
      "end_line": 1115,
      "kind": "instance_candidate",
      "name": "run_in_executor",
      "source_line": "        return await asyncio.get_running_loop().run_in_executor(self._reader, self.get_samples, num_samples)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1115",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.get_samples_async",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "asyncio.get_running_loop()"
    },
    {
      "id": "occ-000812",
      "file": "slime/data/queue_data_source.py",
      "line": 1146,
      "end_line": 1146,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    if self._leases.get(lease.task_id) == lease:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1146",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.add_samples",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._leases"
    },
    {
      "id": "occ-000813",
      "file": "slime/data/queue_data_source.py",
      "line": 1210,
      "end_line": 1210,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if lease and self._leases.get(lease.task_id) == lease:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1210",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.add_samples",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._leases"
    },
    {
      "id": "occ-000814",
      "file": "slime/data/queue_data_source.py",
      "line": 1284,
      "end_line": 1284,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "        self._reader.shutdown(wait=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1284",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.close",
      "topic_id": "executor-shutdown",
      "lesson": "17-executor-results",
      "anchor": "executor-shutdown",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "self._reader"
    },
    {
      "id": "occ-000815",
      "file": "slime/data/queue_data_source.py",
      "line": 1288,
      "end_line": 1288,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        self._stop.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1288",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop"
    },
    {
      "id": "occ-000816",
      "file": "slime/data/queue_data_source.py",
      "line": 1289,
      "end_line": 1289,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        self._heartbeats.join(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1289",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueReader.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._heartbeats"
    },
    {
      "id": "occ-000817",
      "file": "slime/data/queue_data_source.py",
      "line": 1417,
      "end_line": 1417,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if state[\"configuration\"].get(\"dataset\") != self.data_config.get(\"dataset\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1417",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueDataSource.load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state[\"configuration\"]"
    },
    {
      "id": "occ-000818",
      "file": "slime/data/queue_data_source.py",
      "line": 1417,
      "end_line": 1417,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if state[\"configuration\"].get(\"dataset\") != self.data_config.get(\"dataset\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1417",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueDataSource.load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.data_config"
    },
    {
      "id": "occ-000819",
      "file": "slime/data/queue_data_source.py",
      "line": 1424,
      "end_line": 1424,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if state[\"configuration\"].get(\"queue_id\", self.data_config[\"queue_id\"]) != self.data_config[\"queue_id\"]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1424",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueDataSource.load",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state[\"configuration\"]"
    },
    {
      "id": "occ-000820",
      "file": "slime/data/queue_data_source.py",
      "line": 1438,
      "end_line": 1438,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            consumer.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1438",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueDataSource.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "consumer"
    },
    {
      "id": "occ-000821",
      "file": "slime/data/queue_data_source.py",
      "line": 1439,
      "end_line": 1439,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        super().close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/queue_data_source.py#L1439",
      "snapshot": "source_snapshot/slime/data/queue_data_source.py.txt",
      "symbol": "QueueDataSource.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "super()"
    },
    {
      "id": "occ-000822",
      "file": "slime/data/transport.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L5",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000823",
      "file": "slime/data/transport.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L7",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000824",
      "file": "slime/data/transport.py",
      "line": 8,
      "end_line": 8,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L8",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000825",
      "file": "slime/data/transport.py",
      "line": 25,
      "end_line": 25,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "_writers_lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L25",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000826",
      "file": "slime/data/transport.py",
      "line": 49,
      "end_line": 49,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            pattern = \"\".join(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L49",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "resolve_rollout_data_dir",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-000827",
      "file": "slime/data/transport.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if index.get(\"format\") != \"slime.straw-debug\" or index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L59",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "resolve_rollout_data_dir",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "index"
    },
    {
      "id": "occ-000828",
      "file": "slime/data/transport.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if index.get(\"format\") != \"slime.straw-debug\" or index.get(\"version\") != 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L59",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "resolve_rollout_data_dir",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "index"
    },
    {
      "id": "occ-000829",
      "file": "slime/data/transport.py",
      "line": 90,
      "end_line": 90,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    key = (os.getpid(), root, run_id, profile, segment_mib, online_gc, json.dumps(declaration, sort_keys=True))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L90",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "rollout_store",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000830",
      "file": "slime/data/transport.py",
      "line": 105,
      "end_line": 105,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "            _writers[key] = (store, threading.RLock())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L105",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "rollout_store",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000831",
      "file": "slime/data/transport.py",
      "line": 364,
      "end_line": 367,
      "kind": "async_def",
      "name": "publish_rollout_async",
      "source_line": "async def publish_rollout_async(value, args, rollout_id, *, group=False, controller=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L364-L367",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000832",
      "file": "slime/data/transport.py",
      "line": 366,
      "end_line": 366,
      "kind": "await",
      "name": "await",
      "source_line": "        return await run_rollout_io(args, pack_rollout_group, value, args, rollout_id, controller=controller)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L366",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "publish_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000833",
      "file": "slime/data/transport.py",
      "line": 367,
      "end_line": 367,
      "kind": "await",
      "name": "await",
      "source_line": "    return await run_rollout_io(args, pack_rollout_payload, value, args, rollout_id)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L367",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "publish_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000834",
      "file": "slime/data/transport.py",
      "line": 370,
      "end_line": 389,
      "kind": "async_def",
      "name": "run_rollout_io",
      "source_line": "async def run_rollout_io(args, function, *values, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L370-L389",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000835",
      "file": "slime/data/transport.py",
      "line": 372,
      "end_line": 372,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "    loop = asyncio.get_running_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L372",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000836",
      "file": "slime/data/transport.py",
      "line": 373,
      "end_line": 373,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    key = (os.getpid(), loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L373",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000837",
      "file": "slime/data/transport.py",
      "line": 375,
      "end_line": 375,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        _async_limits[key] = asyncio.Semaphore(getattr(args, \"rollout_io_concurrency\", 4))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L375",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000838",
      "file": "slime/data/transport.py",
      "line": 376,
      "end_line": 389,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with _async_limits[key]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L376-L389",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000839",
      "file": "slime/data/transport.py",
      "line": 377,
      "end_line": 377,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        pending = asyncio.create_task(asyncio.to_thread(function, *values, **kwargs))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L377",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000840",
      "file": "slime/data/transport.py",
      "line": 377,
      "end_line": 377,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "        pending = asyncio.create_task(asyncio.to_thread(function, *values, **kwargs))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L377",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000841",
      "file": "slime/data/transport.py",
      "line": 379,
      "end_line": 379,
      "kind": "await",
      "name": "await",
      "source_line": "            return await asyncio.shield(pending)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L379",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000842",
      "file": "slime/data/transport.py",
      "line": 379,
      "end_line": 379,
      "kind": "api_call",
      "name": "asyncio.shield",
      "source_line": "            return await asyncio.shield(pending)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L379",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000843",
      "file": "slime/data/transport.py",
      "line": 380,
      "end_line": 380,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "        except asyncio.CancelledError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L380",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000844",
      "file": "slime/data/transport.py",
      "line": 383,
      "end_line": 383,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            while not pending.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L383",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "pending"
    },
    {
      "id": "occ-000845",
      "file": "slime/data/transport.py",
      "line": 385,
      "end_line": 385,
      "kind": "await",
      "name": "await",
      "source_line": "                    await asyncio.shield(pending)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L385",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000846",
      "file": "slime/data/transport.py",
      "line": 385,
      "end_line": 385,
      "kind": "api_call",
      "name": "asyncio.shield",
      "source_line": "                    await asyncio.shield(pending)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L385",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000847",
      "file": "slime/data/transport.py",
      "line": 386,
      "end_line": 386,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "                except asyncio.CancelledError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L386",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000848",
      "file": "slime/data/transport.py",
      "line": 388,
      "end_line": 388,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            pending.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L388",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "run_rollout_io",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "pending"
    },
    {
      "id": "occ-000849",
      "file": "slime/data/transport.py",
      "line": 410,
      "end_line": 422,
      "kind": "async_def",
      "name": "unpack_published_payload",
      "source_line": "async def unpack_published_payload(value):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L410-L422",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000850",
      "file": "slime/data/transport.py",
      "line": 413,
      "end_line": 413,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.to_thread(unpack_rollout_payload, value)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L413",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "unpack_published_payload",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000851",
      "file": "slime/data/transport.py",
      "line": 413,
      "end_line": 413,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "        return await asyncio.to_thread(unpack_rollout_payload, value)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L413",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "unpack_published_payload",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000852",
      "file": "slime/data/transport.py",
      "line": 419,
      "end_line": 419,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.to_thread(unpack_rollout_payload, value)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L419",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "unpack_published_payload",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000853",
      "file": "slime/data/transport.py",
      "line": 419,
      "end_line": 419,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "        return await asyncio.to_thread(unpack_rollout_payload, value)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L419",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "unpack_published_payload",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000854",
      "file": "slime/data/transport.py",
      "line": 483,
      "end_line": 483,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if node[\"Alive\"] and (node[\"Resources\"].get(\"CPU\", 0) or node[\"Resources\"].get(\"GPU\", 0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L483",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "check_rollout_storage.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "node[\"Resources\"]"
    },
    {
      "id": "occ-000855",
      "file": "slime/data/transport.py",
      "line": 483,
      "end_line": 483,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if node[\"Alive\"] and (node[\"Resources\"].get(\"CPU\", 0) or node[\"Resources\"].get(\"GPU\", 0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/data/transport.py#L483",
      "snapshot": "source_snapshot/slime/data/transport.py.txt",
      "symbol": "check_rollout_storage.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "node[\"Resources\"]"
    },
    {
      "id": "occ-000856",
      "file": "slime/observability/trace_utils.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "contextvars",
      "source_line": "import contextvars",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L3",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000857",
      "file": "slime/observability/trace_utils.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "inspect",
      "source_line": "import inspect",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L5",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "inspect-awaitable",
      "lesson": "21-async-inspection",
      "anchor": "isawaitable",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000858",
      "file": "slime/observability/trace_utils.py",
      "line": 47,
      "end_line": 47,
      "kind": "api_reference",
      "name": "contextvars.ContextVar",
      "source_line": "_TRACE_STACK: contextvars.ContextVar[tuple[tuple[str, str], ...]] = contextvars.ContextVar(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L47",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000859",
      "file": "slime/observability/trace_utils.py",
      "line": 47,
      "end_line": 47,
      "kind": "api_call",
      "name": "contextvars.ContextVar",
      "source_line": "_TRACE_STACK: contextvars.ContextVar[tuple[tuple[str, str], ...]] = contextvars.ContextVar(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L47",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000860",
      "file": "slime/observability/trace_utils.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_reference",
      "name": "contextvars.ContextVar",
      "source_line": "_TRACE_HANDLE_STACK: contextvars.ContextVar[tuple[tuple[TraceHandle, ...], ...]] = contextvars.ContextVar(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L51",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000861",
      "file": "slime/observability/trace_utils.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_call",
      "name": "contextvars.ContextVar",
      "source_line": "_TRACE_HANDLE_STACK: contextvars.ContextVar[tuple[tuple[TraceHandle, ...], ...]] = contextvars.ContextVar(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L51",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000862",
      "file": "slime/observability/trace_utils.py",
      "line": 144,
      "end_line": 144,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        finish_reason = meta.get(\"finish_reason\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L144",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "build_sglang_meta_trace_attrs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta"
    },
    {
      "id": "occ-000863",
      "file": "slime/observability/trace_utils.py",
      "line": 145,
      "end_line": 145,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if isinstance(finish_reason, dict) and finish_reason.get(\"type\") is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L145",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "build_sglang_meta_trace_attrs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "finish_reason"
    },
    {
      "id": "occ-000864",
      "file": "slime/observability/trace_utils.py",
      "line": 150,
      "end_line": 150,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if meta.get(\"id\") is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L150",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "build_sglang_meta_trace_attrs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta"
    },
    {
      "id": "occ-000865",
      "file": "slime/observability/trace_utils.py",
      "line": 234,
      "end_line": 234,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    carrier[\"attempt\"] = int(carrier.get(\"attempt\", attempt))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L234",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_ensure_trace_carrier",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "carrier"
    },
    {
      "id": "occ-000866",
      "file": "slime/observability/trace_utils.py",
      "line": 248,
      "end_line": 248,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sample_id=sample.trace.get(\"sample_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L248",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.trace"
    },
    {
      "id": "occ-000867",
      "file": "slime/observability/trace_utils.py",
      "line": 249,
      "end_line": 249,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            group_id=sample.trace.get(\"group_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L249",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.trace"
    },
    {
      "id": "occ-000868",
      "file": "slime/observability/trace_utils.py",
      "line": 250,
      "end_line": 250,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            attempt=int(sample.trace.get(\"attempt\", 0)),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L250",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.trace"
    },
    {
      "id": "occ-000869",
      "file": "slime/observability/trace_utils.py",
      "line": 277,
      "end_line": 277,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sample_id=trace.get(\"sample_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L277",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace_carrier",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "trace"
    },
    {
      "id": "occ-000870",
      "file": "slime/observability/trace_utils.py",
      "line": 278,
      "end_line": 278,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            group_id=trace.get(\"group_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L278",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace_carrier",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "trace"
    },
    {
      "id": "occ-000871",
      "file": "slime/observability/trace_utils.py",
      "line": 279,
      "end_line": 279,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            attempt=int(trace.get(\"attempt\", 0)),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L279",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "bind_trace_carrier",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "trace"
    },
    {
      "id": "occ-000872",
      "file": "slime/observability/trace_utils.py",
      "line": 315,
      "end_line": 315,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            trace_id=payload.get(\"trace_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L315",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "import_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000873",
      "file": "slime/observability/trace_utils.py",
      "line": 316,
      "end_line": 316,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            sample_id=payload.get(\"sample_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L316",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "import_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000874",
      "file": "slime/observability/trace_utils.py",
      "line": 317,
      "end_line": 317,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            group_id=payload.get(\"group_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L317",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "import_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000875",
      "file": "slime/observability/trace_utils.py",
      "line": 318,
      "end_line": 318,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            attempt=int(payload.get(\"attempt\", 0)),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L318",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "import_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000876",
      "file": "slime/observability/trace_utils.py",
      "line": 319,
      "end_line": 319,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parent_span_id=payload.get(\"parent_span_id\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L319",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "import_trace",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "payload"
    },
    {
      "id": "occ-000877",
      "file": "slime/observability/trace_utils.py",
      "line": 363,
      "end_line": 363,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    stack_before = _TRACE_STACK.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L363",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_STACK"
    },
    {
      "id": "occ-000878",
      "file": "slime/observability/trace_utils.py",
      "line": 364,
      "end_line": 364,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    handle_stack_before = _TRACE_HANDLE_STACK.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L364",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_HANDLE_STACK"
    },
    {
      "id": "occ-000879",
      "file": "slime/observability/trace_utils.py",
      "line": 383,
      "end_line": 383,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        token = _TRACE_STACK.set(stack_before + tuple(new_entries))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L383",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_STACK"
    },
    {
      "id": "occ-000880",
      "file": "slime/observability/trace_utils.py",
      "line": 384,
      "end_line": 384,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        handle_token = _TRACE_HANDLE_STACK.set(handle_stack_before + (tuple(handles),))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L384",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_HANDLE_STACK"
    },
    {
      "id": "occ-000881",
      "file": "slime/observability/trace_utils.py",
      "line": 419,
      "end_line": 419,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "            _TRACE_STACK.reset(token)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L419",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_STACK"
    },
    {
      "id": "occ-000882",
      "file": "slime/observability/trace_utils.py",
      "line": 423,
      "end_line": 423,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "            _TRACE_HANDLE_STACK.reset(handle_token)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L423",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_span",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_HANDLE_STACK"
    },
    {
      "id": "occ-000883",
      "file": "slime/observability/trace_utils.py",
      "line": 436,
      "end_line": 436,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            next_attempt = int(handle.carrier.get(\"attempt\", 0)) + 1",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L436",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_next_attempt",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "handle.carrier"
    },
    {
      "id": "occ-000884",
      "file": "slime/observability/trace_utils.py",
      "line": 460,
      "end_line": 460,
      "kind": "api_call",
      "name": "inspect.iscoroutinefunction",
      "source_line": "        if inspect.iscoroutinefunction(fn):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L460",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_function.decorator",
      "topic_id": "inspect-coroutine-function",
      "lesson": "21-async-inspection",
      "anchor": "iscoroutinefunction",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000885",
      "file": "slime/observability/trace_utils.py",
      "line": 463,
      "end_line": 475,
      "kind": "async_def",
      "name": "async_wrapper",
      "source_line": "            async def async_wrapper(*args, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L463-L475",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_function.decorator",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000886",
      "file": "slime/observability/trace_utils.py",
      "line": 472,
      "end_line": 472,
      "kind": "await",
      "name": "await",
      "source_line": "                    return await fn(*args, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L472",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_function.decorator.async_wrapper",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000887",
      "file": "slime/observability/trace_utils.py",
      "line": 475,
      "end_line": 475,
      "kind": "await",
      "name": "await",
      "source_line": "                    return await fn(*args, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L475",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "trace_function.decorator.async_wrapper",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000888",
      "file": "slime/observability/trace_utils.py",
      "line": 535,
      "end_line": 535,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        child_type = child.get(\"type\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L535",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_trace_children",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-000889",
      "file": "slime/observability/trace_utils.py",
      "line": 536,
      "end_line": 536,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        child_name = child.get(\"name\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L536",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_trace_children",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-000890",
      "file": "slime/observability/trace_utils.py",
      "line": 541,
      "end_line": 541,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        attrs = child.get(\"attrs\") if isinstance(child.get(\"attrs\"), dict) else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L541",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_trace_children",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-000891",
      "file": "slime/observability/trace_utils.py",
      "line": 541,
      "end_line": 541,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        attrs = child.get(\"attrs\") if isinstance(child.get(\"attrs\"), dict) else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L541",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_trace_children",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-000892",
      "file": "slime/observability/trace_utils.py",
      "line": 573,
      "end_line": 573,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            child.get(\"children\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L573",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_trace_children",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-000893",
      "file": "slime/observability/trace_utils.py",
      "line": 604,
      "end_line": 604,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        \"attempt\": int(handle.carrier.get(\"attempt\", handle.attempt)),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L604",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_append_event",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "handle.carrier"
    },
    {
      "id": "occ-000894",
      "file": "slime/observability/trace_utils.py",
      "line": 635,
      "end_line": 635,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    stack = _TRACE_STACK.get() if stack is None else stack",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L635",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_get_current_parent_span_id",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_STACK"
    },
    {
      "id": "occ-000895",
      "file": "slime/observability/trace_utils.py",
      "line": 664,
      "end_line": 664,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        resolved = _normalize_trace_target(bound.arguments.get(target))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L664",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_resolve_trace_function_target",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "bound.arguments"
    },
    {
      "id": "occ-000896",
      "file": "slime/observability/trace_utils.py",
      "line": 755,
      "end_line": 755,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    handle_stack = _TRACE_HANDLE_STACK.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/observability/trace_utils.py#L755",
      "snapshot": "source_snapshot/slime/observability/trace_utils.py.txt",
      "symbol": "_get_current_trace_target",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_TRACE_HANDLE_STACK"
    },
    {
      "id": "occ-000897",
      "file": "slime/ray/actor_group.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/actor_group.py#L4",
      "snapshot": "source_snapshot/slime/ray/actor_group.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000898",
      "file": "slime/ray/actor_group.py",
      "line": 189,
      "end_line": 189,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "            self.release()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/actor_group.py#L189",
      "snapshot": "source_snapshot/slime/ray/actor_group.py.txt",
      "symbol": "RayTrainGroup.update_weights",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-000899",
      "file": "slime/ray/actor_group.py",
      "line": 203,
      "end_line": 203,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/actor_group.py#L203",
      "snapshot": "source_snapshot/slime/ray/actor_group.py.txt",
      "symbol": "RayTrainGroup.release",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000900",
      "file": "slime/ray/actor_group.py",
      "line": 291,
      "end_line": 291,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "                    f\"Expected: {weight_version}; \" + \", \".join(mismatches)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/actor_group.py#L291",
      "snapshot": "source_snapshot/slime/ray/actor_group.py.txt",
      "symbol": "RayTrainGroup._reload_rollout_weights_from_disk",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\", \""
    },
    {
      "id": "occ-000901",
      "file": "slime/ray/serving.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "multiprocessing",
      "source_line": "import multiprocessing",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L10",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000902",
      "file": "slime/ray/serving.py",
      "line": 57,
      "end_line": 57,
      "kind": "api_call",
      "name": "multiprocessing.active_children",
      "source_line": "        existing_children = {process.pid for process in multiprocessing.active_children()}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L57",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.__init__",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000903",
      "file": "slime/ray/serving.py",
      "line": 68,
      "end_line": 68,
      "kind": "api_call",
      "name": "multiprocessing.active_children",
      "source_line": "                    process for process in multiprocessing.active_children() if process.pid not in existing_children",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L68",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.__init__",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000904",
      "file": "slime/ray/serving.py",
      "line": 76,
      "end_line": 76,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "                logging.getLogger(__name__).exception(\"Failed to dispose partial serving deployment\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L76",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.__init__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "logging.getLogger(__name__)"
    },
    {
      "id": "occ-000905",
      "file": "slime/ray/serving.py",
      "line": 115,
      "end_line": 115,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            raise ValueError(\"Retained serving requires unchanged rollout/model configuration: \" + \", \".join(changed))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L115",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.validate_attachment",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\", \""
    },
    {
      "id": "occ-000906",
      "file": "slime/ray/serving.py",
      "line": 168,
      "end_line": 168,
      "kind": "instance_candidate",
      "name": "stop",
      "source_line": "            monitor.stop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L168",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.attach_training",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "monitor"
    },
    {
      "id": "occ-000907",
      "file": "slime/ray/serving.py",
      "line": 173,
      "end_line": 173,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "                monitor.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L173",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.attach_training",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "monitor"
    },
    {
      "id": "occ-000908",
      "file": "slime/ray/serving.py",
      "line": 318,
      "end_line": 318,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "                if router.is_alive():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L318",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.dispose",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "router"
    },
    {
      "id": "occ-000909",
      "file": "slime/ray/serving.py",
      "line": 321,
      "end_line": 321,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "                    if router.is_alive():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/ray/serving.py#L321",
      "snapshot": "source_snapshot/slime/ray/serving.py.txt",
      "symbol": "ServingCluster.dispose",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "router"
    },
    {
      "id": "occ-000910",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L3",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000911",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L6",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000912",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 60,
      "end_line": 60,
      "kind": "api_call",
      "name": "threading.Condition",
      "source_line": "        self.condition = threading.Condition()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L60",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.__init__",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000913",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 91,
      "end_line": 91,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "        self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L91",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._retire_worker",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000914",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 108,
      "end_line": 108,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        if not self.capacities[i] or i in configuring or configurations.get(i) == desired:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L108",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "configurations"
    },
    {
      "id": "occ-000915",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 126,
      "end_line": 126,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                        self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L126",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000916",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 127,
      "end_line": 127,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                        self.condition.wait(timeout=0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L127",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000917",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 147,
      "end_line": 147,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                    self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L147",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000918",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 151,
      "end_line": 151,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L151",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000919",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 156,
      "end_line": 156,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "                self.controls.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L156",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.controls"
    },
    {
      "id": "occ-000920",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 157,
      "end_line": 157,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "                self.pending.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L157",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.pending"
    },
    {
      "id": "occ-000921",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 158,
      "end_line": 158,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "                self.running_workers.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L158",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.running_workers"
    },
    {
      "id": "occ-000922",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 159,
      "end_line": 159,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L159",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler._run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000923",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 171,
      "end_line": 171,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "            self.collecting.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L171",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.collecting"
    },
    {
      "id": "occ-000924",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 177,
      "end_line": 177,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "                self.thread = threading.Thread(target=self._run, name=\"rollout-collect\", daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L177",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000925",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 178,
      "end_line": 178,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "                self.thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L178",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-000926",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 179,
      "end_line": 179,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "            self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L179",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000927",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 184,
      "end_line": 184,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                    self.condition.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L184",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000928",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 198,
      "end_line": 198,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L198",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.generate",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000929",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 211,
      "end_line": 211,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "            self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L211",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.pause",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000930",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 214,
      "end_line": 214,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    self.configurations.get(worker) != (True, self.rollout_id) for worker in self.running_workers",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L214",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.pause.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.configurations"
    },
    {
      "id": "occ-000931",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 220,
      "end_line": 220,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                self.condition.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L220",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.pause",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000932",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 228,
      "end_line": 228,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "            self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L228",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.resume",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000933",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 248,
      "end_line": 248,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "            self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L248",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.close",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-000934",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 250,
      "end_line": 250,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            self.thread.join()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L250",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "RolloutScheduler.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-000935",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 279,
      "end_line": 281,
      "kind": "async_def",
      "name": "start",
      "source_line": "    async def start(self, rollout_id):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L279-L281",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000936",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 280,
      "end_line": 280,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        future = asyncio.run_coroutine_threadsafe(self._start(rollout_id), get_async_loop().loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L280",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.start",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000937",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 281,
      "end_line": 281,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L281",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.start",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000938",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 281,
      "end_line": 281,
      "kind": "api_call",
      "name": "asyncio.wrap_future",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L281",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.start",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000939",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 283,
      "end_line": 292,
      "kind": "async_def",
      "name": "_start",
      "source_line": "    async def _start(self, rollout_id):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L283-L292",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000940",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 286,
      "end_line": 286,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "        if self.producer is None or self.producer.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L286",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._start",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.producer"
    },
    {
      "id": "occ-000941",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 288,
      "end_line": 288,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                self.producer.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L288",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._start",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.producer"
    },
    {
      "id": "occ-000942",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 291,
      "end_line": 291,
      "kind": "api_call",
      "name": "asyncio.Queue",
      "source_line": "            self.outputs = asyncio.Queue(maxsize=1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L291",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._start",
      "topic_id": "async-queue",
      "lesson": "07-queues",
      "anchor": "async-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000943",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 292,
      "end_line": 292,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            self.producer = asyncio.create_task(self._produce())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L292",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._start",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000944",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 294,
      "end_line": 296,
      "kind": "async_def",
      "name": "pause",
      "source_line": "    async def pause(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L294-L296",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000945",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 295,
      "end_line": 295,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        future = asyncio.run_coroutine_threadsafe(self._pause(), get_async_loop().loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L295",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.pause",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000946",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 296,
      "end_line": 296,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L296",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.pause",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000947",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 296,
      "end_line": 296,
      "kind": "api_call",
      "name": "asyncio.wrap_future",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L296",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.pause",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000948",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 298,
      "end_line": 299,
      "kind": "async_def",
      "name": "_pause",
      "source_line": "    async def _pause(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L298-L299",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000949",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 301,
      "end_line": 303,
      "kind": "async_def",
      "name": "next",
      "source_line": "    async def next(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L301-L303",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000950",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 302,
      "end_line": 302,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        future = asyncio.run_coroutine_threadsafe(self._next(), get_async_loop().loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L302",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.next",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000951",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 303,
      "end_line": 303,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L303",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.next",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000952",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 303,
      "end_line": 303,
      "kind": "api_call",
      "name": "asyncio.wrap_future",
      "source_line": "        return await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L303",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.next",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000953",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 305,
      "end_line": 317,
      "kind": "async_def",
      "name": "_next",
      "source_line": "    async def _next(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L305-L317",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000954",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 306,
      "end_line": 306,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        take = asyncio.create_task(self.outputs.get())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L306",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000955",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 306,
      "end_line": 306,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        take = asyncio.create_task(self.outputs.get())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L306",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "async-queue",
      "lesson": "07-queues",
      "anchor": "async-queue",
      "status": "inferred",
      "receiver_type": "asyncio.Queue",
      "receiver": "self.outputs"
    },
    {
      "id": "occ-000956",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 308,
      "end_line": 308,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.wait((take, self.producer), return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L308",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000957",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 308,
      "end_line": 308,
      "kind": "api_call",
      "name": "asyncio.wait",
      "source_line": "            await asyncio.wait((take, self.producer), return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L308",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000958",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 308,
      "end_line": 308,
      "kind": "api_reference",
      "name": "asyncio.FIRST_COMPLETED",
      "source_line": "            await asyncio.wait((take, self.producer), return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L308",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000959",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 309,
      "end_line": 309,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            if take.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L309",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "take"
    },
    {
      "id": "occ-000960",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 310,
      "end_line": 310,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                return take.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L310",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "take"
    },
    {
      "id": "occ-000961",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 311,
      "end_line": 311,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            self.producer.result()  # Propagate custom generation errors.",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L311",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "self.producer"
    },
    {
      "id": "occ-000962",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 312,
      "end_line": 312,
      "kind": "instance_candidate",
      "name": "empty",
      "source_line": "            if not self.outputs.empty():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L312",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "async-queue",
      "lesson": "07-queues",
      "anchor": "async-queue",
      "status": "inferred",
      "receiver_type": "asyncio.Queue",
      "receiver": "self.outputs"
    },
    {
      "id": "occ-000963",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 313,
      "end_line": 313,
      "kind": "await",
      "name": "await",
      "source_line": "                return await take",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L313",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000964",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 316,
      "end_line": 316,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            take.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L316",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "take"
    },
    {
      "id": "occ-000965",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 317,
      "end_line": 317,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(take, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L317",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000966",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 317,
      "end_line": 317,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(take, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L317",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._next",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000967",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 319,
      "end_line": 342,
      "kind": "async_def",
      "name": "_produce",
      "source_line": "    async def _produce(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L319-L342",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000968",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 320,
      "end_line": 326,
      "kind": "async_def",
      "name": "generate_slot",
      "source_line": "        async def generate_slot(group):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L320-L326",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000969",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 322,
      "end_line": 322,
      "kind": "await",
      "name": "await",
      "source_line": "                output = await self._generate_group(self.rollout_id, group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L322",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce.generate_slot",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000970",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 325,
      "end_line": 325,
      "kind": "await",
      "name": "await",
      "source_line": "                    await self.outputs.put(output)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L325",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce.generate_slot",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000971",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 325,
      "end_line": 325,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "                    await self.outputs.put(output)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L325",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce.generate_slot",
      "topic_id": "async-queue",
      "lesson": "07-queues",
      "anchor": "async-queue",
      "status": "inferred",
      "receiver_type": "asyncio.Queue",
      "receiver": "self.outputs"
    },
    {
      "id": "occ-000972",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 333,
      "end_line": 333,
      "kind": "await",
      "name": "await",
      "source_line": "                groups = await self.data_source.get_samples_async(min(64, self.capacity - offset))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L333",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000973",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 334,
      "end_line": 334,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "                tasks.extend(asyncio.create_task(generate_slot(group)) for group in groups)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L334",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce.<comprehension>",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000974",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 337,
      "end_line": 337,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.sleep(0.001)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L337",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000975",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 337,
      "end_line": 337,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                await asyncio.sleep(0.001)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L337",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000976",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 338,
      "end_line": 338,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L338",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000977",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 338,
      "end_line": 338,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L338",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000978",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 341,
      "end_line": 341,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "                task.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L341",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-000979",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 342,
      "end_line": 342,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L342",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000980",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 342,
      "end_line": 342,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L342",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._produce",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000981",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 344,
      "end_line": 395,
      "kind": "async_def",
      "name": "_generate_group",
      "source_line": "    async def _generate_group(self, rollout_id, group=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L344-L395",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000982",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 348,
      "end_line": 348,
      "kind": "await",
      "name": "await",
      "source_line": "            group = (await self.data_source.get_samples_async(1))[0]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L348",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000983",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 352,
      "end_line": 352,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._rebuffer(group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L352",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000984",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 360,
      "end_line": 360,
      "kind": "await",
      "name": "await",
      "source_line": "                group = await generate_and_rm_group(self.args, group, self.state.sampling_params.copy())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L360",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000985",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 364,
      "end_line": 364,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._rebuffer(group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L364",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000986",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 373,
      "end_line": 379,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L373-L379",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000987",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 373,
      "end_line": 373,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "            await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L373",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000988",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 382,
      "end_line": 384,
      "kind": "await",
      "name": "await",
      "source_line": "            group = await publish_rollout_async(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L382-L384",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000989",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 387,
      "end_line": 389,
      "kind": "await",
      "name": "await",
      "source_line": "                accepted = await publish_rollout_async(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L387-L389",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000990",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 394,
      "end_line": 394,
      "kind": "await",
      "name": "await",
      "source_line": "            group = await asyncio.to_thread(self.data_source.materialize_samples, group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L394",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000991",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 394,
      "end_line": 394,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "            group = await asyncio.to_thread(self.data_source.materialize_samples, group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L394",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._generate_group",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000992",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 397,
      "end_line": 405,
      "kind": "async_def",
      "name": "_rebuffer",
      "source_line": "    async def _rebuffer(self, group):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L397-L405",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000993",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 401,
      "end_line": 401,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        future = asyncio.get_running_loop().create_future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L401",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._rebuffer",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000994",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 401,
      "end_line": 401,
      "kind": "instance_candidate",
      "name": "create_future",
      "source_line": "        future = asyncio.get_running_loop().create_future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L401",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._rebuffer",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "asyncio.get_running_loop()"
    },
    {
      "id": "occ-000995",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 404,
      "end_line": 404,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            self._rebuffer_task = asyncio.create_task(self._flush_rebuffers())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L404",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._rebuffer",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000996",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 405,
      "end_line": 405,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.shield(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L405",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._rebuffer",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000997",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 405,
      "end_line": 405,
      "kind": "api_call",
      "name": "asyncio.shield",
      "source_line": "        await asyncio.shield(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L405",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._rebuffer",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000998",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 407,
      "end_line": 422,
      "kind": "async_def",
      "name": "_flush_rebuffers",
      "source_line": "    async def _flush_rebuffers(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L407-L422",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-000999",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 409,
      "end_line": 409,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L409",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001000",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 409,
      "end_line": 409,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L409",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001001",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 413,
      "end_line": 413,
      "kind": "await",
      "name": "await",
      "source_line": "                    await asyncio.to_thread(self.data_source.add_samples, [group for group, _ in batch])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L413",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001002",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 413,
      "end_line": 413,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "                    await asyncio.to_thread(self.data_source.add_samples, [group for group, _ in batch])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L413",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001003",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 416,
      "end_line": 416,
      "kind": "instance_candidate",
      "name": "set_exception",
      "source_line": "                        future.set_exception(error)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L416",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001004",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 417,
      "end_line": 417,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "                    self._pending_rebuffers.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L417",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._pending_rebuffers"
    },
    {
      "id": "occ-001005",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 420,
      "end_line": 420,
      "kind": "instance_candidate",
      "name": "set_result",
      "source_line": "                    future.set_result(None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L420",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._flush_rebuffers",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001006",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 429,
      "end_line": 429,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        if isinstance(state, dict) and state.get(\"worker_state\") == 1:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L429",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.load_state_dict",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state"
    },
    {
      "id": "occ-001007",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 434,
      "end_line": 436,
      "kind": "async_def",
      "name": "close",
      "source_line": "    async def close(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L434-L436",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001008",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 435,
      "end_line": 435,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        future = asyncio.run_coroutine_threadsafe(self._close(), get_async_loop().loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L435",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.close",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001009",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 436,
      "end_line": 436,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L436",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.close",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001010",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 436,
      "end_line": 436,
      "kind": "api_call",
      "name": "asyncio.wrap_future",
      "source_line": "        await asyncio.wrap_future(future)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L436",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor.close",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001011",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 438,
      "end_line": 451,
      "kind": "async_def",
      "name": "_close",
      "source_line": "    async def _close(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L438-L451",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001012",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 441,
      "end_line": 441,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            self.producer.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L441",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "self.producer"
    },
    {
      "id": "occ-001013",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 442,
      "end_line": 442,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(self.producer, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L442",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001014",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 442,
      "end_line": 442,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(self.producer, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L442",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001015",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 444,
      "end_line": 444,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._rebuffer_task",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L444",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001016",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 447,
      "end_line": 447,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.get_running_loop().shutdown_default_executor()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L447",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001017",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 447,
      "end_line": 447,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        await asyncio.get_running_loop().shutdown_default_executor()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L447",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001018",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 447,
      "end_line": 447,
      "kind": "instance_candidate",
      "name": "shutdown_default_executor",
      "source_line": "        await asyncio.get_running_loop().shutdown_default_executor()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L447",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "loop-shutdown",
      "lesson": "13-event-loop",
      "anchor": "loop-shutdown",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "asyncio.get_running_loop()"
    },
    {
      "id": "occ-001019",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 448,
      "end_line": 448,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        self.data_source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L448",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "_GenerationActor._close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.data_source"
    },
    {
      "id": "occ-001020",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 502,
      "end_line": 502,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            (node for node in ray.nodes() if node[\"Alive\"] and node[\"Resources\"].get(\"CPU\", 0) >= 1),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L502",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "DistributedRollout.__init__.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "node[\"Resources\"]"
    },
    {
      "id": "occ-001021",
      "file": "slime/rollout/fully_async_distributed.py",
      "line": 576,
      "end_line": 576,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        super().close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_distributed.py#L576",
      "snapshot": "source_snapshot/slime/rollout/fully_async_distributed.py.txt",
      "symbol": "DistributedRollout.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "super()"
    },
    {
      "id": "occ-001022",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 31,
      "end_line": 31,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L31",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001023",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 33,
      "end_line": 33,
      "kind": "import",
      "name": "queue",
      "source_line": "import queue",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L33",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001024",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 34,
      "end_line": 34,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L34",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001025",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    worker = data_buffer.consumers.get(\"fully_async\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L59",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_get_worker",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data_buffer.consumers"
    },
    {
      "id": "occ-001026",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 74,
      "end_line": 74,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            worker.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L74",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_get_worker",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker"
    },
    {
      "id": "occ-001027",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 88,
      "end_line": 88,
      "kind": "api_call",
      "name": "threading.Condition",
      "source_line": "        self.condition = threading.Condition()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L88",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.__init__",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001028",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 97,
      "end_line": 97,
      "kind": "api_reference",
      "name": "queue.Queue",
      "source_line": "        self.output_queue: queue.Queue[tuple[int, list[Sample]]] = queue.Queue()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L97",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.__init__",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001029",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 97,
      "end_line": 97,
      "kind": "api_call",
      "name": "queue.Queue",
      "source_line": "        self.output_queue: queue.Queue[tuple[int, list[Sample]]] = queue.Queue()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L97",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.__init__",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001030",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 99,
      "end_line": 99,
      "kind": "api_reference",
      "name": "threading.Thread",
      "source_line": "        self.worker_thread: threading.Thread | None = None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L99",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001031",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 105,
      "end_line": 105,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "        if self.worker_thread is None or not self.worker_thread.is_alive():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L105",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.start",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.worker_thread"
    },
    {
      "id": "occ-001032",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 106,
      "end_line": 106,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "            self.worker_thread = threading.Thread(target=self._thread_main, name=\"fully-async-rollout\", daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L106",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001033",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 107,
      "end_line": 107,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            self.worker_thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L107",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.worker_thread"
    },
    {
      "id": "occ-001034",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 114,
      "end_line": 114,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                self.condition.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L114",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.pause",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001035",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 133,
      "end_line": 133,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "            self.output_queue.put(result)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L133",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.load_state_dict",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "self.output_queue"
    },
    {
      "id": "occ-001036",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 138,
      "end_line": 138,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            self.worker_thread.join(timeout=35)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L138",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.worker_thread"
    },
    {
      "id": "occ-001037",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 139,
      "end_line": 139,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "            if self.worker_thread.is_alive():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L139",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.worker_thread"
    },
    {
      "id": "occ-001038",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 153,
      "end_line": 153,
      "kind": "instance_candidate",
      "name": "get_nowait",
      "source_line": "                completed.append(self.output_queue.get_nowait())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L153",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.get_completed_groups",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "self.output_queue"
    },
    {
      "id": "occ-001039",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 154,
      "end_line": 154,
      "kind": "api_reference",
      "name": "queue.Empty",
      "source_line": "            except queue.Empty:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L154",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.get_completed_groups",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001040",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 159,
      "end_line": 159,
      "kind": "instance_candidate",
      "name": "qsize",
      "source_line": "        return self.output_queue.qsize()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L159",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker.queue_size",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "self.output_queue"
    },
    {
      "id": "occ-001041",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 165,
      "end_line": 165,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "            asyncio.run(self._loop())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L165",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._thread_main",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001042",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 171,
      "end_line": 171,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L171",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._thread_main",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001043",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 173,
      "end_line": 239,
      "kind": "async_def",
      "name": "_loop",
      "source_line": "    async def _loop(self) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L173-L239",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001044",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 174,
      "end_line": 174,
      "kind": "api_reference",
      "name": "asyncio.Task",
      "source_line": "        active_tasks: set[asyncio.Task] = set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L174",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001045",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 182,
      "end_line": 182,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "                    done = {t for t in active_tasks if t.done()}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L182",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-001046",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 185,
      "end_line": 185,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                            t.result()  # results already handled in callback",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L185",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "t"
    },
    {
      "id": "occ-001047",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 192,
      "end_line": 192,
      "kind": "await",
      "name": "await",
      "source_line": "                        await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L192",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001048",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 192,
      "end_line": 192,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                        await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L192",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001049",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 199,
      "end_line": 199,
      "kind": "instance_candidate",
      "name": "qsize",
      "source_line": "                    and self.output_queue.qsize() < max_concurrent",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L199",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "self.output_queue"
    },
    {
      "id": "occ-001050",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 209,
      "end_line": 209,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "                        task = asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L209",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001051",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 217,
      "end_line": 217,
      "kind": "instance_candidate",
      "name": "add_done_callback",
      "source_line": "                        task.add_done_callback(self._make_done_cb(gid))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L217",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "task"
    },
    {
      "id": "occ-001052",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 223,
      "end_line": 223,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                    self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L223",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001053",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 226,
      "end_line": 226,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.sleep(self.poll_interval)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L226",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001054",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 226,
      "end_line": 226,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                await asyncio.sleep(self.poll_interval)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L226",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001055",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 237,
      "end_line": 237,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.wait(active_tasks, timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L237",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001056",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 237,
      "end_line": 237,
      "kind": "api_call",
      "name": "asyncio.wait",
      "source_line": "                await asyncio.wait(active_tasks, timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L237",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._loop",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001057",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 242,
      "end_line": 242,
      "kind": "api_reference",
      "name": "asyncio.Task",
      "source_line": "        def _cb(done_task: asyncio.Task) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L242",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._make_done_cb",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001058",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 244,
      "end_line": 244,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                result = done_task.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L244",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._make_done_cb._cb",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "done_task"
    },
    {
      "id": "occ-001059",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 245,
      "end_line": 245,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "            except asyncio.CancelledError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L245",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._make_done_cb._cb",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001060",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 261,
      "end_line": 261,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "                    logger.exception(\"fully-async: failed to requeue aborted group\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L261",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._make_done_cb._cb",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "logger"
    },
    {
      "id": "occ-001061",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "            self.output_queue.put((gid, result))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L263",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "AsyncRolloutWorker._make_done_cb._cb",
      "topic_id": "thread-queue",
      "lesson": "07-queues",
      "anchor": "thread-queue",
      "status": "inferred",
      "receiver_type": "queue.Queue",
      "receiver": "self.output_queue"
    },
    {
      "id": "occ-001062",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 268,
      "end_line": 365,
      "kind": "async_def",
      "name": "_generate_rollout_async",
      "source_line": "async def _generate_rollout_async(args, rollout_id: int, data_buffer) -> RolloutFnTrainOutput | list[list[Sample]]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L268-L365",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001063",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 306,
      "end_line": 308,
      "kind": "await",
      "name": "await",
      "source_line": "                    group = await publish_rollout_async(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L306-L308",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001064",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 312,
      "end_line": 318,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L312-L318",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001065",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 312,
      "end_line": 312,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "            await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L312",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001066",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 321,
      "end_line": 321,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            drop_reasons[reason] = drop_reasons.get(reason, 0) + 1",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L321",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "drop_reasons"
    },
    {
      "id": "occ-001067",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 324,
      "end_line": 324,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L324",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001068",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 324,
      "end_line": 324,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L324",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001069",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 357,
      "end_line": 364,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L357-L364",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001070",
      "file": "slime/rollout/fully_async_rollout.py",
      "line": 357,
      "end_line": 357,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "        output = await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/fully_async_rollout.py#L357",
      "snapshot": "source_snapshot/slime/rollout/fully_async_rollout.py.txt",
      "symbol": "_generate_rollout_async",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001071",
      "file": "slime/rollout/on_policy_distillation.py",
      "line": 8,
      "end_line": 29,
      "kind": "async_def",
      "name": "reward_func",
      "source_line": "async def reward_func(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/on_policy_distillation.py#L8-L29",
      "snapshot": "source_snapshot/slime/rollout/on_policy_distillation.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001072",
      "file": "slime/rollout/on_policy_distillation.py",
      "line": 21,
      "end_line": 21,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if sample.multimodal_inputs and sample.multimodal_inputs.get(\"images\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/on_policy_distillation.py#L21",
      "snapshot": "source_snapshot/slime/rollout/on_policy_distillation.py.txt",
      "symbol": "reward_func",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.multimodal_inputs"
    },
    {
      "id": "occ-001073",
      "file": "slime/rollout/on_policy_distillation.py",
      "line": 26,
      "end_line": 29,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession(**session_kwargs) as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/on_policy_distillation.py#L26-L29",
      "snapshot": "source_snapshot/slime/rollout/on_policy_distillation.py.txt",
      "symbol": "reward_func",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001074",
      "file": "slime/rollout/on_policy_distillation.py",
      "line": 27,
      "end_line": 29,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with session.post(args.rm_url, json=payload) as resp:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/on_policy_distillation.py#L27-L29",
      "snapshot": "source_snapshot/slime/rollout/on_policy_distillation.py.txt",
      "symbol": "reward_func",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001075",
      "file": "slime/rollout/on_policy_distillation.py",
      "line": 29,
      "end_line": 29,
      "kind": "await",
      "name": "await",
      "source_line": "            return await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/on_policy_distillation.py#L29",
      "snapshot": "source_snapshot/slime/rollout/on_policy_distillation.py.txt",
      "symbol": "reward_func",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001076",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L1",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001077",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 34,
      "end_line": 52,
      "kind": "async_def",
      "name": "remote_rm",
      "source_line": "async def remote_rm(args, sample: Sample, max_retries: int = 10):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L34-L52",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001078",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 43,
      "end_line": 45,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with session.post(args.rm_url, json=payload) as resp:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L43-L45",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "remote_rm",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001079",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 45,
      "end_line": 45,
      "kind": "await",
      "name": "await",
      "source_line": "                return await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L45",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "remote_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001080",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 52,
      "end_line": 52,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(backoff)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L52",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "remote_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001081",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 52,
      "end_line": 52,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(backoff)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L52",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "remote_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001082",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 55,
      "end_line": 96,
      "kind": "async_def",
      "name": "async_rm",
      "source_line": "async def async_rm(args, sample: Sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L55-L96",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001083",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 59,
      "end_line": 59,
      "kind": "await",
      "name": "await",
      "source_line": "        return await rm_function(args, sample, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L59",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "async_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001084",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 63,
      "end_line": 63,
      "kind": "await",
      "name": "await",
      "source_line": "        return await rm_function(args, sample, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L63",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "async_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001085",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 66,
      "end_line": 66,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    rm_type = (metadata.get(\"rm_type\") or args.rm_type or \"\").strip()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L66",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "async_rm",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-001086",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 76,
      "end_line": 76,
      "kind": "await",
      "name": "await",
      "source_line": "        return await remote_rm(args, sample)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L76",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "async_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001087",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 99,
      "end_line": 110,
      "kind": "async_def",
      "name": "batched_async_rm",
      "source_line": "async def batched_async_rm(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L99-L110",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001088",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 107,
      "end_line": 107,
      "kind": "await",
      "name": "await",
      "source_line": "        return await rm_function(args, samples, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L107",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "batched_async_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001089",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 109,
      "end_line": 109,
      "kind": "await",
      "name": "await",
      "source_line": "    rewards = await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L109",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "batched_async_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001090",
      "file": "slime/rollout/rm_hub/__init__.py",
      "line": 109,
      "end_line": 109,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    rewards = await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/__init__.py#L109",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/__init__.py.txt",
      "symbol": "batched_async_rm",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001091",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L6",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001092",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 27,
      "end_line": 27,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "            subprocess.run(clone_cmd, check=True, capture_output=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L27",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_ensure_ifbench_repo",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001093",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 62,
      "end_line": 62,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "        subprocess.run(install_cmd, check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L62",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_ensure_ifbench_dependencies",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001094",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    instruction_ids = _normalize_instruction_ids(metadata.get(\"instruction_id_list\") or [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L132",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_build_input_example",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-001095",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    prompt_text = metadata.get(\"prompt_text\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L137",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_build_input_example",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-001096",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 143,
      "end_line": 143,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    raw_kwargs = metadata.get(\"kwargs\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L143",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_build_input_example",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-001097",
      "file": "slime/rollout/rm_hub/ifbench.py",
      "line": 147,
      "end_line": 147,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        key=int(metadata.get(\"record_id\") or 0),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/ifbench.py#L147",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/ifbench.py.txt",
      "symbol": "_build_input_example",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "metadata"
    },
    {
      "id": "occ-001098",
      "file": "slime/rollout/rm_hub/math_dapo_utils.py",
      "line": 17,
      "end_line": 17,
      "kind": "import",
      "name": "signal",
      "source_line": "import signal",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/math_dapo_utils.py#L17",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/math_dapo_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001099",
      "file": "slime/rollout/rm_hub/math_dapo_utils.py",
      "line": 75,
      "end_line": 75,
      "kind": "api_call",
      "name": "signal.signal",
      "source_line": "        signal.signal(signal.SIGALRM, self.handle_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/math_dapo_utils.py#L75",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/math_dapo_utils.py.txt",
      "symbol": "timeout.__enter__",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001100",
      "file": "slime/rollout/rm_hub/math_dapo_utils.py",
      "line": 75,
      "end_line": 75,
      "kind": "api_reference",
      "name": "signal.SIGALRM",
      "source_line": "        signal.signal(signal.SIGALRM, self.handle_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/math_dapo_utils.py#L75",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/math_dapo_utils.py.txt",
      "symbol": "timeout.__enter__",
      "topic_id": "signal-alarm",
      "lesson": "19-signals-locks",
      "anchor": "signal-alarm",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001101",
      "file": "slime/rollout/rm_hub/math_dapo_utils.py",
      "line": 76,
      "end_line": 76,
      "kind": "api_call",
      "name": "signal.alarm",
      "source_line": "        signal.alarm(self.seconds)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/math_dapo_utils.py#L76",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/math_dapo_utils.py.txt",
      "symbol": "timeout.__enter__",
      "topic_id": "signal-alarm",
      "lesson": "19-signals-locks",
      "anchor": "signal-alarm",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001102",
      "file": "slime/rollout/rm_hub/math_dapo_utils.py",
      "line": 79,
      "end_line": 79,
      "kind": "api_call",
      "name": "signal.alarm",
      "source_line": "        signal.alarm(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/rm_hub/math_dapo_utils.py#L79",
      "snapshot": "source_snapshot/slime/rollout/rm_hub/math_dapo_utils.py.txt",
      "symbol": "timeout.__exit__",
      "topic_id": "signal-alarm",
      "lesson": "19-signals-locks",
      "anchor": "signal-alarm",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001103",
      "file": "slime/rollout/sample_hooks.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "inspect",
      "source_line": "import inspect",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L3",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "inspect-awaitable",
      "lesson": "21-async-inspection",
      "anchor": "isawaitable",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001104",
      "file": "slime/rollout/sample_hooks.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "contextvars.ContextVar",
      "source_line": "from contextvars import ContextVar",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L5",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001105",
      "file": "slime/rollout/sample_hooks.py",
      "line": 12,
      "end_line": 12,
      "kind": "api_call",
      "name": "contextvars.ContextVar",
      "source_line": "_task_rollout_id = ContextVar(\"rollout_sample_hook_id\", default=None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L12",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001106",
      "file": "slime/rollout/sample_hooks.py",
      "line": 23,
      "end_line": 23,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "    token = _task_rollout_id.set(rollout_id)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L23",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "rollout_context",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_task_rollout_id"
    },
    {
      "id": "occ-001107",
      "file": "slime/rollout/sample_hooks.py",
      "line": 27,
      "end_line": 27,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "        _task_rollout_id.reset(token)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L27",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "rollout_context",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_task_rollout_id"
    },
    {
      "id": "occ-001108",
      "file": "slime/rollout/sample_hooks.py",
      "line": 37,
      "end_line": 49,
      "kind": "async_def",
      "name": "_apply_to_sample",
      "source_line": "async def _apply_to_sample(args, sample: Sample, paths: list[str], **kwargs) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L37-L49",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001109",
      "file": "slime/rollout/sample_hooks.py",
      "line": 41,
      "end_line": 41,
      "kind": "api_call",
      "name": "inspect.isawaitable",
      "source_line": "        if inspect.isawaitable(result):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L41",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "_apply_to_sample",
      "topic_id": "inspect-awaitable",
      "lesson": "21-async-inspection",
      "anchor": "isawaitable",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001110",
      "file": "slime/rollout/sample_hooks.py",
      "line": 42,
      "end_line": 42,
      "kind": "await",
      "name": "await",
      "source_line": "            result = await result",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L42",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "_apply_to_sample",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001111",
      "file": "slime/rollout/sample_hooks.py",
      "line": 52,
      "end_line": 64,
      "kind": "async_def",
      "name": "apply_rollout_sample_hooks",
      "source_line": "async def apply_rollout_sample_hooks(args, value, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L52-L64",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001112",
      "file": "slime/rollout/sample_hooks.py",
      "line": 58,
      "end_line": 58,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    rollout_id = _task_rollout_id.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L58",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "apply_rollout_sample_hooks",
      "topic_id": "task-context",
      "lesson": "11-contextvars",
      "anchor": "task-context",
      "status": "inferred",
      "receiver_type": "contextvars.ContextVar",
      "receiver": "_task_rollout_id"
    },
    {
      "id": "occ-001113",
      "file": "slime/rollout/sample_hooks.py",
      "line": 61,
      "end_line": 61,
      "kind": "await",
      "name": "await",
      "source_line": "        return await _apply_to_sample(args, value, paths, **kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L61",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "apply_rollout_sample_hooks",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001114",
      "file": "slime/rollout/sample_hooks.py",
      "line": 63,
      "end_line": 63,
      "kind": "await",
      "name": "await",
      "source_line": "        return [await apply_rollout_sample_hooks(args, item, **kwargs) for item in value]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sample_hooks.py#L63",
      "snapshot": "source_snapshot/slime/rollout/sample_hooks.py.txt",
      "symbol": "apply_rollout_sample_hooks.<comprehension>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001115",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L1",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001116",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 8,
      "end_line": 8,
      "kind": "import",
      "name": "collections.abc.Awaitable",
      "source_line": "from collections.abc import Awaitable, Callable",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L8",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001117",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 95,
      "end_line": 95,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        self.semaphore = asyncio.Semaphore(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L95",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "GenerateState.__init__",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001118",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 121,
      "end_line": 121,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "        self.reset()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L121",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "GenerateState.__init__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-001119",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 145,
      "end_line": 145,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "                asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L145",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "GenerateState.submit_generate_tasks",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001120",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 158,
      "end_line": 255,
      "kind": "async_def",
      "name": "generate",
      "source_line": "async def generate(args: Namespace, sample: Sample, sampling_params: dict[str, Any]) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L158-L255",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001121",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 201,
      "end_line": 201,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    images = sample.multimodal_inputs.get(\"images\") if sample.multimodal_inputs else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L201",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.multimodal_inputs"
    },
    {
      "id": "occ-001122",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 220,
      "end_line": 229,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L220-L229",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001123",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 258,
      "end_line": 274,
      "kind": "async_def",
      "name": "_run_request_abortable_generate",
      "source_line": "async def _run_request_abortable_generate(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L258-L274",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001124",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 261,
      "end_line": 261,
      "kind": "api_reference",
      "name": "collections.abc.Awaitable",
      "source_line": "    generate_call: Awaitable[Sample | list[Sample]],",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L261",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001125",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 263,
      "end_line": 263,
      "kind": "api_call",
      "name": "asyncio.current_task",
      "source_line": "    task = asyncio.current_task()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L263",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "_run_request_abortable_generate",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001126",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 267,
      "end_line": 267,
      "kind": "await",
      "name": "await",
      "source_line": "        return await generate_call",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L267",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "_run_request_abortable_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001127",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 268,
      "end_line": 268,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "    except asyncio.CancelledError:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L268",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "_run_request_abortable_generate",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001128",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 277,
      "end_line": 285,
      "kind": "async_def",
      "name": "_run_server_abort_generate",
      "source_line": "async def _run_server_abort_generate(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L277-L285",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001129",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 279,
      "end_line": 279,
      "kind": "api_reference",
      "name": "collections.abc.Awaitable",
      "source_line": "    generate_call: Awaitable[Sample | list[Sample]],",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L279",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001130",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 283,
      "end_line": 283,
      "kind": "await",
      "name": "await",
      "source_line": "        return await generate_call",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L283",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "_run_server_abort_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001131",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 289,
      "end_line": 376,
      "kind": "async_def",
      "name": "generate_and_rm",
      "source_line": "async def generate_and_rm(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L289-L376",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001132",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 329,
      "end_line": 347,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with state.semaphore:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L329-L347",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001133",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 330,
      "end_line": 330,
      "kind": "await",
      "name": "await",
      "source_line": "        await state.generation_pacer.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L330",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001134",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 330,
      "end_line": 330,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await state.generation_pacer.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L330",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state.generation_pacer"
    },
    {
      "id": "occ-001135",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 345,
      "end_line": 345,
      "kind": "await",
      "name": "await",
      "source_line": "                sample = await _run_request_abortable_generate(state, sample, generate_call)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L345",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001136",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 347,
      "end_line": 347,
      "kind": "await",
      "name": "await",
      "source_line": "                sample = await _run_server_abort_generate(state, generate_call)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L347",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001137",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 350,
      "end_line": 350,
      "kind": "await",
      "name": "await",
      "source_line": "    sample = await apply_rollout_sample_hooks(args, sample, evaluation=evaluation)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L350",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001138",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 364,
      "end_line": 364,
      "kind": "await",
      "name": "await",
      "source_line": "            rewards = await batched_async_rm(args, samples_need_reward)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L364",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001139",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 374,
      "end_line": 374,
      "kind": "await",
      "name": "await",
      "source_line": "                sample.reward = await async_rm(args, sample)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L374",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001140",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 384,
      "end_line": 423,
      "kind": "async_def",
      "name": "generate_and_rm_group",
      "source_line": "async def generate_and_rm_group(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L384-L423",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001141",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 411,
      "end_line": 411,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            asyncio.create_task(generate_and_rm(args, sample, current_sampling_params, evaluation=evaluation))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L411",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm_group",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001142",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 414,
      "end_line": 414,
      "kind": "await",
      "name": "await",
      "source_line": "    group = await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L414",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001143",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 414,
      "end_line": 414,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    group = await asyncio.gather(*tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L414",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm_group",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001144",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 419,
      "end_line": 419,
      "kind": "await",
      "name": "await",
      "source_line": "            rewards = await batched_async_rm(args, group)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L419",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_and_rm_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001145",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 426,
      "end_line": 473,
      "kind": "async_def",
      "name": "abort",
      "source_line": "async def abort(args: Namespace, rollout_id: int) -> list[list[Sample]]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L426-L473",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001146",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 436,
      "end_line": 436,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "        task.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L436",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-001147",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 441,
      "end_line": 441,
      "kind": "await",
      "name": "await",
      "source_line": "            workers = (await get(f\"{router_url}/workers\"))[\"workers\"]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L441",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001148",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 445,
      "end_line": 445,
      "kind": "await",
      "name": "await",
      "source_line": "            workers = await get_live_router_workers(router_url, timeout=args.rollout_health_check_timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L445",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001149",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 447,
      "end_line": 447,
      "kind": "await",
      "name": "await",
      "source_line": "        await abort_servers_until_idle(urls)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L447",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001150",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 449,
      "end_line": 449,
      "kind": "await",
      "name": "await",
      "source_line": "    await asyncio.gather(*cancellable_tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L449",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001151",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 449,
      "end_line": 449,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    await asyncio.gather(*cancellable_tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L449",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001152",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 454,
      "end_line": 454,
      "kind": "await",
      "name": "await",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L454",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001153",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 454,
      "end_line": 454,
      "kind": "api_call",
      "name": "asyncio.wait",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L454",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001154",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 454,
      "end_line": 454,
      "kind": "api_reference",
      "name": "asyncio.FIRST_COMPLETED",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L454",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001155",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 461,
      "end_line": 461,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            group = task.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L461",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "abort",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-001156",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 476,
      "end_line": 597,
      "kind": "async_def",
      "name": "generate_rollout_async",
      "source_line": "async def generate_rollout_async(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L476-L597",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001157",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 517,
      "end_line": 517,
      "kind": "await",
      "name": "await",
      "source_line": "                samples = await reader.get_samples_async(args.over_sampling_batch_size)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L517",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001158",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 523,
      "end_line": 523,
      "kind": "await",
      "name": "await",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L523",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001159",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 523,
      "end_line": 523,
      "kind": "api_call",
      "name": "asyncio.wait",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L523",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001160",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 523,
      "end_line": 523,
      "kind": "api_reference",
      "name": "asyncio.FIRST_COMPLETED",
      "source_line": "        done, state.pendings = await asyncio.wait(state.pendings, return_when=asyncio.FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L523",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "wait",
      "lesson": "04-results",
      "anchor": "wait-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001161",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 525,
      "end_line": 525,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            group: list[Sample] = task.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L525",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-001162",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 545,
      "end_line": 551,
      "kind": "await",
      "name": "await",
      "source_line": "                    await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L545-L551",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001163",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 545,
      "end_line": 545,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "                    await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L545",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001164",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 561,
      "end_line": 561,
      "kind": "await",
      "name": "await",
      "source_line": "                    group = await publish_rollout_async(group, args, rollout_id, group=True, controller=controller)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L561",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001165",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 565,
      "end_line": 565,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    pbar.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L565",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "pbar"
    },
    {
      "id": "occ-001166",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 571,
      "end_line": 571,
      "kind": "await",
      "name": "await",
      "source_line": "    aborted_samples = await abort(args, rollout_id)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L571",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001167",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 575,
      "end_line": 575,
      "kind": "instance_candidate",
      "name": "reset",
      "source_line": "    state.reset()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L575",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "state"
    },
    {
      "id": "occ-001168",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 585,
      "end_line": 585,
      "kind": "await",
      "name": "await",
      "source_line": "                await publish_rollout_async(group, args, rollout_id, group=True, controller=controller)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L585",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async.<comprehension>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001169",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 588,
      "end_line": 588,
      "kind": "await",
      "name": "await",
      "source_line": "            data = await publish_rollout_async(data, args, rollout_id)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L588",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001170",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 594,
      "end_line": 596,
      "kind": "await",
      "name": "await",
      "source_line": "        output = await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L594-L596",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001171",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 594,
      "end_line": 594,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "        output = await asyncio.to_thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L594",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001172",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 603,
      "end_line": 613,
      "kind": "async_def",
      "name": "eval_rollout",
      "source_line": "async def eval_rollout(args: Namespace, rollout_id: int) -> tuple[dict[str, dict[str, list[Any]]], list[list[Sample]]]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L603-L613",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001173",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 609,
      "end_line": 609,
      "kind": "await",
      "name": "await",
      "source_line": "    results_list = await asyncio.gather(*coros)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L609",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001174",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 609,
      "end_line": 609,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "    results_list = await asyncio.gather(*coros)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L609",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001175",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 616,
      "end_line": 751,
      "kind": "async_def",
      "name": "eval_rollout_single_dataset",
      "source_line": "async def eval_rollout_single_dataset(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L616-L751",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001176",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 712,
      "end_line": 712,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "                asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L712",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout_single_dataset",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001177",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 725,
      "end_line": 725,
      "kind": "api_call",
      "name": "asyncio.as_completed",
      "source_line": "    for coro in asyncio.as_completed(tasks):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L725",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout_single_dataset",
      "topic_id": "as-completed",
      "lesson": "04-results",
      "anchor": "as-completed-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001178",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 726,
      "end_line": 726,
      "kind": "await",
      "name": "await",
      "source_line": "        sample = await coro",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L726",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout_single_dataset",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001179",
      "file": "slime/rollout/sglang_rollout.py",
      "line": 740,
      "end_line": 740,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    pbar.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_rollout.py#L740",
      "snapshot": "source_snapshot/slime/rollout/sglang_rollout.py.txt",
      "symbol": "eval_rollout_single_dataset",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "pbar"
    },
    {
      "id": "occ-001180",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 48,
      "end_line": 180,
      "kind": "async_def",
      "name": "generate_streaming",
      "source_line": "async def generate_streaming(args: Namespace, sample: Sample, sampling_params: dict[str, Any]) -> Sample:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L48-L180",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001181",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 87,
      "end_line": 87,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    images = sample.multimodal_inputs.get(\"images\") if sample.multimodal_inputs else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L87",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.multimodal_inputs"
    },
    {
      "id": "occ-001182",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 125,
      "end_line": 163,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with client.stream(\"POST\", url, json=payload, headers=headers) as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L125-L163",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001183",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 127,
      "end_line": 163,
      "kind": "async_for",
      "name": "async for",
      "source_line": "                async for raw_line in response.aiter_lines():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L127-L163",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001184",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 159,
      "end_line": 159,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                        update_terminal_info=bool(last_meta_info.get(\"finish_reason\")),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L159",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "last_meta_info"
    },
    {
      "id": "occ-001185",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 165,
      "end_line": 165,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            if last_meta_info.get(\"finish_reason\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L165",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "last_meta_info"
    },
    {
      "id": "occ-001186",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 171,
      "end_line": 171,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                skip_special_tokens=sampling_params.get(\"skip_special_tokens\", True),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L171",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sampling_params"
    },
    {
      "id": "occ-001187",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 175,
      "end_line": 175,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    if state.aborted and not last_meta_info.get(\"finish_reason\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L175",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "last_meta_info"
    },
    {
      "id": "occ-001188",
      "file": "slime/rollout/sglang_streaming_rollout.py",
      "line": 177,
      "end_line": 177,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    elif not last_meta_info.get(\"finish_reason\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sglang_streaming_rollout.py#L177",
      "snapshot": "source_snapshot/slime/rollout/sglang_streaming_rollout.py.txt",
      "symbol": "generate_streaming",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "last_meta_info"
    },
    {
      "id": "occ-001189",
      "file": "slime/rollout/sleep_rollout.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sleep_rollout.py#L2",
      "snapshot": "source_snapshot/slime/rollout/sleep_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001190",
      "file": "slime/rollout/sleep_rollout.py",
      "line": 10,
      "end_line": 10,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(3600)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/rollout/sleep_rollout.py#L10",
      "snapshot": "source_snapshot/slime/rollout/sleep_rollout.py.txt",
      "symbol": "sleep",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001191",
      "file": "slime/utils/accelerator/__init__.py",
      "line": 14,
      "end_line": 14,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/accelerator/__init__.py#L14",
      "snapshot": "source_snapshot/slime/utils/accelerator/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001192",
      "file": "slime/utils/accelerator/__init__.py",
      "line": 39,
      "end_line": 39,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "_SELECTION_LOCK = threading.RLock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/accelerator/__init__.py#L39",
      "snapshot": "source_snapshot/slime/utils/accelerator/__init__.py.txt",
      "symbol": "<module>",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001193",
      "file": "slime/utils/accelerator/__init__.py",
      "line": 276,
      "end_line": 276,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    entry = _REGISTRY.get(name)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/accelerator/__init__.py#L276",
      "snapshot": "source_snapshot/slime/utils/accelerator/__init__.py.txt",
      "symbol": "_make_selected",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "_REGISTRY"
    },
    {
      "id": "occ-001194",
      "file": "slime/utils/accelerator/__init__.py",
      "line": 278,
      "end_line": 278,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        available = \", \".join(sorted(_REGISTRY))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/accelerator/__init__.py#L278",
      "snapshot": "source_snapshot/slime/utils/accelerator/__init__.py.txt",
      "symbol": "_make_selected",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\", \""
    },
    {
      "id": "occ-001195",
      "file": "slime/utils/accelerator/__init__.py",
      "line": 332,
      "end_line": 332,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        registered = \", \".join(sorted(_REGISTRY))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/accelerator/__init__.py#L332",
      "snapshot": "source_snapshot/slime/utils/accelerator/__init__.py.txt",
      "symbol": "get_accelerator",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\", \""
    },
    {
      "id": "occ-001196",
      "file": "slime/utils/async_utils.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L1",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001197",
      "file": "slime/utils/async_utils.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L2",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001198",
      "file": "slime/utils/async_utils.py",
      "line": 24,
      "end_line": 31,
      "kind": "async_def",
      "name": "wait",
      "source_line": "    async def wait(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L24-L31",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001199",
      "file": "slime/utils/async_utils.py",
      "line": 25,
      "end_line": 25,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        loop = asyncio.get_running_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L25",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer.wait",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001200",
      "file": "slime/utils/async_utils.py",
      "line": 26,
      "end_line": 26,
      "kind": "instance_candidate",
      "name": "create_future",
      "source_line": "        future = loop.create_future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L26",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer.wait",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-001201",
      "file": "slime/utils/async_utils.py",
      "line": 30,
      "end_line": 30,
      "kind": "instance_candidate",
      "name": "call_soon",
      "source_line": "            loop.call_soon(self._release)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L30",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer.wait",
      "topic_id": "future-callbacks",
      "lesson": "13-event-loop",
      "anchor": "pacer-callbacks",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-001202",
      "file": "slime/utils/async_utils.py",
      "line": 31,
      "end_line": 31,
      "kind": "await",
      "name": "await",
      "source_line": "        await future",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L31",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer.wait",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001203",
      "file": "slime/utils/async_utils.py",
      "line": 36,
      "end_line": 36,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            if not future.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L36",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer._release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001204",
      "file": "slime/utils/async_utils.py",
      "line": 37,
      "end_line": 37,
      "kind": "instance_candidate",
      "name": "set_result",
      "source_line": "                future.set_result(None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L37",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer._release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001205",
      "file": "slime/utils/async_utils.py",
      "line": 40,
      "end_line": 40,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "            asyncio.get_running_loop().call_later(0.001, self._release)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L40",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer._release",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001206",
      "file": "slime/utils/async_utils.py",
      "line": 40,
      "end_line": 40,
      "kind": "instance_candidate",
      "name": "call_later",
      "source_line": "            asyncio.get_running_loop().call_later(0.001, self._release)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L40",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncPacer._release",
      "topic_id": "future-callbacks",
      "lesson": "13-event-loop",
      "anchor": "pacer-callbacks",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "asyncio.get_running_loop()"
    },
    {
      "id": "occ-001207",
      "file": "slime/utils/async_utils.py",
      "line": 48,
      "end_line": 48,
      "kind": "api_call",
      "name": "asyncio.new_event_loop",
      "source_line": "        self.loop = asyncio.new_event_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L48",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread.__init__",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001208",
      "file": "slime/utils/async_utils.py",
      "line": 49,
      "end_line": 49,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "        self._thread = threading.Thread(target=self._start_loop, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L49",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001209",
      "file": "slime/utils/async_utils.py",
      "line": 50,
      "end_line": 50,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        self._thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L50",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._thread"
    },
    {
      "id": "occ-001210",
      "file": "slime/utils/async_utils.py",
      "line": 53,
      "end_line": 53,
      "kind": "api_call",
      "name": "asyncio.set_event_loop",
      "source_line": "        asyncio.set_event_loop(self.loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L53",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread._start_loop",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001211",
      "file": "slime/utils/async_utils.py",
      "line": 54,
      "end_line": 54,
      "kind": "instance_candidate",
      "name": "run_forever",
      "source_line": "        self.loop.run_forever()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L54",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread._start_loop",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "self.loop"
    },
    {
      "id": "occ-001212",
      "file": "slime/utils/async_utils.py",
      "line": 58,
      "end_line": 58,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        return asyncio.run_coroutine_threadsafe(coro, self.loop).result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L58",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread.run",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001213",
      "file": "slime/utils/async_utils.py",
      "line": 58,
      "end_line": 58,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "        return asyncio.run_coroutine_threadsafe(coro, self.loop).result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/async_utils.py#L58",
      "snapshot": "source_snapshot/slime/utils/async_utils.py.txt",
      "symbol": "AsyncLoopThread.run",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "asyncio.run_coroutine_threadsafe(coro, self.loop)"
    },
    {
      "id": "occ-001214",
      "file": "slime/utils/external_utils/command_utils.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/external_utils/command_utils.py#L9",
      "snapshot": "source_snapshot/slime/utils/external_utils/command_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001215",
      "file": "slime/utils/external_utils/command_utils.py",
      "line": 117,
      "end_line": 117,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "            subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/external_utils/command_utils.py#L117",
      "snapshot": "source_snapshot/slime/utils/external_utils/command_utils.py.txt",
      "symbol": "execute_train",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001216",
      "file": "slime/utils/external_utils/command_utils.py",
      "line": 118,
      "end_line": 118,
      "kind": "api_reference",
      "name": "subprocess.DEVNULL",
      "source_line": "                [\"ray\", \"status\"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, timeout=30",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/external_utils/command_utils.py#L118",
      "snapshot": "source_snapshot/slime/utils/external_utils/command_utils.py.txt",
      "symbol": "execute_train",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001217",
      "file": "slime/utils/external_utils/command_utils.py",
      "line": 118,
      "end_line": 118,
      "kind": "api_reference",
      "name": "subprocess.DEVNULL",
      "source_line": "                [\"ray\", \"status\"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, timeout=30",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/external_utils/command_utils.py#L118",
      "snapshot": "source_snapshot/slime/utils/external_utils/command_utils.py.txt",
      "symbol": "execute_train",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001218",
      "file": "slime/utils/health_monitor.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L2",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001219",
      "file": "slime/utils/health_monitor.py",
      "line": 27,
      "end_line": 27,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "        self._stop_event = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L27",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001220",
      "file": "slime/utils/health_monitor.py",
      "line": 28,
      "end_line": 28,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "        self._pause_event = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L28",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001221",
      "file": "slime/utils/health_monitor.py",
      "line": 29,
      "end_line": 29,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        self._pause_event.set()  # Engines may be offloaded before the first rollout.",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L29",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001222",
      "file": "slime/utils/health_monitor.py",
      "line": 34,
      "end_line": 34,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "        self._check_lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L34",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001223",
      "file": "slime/utils/health_monitor.py",
      "line": 50,
      "end_line": 50,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        self._stop_event.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L50",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001224",
      "file": "slime/utils/health_monitor.py",
      "line": 51,
      "end_line": 51,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        self._pause_event.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L51",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001225",
      "file": "slime/utils/health_monitor.py",
      "line": 53,
      "end_line": 53,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "        self._thread = threading.Thread(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L53",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001226",
      "file": "slime/utils/health_monitor.py",
      "line": 58,
      "end_line": 58,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        self._thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L58",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.start",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._thread"
    },
    {
      "id": "occ-001227",
      "file": "slime/utils/health_monitor.py",
      "line": 68,
      "end_line": 68,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        self._stop_event.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L68",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.stop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001228",
      "file": "slime/utils/health_monitor.py",
      "line": 71,
      "end_line": 71,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        self._thread.join(timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L71",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.stop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._thread"
    },
    {
      "id": "occ-001229",
      "file": "slime/utils/health_monitor.py",
      "line": 72,
      "end_line": 72,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "        if self._thread.is_alive():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L72",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.stop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self._thread"
    },
    {
      "id": "occ-001230",
      "file": "slime/utils/health_monitor.py",
      "line": 82,
      "end_line": 82,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        self._pause_event.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L82",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.pause",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001231",
      "file": "slime/utils/health_monitor.py",
      "line": 84,
      "end_line": 84,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "        if not self._check_lock.acquire(timeout=self._check_timeout if timeout is None else timeout):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L84",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.pause",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Lock",
      "receiver": "self._check_lock"
    },
    {
      "id": "occ-001232",
      "file": "slime/utils/health_monitor.py",
      "line": 86,
      "end_line": 86,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "        self._check_lock.release()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L86",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.pause",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Lock",
      "receiver": "self._check_lock"
    },
    {
      "id": "occ-001233",
      "file": "slime/utils/health_monitor.py",
      "line": 92,
      "end_line": 92,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        self._pause_event.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L92",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor.resume",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001234",
      "file": "slime/utils/health_monitor.py",
      "line": 95,
      "end_line": 95,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "        while not self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L95",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001235",
      "file": "slime/utils/health_monitor.py",
      "line": 97,
      "end_line": 97,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            while self._pause_event.is_set() and not self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L97",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001236",
      "file": "slime/utils/health_monitor.py",
      "line": 97,
      "end_line": 97,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            while self._pause_event.is_set() and not self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L97",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001237",
      "file": "slime/utils/health_monitor.py",
      "line": 98,
      "end_line": 98,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                self._stop_event.wait(timeout=0.5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L98",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001238",
      "file": "slime/utils/health_monitor.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            if self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L100",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001239",
      "file": "slime/utils/health_monitor.py",
      "line": 106,
      "end_line": 106,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                if self._stop_event.wait(self._check_first_wait):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L106",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001240",
      "file": "slime/utils/health_monitor.py",
      "line": 109,
      "end_line": 109,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "                if self._pause_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L109",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001241",
      "file": "slime/utils/health_monitor.py",
      "line": 116,
      "end_line": 116,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            if not self._pause_event.is_set() and not self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L116",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001242",
      "file": "slime/utils/health_monitor.py",
      "line": 116,
      "end_line": 116,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            if not self._pause_event.is_set() and not self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L116",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001243",
      "file": "slime/utils/health_monitor.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "exception",
      "source_line": "                    logger.exception(\"Failed to unregister an unhealthy worker; retaining it for the next check\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L120",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "logger"
    },
    {
      "id": "occ-001244",
      "file": "slime/utils/health_monitor.py",
      "line": 123,
      "end_line": 123,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            if self._stop_event.wait(self._check_interval):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L123",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._health_monitor_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001245",
      "file": "slime/utils/health_monitor.py",
      "line": 134,
      "end_line": 134,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            if self._stop_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L134",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._run_health_checks",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._stop_event"
    },
    {
      "id": "occ-001246",
      "file": "slime/utils/health_monitor.py",
      "line": 136,
      "end_line": 136,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            if not force and self._pause_event.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/health_monitor.py#L136",
      "snapshot": "source_snapshot/slime/utils/health_monitor.py.txt",
      "symbol": "RolloutHealthMonitor._run_health_checks",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "self._pause_event"
    },
    {
      "id": "occ-001247",
      "file": "slime/utils/http_utils.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L1",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001248",
      "file": "slime/utils/http_utils.py",
      "line": 180,
      "end_line": 183,
      "kind": "async_def",
      "name": "handle_async_request",
      "source_line": "    async def handle_async_request(self, request):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L180-L183",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_ShardedHTTPTransport",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001249",
      "file": "slime/utils/http_utils.py",
      "line": 183,
      "end_line": 183,
      "kind": "await",
      "name": "await",
      "source_line": "        return await transport.handle_async_request(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L183",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_ShardedHTTPTransport.handle_async_request",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001250",
      "file": "slime/utils/http_utils.py",
      "line": 185,
      "end_line": 186,
      "kind": "async_def",
      "name": "aclose",
      "source_line": "    async def aclose(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L185-L186",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_ShardedHTTPTransport",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001251",
      "file": "slime/utils/http_utils.py",
      "line": 186,
      "end_line": 186,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(*(transport.aclose() for transport in self._transports))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L186",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_ShardedHTTPTransport.aclose",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001252",
      "file": "slime/utils/http_utils.py",
      "line": 186,
      "end_line": 186,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(*(transport.aclose() for transport in self._transports))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L186",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_ShardedHTTPTransport.aclose",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001253",
      "file": "slime/utils/http_utils.py",
      "line": 189,
      "end_line": 230,
      "kind": "async_def",
      "name": "_post",
      "source_line": "async def _post(client, url, payload, max_retries=60, headers=None, timeout=None, score_centering_top_k=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L189-L230",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001254",
      "file": "slime/utils/http_utils.py",
      "line": 197,
      "end_line": 197,
      "kind": "await",
      "name": "await",
      "source_line": "            response = await client.post(url, **request_kwargs)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L197",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001255",
      "file": "slime/utils/http_utils.py",
      "line": 199,
      "end_line": 199,
      "kind": "await",
      "name": "await",
      "source_line": "            content = await response.aread()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L199",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001256",
      "file": "slime/utils/http_utils.py",
      "line": 204,
      "end_line": 204,
      "kind": "await",
      "name": "await",
      "source_line": "                    output = await asyncio.to_thread(decode_score_centering_response, content, score_centering_top_k)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L204",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001257",
      "file": "slime/utils/http_utils.py",
      "line": 204,
      "end_line": 204,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "                    output = await asyncio.to_thread(decode_score_centering_response, content, score_centering_top_k)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L204",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001258",
      "file": "slime/utils/http_utils.py",
      "line": 223,
      "end_line": 223,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L223",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001259",
      "file": "slime/utils/http_utils.py",
      "line": 223,
      "end_line": 223,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L223",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001260",
      "file": "slime/utils/http_utils.py",
      "line": 227,
      "end_line": 227,
      "kind": "await",
      "name": "await",
      "source_line": "                await response.aclose()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L227",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001261",
      "file": "slime/utils/http_utils.py",
      "line": 282,
      "end_line": 282,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    nodes = [n for n in ray.nodes() if n.get(\"Alive\")]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L282",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_init_ray_distributed_post.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "n"
    },
    {
      "id": "occ-001262",
      "file": "slime/utils/http_utils.py",
      "line": 297,
      "end_line": 306,
      "kind": "async_def",
      "name": "do_post",
      "source_line": "        async def do_post(self, url, payload, max_retries=60, headers=None, timeout=None, score_centering_top_k=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L297-L306",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_init_ray_distributed_post._HttpPosterActor",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001263",
      "file": "slime/utils/http_utils.py",
      "line": 298,
      "end_line": 306,
      "kind": "await",
      "name": "await",
      "source_line": "            return await _post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L298-L306",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "_init_ray_distributed_post._HttpPosterActor.do_post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001264",
      "file": "slime/utils/http_utils.py",
      "line": 331,
      "end_line": 364,
      "kind": "async_def",
      "name": "post",
      "source_line": "async def post(url, payload, max_retries=60, headers=None, timeout=None, score_centering_top_k=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L331-L364",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001265",
      "file": "slime/utils/http_utils.py",
      "line": 351,
      "end_line": 351,
      "kind": "await",
      "name": "await",
      "source_line": "                return await obj_ref",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L351",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001266",
      "file": "slime/utils/http_utils.py",
      "line": 356,
      "end_line": 364,
      "kind": "await",
      "name": "await",
      "source_line": "    return await _post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L356-L364",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "post",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001267",
      "file": "slime/utils/http_utils.py",
      "line": 367,
      "end_line": 374,
      "kind": "async_def",
      "name": "get",
      "source_line": "async def get(url, *, timeout=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L367-L374",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001268",
      "file": "slime/utils/http_utils.py",
      "line": 368,
      "end_line": 368,
      "kind": "await",
      "name": "await",
      "source_line": "    response = await _http_client.get(url, timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L368",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "get",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001269",
      "file": "slime/utils/http_utils.py",
      "line": 368,
      "end_line": 368,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    response = await _http_client.get(url, timeout=timeout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L368",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "get",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "_http_client"
    },
    {
      "id": "occ-001270",
      "file": "slime/utils/http_utils.py",
      "line": 371,
      "end_line": 371,
      "kind": "await",
      "name": "await",
      "source_line": "        content = await response.aread()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L371",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "get",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001271",
      "file": "slime/utils/http_utils.py",
      "line": 374,
      "end_line": 374,
      "kind": "await",
      "name": "await",
      "source_line": "        await response.aclose()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/http_utils.py#L374",
      "snapshot": "source_snapshot/slime/utils/http_utils.py.txt",
      "symbol": "get",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001272",
      "file": "slime/utils/misc.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/misc.py#L2",
      "snapshot": "source_snapshot/slime/utils/misc.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001273",
      "file": "slime/utils/misc.py",
      "line": 83,
      "end_line": 83,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "        result = subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/misc.py#L83",
      "snapshot": "source_snapshot/slime/utils/misc.py.txt",
      "symbol": "exec_command",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001274",
      "file": "slime/utils/misc.py",
      "line": 90,
      "end_line": 90,
      "kind": "api_reference",
      "name": "subprocess.CalledProcessError",
      "source_line": "    except subprocess.CalledProcessError as e:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/misc.py#L90",
      "snapshot": "source_snapshot/slime/utils/misc.py.txt",
      "symbol": "exec_command",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001275",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L2",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001276",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 44,
      "end_line": 44,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L44",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "register_default_process_group",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001277",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 79,
      "end_line": 79,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L79",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "_destroy_default_accelerator_process_group",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "default_process_group_states"
    },
    {
      "id": "occ-001278",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 79,
      "end_line": 79,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L79",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "_destroy_default_accelerator_process_group",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001279",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 109,
      "end_line": 109,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L109",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "_reload_default_process_group",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "default_process_group_states"
    },
    {
      "id": "occ-001280",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 109,
      "end_line": 109,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L109",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "_reload_default_process_group",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001281",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 146,
      "end_line": 146,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L146",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "monkey_patch_torch_dist",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001282",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 158,
      "end_line": 158,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        explicit_backend = args[2] if len(args) >= 3 else kwargs.get(\"backend\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L158",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "monkey_patch_torch_dist.new_group",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "kwargs"
    },
    {
      "id": "occ-001283",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 300,
      "end_line": 300,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L300",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.__init__",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001284",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 310,
      "end_line": 310,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L310",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.destroy_process_groups",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001285",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 311,
      "end_line": 311,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        for reloadable_group in ReloadableProcessGroup.GROUPS.get(pid, []):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L311",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.destroy_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ReloadableProcessGroup.GROUPS"
    },
    {
      "id": "occ-001286",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 328,
      "end_line": 328,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L328",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.invalidate_process_groups",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001287",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 329,
      "end_line": 329,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        for reloadable_group in ReloadableProcessGroup.GROUPS.get(pid, []):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L329",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.invalidate_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ReloadableProcessGroup.GROUPS"
    },
    {
      "id": "occ-001288",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 334,
      "end_line": 334,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        pid = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L334",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.reload_process_groups",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001289",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 335,
      "end_line": 335,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        reloadable_groups = ReloadableProcessGroup.GROUPS.get(pid, [])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L335",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.reload_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ReloadableProcessGroup.GROUPS"
    },
    {
      "id": "occ-001290",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 339,
      "end_line": 339,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            backend_counts[backend] = backend_counts.get(backend, 0) + 1",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L339",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.reload_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "backend_counts"
    },
    {
      "id": "occ-001291",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 346,
      "end_line": 346,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        old_new_group = old_new_group_dict.get(pid)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L346",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.reload_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "old_new_group_dict"
    },
    {
      "id": "occ-001292",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 367,
      "end_line": 367,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "            self.group.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L367",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.shutdown",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.group"
    },
    {
      "id": "occ-001293",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 371,
      "end_line": 371,
      "kind": "instance_candidate",
      "name": "abort",
      "source_line": "            self.group.abort()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L371",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "ReloadableProcessGroup.abort",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.group"
    },
    {
      "id": "occ-001294",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 470,
      "end_line": 470,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L470",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "destroy_process_groups",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "default_process_group_states"
    },
    {
      "id": "occ-001295",
      "file": "slime/utils/reloadable_process_group.py",
      "line": 470,
      "end_line": 470,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    state = default_process_group_states.get(os.getpid())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/reloadable_process_group.py#L470",
      "snapshot": "source_snapshot/slime/utils/reloadable_process_group.py.txt",
      "symbol": "destroy_process_groups",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001296",
      "file": "slime/utils/routed_experts.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L4",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001297",
      "file": "slime/utils/routed_experts.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "concurrent.futures.Future",
      "source_line": "from concurrent.futures import Future, ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L5",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "<module>",
      "topic_id": "future-test-double",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001298",
      "file": "slime/utils/routed_experts.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import Future, ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L5",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001299",
      "file": "slime/utils/routed_experts.py",
      "line": 149,
      "end_line": 149,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "            ThreadPoolExecutor(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L149",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatchPrefetcher.__init__",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001300",
      "file": "slime/utils/routed_experts.py",
      "line": 174,
      "end_line": 174,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        self.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L174",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatchPrefetcher.begin_pass",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-001301",
      "file": "slime/utils/routed_experts.py",
      "line": 181,
      "end_line": 181,
      "kind": "api_reference",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    def executor(self) -> ThreadPoolExecutor | None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L181",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatchPrefetcher",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001302",
      "file": "slime/utils/routed_experts.py",
      "line": 189,
      "end_line": 189,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "            self._executor.shutdown(wait=True, cancel_futures=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L189",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatchPrefetcher.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._executor"
    },
    {
      "id": "occ-001303",
      "file": "slime/utils/routed_experts.py",
      "line": 191,
      "end_line": 191,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "            source.release()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L191",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatchPrefetcher.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001304",
      "file": "slime/utils/routed_experts.py",
      "line": 211,
      "end_line": 211,
      "kind": "api_reference",
      "name": "concurrent.futures.Future",
      "source_line": "        self._future: Future | None = None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L211",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.__init__",
      "topic_id": "future-test-double",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001305",
      "file": "slime/utils/routed_experts.py",
      "line": 213,
      "end_line": 213,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "        self._lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L213",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001306",
      "file": "slime/utils/routed_experts.py",
      "line": 235,
      "end_line": 235,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "                self._future = executor.submit(self._load_and_prepare)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L235",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.prefetch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "executor"
    },
    {
      "id": "occ-001307",
      "file": "slime/utils/routed_experts.py",
      "line": 242,
      "end_line": 242,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            tensor = future.result() if future is not None else self._load_and_prepare()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L242",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch._get_cpu_tensor",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001308",
      "file": "slime/utils/routed_experts.py",
      "line": 262,
      "end_line": 262,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "                self.release()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L262",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.layer_to_cuda",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-001309",
      "file": "slime/utils/routed_experts.py",
      "line": 270,
      "end_line": 270,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "        if future is not None and not future.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L270",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001310",
      "file": "slime/utils/routed_experts.py",
      "line": 271,
      "end_line": 271,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            future.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime/utils/routed_experts.py#L271",
      "snapshot": "source_snapshot/slime/utils/routed_experts.py.txt",
      "symbol": "RoutedExpertsMicrobatch.release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-001311",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L6",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001312",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 113,
      "end_line": 116,
      "kind": "async_def",
      "name": "set_body_size",
      "source_line": "async def set_body_size(request: Request, call_next):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L113-L116",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001313",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 115,
      "end_line": 115,
      "kind": "await",
      "name": "await",
      "source_line": "    response = await call_next(request)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L115",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "set_body_size",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001314",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 232,
      "end_line": 232,
      "kind": "api_call",
      "name": "threading.RLock",
      "source_line": "        self.lock = threading.RLock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L232",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "RolloutBuffer.__init__",
      "topic_id": "threading-rlock",
      "lesson": "16-thread-coordination",
      "anchor": "rlock-reentrancy",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001315",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 233,
      "end_line": 233,
      "kind": "api_call",
      "name": "threading.Condition",
      "source_line": "        self.not_empty = threading.Condition(self.lock)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L233",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "RolloutBuffer.__init__",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001316",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 242,
      "end_line": 242,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "            self.not_empty.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L242",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "RolloutBuffer.write",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.not_empty"
    },
    {
      "id": "occ-001317",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 251,
      "end_line": 251,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            result = self.buffer.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L251",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "RolloutBuffer.read",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.buffer"
    },
    {
      "id": "occ-001318",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 260,
      "end_line": 274,
      "kind": "async_def",
      "name": "write_to_buffer",
      "source_line": "async def write_to_buffer(request: Request):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L260-L274",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001319",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 262,
      "end_line": 262,
      "kind": "await",
      "name": "await",
      "source_line": "        data = await request.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L262",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "write_to_buffer",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001320",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        item = buffer.write(data)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L263",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "write_to_buffer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "buffer"
    },
    {
      "id": "occ-001321",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 278,
      "end_line": 295,
      "kind": "async_def",
      "name": "get_rollout_data",
      "source_line": "async def get_rollout_data(request: Request):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L278-L295",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001322",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 279,
      "end_line": 279,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "    items = buffer.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L279",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "buffer"
    },
    {
      "id": "occ-001323",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 315,
      "end_line": 315,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        transform_group_func=generator_info.get(\"transform_group\", None),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L315",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "generator_info"
    },
    {
      "id": "occ-001324",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 316,
      "end_line": 316,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        is_valid_group_func=generator_info.get(\"is_valid_group\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L316",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "generator_info"
    },
    {
      "id": "occ-001325",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 317,
      "end_line": 317,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        get_group_data_meta_info_func=generator_info.get(\"get_group_data_meta_info\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L317",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "generator_info"
    },
    {
      "id": "occ-001326",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 326,
      "end_line": 329,
      "kind": "async_def",
      "name": "start_rollout",
      "source_line": "async def start_rollout(request: Request, background: BackgroundTasks):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L326-L329",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001327",
      "file": "slime_plugins/rollout_buffer/buffer.py",
      "line": 327,
      "end_line": 327,
      "kind": "await",
      "name": "await",
      "source_line": "    payload = await request.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/buffer.py#L327",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/buffer.py.txt",
      "symbol": "start_rollout",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001328",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L4",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001329",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "multiprocessing.Process",
      "source_line": "from multiprocessing import Process, Queue",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L7",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001330",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "multiprocessing.Queue",
      "source_line": "from multiprocessing import Process, Queue",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L7",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "<module>",
      "topic_id": "process-queues",
      "lesson": "18-process-lifecycle",
      "anchor": "process-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001331",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 8,
      "end_line": 8,
      "kind": "import",
      "name": "time.sleep",
      "source_line": "from time import sleep",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L8",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "<module>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001332",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 86,
      "end_line": 86,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                    sleep(10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L86",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "query_single_turn",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001333",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 138,
      "end_line": 138,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "        done_queue.put(output_item)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L138",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "worker_process",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "done_queue"
    },
    {
      "id": "occ-001334",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 140,
      "end_line": 140,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "    done_queue.put(\"COMPLETE\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L140",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "worker_process",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "done_queue"
    },
    {
      "id": "occ-001335",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 193,
      "end_line": 193,
      "kind": "api_call",
      "name": "multiprocessing.Queue",
      "source_line": "        task_queue, done_queue = Queue(maxsize=self.queue_size), Queue(maxsize=self.queue_size)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L193",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-queues",
      "lesson": "18-process-lifecycle",
      "anchor": "process-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001336",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 193,
      "end_line": 193,
      "kind": "api_call",
      "name": "multiprocessing.Queue",
      "source_line": "        task_queue, done_queue = Queue(maxsize=self.queue_size), Queue(maxsize=self.queue_size)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L193",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-queues",
      "lesson": "18-process-lifecycle",
      "anchor": "process-queue",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001337",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 224,
      "end_line": 224,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "                        task_queue.put(item_repeat)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L224",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run.read_data_into_queue",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task_queue"
    },
    {
      "id": "occ-001338",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 226,
      "end_line": 226,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(300)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L226",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run.read_data_into_queue",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001339",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 235,
      "end_line": 235,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "                task_queue.put(\"STOP\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L235",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run.read_data_into_queue",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task_queue"
    },
    {
      "id": "occ-001340",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 241,
      "end_line": 241,
      "kind": "api_call",
      "name": "multiprocessing.Process",
      "source_line": "            process = Process(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L241",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001341",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 245,
      "end_line": 245,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            process.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L245",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "process"
    },
    {
      "id": "occ-001342",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 248,
      "end_line": 248,
      "kind": "api_call",
      "name": "multiprocessing.Process",
      "source_line": "        process = Process(target=read_data_into_queue)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L248",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001343",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 249,
      "end_line": 249,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        process.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L249",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "inferred",
      "receiver_type": "multiprocessing.Process",
      "receiver": "process"
    },
    {
      "id": "occ-001344",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 254,
      "end_line": 254,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            item = done_queue.get()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L254",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "done_queue"
    },
    {
      "id": "occ-001345",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 263,
      "end_line": 263,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        progress_bar.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L263",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "BaseGenerator.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "progress_bar"
    },
    {
      "id": "occ-001346",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 280,
      "end_line": 280,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "    time.sleep(10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L280",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "run_rollout",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001347",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 292,
      "end_line": 292,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        num_process=int(data.get(\"num_process\", 100)),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L292",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data"
    },
    {
      "id": "occ-001348",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 294,
      "end_line": 294,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        skip_instance_ids=data.get(\"skip_instance_ids\", None),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L294",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data"
    },
    {
      "id": "occ-001349",
      "file": "slime_plugins/rollout_buffer/generator/base_generator.py",
      "line": 297,
      "end_line": 297,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    generator.entry(data[\"input_file\"], rollout_func, reward_func, int(data.get(\"num_epoch\", 1)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/generator/base_generator.py#L297",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/generator/base_generator.py.txt",
      "symbol": "run_rollout",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data"
    },
    {
      "id": "occ-001350",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L1",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001351",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L2",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001352",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 138,
      "end_line": 170,
      "kind": "async_def",
      "name": "get_rollout_data",
      "source_line": "async def get_rollout_data(api_base_url: str) -> tuple[list[dict[str, Any]], dict[str, Any]]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L138-L170",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001353",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 140,
      "end_line": 170,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession() as session:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L140-L170",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001354",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 142,
      "end_line": 148,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with session.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L142-L148",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001355",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 146,
      "end_line": 146,
      "kind": "await",
      "name": "await",
      "source_line": "                resp_json = await response.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L146",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001356",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 149,
      "end_line": 149,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(3)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L149",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001357",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 149,
      "end_line": 149,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(3)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L149",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "get_rollout_data",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001358",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 207,
      "end_line": 302,
      "kind": "async_def",
      "name": "generate_rollout_async",
      "source_line": "async def generate_rollout_async(args, rollout_id: int, data_buffer, evaluation: bool = False) -> dict[str, Any]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L207-L302",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001359",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 243,
      "end_line": 243,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L243",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001360",
      "file": "slime_plugins/rollout_buffer/rollout_buffer_example.py",
      "line": 244,
      "end_line": 244,
      "kind": "await",
      "name": "await",
      "source_line": "                data, meta_info = await get_rollout_data(api_base_url=base_url)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/slime_plugins/rollout_buffer/rollout_buffer_example.py#L244",
      "snapshot": "source_snapshot/slime_plugins/rollout_buffer/rollout_buffer_example.py.txt",
      "symbol": "generate_rollout_async",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001361",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "fcntl",
      "source_line": "import fcntl",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L3",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "<module>",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001362",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L4",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001363",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "signal",
      "source_line": "import signal",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L6",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "<module>",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001364",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L7",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001365",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L9",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001366",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 26,
      "end_line": 26,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    dev_list = \",\".join(str(x.gpu_id) for x in fd_locks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L26",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "main",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001367",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 34,
      "end_line": 34,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            fd_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L34",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "main",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fd_lock"
    },
    {
      "id": "occ-001368",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 43,
      "end_line": 43,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "    child = subprocess.Popen(cmd, start_new_session=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L43",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001369",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 46,
      "end_line": 46,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "        if child.poll() is None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L46",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001370",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 47,
      "end_line": 47,
      "kind": "instance_candidate",
      "name": "terminate",
      "source_line": "            child.terminate()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L47",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001371",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 49,
      "end_line": 49,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                child.wait(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L49",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001372",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_reference",
      "name": "subprocess.TimeoutExpired",
      "source_line": "            except subprocess.TimeoutExpired:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L51",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001373",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 55,
      "end_line": 55,
      "kind": "api_call",
      "name": "os.killpg",
      "source_line": "                os.killpg(child.pid, signum)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L55",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "process-group-signal",
      "lesson": "19-signals-locks",
      "anchor": "process-group",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001374",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 59,
      "end_line": 59,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                child.wait(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L59",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001375",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 60,
      "end_line": 60,
      "kind": "api_reference",
      "name": "subprocess.TimeoutExpired",
      "source_line": "            except subprocess.TimeoutExpired:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L60",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001376",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 62,
      "end_line": 62,
      "kind": "api_call",
      "name": "os.killpg",
      "source_line": "                    os.killpg(child.pid, signal.SIGKILL)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L62",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "process-group-signal",
      "lesson": "19-signals-locks",
      "anchor": "process-group",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001377",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 62,
      "end_line": 62,
      "kind": "api_reference",
      "name": "signal.SIGKILL",
      "source_line": "                    os.killpg(child.pid, signal.SIGKILL)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L62",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001378",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 65,
      "end_line": 65,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                child.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L65",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command.terminate_child",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001379",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 69,
      "end_line": 69,
      "kind": "api_reference",
      "name": "signal.SIGINT",
      "source_line": "    for signum in (signal.SIGINT, signal.SIGTERM, signal.SIGHUP):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L69",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001380",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 69,
      "end_line": 69,
      "kind": "api_reference",
      "name": "signal.SIGTERM",
      "source_line": "    for signum in (signal.SIGINT, signal.SIGTERM, signal.SIGHUP):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L69",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001381",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 69,
      "end_line": 69,
      "kind": "api_reference",
      "name": "signal.SIGHUP",
      "source_line": "    for signum in (signal.SIGINT, signal.SIGTERM, signal.SIGHUP):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L69",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001382",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 70,
      "end_line": 70,
      "kind": "api_call",
      "name": "signal.getsignal",
      "source_line": "        previous_handlers[signum] = signal.getsignal(signum)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L70",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001383",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 71,
      "end_line": 71,
      "kind": "api_call",
      "name": "signal.signal",
      "source_line": "        signal.signal(signum, terminate_child)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L71",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001384",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 75,
      "end_line": 75,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "            returncode = child.poll()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L75",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "child"
    },
    {
      "id": "occ-001385",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 78,
      "end_line": 78,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L78",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001386",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 81,
      "end_line": 81,
      "kind": "api_call",
      "name": "signal.signal",
      "source_line": "            signal.signal(signum, handler)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L81",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_run_command",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001387",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 127,
      "end_line": 127,
      "kind": "api_call",
      "name": "fcntl.flock",
      "source_line": "                fcntl.flock(fd_lock.fd, fcntl.LOCK_UN)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L127",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_execute_print_only",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001388",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 127,
      "end_line": 127,
      "kind": "api_reference",
      "name": "fcntl.LOCK_UN",
      "source_line": "                fcntl.flock(fd_lock.fd, fcntl.LOCK_UN)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L127",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_execute_print_only",
      "topic_id": "file-lock-release",
      "lesson": "19-signals-locks",
      "anchor": "lock-release",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001389",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 131,
      "end_line": 131,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            fd_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L131",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_execute_print_only",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fd_lock"
    },
    {
      "id": "occ-001390",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 135,
      "end_line": 135,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    print(\"Free GPUs:\", \",\".join(str(x) for x in free), flush=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L135",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_execute_print_only",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001391",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 161,
      "end_line": 161,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                    time.sleep(SLEEP_BACKOFF * random.random())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L161",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_try_acquire_specific",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001392",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 167,
      "end_line": 167,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            fd_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L167",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_try_acquire_specific",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fd_lock"
    },
    {
      "id": "occ-001393",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 182,
      "end_line": 182,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                fd_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L182",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_try_acquire_count",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fd_lock"
    },
    {
      "id": "occ-001394",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 191,
      "end_line": 191,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            fd_lock.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L191",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_try_acquire_count",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fd_lock"
    },
    {
      "id": "occ-001395",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 198,
      "end_line": 198,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(SLEEP_BACKOFF * random.random())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L198",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_try_acquire_count",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001396",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 213,
      "end_line": 213,
      "kind": "api_call",
      "name": "fcntl.flock",
      "source_line": "        fcntl.flock(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L213",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "FdLock.lock",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001397",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 213,
      "end_line": 213,
      "kind": "api_reference",
      "name": "fcntl.LOCK_EX",
      "source_line": "        fcntl.flock(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L213",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "FdLock.lock",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001398",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 213,
      "end_line": 213,
      "kind": "api_reference",
      "name": "fcntl.LOCK_NB",
      "source_line": "        fcntl.flock(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L213",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "FdLock.lock",
      "topic_id": "file-lock-ownership",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001399",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 218,
      "end_line": 218,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            self.fd.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L218",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "FdLock.close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.fd"
    },
    {
      "id": "occ-001400",
      "file": "tests/ci/gpu_lock_exec.py",
      "line": 231,
      "end_line": 231,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            open(p, \"a\").close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/ci/gpu_lock_exec.py#L231",
      "snapshot": "source_snapshot/tests/ci/gpu_lock_exec.py.txt",
      "symbol": "_ensure_lock_files",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "open(p, \"a\")"
    },
    {
      "id": "occ-001401",
      "file": "tests/fanout_test_helpers.py",
      "line": 39,
      "end_line": 70,
      "kind": "async_def",
      "name": "compact_generate",
      "source_line": "async def compact_generate(args, sample, sampling_params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/fanout_test_helpers.py#L39-L70",
      "snapshot": "source_snapshot/tests/fanout_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001402",
      "file": "tests/fanout_test_helpers.py",
      "line": 52,
      "end_line": 52,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                f.write(f\"{sample.index}\\n\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/fanout_test_helpers.py#L52",
      "snapshot": "source_snapshot/tests/fanout_test_helpers.py.txt",
      "symbol": "compact_generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-001403",
      "file": "tests/fanout_test_helpers.py",
      "line": 57,
      "end_line": 57,
      "kind": "await",
      "name": "await",
      "source_line": "    base_sample = await generate(args, sample, sampling_params)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/fanout_test_helpers.py#L57",
      "snapshot": "source_snapshot/tests/fanout_test_helpers.py.txt",
      "symbol": "compact_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001404",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L5",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001405",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 8,
      "end_line": 8,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L8",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001406",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 21,
      "end_line": 38,
      "kind": "async_def",
      "name": "reward",
      "source_line": "async def reward(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L21-L38",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001407",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 46,
      "end_line": 46,
      "kind": "api_call",
      "name": "threading.Condition",
      "source_line": "        self.condition = threading.Condition()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L46",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.__init__",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001408",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 49,
      "end_line": 49,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "        self.thread = threading.Thread(target=self.run, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L49",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001409",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 76,
      "end_line": 76,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                                \"finish_reason\": meta.get(\"finish_reason\"),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L76",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "meta"
    },
    {
      "id": "occ-001410",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 80,
      "end_line": 80,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                        self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L80",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001411",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 86,
      "end_line": 86,
      "kind": "instance_candidate",
      "name": "notify_all",
      "source_line": "                self.condition.notify_all()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L86",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.run",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001412",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 90,
      "end_line": 90,
      "kind": "instance_candidate",
      "name": "wait_for",
      "source_line": "            ready = self.condition.wait_for(lambda: self.error or self.done or predicate(self.events), timeout=180)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L90",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.wait",
      "topic_id": "threading-condition",
      "lesson": "16-thread-coordination",
      "anchor": "condition-predicate",
      "status": "inferred",
      "receiver_type": "threading.Condition",
      "receiver": "self.condition"
    },
    {
      "id": "occ-001413",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 97,
      "end_line": 97,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        self.wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L97",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-001414",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 110,
      "end_line": 110,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        self.thread.join(timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L110",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-001415",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 111,
      "end_line": 111,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "        assert not self.thread.is_alive()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L111",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-001416",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 115,
      "end_line": 115,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        self.wait(lambda events: bool(events) and events[-1][\"finish_reason\"] is not None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L115",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify_flush",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self"
    },
    {
      "id": "occ-001417",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 116,
      "end_line": 116,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        self.thread.join(timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L116",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify_flush",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-001418",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 117,
      "end_line": 117,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "        assert not self.thread.is_alive()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L117",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "GenerationProbe.verify_flush",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "self.thread"
    },
    {
      "id": "occ-001419",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "    _probes.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L132",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "start_probes",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "_probes"
    },
    {
      "id": "occ-001420",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 136,
      "end_line": 136,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        probe.thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L136",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "start_probes",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "probe.thread"
    },
    {
      "id": "occ-001421",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 138,
      "end_line": 138,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        probe.wait(lambda events: bool(events) and events[-1][\"tokens\"] >= 16)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L138",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "start_probes",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "probe"
    },
    {
      "id": "occ-001422",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 159,
      "end_line": 159,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        with ThreadPoolExecutor(max_workers=len(_probes)) as pool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L159",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "before_train_step",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001423",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 160,
      "end_line": 160,
      "kind": "instance_candidate",
      "name": "map",
      "source_line": "            _records[\"continuous\"] = list(pool.map(lambda probe: probe.verify(), _probes))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L160",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "before_train_step",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "pool"
    },
    {
      "id": "occ-001424",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 164,
      "end_line": 164,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        with ThreadPoolExecutor(max_workers=len(_probes)) as pool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L164",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "before_train_step",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001425",
      "file": "tests/pipeline_rl_test_helpers.py",
      "line": 166,
      "end_line": 166,
      "kind": "instance_candidate",
      "name": "map",
      "source_line": "                pool.map(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/pipeline_rl_test_helpers.py#L166",
      "snapshot": "source_snapshot/tests/pipeline_rl_test_helpers.py.txt",
      "symbol": "before_train_step",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "pool"
    },
    {
      "id": "occ-001426",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L3",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001427",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 75,
      "end_line": 81,
      "kind": "async_def",
      "name": "custom_generate",
      "source_line": "async def custom_generate(args, sample: Sample, sampling_params: dict):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L75-L81",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001428",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 84,
      "end_line": 91,
      "kind": "async_def",
      "name": "custom_generate_with_evaluation",
      "source_line": "async def custom_generate_with_evaluation(args, sample: Sample, sampling_params: dict, evaluation: bool = False):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L84-L91",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001429",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 108,
      "end_line": 109,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L108-L109",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "_DummySemaphore",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001430",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 111,
      "end_line": 112,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, exc_type, exc, tb):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L111-L112",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "_DummySemaphore",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001431",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 133,
      "end_line": 139,
      "kind": "async_def",
      "name": "official_default_generate",
      "source_line": "    async def official_default_generate(args, sample: Sample, sampling_params: dict):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L133-L139",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_generate_and_rm_default_generate_branch_is_stable",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001432",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 143,
      "end_line": 143,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L143",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_generate_and_rm_default_generate_branch_is_stable",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001433",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 158,
      "end_line": 158,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(generate_and_rm(args, sample, sampling_params={\"temperature\": 0.3}, evaluation=True))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L158",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_generate_and_rm_prefers_per_sample_generate_function",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001434",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 169,
      "end_line": 169,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L169",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_custom_generate_function_path_supports_user_override",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001435",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 183,
      "end_line": 186,
      "kind": "async_def",
      "name": "custom_generate_list",
      "source_line": "    async def custom_generate_list(args, sample: Sample, sampling_params: dict):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L183-L186",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_generate_and_rm_group_rm_accepts_list_result_from_custom_generate",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001436",
      "file": "tests/plugin_contracts/test_plugin_generate_contracts.py",
      "line": 190,
      "end_line": 190,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_generate_contracts.py#L190",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_generate_contracts.py.txt",
      "symbol": "test_generate_and_rm_group_rm_accepts_list_result_from_custom_generate",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001437",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L3",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001438",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 123,
      "end_line": 123,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    keep = not any(sample.metadata.get(\"drop\") for sample in samples)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L123",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "reference_dynamic_filter.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.metadata"
    },
    {
      "id": "occ-001439",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 143,
      "end_line": 144,
      "kind": "async_def",
      "name": "reference_single_rm",
      "source_line": "async def reference_single_rm(args, sample: Sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L143-L144",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001440",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 147,
      "end_line": 148,
      "kind": "async_def",
      "name": "reference_batched_rm",
      "source_line": "async def reference_batched_rm(args, samples: list[Sample], **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L147-L148",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001441",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 334,
      "end_line": 334,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    reward = asyncio.run(async_rm(make_args(rm_type=\"random\"), make_sample(4)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L334",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "test_custom_rm_default_behavior_is_stable",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001442",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 335,
      "end_line": 335,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    rewards = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L335",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "test_custom_rm_default_behavior_is_stable",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001443",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 347,
      "end_line": 347,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        rewards = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L347",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "test_custom_rm_path_aligns_with_expected_format",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001444",
      "file": "tests/plugin_contracts/test_plugin_path_loading_contracts.py",
      "line": 360,
      "end_line": 360,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        reward = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/plugin_contracts/test_plugin_path_loading_contracts.py#L360",
      "snapshot": "source_snapshot/tests/plugin_contracts/test_plugin_path_loading_contracts.py.txt",
      "symbol": "test_custom_rm_path_aligns_with_expected_format",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001445",
      "file": "tests/rollout_health_test_helpers.py",
      "line": 15,
      "end_line": 16,
      "kind": "async_def",
      "name": "reward",
      "source_line": "async def reward(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/rollout_health_test_helpers.py#L15-L16",
      "snapshot": "source_snapshot/tests/rollout_health_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001446",
      "file": "tests/rollout_health_test_helpers.py",
      "line": 36,
      "end_line": 56,
      "kind": "async_def",
      "name": "crash_then_abort",
      "source_line": "    async def crash_then_abort(config, current_rollout):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/rollout_health_test_helpers.py#L36-L56",
      "snapshot": "source_snapshot/tests/rollout_health_test_helpers.py.txt",
      "symbol": "generate_rollout",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001447",
      "file": "tests/rollout_health_test_helpers.py",
      "line": 48,
      "end_line": 48,
      "kind": "await",
      "name": "await",
      "source_line": "        result = await original_abort(config, current_rollout)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/rollout_health_test_helpers.py#L48",
      "snapshot": "source_snapshot/tests/rollout_health_test_helpers.py.txt",
      "symbol": "generate_rollout.crash_then_abort",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001448",
      "file": "tests/test_agent/_fakes.py",
      "line": 29,
      "end_line": 29,
      "kind": "import",
      "name": "collections.abc.Awaitable",
      "source_line": "from collections.abc import Awaitable, Callable",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L29",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "<module>",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001449",
      "file": "tests/test_agent/_fakes.py",
      "line": 82,
      "end_line": 82,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        return \" \".join(self._inv[i] for i in ids if i in self._inv and i not in _SPECIAL_IDS)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L82",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer.decode",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001450",
      "file": "tests/test_agent/_fakes.py",
      "line": 86,
      "end_line": 86,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        c = message.get(\"content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L86",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "message"
    },
    {
      "id": "occ-001451",
      "file": "tests/test_agent/_fakes.py",
      "line": 88,
      "end_line": 88,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        reasoning = message.get(\"reasoning_content\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L88",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "message"
    },
    {
      "id": "occ-001452",
      "file": "tests/test_agent/_fakes.py",
      "line": 95,
      "end_line": 95,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                if isinstance(b, dict) and b.get(\"type\") == \"text\":",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L95",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-001453",
      "file": "tests/test_agent/_fakes.py",
      "line": 96,
      "end_line": 96,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                    parts.append(str(b.get(\"text\", \"\")))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L96",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-001454",
      "file": "tests/test_agent/_fakes.py",
      "line": 97,
      "end_line": 97,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        for call in message.get(\"tool_calls\") or []:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L97",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "message"
    },
    {
      "id": "occ-001455",
      "file": "tests/test_agent/_fakes.py",
      "line": 98,
      "end_line": 98,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            fn = call.get(\"function\") or {}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L98",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "call"
    },
    {
      "id": "occ-001456",
      "file": "tests/test_agent/_fakes.py",
      "line": 99,
      "end_line": 99,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            parts.append(f\"toolcall:{fn.get('name', '')}\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L99",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fn"
    },
    {
      "id": "occ-001457",
      "file": "tests/test_agent/_fakes.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        return \" \".join(p for p in parts if p)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L100",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer._content_text",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001458",
      "file": "tests/test_agent/_fakes.py",
      "line": 106,
      "end_line": 106,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            role = m.get(\"role\", \"user\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L106",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer.apply_chat_template",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "m"
    },
    {
      "id": "occ-001459",
      "file": "tests/test_agent/_fakes.py",
      "line": 107,
      "end_line": 107,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            out.append(_ROLE_BEGIN.get(role, _ROLE_BEGIN[\"user\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L107",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeTokenizer.apply_chat_template",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "_ROLE_BEGIN"
    },
    {
      "id": "occ-001460",
      "file": "tests/test_agent/_fakes.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        return self.outputs.get(tuple(ids), \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L132",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "ScriptedTokenizer.decode",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.outputs"
    },
    {
      "id": "occ-001461",
      "file": "tests/test_agent/_fakes.py",
      "line": 157,
      "end_line": 169,
      "kind": "async_def",
      "name": "_handle",
      "source_line": "    async def _handle(self, request: web.Request) -> web.Response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L157-L169",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001462",
      "file": "tests/test_agent/_fakes.py",
      "line": 158,
      "end_line": 158,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        self.routing_keys.append(request.headers.get(\"X-SMG-Routing-Key\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L158",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer._handle",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request.headers"
    },
    {
      "id": "occ-001463",
      "file": "tests/test_agent/_fakes.py",
      "line": 159,
      "end_line": 159,
      "kind": "await",
      "name": "await",
      "source_line": "        self.requests.append(await request.json())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L159",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer._handle",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001464",
      "file": "tests/test_agent/_fakes.py",
      "line": 171,
      "end_line": 179,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self) -> FakeSGLangServer:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L171-L179",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001465",
      "file": "tests/test_agent/_fakes.py",
      "line": 177,
      "end_line": 177,
      "kind": "await",
      "name": "await",
      "source_line": "        await self._server.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L177",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer.__aenter__",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001466",
      "file": "tests/test_agent/_fakes.py",
      "line": 181,
      "end_line": 183,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, *exc) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L181-L183",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001467",
      "file": "tests/test_agent/_fakes.py",
      "line": 183,
      "end_line": 183,
      "kind": "await",
      "name": "await",
      "source_line": "            await self._server.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L183",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer.__aexit__",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001468",
      "file": "tests/test_agent/_fakes.py",
      "line": 183,
      "end_line": 183,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            await self._server.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L183",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSGLangServer.__aexit__",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self._server"
    },
    {
      "id": "occ-001469",
      "file": "tests/test_agent/_fakes.py",
      "line": 197,
      "end_line": 208,
      "kind": "async_def",
      "name": "_fake",
      "source_line": "    async def _fake(prompt_ids, session, body, *, adapter, session_id=None) -> TurnRecord:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L197-L208",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "fake_call_sglang_generate",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001470",
      "file": "tests/test_agent/_fakes.py",
      "line": 240,
      "end_line": 240,
      "kind": "api_reference",
      "name": "collections.abc.Awaitable",
      "source_line": "        on_launch: Callable[[dict], Awaitable[int]] | None = None,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L240",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "async-type-annotations",
      "lesson": "21-async-inspection",
      "anchor": "async-type-annotations",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001471",
      "file": "tests/test_agent/_fakes.py",
      "line": 260,
      "end_line": 261,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self) -> FakeSandbox:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L260-L261",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001472",
      "file": "tests/test_agent/_fakes.py",
      "line": 263,
      "end_line": 264,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, *exc) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L263-L264",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001473",
      "file": "tests/test_agent/_fakes.py",
      "line": 266,
      "end_line": 288,
      "kind": "async_def",
      "name": "exec",
      "source_line": "    async def exec(self, cmd, *, user=\"root\", env=None, timeout=120, check=False, idempotent=True):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L266-L288",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001474",
      "file": "tests/test_agent/_fakes.py",
      "line": 271,
      "end_line": 271,
      "kind": "await",
      "name": "await",
      "source_line": "            code = await self.on_launch(env or {})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L271",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox.exec",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001475",
      "file": "tests/test_agent/_fakes.py",
      "line": 290,
      "end_line": 291,
      "kind": "async_def",
      "name": "write_file",
      "source_line": "    async def write_file(self, sandbox_path, content, *, user=\"root\") -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L290-L291",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001476",
      "file": "tests/test_agent/_fakes.py",
      "line": 293,
      "end_line": 294,
      "kind": "async_def",
      "name": "read_file",
      "source_line": "    async def read_file(self, sandbox_path, *, user=\"root\") -> str:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L293-L294",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001477",
      "file": "tests/test_agent/_fakes.py",
      "line": 294,
      "end_line": 294,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        return _as_str(self.files.get(sandbox_path, \"\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/_fakes.py#L294",
      "snapshot": "source_snapshot/tests/test_agent/_fakes.py.txt",
      "symbol": "FakeSandbox.read_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.files"
    },
    {
      "id": "occ-001478",
      "file": "tests/test_agent/test_adapters.py",
      "line": 16,
      "end_line": 16,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L16",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001479",
      "file": "tests/test_agent/test_adapters.py",
      "line": 57,
      "end_line": 57,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            data = \"\\n\".join(data_lines)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L57",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "_parse_sse.flush",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-001480",
      "file": "tests/test_agent/test_adapters.py",
      "line": 73,
      "end_line": 74,
      "kind": "async_def",
      "name": "_drain",
      "source_line": "async def _drain(adapter, sid) -> list[Sample]:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L73-L74",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001481",
      "file": "tests/test_agent/test_adapters.py",
      "line": 74,
      "end_line": 74,
      "kind": "await",
      "name": "await",
      "source_line": "    return await adapter.finish_session(sid, base_sample=Sample(index=0, prompt=\"\"), reward=1.0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L74",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "_drain",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001482",
      "file": "tests/test_agent/test_adapters.py",
      "line": 169,
      "end_line": 199,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L169-L199",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001483",
      "file": "tests/test_agent/test_adapters.py",
      "line": 170,
      "end_line": 185,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.1, 101), (-0.2, 102)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L170-L185",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001484",
      "file": "tests/test_agent/test_adapters.py",
      "line": 175,
      "end_line": 175,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L175",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001485",
      "file": "tests/test_agent/test_adapters.py",
      "line": 177,
      "end_line": 181,
      "kind": "await",
      "name": "await",
      "source_line": "                resp = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L177-L181",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001486",
      "file": "tests/test_agent/test_adapters.py",
      "line": 182,
      "end_line": 182,
      "kind": "await",
      "name": "await",
      "source_line": "                data = await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L182",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001487",
      "file": "tests/test_agent/test_adapters.py",
      "line": 184,
      "end_line": 184,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L184",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001488",
      "file": "tests/test_agent/test_adapters.py",
      "line": 184,
      "end_line": 184,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L184",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001489",
      "file": "tests/test_agent/test_adapters.py",
      "line": 185,
      "end_line": 185,
      "kind": "await",
      "name": "await",
      "source_line": "            samples = await _drain(adapter, \"sid-a\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L185",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001490",
      "file": "tests/test_agent/test_adapters.py",
      "line": 201,
      "end_line": 201,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L201",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_nonstream_records_token_segments",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001491",
      "file": "tests/test_agent/test_adapters.py",
      "line": 205,
      "end_line": 228,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L205-L228",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001492",
      "file": "tests/test_agent/test_adapters.py",
      "line": 206,
      "end_line": 221,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.3, 201)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L206-L221",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001493",
      "file": "tests/test_agent/test_adapters.py",
      "line": 211,
      "end_line": 211,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L211",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001494",
      "file": "tests/test_agent/test_adapters.py",
      "line": 213,
      "end_line": 217,
      "kind": "await",
      "name": "await",
      "source_line": "                resp = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L213-L217",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001495",
      "file": "tests/test_agent/test_adapters.py",
      "line": 218,
      "end_line": 218,
      "kind": "await",
      "name": "await",
      "source_line": "                data = await resp.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L218",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001496",
      "file": "tests/test_agent/test_adapters.py",
      "line": 220,
      "end_line": 220,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L220",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001497",
      "file": "tests/test_agent/test_adapters.py",
      "line": 220,
      "end_line": 220,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L220",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001498",
      "file": "tests/test_agent/test_adapters.py",
      "line": 221,
      "end_line": 221,
      "kind": "await",
      "name": "await",
      "source_line": "            samples = await _drain(adapter, \"sid-o\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L221",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001499",
      "file": "tests/test_agent/test_adapters.py",
      "line": 230,
      "end_line": 230,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L230",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_nonstream_records_token_segments",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001500",
      "file": "tests/test_agent/test_adapters.py",
      "line": 239,
      "end_line": 267,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L239-L267",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001501",
      "file": "tests/test_agent/test_adapters.py",
      "line": 240,
      "end_line": 260,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.1, 301)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L240-L260",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001502",
      "file": "tests/test_agent/test_adapters.py",
      "line": 245,
      "end_line": 245,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L245",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001503",
      "file": "tests/test_agent/test_adapters.py",
      "line": 247,
      "end_line": 256,
      "kind": "await",
      "name": "await",
      "source_line": "                resp = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L247-L256",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001504",
      "file": "tests/test_agent/test_adapters.py",
      "line": 257,
      "end_line": 257,
      "kind": "await",
      "name": "await",
      "source_line": "                raw = await resp.text()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L257",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001505",
      "file": "tests/test_agent/test_adapters.py",
      "line": 259,
      "end_line": 259,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L259",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001506",
      "file": "tests/test_agent/test_adapters.py",
      "line": 259,
      "end_line": 259,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L259",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001507",
      "file": "tests/test_agent/test_adapters.py",
      "line": 260,
      "end_line": 260,
      "kind": "await",
      "name": "await",
      "source_line": "            await _drain(adapter, \"sid-as\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L260",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001508",
      "file": "tests/test_agent/test_adapters.py",
      "line": 267,
      "end_line": 267,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        assert any(d[\"delta\"].get(\"text\") == \"streamed\" for d in deltas)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L267",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks.run_case.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "d[\"delta\"]"
    },
    {
      "id": "occ-001509",
      "file": "tests/test_agent/test_adapters.py",
      "line": 269,
      "end_line": 269,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L269",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_messages_streams_blocks",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001510",
      "file": "tests/test_agent/test_adapters.py",
      "line": 273,
      "end_line": 295,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L273-L295",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001511",
      "file": "tests/test_agent/test_adapters.py",
      "line": 274,
      "end_line": 289,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.1, 401)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L274-L289",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001512",
      "file": "tests/test_agent/test_adapters.py",
      "line": 279,
      "end_line": 279,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L279",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001513",
      "file": "tests/test_agent/test_adapters.py",
      "line": 281,
      "end_line": 285,
      "kind": "await",
      "name": "await",
      "source_line": "                resp = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L281-L285",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001514",
      "file": "tests/test_agent/test_adapters.py",
      "line": 286,
      "end_line": 286,
      "kind": "await",
      "name": "await",
      "source_line": "                raw = await resp.text()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L286",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001515",
      "file": "tests/test_agent/test_adapters.py",
      "line": 288,
      "end_line": 288,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L288",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001516",
      "file": "tests/test_agent/test_adapters.py",
      "line": 288,
      "end_line": 288,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L288",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001517",
      "file": "tests/test_agent/test_adapters.py",
      "line": 289,
      "end_line": 289,
      "kind": "await",
      "name": "await",
      "source_line": "            await _drain(adapter, \"sid-os\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L289",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001518",
      "file": "tests/test_agent/test_adapters.py",
      "line": 297,
      "end_line": 297,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L297",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_openai_chat_completions_streams_chunks_until_done",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001519",
      "file": "tests/test_agent/test_adapters.py",
      "line": 313,
      "end_line": 373,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L313-L373",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001520",
      "file": "tests/test_agent/test_adapters.py",
      "line": 315,
      "end_line": 359,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.5, 700), (-0.5, 701)], [(-0.4, 800)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L315-L359",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001521",
      "file": "tests/test_agent/test_adapters.py",
      "line": 320,
      "end_line": 320,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L320",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001522",
      "file": "tests/test_agent/test_adapters.py",
      "line": 325,
      "end_line": 334,
      "kind": "await",
      "name": "await",
      "source_line": "                first = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L325-L334",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001523",
      "file": "tests/test_agent/test_adapters.py",
      "line": 335,
      "end_line": 335,
      "kind": "await",
      "name": "await",
      "source_line": "                fdata = await first.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L335",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001524",
      "file": "tests/test_agent/test_adapters.py",
      "line": 337,
      "end_line": 355,
      "kind": "await",
      "name": "await",
      "source_line": "                second = await client.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L337-L355",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001525",
      "file": "tests/test_agent/test_adapters.py",
      "line": 356,
      "end_line": 356,
      "kind": "await",
      "name": "await",
      "source_line": "                await second.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L356",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001526",
      "file": "tests/test_agent/test_adapters.py",
      "line": 358,
      "end_line": 358,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L358",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001527",
      "file": "tests/test_agent/test_adapters.py",
      "line": 358,
      "end_line": 358,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L358",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001528",
      "file": "tests/test_agent/test_adapters.py",
      "line": 359,
      "end_line": 359,
      "kind": "await",
      "name": "await",
      "source_line": "            samples = await _drain(adapter, \"sid-mt\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L359",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001529",
      "file": "tests/test_agent/test_adapters.py",
      "line": 375,
      "end_line": 375,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L375",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_anthropic_multiturn_wire_roundtrip_and_token_capture",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001530",
      "file": "tests/test_agent/test_adapters.py",
      "line": 384,
      "end_line": 400,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L384-L400",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001531",
      "file": "tests/test_agent/test_adapters.py",
      "line": 385,
      "end_line": 398,
      "kind": "async_with",
      "name": "async with",
      "source_line": "        async with FakeSGLangServer([[(-0.1, 501)], [(-0.1, 502)]]) as sglang:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L385-L398",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001532",
      "file": "tests/test_agent/test_adapters.py",
      "line": 390,
      "end_line": 390,
      "kind": "await",
      "name": "await",
      "source_line": "            await client.start_server()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L390",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001533",
      "file": "tests/test_agent/test_adapters.py",
      "line": 394,
      "end_line": 394,
      "kind": "await",
      "name": "await",
      "source_line": "                first = await client.post(\"/v1/messages\", headers=h, json=body)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L394",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001534",
      "file": "tests/test_agent/test_adapters.py",
      "line": 395,
      "end_line": 395,
      "kind": "await",
      "name": "await",
      "source_line": "                second = await client.post(\"/v1/messages\", headers=h, json=body)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L395",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001535",
      "file": "tests/test_agent/test_adapters.py",
      "line": 397,
      "end_line": 397,
      "kind": "await",
      "name": "await",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L397",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001536",
      "file": "tests/test_agent/test_adapters.py",
      "line": 397,
      "end_line": 397,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                await client.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L397",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "client"
    },
    {
      "id": "occ-001537",
      "file": "tests/test_agent/test_adapters.py",
      "line": 398,
      "end_line": 398,
      "kind": "await",
      "name": "await",
      "source_line": "            await _drain(adapter, \"sid-cap\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L398",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001538",
      "file": "tests/test_agent/test_adapters.py",
      "line": 402,
      "end_line": 402,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L402",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_max_turns_per_sid_returns_429",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001539",
      "file": "tests/test_agent/test_adapters.py",
      "line": 418,
      "end_line": 418,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    assert any(b.get(\"text\", \"\").startswith(\"<system-reminder>\") for b in folded)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_adapters.py#L418",
      "snapshot": "source_snapshot/tests/test_agent/test_adapters.py.txt",
      "symbol": "test_mid_list_system_folds_into_user.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "b"
    },
    {
      "id": "occ-001540",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 26,
      "end_line": 26,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L26",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001541",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 27,
      "end_line": 27,
      "kind": "import",
      "name": "contextlib",
      "source_line": "import contextlib",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L27",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001542",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 56,
      "end_line": 56,
      "kind": "api_reference",
      "name": "asyncio",
      "source_line": "if not hasattr(asyncio, \"timeout\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L56",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001543",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 58,
      "end_line": 58,
      "kind": "api_reference",
      "name": "contextlib.asynccontextmanager",
      "source_line": "    @contextlib.asynccontextmanager",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L58",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001544",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 59,
      "end_line": 60,
      "kind": "async_generator_def",
      "name": "_timeout_shim",
      "source_line": "    async def _timeout_shim(_delay):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L59-L60",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001545",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 60,
      "end_line": 60,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "        yield",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L60",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_timeout_shim",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001546",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 62,
      "end_line": 62,
      "kind": "api_reference",
      "name": "asyncio.timeout",
      "source_line": "    asyncio.timeout = _timeout_shim",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L62",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001547",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 78,
      "end_line": 78,
      "kind": "api_reference",
      "name": "asyncio.sleep",
      "source_line": "_REAL_SLEEP = asyncio.sleep",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L78",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001548",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 81,
      "end_line": 82,
      "kind": "async_def",
      "name": "_fast_sleep",
      "source_line": "async def _fast_sleep(_secs):  # collapse run_command's 5s poll loop",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L81-L82",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001549",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 82,
      "end_line": 82,
      "kind": "await",
      "name": "await",
      "source_line": "    await _REAL_SLEEP(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L82",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_fast_sleep",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001550",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 108,
      "end_line": 124,
      "kind": "async_def",
      "name": "_anthropic_agent",
      "source_line": "async def _anthropic_agent(env: dict, *, n_turns: int = 2) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L108-L124",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001551",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 114,
      "end_line": 123,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession(trust_env=False) as sess:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L114-L123",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_anthropic_agent",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001552",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 116,
      "end_line": 121,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with sess.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L116-L121",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_anthropic_agent",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001553",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 121,
      "end_line": 121,
      "kind": "await",
      "name": "await",
      "source_line": "                data = await r.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L121",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_anthropic_agent",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001554",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 157,
      "end_line": 158,
      "kind": "async_def",
      "name": "_noop_install",
      "source_line": "async def _noop_install(self, sb) -> None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L157-L158",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001555",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 176,
      "end_line": 191,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case(monkeypatch):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L176-L191",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_produces_trained_samples",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001556",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 181,
      "end_line": 181,
      "kind": "await",
      "name": "await",
      "source_line": "        samples = await gen.generate(_args(), _base_sample(), sampling_params={\"max_new_tokens\": 32})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L181",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_produces_trained_samples.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001557",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 188,
      "end_line": 188,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            assert s.metadata.get(\"agent_exit_code\") == 0",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L188",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_produces_trained_samples.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "s.metadata"
    },
    {
      "id": "occ-001558",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 194,
      "end_line": 194,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(run_case(mp))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L194",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_produces_trained_samples",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001559",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 201,
      "end_line": 202,
      "kind": "async_def",
      "name": "silent_agent",
      "source_line": "    async def silent_agent(_env) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L201-L202",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_empty_trajectory",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001560",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 204,
      "end_line": 213,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case(monkeypatch):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L204-L213",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_empty_trajectory",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001561",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 209,
      "end_line": 209,
      "kind": "await",
      "name": "await",
      "source_line": "        samples = await gen.generate(_args(), _base_sample(), sampling_params={})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L209",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_empty_trajectory.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001562",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 213,
      "end_line": 213,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        assert samples[0].metadata.get(\"abort_reason\") == \"adapter_session_empty\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L213",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_empty_trajectory.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "samples[0].metadata"
    },
    {
      "id": "occ-001563",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 216,
      "end_line": 216,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(run_case(mp))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L216",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_empty_trajectory",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001564",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 220,
      "end_line": 227,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case(monkeypatch):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L220-L227",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_missing_image",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001565",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 224,
      "end_line": 224,
      "kind": "await",
      "name": "await",
      "source_line": "        samples = await gen.generate(_args(), _base_sample(image=\"\"), sampling_params={})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L224",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_missing_image.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001566",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 227,
      "end_line": 227,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        assert samples[0].metadata.get(\"abort_reason\") == \"missing_image_or_workdir\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L227",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_missing_image.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "samples[0].metadata"
    },
    {
      "id": "occ-001567",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 230,
      "end_line": 230,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(run_case(mp))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L230",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_generate_aborts_on_missing_image",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001568",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 238,
      "end_line": 253,
      "kind": "async_def",
      "name": "_codex_agent",
      "source_line": "async def _codex_agent(env: dict, *, n_turns: int = 2) -> int:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L238-L253",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001569",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 242,
      "end_line": 252,
      "kind": "async_with",
      "name": "async with",
      "source_line": "    async with aiohttp.ClientSession(trust_env=False) as sess:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L242-L252",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_codex_agent",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001570",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 244,
      "end_line": 249,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with sess.post(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L244-L249",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_codex_agent",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001571",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 249,
      "end_line": 249,
      "kind": "await",
      "name": "await",
      "source_line": "                data = await r.json()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L249",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_codex_agent",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001572",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 251,
      "end_line": 251,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            history.append({\"role\": \"assistant\", \"content\": msg.get(\"content\") or \"\"})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L251",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "_codex_agent",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "msg"
    },
    {
      "id": "occ-001573",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 260,
      "end_line": 290,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L260-L290",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_codex_openai_rollout_closes_loop",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001574",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 274,
      "end_line": 281,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await CodexHarness().run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L274-L281",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_codex_openai_rollout_closes_loop.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001575",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 282,
      "end_line": 282,
      "kind": "await",
      "name": "await",
      "source_line": "            samples = await adapter.finish_session(sid, base_sample=Sample(index=0, prompt=\"\"), reward=1.0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L282",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_codex_openai_rollout_closes_loop.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001576",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 284,
      "end_line": 284,
      "kind": "instance_candidate",
      "name": "stop",
      "source_line": "            handle.stop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L284",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_codex_openai_rollout_closes_loop.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "handle"
    },
    {
      "id": "occ-001577",
      "file": "tests/test_agent/test_agent_rollout_cpu.py",
      "line": 292,
      "end_line": 292,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_agent_rollout_cpu.py#L292",
      "snapshot": "source_snapshot/tests/test_agent/test_agent_rollout_cpu.py.txt",
      "symbol": "test_codex_openai_rollout_closes_loop",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001578",
      "file": "tests/test_agent/test_harness.py",
      "line": 14,
      "end_line": 14,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L14",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001579",
      "file": "tests/test_agent/test_harness.py",
      "line": 35,
      "end_line": 35,
      "kind": "api_reference",
      "name": "asyncio.sleep",
      "source_line": "_REAL_SLEEP = asyncio.sleep",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L35",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "<module>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001580",
      "file": "tests/test_agent/test_harness.py",
      "line": 38,
      "end_line": 39,
      "kind": "async_def",
      "name": "_fast_sleep",
      "source_line": "async def _fast_sleep(_secs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L38-L39",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001581",
      "file": "tests/test_agent/test_harness.py",
      "line": 39,
      "end_line": 39,
      "kind": "await",
      "name": "await",
      "source_line": "    await _REAL_SLEEP(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L39",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "_fast_sleep",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001582",
      "file": "tests/test_agent/test_harness.py",
      "line": 56,
      "end_line": 73,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L56-L73",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_returns_marker_exit_code",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001583",
      "file": "tests/test_agent/test_harness.py",
      "line": 59,
      "end_line": 61,
      "kind": "async_def",
      "name": "fake_agent",
      "source_line": "        async def fake_agent(env):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L59-L61",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_returns_marker_exit_code.run_case",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001584",
      "file": "tests/test_agent/test_harness.py",
      "line": 65,
      "end_line": 67,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await hc.run_agent(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L65-L67",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_returns_marker_exit_code.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001585",
      "file": "tests/test_agent/test_harness.py",
      "line": 75,
      "end_line": 75,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L75",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_returns_marker_exit_code",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001586",
      "file": "tests/test_agent/test_harness.py",
      "line": 79,
      "end_line": 86,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L79-L86",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_propagates_nonzero_exit",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001587",
      "file": "tests/test_agent/test_harness.py",
      "line": 80,
      "end_line": 81,
      "kind": "async_def",
      "name": "fail_agent",
      "source_line": "        async def fail_agent(_env):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L80-L81",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_propagates_nonzero_exit.run_case",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001588",
      "file": "tests/test_agent/test_harness.py",
      "line": 85,
      "end_line": 85,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await hc.run_agent(sb, workdir=\"/w\", start_cmd=\"x\", env={}, time_budget_sec=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L85",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_propagates_nonzero_exit.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001589",
      "file": "tests/test_agent/test_harness.py",
      "line": 88,
      "end_line": 88,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L88",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_propagates_nonzero_exit",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001590",
      "file": "tests/test_agent/test_harness.py",
      "line": 92,
      "end_line": 96,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L92-L96",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_times_out_when_marker_never_appears",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001591",
      "file": "tests/test_agent/test_harness.py",
      "line": 95,
      "end_line": 95,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await hc.run_agent(sb, workdir=\"/w\", start_cmd=\"x\", env={}, time_budget_sec=0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L95",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_times_out_when_marker_never_appears.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001592",
      "file": "tests/test_agent/test_harness.py",
      "line": 98,
      "end_line": 98,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L98",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_run_agent_times_out_when_marker_never_appears",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001593",
      "file": "tests/test_agent/test_harness.py",
      "line": 107,
      "end_line": 113,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L107-L113",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_write_config_preacks_bypass_permissions",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001594",
      "file": "tests/test_agent/test_harness.py",
      "line": 109,
      "end_line": 109,
      "kind": "await",
      "name": "await",
      "source_line": "        await ClaudeCodeHarness().write_config(sb, _ctx())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L109",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_write_config_preacks_bypass_permissions.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001595",
      "file": "tests/test_agent/test_harness.py",
      "line": 110,
      "end_line": 110,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        joined = \" \".join(cmd for cmd, _ in sb.exec_log)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L110",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_write_config_preacks_bypass_permissions.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001596",
      "file": "tests/test_agent/test_harness.py",
      "line": 115,
      "end_line": 115,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L115",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_write_config_preacks_bypass_permissions",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001597",
      "file": "tests/test_agent/test_harness.py",
      "line": 119,
      "end_line": 141,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L119-L141",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_launch_command_and_env",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001598",
      "file": "tests/test_agent/test_harness.py",
      "line": 122,
      "end_line": 124,
      "kind": "async_def",
      "name": "agent",
      "source_line": "        async def agent(env):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L122-L124",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_launch_command_and_env.run_case",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001599",
      "file": "tests/test_agent/test_harness.py",
      "line": 128,
      "end_line": 130,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await ClaudeCodeHarness().launch_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L128-L130",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_launch_command_and_env.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001600",
      "file": "tests/test_agent/test_harness.py",
      "line": 143,
      "end_line": 143,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L143",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_claude_code_launch_command_and_env",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001601",
      "file": "tests/test_agent/test_harness.py",
      "line": 152,
      "end_line": 161,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L152-L161",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_write_config_base64_roundtrips_inline_base_url",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001602",
      "file": "tests/test_agent/test_harness.py",
      "line": 154,
      "end_line": 154,
      "kind": "await",
      "name": "await",
      "source_line": "        await CodexHarness().write_config(sb, _ctx(url=\"http://host:18001\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L154",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_write_config_base64_roundtrips_inline_base_url.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001603",
      "file": "tests/test_agent/test_harness.py",
      "line": 163,
      "end_line": 163,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L163",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_write_config_base64_roundtrips_inline_base_url",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001604",
      "file": "tests/test_agent/test_harness.py",
      "line": 167,
      "end_line": 184,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L167-L184",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_launch_command_and_env",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001605",
      "file": "tests/test_agent/test_harness.py",
      "line": 170,
      "end_line": 172,
      "kind": "async_def",
      "name": "agent",
      "source_line": "        async def agent(env):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L170-L172",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_launch_command_and_env.run_case",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001606",
      "file": "tests/test_agent/test_harness.py",
      "line": 176,
      "end_line": 178,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await CodexHarness().launch_and_wait(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L176-L178",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_launch_command_and_env.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001607",
      "file": "tests/test_agent/test_harness.py",
      "line": 186,
      "end_line": 186,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L186",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_codex_launch_command_and_env",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001608",
      "file": "tests/test_agent/test_harness.py",
      "line": 195,
      "end_line": 201,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L195-L201",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_ensure_agent_user_provisions_user_and_git_safe_dir",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001609",
      "file": "tests/test_agent/test_harness.py",
      "line": 197,
      "end_line": 197,
      "kind": "await",
      "name": "await",
      "source_line": "        await sandbox_mod.ensure_agent_user(sb, \"/workspace/repo\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L197",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_ensure_agent_user_provisions_user_and_git_safe_dir.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001610",
      "file": "tests/test_agent/test_harness.py",
      "line": 203,
      "end_line": 203,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L203",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_ensure_agent_user_provisions_user_and_git_safe_dir",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001611",
      "file": "tests/test_agent/test_harness.py",
      "line": 212,
      "end_line": 230,
      "kind": "async_def",
      "name": "run_case",
      "source_line": "    async def run_case():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L212-L230",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_base_harness_run_calls_steps_in_order",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001612",
      "file": "tests/test_agent/test_harness.py",
      "line": 213,
      "end_line": 214,
      "kind": "async_def",
      "name": "agent",
      "source_line": "        async def agent(_env):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L213-L214",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_base_harness_run_calls_steps_in_order.run_case",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001613",
      "file": "tests/test_agent/test_harness.py",
      "line": 218,
      "end_line": 225,
      "kind": "await",
      "name": "await",
      "source_line": "            rc = await ClaudeCodeHarness().run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L218-L225",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_base_harness_run_calls_steps_in_order.run_case",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001614",
      "file": "tests/test_agent/test_harness.py",
      "line": 227,
      "end_line": 227,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        joined = \" \".join(c for c, _ in sb.exec_log)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L227",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_base_harness_run_calls_steps_in_order.run_case",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001615",
      "file": "tests/test_agent/test_harness.py",
      "line": 232,
      "end_line": 232,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run_case())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_harness.py#L232",
      "snapshot": "source_snapshot/tests/test_agent/test_harness.py.txt",
      "symbol": "test_base_harness_run_calls_steps_in_order",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001616",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 23,
      "end_line": 23,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L23",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001617",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 59,
      "end_line": 60,
      "kind": "async_def",
      "name": "__aenter__",
      "source_line": "    async def __aenter__(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L59-L60",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001618",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 62,
      "end_line": 63,
      "kind": "async_def",
      "name": "__aexit__",
      "source_line": "    async def __aexit__(self, *exc):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L62-L63",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001619",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 65,
      "end_line": 66,
      "kind": "async_def",
      "name": "write_file",
      "source_line": "    async def write_file(self, path, content, *, user=\"root\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L65-L66",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001620",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 68,
      "end_line": 69,
      "kind": "async_def",
      "name": "read_file",
      "source_line": "    async def read_file(self, path, *, user=\"root\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L68-L69",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001621",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 69,
      "end_line": 69,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "        return self.files.get(path, \"\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L69",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox.read_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.files"
    },
    {
      "id": "occ-001622",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 71,
      "end_line": 96,
      "kind": "async_def",
      "name": "exec",
      "source_line": "    async def exec(self, cmd, *, user=\"root\", env=None, timeout=120, check=False, idempotent=True):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L71-L96",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001623",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 83,
      "end_line": 83,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "            return 0, self.files.get(tail.group(1), \"\")[-512:], \"\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L83",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "ShellFakeSandbox.exec",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.files"
    },
    {
      "id": "occ-001624",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 121,
      "end_line": 122,
      "kind": "async_def",
      "name": "_instant",
      "source_line": "    async def _instant(_seconds):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L121-L122",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "fast_marker_polls",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001625",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 134,
      "end_line": 137,
      "kind": "async_def",
      "name": "_two_attempts",
      "source_line": "    async def _two_attempts():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L134-L137",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_same_tag_reinvocation_actually_reruns",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001626",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 135,
      "end_line": 135,
      "kind": "await",
      "name": "await",
      "source_line": "        first = await exec_and_wait(sb, cmd=\"npm install\", time_budget_sec=60, tag=\"npm\", want_output=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L135",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_same_tag_reinvocation_actually_reruns._two_attempts",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001627",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 136,
      "end_line": 136,
      "kind": "await",
      "name": "await",
      "source_line": "        second = await exec_and_wait(sb, cmd=\"npm install\", time_budget_sec=60, tag=\"npm\", want_output=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L136",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_same_tag_reinvocation_actually_reruns._two_attempts",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001628",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 139,
      "end_line": 139,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    (first_code, first_out), (second_code, second_out) = asyncio.run(_two_attempts())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L139",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_same_tag_reinvocation_actually_reruns",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001629",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 152,
      "end_line": 152,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exec_and_wait(sb, cmd=\"true\", time_budget_sec=60, tag=\"job\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L152",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_transport_retry_of_the_spawn_stays_deduped",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001630",
      "file": "tests/test_agent/test_sandbox_exec_and_wait.py",
      "line": 158,
      "end_line": 158,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(sb.exec(spawn_cmds[0]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_agent/test_sandbox_exec_and_wait.py#L158",
      "snapshot": "source_snapshot/tests/test_agent/test_sandbox_exec_and_wait.py.txt",
      "symbol": "test_transport_retry_of_the_spawn_stays_deduped",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001631",
      "file": "tests/test_distributed_rollout.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L3",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001632",
      "file": "tests/test_distributed_rollout.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L9",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001633",
      "file": "tests/test_distributed_rollout.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L10",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001634",
      "file": "tests/test_distributed_rollout.py",
      "line": 12,
      "end_line": 12,
      "kind": "import",
      "name": "concurrent.futures.FIRST_COMPLETED",
      "source_line": "from concurrent.futures import FIRST_COMPLETED, Future, ThreadPoolExecutor, wait",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L12",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-wait-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-wait-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001635",
      "file": "tests/test_distributed_rollout.py",
      "line": 12,
      "end_line": 12,
      "kind": "import",
      "name": "concurrent.futures.Future",
      "source_line": "from concurrent.futures import FIRST_COMPLETED, Future, ThreadPoolExecutor, wait",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L12",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "future-test-double",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001636",
      "file": "tests/test_distributed_rollout.py",
      "line": 12,
      "end_line": 12,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import FIRST_COMPLETED, Future, ThreadPoolExecutor, wait",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L12",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001637",
      "file": "tests/test_distributed_rollout.py",
      "line": 12,
      "end_line": 12,
      "kind": "import",
      "name": "concurrent.futures.wait",
      "source_line": "from concurrent.futures import FIRST_COMPLETED, Future, ThreadPoolExecutor, wait",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L12",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-wait-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-wait-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001638",
      "file": "tests/test_distributed_rollout.py",
      "line": 88,
      "end_line": 88,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L88",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "source_factory",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001639",
      "file": "tests/test_distributed_rollout.py",
      "line": 89,
      "end_line": 89,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L89",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "source_factory",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001640",
      "file": "tests/test_distributed_rollout.py",
      "line": 115,
      "end_line": 115,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L115",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_task_claims_and_producer_cursor_survive_recovery",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001641",
      "file": "tests/test_distributed_rollout.py",
      "line": 127,
      "end_line": 127,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        restored.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L127",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_task_claims_and_producer_cursor_survive_recovery",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "restored"
    },
    {
      "id": "occ-001642",
      "file": "tests/test_distributed_rollout.py",
      "line": 148,
      "end_line": 148,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L148",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_whole_job_recovery_replays_accepted_results_and_durable_continuations",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001643",
      "file": "tests/test_distributed_rollout.py",
      "line": 150,
      "end_line": 150,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L150",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_whole_job_recovery_replays_accepted_results_and_durable_continuations",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001644",
      "file": "tests/test_distributed_rollout.py",
      "line": 157,
      "end_line": 157,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "        assignment = restored.queue.acquire(\"new-reader\", 1, task_ids=[task_id]).assignments[0]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L157",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_whole_job_recovery_replays_accepted_results_and_durable_continuations",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "restored.queue"
    },
    {
      "id": "occ-001645",
      "file": "tests/test_distributed_rollout.py",
      "line": 170,
      "end_line": 170,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        restored.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L170",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_whole_job_recovery_replays_accepted_results_and_durable_continuations",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "restored"
    },
    {
      "id": "occ-001646",
      "file": "tests/test_distributed_rollout.py",
      "line": 235,
      "end_line": 235,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "    collection = controller.queue.acquire(\"manager\", 1, task_ids=[task_id])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L235",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_generation_workers_cannot_claim_manager_collection_tasks",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller.queue"
    },
    {
      "id": "occ-001647",
      "file": "tests/test_distributed_rollout.py",
      "line": 264,
      "end_line": 264,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L264",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_manager_replacement_fences_readers_and_recovers_only_unused_results",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001648",
      "file": "tests/test_distributed_rollout.py",
      "line": 265,
      "end_line": 265,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    old.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L265",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_manager_replacement_fences_readers_and_recovers_only_unused_results",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "old"
    },
    {
      "id": "occ-001649",
      "file": "tests/test_distributed_rollout.py",
      "line": 266,
      "end_line": 266,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    rebuilt.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L266",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_manager_replacement_fences_readers_and_recovers_only_unused_results",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "rebuilt"
    },
    {
      "id": "occ-001650",
      "file": "tests/test_distributed_rollout.py",
      "line": 404,
      "end_line": 404,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L404",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_lost_return_reply_preserves_one_pending_task",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001651",
      "file": "tests/test_distributed_rollout.py",
      "line": 505,
      "end_line": 505,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L505",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_legacy_rollout_return_completes_borrowed_inputs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001652",
      "file": "tests/test_distributed_rollout.py",
      "line": 523,
      "end_line": 523,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L523",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_checkpoint_buffer_and_latest_continuation_survive_reader_release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001653",
      "file": "tests/test_distributed_rollout.py",
      "line": 558,
      "end_line": 558,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    tasks = [task for task in checkpoint[\"pending\"].load()[\"tasks\"] if task[\"metadata\"].get(\"returned\")]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L558",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_buffer_checkpoint_reuses_durable_groups_and_protects_them_from_gc.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task[\"metadata\"]"
    },
    {
      "id": "occ-001654",
      "file": "tests/test_distributed_rollout.py",
      "line": 566,
      "end_line": 566,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L566",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_buffer_checkpoint_reuses_durable_groups_and_protects_them_from_gc",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001655",
      "file": "tests/test_distributed_rollout.py",
      "line": 580,
      "end_line": 580,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L580",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_pending_checkpoint_reuses_inputs_without_reserving_leases",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001656",
      "file": "tests/test_distributed_rollout.py",
      "line": 602,
      "end_line": 602,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    entered, release = threading.Event(), threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L602",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001657",
      "file": "tests/test_distributed_rollout.py",
      "line": 602,
      "end_line": 602,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    entered, release = threading.Event(), threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L602",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001658",
      "file": "tests/test_distributed_rollout.py",
      "line": 605,
      "end_line": 605,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        entered.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L605",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.take",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-001659",
      "file": "tests/test_distributed_rollout.py",
      "line": 606,
      "end_line": 606,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        if not release.wait(10):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L606",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.take",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001660",
      "file": "tests/test_distributed_rollout.py",
      "line": 612,
      "end_line": 623,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L612-L623",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001661",
      "file": "tests/test_distributed_rollout.py",
      "line": 613,
      "end_line": 613,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        task = asyncio.create_task(source.get_samples_async(1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L613",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001662",
      "file": "tests/test_distributed_rollout.py",
      "line": 616,
      "end_line": 616,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "                if entered.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L616",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-001663",
      "file": "tests/test_distributed_rollout.py",
      "line": 618,
      "end_line": 618,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L618",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001664",
      "file": "tests/test_distributed_rollout.py",
      "line": 618,
      "end_line": 618,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L618",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001665",
      "file": "tests/test_distributed_rollout.py",
      "line": 619,
      "end_line": 619,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            assert entered.is_set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L619",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-001666",
      "file": "tests/test_distributed_rollout.py",
      "line": 620,
      "end_line": 620,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            assert not task.done()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L620",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "task"
    },
    {
      "id": "occ-001667",
      "file": "tests/test_distributed_rollout.py",
      "line": 622,
      "end_line": 622,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L622",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001668",
      "file": "tests/test_distributed_rollout.py",
      "line": 623,
      "end_line": 623,
      "kind": "await",
      "name": "await",
      "source_line": "        assert len(await task) == 1",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L623",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001669",
      "file": "tests/test_distributed_rollout.py",
      "line": 625,
      "end_line": 625,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L625",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_task_acquire_does_not_block_async_generation",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001670",
      "file": "tests/test_distributed_rollout.py",
      "line": 647,
      "end_line": 647,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "        return SimpleNamespace(remote=lambda *args: asyncio.run_coroutine_threadsafe(method(*args), loop))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L647",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.remote.<lambda>",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001671",
      "file": "tests/test_distributed_rollout.py",
      "line": 650,
      "end_line": 650,
      "kind": "api_call",
      "name": "concurrent.futures.wait",
      "source_line": "        done, pending = wait(refs, timeout=timeout, return_when=FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L650",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.ray_wait",
      "topic_id": "executor-wait-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-wait-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001672",
      "file": "tests/test_distributed_rollout.py",
      "line": 650,
      "end_line": 650,
      "kind": "api_reference",
      "name": "concurrent.futures.FIRST_COMPLETED",
      "source_line": "        done, pending = wait(refs, timeout=timeout, return_when=FIRST_COMPLETED)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L650",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.ray_wait",
      "topic_id": "executor-wait-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-wait-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001673",
      "file": "tests/test_distributed_rollout.py",
      "line": 655,
      "end_line": 655,
      "kind": "instance_candidate",
      "name": "call_soon_threadsafe",
      "source_line": "            loop.call_soon_threadsafe(worker.actor.producer.cancel)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L655",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.kill",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "loop"
    },
    {
      "id": "occ-001674",
      "file": "tests/test_distributed_rollout.py",
      "line": 658,
      "end_line": 658,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "    monkeypatch.setattr(ray, \"get\", lambda ref: ref.result())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L658",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ref"
    },
    {
      "id": "occ-001675",
      "file": "tests/test_distributed_rollout.py",
      "line": 659,
      "end_line": 659,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "    monkeypatch.setattr(ray, \"cancel\", lambda ref: ref.cancel())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L659",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "ref"
    },
    {
      "id": "occ-001676",
      "file": "tests/test_distributed_rollout.py",
      "line": 672,
      "end_line": 672,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "        release = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L672",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001677",
      "file": "tests/test_distributed_rollout.py",
      "line": 683,
      "end_line": 698,
      "kind": "async_def",
      "name": "execute",
      "source_line": "            async def execute(rollout_id, group=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L683-L698",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create.make_generator",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001678",
      "file": "tests/test_distributed_rollout.py",
      "line": 687,
      "end_line": 687,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "                    while not release.is_set():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L687",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create.make_generator.execute",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "release"
    },
    {
      "id": "occ-001679",
      "file": "tests/test_distributed_rollout.py",
      "line": 688,
      "end_line": 688,
      "kind": "await",
      "name": "await",
      "source_line": "                        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L688",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create.make_generator.execute",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001680",
      "file": "tests/test_distributed_rollout.py",
      "line": 688,
      "end_line": 688,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L688",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create.make_generator.execute",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001681",
      "file": "tests/test_distributed_rollout.py",
      "line": 702,
      "end_line": 703,
      "kind": "async_def",
      "name": "initial_groups",
      "source_line": "        async def initial_groups(count):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L702-L703",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.create",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001682",
      "file": "tests/test_distributed_rollout.py",
      "line": 727,
      "end_line": 727,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L727",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001683",
      "file": "tests/test_distributed_rollout.py",
      "line": 729,
      "end_line": 729,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        scheduler.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L729",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler"
    },
    {
      "id": "occ-001684",
      "file": "tests/test_distributed_rollout.py",
      "line": 731,
      "end_line": 735,
      "kind": "async_def",
      "name": "cleanup",
      "source_line": "    async def cleanup():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L731-L735",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001685",
      "file": "tests/test_distributed_rollout.py",
      "line": 734,
      "end_line": 734,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            producer.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L734",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.cleanup",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "producer"
    },
    {
      "id": "occ-001686",
      "file": "tests/test_distributed_rollout.py",
      "line": 735,
      "end_line": 735,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(*producers, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L735",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.cleanup",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001687",
      "file": "tests/test_distributed_rollout.py",
      "line": 735,
      "end_line": 735,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(*producers, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L735",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory.cleanup",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001688",
      "file": "tests/test_distributed_rollout.py",
      "line": 737,
      "end_line": 737,
      "kind": "api_call",
      "name": "asyncio.run_coroutine_threadsafe",
      "source_line": "    asyncio.run_coroutine_threadsafe(cleanup(), loop).result(timeout=10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L737",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory",
      "topic_id": "event-loop-lifecycle",
      "lesson": "13-event-loop",
      "anchor": "event-loop-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001689",
      "file": "tests/test_distributed_rollout.py",
      "line": 737,
      "end_line": 737,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "    asyncio.run_coroutine_threadsafe(cleanup(), loop).result(timeout=10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L737",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "scheduler_factory",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "asyncio.run_coroutine_threadsafe(cleanup(), loop)"
    },
    {
      "id": "occ-001690",
      "file": "tests/test_distributed_rollout.py",
      "line": 745,
      "end_line": 745,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "    time.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L745",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_replaces_rejected_groups_and_bounds_prefetch",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001691",
      "file": "tests/test_distributed_rollout.py",
      "line": 793,
      "end_line": 793,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(1) as consumer:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L793",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001692",
      "file": "tests/test_distributed_rollout.py",
      "line": 794,
      "end_line": 794,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "        future = consumer.submit(scheduler.generate, 0, prefetch=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L794",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "consumer"
    },
    {
      "id": "occ-001693",
      "file": "tests/test_distributed_rollout.py",
      "line": 796,
      "end_line": 796,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            result = future.result(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L796",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "future"
    },
    {
      "id": "occ-001694",
      "file": "tests/test_distributed_rollout.py",
      "line": 799,
      "end_line": 799,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L799",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001695",
      "file": "tests/test_distributed_rollout.py",
      "line": 804,
      "end_line": 804,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L804",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_async_scheduler_fast_worker_fills_batch_without_waiting_for_slow_worker",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001696",
      "file": "tests/test_distributed_rollout.py",
      "line": 810,
      "end_line": 810,
      "kind": "api_call",
      "name": "concurrent.futures.Future",
      "source_line": "    stalled = Future()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L810",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "future-test-double",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001697",
      "file": "tests/test_distributed_rollout.py",
      "line": 811,
      "end_line": 811,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    entered = threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L811",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001698",
      "file": "tests/test_distributed_rollout.py",
      "line": 815,
      "end_line": 815,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        entered.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L815",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close.stall",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "entered"
    },
    {
      "id": "occ-001699",
      "file": "tests/test_distributed_rollout.py",
      "line": 821,
      "end_line": 821,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(2) as callers:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L821",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001700",
      "file": "tests/test_distributed_rollout.py",
      "line": 823,
      "end_line": 823,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            callers.submit(scheduler.generate, 0, prefetch=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L823",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "callers"
    },
    {
      "id": "occ-001701",
      "file": "tests/test_distributed_rollout.py",
      "line": 825,
      "end_line": 825,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            else callers.submit(scheduler.pause)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L825",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "callers"
    },
    {
      "id": "occ-001702",
      "file": "tests/test_distributed_rollout.py",
      "line": 829,
      "end_line": 829,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            assert entered.wait(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L829",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "entered"
    },
    {
      "id": "occ-001703",
      "file": "tests/test_distributed_rollout.py",
      "line": 831,
      "end_line": 831,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                result = request.result(timeout=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L831",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request"
    },
    {
      "id": "occ-001704",
      "file": "tests/test_distributed_rollout.py",
      "line": 833,
      "end_line": 833,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            closing = callers.submit(scheduler.close)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L833",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "callers"
    },
    {
      "id": "occ-001705",
      "file": "tests/test_distributed_rollout.py",
      "line": 834,
      "end_line": 834,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            closing.result(timeout=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L834",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "closing"
    },
    {
      "id": "occ-001706",
      "file": "tests/test_distributed_rollout.py",
      "line": 837,
      "end_line": 837,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                    request.result(timeout=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L837",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "request"
    },
    {
      "id": "occ-001707",
      "file": "tests/test_distributed_rollout.py",
      "line": 840,
      "end_line": 840,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            if not stalled.done():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L840",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "stalled"
    },
    {
      "id": "occ-001708",
      "file": "tests/test_distributed_rollout.py",
      "line": 841,
      "end_line": 841,
      "kind": "instance_candidate",
      "name": "set_result",
      "source_line": "                stalled.set_result(None)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L841",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "future-test-double",
      "lesson": "17-executor-results",
      "anchor": "future-test-double",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "stalled"
    },
    {
      "id": "occ-001709",
      "file": "tests/test_distributed_rollout.py",
      "line": 843,
      "end_line": 843,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            scheduler.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L843",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_slow_worker_control_does_not_block_collection_or_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler"
    },
    {
      "id": "occ-001710",
      "file": "tests/test_distributed_rollout.py",
      "line": 884,
      "end_line": 884,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(1) as consumer:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L884",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001711",
      "file": "tests/test_distributed_rollout.py",
      "line": 885,
      "end_line": 885,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "        future = consumer.submit(scheduler.generate, 0, prefetch=1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L885",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "consumer"
    },
    {
      "id": "occ-001712",
      "file": "tests/test_distributed_rollout.py",
      "line": 891,
      "end_line": 891,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                    scheduler.condition.wait(timeout=0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L891",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler.condition"
    },
    {
      "id": "occ-001713",
      "file": "tests/test_distributed_rollout.py",
      "line": 892,
      "end_line": 892,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            scheduler.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L892",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler"
    },
    {
      "id": "occ-001714",
      "file": "tests/test_distributed_rollout.py",
      "line": 894,
      "end_line": 894,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                future.result(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L894",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "future"
    },
    {
      "id": "occ-001715",
      "file": "tests/test_distributed_rollout.py",
      "line": 898,
      "end_line": 898,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L898",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_scheduler_close_unblocks_waiting_consumer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001716",
      "file": "tests/test_distributed_rollout.py",
      "line": 940,
      "end_line": 942,
      "kind": "async_def",
      "name": "get_samples",
      "source_line": "    async def get_samples(count):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L940-L942",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_distributed_completed_groups_keep_rewards_and_masks",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001717",
      "file": "tests/test_distributed_rollout.py",
      "line": 944,
      "end_line": 945,
      "kind": "async_def",
      "name": "unexpected_generation",
      "source_line": "    async def unexpected_generation(*args):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L944-L945",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_distributed_completed_groups_keep_rewards_and_masks",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001718",
      "file": "tests/test_distributed_rollout.py",
      "line": 947,
      "end_line": 948,
      "kind": "async_def",
      "name": "republish_buffered",
      "source_line": "    async def republish_buffered(*args, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L947-L948",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_distributed_completed_groups_keep_rewards_and_masks",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001719",
      "file": "tests/test_distributed_rollout.py",
      "line": 963,
      "end_line": 963,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result, _ = asyncio.run(worker._generate_group(3))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L963",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_distributed_completed_groups_keep_rewards_and_masks",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001720",
      "file": "tests/test_distributed_rollout.py",
      "line": 977,
      "end_line": 977,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    release = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L977",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001721",
      "file": "tests/test_distributed_rollout.py",
      "line": 982,
      "end_line": 995,
      "kind": "async_def",
      "name": "generate_group",
      "source_line": "    async def generate_group(rollout_id, group=None):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L982-L995",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001722",
      "file": "tests/test_distributed_rollout.py",
      "line": 990,
      "end_line": 990,
      "kind": "await",
      "name": "await",
      "source_line": "                await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L990",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001723",
      "file": "tests/test_distributed_rollout.py",
      "line": 990,
      "end_line": 990,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L990",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.generate_group",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "release"
    },
    {
      "id": "occ-001724",
      "file": "tests/test_distributed_rollout.py",
      "line": 992,
      "end_line": 992,
      "kind": "await",
      "name": "await",
      "source_line": "                await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L992",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001725",
      "file": "tests/test_distributed_rollout.py",
      "line": 992,
      "end_line": 992,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L992",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.generate_group",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001726",
      "file": "tests/test_distributed_rollout.py",
      "line": 1000,
      "end_line": 1002,
      "kind": "async_def",
      "name": "initial_groups",
      "source_line": "    async def initial_groups(count):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1000-L1002",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001727",
      "file": "tests/test_distributed_rollout.py",
      "line": 1006,
      "end_line": 1037,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1006-L1037",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001728",
      "file": "tests/test_distributed_rollout.py",
      "line": 1007,
      "end_line": 1007,
      "kind": "await",
      "name": "await",
      "source_line": "        await worker._start(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1007",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001729",
      "file": "tests/test_distributed_rollout.py",
      "line": 1009,
      "end_line": 1009,
      "kind": "await",
      "name": "await",
      "source_line": "            first = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1009",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001730",
      "file": "tests/test_distributed_rollout.py",
      "line": 1009,
      "end_line": 1009,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "            first = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1009",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001731",
      "file": "tests/test_distributed_rollout.py",
      "line": 1010,
      "end_line": 1010,
      "kind": "await",
      "name": "await",
      "source_line": "            second = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1010",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001732",
      "file": "tests/test_distributed_rollout.py",
      "line": 1010,
      "end_line": 1010,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "            second = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1010",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001733",
      "file": "tests/test_distributed_rollout.py",
      "line": 1013,
      "end_line": 1013,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            assert not release.is_set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1013",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "release"
    },
    {
      "id": "occ-001734",
      "file": "tests/test_distributed_rollout.py",
      "line": 1017,
      "end_line": 1017,
      "kind": "await",
      "name": "await",
      "source_line": "                output = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1017",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001735",
      "file": "tests/test_distributed_rollout.py",
      "line": 1017,
      "end_line": 1017,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "                output = await asyncio.wait_for(worker._next(), timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1017",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001736",
      "file": "tests/test_distributed_rollout.py",
      "line": 1020,
      "end_line": 1020,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1020",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001737",
      "file": "tests/test_distributed_rollout.py",
      "line": 1020,
      "end_line": 1020,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1020",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001738",
      "file": "tests/test_distributed_rollout.py",
      "line": 1022,
      "end_line": 1022,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1022",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001739",
      "file": "tests/test_distributed_rollout.py",
      "line": 1022,
      "end_line": 1022,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1022",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001740",
      "file": "tests/test_distributed_rollout.py",
      "line": 1026,
      "end_line": 1026,
      "kind": "await",
      "name": "await",
      "source_line": "            await worker._pause()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1026",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001741",
      "file": "tests/test_distributed_rollout.py",
      "line": 1027,
      "end_line": 1027,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1027",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "release"
    },
    {
      "id": "occ-001742",
      "file": "tests/test_distributed_rollout.py",
      "line": 1029,
      "end_line": 1029,
      "kind": "await",
      "name": "await",
      "source_line": "            while (output := await asyncio.wait_for(worker._next(), timeout=5)) is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1029",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001743",
      "file": "tests/test_distributed_rollout.py",
      "line": 1029,
      "end_line": 1029,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "            while (output := await asyncio.wait_for(worker._next(), timeout=5)) is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1029",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001744",
      "file": "tests/test_distributed_rollout.py",
      "line": 1032,
      "end_line": 1032,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            assert worker.producer.done()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1032",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.producer"
    },
    {
      "id": "occ-001745",
      "file": "tests/test_distributed_rollout.py",
      "line": 1036,
      "end_line": 1036,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            worker.producer.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1036",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.producer"
    },
    {
      "id": "occ-001746",
      "file": "tests/test_distributed_rollout.py",
      "line": 1037,
      "end_line": 1037,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(worker.producer, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1037",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001747",
      "file": "tests/test_distributed_rollout.py",
      "line": 1037,
      "end_line": 1037,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(worker.producer, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1037",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001748",
      "file": "tests/test_distributed_rollout.py",
      "line": 1039,
      "end_line": 1039,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1039",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_worker_refills_locally_and_slow_group_does_not_block_results",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001749",
      "file": "tests/test_distributed_rollout.py",
      "line": 1052,
      "end_line": 1084,
      "kind": "async_def",
      "name": "_generate_locally",
      "source_line": "async def _generate_locally(args, sample, sampling_params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1052-L1084",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001750",
      "file": "tests/test_distributed_rollout.py",
      "line": 1054,
      "end_line": 1054,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1054",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "_generate_locally",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001751",
      "file": "tests/test_distributed_rollout.py",
      "line": 1054,
      "end_line": 1054,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1054",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "_generate_locally",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001752",
      "file": "tests/test_distributed_rollout.py",
      "line": 1055,
      "end_line": 1055,
      "kind": "await",
      "name": "await",
      "source_line": "    await asyncio.sleep(0.01 * (sample.group_index % 3))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1055",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "_generate_locally",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001753",
      "file": "tests/test_distributed_rollout.py",
      "line": 1055,
      "end_line": 1055,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "    await asyncio.sleep(0.01 * (sample.group_index % 3))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1055",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "_generate_locally",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001754",
      "file": "tests/test_distributed_rollout.py",
      "line": 1087,
      "end_line": 1091,
      "kind": "async_def",
      "name": "_score_fanout",
      "source_line": "async def _score_fanout(args, samples):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1087-L1091",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001755",
      "file": "tests/test_distributed_rollout.py",
      "line": 1094,
      "end_line": 1100,
      "kind": "async_def",
      "name": "_score_group",
      "source_line": "async def _score_group(args, samples):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1094-L1100",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001756",
      "file": "tests/test_distributed_rollout.py",
      "line": 1154,
      "end_line": 1154,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    dataset.write_text(\"\\n\".join(json.dumps({\"text\": f\"hello {i}\"}) for i in range(7)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1154",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "_rollout_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\\n\""
    },
    {
      "id": "occ-001757",
      "file": "tests/test_distributed_rollout.py",
      "line": 1438,
      "end_line": 1438,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1438",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001758",
      "file": "tests/test_distributed_rollout.py",
      "line": 1467,
      "end_line": 1467,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "        runtime.ready.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1467",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "runtime.ready"
    },
    {
      "id": "occ-001759",
      "file": "tests/test_distributed_rollout.py",
      "line": 1471,
      "end_line": 1471,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        with ThreadPoolExecutor(1) as consumer:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1471",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001760",
      "file": "tests/test_distributed_rollout.py",
      "line": 1472,
      "end_line": 1472,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            future = consumer.submit(fetch, 2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1472",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "consumer"
    },
    {
      "id": "occ-001761",
      "file": "tests/test_distributed_rollout.py",
      "line": 1478,
      "end_line": 1478,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                        runtime.condition.wait(timeout=0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1478",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "runtime.condition"
    },
    {
      "id": "occ-001762",
      "file": "tests/test_distributed_rollout.py",
      "line": 1494,
      "end_line": 1494,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                        runtime.condition.wait(timeout=0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1494",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "runtime.condition"
    },
    {
      "id": "occ-001763",
      "file": "tests/test_distributed_rollout.py",
      "line": 1498,
      "end_line": 1498,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            after_failure = future.result(timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1498",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "future"
    },
    {
      "id": "occ-001764",
      "file": "tests/test_distributed_rollout.py",
      "line": 1511,
      "end_line": 1511,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1511",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001765",
      "file": "tests/test_distributed_rollout.py",
      "line": 1521,
      "end_line": 1521,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "            runtime.ready.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1521",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "runtime.ready"
    },
    {
      "id": "occ-001766",
      "file": "tests/test_distributed_rollout.py",
      "line": 1532,
      "end_line": 1532,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                    runtime.condition.wait(timeout=0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1532",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "runtime.condition"
    },
    {
      "id": "occ-001767",
      "file": "tests/test_distributed_rollout.py",
      "line": 1538,
      "end_line": 1538,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1538",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-001768",
      "file": "tests/test_distributed_rollout.py",
      "line": 1540,
      "end_line": 1540,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "        cluster.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1540",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_two_ray_nodes_generate_transfer_and_restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cluster"
    },
    {
      "id": "occ-001769",
      "file": "tests/test_distributed_rollout.py",
      "line": 1659,
      "end_line": 1659,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "    store.release(\"checkpoint:old\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1659",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_restore_source_handoff_releases_obsolete_snapshot_graphs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "store"
    },
    {
      "id": "occ-001770",
      "file": "tests/test_distributed_rollout.py",
      "line": 1720,
      "end_line": 1720,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "    store.release(\"checkpoint:old\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1720",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_restore_source_handoff_preserves_lazy_consumers_and_failed_save",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "store"
    },
    {
      "id": "occ-001771",
      "file": "tests/test_distributed_rollout.py",
      "line": 1730,
      "end_line": 1730,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "    store.release(saved[\"storage_owner\"])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1730",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_restore_source_handoff_preserves_lazy_consumers_and_failed_save",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "store"
    },
    {
      "id": "occ-001772",
      "file": "tests/test_distributed_rollout.py",
      "line": 1776,
      "end_line": 1776,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "    controller.store.release(\"checkpoint:old\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1776",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_restore_source_handoff_preserves_prefix_before_later_accepted_result",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller.store"
    },
    {
      "id": "occ-001773",
      "file": "tests/test_distributed_rollout.py",
      "line": 1830,
      "end_line": 1837,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1830-L1837",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001774",
      "file": "tests/test_distributed_rollout.py",
      "line": 1831,
      "end_line": 1831,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        waiters = [asyncio.create_task(actor._rebuffer(i)) for i in range(130)]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1831",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise.<comprehension>",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001775",
      "file": "tests/test_distributed_rollout.py",
      "line": 1832,
      "end_line": 1832,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(0.001)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1832",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001776",
      "file": "tests/test_distributed_rollout.py",
      "line": 1832,
      "end_line": 1832,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(0.001)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1832",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001777",
      "file": "tests/test_distributed_rollout.py",
      "line": 1833,
      "end_line": 1833,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "        waiters[0].cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1833",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "waiters[0]"
    },
    {
      "id": "occ-001778",
      "file": "tests/test_distributed_rollout.py",
      "line": 1834,
      "end_line": 1834,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(*waiters, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1834",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001779",
      "file": "tests/test_distributed_rollout.py",
      "line": 1834,
      "end_line": 1834,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(*waiters, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1834",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001780",
      "file": "tests/test_distributed_rollout.py",
      "line": 1839,
      "end_line": 1839,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1839",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_cancelled_rebuffer_waiter_does_not_drop_its_continuation",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001781",
      "file": "tests/test_distributed_rollout.py",
      "line": 1891,
      "end_line": 1891,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            scheduler.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1891",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_shutdown_allows_large_buffers_and_propagates_deadline_failure",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler"
    },
    {
      "id": "occ-001782",
      "file": "tests/test_distributed_rollout.py",
      "line": 1893,
      "end_line": 1893,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        scheduler.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1893",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_shutdown_allows_large_buffers_and_propagates_deadline_failure",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "scheduler"
    },
    {
      "id": "occ-001783",
      "file": "tests/test_distributed_rollout.py",
      "line": 1934,
      "end_line": 1934,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "    controller.store.release(\"checkpoint:test\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1934",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_online_gc_waits_for_training_completion_and_checkpoint_release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller.store"
    },
    {
      "id": "occ-001784",
      "file": "tests/test_distributed_rollout.py",
      "line": 1981,
      "end_line": 1981,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "            assert controller._gc_thread.is_alive()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1981",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_joint_restore_starts_gc_only_after_consumer_state_is_durable",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller._gc_thread"
    },
    {
      "id": "occ-001785",
      "file": "tests/test_distributed_rollout.py",
      "line": 1986,
      "end_line": 1986,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1986",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_joint_restore_starts_gc_only_after_consumer_state_is_durable",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001786",
      "file": "tests/test_distributed_rollout.py",
      "line": 1998,
      "end_line": 1998,
      "kind": "instance_candidate",
      "name": "acquire",
      "source_line": "    lease = queue.acquire(\"reader\").assignments[0].lease",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L1998",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queue"
    },
    {
      "id": "occ-001787",
      "file": "tests/test_distributed_rollout.py",
      "line": 2010,
      "end_line": 2010,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "    controller._gc_thread = threading.Thread(target=controller._gc_loop)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2010",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001788",
      "file": "tests/test_distributed_rollout.py",
      "line": 2011,
      "end_line": 2011,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    controller._gc_thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2011",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "controller._gc_thread"
    },
    {
      "id": "occ-001789",
      "file": "tests/test_distributed_rollout.py",
      "line": 2012,
      "end_line": 2012,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    controller._gc_thread.join(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2012",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "controller._gc_thread"
    },
    {
      "id": "occ-001790",
      "file": "tests/test_distributed_rollout.py",
      "line": 2013,
      "end_line": 2013,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "    assert not controller._gc_thread.is_alive()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2013",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "controller._gc_thread"
    },
    {
      "id": "occ-001791",
      "file": "tests/test_distributed_rollout.py",
      "line": 2014,
      "end_line": 2014,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "    assert controller._gc_stop.is_set() and calls == [\"collect\"]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2014",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller._gc_stop"
    },
    {
      "id": "occ-001792",
      "file": "tests/test_distributed_rollout.py",
      "line": 2039,
      "end_line": 2039,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2039",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001793",
      "file": "tests/test_distributed_rollout.py",
      "line": 2041,
      "end_line": 2041,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "    assert next(controller.store.read(ref)).payload == b\"still protected\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2041",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_background_gc_failure_stops_queue_work_and_fails_close",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller.store"
    },
    {
      "id": "occ-001794",
      "file": "tests/test_distributed_rollout.py",
      "line": 2049,
      "end_line": 2049,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(1) as pool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2049",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_admission_pause_acknowledges_workers_without_waiting_for_responses",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001795",
      "file": "tests/test_distributed_rollout.py",
      "line": 2050,
      "end_line": 2050,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "        paused = pool.submit(scheduler.pause, drain=False)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2050",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_admission_pause_acknowledges_workers_without_waiting_for_responses",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "pool"
    },
    {
      "id": "occ-001796",
      "file": "tests/test_distributed_rollout.py",
      "line": 2052,
      "end_line": 2052,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            assert paused.result(timeout=3) is False",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2052",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_admission_pause_acknowledges_workers_without_waiting_for_responses",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "paused"
    },
    {
      "id": "occ-001797",
      "file": "tests/test_distributed_rollout.py",
      "line": 2053,
      "end_line": 2053,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "            assert not release.is_set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2053",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_admission_pause_acknowledges_workers_without_waiting_for_responses",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001798",
      "file": "tests/test_distributed_rollout.py",
      "line": 2057,
      "end_line": 2057,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2057",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_admission_pause_acknowledges_workers_without_waiting_for_responses",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001799",
      "file": "tests/test_distributed_rollout.py",
      "line": 2071,
      "end_line": 2101,
      "kind": "async_def",
      "name": "run",
      "source_line": "    async def run():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2071-L2101",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001800",
      "file": "tests/test_distributed_rollout.py",
      "line": 2072,
      "end_line": 2072,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        entered, release = asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2072",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001801",
      "file": "tests/test_distributed_rollout.py",
      "line": 2072,
      "end_line": 2072,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        entered, release = asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2072",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001802",
      "file": "tests/test_distributed_rollout.py",
      "line": 2078,
      "end_line": 2081,
      "kind": "async_def",
      "name": "fetch",
      "source_line": "        async def fetch(count):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2078-L2081",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001803",
      "file": "tests/test_distributed_rollout.py",
      "line": 2079,
      "end_line": 2079,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            entered.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2079",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run.fetch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-001804",
      "file": "tests/test_distributed_rollout.py",
      "line": 2080,
      "end_line": 2080,
      "kind": "await",
      "name": "await",
      "source_line": "            await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2080",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run.fetch",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001805",
      "file": "tests/test_distributed_rollout.py",
      "line": 2080,
      "end_line": 2080,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2080",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run.fetch",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001806",
      "file": "tests/test_distributed_rollout.py",
      "line": 2083,
      "end_line": 2084,
      "kind": "async_def",
      "name": "rebuffer",
      "source_line": "        async def rebuffer(value):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2083-L2084",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001807",
      "file": "tests/test_distributed_rollout.py",
      "line": 2086,
      "end_line": 2087,
      "kind": "async_def",
      "name": "unexpected",
      "source_line": "        async def unexpected(*args):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2086-L2087",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001808",
      "file": "tests/test_distributed_rollout.py",
      "line": 2094,
      "end_line": 2094,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        task = asyncio.create_task(worker._generate_group(0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2094",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001809",
      "file": "tests/test_distributed_rollout.py",
      "line": 2095,
      "end_line": 2095,
      "kind": "await",
      "name": "await",
      "source_line": "        await entered.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2095",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001810",
      "file": "tests/test_distributed_rollout.py",
      "line": 2095,
      "end_line": 2095,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await entered.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2095",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-001811",
      "file": "tests/test_distributed_rollout.py",
      "line": 2096,
      "end_line": 2096,
      "kind": "await",
      "name": "await",
      "source_line": "        await worker._pause()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2096",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001812",
      "file": "tests/test_distributed_rollout.py",
      "line": 2097,
      "end_line": 2097,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2097",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-001813",
      "file": "tests/test_distributed_rollout.py",
      "line": 2098,
      "end_line": 2098,
      "kind": "await",
      "name": "await",
      "source_line": "        assert await task is None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2098",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001814",
      "file": "tests/test_distributed_rollout.py",
      "line": 2103,
      "end_line": 2103,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2103",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_queue_fetch_finishing_after_pause_preserves_group_without_new_generation",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001815",
      "file": "tests/test_distributed_rollout.py",
      "line": 2180,
      "end_line": 2180,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            fork.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2180",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fork"
    },
    {
      "id": "occ-001816",
      "file": "tests/test_distributed_rollout.py",
      "line": 2203,
      "end_line": 2203,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "        fork.release([assignment.lease])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2203",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fork"
    },
    {
      "id": "occ-001817",
      "file": "tests/test_distributed_rollout.py",
      "line": 2205,
      "end_line": 2205,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        fork.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2205",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "fork"
    },
    {
      "id": "occ-001818",
      "file": "tests/test_distributed_rollout.py",
      "line": 2236,
      "end_line": 2236,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        resumed.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2236",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_checkpoint_fork_restores_partial_ready_and_producer_without_parent_mutation",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "resumed"
    },
    {
      "id": "occ-001819",
      "file": "tests/test_distributed_rollout.py",
      "line": 2274,
      "end_line": 2274,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2274",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_automatic_empty_restore_reads_the_saved_dataset_offset",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001820",
      "file": "tests/test_distributed_rollout.py",
      "line": 2308,
      "end_line": 2308,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        reader.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2308",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_automatic_restart_before_first_checkpoint_recovers_the_same_queue",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-001821",
      "file": "tests/test_distributed_rollout.py",
      "line": 2309,
      "end_line": 2309,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2309",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_automatic_restart_before_first_checkpoint_recovers_the_same_queue",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001822",
      "file": "tests/test_distributed_rollout.py",
      "line": 2323,
      "end_line": 2323,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_distributed_rollout.py#L2323",
      "snapshot": "source_snapshot/tests/test_distributed_rollout.py.txt",
      "symbol": "test_automatic_restart_before_first_checkpoint_recovers_the_same_queue",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001823",
      "file": "tests/test_fully_async_rollout.py",
      "line": 21,
      "end_line": 21,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L21",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001824",
      "file": "tests/test_fully_async_rollout.py",
      "line": 23,
      "end_line": 23,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L23",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001825",
      "file": "tests/test_fully_async_rollout.py",
      "line": 24,
      "end_line": 24,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L24",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001826",
      "file": "tests/test_fully_async_rollout.py",
      "line": 63,
      "end_line": 66,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(received_args, rollout_id, received_source):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L63-L66",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_custom_data_source_keeps_original_entrypoint",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001827",
      "file": "tests/test_fully_async_rollout.py",
      "line": 70,
      "end_line": 70,
      "kind": "api_reference",
      "name": "asyncio.run",
      "source_line": "    monkeypatch.setattr(fa, \"run\", asyncio.run)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L70",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_custom_data_source_keeps_original_entrypoint",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001828",
      "file": "tests/test_fully_async_rollout.py",
      "line": 112,
      "end_line": 112,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "        worker.output_queue.put((gid, _make_group(gid)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L112",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_rollout_takes_target_groups_and_leaves_surplus_queued",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.output_queue"
    },
    {
      "id": "occ-001829",
      "file": "tests/test_fully_async_rollout.py",
      "line": 118,
      "end_line": 118,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    out = asyncio.run(fa._generate_rollout_async(args, rollout_id=0, data_buffer=None))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L118",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_rollout_takes_target_groups_and_leaves_surplus_queued",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001830",
      "file": "tests/test_fully_async_rollout.py",
      "line": 132,
      "end_line": 132,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "        worker.output_queue.put((gid, _make_group(gid)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L132",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_get_completed_groups_limit",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.output_queue"
    },
    {
      "id": "occ-001831",
      "file": "tests/test_fully_async_rollout.py",
      "line": 153,
      "end_line": 153,
      "kind": "instance_candidate",
      "name": "put",
      "source_line": "        worker.output_queue.put((gid, group))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L153",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_dynamic_filter_drops_groups_and_refills",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.output_queue"
    },
    {
      "id": "occ-001832",
      "file": "tests/test_fully_async_rollout.py",
      "line": 166,
      "end_line": 166,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(fa._generate_rollout_async(args, rollout_id=7, data_buffer=None))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L166",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_dynamic_filter_drops_groups_and_refills",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001833",
      "file": "tests/test_fully_async_rollout.py",
      "line": 218,
      "end_line": 218,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "    pusher = threading.Thread(target=_push_all, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L218",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_done_callback_never_blocks_event_loop_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001834",
      "file": "tests/test_fully_async_rollout.py",
      "line": 219,
      "end_line": 219,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    pusher.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L219",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_done_callback_never_blocks_event_loop_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "pusher"
    },
    {
      "id": "occ-001835",
      "file": "tests/test_fully_async_rollout.py",
      "line": 220,
      "end_line": 220,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    pusher.join(timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L220",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_done_callback_never_blocks_event_loop_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "pusher"
    },
    {
      "id": "occ-001836",
      "file": "tests/test_fully_async_rollout.py",
      "line": 222,
      "end_line": 222,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "    assert not pusher.is_alive(), \"done-callback blocked on a full output queue\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L222",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_done_callback_never_blocks_event_loop_thread",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "pusher"
    },
    {
      "id": "occ-001837",
      "file": "tests/test_fully_async_rollout.py",
      "line": 234,
      "end_line": 235,
      "kind": "async_def",
      "name": "_instant_generate",
      "source_line": "    async def _instant_generate(args, group, sampling_params, evaluation):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L234-L235",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_loop_backpressure_stops_topping_up_when_queue_is_full",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001838",
      "file": "tests/test_fully_async_rollout.py",
      "line": 241,
      "end_line": 241,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    worker.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L241",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_loop_backpressure_stops_topping_up_when_queue_is_full",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker"
    },
    {
      "id": "occ-001839",
      "file": "tests/test_fully_async_rollout.py",
      "line": 250,
      "end_line": 250,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.02)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L250",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_loop_backpressure_stops_topping_up_when_queue_is_full",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001840",
      "file": "tests/test_fully_async_rollout.py",
      "line": 252,
      "end_line": 252,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        worker.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L252",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_loop_backpressure_stops_topping_up_when_queue_is_full",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker"
    },
    {
      "id": "occ-001841",
      "file": "tests/test_fully_async_rollout.py",
      "line": 266,
      "end_line": 268,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(args, group, sampling_params, evaluation):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L266-L268",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001842",
      "file": "tests/test_fully_async_rollout.py",
      "line": 267,
      "end_line": 267,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L267",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001843",
      "file": "tests/test_fully_async_rollout.py",
      "line": 267,
      "end_line": 267,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "        await asyncio.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L267",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001844",
      "file": "tests/test_fully_async_rollout.py",
      "line": 279,
      "end_line": 279,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L279",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001845",
      "file": "tests/test_fully_async_rollout.py",
      "line": 284,
      "end_line": 284,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.03)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L284",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001846",
      "file": "tests/test_fully_async_rollout.py",
      "line": 292,
      "end_line": 292,
      "kind": "instance_candidate",
      "name": "is_alive",
      "source_line": "    assert all(not worker.worker_thread.is_alive() for worker in workers)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_fully_async_rollout.py#L292",
      "snapshot": "source_snapshot/tests/test_fully_async_rollout.py.txt",
      "symbol": "test_local_worker_lifecycle_is_scoped_to_source.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "worker.worker_thread"
    },
    {
      "id": "occ-001847",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 31,
      "end_line": 31,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L31",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001848",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 72,
      "end_line": 72,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    out = subprocess.run([\"ip\", \"-o\", \"-4\", \"addr\", \"show\", ifname], capture_output=True, text=True).stdout.split()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L72",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_iface_ipv4",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001849",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 124,
      "end_line": 124,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    visible = subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L124",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_skip_reason",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001850",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 132,
      "end_line": 132,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    probe = subprocess.run([sys.executable, \"-c\", _PREREQ_PROBE], capture_output=True, text=True, env=probe_env)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L132",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_skip_reason",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001851",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 153,
      "end_line": 153,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    subprocess.run(command, check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L153",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_download_ci_asset",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001852",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 264,
      "end_line": 264,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    return \" \".join(groups)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L264",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_train_args",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001853",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 398,
      "end_line": 398,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "        r = subprocess.run(cmd, env=env, cwd=cwd, capture_output=True, text=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L398",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001854",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 402,
      "end_line": 402,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "    proc = subprocess.Popen(cmd, env=env, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L402",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001855",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 402,
      "end_line": 402,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "    proc = subprocess.Popen(cmd, env=env, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L402",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001856",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 402,
      "end_line": 402,
      "kind": "api_reference",
      "name": "subprocess.STDOUT",
      "source_line": "    proc = subprocess.Popen(cmd, env=env, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L402",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001857",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 408,
      "end_line": 408,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "    proc.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L408",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "proc"
    },
    {
      "id": "occ-001858",
      "file": "tests/test_glm52_6layer_deterministic_e2e.py",
      "line": 409,
      "end_line": 409,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    return proc.returncode, \"\".join(lines)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_glm52_6layer_deterministic_e2e.py#L409",
      "snapshot": "source_snapshot/tests/test_glm52_6layer_deterministic_e2e.py.txt",
      "symbol": "_run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-001859",
      "file": "tests/test_optional_straw.py",
      "line": 4,
      "end_line": 4,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_optional_straw.py#L4",
      "snapshot": "source_snapshot/tests/test_optional_straw.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001860",
      "file": "tests/test_optional_straw.py",
      "line": 85,
      "end_line": 86,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(*values):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_optional_straw.py#L85-L86",
      "snapshot": "source_snapshot/tests/test_optional_straw.py.txt",
      "symbol": "_run_default_without_straw",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001861",
      "file": "tests/test_optional_straw.py",
      "line": 144,
      "end_line": 144,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_optional_straw.py#L144",
      "snapshot": "source_snapshot/tests/test_optional_straw.py.txt",
      "symbol": "test_default_rollout_and_training_work_without_straw",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001862",
      "file": "tests/test_published_payload_retry.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L3",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001863",
      "file": "tests/test_published_payload_retry.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L5",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001864",
      "file": "tests/test_published_payload_retry.py",
      "line": 23,
      "end_line": 23,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "        header = f.read(12)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L23",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-001865",
      "file": "tests/test_published_payload_retry.py",
      "line": 25,
      "end_line": 25,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "        f.write(bytes(12))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L25",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-001866",
      "file": "tests/test_published_payload_retry.py",
      "line": 32,
      "end_line": 32,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "            f.write(header)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L32",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer.restore",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "f"
    },
    {
      "id": "occ-001867",
      "file": "tests/test_published_payload_retry.py",
      "line": 36,
      "end_line": 36,
      "kind": "api_call",
      "name": "threading.Timer",
      "source_line": "    timer = threading.Timer(0.05, restore)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L36",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "threading-timer",
      "lesson": "16-thread-coordination",
      "anchor": "timer-lifecycle",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001868",
      "file": "tests/test_published_payload_retry.py",
      "line": 37,
      "end_line": 37,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    timer.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L37",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "threading-timer",
      "lesson": "16-thread-coordination",
      "anchor": "timer-lifecycle",
      "status": "inferred",
      "receiver_type": "threading.Timer",
      "receiver": "timer"
    },
    {
      "id": "occ-001869",
      "file": "tests/test_published_payload_retry.py",
      "line": 42,
      "end_line": 42,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "            result = asyncio.run(transport.unpack_published_payload(ref))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L42",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001870",
      "file": "tests/test_published_payload_retry.py",
      "line": 47,
      "end_line": 47,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        timer.join()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L47",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_result_and_shelve_payloads_recover_at_the_storage_layer",
      "topic_id": "threading-timer",
      "lesson": "16-thread-coordination",
      "anchor": "timer-lifecycle",
      "status": "inferred",
      "receiver_type": "threading.Timer",
      "receiver": "timer"
    },
    {
      "id": "occ-001871",
      "file": "tests/test_published_payload_retry.py",
      "line": 64,
      "end_line": 64,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(transport.unpack_published_payload(ref))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_published_payload_retry.py#L64",
      "snapshot": "source_snapshot/tests/test_published_payload_retry.py.txt",
      "symbol": "test_native_failure_is_not_retried_again_by_slime",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001872",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L2",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001873",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L3",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001874",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 25,
      "end_line": 25,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    all_gpus = os.environ.get(\"CUDA_VISIBLE_DEVICES\", \",\".join(str(i) for i in range(NUM_GPUS))).split(\",\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L25",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_get_gpu_split",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001875",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 39,
      "end_line": 39,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "    process = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L39",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_launch_teacher_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001876",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 57,
      "end_line": 57,
      "kind": "api_reference",
      "name": "subprocess.STDOUT",
      "source_line": "        stderr=subprocess.STDOUT,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L57",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_launch_teacher_server",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001877",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 64,
      "end_line": 64,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "        if process.poll() is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L64",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_launch_teacher_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001878",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 73,
      "end_line": 73,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L73",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_launch_teacher_server",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001879",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 75,
      "end_line": 75,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "    process.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L75",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "_launch_teacher_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001880",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 84,
      "end_line": 84,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    os.environ[\"CUDA_VISIBLE_DEVICES\"] = \",\".join(train_gpus)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L84",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001881",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 197,
      "end_line": 197,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "            teacher_process.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L197",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "teacher_process"
    },
    {
      "id": "occ-001882",
      "file": "tests/test_qwen2.5_0.5B_opd_sglang.py",
      "line": 198,
      "end_line": 198,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            teacher_process.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_opd_sglang.py#L198",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_opd_sglang.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "teacher_process"
    },
    {
      "id": "occ-001883",
      "file": "tests/test_qwen2.5_0.5B_rollout_health.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_rollout_health.py#L7",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_rollout_health.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001884",
      "file": "tests/test_qwen2.5_0.5B_rollout_health.py",
      "line": 82,
      "end_line": 82,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "            subprocess.run([\"ray\", \"stop\", \"--force\"], check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_rollout_health.py#L82",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_rollout_health.py.txt",
      "symbol": "execute",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001885",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L5",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001886",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 7,
      "end_line": 7,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L7",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001887",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L9",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001888",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 75,
      "end_line": 75,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(10)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L75",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "wait_job",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001889",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 169,
      "end_line": 169,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "        subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L169",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001890",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 333,
      "end_line": 333,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "                        started.write_text(str(os.getpid()))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L333",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute.block",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001891",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 334,
      "end_line": 334,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                        time.sleep(300)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L334",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute.block",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001892",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 340,
      "end_line": 340,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                        time.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L340",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001893",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 352,
      "end_line": 352,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "                                http.get(engine[\"url\"] + \"/health\", timeout=2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L352",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "http"
    },
    {
      "id": "occ-001894",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 356,
      "end_line": 356,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                            time.sleep(1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L356",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001895",
      "file": "tests/test_qwen2.5_0.5B_training_recovery.py",
      "line": 374,
      "end_line": 374,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "            subprocess.run([\"ray\", \"stop\", \"--force\"], check=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen2.5_0.5B_training_recovery.py#L374",
      "snapshot": "source_snapshot/tests/test_qwen2.5_0.5B_training_recovery.py.txt",
      "symbol": "execute",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001896",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 21,
      "end_line": 21,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L21",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001897",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 23,
      "end_line": 23,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L23",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001898",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 54,
      "end_line": 54,
      "kind": "api_call",
      "name": "subprocess.check_output",
      "source_line": "            output = subprocess.check_output([\"ip\", \"-o\", \"-4\", \"addr\", \"show\", \"dev\", iface], text=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L54",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_get_bond_ipv4",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001899",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 55,
      "end_line": 55,
      "kind": "api_reference",
      "name": "subprocess.CalledProcessError",
      "source_line": "        except (OSError, subprocess.CalledProcessError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L55",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_get_bond_ipv4",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001900",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 120,
      "end_line": 120,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    return \",\".join(devices) if devices else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L120",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_get_disaggregation_ib_device",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001901",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    all_gpus = os.environ.get(\"CUDA_VISIBLE_DEVICES\", \",\".join(str(i) for i in range(NUM_GPUS))).split(\",\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L137",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_get_gpu_split",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001902",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 157,
      "end_line": 157,
      "kind": "api_reference",
      "name": "subprocess.Popen",
      "source_line": ") -> subprocess.Popen:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L157",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001903",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 159,
      "end_line": 159,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    env[\"CUDA_VISIBLE_DEVICES\"] = \",\".join(gpus)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L159",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001904",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 190,
      "end_line": 190,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "    process = subprocess.Popen(cmd, env=env, stdout=log_file, stderr=subprocess.STDOUT)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L190",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001905",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 190,
      "end_line": 190,
      "kind": "api_reference",
      "name": "subprocess.STDOUT",
      "source_line": "    process = subprocess.Popen(cmd, env=env, stdout=log_file, stderr=subprocess.STDOUT)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L190",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001906",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 201,
      "end_line": 201,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "        if process.poll() is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L201",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001907",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 210,
      "end_line": 210,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L210",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001908",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 212,
      "end_line": 212,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "    process.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L212",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "_launch_sglang_server",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001909",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 222,
      "end_line": 222,
      "kind": "api_reference",
      "name": "subprocess.Popen",
      "source_line": "    processes: list[subprocess.Popen] = []",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L222",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001910",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 226,
      "end_line": 226,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "    os.environ[\"CUDA_VISIBLE_DEVICES\"] = \",\".join(train_gpus)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L226",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\",\""
    },
    {
      "id": "occ-001911",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 319,
      "end_line": 319,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        external_args = \"--rollout-external-engine-addrs \" + \" \".join(all_addrs) + \" \"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L319",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\" \""
    },
    {
      "id": "occ-001912",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 374,
      "end_line": 374,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "            if p.poll() is None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L374",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "p"
    },
    {
      "id": "occ-001913",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 375,
      "end_line": 375,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "                p.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L375",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "p"
    },
    {
      "id": "occ-001914",
      "file": "tests/test_qwen3_4B_external_pd.py",
      "line": 376,
      "end_line": 376,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                p.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_qwen3_4B_external_pd.py#L376",
      "snapshot": "source_snapshot/tests/test_qwen3_4B_external_pd.py.txt",
      "symbol": "execute",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "p"
    },
    {
      "id": "occ-001915",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L9",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001916",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "signal",
      "source_line": "import signal",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L10",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001917",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 51,
      "end_line": 51,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        return os.getpid(), self.controller._actor_id.hex()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L51",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_ServingFixture.identity",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001918",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 85,
      "end_line": 85,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "                \"manager_pid\": os.getpid(),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L85",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_install_crash.crash",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001919",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 93,
      "end_line": 93,
      "kind": "api_call",
      "name": "os.kill",
      "source_line": "        os.kill(os.getpid(), signal.SIGKILL)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L93",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_install_crash.crash",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001920",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 93,
      "end_line": 93,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        os.kill(os.getpid(), signal.SIGKILL)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L93",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_install_crash.crash",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001921",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 93,
      "end_line": 93,
      "kind": "api_reference",
      "name": "signal.SIGKILL",
      "source_line": "        os.kill(os.getpid(), signal.SIGKILL)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L93",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_install_crash.crash",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001922",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 162,
      "end_line": 162,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "        cluster.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L162",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "cluster",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cluster"
    },
    {
      "id": "occ-001923",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 220,
      "end_line": 220,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "            ray.get(manager.__ray_call__.remote(lambda self: os.getpid()), timeout=30) == before[\"manager_pid\"]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L220",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "test_manager_failure_replays_accepted_batch_with_new_dp.<lambda>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001924",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 244,
      "end_line": 244,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        return os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L244",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_ResetPeer.pid",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001925",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 248,
      "end_line": 248,
      "kind": "import",
      "name": "time",
      "source_line": "            import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L248",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_ResetPeer.reset_weights_update_groups",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001926",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 250,
      "end_line": 250,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(300)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L250",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_ResetPeer.reset_weights_update_groups",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001927",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 257,
      "end_line": 257,
      "kind": "import",
      "name": "time",
      "source_line": "    import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L257",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "test_serving_reset_retires_blocked_actor_and_keeps_healthy_peer",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001928",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 299,
      "end_line": 299,
      "kind": "import",
      "name": "time",
      "source_line": "            import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L299",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_AttemptManager.detach_training",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001929",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 301,
      "end_line": 301,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(300)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L301",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_AttemptManager.detach_training",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001930",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 325,
      "end_line": 325,
      "kind": "import",
      "name": "time",
      "source_line": "        import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L325",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_PDResetPeer.reset_weights_update_groups",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001931",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 329,
      "end_line": 329,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "            time.sleep(0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L329",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_PDResetPeer.reset_weights_update_groups",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001932",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 368,
      "end_line": 368,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        return os.getpid(), self.driver_job_id, self.training_actors",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L368",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "_AttemptServing.state",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001933",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 373,
      "end_line": 373,
      "kind": "import",
      "name": "time",
      "source_line": "    import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L373",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "test_driver_detach_releases_real_trainer_when_manager_cannot_pause",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001934",
      "file": "tests/test_rollout_manager_recovery.py",
      "line": 387,
      "end_line": 387,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        startup.close(failed=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_manager_recovery.py#L387",
      "snapshot": "source_snapshot/tests/test_rollout_manager_recovery.py.txt",
      "symbol": "test_driver_detach_releases_real_trainer_when_manager_cannot_pause",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "startup"
    },
    {
      "id": "occ-001935",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L1",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001936",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 16,
      "end_line": 18,
      "kind": "async_def",
      "name": "async_hook",
      "source_line": "async def async_hook(args, sample, *, evaluation=False):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L16-L18",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001937",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 34,
      "end_line": 34,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(apply_rollout_sample_hooks(args, samples, evaluation=True, ignored=\"value\"))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L34",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_rollout_sample_hooks_preserve_nested_shape_and_filter_kwargs",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001938",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 47,
      "end_line": 47,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(apply_rollout_sample_hooks(args, Sample(index=0)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L47",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_rollout_sample_hook_rejects_invalid_return_type",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001939",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 55,
      "end_line": 55,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    assert asyncio.run(apply_rollout_sample_hooks(args, sample)) is sample",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L55",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_rollout_sample_hooks_are_noop_when_unconfigured",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001940",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 61,
      "end_line": 65,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(rollout_id):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L61-L65",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001941",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 63,
      "end_line": 63,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L63",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001942",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 63,
      "end_line": 63,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L63",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001943",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 64,
      "end_line": 64,
      "kind": "await",
      "name": "await",
      "source_line": "            sample = await apply_rollout_sample_hooks(args, Sample(index=rollout_id))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L64",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001944",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 67,
      "end_line": 68,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L67-L68",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001945",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 68,
      "end_line": 68,
      "kind": "await",
      "name": "await",
      "source_line": "        assert await asyncio.gather(generate(10), generate(11)) == [(\"seen\", 10), (\"seen\", 11)]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L68",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001946",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 68,
      "end_line": 68,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        assert await asyncio.gather(generate(10), generate(11)) == [(\"seen\", 10), (\"seen\", 11)]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L68",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001947",
      "file": "tests/test_rollout_sample_hooks.py",
      "line": 70,
      "end_line": 70,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_sample_hooks.py#L70",
      "snapshot": "source_snapshot/tests/test_rollout_sample_hooks.py.txt",
      "symbol": "test_concurrent_groups_keep_their_own_rollout_hook_context",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001948",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L3",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001949",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 102,
      "end_line": 102,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L102",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_cpu_rollout_imports_do_not_require_sglang",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001950",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 261,
      "end_line": 261,
      "kind": "api_call",
      "name": "subprocess.run",
      "source_line": "    subprocess.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L261",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_payload_reference_is_small_and_readable_by_independent_process",
      "topic_id": "subprocess-checked-results",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-failure",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001951",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 329,
      "end_line": 329,
      "kind": "import",
      "name": "asyncio",
      "source_line": "    import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L329",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_fully_async_stores_groups_while_collecting_the_batch",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001952",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 354,
      "end_line": 354,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    output = asyncio.run(fa._generate_rollout_async(args, 0, None))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L354",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_fully_async_stores_groups_while_collecting_the_batch",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001953",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 362,
      "end_line": 362,
      "kind": "import",
      "name": "asyncio",
      "source_line": "    import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L362",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001954",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 375,
      "end_line": 409,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L375-L409",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001955",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 376,
      "end_line": 376,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        second = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L376",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001956",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 377,
      "end_line": 377,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        loop = asyncio.get_running_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L377",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001957",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 379,
      "end_line": 383,
      "kind": "async_def",
      "name": "generate",
      "source_line": "        async def generate(index):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L379-L383",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001958",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 381,
      "end_line": 381,
      "kind": "await",
      "name": "await",
      "source_line": "                await second.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L381",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001959",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 381,
      "end_line": 381,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                await second.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L381",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise.generate",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "second"
    },
    {
      "id": "occ-001960",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 387,
      "end_line": 387,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            state.pendings.update(asyncio.create_task(generate(index)) for index in (2, 1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L387",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise.submit.<comprehension>",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001961",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 392,
      "end_line": 392,
      "kind": "instance_candidate",
      "name": "call_soon_threadsafe",
      "source_line": "            loop.call_soon_threadsafe(second.set)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L392",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise.pack",
      "topic_id": "loop-shutdown",
      "lesson": "13-event-loop",
      "anchor": "loop-shutdown",
      "status": "inferred",
      "receiver_type": "asyncio.AbstractEventLoop",
      "receiver": "loop"
    },
    {
      "id": "occ-001962",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 395,
      "end_line": 396,
      "kind": "async_def",
      "name": "abort",
      "source_line": "        async def abort(*a):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L395-L396",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001963",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 409,
      "end_line": 409,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.wait_for(sr.generate_rollout_async(args, 0, lambda count: [None] * count), timeout=20)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L409",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001964",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 409,
      "end_line": 409,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "        return await asyncio.wait_for(sr.generate_rollout_async(args, 0, lambda count: [None] * count), timeout=20)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L409",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001965",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 411,
      "end_line": 411,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    output, aborted = asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L411",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_synchronous_rollout_stores_during_generation_and_preserves_legacy_hook",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001966",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 465,
      "end_line": 465,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L465",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_manager_adapts_legacy_samples_and_validates_accepted_refs",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001967",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 597,
      "end_line": 597,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L597",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_durable_batch_replays_one_plan_and_rejects_mixed_ranks",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001968",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 709,
      "end_line": 709,
      "kind": "instance_candidate",
      "name": "release",
      "source_line": "        archive.release()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L709",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_straw_debug_archive_keys_lazy_tensors_gc_and_legacy_export",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "archive"
    },
    {
      "id": "occ-001969",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1058,
      "end_line": 1058,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "    monkeypatch.setattr(group, \"release\", lambda: group._actor_handlers.clear())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1058",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_disk_weight_updates_do_not_require_actor_return_values.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "group._actor_handlers"
    },
    {
      "id": "occ-001970",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1405,
      "end_line": 1405,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            controller.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1405",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_covers_cleanup_and_releases_on_seal_failure",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "controller"
    },
    {
      "id": "occ-001971",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1411,
      "end_line": 1411,
      "kind": "import",
      "name": "select",
      "source_line": "    import select",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1411",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "select-ready",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001972",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1418,
      "end_line": 1418,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "    process = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1418",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001973",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1432,
      "end_line": 1432,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "        stdin=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1432",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001974",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1433,
      "end_line": 1433,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "        stdout=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1433",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001975",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1434,
      "end_line": 1434,
      "kind": "api_reference",
      "name": "subprocess.PIPE",
      "source_line": "        stderr=subprocess.PIPE,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1434",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001976",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1439,
      "end_line": 1439,
      "kind": "api_call",
      "name": "select.select",
      "source_line": "        assert select.select([process.stdout], [], [], 60)[0], \"Controller did not start\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1439",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "select-ready",
      "lesson": "19-signals-locks",
      "anchor": "lock-readiness",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001977",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1440,
      "end_line": 1440,
      "kind": "instance_candidate",
      "name": "readline",
      "source_line": "        assert process.stdout.readline() == b\"ready\\n\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1440",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process.stdout"
    },
    {
      "id": "occ-001978",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1446,
      "end_line": 1446,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "        process.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1446",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001979",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1447,
      "end_line": 1447,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        process.wait(timeout=30)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1447",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-001980",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1448,
      "end_line": 1448,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        process.stdin.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1448",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process.stdin"
    },
    {
      "id": "occ-001981",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1449,
      "end_line": 1449,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        process.stdout.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1449",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process.stdout"
    },
    {
      "id": "occ-001982",
      "file": "tests/test_rollout_straw_transport.py",
      "line": 1450,
      "end_line": 1450,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        process.stderr.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_rollout_straw_transport.py#L1450",
      "snapshot": "source_snapshot/tests/test_rollout_straw_transport.py.txt",
      "symbol": "test_checkpoint_lock_released_when_controller_process_is_killed",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process.stderr"
    },
    {
      "id": "occ-001983",
      "file": "tests/test_score_centering_binary.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L1",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001984",
      "file": "tests/test_score_centering_binary.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L3",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001985",
      "file": "tests/test_score_centering_binary.py",
      "line": 96,
      "end_line": 96,
      "kind": "api_call",
      "name": "threading.get_ident",
      "source_line": "    main_thread = threading.get_ident()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L96",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001986",
      "file": "tests/test_score_centering_binary.py",
      "line": 101,
      "end_line": 101,
      "kind": "api_call",
      "name": "threading.get_ident",
      "source_line": "        calls.append(threading.get_ident())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L101",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop.decode",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001987",
      "file": "tests/test_score_centering_binary.py",
      "line": 111,
      "end_line": 112,
      "kind": "async_def",
      "name": "aread",
      "source_line": "        async def aread(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L111-L112",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop.Response",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001988",
      "file": "tests/test_score_centering_binary.py",
      "line": 114,
      "end_line": 115,
      "kind": "async_def",
      "name": "aclose",
      "source_line": "        async def aclose(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L114-L115",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop.Response",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001989",
      "file": "tests/test_score_centering_binary.py",
      "line": 118,
      "end_line": 119,
      "kind": "async_def",
      "name": "post",
      "source_line": "        async def post(self, *args, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L118-L119",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop.Client",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001990",
      "file": "tests/test_score_centering_binary.py",
      "line": 121,
      "end_line": 121,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_binary.py#L121",
      "snapshot": "source_snapshot/tests/test_score_centering_binary.py.txt",
      "symbol": "test_http_worker_decodes_off_event_loop",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001991",
      "file": "tests/test_score_centering_transport.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L3",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001992",
      "file": "tests/test_score_centering_transport.py",
      "line": 85,
      "end_line": 90,
      "kind": "async_def",
      "name": "post",
      "source_line": "    async def post(url, payload, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L85-L90",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_generate_requests_sampler_topk",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001993",
      "file": "tests/test_score_centering_transport.py",
      "line": 93,
      "end_line": 93,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    sample = asyncio.run(rollout.generate(a, Sample(prompt=\"test\"), {\"max_new_tokens\": 8}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L93",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_generate_requests_sampler_topk",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001994",
      "file": "tests/test_score_centering_transport.py",
      "line": 127,
      "end_line": 140,
      "kind": "async_def",
      "name": "post",
      "source_line": "    async def post(url, payload, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L127-L140",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_r3_resume_appends_routes_without_replacing_the_persisted_prefix",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001995",
      "file": "tests/test_score_centering_transport.py",
      "line": 145,
      "end_line": 145,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "            asyncio.run(rollout.generate(a, sample, {\"max_new_tokens\": 8}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L145",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_r3_resume_appends_routes_without_replacing_the_persisted_prefix",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001996",
      "file": "tests/test_score_centering_transport.py",
      "line": 148,
      "end_line": 148,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    actual = asyncio.run(rollout.generate(a, sample, {\"max_new_tokens\": 8}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L148",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_r3_resume_appends_routes_without_replacing_the_persisted_prefix",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001997",
      "file": "tests/test_score_centering_transport.py",
      "line": 159,
      "end_line": 159,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(generate_streaming(args(), Sample(), {}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L159",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_streaming_score_centering_rejected",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001998",
      "file": "tests/test_score_centering_transport.py",
      "line": 191,
      "end_line": 191,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        semaphore=asyncio.Semaphore(1),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L191",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-001999",
      "file": "tests/test_score_centering_transport.py",
      "line": 204,
      "end_line": 206,
      "kind": "async_def",
      "name": "generate",
      "source_line": "    async def generate(received, sample, params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L204-L206",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002000",
      "file": "tests/test_score_centering_transport.py",
      "line": 208,
      "end_line": 209,
      "kind": "async_def",
      "name": "hooks",
      "source_line": "    async def hooks(received, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L208-L209",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002001",
      "file": "tests/test_score_centering_transport.py",
      "line": 215,
      "end_line": 217,
      "kind": "async_def",
      "name": "run",
      "source_line": "    async def run():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L215-L217",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002002",
      "file": "tests/test_score_centering_transport.py",
      "line": 216,
      "end_line": 216,
      "kind": "await",
      "name": "await",
      "source_line": "        await rollout.generate_and_rm(a, Sample(), {\"temperature\": 0}, evaluation=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L216",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002003",
      "file": "tests/test_score_centering_transport.py",
      "line": 217,
      "end_line": 217,
      "kind": "await",
      "name": "await",
      "source_line": "        await rollout.generate_and_rm(a, Sample(), {\"temperature\": 0.8})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L217",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002004",
      "file": "tests/test_score_centering_transport.py",
      "line": 219,
      "end_line": 219,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L219",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_evaluation_preserves_training_score_centering",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002005",
      "file": "tests/test_score_centering_transport.py",
      "line": 552,
      "end_line": 558,
      "kind": "async_def",
      "name": "post",
      "source_line": "    async def post(url, payload, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L552-L558",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_generate_requests_complete_top_p_probabilities",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002006",
      "file": "tests/test_score_centering_transport.py",
      "line": 561,
      "end_line": 561,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    sample = asyncio.run(rollout.generate(a, Sample(prompt=\"test\"), {\"max_new_tokens\": 8}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_score_centering_transport.py#L561",
      "snapshot": "source_snapshot/tests/test_score_centering_transport.py.txt",
      "symbol": "test_generate_requests_complete_top_p_probabilities",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002007",
      "file": "tests/test_server_control.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L1",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002008",
      "file": "tests/test_server_control.py",
      "line": 19,
      "end_line": 33,
      "kind": "async_def",
      "name": "respond",
      "source_line": "    async def respond(request):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L19-L33",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_rollout_boundary_prunes_failed_router_workers",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002009",
      "file": "tests/test_server_control.py",
      "line": 37,
      "end_line": 37,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    workers = asyncio.run(server_control.get_live_router_workers(\"http://router\", timeout=0.1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L37",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_rollout_boundary_prunes_failed_router_workers",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002010",
      "file": "tests/test_server_control.py",
      "line": 94,
      "end_line": 94,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "    monitor.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L94",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_boundary_health_check_bypasses_grace_and_cleans_dead_actor",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "monitor"
    },
    {
      "id": "occ-002011",
      "file": "tests/test_server_control.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "stop",
      "source_line": "        monitor.stop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L100",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_boundary_health_check_bypasses_grace_and_cleans_dead_actor",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "monitor"
    },
    {
      "id": "occ-002012",
      "file": "tests/test_server_control.py",
      "line": 108,
      "end_line": 112,
      "kind": "async_def",
      "name": "post",
      "source_line": "    async def post(url, payload, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L108-L112",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_uses_supported_load_sections_and_waits_for_pd_transfers",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002013",
      "file": "tests/test_server_control.py",
      "line": 114,
      "end_line": 134,
      "kind": "async_def",
      "name": "get",
      "source_line": "    async def get(url, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L114-L134",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_uses_supported_load_sections_and_waits_for_pd_transfers",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002014",
      "file": "tests/test_server_control.py",
      "line": 139,
      "end_line": 139,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(server_control.abort_server_until_idle(\"http://engine\", retry_interval=0, timeout=0.1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L139",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_uses_supported_load_sections_and_waits_for_pd_transfers",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002015",
      "file": "tests/test_server_control.py",
      "line": 168,
      "end_line": 169,
      "kind": "async_def",
      "name": "abort_once",
      "source_line": "    async def abort_once(url, request_timeout):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L168-L169",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_retries_load_failure_until_idle",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002016",
      "file": "tests/test_server_control.py",
      "line": 171,
      "end_line": 176,
      "kind": "async_def",
      "name": "get_load",
      "source_line": "    async def get_load(url, request_timeout):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L171-L176",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_retries_load_failure_until_idle",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002017",
      "file": "tests/test_server_control.py",
      "line": 181,
      "end_line": 181,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(server_control.abort_server_until_idle(\"http://engine\", retry_interval=0, timeout=1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L181",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_retries_load_failure_until_idle",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002018",
      "file": "tests/test_server_control.py",
      "line": 187,
      "end_line": 189,
      "kind": "async_def",
      "name": "abort",
      "source_line": "    async def abort(url, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L187-L189",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_servers_surfaces_partial_failure",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002019",
      "file": "tests/test_server_control.py",
      "line": 193,
      "end_line": 193,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(server_control.abort_servers_until_idle([\"http://good\", \"http://bad\"]))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L193",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_abort_servers_surfaces_partial_failure",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002020",
      "file": "tests/test_server_control.py",
      "line": 205,
      "end_line": 206,
      "kind": "async_def",
      "name": "aread",
      "source_line": "        async def aread(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L205-L206",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_post_forwards_timeout_and_closes_response.Response",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002021",
      "file": "tests/test_server_control.py",
      "line": 208,
      "end_line": 209,
      "kind": "async_def",
      "name": "aclose",
      "source_line": "        async def aclose(self):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L208-L209",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_post_forwards_timeout_and_closes_response.Response",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002022",
      "file": "tests/test_server_control.py",
      "line": 214,
      "end_line": 216,
      "kind": "async_def",
      "name": "post",
      "source_line": "        async def post(self, url, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L214-L216",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_post_forwards_timeout_and_closes_response.Client",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002023",
      "file": "tests/test_server_control.py",
      "line": 218,
      "end_line": 218,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    assert asyncio.run(http_utils._post(Client(), \"http://engine\", {}, max_retries=1, timeout=2.5)) == {\"ok\": True}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L218",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_post_forwards_timeout_and_closes_response",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002024",
      "file": "tests/test_server_control.py",
      "line": 226,
      "end_line": 282,
      "kind": "async_def",
      "name": "check",
      "source_line": "    async def check():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L226-L282",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002025",
      "file": "tests/test_server_control.py",
      "line": 230,
      "end_line": 259,
      "kind": "async_def",
      "name": "serve",
      "source_line": "        async def serve(reader, writer):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L230-L259",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002026",
      "file": "tests/test_server_control.py",
      "line": 232,
      "end_line": 232,
      "kind": "api_call",
      "name": "asyncio.current_task",
      "source_line": "            task = asyncio.current_task()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L232",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002027",
      "file": "tests/test_server_control.py",
      "line": 239,
      "end_line": 239,
      "kind": "await",
      "name": "await",
      "source_line": "                    headers = await reader.readuntil(b\"\\r\\n\\r\\n\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L239",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002028",
      "file": "tests/test_server_control.py",
      "line": 239,
      "end_line": 239,
      "kind": "instance_candidate",
      "name": "readuntil",
      "source_line": "                    headers = await reader.readuntil(b\"\\r\\n\\r\\n\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L239",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-002029",
      "file": "tests/test_server_control.py",
      "line": 248,
      "end_line": 248,
      "kind": "await",
      "name": "await",
      "source_line": "                    body = await reader.readexactly(length)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L248",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002030",
      "file": "tests/test_server_control.py",
      "line": 248,
      "end_line": 248,
      "kind": "instance_candidate",
      "name": "readexactly",
      "source_line": "                    body = await reader.readexactly(length)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L248",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "reader"
    },
    {
      "id": "occ-002031",
      "file": "tests/test_server_control.py",
      "line": 250,
      "end_line": 250,
      "kind": "await",
      "name": "await",
      "source_line": "                        await asyncio.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L250",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002032",
      "file": "tests/test_server_control.py",
      "line": 250,
      "end_line": 250,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                        await asyncio.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L250",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002033",
      "file": "tests/test_server_control.py",
      "line": 251,
      "end_line": 251,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "                    writer.write(b\"HTTP/1.1 200 OK\\r\\nContent-Length: \" + str(len(body)).encode() + b\"\\r\\n\\r\\n\" + body)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L251",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "writer"
    },
    {
      "id": "occ-002034",
      "file": "tests/test_server_control.py",
      "line": 252,
      "end_line": 252,
      "kind": "await",
      "name": "await",
      "source_line": "                    await writer.drain()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L252",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002035",
      "file": "tests/test_server_control.py",
      "line": 252,
      "end_line": 252,
      "kind": "instance_candidate",
      "name": "drain",
      "source_line": "                    await writer.drain()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L252",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "writer"
    },
    {
      "id": "occ-002036",
      "file": "tests/test_server_control.py",
      "line": 253,
      "end_line": 253,
      "kind": "api_reference",
      "name": "asyncio.IncompleteReadError",
      "source_line": "            except (asyncio.IncompleteReadError, ConnectionError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L253",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "incomplete-read",
      "lesson": "20-async-streams",
      "anchor": "incomplete-read",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002037",
      "file": "tests/test_server_control.py",
      "line": 257,
      "end_line": 257,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "                writer.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L257",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "writer"
    },
    {
      "id": "occ-002038",
      "file": "tests/test_server_control.py",
      "line": 258,
      "end_line": 258,
      "kind": "await",
      "name": "await",
      "source_line": "                await writer.wait_closed()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L258",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002039",
      "file": "tests/test_server_control.py",
      "line": 258,
      "end_line": 258,
      "kind": "instance_candidate",
      "name": "wait_closed",
      "source_line": "                await writer.wait_closed()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L258",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.serve",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "writer"
    },
    {
      "id": "occ-002040",
      "file": "tests/test_server_control.py",
      "line": 261,
      "end_line": 261,
      "kind": "await",
      "name": "await",
      "source_line": "        server = await asyncio.start_server(serve, \"127.0.0.1\", 0, backlog=2 * concurrency)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L261",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002041",
      "file": "tests/test_server_control.py",
      "line": 261,
      "end_line": 261,
      "kind": "api_call",
      "name": "asyncio.start_server",
      "source_line": "        server = await asyncio.start_server(serve, \"127.0.0.1\", 0, backlog=2 * concurrency)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L261",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "start-server",
      "lesson": "20-async-streams",
      "anchor": "start-server",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002042",
      "file": "tests/test_server_control.py",
      "line": 264,
      "end_line": 277,
      "kind": "async_with",
      "name": "async with",
      "source_line": "            async with httpx.AsyncClient(transport=http_utils._ShardedHTTPTransport(concurrency)) as client:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L264-L277",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002043",
      "file": "tests/test_server_control.py",
      "line": 266,
      "end_line": 269,
      "kind": "async_def",
      "name": "request",
      "source_line": "                async def request(i):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L266-L269",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002044",
      "file": "tests/test_server_control.py",
      "line": 268,
      "end_line": 269,
      "kind": "async_with",
      "name": "async with",
      "source_line": "                    async with client.stream(\"POST\", url, content=body) as response:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L268-L269",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.request",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002045",
      "file": "tests/test_server_control.py",
      "line": 269,
      "end_line": 269,
      "kind": "await",
      "name": "await",
      "source_line": "                        assert await response.aread() == body",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L269",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check.request",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002046",
      "file": "tests/test_server_control.py",
      "line": 272,
      "end_line": 272,
      "kind": "await",
      "name": "await",
      "source_line": "                    await asyncio.gather(*(request(i) for i in range(concurrency + 3)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L272",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002047",
      "file": "tests/test_server_control.py",
      "line": 272,
      "end_line": 272,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "                    await asyncio.gather(*(request(i) for i in range(concurrency + 3)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L272",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002048",
      "file": "tests/test_server_control.py",
      "line": 276,
      "end_line": 276,
      "kind": "await",
      "name": "await",
      "source_line": "                    await client.post(url + \"/slow\", content=b\"x\", timeout=0.01)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L276",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002049",
      "file": "tests/test_server_control.py",
      "line": 277,
      "end_line": 277,
      "kind": "await",
      "name": "await",
      "source_line": "                assert (await client.post(url, content=b\"after-timeout\")).content == b\"after-timeout\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L277",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002050",
      "file": "tests/test_server_control.py",
      "line": 279,
      "end_line": 279,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            server.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L279",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "server"
    },
    {
      "id": "occ-002051",
      "file": "tests/test_server_control.py",
      "line": 280,
      "end_line": 280,
      "kind": "await",
      "name": "await",
      "source_line": "            await server.wait_closed()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L280",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002052",
      "file": "tests/test_server_control.py",
      "line": 280,
      "end_line": 280,
      "kind": "instance_candidate",
      "name": "wait_closed",
      "source_line": "            await server.wait_closed()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L280",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "server"
    },
    {
      "id": "occ-002053",
      "file": "tests/test_server_control.py",
      "line": 281,
      "end_line": 281,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L281",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002054",
      "file": "tests/test_server_control.py",
      "line": 281,
      "end_line": 281,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L281",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget.check",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002055",
      "file": "tests/test_server_control.py",
      "line": 284,
      "end_line": 284,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(check())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_server_control.py#L284",
      "snapshot": "source_snapshot/tests/test_server_control.py.txt",
      "symbol": "test_http_transport_preserves_streams_timeouts_and_connection_budget",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002056",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 9,
      "end_line": 9,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L9",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002057",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 11,
      "end_line": 11,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L11",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002058",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 12,
      "end_line": 12,
      "kind": "import",
      "name": "signal",
      "source_line": "import signal",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L12",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002059",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 13,
      "end_line": 13,
      "kind": "import",
      "name": "subprocess",
      "source_line": "import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L13",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002060",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 15,
      "end_line": 15,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L15",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002061",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 16,
      "end_line": 16,
      "kind": "import",
      "name": "time",
      "source_line": "import time",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L16",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002062",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 45,
      "end_line": 83,
      "kind": "async_def",
      "name": "_generate_with_interrupt",
      "source_line": "async def _generate_with_interrupt(args, sample, sampling_params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L45-L83",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002063",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 49,
      "end_line": 49,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L49",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002064",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 49,
      "end_line": 49,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L49",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002065",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 49,
      "end_line": 49,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L49",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "asyncio.Event()"
    },
    {
      "id": "occ-002066",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 52,
      "end_line": 52,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L52",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002067",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 52,
      "end_line": 52,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "            await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L52",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002068",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 52,
      "end_line": 52,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L52",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "asyncio.Event()"
    },
    {
      "id": "occ-002069",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 53,
      "end_line": 53,
      "kind": "await",
      "name": "await",
      "source_line": "        sample = await _generate_locally(args, sample, sampling_params)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L53",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002070",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 54,
      "end_line": 54,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        sample.metadata[\"generation_pid\"] = os.getpid()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L54",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_generate_with_interrupt",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002071",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 86,
      "end_line": 89,
      "kind": "async_def",
      "name": "_reward_once",
      "source_line": "async def _reward_once(args, sample):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L86-L89",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002072",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 87,
      "end_line": 87,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    assert sample.metadata.get(\"reward_calls\", 0) == 0, \"A completed sample was scored twice\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L87",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_reward_once",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "sample.metadata"
    },
    {
      "id": "occ-002073",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 132,
      "end_line": 132,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "            thread = threading.Thread(target=generate, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L132",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002074",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 133,
      "end_line": 133,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "            thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L133",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "thread"
    },
    {
      "id": "occ-002075",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 158,
      "end_line": 158,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "                        threading.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L158",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002076",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 158,
      "end_line": 158,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                        threading.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L158",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Event",
      "receiver": "threading.Event()"
    },
    {
      "id": "occ-002077",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 159,
      "end_line": 159,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                time.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L159",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002078",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 197,
      "end_line": 197,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "            source.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L197",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source"
    },
    {
      "id": "occ-002079",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 199,
      "end_line": 199,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "        cluster.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L199",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_run_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "cluster"
    },
    {
      "id": "occ-002080",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 204,
      "end_line": 204,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "    if process.poll() is not None:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L204",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_kill_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process"
    },
    {
      "id": "occ-002081",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 225,
      "end_line": 225,
      "kind": "instance_candidate",
      "name": "kill",
      "source_line": "            child.kill()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L225",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_kill_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-002082",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 228,
      "end_line": 228,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "    process.wait(timeout=20)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L228",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_kill_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "process"
    },
    {
      "id": "occ-002083",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 234,
      "end_line": 234,
      "kind": "instance_candidate",
      "name": "is_running",
      "source_line": "                if child.is_running() and child.status() != psutil.STATUS_ZOMBIE:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L234",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_kill_job",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "child"
    },
    {
      "id": "occ-002084",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 241,
      "end_line": 241,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "        time.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L241",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "_kill_job",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002085",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 257,
      "end_line": 257,
      "kind": "api_call",
      "name": "subprocess.Popen",
      "source_line": "            process = subprocess.Popen(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L257",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002086",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 261,
      "end_line": 261,
      "kind": "api_reference",
      "name": "subprocess.STDOUT",
      "source_line": "                stderr=subprocess.STDOUT,",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L261",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "subprocess-output",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-output",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002087",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 268,
      "end_line": 268,
      "kind": "instance_candidate",
      "name": "poll",
      "source_line": "                        assert process.poll() is None, log_path.read_text()[-12000:]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L268",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-002088",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 270,
      "end_line": 270,
      "kind": "api_call",
      "name": "time.sleep",
      "source_line": "                        time.sleep(0.1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L270",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "blocking-sleep",
      "lesson": "03-tasks",
      "anchor": "sleep-key-point",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002089",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 276,
      "end_line": 276,
      "kind": "api_reference",
      "name": "signal.SIGKILL",
      "source_line": "                    assert process.returncode == -signal.SIGKILL",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L276",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "signal-handlers",
      "lesson": "19-signals-locks",
      "anchor": "signal-handlers",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002090",
      "file": "tests/test_straw_fully_async_recovery.py",
      "line": 278,
      "end_line": 278,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "                    assert process.wait(timeout=180) == 0, log_path.read_text()[-12000:]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_fully_async_recovery.py#L278",
      "snapshot": "source_snapshot/tests/test_straw_fully_async_recovery.py.txt",
      "symbol": "test_fully_async_sigkill_and_restart_preserves_results_and_prefixes",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "inferred",
      "receiver_type": "subprocess.Popen",
      "receiver": "process"
    },
    {
      "id": "occ-002091",
      "file": "tests/test_straw_r3.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L1",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002092",
      "file": "tests/test_straw_r3.py",
      "line": 2,
      "end_line": 2,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L2",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002093",
      "file": "tests/test_straw_r3.py",
      "line": 61,
      "end_line": 61,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(apply_rollout_sample_hooks(args, nested, rollout_id=3))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L61",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_straw_publishes_replay_tensors_with_the_group_without_hook_or_spill_directory",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002094",
      "file": "tests/test_straw_r3.py",
      "line": 105,
      "end_line": 105,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    assert asyncio.run(apply_rollout_sample_hooks(args, sample, evaluation=evaluation)) is sample",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L105",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_hooks_leave_ray_evaluation_and_aborted_samples_resident",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002095",
      "file": "tests/test_straw_r3.py",
      "line": 143,
      "end_line": 143,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    entered, release = threading.Event(), threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L143",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002096",
      "file": "tests/test_straw_r3.py",
      "line": 143,
      "end_line": 143,
      "kind": "api_call",
      "name": "threading.Event",
      "source_line": "    entered, release = threading.Event(), threading.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L143",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002097",
      "file": "tests/test_straw_r3.py",
      "line": 150,
      "end_line": 150,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        entered.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L150",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.delayed_write",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "entered"
    },
    {
      "id": "occ-002098",
      "file": "tests/test_straw_r3.py",
      "line": 151,
      "end_line": 151,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        if not release.wait(5):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L151",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.delayed_write",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-002099",
      "file": "tests/test_straw_r3.py",
      "line": 159,
      "end_line": 177,
      "kind": "async_def",
      "name": "run",
      "source_line": "    async def run():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L159-L177",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002100",
      "file": "tests/test_straw_r3.py",
      "line": 160,
      "end_line": 160,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        first = asyncio.create_task(rollout_transport.publish_rollout_async(samples[0], args, 0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L160",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002101",
      "file": "tests/test_straw_r3.py",
      "line": 163,
      "end_line": 163,
      "kind": "await",
      "name": "await",
      "source_line": "            assert await asyncio.to_thread(entered.wait, 5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L163",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002102",
      "file": "tests/test_straw_r3.py",
      "line": 163,
      "end_line": 163,
      "kind": "api_call",
      "name": "asyncio.to_thread",
      "source_line": "            assert await asyncio.to_thread(entered.wait, 5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L163",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "thread-offload",
      "lesson": "08-executors",
      "anchor": "thread-offload",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002103",
      "file": "tests/test_straw_r3.py",
      "line": 164,
      "end_line": 164,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            first.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L164",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "first"
    },
    {
      "id": "occ-002104",
      "file": "tests/test_straw_r3.py",
      "line": 165,
      "end_line": 165,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            second = asyncio.create_task(rollout_transport.publish_rollout_async(samples[1], args, 0))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L165",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002105",
      "file": "tests/test_straw_r3.py",
      "line": 167,
      "end_line": 167,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L167",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002106",
      "file": "tests/test_straw_r3.py",
      "line": 167,
      "end_line": 167,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L167",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002107",
      "file": "tests/test_straw_r3.py",
      "line": 168,
      "end_line": 168,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "            first.cancel()  # A second shutdown signal must not release the writer early.",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L168",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "first"
    },
    {
      "id": "occ-002108",
      "file": "tests/test_straw_r3.py",
      "line": 169,
      "end_line": 169,
      "kind": "await",
      "name": "await",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L169",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002109",
      "file": "tests/test_straw_r3.py",
      "line": 169,
      "end_line": 169,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "            await asyncio.sleep(0.05)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L169",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002110",
      "file": "tests/test_straw_r3.py",
      "line": 170,
      "end_line": 170,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "            assert not first.done()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L170",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "first"
    },
    {
      "id": "occ-002111",
      "file": "tests/test_straw_r3.py",
      "line": 173,
      "end_line": 173,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L173",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-002112",
      "file": "tests/test_straw_r3.py",
      "line": 174,
      "end_line": 174,
      "kind": "await",
      "name": "await",
      "source_line": "            results = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L174",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002113",
      "file": "tests/test_straw_r3.py",
      "line": 174,
      "end_line": 174,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "            results = await asyncio.gather(*tasks, return_exceptions=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L174",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002114",
      "file": "tests/test_straw_r3.py",
      "line": 175,
      "end_line": 175,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "        assert isinstance(results[0], asyncio.CancelledError)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L175",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity.run",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002115",
      "file": "tests/test_straw_r3.py",
      "line": 179,
      "end_line": 179,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(run())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L179",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_cancelled_straw_publication_drains_before_releasing_capacity",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002116",
      "file": "tests/test_straw_r3.py",
      "line": 216,
      "end_line": 216,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    prefetcher.close()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_straw_r3.py#L216",
      "snapshot": "source_snapshot/tests/test_straw_r3.py.txt",
      "symbol": "test_lazy_prefetch_reloads_between_forward_and_backward",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "prefetcher"
    },
    {
      "id": "occ-002117",
      "file": "tests/test_streaming_rollout.py",
      "line": 1,
      "end_line": 1,
      "kind": "import",
      "name": "asyncio",
      "source_line": "import asyncio",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L1",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002118",
      "file": "tests/test_streaming_rollout.py",
      "line": 6,
      "end_line": 6,
      "kind": "import",
      "name": "contextlib.asynccontextmanager",
      "source_line": "from contextlib import asynccontextmanager, nullcontext",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L6",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "<module>",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002119",
      "file": "tests/test_streaming_rollout.py",
      "line": 100,
      "end_line": 100,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "        return \"\".join(f\"<{token_id}>\" for token_id in token_ids)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L100",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_merge_stream_chunks.decode",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-002120",
      "file": "tests/test_streaming_rollout.py",
      "line": 122,
      "end_line": 122,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            decode=lambda token_ids, skip_special_tokens=False: \"\".join(f\"<{token_id}>\" for token_id in token_ids)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L122",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_generation_state.<lambda>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-002121",
      "file": "tests/test_streaming_rollout.py",
      "line": 129,
      "end_line": 129,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        semaphore=asyncio.Semaphore(8),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L129",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_generation_state",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002122",
      "file": "tests/test_streaming_rollout.py",
      "line": 170,
      "end_line": 172,
      "kind": "async_generator_def",
      "name": "chunk_lines",
      "source_line": "    async def chunk_lines():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L170-L172",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_http_stream",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002123",
      "file": "tests/test_streaming_rollout.py",
      "line": 172,
      "end_line": 172,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "            yield \"data: \" + json.dumps(chunk)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L172",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_http_stream.chunk_lines",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002124",
      "file": "tests/test_streaming_rollout.py",
      "line": 176,
      "end_line": 176,
      "kind": "api_reference",
      "name": "contextlib.asynccontextmanager",
      "source_line": "    @asynccontextmanager",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L176",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_http_stream",
      "topic_id": "async-context",
      "lesson": "10-async-protocols",
      "anchor": "async-context",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002125",
      "file": "tests/test_streaming_rollout.py",
      "line": 177,
      "end_line": 185,
      "kind": "async_generator_def",
      "name": "stream",
      "source_line": "    async def stream(method, url, json, headers):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L177-L185",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_http_stream",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002126",
      "file": "tests/test_streaming_rollout.py",
      "line": 182,
      "end_line": 182,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "            yield response",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L182",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "_http_stream.stream",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002127",
      "file": "tests/test_streaming_rollout.py",
      "line": 242,
      "end_line": 242,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "                \"\".join(f\"<{token_id}>\" for token_id in token_slice),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L242",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generate_streaming_preserves_metadata_across_stream_intervals",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "\"\""
    },
    {
      "id": "occ-002128",
      "file": "tests/test_streaming_rollout.py",
      "line": 258,
      "end_line": 258,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L258",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generate_streaming_preserves_metadata_across_stream_intervals",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002129",
      "file": "tests/test_streaming_rollout.py",
      "line": 299,
      "end_line": 299,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L299",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generate_streaming_handles_encoded_terminal_metadata",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002130",
      "file": "tests/test_streaming_rollout.py",
      "line": 320,
      "end_line": 320,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "        asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L320",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_streaming_generator_fails_closed_on_unexpected_eof",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002131",
      "file": "tests/test_streaming_rollout.py",
      "line": 332,
      "end_line": 335,
      "kind": "async_generator_def",
      "name": "lines",
      "source_line": "    async def lines():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L332-L335",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_server_abort_keeps_last_observed_prefix",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002132",
      "file": "tests/test_streaming_rollout.py",
      "line": 334,
      "end_line": 334,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "        yield \"data: \" + json.dumps(_chunk(\"a\", [[-0.1, 11, None]], 1))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L334",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_server_abort_keeps_last_observed_prefix.lines",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002133",
      "file": "tests/test_streaming_rollout.py",
      "line": 338,
      "end_line": 338,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result = asyncio.run(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L338",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_server_abort_keeps_last_observed_prefix",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002134",
      "file": "tests/test_streaming_rollout.py",
      "line": 352,
      "end_line": 352,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    first_chunk_seen = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L352",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002135",
      "file": "tests/test_streaming_rollout.py",
      "line": 353,
      "end_line": 353,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    request_closed = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L353",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002136",
      "file": "tests/test_streaming_rollout.py",
      "line": 354,
      "end_line": 354,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    server_started = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L354",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002137",
      "file": "tests/test_streaming_rollout.py",
      "line": 355,
      "end_line": 355,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    server_released = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L355",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002138",
      "file": "tests/test_streaming_rollout.py",
      "line": 358,
      "end_line": 369,
      "kind": "async_generator_def",
      "name": "lines",
      "source_line": "    async def lines():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L358-L369",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002139",
      "file": "tests/test_streaming_rollout.py",
      "line": 359,
      "end_line": 367,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "        yield \"data: \" + json.dumps(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L359-L367",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.lines",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002140",
      "file": "tests/test_streaming_rollout.py",
      "line": 368,
      "end_line": 368,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        first_chunk_seen.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L368",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "first_chunk_seen"
    },
    {
      "id": "occ-002141",
      "file": "tests/test_streaming_rollout.py",
      "line": 369,
      "end_line": 369,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L369",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.lines",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002142",
      "file": "tests/test_streaming_rollout.py",
      "line": 369,
      "end_line": 369,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L369",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002143",
      "file": "tests/test_streaming_rollout.py",
      "line": 369,
      "end_line": 369,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L369",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "asyncio.Event()"
    },
    {
      "id": "occ-002144",
      "file": "tests/test_streaming_rollout.py",
      "line": 375,
      "end_line": 379,
      "kind": "async_def",
      "name": "server_generate",
      "source_line": "    async def server_generate(args, sample, sampling_params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L375-L379",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002145",
      "file": "tests/test_streaming_rollout.py",
      "line": 376,
      "end_line": 376,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        server_started.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L376",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.server_generate",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "server_started"
    },
    {
      "id": "occ-002146",
      "file": "tests/test_streaming_rollout.py",
      "line": 377,
      "end_line": 377,
      "kind": "await",
      "name": "await",
      "source_line": "        await server_released.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L377",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.server_generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002147",
      "file": "tests/test_streaming_rollout.py",
      "line": 377,
      "end_line": 377,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await server_released.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L377",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.server_generate",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "server_released"
    },
    {
      "id": "occ-002148",
      "file": "tests/test_streaming_rollout.py",
      "line": 381,
      "end_line": 382,
      "kind": "async_def",
      "name": "get_workers",
      "source_line": "    async def get_workers(_url, *, timeout):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L381-L382",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002149",
      "file": "tests/test_streaming_rollout.py",
      "line": 384,
      "end_line": 386,
      "kind": "async_def",
      "name": "abort_servers",
      "source_line": "    async def abort_servers(urls):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L384-L386",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002150",
      "file": "tests/test_streaming_rollout.py",
      "line": 386,
      "end_line": 386,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        server_released.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L386",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.abort_servers",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "server_released"
    },
    {
      "id": "occ-002151",
      "file": "tests/test_streaming_rollout.py",
      "line": 392,
      "end_line": 403,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L392-L403",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002152",
      "file": "tests/test_streaming_rollout.py",
      "line": 393,
      "end_line": 393,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        request_task = asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L393",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002153",
      "file": "tests/test_streaming_rollout.py",
      "line": 400,
      "end_line": 400,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        server_task = asyncio.create_task(sglang_rollout.generate_and_rm(args, Sample(), {}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L400",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002154",
      "file": "tests/test_streaming_rollout.py",
      "line": 401,
      "end_line": 401,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(first_chunk_seen.wait(), server_started.wait())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L401",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002155",
      "file": "tests/test_streaming_rollout.py",
      "line": 401,
      "end_line": 401,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(first_chunk_seen.wait(), server_started.wait())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L401",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002156",
      "file": "tests/test_streaming_rollout.py",
      "line": 401,
      "end_line": 401,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.gather(first_chunk_seen.wait(), server_started.wait())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L401",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "first_chunk_seen"
    },
    {
      "id": "occ-002157",
      "file": "tests/test_streaming_rollout.py",
      "line": 401,
      "end_line": 401,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.gather(first_chunk_seen.wait(), server_started.wait())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L401",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "server_started"
    },
    {
      "id": "occ-002158",
      "file": "tests/test_streaming_rollout.py",
      "line": 402,
      "end_line": 402,
      "kind": "await",
      "name": "await",
      "source_line": "        await sglang_rollout.abort(args, rollout_id=0)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L402",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002159",
      "file": "tests/test_streaming_rollout.py",
      "line": 403,
      "end_line": 403,
      "kind": "await",
      "name": "await",
      "source_line": "        return await asyncio.gather(request_task, server_task)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L403",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002160",
      "file": "tests/test_streaming_rollout.py",
      "line": 403,
      "end_line": 403,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        return await asyncio.gather(request_task, server_task)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L403",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002161",
      "file": "tests/test_streaming_rollout.py",
      "line": 405,
      "end_line": 405,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    result, server_result = asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L405",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002162",
      "file": "tests/test_streaming_rollout.py",
      "line": 410,
      "end_line": 410,
      "kind": "instance_candidate",
      "name": "is_set",
      "source_line": "    assert request_closed.is_set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L410",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_stream_cancellation_closes_request_and_keeps_prefix",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "request_closed"
    },
    {
      "id": "occ-002163",
      "file": "tests/test_streaming_rollout.py",
      "line": 416,
      "end_line": 416,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "    request_started = asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L416",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002164",
      "file": "tests/test_streaming_rollout.py",
      "line": 419,
      "end_line": 422,
      "kind": "async_generator_def",
      "name": "lines",
      "source_line": "    async def lines():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L419-L422",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002165",
      "file": "tests/test_streaming_rollout.py",
      "line": 420,
      "end_line": 420,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        request_started.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L420",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "request_started"
    },
    {
      "id": "occ-002166",
      "file": "tests/test_streaming_rollout.py",
      "line": 421,
      "end_line": 421,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L421",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.lines",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002167",
      "file": "tests/test_streaming_rollout.py",
      "line": 421,
      "end_line": 421,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L421",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002168",
      "file": "tests/test_streaming_rollout.py",
      "line": 421,
      "end_line": 421,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.Event().wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L421",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.lines",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "asyncio.Event()"
    },
    {
      "id": "occ-002169",
      "file": "tests/test_streaming_rollout.py",
      "line": 422,
      "end_line": 422,
      "kind": "async_yield",
      "name": "yield in async generator",
      "source_line": "        yield \"unreachable\"",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L422",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.lines",
      "topic_id": "async-iteration",
      "lesson": "10-async-protocols",
      "anchor": "async-iteration",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002170",
      "file": "tests/test_streaming_rollout.py",
      "line": 427,
      "end_line": 439,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L427-L439",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002171",
      "file": "tests/test_streaming_rollout.py",
      "line": 428,
      "end_line": 428,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        task = asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L428",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002172",
      "file": "tests/test_streaming_rollout.py",
      "line": 435,
      "end_line": 435,
      "kind": "await",
      "name": "await",
      "source_line": "        await request_started.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L435",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002173",
      "file": "tests/test_streaming_rollout.py",
      "line": 435,
      "end_line": 435,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await request_started.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L435",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "inferred",
      "receiver_type": "asyncio.Event",
      "receiver": "request_started"
    },
    {
      "id": "occ-002174",
      "file": "tests/test_streaming_rollout.py",
      "line": 437,
      "end_line": 437,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "        task.cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L437",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "task-inspection",
      "lesson": "13-event-loop",
      "anchor": "task-inspection",
      "status": "inferred",
      "receiver_type": "asyncio.Task",
      "receiver": "task"
    },
    {
      "id": "occ-002175",
      "file": "tests/test_streaming_rollout.py",
      "line": 438,
      "end_line": 438,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "        with pytest.raises(asyncio.CancelledError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L438",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002176",
      "file": "tests/test_streaming_rollout.py",
      "line": 439,
      "end_line": 439,
      "kind": "await",
      "name": "await",
      "source_line": "            await task",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L439",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002177",
      "file": "tests/test_streaming_rollout.py",
      "line": 441,
      "end_line": 441,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L441",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_unrelated_stream_cancellation_propagates",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002178",
      "file": "tests/test_streaming_rollout.py",
      "line": 466,
      "end_line": 512,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L466-L512",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002179",
      "file": "tests/test_streaming_rollout.py",
      "line": 472,
      "end_line": 472,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "                asyncio.create_task(asyncio.sleep(0, result=group)) for group in (mixed_group, [terminal], [empty])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L472",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise.<comprehension>",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002180",
      "file": "tests/test_streaming_rollout.py",
      "line": 472,
      "end_line": 472,
      "kind": "api_call",
      "name": "asyncio.sleep",
      "source_line": "                asyncio.create_task(asyncio.sleep(0, result=group)) for group in (mixed_group, [terminal], [empty])",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L472",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise.<comprehension>",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002181",
      "file": "tests/test_streaming_rollout.py",
      "line": 486,
      "end_line": 486,
      "kind": "await",
      "name": "await",
      "source_line": "        buffered_groups = await sglang_rollout.abort(args, rollout_id=7)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L486",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002182",
      "file": "tests/test_streaming_rollout.py",
      "line": 489,
      "end_line": 498,
      "kind": "async_def",
      "name": "resume_generate",
      "source_line": "        async def resume_generate(args, sample, sampling_params):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L489-L498",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002183",
      "file": "tests/test_streaming_rollout.py",
      "line": 500,
      "end_line": 502,
      "kind": "async_def",
      "name": "reward",
      "source_line": "        async def reward(_args, sample):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L500-L502",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002184",
      "file": "tests/test_streaming_rollout.py",
      "line": 507,
      "end_line": 507,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        state.semaphore = asyncio.Semaphore(2)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L507",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002185",
      "file": "tests/test_streaming_rollout.py",
      "line": 511,
      "end_line": 511,
      "kind": "await",
      "name": "await",
      "source_line": "        resumed_group = await sglang_rollout.generate_and_rm_group(args, mixed_group, {\"max_new_tokens\": 1})",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L511",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002186",
      "file": "tests/test_streaming_rollout.py",
      "line": 514,
      "end_line": 514,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    buffered_groups, resumed_group = asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L514",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_partial_abort_buffers_and_resumes_only_aborted_siblings",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002187",
      "file": "tests/test_streaming_rollout.py",
      "line": 533,
      "end_line": 587,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L533-L587",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002188",
      "file": "tests/test_streaming_rollout.py",
      "line": 535,
      "end_line": 535,
      "kind": "api_call",
      "name": "asyncio.Semaphore",
      "source_line": "        state.semaphore = asyncio.Semaphore(128)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L535",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "semaphore",
      "lesson": "06-semaphore",
      "anchor": "semaphore-permits",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002189",
      "file": "tests/test_streaming_rollout.py",
      "line": 539,
      "end_line": 539,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        first_batch, all_started, finish = asyncio.Event(), asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L539",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002190",
      "file": "tests/test_streaming_rollout.py",
      "line": 539,
      "end_line": 539,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        first_batch, all_started, finish = asyncio.Event(), asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L539",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002191",
      "file": "tests/test_streaming_rollout.py",
      "line": 539,
      "end_line": 539,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        first_batch, all_started, finish = asyncio.Event(), asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L539",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002192",
      "file": "tests/test_streaming_rollout.py",
      "line": 541,
      "end_line": 541,
      "kind": "api_call",
      "name": "asyncio.get_running_loop",
      "source_line": "        loop = asyncio.get_running_loop()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L541",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "future-basics",
      "lesson": "13-event-loop",
      "anchor": "future-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002193",
      "file": "tests/test_streaming_rollout.py",
      "line": 550,
      "end_line": 560,
      "kind": "async_def",
      "name": "generate",
      "source_line": "        async def generate(_args, sample, params, evaluation=False):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L550-L560",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002194",
      "file": "tests/test_streaming_rollout.py",
      "line": 555,
      "end_line": 555,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "                first_batch.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L555",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "first_batch"
    },
    {
      "id": "occ-002195",
      "file": "tests/test_streaming_rollout.py",
      "line": 557,
      "end_line": 557,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "                all_started.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L557",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "all_started"
    },
    {
      "id": "occ-002196",
      "file": "tests/test_streaming_rollout.py",
      "line": 558,
      "end_line": 558,
      "kind": "await",
      "name": "await",
      "source_line": "            await finish.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L558",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002197",
      "file": "tests/test_streaming_rollout.py",
      "line": 558,
      "end_line": 558,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            await finish.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L558",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.generate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "finish"
    },
    {
      "id": "occ-002198",
      "file": "tests/test_streaming_rollout.py",
      "line": 568,
      "end_line": 568,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "            return asyncio.create_task(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L568",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.start",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002199",
      "file": "tests/test_streaming_rollout.py",
      "line": 573,
      "end_line": 573,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.wait_for(first_batch.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L573",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002200",
      "file": "tests/test_streaming_rollout.py",
      "line": 573,
      "end_line": 573,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "        await asyncio.wait_for(first_batch.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L573",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002201",
      "file": "tests/test_streaming_rollout.py",
      "line": 573,
      "end_line": 573,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.wait_for(first_batch.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L573",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "first_batch"
    },
    {
      "id": "occ-002202",
      "file": "tests/test_streaming_rollout.py",
      "line": 576,
      "end_line": 576,
      "kind": "instance_candidate",
      "name": "done",
      "source_line": "        assert not any(task.done() for task in tasks)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L576",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "task"
    },
    {
      "id": "occ-002203",
      "file": "tests/test_streaming_rollout.py",
      "line": 577,
      "end_line": 577,
      "kind": "instance_candidate",
      "name": "cancel",
      "source_line": "        tasks[70].cancel()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L577",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "tasks[70]"
    },
    {
      "id": "occ-002204",
      "file": "tests/test_streaming_rollout.py",
      "line": 578,
      "end_line": 578,
      "kind": "api_reference",
      "name": "asyncio.CancelledError",
      "source_line": "        with pytest.raises(asyncio.CancelledError):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L578",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "cancellation",
      "lesson": "05-cancellation",
      "anchor": "task-cancellation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002205",
      "file": "tests/test_streaming_rollout.py",
      "line": 579,
      "end_line": 579,
      "kind": "await",
      "name": "await",
      "source_line": "            await tasks[70]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L579",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002206",
      "file": "tests/test_streaming_rollout.py",
      "line": 581,
      "end_line": 581,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.wait_for(all_started.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L581",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002207",
      "file": "tests/test_streaming_rollout.py",
      "line": 581,
      "end_line": 581,
      "kind": "api_call",
      "name": "asyncio.wait_for",
      "source_line": "        await asyncio.wait_for(all_started.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L581",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "timeouts",
      "lesson": "05-cancellation",
      "anchor": "timeouts-and-shield",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002208",
      "file": "tests/test_streaming_rollout.py",
      "line": 581,
      "end_line": 581,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await asyncio.wait_for(all_started.wait(), 1)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L581",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "all_started"
    },
    {
      "id": "occ-002209",
      "file": "tests/test_streaming_rollout.py",
      "line": 584,
      "end_line": 584,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        finish.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L584",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "finish"
    },
    {
      "id": "occ-002210",
      "file": "tests/test_streaming_rollout.py",
      "line": 585,
      "end_line": 585,
      "kind": "await",
      "name": "await",
      "source_line": "        await asyncio.gather(*(task for i, task in enumerate(tasks) if i != 70))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L585",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002211",
      "file": "tests/test_streaming_rollout.py",
      "line": 585,
      "end_line": 585,
      "kind": "api_call",
      "name": "asyncio.gather",
      "source_line": "        await asyncio.gather(*(task for i, task in enumerate(tasks) if i != 70))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L585",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "gather",
      "lesson": "03-tasks",
      "anchor": "gather-results",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002212",
      "file": "tests/test_streaming_rollout.py",
      "line": 586,
      "end_line": 586,
      "kind": "await",
      "name": "await",
      "source_line": "        assert (await start(128)).status == Sample.Status.COMPLETED",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L586",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002213",
      "file": "tests/test_streaming_rollout.py",
      "line": 589,
      "end_line": 589,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L589",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_generation_pacing_preserves_concurrency_cancellation_and_reuse",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002214",
      "file": "tests/test_streaming_rollout.py",
      "line": 593,
      "end_line": 616,
      "kind": "async_def",
      "name": "exercise",
      "source_line": "    async def exercise():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L593-L616",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002215",
      "file": "tests/test_streaming_rollout.py",
      "line": 597,
      "end_line": 597,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        queued, release = asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L597",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002216",
      "file": "tests/test_streaming_rollout.py",
      "line": 597,
      "end_line": 597,
      "kind": "api_call",
      "name": "asyncio.Event",
      "source_line": "        queued, release = asyncio.Event(), asyncio.Event()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L597",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "asyncio-event",
      "lesson": "15-async-notification",
      "anchor": "event-notification",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002217",
      "file": "tests/test_streaming_rollout.py",
      "line": 600,
      "end_line": 603,
      "kind": "async_def",
      "name": "wait_for_release",
      "source_line": "        async def wait_for_release():",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L600-L603",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002218",
      "file": "tests/test_streaming_rollout.py",
      "line": 601,
      "end_line": 601,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "            queued.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L601",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queued"
    },
    {
      "id": "occ-002219",
      "file": "tests/test_streaming_rollout.py",
      "line": 602,
      "end_line": 602,
      "kind": "await",
      "name": "await",
      "source_line": "            await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L602",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002220",
      "file": "tests/test_streaming_rollout.py",
      "line": 602,
      "end_line": 602,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "            await release.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L602",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-002221",
      "file": "tests/test_streaming_rollout.py",
      "line": 603,
      "end_line": 603,
      "kind": "await",
      "name": "await",
      "source_line": "            await wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L603",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise.wait_for_release",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002222",
      "file": "tests/test_streaming_rollout.py",
      "line": 605,
      "end_line": 606,
      "kind": "async_def",
      "name": "unexpected_generate",
      "source_line": "        async def unexpected_generate(*args, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L605-L606",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002223",
      "file": "tests/test_streaming_rollout.py",
      "line": 611,
      "end_line": 611,
      "kind": "api_call",
      "name": "asyncio.create_task",
      "source_line": "        task = asyncio.create_task(sglang_rollout.generate_and_rm(args, Sample(), {}))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L611",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "task-creation",
      "lesson": "03-tasks",
      "anchor": "task-creation",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002224",
      "file": "tests/test_streaming_rollout.py",
      "line": 612,
      "end_line": 612,
      "kind": "await",
      "name": "await",
      "source_line": "        await queued.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L612",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002225",
      "file": "tests/test_streaming_rollout.py",
      "line": 612,
      "end_line": 612,
      "kind": "instance_candidate",
      "name": "wait",
      "source_line": "        await queued.wait()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L612",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "queued"
    },
    {
      "id": "occ-002226",
      "file": "tests/test_streaming_rollout.py",
      "line": 614,
      "end_line": 614,
      "kind": "instance_candidate",
      "name": "set",
      "source_line": "        release.set()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L614",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "release"
    },
    {
      "id": "occ-002227",
      "file": "tests/test_streaming_rollout.py",
      "line": 615,
      "end_line": 615,
      "kind": "await",
      "name": "await",
      "source_line": "        assert (await task).status == Sample.Status.ABORTED",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L615",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request.exercise",
      "topic_id": "await",
      "lesson": "02-await",
      "anchor": "await-execution",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002228",
      "file": "tests/test_streaming_rollout.py",
      "line": 618,
      "end_line": 618,
      "kind": "api_call",
      "name": "asyncio.run",
      "source_line": "    asyncio.run(exercise())",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_streaming_rollout.py#L618",
      "snapshot": "source_snapshot/tests/test_streaming_rollout.py.txt",
      "symbol": "test_abort_while_waiting_for_generation_pacer_does_not_start_request",
      "topic_id": "run-entry",
      "lesson": "01-async-def",
      "anchor": "run-entry",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002229",
      "file": "tests/test_training_recovery.py",
      "line": 291,
      "end_line": 291,
      "kind": "import",
      "name": "subprocess",
      "source_line": "    import subprocess",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L291",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002230",
      "file": "tests/test_training_recovery.py",
      "line": 292,
      "end_line": 292,
      "kind": "import",
      "name": "threading",
      "source_line": "    import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L292",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002231",
      "file": "tests/test_training_recovery.py",
      "line": 310,
      "end_line": 310,
      "kind": "instance_candidate",
      "name": "write",
      "source_line": "            self.wfile.write(body)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L310",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy.Dashboard.do_GET",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "self.wfile"
    },
    {
      "id": "occ-002232",
      "file": "tests/test_training_recovery.py",
      "line": 326,
      "end_line": 326,
      "kind": "api_reference",
      "name": "subprocess",
      "source_line": "    monkeypatch.setattr(subprocess, \"run\", lambda *a, **kw: started.append(dict(os.environ)))",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L326",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "subprocess-communication",
      "lesson": "18-process-lifecycle",
      "anchor": "subprocess-communicate",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002233",
      "file": "tests/test_training_recovery.py",
      "line": 339,
      "end_line": 339,
      "kind": "api_call",
      "name": "threading.Thread",
      "source_line": "        thread = threading.Thread(target=server.serve_forever, daemon=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L339",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002234",
      "file": "tests/test_training_recovery.py",
      "line": 340,
      "end_line": 340,
      "kind": "instance_candidate",
      "name": "start",
      "source_line": "        thread.start()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L340",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "thread"
    },
    {
      "id": "occ-002235",
      "file": "tests/test_training_recovery.py",
      "line": 345,
      "end_line": 345,
      "kind": "instance_candidate",
      "name": "shutdown",
      "source_line": "            server.shutdown()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L345",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "server"
    },
    {
      "id": "occ-002236",
      "file": "tests/test_training_recovery.py",
      "line": 346,
      "end_line": 346,
      "kind": "instance_candidate",
      "name": "join",
      "source_line": "            thread.join(timeout=5)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L346",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "inferred",
      "receiver_type": "threading.Thread",
      "receiver": "thread"
    },
    {
      "id": "occ-002237",
      "file": "tests/test_training_recovery.py",
      "line": 349,
      "end_line": 349,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    assert all(not env.get(name) for env in started for name in proxies)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L349",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_recovery_e2e_contacts_dashboard_without_proxy.<comprehension>",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "env"
    },
    {
      "id": "occ-002238",
      "file": "tests/test_training_recovery.py",
      "line": 513,
      "end_line": 513,
      "kind": "instance_candidate",
      "name": "clear",
      "source_line": "    source.buffer.clear()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L513",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_source_snapshot_restores_cursor_and_buffer",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "source.buffer"
    },
    {
      "id": "occ-002239",
      "file": "tests/test_training_recovery.py",
      "line": 648,
      "end_line": 648,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "    startup.close(failed=True)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L648",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_failed_attempt_releases_trainers_despite_manager_failure",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "startup"
    },
    {
      "id": "occ-002240",
      "file": "tests/test_training_recovery.py",
      "line": 673,
      "end_line": 673,
      "kind": "instance_candidate",
      "name": "close",
      "source_line": "        startup.close(failed=False)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L673",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_successful_attempt_cleans_both_owners_after_dispose_error",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "startup"
    },
    {
      "id": "occ-002241",
      "file": "tests/test_training_recovery.py",
      "line": 715,
      "end_line": 715,
      "kind": "instance_candidate",
      "name": "apply",
      "source_line": "    resolved = resume.apply(args)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/test_training_recovery.py#L715",
      "snapshot": "source_snapshot/tests/test_training_recovery.py.txt",
      "symbol": "test_training_resume_keeps_checkpoint_and_attempt_configuration_separate",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "resume"
    },
    {
      "id": "occ-002242",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 5,
      "end_line": 5,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L5",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002243",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 15,
      "end_line": 16,
      "kind": "async_def",
      "name": "reward",
      "source_line": "async def reward(args, sample, **kwargs):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L15-L16",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "<module>",
      "topic_id": "coroutine-definition",
      "lesson": "01-async-def",
      "anchor": "coroutine-definition",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002244",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 20,
      "end_line": 20,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    return {\"actor_pid\": os.getpid(), \"server_pid\": engine.process.pid, \"url\": engine.get_url()}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L20",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "_engine_identity",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002245",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 24,
      "end_line": 24,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "    return {\"serving_pid\": os.getpid(), \"router_pids\": [process.pid for process in serving.router_processes]}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L24",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "_serving_identity",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002246",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 38,
      "end_line": 38,
      "kind": "instance_candidate",
      "name": "get",
      "source_line": "    for routes in data.get(\"rollout_routed_experts\", []):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L38",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "_session_snapshot",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "data"
    },
    {
      "id": "occ-002247",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 47,
      "end_line": 47,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "        \"manager_pid\": os.getpid(),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L47",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "_session_snapshot",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002248",
      "file": "tests/training_recovery_test_helpers.py",
      "line": 78,
      "end_line": 78,
      "kind": "api_call",
      "name": "os.getpid",
      "source_line": "            \"pid\": os.getpid(),",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tests/training_recovery_test_helpers.py#L78",
      "snapshot": "source_snapshot/tests/training_recovery_test_helpers.py.txt",
      "symbol": "before_train_step",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002249",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 22,
      "end_line": 22,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L22",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002250",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 23,
      "end_line": 23,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L23",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002251",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 105,
      "end_line": 105,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "        self.lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L105",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "ConversionResult.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002252",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 178,
      "end_line": 178,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(max_workers=max_workers) as executor:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L178",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "convert_fp8",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002253",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 181,
      "end_line": 181,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            future = executor.submit(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L181",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "convert_fp8",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "executor"
    },
    {
      "id": "occ-002254",
      "file": "tools/convert_hf_to_fp8.py",
      "line": 187,
      "end_line": 187,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            future.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_fp8.py#L187",
      "snapshot": "source_snapshot/tools/convert_hf_to_fp8.py.txt",
      "symbol": "convert_fp8",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "future"
    },
    {
      "id": "occ-002255",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 16,
      "end_line": 16,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L16",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002256",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 17,
      "end_line": 17,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L17",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002257",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 158,
      "end_line": 158,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "        self.lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L158",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "ConversionResult.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002258",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 224,
      "end_line": 224,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(max_workers=max_workers) as executor:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L224",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "convert_int4",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002259",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 227,
      "end_line": 227,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "            future = executor.submit(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L227",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "convert_int4",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "executor"
    },
    {
      "id": "occ-002260",
      "file": "tools/convert_hf_to_int4_direct.py",
      "line": 240,
      "end_line": 240,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            future.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_hf_to_int4_direct.py#L240",
      "snapshot": "source_snapshot/tools/convert_hf_to_int4_direct.py.txt",
      "symbol": "convert_int4",
      "topic_id": "future-result-state",
      "lesson": "17-executor-results",
      "anchor": "future-result-state",
      "status": "inferred",
      "receiver_type": "concurrent.futures.Future",
      "receiver": "future"
    },
    {
      "id": "occ-002261",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "multiprocessing",
      "source_line": "import multiprocessing",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L3",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002262",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 8,
      "end_line": 8,
      "kind": "import",
      "name": "threading",
      "source_line": "import threading",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L8",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002263",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "from concurrent.futures import ThreadPoolExecutor, as_completed",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L10",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002264",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 10,
      "end_line": 10,
      "kind": "import",
      "name": "concurrent.futures.as_completed",
      "source_line": "from concurrent.futures import ThreadPoolExecutor, as_completed",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L10",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "executor-as-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-as-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002265",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 43,
      "end_line": 43,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "        self._cache_lock = threading.Lock() if max_workers and max_workers > 1 else None",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L43",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader.__init__",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002266",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 137,
      "end_line": 137,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                        data = stream.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L137",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files.read_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "stream"
    },
    {
      "id": "occ-002267",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 140,
      "end_line": 140,
      "kind": "instance_candidate",
      "name": "read",
      "source_line": "                        data = stream.read()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L140",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files.read_file",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "stream"
    },
    {
      "id": "occ-002268",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 147,
      "end_line": 147,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "        with ThreadPoolExecutor(max_workers=self.max_workers) as executor:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L147",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002269",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 149,
      "end_line": 149,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "                executor.submit(read_file, rel_path, full_path, ops): rel_path",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L149",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files.<comprehension>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "executor"
    },
    {
      "id": "occ-002270",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 154,
      "end_line": 154,
      "kind": "api_call",
      "name": "concurrent.futures.as_completed",
      "source_line": "            for future in tqdm(as_completed(futures), total=len(futures), desc=\"Pre-loading files\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L154",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files",
      "topic_id": "executor-as-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-as-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002271",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 155,
      "end_line": 155,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "                result = future.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L155",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "WrappedStorageReader._parallel_preload_files",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-002272",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 284,
      "end_line": 284,
      "kind": "api_call",
      "name": "threading.Lock",
      "source_line": "    lock = threading.Lock()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L284",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "thread-basics",
      "lesson": "09-thread-synchronization",
      "anchor": "thread-basics",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002273",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 296,
      "end_line": 296,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(max_workers=max_workers) as executor:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L296",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002274",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 297,
      "end_line": 297,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "        futures = {executor.submit(process_and_collect, (name, param)): name for name, param in param_list}",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L297",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors.<comprehension>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "executor"
    },
    {
      "id": "occ-002275",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 298,
      "end_line": 298,
      "kind": "api_call",
      "name": "concurrent.futures.as_completed",
      "source_line": "        for future in tqdm(as_completed(futures), total=len(futures), desc=\"Converting parameters\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L298",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "executor-as-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-as-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002276",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 299,
      "end_line": 299,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            converted = future.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L299",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-002277",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 336,
      "end_line": 336,
      "kind": "api_call",
      "name": "concurrent.futures.ThreadPoolExecutor",
      "source_line": "    with ThreadPoolExecutor(max_workers=min(max_workers, num_files)) as executor:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L336",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002278",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 337,
      "end_line": 337,
      "kind": "instance_candidate",
      "name": "submit",
      "source_line": "        futures = [executor.submit(save_file, i, tensors) for i, tensors in enumerate(modeltensors)]",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L337",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors.<comprehension>",
      "topic_id": "executor-submit-map",
      "lesson": "17-executor-results",
      "anchor": "executor-submit-map",
      "status": "inferred",
      "receiver_type": "concurrent.futures.ThreadPoolExecutor",
      "receiver": "executor"
    },
    {
      "id": "occ-002279",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 338,
      "end_line": 338,
      "kind": "api_call",
      "name": "concurrent.futures.as_completed",
      "source_line": "        for future in tqdm(as_completed(futures), total=len(futures), desc=\"Saving files\"):",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L338",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "executor-as-completed",
      "lesson": "17-executor-results",
      "anchor": "executor-as-completed",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002280",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 339,
      "end_line": 339,
      "kind": "instance_candidate",
      "name": "result",
      "source_line": "            filename, elapsed = future.result()",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L339",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "save_tensors",
      "topic_id": "object-method-boundaries",
      "lesson": "21-async-inspection",
      "anchor": "object-method-boundaries",
      "status": "candidate",
      "receiver_type": null,
      "receiver": "future"
    },
    {
      "id": "occ-002281",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 511,
      "end_line": 511,
      "kind": "api_call",
      "name": "multiprocessing.get_context",
      "source_line": "    ctx = multiprocessing.get_context(\"spawn\")",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L511",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "process-context",
      "lesson": "18-process-lifecycle",
      "anchor": "process-start",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002282",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 512,
      "end_line": 512,
      "kind": "instance_candidate",
      "name": "Pool",
      "source_line": "    with ctx.Pool(num_workers) as pool:",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L512",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "process-intro",
      "lesson": "12-processes",
      "anchor": "process-intro",
      "status": "inferred",
      "receiver_type": "multiprocessing.context.BaseContext",
      "receiver": "ctx"
    },
    {
      "id": "occ-002283",
      "file": "tools/convert_torch_dist_to_hf_parallel.py",
      "line": 513,
      "end_line": 513,
      "kind": "instance_candidate",
      "name": "starmap",
      "source_line": "        results = pool.starmap(",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/convert_torch_dist_to_hf_parallel.py#L513",
      "snapshot": "source_snapshot/tools/convert_torch_dist_to_hf_parallel.py.txt",
      "symbol": "<module>",
      "topic_id": "process-intro",
      "lesson": "12-processes",
      "anchor": "process-intro",
      "status": "inferred",
      "receiver_type": "multiprocessing.Pool",
      "receiver": "pool"
    },
    {
      "id": "occ-002284",
      "file": "tools/fp8_cast_bf16.py",
      "line": 3,
      "end_line": 3,
      "kind": "import",
      "name": "os",
      "source_line": "import os",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/fp8_cast_bf16.py#L3",
      "snapshot": "source_snapshot/tools/fp8_cast_bf16.py.txt",
      "symbol": "<module>",
      "topic_id": "process-identity",
      "lesson": "19-signals-locks",
      "anchor": "process-identity",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002285",
      "file": "tools/fp8_cast_bf16.py",
      "line": 47,
      "end_line": 47,
      "kind": "api_call",
      "name": "os.system",
      "source_line": "    os.system(\"cp -rf \" + fp8_path + \"/config.json \" + bf16_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/fp8_cast_bf16.py#L47",
      "snapshot": "source_snapshot/tools/fp8_cast_bf16.py.txt",
      "symbol": "main",
      "topic_id": "shell-process-boundary",
      "lesson": "19-signals-locks",
      "anchor": "shell-boundary",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002286",
      "file": "tools/fp8_cast_bf16.py",
      "line": 48,
      "end_line": 48,
      "kind": "api_call",
      "name": "os.system",
      "source_line": "    os.system(\"cp -rf \" + fp8_path + \"/*.py \" + bf16_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/fp8_cast_bf16.py#L48",
      "snapshot": "source_snapshot/tools/fp8_cast_bf16.py.txt",
      "symbol": "main",
      "topic_id": "shell-process-boundary",
      "lesson": "19-signals-locks",
      "anchor": "shell-boundary",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002287",
      "file": "tools/fp8_cast_bf16.py",
      "line": 49,
      "end_line": 49,
      "kind": "api_call",
      "name": "os.system",
      "source_line": "    os.system(\"cp -rf \" + fp8_path + \"/tokenizer* \" + bf16_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/fp8_cast_bf16.py#L49",
      "snapshot": "source_snapshot/tools/fp8_cast_bf16.py.txt",
      "symbol": "main",
      "topic_id": "shell-process-boundary",
      "lesson": "19-signals-locks",
      "anchor": "shell-boundary",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    },
    {
      "id": "occ-002288",
      "file": "tools/fp8_cast_bf16.py",
      "line": 50,
      "end_line": 50,
      "kind": "api_call",
      "name": "os.system",
      "source_line": "    os.system(\"cp -rf \" + fp8_path + \"/chat_template* \" + bf16_path)",
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/tools/fp8_cast_bf16.py#L50",
      "snapshot": "source_snapshot/tools/fp8_cast_bf16.py.txt",
      "symbol": "main",
      "topic_id": "shell-process-boundary",
      "lesson": "19-signals-locks",
      "anchor": "shell-boundary",
      "status": "explained",
      "receiver_type": null,
      "receiver": null
    }
  ],
  "candidate_methods": [
    {
      "name": "__aenter__",
      "count": 1,
      "related_topic_ids": [
        "async-protocol-methods"
      ]
    },
    {
      "name": "__aexit__",
      "count": 2,
      "related_topic_ids": [
        "async-protocol-methods"
      ]
    },
    {
      "name": "abort",
      "count": 1,
      "related_topic_ids": []
    },
    {
      "name": "acquire",
      "count": 11,
      "related_topic_ids": [
        "semaphore",
        "thread-basics",
        "asyncio-lock",
        "threading-rlock"
      ]
    },
    {
      "name": "apply",
      "count": 1,
      "related_topic_ids": []
    },
    {
      "name": "call_soon_threadsafe",
      "count": 2,
      "related_topic_ids": [
        "loop-shutdown"
      ]
    },
    {
      "name": "cancel",
      "count": 9,
      "related_topic_ids": [
        "threading-timer",
        "future-cancel-callback",
        "future-callbacks",
        "task-inspection"
      ]
    },
    {
      "name": "clear",
      "count": 13,
      "related_topic_ids": [
        "thread-basics",
        "asyncio-event"
      ]
    },
    {
      "name": "close",
      "count": 74,
      "related_topic_ids": [
        "process-reaping",
        "process-pool-lifecycle",
        "loop-shutdown",
        "stream-writer",
        "server-lifecycle"
      ]
    },
    {
      "name": "done",
      "count": 8,
      "related_topic_ids": [
        "future-result-state",
        "future-callbacks",
        "task-inspection"
      ]
    },
    {
      "name": "drain",
      "count": 1,
      "related_topic_ids": [
        "stream-writer"
      ]
    },
    {
      "name": "exception",
      "count": 6,
      "related_topic_ids": [
        "future-result-state",
        "task-inspection"
      ]
    },
    {
      "name": "get",
      "count": 342,
      "related_topic_ids": [
        "async-queue",
        "thread-queue",
        "task-context",
        "process-queues"
      ]
    },
    {
      "name": "get_loop",
      "count": 1,
      "related_topic_ids": [
        "task-inspection"
      ]
    },
    {
      "name": "is_alive",
      "count": 5,
      "related_topic_ids": [
        "thread-basics",
        "process-context"
      ]
    },
    {
      "name": "is_running",
      "count": 1,
      "related_topic_ids": [
        "loop-shutdown"
      ]
    },
    {
      "name": "is_set",
      "count": 4,
      "related_topic_ids": [
        "thread-basics",
        "asyncio-event"
      ]
    },
    {
      "name": "join",
      "count": 40,
      "related_topic_ids": [
        "thread-basics",
        "threading-timer",
        "process-reaping",
        "process-pool-lifecycle"
      ]
    },
    {
      "name": "kill",
      "count": 4,
      "related_topic_ids": [
        "process-reaping",
        "subprocess-communication"
      ]
    },
    {
      "name": "poll",
      "count": 2,
      "related_topic_ids": [
        "subprocess-communication"
      ]
    },
    {
      "name": "put",
      "count": 7,
      "related_topic_ids": [
        "async-queue",
        "thread-queue",
        "process-queues"
      ]
    },
    {
      "name": "read",
      "count": 10,
      "related_topic_ids": [
        "stream-reader"
      ]
    },
    {
      "name": "readexactly",
      "count": 1,
      "related_topic_ids": [
        "stream-reader"
      ]
    },
    {
      "name": "readline",
      "count": 1,
      "related_topic_ids": [
        "stream-reader"
      ]
    },
    {
      "name": "readuntil",
      "count": 1,
      "related_topic_ids": [
        "stream-reader"
      ]
    },
    {
      "name": "release",
      "count": 12,
      "related_topic_ids": [
        "semaphore",
        "thread-basics",
        "asyncio-lock",
        "threading-rlock"
      ]
    },
    {
      "name": "reset",
      "count": 6,
      "related_topic_ids": [
        "task-context"
      ]
    },
    {
      "name": "result",
      "count": 21,
      "related_topic_ids": [
        "future-result-state",
        "future-basics",
        "event-loop-lifecycle",
        "task-inspection"
      ]
    },
    {
      "name": "set",
      "count": 15,
      "related_topic_ids": [
        "thread-basics",
        "task-context",
        "asyncio-event"
      ]
    },
    {
      "name": "set_exception",
      "count": 1,
      "related_topic_ids": [
        "future-test-double",
        "future-callbacks"
      ]
    },
    {
      "name": "set_result",
      "count": 2,
      "related_topic_ids": [
        "future-test-double",
        "future-callbacks"
      ]
    },
    {
      "name": "shutdown",
      "count": 7,
      "related_topic_ids": [
        "executor-shutdown"
      ]
    },
    {
      "name": "start",
      "count": 7,
      "related_topic_ids": [
        "thread-basics",
        "threading-timer",
        "process-context"
      ]
    },
    {
      "name": "stop",
      "count": 4,
      "related_topic_ids": [
        "loop-shutdown"
      ]
    },
    {
      "name": "submit",
      "count": 1,
      "related_topic_ids": [
        "executor-submit-map"
      ]
    },
    {
      "name": "wait",
      "count": 22,
      "related_topic_ids": [
        "thread-basics",
        "asyncio-event",
        "threading-condition",
        "subprocess-communication"
      ]
    },
    {
      "name": "wait_closed",
      "count": 2,
      "related_topic_ids": [
        "stream-writer",
        "server-lifecycle"
      ]
    },
    {
      "name": "write",
      "count": 22,
      "related_topic_ids": [
        "stream-writer"
      ]
    }
  ],
  "documentation_snippets": [
    {
      "id": "DOC-001",
      "path": ".claude/skills/add-reward-function/SKILL.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 35,
      "fence_end_line": 38,
      "start_line": 36,
      "end_line": 37,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/.claude/skills/add-reward-function/SKILL.md#L36-L37",
      "source_sha256": "cbea3590956164833cc3533a689095b735996a44aae9acbf8f4f6800714fc487",
      "snippet_sha256": "4a7f5ac023ba1faec125a19bf5a6d2186f195860b09ae9faaaa6656f2defaf16",
      "snippet": "async def custom_rm(args, sample):\n    return float_reward_or_reward_dict\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "unspecified",
      "bilingual_group_id": null,
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-002",
      "path": ".claude/skills/add-reward-function/SKILL.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 40,
      "fence_end_line": 43,
      "start_line": 41,
      "end_line": 42,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/.claude/skills/add-reward-function/SKILL.md#L41-L42",
      "source_sha256": "cbea3590956164833cc3533a689095b735996a44aae9acbf8f4f6800714fc487",
      "snippet_sha256": "c062ac2ab89c2627a343e552f1e5561ae23b5893364c4928bd934da24e819dd5",
      "snippet": "async def custom_rm(args, samples):\n    return list_of_rewards\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "unspecified",
      "bilingual_group_id": null,
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-003",
      "path": "docs/en/advanced/sglang-config.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 172,
      "fence_end_line": 190,
      "start_line": 173,
      "end_line": 189,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/advanced/sglang-config.md#L173-L189",
      "source_sha256": "f30b036edbc2b4ca1bb1e8e2bebea7f203978d00a41c0814926af436ccd84b44",
      "snippet_sha256": "e7ae49b9b28b05d430fb6e1cdb977eeb486abee33e6657b7418f54e4ae5cffdd",
      "snippet": "from slime.rollout.sglang_rollout import get_model_url\nfrom slime.utils.http_utils import post\n\nasync def my_generate(args, sample, sampling_params):\n    # Route to the actor model (default)\n    actor_url = get_model_url(args, \"actor\", \"/generate\")\n    output = await post(actor_url, {\"text\": sample.prompt, \"sampling_params\": sampling_params})\n    \n    # Route to the reference model\n    ref_url = get_model_url(args, \"ref\", \"/generate\")\n    ref_output = await post(ref_url, {\"text\": sample.prompt, \"sampling_params\": sampling_params})\n    \n    # Route to the reward model (e.g., OpenAI-compatible API)\n    reward_url = get_model_url(args, \"reward\", \"/v1/chat/completions\")\n    reward_output = await post(reward_url, {...})\n    \n    ...\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "en",
      "bilingual_group_id": "PAIR-01",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-004",
      "path": "docs/en/advanced/sglang-config.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 401,
      "fence_end_line": 432,
      "start_line": 402,
      "end_line": 431,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/advanced/sglang-config.md#L402-L431",
      "source_sha256": "f30b036edbc2b4ca1bb1e8e2bebea7f203978d00a41c0814926af436ccd84b44",
      "snippet_sha256": "2f07ef82886290fb5be221c23df8b808979436c9e6e1e2ef4a717f6728f9f2ed",
      "snippet": "from slime.rollout.sglang_rollout import get_model_url\nfrom slime.utils.http_utils import post\n\nasync def generate_with_models(args, sample, sampling_params):\n    \"\"\"Generate using actor, score with reward model, compare with reference.\"\"\"\n    \n    # Generate from actor\n    actor_url = get_model_url(args, \"actor\", \"/generate\")\n    actor_output = await post(actor_url, {\n        \"text\": sample.prompt,\n        \"sampling_params\": sampling_params,\n        \"return_logprob\": True,\n    })\n    \n    # Get reference logprobs for KL penalty\n    ref_url = get_model_url(args, \"ref\", \"/generate\")\n    ref_output = await post(ref_url, {\n        \"text\": sample.prompt + actor_output[\"text\"],\n        \"sampling_params\": {\"max_new_tokens\": 0, \"temperature\": 0},\n        \"return_logprob\": True,\n    })\n    \n    # Score with reward model\n    reward_url = get_model_url(args, \"reward\", \"/v1/chat/completions\")\n    reward_output = await post(reward_url, {\n        \"model\": \"reward\",\n        \"messages\": [{\"role\": \"user\", \"content\": sample.prompt + actor_output[\"text\"]}],\n    })\n    \n    # ... process outputs and return Sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "en",
      "bilingual_group_id": "PAIR-02",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-005",
      "path": "docs/en/developer_guide/trace.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 59,
      "fence_end_line": 75,
      "start_line": 60,
      "end_line": 74,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/developer_guide/trace.md#L60-L74",
      "source_sha256": "1030bf2edc7fc996b4b7433bf3d18341e084c442b12e531e9a5720468e687198",
      "snippet_sha256": "a9c3bbfecf73550232639d1a8f7248ae7defae613c668695669b13e4e3ea0084",
      "snippet": "from slime.observability.trace_utils import trace_function\n\n\n@trace_function(\"generate_and_rm\", target=\"sample\")\nasync def generate_and_rm(args, sample, sampling_params, evaluation=False):\n    ...\n\n\n@trace_function(\n    \"generate_and_rm_group\",\n    target=\"group\",\n    attrs_getter=lambda args, group, sampling_params, evaluation=False: {\"group_size\": len(group)},\n)\nasync def generate_and_rm_group(args, group, sampling_params, evaluation=False):\n    ...\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-03",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-006",
      "path": "docs/en/developer_guide/trace.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 89,
      "fence_end_line": 97,
      "start_line": 90,
      "end_line": 96,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/developer_guide/trace.md#L90-L96",
      "source_sha256": "1030bf2edc7fc996b4b7433bf3d18341e084c442b12e531e9a5720468e687198",
      "snippet_sha256": "84d34c1e56ab166c3b43d504eb2f6958d57edc4ea089d7d4bb1887b8edd2c18c",
      "snippet": "@trace_function(\n    \"custom_rollout_batch\",\n    target=\"samples\",\n    attrs_getter=lambda samples, **_: {\"batch_size\": len(samples)},\n)\nasync def custom_rollout_batch(samples, **kwargs):\n    ...\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-04",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-007",
      "path": "docs/en/developer_guide/trace.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 106,
      "fence_end_line": 112,
      "start_line": 107,
      "end_line": 111,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/developer_guide/trace.md#L107-L111",
      "source_sha256": "1030bf2edc7fc996b4b7433bf3d18341e084c442b12e531e9a5720468e687198",
      "snippet_sha256": "a18810b12bad024c1d762bb5b9a9bbdd84aaa0aa2eb68b30bc09a5a42698bf22",
      "snippet": "from slime.observability.trace_utils import build_sglang_meta_trace_attrs, trace_span\n\nwith trace_span(sample, \"sglang_generate\") as span:\n    output = await post(url, payload)\n    span.update(build_sglang_meta_trace_attrs(output[\"meta_info\"]))\n",
      "native_python_syntax": [
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": true,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-05",
      "topic_ids": [
        "await"
      ]
    },
    {
      "id": "DOC-008",
      "path": "docs/en/get_started/agent.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 40,
      "fence_end_line": 53,
      "start_line": 41,
      "end_line": 52,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/agent.md#L41-L52",
      "source_sha256": "33f669e24bf7f013eb1dd15fdc1e47f37460eba9a129719f81e14d006f4979fc",
      "snippet_sha256": "08e905d4c4b61d47f06c56b0b9f864225e0b67816acde580e3b35335ca117cb9",
      "snippet": "from slime.agent.adapters import AnthropicAdapter\n\nadapter = AnthropicAdapter(\n    tokenizer=tokenizer,\n    sglang_url=sglang_url,\n    tool_parser=tool_parser,\n    reasoning_parser=reasoning_parser,\n)\n\nadapter.open_session(session_id, sampling_defaults=sampling_params)\n# Agent client sends requests to adapter.app.\nsegments = await adapter.finish_session(session_id)\n",
      "native_python_syntax": [
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": true,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-06",
      "topic_ids": [
        "await"
      ]
    },
    {
      "id": "DOC-009",
      "path": "docs/en/get_started/customization.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 76,
      "fence_end_line": 89,
      "start_line": 77,
      "end_line": 88,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/customization.md#L77-L88",
      "source_sha256": "4b405160570d84e6717352709c2e9f116d5d427f509929303473c72aff9782b1",
      "snippet_sha256": "f5cad2b9ac26db4abc181ae3179ec8f66a11992dc41a0db4c8cd26758c1d0ccc",
      "snippet": "from slime.data.transport import publish_rollout_async\nfrom slime.rollout.base_types import finalize_rollout_groups\n\n\nasync def generate_stored_batch(args, rollout_id, data_source, completed_groups):\n    refs = []\n    async for group in completed_groups:\n        ref = await publish_rollout_async(\n            group, args, rollout_id, group=True, controller=data_source.controller\n        )\n        refs.append(ref)\n    return finalize_rollout_groups(args, rollout_id, refs, controller=data_source.controller)\n",
      "native_python_syntax": [
        "async def",
        "async for",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-07",
      "topic_ids": [
        "coroutine-definition",
        "async-iteration",
        "await"
      ]
    },
    {
      "id": "DOC-010",
      "path": "docs/en/get_started/customization.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 114,
      "fence_end_line": 116,
      "start_line": 115,
      "end_line": 115,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/customization.md#L115-L115",
      "source_sha256": "4b405160570d84e6717352709c2e9f116d5d427f509929303473c72aff9782b1",
      "snippet_sha256": "0c5d49e616f3a89992a45fc4c9d73bf11d72f8ee107de258843b30c7033547bf",
      "snippet": "async def custom_generate(args, sample: Sample, sampling_params: dict) -> Sample | list[Sample]\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-08",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-011",
      "path": "docs/en/get_started/customization.md",
      "python_fence_index_in_file": 4,
      "fence_language": "python",
      "fence_start_line": 129,
      "fence_end_line": 151,
      "start_line": 130,
      "end_line": 150,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/customization.md#L130-L150",
      "source_sha256": "4b405160570d84e6717352709c2e9f116d5d427f509929303473c72aff9782b1",
      "snippet_sha256": "70fc328784714cd7730a709b0aeb6db2fccf63bbb142313edeb77c74a06a4af8",
      "snippet": "import copy\n\nfrom slime.utils.types import Sample\n\n\nasync def custom_generate(args, sample: Sample, sampling_params: dict) -> list[Sample]:\n    segments = await run_agent_and_split_segments(args, sample, sampling_params)\n    rollout_id = sample.rollout_id if sample.rollout_id is not None else sample.index\n\n    samples: list[Sample] = []\n    for segment in segments:\n        s = copy.copy(sample)\n        s.tokens = segment.tokens\n        s.response = segment.response\n        s.response_length = segment.response_length\n        s.loss_mask = segment.loss_mask\n        s.reward = segment.reward\n        s.status = Sample.Status.COMPLETED\n        s.rollout_id = rollout_id\n        samples.append(s)\n    return samples\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-09",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-012",
      "path": "docs/en/get_started/customization.md",
      "python_fence_index_in_file": 5,
      "fence_language": "python",
      "fence_start_line": 166,
      "fence_end_line": 168,
      "start_line": 167,
      "end_line": 167,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/customization.md#L167-L167",
      "source_sha256": "4b405160570d84e6717352709c2e9f116d5d427f509929303473c72aff9782b1",
      "snippet_sha256": "687d6b2914bc6c5c19aff12438ff8cc43e805ae02ac38170aa38fc8348ecb6bc",
      "snippet": "async def custom_rm(args, sample: Sample) -> float\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-10",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-013",
      "path": "docs/en/get_started/customization.md",
      "python_fence_index_in_file": 6,
      "fence_language": "python",
      "fence_start_line": 171,
      "fence_end_line": 173,
      "start_line": 172,
      "end_line": 172,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/customization.md#L172-L172",
      "source_sha256": "4b405160570d84e6717352709c2e9f116d5d427f509929303473c72aff9782b1",
      "snippet_sha256": "760116e0a26f0e2d717e5d65d298516f8543c577809a21078859026b65f292e8",
      "snippet": "async def batched_custom_rm(args, samples: list[Sample]) -> list[float]\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-11",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-014",
      "path": "docs/en/get_started/quick_start.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 499,
      "fence_end_line": 528,
      "start_line": 500,
      "end_line": 527,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/quick_start.md#L500-L527",
      "source_sha256": "ac89c7ccf3dc9abed00dd2296da20c372e33b001716b82e077c0bc09b081c79e",
      "snippet_sha256": "24326906f96f6374cb43e7327c228eeb6ecb0bfac896216083308a7452dcb36f",
      "snippet": "async def generate(args, sample: Sample, sampling_params) -> Sample:\n    # ... initialization ...\n    prompt, full_response, loss_masks = sample.prompt, \"\", []\n\n    for _ in range(max_turns):\n        # 1. Model generates action\n        model_output = await call_sglang(prompt + full_response, ...)\n        # ... tokenization and appending ...\n        loss_masks += [1] * len(model_tokens) # loss_mask = 1\n        full_response += model_output\n\n        # 2. Parse and execute action\n        action, content = parse_action(model_output)\n        if action == \"search\":\n            # 3 & 4. Get and append observation results\n            tool_output = await google_search(content)\n            # ... tokenization and appending ...\n            loss_masks += [0] * len(tool_tokens) # loss_mask = 0\n            full_response += tool_output\n\n        elif action == \"answer\":\n            break # end loop\n\n    # 7. Fill and return Sample object\n    sample.response = full_response\n    sample.tokens = ...\n    sample.loss_mask = loss_masks\n    return sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "en",
      "bilingual_group_id": "PAIR-12",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-015",
      "path": "docs/en/get_started/usage.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 355,
      "fence_end_line": 386,
      "start_line": 356,
      "end_line": 385,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/en/get_started/usage.md#L356-L385",
      "source_sha256": "6a27c71422fe31b129208bcff9e9b0151c6d32a09b736bd8f82eaf5d09f2f1c1",
      "snippet_sha256": "c347279ec63d9843a891290e055f1e9d599c6f9f1b030f63dd53395d541faf9d",
      "snippet": "    async def generate(args, sample: Sample, sampling_params) -> Sample:\n        global TOKENIZER\n        if TOKENIZER is None:\n            TOKENIZER = AutoTokenizer.from_pretrained(args.hf_checkpoint, trust_remote_code=True)\n\n        # send request to router\n        output = await post(\n            f\"http://{args.sglang_router_ip}:{args.sglang_router_port}/generate\",\n            {\n                \"text\": sample.prompt,\n                \"sampling_params\": sampling_params,\n            }\n        )\n\n        prompt_tokens_ids = TOKENIZER(sample.prompt, add_special_tokens=False)[\"input_ids\"]\n        response_token_ids = TOKENIZER(output[\"text\"], add_special_tokens=False)[\"input_ids\"]\n\n        # set sample\n        sample.tokens = prompt_tokens_ids + response_token_ids\n        sample.response_length = len(response_token_ids)\n        finish_reason = output[\"meta_info\"][\"finish_reason\"][\"type\"]\n        if finish_reason == \"length\":\n            sample.status = Sample.Status.TRUNCATED\n        elif finish_reason == \"abort\":\n            sample.status = Sample.Status.ABORTED\n        else:\n            sample.status = Sample.Status.COMPLETED\n        sample.response = output[\"text\"]\n\n        return sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "en",
      "bilingual_group_id": "PAIR-13",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-016",
      "path": "docs/zh/advanced/sglang-config.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 172,
      "fence_end_line": 190,
      "start_line": 173,
      "end_line": 189,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/advanced/sglang-config.md#L173-L189",
      "source_sha256": "3e7c9f00c1eb9c39ab313d3bc654dd8d703e19a9d8494cbca002bb1dccc095fa",
      "snippet_sha256": "7cca91f0fee9014fb1d36cd2c941854e4dc465ff31bf817bd2f7c8ef292a6d73",
      "snippet": "from slime.rollout.sglang_rollout import get_model_url\nfrom slime.utils.http_utils import post\n\nasync def my_generate(args, sample, sampling_params):\n    # 路由到 actor 模型（默认）\n    actor_url = get_model_url(args, \"actor\", \"/generate\")\n    output = await post(actor_url, {\"text\": sample.prompt, \"sampling_params\": sampling_params})\n    \n    # 路由到 reference 模型\n    ref_url = get_model_url(args, \"ref\", \"/generate\")\n    ref_output = await post(ref_url, {\"text\": sample.prompt, \"sampling_params\": sampling_params})\n    \n    # 路由到 reward 模型（如 OpenAI 兼容 API）\n    reward_url = get_model_url(args, \"reward\", \"/v1/chat/completions\")\n    reward_output = await post(reward_url, {...})\n    \n    ...\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "zh",
      "bilingual_group_id": "PAIR-01",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-017",
      "path": "docs/zh/advanced/sglang-config.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 400,
      "fence_end_line": 431,
      "start_line": 401,
      "end_line": 430,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/advanced/sglang-config.md#L401-L430",
      "source_sha256": "3e7c9f00c1eb9c39ab313d3bc654dd8d703e19a9d8494cbca002bb1dccc095fa",
      "snippet_sha256": "145f4af4c4135bae606a659c636eb8e6a8954db8c352699a51ab2e1572970229",
      "snippet": "from slime.rollout.sglang_rollout import get_model_url\nfrom slime.utils.http_utils import post\n\nasync def generate_with_models(args, sample, sampling_params):\n    \"\"\"使用 actor 生成，用 reward 模型打分，与 reference 比较。\"\"\"\n    \n    # 从 actor 生成\n    actor_url = get_model_url(args, \"actor\", \"/generate\")\n    actor_output = await post(actor_url, {\n        \"text\": sample.prompt,\n        \"sampling_params\": sampling_params,\n        \"return_logprob\": True,\n    })\n    \n    # 获取 reference logprobs 用于 KL penalty\n    ref_url = get_model_url(args, \"ref\", \"/generate\")\n    ref_output = await post(ref_url, {\n        \"text\": sample.prompt + actor_output[\"text\"],\n        \"sampling_params\": {\"max_new_tokens\": 0, \"temperature\": 0},\n        \"return_logprob\": True,\n    })\n    \n    # 用 reward 模型打分\n    reward_url = get_model_url(args, \"reward\", \"/v1/chat/completions\")\n    reward_output = await post(reward_url, {\n        \"model\": \"reward\",\n        \"messages\": [{\"role\": \"user\", \"content\": sample.prompt + actor_output[\"text\"]}],\n    })\n    \n    # ... 处理输出并返回 Sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "zh",
      "bilingual_group_id": "PAIR-02",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-018",
      "path": "docs/zh/developer_guide/trace.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 59,
      "fence_end_line": 75,
      "start_line": 60,
      "end_line": 74,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/developer_guide/trace.md#L60-L74",
      "source_sha256": "c4ca042e818c6bf9fefb35254faa21caab43b32956862d2d9a48b3b2e5d9c7cc",
      "snippet_sha256": "a9c3bbfecf73550232639d1a8f7248ae7defae613c668695669b13e4e3ea0084",
      "snippet": "from slime.observability.trace_utils import trace_function\n\n\n@trace_function(\"generate_and_rm\", target=\"sample\")\nasync def generate_and_rm(args, sample, sampling_params, evaluation=False):\n    ...\n\n\n@trace_function(\n    \"generate_and_rm_group\",\n    target=\"group\",\n    attrs_getter=lambda args, group, sampling_params, evaluation=False: {\"group_size\": len(group)},\n)\nasync def generate_and_rm_group(args, group, sampling_params, evaluation=False):\n    ...\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-03",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-019",
      "path": "docs/zh/developer_guide/trace.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 89,
      "fence_end_line": 97,
      "start_line": 90,
      "end_line": 96,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/developer_guide/trace.md#L90-L96",
      "source_sha256": "c4ca042e818c6bf9fefb35254faa21caab43b32956862d2d9a48b3b2e5d9c7cc",
      "snippet_sha256": "84d34c1e56ab166c3b43d504eb2f6958d57edc4ea089d7d4bb1887b8edd2c18c",
      "snippet": "@trace_function(\n    \"custom_rollout_batch\",\n    target=\"samples\",\n    attrs_getter=lambda samples, **_: {\"batch_size\": len(samples)},\n)\nasync def custom_rollout_batch(samples, **kwargs):\n    ...\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-04",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-020",
      "path": "docs/zh/developer_guide/trace.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 106,
      "fence_end_line": 112,
      "start_line": 107,
      "end_line": 111,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/developer_guide/trace.md#L107-L111",
      "source_sha256": "c4ca042e818c6bf9fefb35254faa21caab43b32956862d2d9a48b3b2e5d9c7cc",
      "snippet_sha256": "a18810b12bad024c1d762bb5b9a9bbdd84aaa0aa2eb68b30bc09a5a42698bf22",
      "snippet": "from slime.observability.trace_utils import build_sglang_meta_trace_attrs, trace_span\n\nwith trace_span(sample, \"sglang_generate\") as span:\n    output = await post(url, payload)\n    span.update(build_sglang_meta_trace_attrs(output[\"meta_info\"]))\n",
      "native_python_syntax": [
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": true,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-05",
      "topic_ids": [
        "await"
      ]
    },
    {
      "id": "DOC-021",
      "path": "docs/zh/get_started/agent.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 40,
      "fence_end_line": 53,
      "start_line": 41,
      "end_line": 52,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/agent.md#L41-L52",
      "source_sha256": "81d2aecaa7930becbf0855ce1a970a81337949f8b760b73073b19a639c615722",
      "snippet_sha256": "8f24e2e37b131392495f2f8a0a19013037662f350892a9d2632d52dc6929f2ab",
      "snippet": "from slime.agent.adapters import AnthropicAdapter\n\nadapter = AnthropicAdapter(\n    tokenizer=tokenizer,\n    sglang_url=sglang_url,\n    tool_parser=tool_parser,\n    reasoning_parser=reasoning_parser,\n)\n\nadapter.open_session(session_id, sampling_defaults=sampling_params)\n# Agent client 向 adapter.app 发送请求。\nsegments = await adapter.finish_session(session_id)\n",
      "native_python_syntax": [
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": true,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-06",
      "topic_ids": [
        "await"
      ]
    },
    {
      "id": "DOC-022",
      "path": "docs/zh/get_started/customization.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 71,
      "fence_end_line": 84,
      "start_line": 72,
      "end_line": 83,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/customization.md#L72-L83",
      "source_sha256": "f2ea053de7265c61c2ed976f6753a10992f16bb8e783d542836e66994c17f57d",
      "snippet_sha256": "f5cad2b9ac26db4abc181ae3179ec8f66a11992dc41a0db4c8cd26758c1d0ccc",
      "snippet": "from slime.data.transport import publish_rollout_async\nfrom slime.rollout.base_types import finalize_rollout_groups\n\n\nasync def generate_stored_batch(args, rollout_id, data_source, completed_groups):\n    refs = []\n    async for group in completed_groups:\n        ref = await publish_rollout_async(\n            group, args, rollout_id, group=True, controller=data_source.controller\n        )\n        refs.append(ref)\n    return finalize_rollout_groups(args, rollout_id, refs, controller=data_source.controller)\n",
      "native_python_syntax": [
        "async def",
        "async for",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-07",
      "topic_ids": [
        "coroutine-definition",
        "async-iteration",
        "await"
      ]
    },
    {
      "id": "DOC-023",
      "path": "docs/zh/get_started/customization.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 99,
      "fence_end_line": 101,
      "start_line": 100,
      "end_line": 100,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/customization.md#L100-L100",
      "source_sha256": "f2ea053de7265c61c2ed976f6753a10992f16bb8e783d542836e66994c17f57d",
      "snippet_sha256": "0c5d49e616f3a89992a45fc4c9d73bf11d72f8ee107de258843b30c7033547bf",
      "snippet": "async def custom_generate(args, sample: Sample, sampling_params: dict) -> Sample | list[Sample]\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-08",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-024",
      "path": "docs/zh/get_started/customization.md",
      "python_fence_index_in_file": 4,
      "fence_language": "python",
      "fence_start_line": 114,
      "fence_end_line": 136,
      "start_line": 115,
      "end_line": 135,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/customization.md#L115-L135",
      "source_sha256": "f2ea053de7265c61c2ed976f6753a10992f16bb8e783d542836e66994c17f57d",
      "snippet_sha256": "70fc328784714cd7730a709b0aeb6db2fccf63bbb142313edeb77c74a06a4af8",
      "snippet": "import copy\n\nfrom slime.utils.types import Sample\n\n\nasync def custom_generate(args, sample: Sample, sampling_params: dict) -> list[Sample]:\n    segments = await run_agent_and_split_segments(args, sample, sampling_params)\n    rollout_id = sample.rollout_id if sample.rollout_id is not None else sample.index\n\n    samples: list[Sample] = []\n    for segment in segments:\n        s = copy.copy(sample)\n        s.tokens = segment.tokens\n        s.response = segment.response\n        s.response_length = segment.response_length\n        s.loss_mask = segment.loss_mask\n        s.reward = segment.reward\n        s.status = Sample.Status.COMPLETED\n        s.rollout_id = rollout_id\n        samples.append(s)\n    return samples\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-09",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-025",
      "path": "docs/zh/get_started/customization.md",
      "python_fence_index_in_file": 5,
      "fence_language": "python",
      "fence_start_line": 151,
      "fence_end_line": 153,
      "start_line": 152,
      "end_line": 152,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/customization.md#L152-L152",
      "source_sha256": "f2ea053de7265c61c2ed976f6753a10992f16bb8e783d542836e66994c17f57d",
      "snippet_sha256": "687d6b2914bc6c5c19aff12438ff8cc43e805ae02ac38170aa38fc8348ecb6bc",
      "snippet": "async def custom_rm(args, sample: Sample) -> float\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-10",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-026",
      "path": "docs/zh/get_started/customization.md",
      "python_fence_index_in_file": 6,
      "fence_language": "python",
      "fence_start_line": 156,
      "fence_end_line": 158,
      "start_line": 157,
      "end_line": 157,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/customization.md#L157-L157",
      "source_sha256": "f2ea053de7265c61c2ed976f6753a10992f16bb8e783d542836e66994c17f57d",
      "snippet_sha256": "760116e0a26f0e2d717e5d65d298516f8543c577809a21078859026b65f292e8",
      "snippet": "async def batched_custom_rm(args, samples: list[Sample]) -> list[float]\n",
      "native_python_syntax": [
        "async def"
      ],
      "parse_status": "incomplete_signature",
      "parse_error": {
        "line_in_snippet": 1,
        "message": "expected ':'"
      },
      "requires_async_enclosing_scope": null,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-11",
      "topic_ids": [
        "coroutine-definition"
      ]
    },
    {
      "id": "DOC-027",
      "path": "docs/zh/get_started/quick_start.md",
      "python_fence_index_in_file": 3,
      "fence_language": "python",
      "fence_start_line": 505,
      "fence_end_line": 534,
      "start_line": 506,
      "end_line": 533,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/quick_start.md#L506-L533",
      "source_sha256": "49a22ae3c3d1caaf9f8f9bac2785c626cec58222659cdd2c0f541ed69969c33d",
      "snippet_sha256": "646c53c207bc8f5b138ec07d264c2ee73cb91449f0119141858dd224bc00a3a8",
      "snippet": "async def generate(args, sample: Sample, sampling_params) -> Sample:\n    # ... 初始化 ...\n    prompt, full_response, loss_masks = sample.prompt, \"\", []\n\n    for _ in range(max_turns):\n        # 1. 模型生成动作\n        model_output = await call_sglang(prompt + full_response, ...)\n        # ... tokenization and appending ...\n        loss_masks += [1] * len(model_tokens) # loss_mask = 1\n        full_response += model_output\n\n        # 2. 解析并执行动作\n        action, content = parse_action(model_output)\n        if action == \"search\":\n            # 3 & 4. 获取并追加观察结果\n            tool_output = await google_search(content)\n            # ... tokenization and appending ...\n            loss_masks += [0] * len(tool_tokens) # loss_mask = 0\n            full_response += tool_output\n\n        elif action == \"answer\":\n            break # 结束循环\n\n    # 7. 填充并返回 Sample 对象\n    sample.response = full_response\n    sample.tokens = ...\n    sample.loss_mask = loss_masks\n    return sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "zh",
      "bilingual_group_id": "PAIR-12",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-028",
      "path": "docs/zh/get_started/usage.md",
      "python_fence_index_in_file": 2,
      "fence_language": "python",
      "fence_start_line": 357,
      "fence_end_line": 388,
      "start_line": 358,
      "end_line": 387,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/docs/zh/get_started/usage.md#L358-L387",
      "source_sha256": "880307d8ad542d559775709c4e7fce43d9f699953f7847001abe5e912d63b2ae",
      "snippet_sha256": "8bcd94ef7110b8cdbae708c1cbc34558adec04cbd9c2b5034c4b4b4dedad848b",
      "snippet": "  async def generate(args, sample: Sample, sampling_params) -> Sample:\n      global TOKENIZER\n      if TOKENIZER is None:\n          TOKENIZER = AutoTokenizer.from_pretrained(args.hf_checkpoint, trust_remote_code=True)\n  \n      # send request to router\n      output = await post(\n          f\"http://{args.sglang_router_ip}:{args.sglang_router_port}/generate\",\n          {\n              \"text\": sample.prompt,\n              \"sampling_params\": sampling_params,\n          }\n      )\n  \n      prompt_tokens_ids = TOKENIZER(sample.prompt, add_special_tokens=False)[\"input_ids\"]\n      response_token_ids = TOKENIZER(output[\"text\"], add_special_tokens=False)[\"input_ids\"]\n  \n      # set sample\n      sample.tokens = prompt_tokens_ids + response_token_ids\n      sample.response_length = len(response_token_ids)\n      finish_reason = output[\"meta_info\"][\"finish_reason\"][\"type\"]\n      if finish_reason == \"length\":\n          sample.status = Sample.Status.TRUNCATED\n      elif finish_reason == \"abort\":\n          sample.status = Sample.Status.ABORTED\n      else:\n          sample.status = Sample.Status.COMPLETED\n      sample.response = output[\"text\"]\n  \n      return sample\n",
      "native_python_syntax": [
        "async def",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": false,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": true,
      "language": "zh",
      "bilingual_group_id": "PAIR-13",
      "topic_ids": [
        "coroutine-definition",
        "await"
      ]
    },
    {
      "id": "DOC-029",
      "path": "examples/coding_agent_rl/README.md",
      "python_fence_index_in_file": 1,
      "fence_language": "python",
      "fence_start_line": 193,
      "fence_end_line": 198,
      "start_line": 194,
      "end_line": 197,
      "source_url": "https://github.com/THUDM/slime/blob/2f2318653f6f794dddd321eff7c9d4b7b174643f/examples/coding_agent_rl/README.md#L194-L197",
      "source_sha256": "646fd38afdcda441e853d378651171bb7657de0d1873deda2e152c0d93ef8e9f",
      "snippet_sha256": "a71d0b4fd4355c7a042fd8dfce440e7f7b4d998d42ad1b934482bd7e69fd3fef",
      "snippet": "await sb.exec(cmd, user=..., check=..., timeout=...)\nawait sb.write_file(sandbox_path, content_or_host_path, user=...)\nawait sb.read_file(sandbox_path, user=...)\nasync with E2BSandbox(...) as sb: ...\n",
      "native_python_syntax": [
        "async with",
        "await"
      ],
      "parse_status": "parseable_python_ast",
      "parse_error": null,
      "requires_async_enclosing_scope": true,
      "execution_status": "not_executed_documentation_example",
      "dedented_for_syntax_check": false,
      "language": "unspecified",
      "bilingual_group_id": null,
      "topic_ids": [
        "async-context",
        "await"
      ]
    }
  ]
}
