[{"data":1,"prerenderedAt":582},["ShallowReactive",2],{"navigation":3,"\u002Fconfiguration\u002Fui":66,"\u002Fconfiguration\u002Fui-surround":577},[4,28,56],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"What & Why","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Requirements","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F2.requirements","i-lucide-badge-check",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"Upgrade Guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F4.upgrade-guide","i-lucide-arrow-up-circle",false,{"title":29,"path":30,"stem":31,"children":32,"icon":35},"Configuration","\u002Fconfiguration","2.configuration\u002F1.index",[33,36,41,46,51],{"title":34,"path":30,"stem":31,"icon":35},"Overview","i-lucide-settings",{"title":37,"path":38,"stem":39,"icon":40},"Outputs","\u002Fconfiguration\u002Foutputs","2.configuration\u002F2.outputs","i-lucide-file-output",{"title":42,"path":43,"stem":44,"icon":45},"Root Module","\u002Fconfiguration\u002Froot-module","2.configuration\u002F3.root-module","i-lucide-git-branch",{"title":47,"path":48,"stem":49,"icon":50},"Access Token","\u002Fconfiguration\u002Faccess-token","2.configuration\u002F4.access-token","i-lucide-key-round",{"title":52,"path":53,"stem":54,"icon":55},"UI","\u002Fconfiguration\u002Fui","2.configuration\u002F5.ui","i-lucide-layout-dashboard",{"title":57,"path":58,"stem":59,"children":60,"page":27},"Internals","\u002Fguide","3.guide",[61],{"title":62,"path":63,"stem":64,"icon":65},"How It Works","\u002Fguide\u002Fhow-it-works","3.guide\u002F1.how-it-works","i-lucide-workflow",{"id":67,"title":52,"body":68,"description":570,"extension":571,"links":572,"meta":573,"navigation":574,"path":53,"seo":575,"stem":54,"__hash__":576},"docs\u002F2.configuration\u002F5.ui.md",{"type":69,"value":70,"toc":562},"minimark",[71,75,82,158,169,176,221,225,296,315,328,332,414,423,427,552,558],[72,73,52],"h2",{"id":74},"ui",[76,77,78,81],"p",{},[79,80,74],"code",{}," groups viewer-facing settings that aren't about extracting the graph\nitself. Today it holds one thing: how the viewer's saved arrangement of your\ngraph — module positions, collapsed state, item positions — is persisted.",[83,84,89],"pre",{"className":85,"code":86,"language":87,"meta":88,"style":88},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ui?: {\n  layout?: {\n    saveAs?: 'file' | 'runtime'\n  }\n}\n","ts","",[79,90,91,106,117,146,152],{"__ignoreMap":88},[92,93,96,99,103],"span",{"class":94,"line":95},"line",1,[92,97,74],{"class":98},"sTEyZ",[92,100,102],{"class":101},"sMK4o","?:",[92,104,105],{"class":101}," {\n",[92,107,109,112,115],{"class":94,"line":108},2,[92,110,111],{"class":98},"  layout?",[92,113,114],{"class":101},":",[92,116,105],{"class":101},[92,118,120,123,125,128,132,135,138,140,143],{"class":94,"line":119},3,[92,121,122],{"class":98},"    saveAs?",[92,124,114],{"class":101},[92,126,127],{"class":101}," '",[92,129,131],{"class":130},"sfazB","file",[92,133,134],{"class":101},"'",[92,136,137],{"class":101}," |",[92,139,127],{"class":101},[92,141,142],{"class":130},"runtime",[92,144,145],{"class":101},"'\n",[92,147,149],{"class":94,"line":148},4,[92,150,151],{"class":101},"  }\n",[92,153,155],{"class":94,"line":154},5,[92,156,157],{"class":101},"}\n",[76,159,160,161,164,165,168],{},"This is a module-wide setting. It applies to every ",[79,162,163],{},"viewer"," and ",[79,166,167],{},"http"," output\nin your configuration; there is no per-output override.",[170,171,173],"h3",{"id":172},"saveas",[79,174,175],{},"saveAs",[177,178,179,192],"table",{},[180,181,182],"thead",{},[183,184,185,189],"tr",{},[186,187,188],"th",{},"Value",[186,190,191],{},"Behavior",[193,194,195,211],"tbody",{},[183,196,197,204],{},[198,199,200,203],"td",{},[79,201,202],{},"'file'"," (default)",[198,205,206,207,210],{},"Saved to ",[79,208,209],{},".\u002F.muse",", a fixed path relative to your process's working directory. Survives restarts, and can be committed to your repository so a saved layout ships with your team.",[183,212,213,218],{},[198,214,215],{},[79,216,217],{},"'runtime'",[198,219,220],{},"Kept in memory only, inside the running process. Nothing is ever written to or read from disk. Resets to an empty layout every time the application restarts.",[170,222,224],{"id":223},"file-mode-default","File mode (default)",[83,226,228],{"className":85,"code":227,"language":87,"meta":88,"style":88},"NestGraphInspectorModule.forRoot({\n  outputs: [{ type: 'viewer' }],\n  \u002F\u002F ui.layout.saveAs defaults to 'file' — no configuration needed\n})\n",[79,229,230,248,282,288],{"__ignoreMap":88},[92,231,232,235,238,242,245],{"class":94,"line":95},[92,233,234],{"class":98},"NestGraphInspectorModule",[92,236,237],{"class":101},".",[92,239,241],{"class":240},"s2Zo4","forRoot",[92,243,244],{"class":98},"(",[92,246,247],{"class":101},"{\n",[92,249,250,254,256,259,262,265,267,269,271,273,276,279],{"class":94,"line":108},[92,251,253],{"class":252},"swJcz","  outputs",[92,255,114],{"class":101},[92,257,258],{"class":98}," [",[92,260,261],{"class":101},"{",[92,263,264],{"class":252}," type",[92,266,114],{"class":101},[92,268,127],{"class":101},[92,270,163],{"class":130},[92,272,134],{"class":101},[92,274,275],{"class":101}," }",[92,277,278],{"class":98},"]",[92,280,281],{"class":101},",\n",[92,283,284],{"class":94,"line":119},[92,285,287],{"class":286},"sHwdD","  \u002F\u002F ui.layout.saveAs defaults to 'file' — no configuration needed\n",[92,289,290,293],{"class":94,"line":148},[92,291,292],{"class":101},"}",[92,294,295],{"class":98},")\n",[76,297,298,299,302,303,306,307,311,312,314],{},"The viewer reads and writes this file through ",[79,300,301],{},"GET {path}\u002Flayout.json"," and\n",[79,304,305],{},"POST {path}\u002Flayout",", both gated behind the same ",[308,309,310],"a",{"href":48},"access\ntoken"," as every other endpoint. Saves are written\natomically — through a temporary file and a rename — and one at a time in\narrival order, so an interrupted process or an overlapping request can never\nleave ",[79,313,209],{}," holding a partial or interleaved layout.",[316,317,319],"callout",{"color":318,"icon":45},"primary",[76,320,321,323,324,327],{},[79,322,209],{}," is a plain JSON file. Commit it if you want your team to share one\narrangement of the graph, or add it to ",[79,325,326],{},".gitignore"," if each developer should\nkeep their own.",[170,329,331],{"id":330},"runtime-mode","Runtime mode",[83,333,335],{"className":85,"code":334,"language":87,"meta":88,"style":88},"NestGraphInspectorModule.forRoot({\n  outputs: [{ type: 'viewer' }],\n  ui: { layout: { saveAs: 'runtime' } },\n})\n",[79,336,337,349,375,408],{"__ignoreMap":88},[92,338,339,341,343,345,347],{"class":94,"line":95},[92,340,234],{"class":98},[92,342,237],{"class":101},[92,344,241],{"class":240},[92,346,244],{"class":98},[92,348,247],{"class":101},[92,350,351,353,355,357,359,361,363,365,367,369,371,373],{"class":94,"line":108},[92,352,253],{"class":252},[92,354,114],{"class":101},[92,356,258],{"class":98},[92,358,261],{"class":101},[92,360,264],{"class":252},[92,362,114],{"class":101},[92,364,127],{"class":101},[92,366,163],{"class":130},[92,368,134],{"class":101},[92,370,275],{"class":101},[92,372,278],{"class":98},[92,374,281],{"class":101},[92,376,377,380,382,385,388,390,392,395,397,399,401,403,405],{"class":94,"line":119},[92,378,379],{"class":252},"  ui",[92,381,114],{"class":101},[92,383,384],{"class":101}," {",[92,386,387],{"class":252}," layout",[92,389,114],{"class":101},[92,391,384],{"class":101},[92,393,394],{"class":252}," saveAs",[92,396,114],{"class":101},[92,398,127],{"class":101},[92,400,142],{"class":130},[92,402,134],{"class":101},[92,404,275],{"class":101},[92,406,407],{"class":101}," },\n",[92,409,410,412],{"class":94,"line":148},[92,411,292],{"class":101},[92,413,295],{"class":98},[76,415,416,417,419,420,422],{},"Use this when you don't want the inspector touching your filesystem at all —\nfor example, in a read-only container, or a CI job that boots the application\nonly to inspect it. The layout still round-trips through the same\n",[79,418,301],{}," \u002F ",[79,421,305],{}," endpoints and is still\nvalidated the same way; it simply lives in memory on the adapter instead of on\ndisk, and is gone the moment the process restarts.",[170,424,426],{"id":425},"example","Example",[83,428,430],{"className":85,"code":429,"language":87,"meta":88,"style":88},"NestGraphInspectorModule.forRoot({\n  outputs: [\n    { type: 'viewer' },\n    { type: 'http', path: '\u002Finternal\u002Fgraph' },\n  ],\n  ui: {\n    layout: { saveAs: 'file' },\n  },\n})\n",[79,431,432,444,453,470,501,508,517,539,545],{"__ignoreMap":88},[92,433,434,436,438,440,442],{"class":94,"line":95},[92,435,234],{"class":98},[92,437,237],{"class":101},[92,439,241],{"class":240},[92,441,244],{"class":98},[92,443,247],{"class":101},[92,445,446,448,450],{"class":94,"line":108},[92,447,253],{"class":252},[92,449,114],{"class":101},[92,451,452],{"class":98}," [\n",[92,454,455,458,460,462,464,466,468],{"class":94,"line":119},[92,456,457],{"class":101},"    {",[92,459,264],{"class":252},[92,461,114],{"class":101},[92,463,127],{"class":101},[92,465,163],{"class":130},[92,467,134],{"class":101},[92,469,407],{"class":101},[92,471,472,474,476,478,480,482,484,487,490,492,494,497,499],{"class":94,"line":148},[92,473,457],{"class":101},[92,475,264],{"class":252},[92,477,114],{"class":101},[92,479,127],{"class":101},[92,481,167],{"class":130},[92,483,134],{"class":101},[92,485,486],{"class":101},",",[92,488,489],{"class":252}," path",[92,491,114],{"class":101},[92,493,127],{"class":101},[92,495,496],{"class":130},"\u002Finternal\u002Fgraph",[92,498,134],{"class":101},[92,500,407],{"class":101},[92,502,503,506],{"class":94,"line":154},[92,504,505],{"class":98},"  ]",[92,507,281],{"class":101},[92,509,511,513,515],{"class":94,"line":510},6,[92,512,379],{"class":252},[92,514,114],{"class":101},[92,516,105],{"class":101},[92,518,520,523,525,527,529,531,533,535,537],{"class":94,"line":519},7,[92,521,522],{"class":252},"    layout",[92,524,114],{"class":101},[92,526,384],{"class":101},[92,528,394],{"class":252},[92,530,114],{"class":101},[92,532,127],{"class":101},[92,534,131],{"class":130},[92,536,134],{"class":101},[92,538,407],{"class":101},[92,540,542],{"class":94,"line":541},8,[92,543,544],{"class":101},"  },\n",[92,546,548,550],{"class":94,"line":547},9,[92,549,292],{"class":101},[92,551,295],{"class":98},[76,553,554,555,557],{},"Both outputs above share the one ",[79,556,209],{}," file — layout persistence is not\nconfigurable per output.",[559,560,561],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":88,"searchDepth":95,"depth":108,"links":563},[564],{"id":74,"depth":108,"text":52,"children":565},[566,567,568,569],{"id":172,"depth":119,"text":175},{"id":223,"depth":119,"text":224},{"id":330,"depth":119,"text":331},{"id":425,"depth":119,"text":426},"Configure how the viewer's layout is persisted.","md",null,{},{"icon":55},{"title":52,"description":570},"dTMZSq5Odl8sVQ5s6KqDQ1TQ0-MGF8sMSwa99kSUyxM",[578,580],{"title":47,"path":48,"stem":49,"description":579,"icon":50,"children":-1},"Gate every inspector endpoint behind a short-lived token.",{"title":62,"path":63,"stem":64,"description":581,"icon":65,"children":-1},"Understand the internal flow of Nest Graph Inspector.",1791777231998]