[{"data":1,"prerenderedAt":91},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fconcepts":3,"docs-nav":75},{"id":4,"title":5,"body":6,"description":67,"extension":68,"meta":69,"nav":64,"navigation":70,"path":71,"seo":72,"stem":73,"__hash__":74},"docs\u002Fdocs\u002Fconcepts.md","Concepts",{"type":7,"value":8,"toc":59},"minimark",[9,13,17,22,25,29,37,41,53],[10,11,5],"h1",{"id":12},"concepts",[14,15,16],"p",{},"A quick map of the moving parts.",[18,19,21],"h2",{"id":20},"agents-loops","Agents & loops",[14,23,24],{},"Every chat runs an agent loop on OpenRouter — stream a thought, call a tool, observe,\nrepeat — until it answers. Tool calls render inline as they happen.",[18,26,28],{"id":27},"sandboxes","Sandboxes",[14,30,31,32,36],{},"Code execution and Forge jobs run in ",[33,34,35],"strong",{},"E2B"," sandboxes over the network. The Python\nexecutor returns stdout, stderr, and any captured charts (Plotly \u002F matplotlib).",[18,38,40],{"id":39},"the-forge-layer","The Forge layer",[14,42,43,44,47,48,52],{},"Forge authenticates as a ",[33,45,46],{},"GitHub App",". Per job it mints a short-lived, repo-scoped\ntoken and injects it into the sandbox; the agent pushes only ",[49,50,51],"code",{},"feat\u002Fjob-*"," branches.",[54,55,56],"callout",{},[14,57,58],{},"Everything is driver-swapped behind env-selected interfaces — business logic never\nimports a vendor SDK directly.",{"title":60,"searchDepth":61,"depth":61,"links":62},"",3,[63,65,66],{"id":20,"depth":64,"text":21},2,{"id":27,"depth":64,"text":28},{"id":39,"depth":64,"text":40},"How the pieces fit — agents, sandboxes, and the Forge layer.","md",{},true,"\u002Fdocs\u002Fconcepts",{"title":5,"description":67},"docs\u002Fconcepts","55zpIUfidvdkMzZe4LpFalhYH0cX5vzKK5Ep6sIXj4g",[76],{"title":77,"path":78,"stem":79,"children":80,"page":90},"Docs","\u002Fdocs","docs",[81,82,86],{"title":5,"path":71,"stem":73},{"title":83,"path":84,"stem":85},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",{"title":87,"path":88,"stem":89},"Markdown test","\u002Fdocs\u002Fmarkdown-test","docs\u002Fmarkdown-test",false,1781793790971]