SYMBOL INDEX (556 symbols across 69 files) FILE: agents/s01_agent_loop.py function run_bash (line 54) | def run_bash(command: str) -> str: function agent_loop (line 68) | def agent_loop(messages: list): FILE: agents/s02_tool_use.py function safe_path (line 41) | def safe_path(p: str) -> Path: function run_bash (line 48) | def run_bash(command: str) -> str: function run_read (line 61) | def run_read(path: str, limit: int = None) -> str: function run_write (line 72) | def run_write(path: str, content: str) -> str: function run_edit (line 82) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 114) | def agent_loop(messages: list): FILE: agents/s03_todo_write.py class TodoManager (line 52) | class TodoManager: method __init__ (line 53) | def __init__(self): method update (line 56) | def update(self, items: list) -> str: method render (line 77) | def render(self) -> str: function safe_path (line 93) | def safe_path(p: str) -> Path: function run_bash (line 99) | def run_bash(command: str) -> str: function run_read (line 111) | def run_read(path: str, limit: int = None) -> str: function run_write (line 120) | def run_write(path: str, content: str) -> str: function run_edit (line 129) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 164) | def agent_loop(messages: list): FILE: agents/s04_subagent.py function safe_path (line 47) | def safe_path(p: str) -> Path: function run_bash (line 53) | def run_bash(command: str) -> str: function run_read (line 65) | def run_read(path: str, limit: int = None) -> str: function run_write (line 74) | def run_write(path: str, content: str) -> str: function run_edit (line 83) | def run_edit(path: str, old_text: str, new_text: str) -> str: function run_subagent (line 116) | def run_subagent(prompt: str) -> str: function agent_loop (line 144) | def agent_loop(messages: list): FILE: agents/s05_skill_loading.py class SkillLoader (line 58) | class SkillLoader: method __init__ (line 59) | def __init__(self, skills_dir: Path): method _load_all (line 64) | def _load_all(self): method _parse_frontmatter (line 73) | def _parse_frontmatter(self, text: str) -> tuple: method get_descriptions (line 85) | def get_descriptions(self) -> str: method get_content (line 99) | def get_content(self, name: str) -> str: function safe_path (line 118) | def safe_path(p: str) -> Path: function run_bash (line 124) | def run_bash(command: str) -> str: function run_read (line 136) | def run_read(path: str, limit: int = None) -> str: function run_write (line 145) | def run_write(path: str, content: str) -> str: function run_edit (line 154) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 188) | def agent_loop(messages: list): FILE: agents/s06_context_compact.py function estimate_tokens (line 62) | def estimate_tokens(messages: list) -> int: function micro_compact (line 68) | def micro_compact(messages: list) -> list: function auto_compact (line 98) | def auto_compact(messages: list) -> list: function safe_path (line 125) | def safe_path(p: str) -> Path: function run_bash (line 131) | def run_bash(command: str) -> str: function run_read (line 143) | def run_read(path: str, limit: int = None) -> str: function run_write (line 152) | def run_write(path: str, content: str) -> str: function run_edit (line 161) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 195) | def agent_loop(messages: list): FILE: agents/s07_task_system.py class TaskManager (line 47) | class TaskManager: method __init__ (line 48) | def __init__(self, tasks_dir: Path): method _max_id (line 53) | def _max_id(self) -> int: method _load (line 57) | def _load(self, task_id: int) -> dict: method _save (line 63) | def _save(self, task: dict): method create (line 67) | def create(self, subject: str, description: str = "") -> str: method get (line 76) | def get(self, task_id: int) -> str: method update (line 79) | def update(self, task_id: int, status: str = None, method _clear_dependency (line 105) | def _clear_dependency(self, completed_id: int): method list_all (line 113) | def list_all(self) -> str: function safe_path (line 131) | def safe_path(p: str) -> Path: function run_bash (line 137) | def run_bash(command: str) -> str: function run_read (line 149) | def run_read(path: str, limit: int = None) -> str: function run_write (line 158) | def run_write(path: str, content: str) -> str: function run_edit (line 167) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 210) | def agent_loop(messages: list): FILE: agents/s08_background_tasks.py class BackgroundManager (line 50) | class BackgroundManager: method __init__ (line 51) | def __init__(self): method run (line 56) | def run(self, command: str) -> str: method _execute (line 66) | def _execute(self, task_id: str, command: str): method check (line 91) | def check(self, task_id: str = None) -> str: method drain_notifications (line 103) | def drain_notifications(self) -> list: function safe_path (line 115) | def safe_path(p: str) -> Path: function run_bash (line 121) | def run_bash(command: str) -> str: function run_read (line 133) | def run_read(path: str, limit: int = None) -> str: function run_write (line 142) | def run_write(path: str, content: str) -> str: function run_edit (line 151) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 188) | def agent_loop(messages: list): FILE: agents/s09_agent_teams.py class MessageBus (line 78) | class MessageBus: method __init__ (line 79) | def __init__(self, inbox_dir: Path): method send (line 83) | def send(self, sender: str, to: str, content: str, method read_inbox (line 100) | def read_inbox(self, name: str) -> list: method broadcast (line 111) | def broadcast(self, sender: str, content: str, teammates: list) -> str: class TeammateManager (line 124) | class TeammateManager: method __init__ (line 125) | def __init__(self, team_dir: Path): method _load_config (line 132) | def _load_config(self) -> dict: method _save_config (line 137) | def _save_config(self): method _find_member (line 140) | def _find_member(self, name: str) -> dict: method spawn (line 146) | def spawn(self, name: str, role: str, prompt: str) -> str: method _teammate_loop (line 166) | def _teammate_loop(self, name: str, role: str, prompt: str): method _exec (line 206) | def _exec(self, sender: str, tool_name: str, args: dict) -> str: method _teammate_tools (line 222) | def _teammate_tools(self) -> list: method list_all (line 239) | def list_all(self) -> str: method member_names (line 247) | def member_names(self) -> list: function _safe_path (line 255) | def _safe_path(p: str) -> Path: function _run_bash (line 262) | def _run_bash(command: str) -> str: function _run_read (line 277) | def _run_read(path: str, limit: int = None) -> str: function _run_write (line 287) | def _run_write(path: str, content: str) -> str: function _run_edit (line 297) | def _run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 345) | def agent_loop(messages: list): FILE: agents/s10_team_protocols.py class MessageBus (line 88) | class MessageBus: method __init__ (line 89) | def __init__(self, inbox_dir: Path): method send (line 93) | def send(self, sender: str, to: str, content: str, method read_inbox (line 110) | def read_inbox(self, name: str) -> list: method broadcast (line 121) | def broadcast(self, sender: str, content: str, teammates: list) -> str: class TeammateManager (line 134) | class TeammateManager: method __init__ (line 135) | def __init__(self, team_dir: Path): method _load_config (line 142) | def _load_config(self) -> dict: method _save_config (line 147) | def _save_config(self): method _find_member (line 150) | def _find_member(self, name: str) -> dict: method spawn (line 156) | def spawn(self, name: str, role: str, prompt: str) -> str: method _teammate_loop (line 176) | def _teammate_loop(self, name: str, role: str, prompt: str): method _exec (line 222) | def _exec(self, sender: str, tool_name: str, args: dict) -> str: method _teammate_tools (line 259) | def _teammate_tools(self) -> list: method list_all (line 280) | def list_all(self) -> str: method member_names (line 288) | def member_names(self) -> list: function _safe_path (line 296) | def _safe_path(p: str) -> Path: function _run_bash (line 303) | def _run_bash(command: str) -> str: function _run_read (line 318) | def _run_read(path: str, limit: int = None) -> str: function _run_write (line 328) | def _run_write(path: str, content: str) -> str: function _run_edit (line 338) | def _run_edit(path: str, old_text: str, new_text: str) -> str: function handle_shutdown_request (line 351) | def handle_shutdown_request(teammate: str) -> str: function handle_plan_review (line 362) | def handle_plan_review(request_id: str, approve: bool, feedback: str = "... function _check_shutdown_status (line 376) | def _check_shutdown_status(request_id: str) -> str: function agent_loop (line 426) | def agent_loop(messages: list): FILE: agents/s11_autonomous_agents.py class MessageBus (line 81) | class MessageBus: method __init__ (line 82) | def __init__(self, inbox_dir: Path): method send (line 86) | def send(self, sender: str, to: str, content: str, method read_inbox (line 103) | def read_inbox(self, name: str) -> list: method broadcast (line 114) | def broadcast(self, sender: str, content: str, teammates: list) -> str: function scan_unclaimed_tasks (line 127) | def scan_unclaimed_tasks() -> list: function claim_task (line 139) | def claim_task(task_id: int, owner: str) -> str: function make_identity_block (line 152) | def make_identity_block(name: str, role: str, team_name: str) -> dict: class TeammateManager (line 160) | class TeammateManager: method __init__ (line 161) | def __init__(self, team_dir: Path): method _load_config (line 168) | def _load_config(self) -> dict: method _save_config (line 173) | def _save_config(self): method _find_member (line 176) | def _find_member(self, name: str) -> dict: method _set_status (line 182) | def _set_status(self, name: str, status: str): method spawn (line 188) | def spawn(self, name: str, role: str, prompt: str) -> str: method _loop (line 208) | def _loop(self, name: str, role: str, prompt: str): method _exec (line 295) | def _exec(self, sender: str, tool_name: str, args: dict) -> str: method _teammate_tools (line 333) | def _teammate_tools(self) -> list: method list_all (line 358) | def list_all(self) -> str: method member_names (line 366) | def member_names(self) -> list: function _safe_path (line 374) | def _safe_path(p: str) -> Path: function _run_bash (line 381) | def _run_bash(command: str) -> str: function _run_read (line 396) | def _run_read(path: str, limit: int = None) -> str: function _run_write (line 406) | def _run_write(path: str, content: str) -> str: function _run_edit (line 416) | def _run_edit(path: str, old_text: str, new_text: str) -> str: function handle_shutdown_request (line 429) | def handle_shutdown_request(teammate: str) -> str: function handle_plan_review (line 440) | def handle_plan_review(request_id: str, approve: bool, feedback: str = "... function _check_shutdown_status (line 454) | def _check_shutdown_status(request_id: str) -> str: function agent_loop (line 510) | def agent_loop(messages: list): FILE: agents/s12_worktree_task_isolation.py function detect_repo_root (line 53) | def detect_repo_root(cwd: Path) -> Path | None: class EventBus (line 83) | class EventBus: method __init__ (line 84) | def __init__(self, event_log_path: Path): method emit (line 90) | def emit( method list_recent (line 108) | def list_recent(self, limit: int = 20) -> str: class TaskManager (line 122) | class TaskManager: method __init__ (line 123) | def __init__(self, tasks_dir: Path): method _max_id (line 128) | def _max_id(self) -> int: method _path (line 137) | def _path(self, task_id: int) -> Path: method _load (line 140) | def _load(self, task_id: int) -> dict: method _save (line 146) | def _save(self, task: dict): method create (line 149) | def create(self, subject: str, description: str = "") -> str: method get (line 165) | def get(self, task_id: int) -> str: method exists (line 168) | def exists(self, task_id: int) -> bool: method update (line 171) | def update(self, task_id: int, status: str = None, owner: str = None) ... method bind_worktree (line 183) | def bind_worktree(self, task_id: int, worktree: str, owner: str = "") ... method unbind_worktree (line 194) | def unbind_worktree(self, task_id: int) -> str: method list_all (line 201) | def list_all(self) -> str: class WorktreeManager (line 225) | class WorktreeManager: method __init__ (line 226) | def __init__(self, repo_root: Path, tasks: TaskManager, events: EventB... method _is_git_repo (line 237) | def _is_git_repo(self) -> bool: method _run_git (line 250) | def _run_git(self, args: list[str]) -> str: method _load_index (line 265) | def _load_index(self) -> dict: method _save_index (line 268) | def _save_index(self, data: dict): method _find (line 271) | def _find(self, name: str) -> dict | None: method _validate_name (line 278) | def _validate_name(self, name: str): method create (line 284) | def create(self, name: str, task_id: int = None, base_ref: str = "HEAD... method list_all (line 337) | def list_all(self) -> str: method status (line 351) | def status(self, name: str) -> str: method run (line 368) | def run(self, name: str, command: str) -> str: method remove (line 394) | def remove(self, name: str, force: bool = False, complete_task: bool =... method keep (line 448) | def keep(self, name: str) -> str: function safe_path (line 478) | def safe_path(p: str) -> Path: function run_bash (line 485) | def run_bash(command: str) -> str: function run_read (line 504) | def run_read(path: str, limit: int = None) -> str: function run_write (line 514) | def run_write(path: str, content: str) -> str: function run_edit (line 524) | def run_edit(path: str, old_text: str, new_text: str) -> str: function agent_loop (line 729) | def agent_loop(messages: list): FILE: agents/s_full.py function safe_path (line 74) | def safe_path(p: str) -> Path: function run_bash (line 80) | def run_bash(command: str) -> str: function run_read (line 92) | def run_read(path: str, limit: int = None) -> str: function run_write (line 101) | def run_write(path: str, content: str) -> str: function run_edit (line 110) | def run_edit(path: str, old_text: str, new_text: str) -> str: class TodoManager (line 123) | class TodoManager: method __init__ (line 124) | def __init__(self): method update (line 127) | def update(self, items: list) -> str: method render (line 144) | def render(self) -> str: method has_open_items (line 155) | def has_open_items(self) -> bool: function run_subagent (line 160) | def run_subagent(prompt: str, agent_type: str = "Explore") -> str: class SkillLoader (line 199) | class SkillLoader: method __init__ (line 200) | def __init__(self, skills_dir: Path): method descriptions (line 216) | def descriptions(self) -> str: method load (line 220) | def load(self, name: str) -> str: function estimate_tokens (line 227) | def estimate_tokens(messages: list) -> int: function microcompact (line 230) | def microcompact(messages: list): function auto_compact (line 243) | def auto_compact(messages: list) -> list: class TaskManager (line 263) | class TaskManager: method __init__ (line 264) | def __init__(self): method _next_id (line 267) | def _next_id(self) -> int: method _load (line 271) | def _load(self, tid: int) -> dict: method _save (line 276) | def _save(self, task: dict): method create (line 279) | def create(self, subject: str, description: str = "") -> str: method get (line 285) | def get(self, tid: int) -> str: method update (line 288) | def update(self, tid: int, status: str = None, method list_all (line 309) | def list_all(self) -> str: method claim (line 320) | def claim(self, tid: int, owner: str) -> str: class BackgroundManager (line 329) | class BackgroundManager: method __init__ (line 330) | def __init__(self): method run (line 334) | def run(self, command: str, timeout: int = 120) -> str: method _exec (line 340) | def _exec(self, tid: str, command: str, timeout: int): method check (line 351) | def check(self, tid: str = None) -> str: method drain (line 357) | def drain(self) -> list: class MessageBus (line 365) | class MessageBus: method __init__ (line 366) | def __init__(self): method send (line 369) | def send(self, sender: str, to: str, content: str, method read_inbox (line 378) | def read_inbox(self, name: str) -> list: method broadcast (line 385) | def broadcast(self, sender: str, content: str, names: list) -> str: class TeammateManager (line 400) | class TeammateManager: method __init__ (line 401) | def __init__(self, bus: MessageBus, task_mgr: TaskManager): method _load (line 409) | def _load(self) -> dict: method _save (line 414) | def _save(self): method _find (line 417) | def _find(self, name: str) -> dict: method spawn (line 422) | def spawn(self, name: str, role: str, prompt: str) -> str: method _set_status (line 436) | def _set_status(self, name: str, status: str): method _loop (line 442) | def _loop(self, name: str, role: str, prompt: str): method list_all (line 534) | def list_all(self) -> str: method member_names (line 541) | def member_names(self) -> list: function handle_shutdown_request (line 561) | def handle_shutdown_request(teammate: str) -> str: function handle_plan_review (line 568) | def handle_plan_review(request_id: str, approve: bool, feedback: str = "... function agent_loop (line 655) | def agent_loop(messages: list): FILE: skills/agent-builder/references/minimal-agent.py function execute_tool (line 67) | def execute_tool(name: str, args: dict) -> str: function agent (line 97) | def agent(prompt: str, history: list = None) -> str: FILE: skills/agent-builder/references/subagent-pattern.py function get_agent_descriptions (line 49) | def get_agent_descriptions() -> str: function get_tools_for_agent (line 57) | def get_tools_for_agent(agent_type: str, base_tools: list) -> list: function run_task (line 119) | def run_task(description: str, prompt: str, agent_type: str, FILE: skills/agent-builder/references/tool-templates.py function safe_path (line 141) | def safe_path(p: str) -> Path: function run_bash (line 152) | def run_bash(command: str) -> str: function run_read_file (line 183) | def run_read_file(path: str, limit: int = None) -> str: function run_write_file (line 206) | def run_write_file(path: str, content: str) -> str: function run_edit_file (line 225) | def run_edit_file(path: str, old_text: str, new_text: str) -> str: function execute_tool (line 253) | def execute_tool(name: str, args: dict) -> str: FILE: skills/agent-builder/scripts/init_agent.py function create_agent (line 217) | def create_agent(name: str, level: int, output_dir: Path): function main (line 255) | def main(): FILE: web/scripts/extract-content.ts constant WEB_DIR (line 12) | const WEB_DIR = path.resolve(__dirname, ".."); constant REPO_ROOT (line 13) | const REPO_ROOT = path.resolve(WEB_DIR, ".."); constant AGENTS_DIR (line 14) | const AGENTS_DIR = path.join(REPO_ROOT, "agents"); constant DOCS_DIR (line 15) | const DOCS_DIR = path.join(REPO_ROOT, "docs"); constant OUT_DIR (line 16) | const OUT_DIR = path.join(WEB_DIR, "src", "data", "generated"); function filenameToVersionId (line 22) | function filenameToVersionId(filename: string): string | null { function extractClasses (line 33) | function extractClasses( function extractFunctions (line 63) | function extractFunctions( function extractTools (line 84) | function extractTools(source: string): string[] { function countLoc (line 95) | function countLoc(lines: string[]): number { function detectLocale (line 106) | function detectLocale(relPath: string): "en" | "zh" | "ja" { function extractDocVersion (line 113) | function extractDocVersion(filename: string): string | null { function main (line 119) | function main() { FILE: web/src/app/[locale]/(learn)/[version]/client.tsx type VersionDetailClientProps (line 14) | interface VersionDetailClientProps { function VersionDetailClient (line 28) | function VersionDetailClient({ FILE: web/src/app/[locale]/(learn)/[version]/diff/diff-content.tsx type DiffPageContentProps (line 16) | interface DiffPageContentProps { function DiffPageContent (line 20) | function DiffPageContent({ version }: DiffPageContentProps) { FILE: web/src/app/[locale]/(learn)/[version]/diff/page.tsx function generateStaticParams (line 4) | function generateStaticParams() { function DiffPage (line 8) | async function DiffPage({ FILE: web/src/app/[locale]/(learn)/[version]/page.tsx function generateStaticParams (line 8) | function generateStaticParams() { function VersionPage (line 12) | async function VersionPage({ FILE: web/src/app/[locale]/(learn)/compare/page.tsx function ComparePage (line 16) | function ComparePage() { FILE: web/src/app/[locale]/(learn)/layers/page.tsx constant LAYER_BORDER_CLASSES (line 15) | const LAYER_BORDER_CLASSES: Record = { constant LAYER_HEADER_BG (line 23) | const LAYER_HEADER_BG: Record = { function LayersPage (line 31) | function LayersPage() { FILE: web/src/app/[locale]/(learn)/layout.tsx function LearnLayout (line 3) | function LearnLayout({ FILE: web/src/app/[locale]/(learn)/timeline/page.tsx function TimelinePage (line 6) | function TimelinePage() { FILE: web/src/app/[locale]/layout.tsx function generateStaticParams (line 12) | function generateStaticParams() { function generateMetadata (line 16) | async function generateMetadata({ function RootLayout (line 29) | async function RootLayout({ FILE: web/src/app/[locale]/page.tsx constant LAYER_DOT_COLORS (line 12) | const LAYER_DOT_COLORS: Record = { constant LAYER_BORDER_COLORS (line 20) | const LAYER_BORDER_COLORS: Record = { constant LAYER_BAR_COLORS (line 28) | const LAYER_BAR_COLORS: Record = { function getVersionData (line 36) | function getVersionData(id: string) { function HomePage (line 40) | function HomePage() { FILE: web/src/app/page.tsx function RootPage (line 3) | function RootPage() { FILE: web/src/components/architecture/arch-diagram.tsx constant CLASS_DESCRIPTIONS (line 8) | const CLASS_DESCRIPTIONS: Record = { type ArchDiagramProps (line 21) | interface ArchDiagramProps { function getLayerColor (line 25) | function getLayerColor(versionId: string): string { function getLayerColorClasses (line 30) | function getLayerColorClasses(versionId: string): { function collectClassesUpTo (line 71) | function collectClassesUpTo( function getNewClassNames (line 96) | function getNewClassNames(version: string): Set { function ArchDiagram (line 105) | function ArchDiagram({ version }: ArchDiagramProps) { FILE: web/src/components/architecture/design-decisions.tsx type Decision (line 22) | interface Decision { type AnnotationFile (line 31) | interface AnnotationFile { constant ANNOTATIONS (line 36) | const ANNOTATIONS: Record = { type DesignDecisionsProps (line 51) | interface DesignDecisionsProps { function DecisionCard (line 55) | function DecisionCard({ function DesignDecisions (line 121) | function DesignDecisions({ version }: DesignDecisionsProps) { FILE: web/src/components/architecture/execution-flow.tsx constant NODE_WIDTH (line 9) | const NODE_WIDTH = 140; constant NODE_HEIGHT (line 10) | const NODE_HEIGHT = 40; constant DIAMOND_SIZE (line 11) | const DIAMOND_SIZE = 50; constant LAYER_COLORS (line 13) | const LAYER_COLORS: Record = { function getNodeCenter (line 21) | function getNodeCenter(node: FlowNode): { cx: number; cy: number } { function getEdgePath (line 25) | function getEdgePath(from: FlowNode, to: FlowNode): string { function NodeShape (line 44) | function NodeShape({ node }: { node: FlowNode }) { function EdgePath (line 137) | function EdgePath({ type ExecutionFlowProps (line 184) | interface ExecutionFlowProps { function ExecutionFlow (line 188) | function ExecutionFlow({ version }: ExecutionFlowProps) { FILE: web/src/components/architecture/message-flow.tsx constant FLOW_STEPS (line 6) | const FLOW_STEPS = [ function MessageFlow (line 17) | function MessageFlow() { FILE: web/src/components/code/source-viewer.tsx type SourceViewerProps (line 5) | interface SourceViewerProps { function highlightLine (line 10) | function highlightLine(line: string): React.ReactNode[] { function SourceViewer (line 71) | function SourceViewer({ source, filename }: SourceViewerProps) { FILE: web/src/components/diff/code-diff.tsx type CodeDiffProps (line 7) | interface CodeDiffProps { function CodeDiff (line 14) | function CodeDiff({ oldSource, newSource, oldLabel, newLabel }: CodeDiff... function UnifiedView (line 62) | function UnifiedView({ changes }: { changes: Change[] }) { function SplitView (line 122) | function SplitView({ changes }: { changes: Change[] }) { FILE: web/src/components/diff/whats-new.tsx type WhatsNewProps (line 7) | interface WhatsNewProps { function WhatsNew (line 18) | function WhatsNew({ diff }: WhatsNewProps) { FILE: web/src/components/docs/doc-renderer.tsx type DocRendererProps (line 14) | interface DocRendererProps { function renderMarkdown (line 18) | function renderMarkdown(md: string): string { function postProcessHtml (line 30) | function postProcessHtml(html: string): string { function DocRenderer (line 61) | function DocRenderer({ version }: DocRendererProps) { FILE: web/src/components/layout/header.tsx constant NAV_ITEMS (line 10) | const NAV_ITEMS = [ constant LOCALES (line 16) | const LOCALES = [ function Header (line 22) | function Header() { FILE: web/src/components/layout/sidebar.tsx constant LAYER_DOT_BG (line 9) | const LAYER_DOT_BG: Record = { function Sidebar (line 17) | function Sidebar() { FILE: web/src/components/simulator/agent-loop-simulator.tsx type AgentLoopSimulatorProps (line 26) | interface AgentLoopSimulatorProps { function AgentLoopSimulator (line 30) | function AgentLoopSimulator({ version }: AgentLoopSimulatorProps) { FILE: web/src/components/simulator/simulator-controls.tsx type SimulatorControlsProps (line 7) | interface SimulatorControlsProps { constant SPEEDS (line 20) | const SPEEDS = [0.5, 1, 2, 4]; function SimulatorControls (line 22) | function SimulatorControls({ FILE: web/src/components/simulator/simulator-message.tsx type SimulatorMessageProps (line 8) | interface SimulatorMessageProps { constant TYPE_CONFIG (line 13) | const TYPE_CONFIG: Record< function SimulatorMessage (line 49) | function SimulatorMessage({ step, index }: SimulatorMessageProps) { FILE: web/src/components/timeline/timeline.tsx constant LAYER_DOT_BG (line 11) | const LAYER_DOT_BG: Record = { constant LAYER_LINE_BG (line 19) | const LAYER_LINE_BG: Record = { constant LAYER_BAR_BG (line 27) | const LAYER_BAR_BG: Record = { function getVersionData (line 35) | function getVersionData(id: string) { constant MAX_LOC (line 39) | const MAX_LOC = Math.max( function Timeline (line 45) | function Timeline() { FILE: web/src/components/ui/badge.tsx constant LAYER_COLORS (line 3) | const LAYER_COLORS = { type BadgeProps (line 16) | interface BadgeProps { function LayerBadge (line 22) | function LayerBadge({ layer, children, className }: BadgeProps) { FILE: web/src/components/ui/card.tsx type CardProps (line 3) | interface CardProps extends React.HTMLAttributes { function Card (line 7) | function Card({ className, children, ...props }: CardProps) { function CardHeader (line 21) | function CardHeader({ className, children, ...props }: CardProps) { function CardTitle (line 29) | function CardTitle({ FILE: web/src/components/ui/tabs.tsx type TabsProps (line 6) | interface TabsProps { function Tabs (line 13) | function Tabs({ tabs, defaultTab, children, className }: TabsProps) { FILE: web/src/components/visualizations/index.tsx function SessionVisualization (line 24) | function SessionVisualization({ version }: { version: string }) { FILE: web/src/components/visualizations/s01-agent-loop.tsx type FlowNode (line 10) | interface FlowNode { constant NODES (line 20) | const NODES: FlowNode[] = [ type FlowEdge (line 30) | interface FlowEdge { constant EDGES (line 36) | const EDGES: FlowEdge[] = [ constant ACTIVE_NODES_PER_STEP (line 46) | const ACTIVE_NODES_PER_STEP: string[][] = [ constant ACTIVE_EDGES_PER_STEP (line 57) | const ACTIVE_EDGES_PER_STEP: string[][] = [ type MessageBlock (line 69) | interface MessageBlock { constant MESSAGES_PER_STEP (line 75) | const MESSAGES_PER_STEP: (MessageBlock | null)[][] = [ constant STEP_INFO (line 90) | const STEP_INFO = [ function getNode (line 102) | function getNode(id: string): FlowNode { function edgePath (line 106) | function edgePath(fromId: string, toId: string): string { function AgentLoop (line 138) | function AgentLoop({ title }: { title?: string }) { FILE: web/src/components/visualizations/s02-tool-dispatch.tsx type ToolDef (line 10) | interface ToolDef { constant TOOLS (line 19) | const TOOLS: ToolDef[] = [ constant ACTIVE_TOOL_PER_STEP (line 55) | const ACTIVE_TOOL_PER_STEP: number[] = [-1, 0, 1, 2, 3, 4]; constant REQUEST_PER_STEP (line 58) | const REQUEST_PER_STEP: (string | null)[] = [ constant STEP_INFO (line 68) | const STEP_INFO = [ constant SVG_WIDTH (line 78) | const SVG_WIDTH = 600; constant SVG_HEIGHT (line 79) | const SVG_HEIGHT = 320; constant DISPATCHER_X (line 80) | const DISPATCHER_X = SVG_WIDTH / 2; constant DISPATCHER_Y (line 81) | const DISPATCHER_Y = 60; constant DISPATCHER_W (line 82) | const DISPATCHER_W = 160; constant DISPATCHER_H (line 83) | const DISPATCHER_H = 50; constant CARD_Y (line 84) | const CARD_Y = 230; constant CARD_W (line 85) | const CARD_W = 110; constant CARD_H (line 86) | const CARD_H = 65; constant CARD_GAP (line 87) | const CARD_GAP = 20; function getCardX (line 89) | function getCardX(index: number): number { function ToolDispatch (line 95) | function ToolDispatch({ title }: { title?: string }) { FILE: web/src/components/visualizations/s03-todo-write.tsx type TaskStatus (line 9) | type TaskStatus = "pending" | "in_progress" | "done"; type Task (line 11) | interface Task { constant TASK_STATES (line 18) | const TASK_STATES: Task[][] = [ constant NAG_TIMER_PER_STEP (line 71) | const NAG_TIMER_PER_STEP = [0, 1, 2, 3, 0, 0, 0]; constant NAG_THRESHOLD (line 72) | const NAG_THRESHOLD = 3; constant NAG_FIRES_PER_STEP (line 75) | const NAG_FIRES_PER_STEP = [false, false, false, true, false, false, fal... constant STEP_INFO (line 78) | const STEP_INFO = [ function KanbanColumn (line 90) | function KanbanColumn({ function TaskCard (line 129) | function TaskCard({ task }: { task: Task }) { function NagGauge (line 171) | function NagGauge({ value, max, firing }: { value: number; max: number; ... function TodoWrite (line 221) | function TodoWrite({ title }: { title?: string }) { FILE: web/src/components/visualizations/s04-subagent.tsx type MessageBlock (line 7) | interface MessageBlock { constant PARENT_BASE_MESSAGES (line 13) | const PARENT_BASE_MESSAGES: MessageBlock[] = [ constant TASK_PROMPT (line 19) | const TASK_PROMPT: MessageBlock = { constant CHILD_WORK_MESSAGES (line 25) | const CHILD_WORK_MESSAGES: MessageBlock[] = [ constant SUMMARY_BLOCK (line 30) | const SUMMARY_BLOCK: MessageBlock = { constant STEPS (line 36) | const STEPS = [ function SubagentIsolation (line 69) | function SubagentIsolation({ title }: { title?: string }) { FILE: web/src/components/visualizations/s05-skill-loading.tsx type SkillEntry (line 7) | interface SkillEntry { constant SKILLS (line 14) | const SKILLS: SkillEntry[] = [ constant TOKEN_STATES (line 61) | const TOKEN_STATES = [120, 120, 440, 440, 780, 780]; constant MAX_TOKEN_DISPLAY (line 62) | const MAX_TOKEN_DISPLAY = 1000; constant STEPS (line 64) | const STEPS = [ function SkillLoading (line 97) | function SkillLoading({ title }: { title?: string }) { FILE: web/src/components/visualizations/s06-context-compact.tsx type BlockType (line 8) | type BlockType = "user" | "assistant" | "tool_result"; type ContextBlock (line 10) | interface ContextBlock { constant BLOCK_COLORS (line 17) | const BLOCK_COLORS: Record = { constant BLOCK_LABELS (line 23) | const BLOCK_LABELS: Record = { function generateBlocks (line 29) | function generateBlocks(count: number, seed: number): ContextBlock[] { constant MAX_TOKENS (line 46) | const MAX_TOKENS = 100000; constant WINDOW_HEIGHT (line 47) | const WINDOW_HEIGHT = 350; type StepState (line 49) | interface StepState { function computeStepState (line 56) | function computeStepState(step: number): StepState { constant STEPS (line 158) | const STEPS = [ function ContextCompact (line 196) | function ContextCompact({ title }: { title?: string }) { FILE: web/src/components/visualizations/s07-task-system.tsx type TaskStatus (line 9) | type TaskStatus = "pending" | "in_progress" | "completed" | "blocked"; type TaskNode (line 11) | interface TaskNode { type StepInfo (line 19) | interface StepInfo { constant TASKS (line 24) | const TASKS: TaskNode[] = [ constant NODE_W (line 32) | const NODE_W = 140; constant NODE_H (line 33) | const NODE_H = 50; constant STEP_INFO (line 35) | const STEP_INFO: StepInfo[] = [ function getTaskStatus (line 71) | function getTaskStatus(taskId: string, step: number): TaskStatus { function isEdgeActive (line 122) | function isEdgeActive(fromId: string, toId: string, step: number): boole... function getStatusColor (line 131) | function getStatusColor(status: TaskStatus) { function getStatusLabel (line 172) | function getStatusLabel(status: TaskStatus): string { function buildCurvePath (line 185) | function buildCurvePath( function TaskSystem (line 195) | function TaskSystem({ title }: { title?: string }) { FILE: web/src/components/visualizations/s08-background-tasks.tsx type StepInfo (line 8) | interface StepInfo { constant STEP_INFO (line 13) | const STEP_INFO: StepInfo[] = [ constant LANE_Y (line 50) | const LANE_Y = { constant LANE_HEIGHT (line 56) | const LANE_HEIGHT = 44; constant TIMELINE_LEFT (line 57) | const TIMELINE_LEFT = 160; constant TIMELINE_RIGHT (line 58) | const TIMELINE_RIGHT = 720; constant TIMELINE_WIDTH (line 59) | const TIMELINE_WIDTH = TIMELINE_RIGHT - TIMELINE_LEFT; constant QUEUE_Y (line 61) | const QUEUE_Y = 300; type WorkBlock (line 63) | interface WorkBlock { constant WORK_BLOCKS (line 73) | const WORK_BLOCKS: WorkBlock[] = [ type ForkArrow (line 102) | interface ForkArrow { constant FORK_ARROWS (line 108) | const FORK_ARROWS: ForkArrow[] = [ type QueueCard (line 113) | interface QueueCard { constant QUEUE_CARDS (line 120) | const QUEUE_CARDS: QueueCard[] = [ function fractionToX (line 135) | function fractionToX(fraction: number): number { function getBlockEndFraction (line 139) | function getBlockEndFraction(block: WorkBlock, step: number): number { function BackgroundTasks (line 151) | function BackgroundTasks({ title }: { title?: string }) { FILE: web/src/components/visualizations/s09-agent-teams.tsx constant SVG_W (line 9) | const SVG_W = 560; constant SVG_H (line 10) | const SVG_H = 340; constant AGENT_R (line 11) | const AGENT_R = 40; constant AGENTS (line 14) | const AGENTS = [ constant TRAY_W (line 21) | const TRAY_W = 72; constant TRAY_H (line 22) | const TRAY_H = 22; constant TRAY_OFFSET_Y (line 23) | const TRAY_OFFSET_Y = AGENT_R + 14; constant MSG_W (line 26) | const MSG_W = 60; constant MSG_H (line 27) | const MSG_H = 20; function agentById (line 29) | function agentById(id: string) { function trayCenter (line 33) | function trayCenter(id: string) { constant STEPS (line 39) | const STEPS = [ function agentGlows (line 50) | function agentGlows(agentId: string, step: number): boolean { function trayHasMessage (line 60) | function trayHasMessage(agentId: string, step: number): boolean { function TravelingMessage (line 68) | function TravelingMessage({ function TraceLine (line 115) | function TraceLine({ from, to, strokeColor }: { from: string; to: string... function AgentTeams (line 134) | function AgentTeams({ title }: { title?: string }) { FILE: web/src/components/visualizations/s10-team-protocols.tsx type Protocol (line 9) | type Protocol = "shutdown" | "plan"; constant SVG_W (line 12) | const SVG_W = 560; constant SVG_H (line 13) | const SVG_H = 360; constant LIFELINE_LEFT_X (line 14) | const LIFELINE_LEFT_X = 140; constant LIFELINE_RIGHT_X (line 15) | const LIFELINE_RIGHT_X = 420; constant LIFELINE_TOP (line 16) | const LIFELINE_TOP = 60; constant LIFELINE_BOTTOM (line 17) | const LIFELINE_BOTTOM = 330; constant ACTIVATION_W (line 18) | const ACTIVATION_W = 12; constant ARROW_Y_START (line 19) | const ARROW_Y_START = 110; constant ARROW_Y_GAP (line 20) | const ARROW_Y_GAP = 70; constant REQUEST_ID (line 23) | const REQUEST_ID = "req_abc"; constant SHUTDOWN_STEPS (line 26) | const SHUTDOWN_STEPS = [ constant PLAN_STEPS (line 34) | const PLAN_STEPS = [ function SequenceArrow (line 41) | function SequenceArrow({ function DecisionBox (line 131) | function DecisionBox({ x, y }: { x: number; y: number }) { function ActivationBar (line 159) | function ActivationBar({ function TeamProtocols (line 185) | function TeamProtocols({ title }: { title?: string }) { FILE: web/src/components/visualizations/s11-autonomous-agents.tsx type Phase (line 9) | type Phase = "idle" | "poll" | "claim" | "work"; constant FSM_CX (line 11) | const FSM_CX = 110; constant FSM_CY (line 12) | const FSM_CY = 110; constant FSM_R (line 13) | const FSM_R = 65; constant FSM_STATE_R (line 14) | const FSM_STATE_R = 22; constant FSM_STATES (line 16) | const FSM_STATES: { id: Phase; label: string; angle: number }[] = [ constant FSM_TRANSITIONS (line 23) | const FSM_TRANSITIONS: { from: Phase; to: Phase }[] = [ function fsmPos (line 30) | function fsmPos(angle: number) { constant PHASE_COLORS (line 34) | const PHASE_COLORS: Record = { type TaskRow (line 42) | interface TaskRow { constant INITIAL_TASKS (line 49) | const INITIAL_TASKS: TaskRow[] = [ constant BOARD_CX (line 57) | const BOARD_CX = 140; constant BOARD_CY (line 58) | const BOARD_CY = 90; constant AGENT_ORBIT (line 59) | const AGENT_ORBIT = 85; constant AGENT_R (line 60) | const AGENT_R = 20; constant AGENT_ANGLES (line 62) | const AGENT_ANGLES = [-Math.PI / 2, Math.PI / 6, (5 * Math.PI) / 6]; function agentPos (line 64) | function agentPos(index: number) { constant STEPS (line 70) | const STEPS = [ type AgentState (line 82) | interface AgentState { function getAgentStates (line 89) | function getAgentStates(step: number): AgentState[] { function getTaskStates (line 146) | function getTaskStates(step: number): TaskRow[] { function getActivePhase (line 155) | function getActivePhase(step: number): Phase { function TimerRing (line 165) | function TimerRing({ cx, cy, r, fill }: { cx: number; cy: number; r: num... function FSMArrow (line 189) | function FSMArrow({ from, to, active, inactiveStroke }: { from: Phase; t... function AutonomousAgents (line 224) | function AutonomousAgents({ title }: { title?: string }) { FILE: web/src/components/visualizations/s12-worktree-task-isolation.tsx type TaskStatus (line 7) | type TaskStatus = "pending" | "in_progress" | "completed"; type TaskRow (line 9) | interface TaskRow { type WorktreeRow (line 16) | interface WorktreeRow { type Lane (line 23) | interface Lane { type StepState (line 29) | interface StepState { constant STEPS (line 38) | const STEPS: StepState[] = [ function statusClass (line 145) | function statusClass(status: TaskStatus): string { function worktreeClass (line 151) | function worktreeClass(state: WorktreeRow["state"]): string { function WorktreeTaskIsolation (line 158) | function WorktreeTaskIsolation({ title }: { title?: string }) { FILE: web/src/components/visualizations/shared/step-controls.tsx type StepControlsProps (line 6) | interface StepControlsProps { function StepControls (line 19) | function StepControls({ FILE: web/src/data/execution-flows.ts type FlowDefinition (line 3) | interface FlowDefinition { constant FLOW_WIDTH (line 8) | const FLOW_WIDTH = 600; constant COL_CENTER (line 9) | const COL_CENTER = FLOW_WIDTH / 2; constant COL_LEFT (line 10) | const COL_LEFT = 140; constant COL_RIGHT (line 11) | const COL_RIGHT = FLOW_WIDTH - 140; constant EXECUTION_FLOWS (line 13) | const EXECUTION_FLOWS: Record = { function getFlowForVersion (line 313) | function getFlowForVersion(version: string): FlowDefinition | null { FILE: web/src/hooks/useDarkMode.ts function useDarkMode (line 5) | function useDarkMode(): boolean { type SvgPalette (line 23) | interface SvgPalette { function useSvgPalette (line 39) | function useSvgPalette(): SvgPalette { FILE: web/src/hooks/useSimulator.ts type SimulatorState (line 6) | interface SimulatorState { function useSimulator (line 12) | function useSimulator(steps: SimStep[]) { FILE: web/src/hooks/useSteppedVisualization.ts type SteppedVisualizationOptions (line 5) | interface SteppedVisualizationOptions { type SteppedVisualizationReturn (line 10) | interface SteppedVisualizationReturn { function useSteppedVisualization (line 23) | function useSteppedVisualization({ FILE: web/src/lib/constants.ts constant VERSION_ORDER (line 1) | const VERSION_ORDER = [ constant LEARNING_PATH (line 5) | const LEARNING_PATH = VERSION_ORDER; type VersionId (line 7) | type VersionId = typeof LEARNING_PATH[number]; constant VERSION_META (line 9) | const VERSION_META: Record