[{"data":1,"prerenderedAt":1393},["ShallowReactive",2],{"navigation_docs":3,"-setup-desktop-config":217,"-setup-desktop-config-surround":1388},[4,25,41,84,126,165,201],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":24},"Overview","i-lucide-house","\u002Fgetting-started","1.getting-started",[10,14,19],{"title":11,"path":12,"stem":13,"icon":6},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Project structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",false,{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":24},"Architecture","i-lucide-cpu","\u002Farchitecture","3.architecture",[31,36],{"title":32,"path":33,"stem":34,"icon":35},"Core, themes, and apps","\u002Farchitecture\u002Foverview","3.architecture\u002F1.overview","i-lucide-layers",{"title":37,"path":38,"stem":39,"icon":40},"Kits and extension modules","\u002Farchitecture\u002Fkits","3.architecture\u002F3.kits","i-lucide-puzzle",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":24},"Apps","i-lucide-app-window","\u002Fapps","4.apps",[47,51,55,60,64,69,74,79],{"title":5,"path":48,"stem":49,"icon":50},"\u002Fapps\u002Foverview","4.apps\u002F1.overview","i-lucide-info",{"title":52,"path":53,"stem":54,"icon":23},"Package layout","\u002Fapps\u002Fpackage-layout","4.apps\u002F2.package-layout",{"title":56,"path":57,"stem":58,"icon":59},"Create from scratch","\u002Fapps\u002Fcreate-from-scratch","4.apps\u002F3.create-from-scratch","i-lucide-list-checks",{"title":61,"path":62,"stem":63,"icon":40},"Module and runtime","\u002Fapps\u002Fmodule-and-runtime","4.apps\u002F4.module-and-runtime",{"title":65,"path":66,"stem":67,"icon":68},"Plugins","\u002Fapps\u002Fplugins","4.apps\u002F5.plugins","i-lucide-plug",{"title":70,"path":71,"stem":72,"icon":73},"Windows and commands","\u002Fapps\u002Fwindows-and-commands","4.apps\u002F6.windows-and-commands","i-lucide-layout-panel-top",{"title":75,"path":76,"stem":77,"icon":78},"Playground","\u002Fapps\u002Fplayground","4.apps\u002F7.playground","i-lucide-flask-conical",{"title":80,"path":81,"stem":82,"icon":83},"Build and publish","\u002Fapps\u002Fbuild-and-publish","4.apps\u002F8.build-and-publish","i-lucide-package",{"title":85,"icon":86,"path":87,"stem":88,"children":89,"page":24},"Themes","i-lucide-palette","\u002Fthemes","5.themes",[90,93,98,102,106,111,116,121],{"title":5,"path":91,"stem":92,"icon":50},"\u002Fthemes\u002Foverview","5.themes\u002F1.overview",{"title":94,"path":95,"stem":96,"icon":97},"Theme anatomy","\u002Fthemes\u002Ftheme-anatomy","5.themes\u002F2.theme-anatomy","i-lucide-component",{"title":99,"path":100,"stem":101},"Create From Scratch","\u002Fthemes\u002Fcreate-from-scratch","5.themes\u002F3.create-from-scratch",{"title":103,"path":104,"stem":105,"icon":68},"Theme plugins","\u002Fthemes\u002Fplugins","5.themes\u002F4.plugins",{"title":107,"path":108,"stem":109,"icon":110},"Styling and Tailwind","\u002Fthemes\u002Fstyling-and-tailwind","5.themes\u002F5.styling-and-tailwind","i-lucide-brush",{"title":112,"path":113,"stem":114,"icon":115},"Pages and boot flow","\u002Fthemes\u002Fpages-and-boot-flow","5.themes\u002F6.pages-and-boot-flow","i-lucide-power",{"title":117,"path":118,"stem":119,"icon":120},"Theme and optional modules","\u002Fthemes\u002Ftheme-and-optional-modules","5.themes\u002F7.theme-and-optional-modules","i-lucide-link",{"title":122,"path":123,"stem":124,"icon":125},"Window chrome and nav buttons","\u002Fthemes\u002Fwindow-chrome-and-nav-buttons","5.themes\u002F8.window-chrome-and-nav-buttons","i-lucide-square-mouse-pointer",{"title":127,"icon":128,"path":129,"stem":130,"children":131,"page":24},"Client & CLI","i-lucide-terminal","\u002Fsetup","6.setup",[132,136,141,146,151,156,161],{"title":133,"path":134,"stem":135,"icon":128},"desktop CLI","\u002Fsetup\u002Fdesktop-cli","6.setup\u002F1.desktop-cli",{"title":137,"path":138,"stem":139,"icon":140},"Package linking","\u002Fsetup\u002Fpackage-linking","6.setup\u002F2.package-linking","i-lucide-link-2",{"title":142,"path":143,"stem":144,"icon":145},"Monorepo and workspace","\u002Fsetup\u002Fmonorepo-workspace","6.setup\u002F3.monorepo-workspace","i-lucide-blocks",{"title":147,"path":148,"stem":149,"icon":150},"desktop.config.ts","\u002Fsetup\u002Fdesktop-config","6.setup\u002F4.desktop-config","i-lucide-file-code",{"title":152,"path":153,"stem":154,"icon":155},"Migrate themes, apps, and modules (3.3.2)","\u002Fsetup\u002Fmigrate-packages-3.3.2","6.setup\u002F5.migrate-packages-3.3.2","i-lucide-arrow-right-left",{"title":157,"path":158,"stem":159,"icon":160},"Migrate themes, apps, and modules (3.4)","\u002Fsetup\u002Fmigrate-packages-3.4","6.setup\u002F6.migrate-packages-3.4","i-lucide-arrow-up-right",{"title":162,"path":163,"stem":164},"Troubleshooting","\u002Fsetup\u002Ftroubleshooting","6.setup\u002F7.troubleshooting",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":24},"Internals","i-lucide-book-open","\u002Finternals","7.internals",[171,176,181,186,191,196],{"title":172,"path":173,"stem":174,"icon":175},"Boot sequence","\u002Finternals\u002Fboot-sequence","7.internals\u002F1.boot-sequence","i-lucide-list-ordered",{"title":177,"path":178,"stem":179,"icon":180},"Stores and composables","\u002Finternals\u002Fstores-and-composables","7.internals\u002F2.stores-and-composables","i-lucide-database",{"title":182,"path":183,"stem":184,"icon":185},"Core components","\u002Finternals\u002Fcore-components","7.internals\u002F3.core-components","i-lucide-layout-grid",{"title":187,"path":188,"stem":189,"icon":190},"Dialog provider","\u002Finternals\u002Fdialog-provider","7.internals\u002F4.dialog-provider","i-lucide-message-square",{"title":192,"path":193,"stem":194,"icon":195},"Kernel contract","\u002Finternals\u002Fkernel-contract","7.internals\u002F5.kernel-contract","i-lucide-shield-check",{"title":197,"path":198,"stem":199,"icon":200},"Shell identity","\u002Finternals\u002Fshell-identity","7.internals\u002F6.shell-identity","i-lucide-user",{"title":202,"icon":203,"path":204,"stem":205,"children":206,"page":24},"Reference","i-lucide-book-marked","\u002Freference","8.reference",[207,212],{"title":208,"path":209,"stem":210,"icon":211},"Glossary","\u002Freference\u002Fglossary","8.reference\u002F1.glossary","i-lucide-book-a",{"title":213,"path":214,"stem":215,"icon":216},"Ecosystem","\u002Freference\u002Fuseful-links","8.reference\u002F2.useful-links","i-lucide-external-link",{"id":218,"title":147,"body":219,"description":1381,"extension":1382,"links":1383,"meta":1384,"navigation":1385,"path":148,"seo":1386,"stem":149,"__hash__":1387},"docs\u002F6.setup\u002F4.desktop-config.md",{"type":220,"value":221,"toc":1368},"minimark",[222,249,267,272,405,409,494,498,540,584,601,605,628,778,838,851,938,942,982,986,999,1062,1066,1142,1146,1153,1173,1179,1183,1190,1194,1328,1336,1340,1364],[223,224,225,226,232,233,236,237,242,243,248],"p",{},"Place ",[227,228,229],"strong",{},[230,231,147],"code",{}," next to the ",[227,234,235],{},"Nuxt root"," of your desktop project (alongside ",[227,238,239],{},[230,240,241],{},"nuxt.config.ts","). In the client monorepo that is ",[227,244,245],{},[230,246,247],{},"desktop\u002Fdesktop.config.ts",".",[250,251,253,256,257,262,263,248],"callout",{"icon":252},"i-lucide-history",[227,254,255],{},"Legacy filename:"," ",[227,258,259],{},[230,260,261],{},"owd.config.ts"," is still resolved for older projects. New projects should use ",[227,264,265],{},[230,266,147],{},[268,269,271],"h2",{"id":270},"minimal-shape","Minimal shape",[273,274,279],"pre",{"className":275,"code":276,"language":277,"meta":278,"style":278},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineDesktopConfig } from '@owdproject\u002Fcore'\n\nexport default defineDesktopConfig({\n  theme: '@owdproject\u002Ftheme-nova',\n  apps: ['@owdproject\u002Fapp-about'],\n  modules: [],\n})\n","ts","",[230,280,281,314,321,339,360,383,396],{"__ignoreMap":278},[282,283,286,290,294,298,301,304,307,311],"span",{"class":284,"line":285},"line",1,[282,287,289],{"class":288},"s7zQu","import",[282,291,293],{"class":292},"sMK4o"," {",[282,295,297],{"class":296},"sTEyZ"," defineDesktopConfig",[282,299,300],{"class":292}," }",[282,302,303],{"class":288}," from",[282,305,306],{"class":292}," '",[282,308,310],{"class":309},"sfazB","@owdproject\u002Fcore",[282,312,313],{"class":292},"'\n",[282,315,317],{"class":284,"line":316},2,[282,318,320],{"emptyLinePlaceholder":319},true,"\n",[282,322,324,327,330,333,336],{"class":284,"line":323},3,[282,325,326],{"class":288},"export",[282,328,329],{"class":288}," default",[282,331,297],{"class":332},"s2Zo4",[282,334,335],{"class":296},"(",[282,337,338],{"class":292},"{\n",[282,340,342,346,349,351,354,357],{"class":284,"line":341},4,[282,343,345],{"class":344},"swJcz","  theme",[282,347,348],{"class":292},":",[282,350,306],{"class":292},[282,352,353],{"class":309},"@owdproject\u002Ftheme-nova",[282,355,356],{"class":292},"'",[282,358,359],{"class":292},",\n",[282,361,363,366,368,371,373,376,378,381],{"class":284,"line":362},5,[282,364,365],{"class":344},"  apps",[282,367,348],{"class":292},[282,369,370],{"class":296}," [",[282,372,356],{"class":292},[282,374,375],{"class":309},"@owdproject\u002Fapp-about",[282,377,356],{"class":292},[282,379,380],{"class":296},"]",[282,382,359],{"class":292},[282,384,386,389,391,394],{"class":284,"line":385},6,[282,387,388],{"class":344},"  modules",[282,390,348],{"class":292},[282,392,393],{"class":296}," []",[282,395,359],{"class":292},[282,397,399,402],{"class":284,"line":398},7,[282,400,401],{"class":292},"}",[282,403,404],{"class":296},")\n",[268,406,408],{"id":407},"main-fields","Main fields",[410,411,412,425],"table",{},[413,414,415],"thead",{},[416,417,418,422],"tr",{},[419,420,421],"th",{},"Field",[419,423,424],{},"Meaning",[426,427,428,441,478],"tbody",{},[416,429,430,438],{},[431,432,433],"td",{},[227,434,435],{},[230,436,437],{},"theme",[431,439,440],{},"Theme Nuxt module (npm package name). Required for a predictable shell.",[416,442,443,450],{},[431,444,445],{},[227,446,447],{},[230,448,449],{},"modules",[431,451,452,453,456,457,256,460,465,466,471,472,477],{},"Extension modules loaded ",[227,454,455],{},"after"," the theme, ",[227,458,459],{},"before",[227,461,462],{},[230,463,464],{},"apps"," (e.g. ",[227,467,468],{},[230,469,470],{},"@owdproject\u002Fmodule-fs",", ",[227,473,474],{},[230,475,476],{},"@owdproject\u002Fmodule-persistence",").",[416,479,480,486],{},[431,481,482],{},[227,483,484],{},[230,485,464],{},[431,487,488,489,248],{},"App modules; each registers programs via ",[227,490,491],{},[230,492,493],{},"defineDesktopApp",[268,495,497],{"id":496},"shell-keys","Shell keys",[223,499,500,501,471,504,471,509,471,514,471,519,471,524,471,529,471,534,539],{},"Shell keys (",[230,502,503],{},"name",[227,505,506],{},[230,507,508],{},"systemBar",[227,510,511],{},[230,512,513],{},"dockBar",[227,515,516],{},[230,517,518],{},"workspaces",[227,520,521],{},[230,522,523],{},"defaultApps",[227,525,526],{},[230,527,528],{},"features",[227,530,531],{},[230,532,533],{},"explorer",[227,535,536],{},[230,537,538],{},"docs",", …) merge into:",[541,542,543,571],"ul",{},[544,545,546,551,552,471,556,471,560,564,565,570],"li",{},[227,547,548],{},[230,549,550],{},"runtimeConfig.public.desktop"," (full config, including ",[227,553,554],{},[230,555,437],{},[227,557,558],{},[230,559,464],{},[227,561,562],{},[230,563,449],{},", and ",[227,566,567],{},[230,568,569],{},"coreVersion",")",[544,572,573,578,579,570],{},[227,574,575],{},[230,576,577],{},"appConfig.desktop"," (same reference; runtime overrides via ",[227,580,581],{},[230,582,583],{},"useDesktopManager().setConfig()",[223,585,586,587,590,591,596,597,248],{},"They are ",[227,588,589],{},"never"," spread onto ",[227,592,593],{},[230,594,595],{},"_nuxt.options"," — put Nuxt options in ",[227,598,599],{},[230,600,241],{},[268,602,604],{"id":603},"extension-keys","Extension keys",[223,606,607,608,465,613,471,618,623,624,348],{},"Packages with a Nuxt ",[227,609,610],{},[230,611,612],{},"configKey",[227,614,615],{},[230,616,617],{},"terminal",[227,619,620],{},[230,621,622],{},"fs",") expose a namespace on ",[227,625,626],{},[230,627,147],{},[273,629,631],{"className":275,"code":630,"language":277,"meta":278,"style":278},"export default defineDesktopConfig({\n  theme: '@owdproject\u002Ftheme-nova',\n  modules: ['@owdproject\u002Fmodule-fs'],\n  apps: ['@owdproject\u002Fapp-terminal'],\n  terminal: {\n    prompt: 'my-desktop$ ',\n  },\n  fs: {\n    mounts: { '\u002Fhome': 'WebStorage' },\n  },\n})\n",[230,632,633,645,659,677,696,706,722,727,737,766,771],{"__ignoreMap":278},[282,634,635,637,639,641,643],{"class":284,"line":285},[282,636,326],{"class":288},[282,638,329],{"class":288},[282,640,297],{"class":332},[282,642,335],{"class":296},[282,644,338],{"class":292},[282,646,647,649,651,653,655,657],{"class":284,"line":316},[282,648,345],{"class":344},[282,650,348],{"class":292},[282,652,306],{"class":292},[282,654,353],{"class":309},[282,656,356],{"class":292},[282,658,359],{"class":292},[282,660,661,663,665,667,669,671,673,675],{"class":284,"line":323},[282,662,388],{"class":344},[282,664,348],{"class":292},[282,666,370],{"class":296},[282,668,356],{"class":292},[282,670,470],{"class":309},[282,672,356],{"class":292},[282,674,380],{"class":296},[282,676,359],{"class":292},[282,678,679,681,683,685,687,690,692,694],{"class":284,"line":341},[282,680,365],{"class":344},[282,682,348],{"class":292},[282,684,370],{"class":296},[282,686,356],{"class":292},[282,688,689],{"class":309},"@owdproject\u002Fapp-terminal",[282,691,356],{"class":292},[282,693,380],{"class":296},[282,695,359],{"class":292},[282,697,698,701,703],{"class":284,"line":362},[282,699,700],{"class":344},"  terminal",[282,702,348],{"class":292},[282,704,705],{"class":292}," {\n",[282,707,708,711,713,715,718,720],{"class":284,"line":385},[282,709,710],{"class":344},"    prompt",[282,712,348],{"class":292},[282,714,306],{"class":292},[282,716,717],{"class":309},"my-desktop$ ",[282,719,356],{"class":292},[282,721,359],{"class":292},[282,723,724],{"class":284,"line":398},[282,725,726],{"class":292},"  },\n",[282,728,730,733,735],{"class":284,"line":729},8,[282,731,732],{"class":344},"  fs",[282,734,348],{"class":292},[282,736,705],{"class":292},[282,738,740,743,745,747,749,752,754,756,758,761,763],{"class":284,"line":739},9,[282,741,742],{"class":344},"    mounts",[282,744,348],{"class":292},[282,746,293],{"class":292},[282,748,306],{"class":292},[282,750,751],{"class":344},"\u002Fhome",[282,753,356],{"class":292},[282,755,348],{"class":292},[282,757,306],{"class":292},[282,759,760],{"class":309},"WebStorage",[282,762,356],{"class":292},[282,764,765],{"class":292}," },\n",[282,767,769],{"class":284,"line":768},10,[282,770,726],{"class":292},[282,772,774,776],{"class":284,"line":773},11,[282,775,401],{"class":292},[282,777,404],{"class":296},[541,779,780,791,811],{},[544,781,782,783,786,787,248],{},"Core merges the ",[227,784,785],{},"entire"," export into ",[227,788,789],{},[230,790,550],{},[544,792,793,794,799,800,804,805,810],{},"Extension modules should use ",[227,795,796],{},[230,797,798],{},"defineDesktopModule"," from ",[227,801,802],{},[230,803,310],{}," with ",[227,806,807],{},[230,808,809],{},"meta.configKey"," set.",[544,812,813,814,819,820,825,826,831,832,837],{},"Types: augment ",[227,815,816],{},[230,817,818],{},"DesktopConfig"," in your package via ",[227,821,822],{},[230,823,824],{},"types\u002Fdesktop.d.ts"," (see ",[227,827,828],{},[230,829,830],{},"app-terminal"," \u002F ",[227,833,834],{},[230,835,836],{},"module-fs"," in the monorepo). Core does not whitelist extension keys.",[223,839,840,841,845,846,850],{},"At runtime (auto-imported by ",[227,842,843],{},[230,844,310],{},", not from the main package entry — safe for ",[227,847,848],{},[230,849,147],{},"):",[410,852,853,863],{},[413,854,855],{},[416,856,857,860],{},[419,858,859],{},"API",[419,861,862],{},"Use",[426,864,865,882,894,910,926],{},[416,866,867,874],{},[431,868,869],{},[227,870,871],{},[230,872,873],{},"useDesktopConfig()",[431,875,876,877],{},"Full ",[227,878,879],{},[230,880,881],{},"public.desktop",[416,883,884,891],{},[431,885,886],{},[227,887,888],{},[230,889,890],{},"useDesktopExtension('fs')",[431,892,893],{},"One namespace (typed via your augmentation)",[416,895,896,903],{},[431,897,898],{},[227,899,900],{},[230,901,902],{},"hasDesktopModule('@owdproject\u002Fmodule-fs')",[431,904,905],{},[227,906,907],{},[230,908,909],{},"desktop.modules?.includes(...)",[416,911,912,919],{},[431,913,914],{},[227,915,916],{},[230,917,918],{},"hasDesktopApp('@owdproject\u002Fapp-terminal')",[431,920,921],{},[227,922,923],{},[230,924,925],{},"desktop.apps?.includes(...)",[416,927,928,935],{},[431,929,930],{},[227,931,932],{},[230,933,934],{},"hasDesktopExtension('terminal')",[431,936,937],{},"Extension namespace present",[268,939,941],{"id":940},"warnings","Warnings",[223,943,944,945,948,949,471,954,471,959,964,965,471,969,471,973,471,977,981],{},"Only keys that ",[227,946,947],{},"look like Nuxt options"," (",[227,950,951],{},[230,952,953],{},"ssr",[227,955,956],{},[230,957,958],{},"vite",[227,960,961],{},[230,962,963],{},"nitro",", …) trigger a dev warning. Custom extension keys and manifest fields (",[227,966,967],{},[230,968,449],{},[227,970,971],{},[230,972,464],{},[227,974,975],{},[230,976,622],{},[227,978,979],{},[230,980,617],{},") do not.",[268,983,985],{"id":984},"merge-semantics","Merge semantics",[223,987,988,989,998],{},"Core and themes use ",[227,990,991],{},[992,993,997],"a",{"href":994,"rel":995},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fdefu",[996],"nofollow","defu"," (UnJS):",[541,1000,1001,1023,1036],{},[544,1002,1003,1010,1011,1016,1017,1022],{},[227,1004,1005,1006,1009],{},"User \u002F existing ",[230,1007,1008],{},"desktop.config"," values win","; theme module ",[227,1012,1013],{},[230,1014,1015],{},"defaults"," fill ",[227,1018,1019],{},[230,1020,1021],{},"undefined"," only.",[544,1024,1025,1029,1030,1035],{},[227,1026,1027],{},[230,1028,583],{}," uses the same model so ",[227,1031,1032],{},[230,1033,1034],{},"DesktopCore"," props override at runtime.",[544,1037,1038,1039,1044,1045,804,1050,1055,1056,1061],{},"Themes: prefer ",[227,1040,1041],{},[230,1042,1043],{},"defineDesktopTheme"," (or ",[227,1046,1047],{},[230,1048,1049],{},"defineNuxtModule",[227,1051,1052],{},[230,1053,1054],{},"configKey: 'desktop'"," and the same ",[227,1057,1058],{},[230,1059,1060],{},"defu(public.desktop, options)"," pattern).",[268,1063,1065],{"id":1064},"authoring-api-packages","Authoring API (packages)",[410,1067,1068,1078],{},[413,1069,1070],{},[416,1071,1072,1075],{},[419,1073,1074],{},"Export",[419,1076,1077],{},"Role",[426,1079,1080,1094,1109,1126],{},[416,1081,1082,1088],{},[431,1083,1084],{},[227,1085,1086],{},[230,1087,798],{},[431,1089,1090,1091,1093],{},"Apps \u002F extension modules (",[230,1092,809],{}," required)",[416,1095,1096,1102],{},[431,1097,1098],{},[227,1099,1100],{},[230,1101,1043],{},[431,1103,1104,1105],{},"Theme shell defaults merged into ",[227,1106,1107],{},[230,1108,881],{},[416,1110,1111,1118],{},[431,1112,1113],{},[227,1114,1115],{},[230,1116,1117],{},"setDesktopExtensionConfig",[431,1119,1120,1121,1125],{},"Used by ",[227,1122,1123],{},[230,1124,798],{}," after Nuxt merge",[416,1127,1128,1135],{},[431,1129,1130],{},[227,1131,1132],{},[230,1133,1134],{},"mergeDesktopExtensionConfig",[431,1136,1137,1138],{},"Theme setup: merge into an extension namespace without importing ",[227,1139,1140],{},[230,1141,997],{},[268,1143,1145],{"id":1144},"validation","Validation",[223,1147,1148,1152],{},[227,1149,1150],{},[230,1151,310],{}," validates the default export after load:",[541,1154,1155,1162],{},[544,1156,1157,1161],{},[227,1158,1159],{},[230,1160,437],{},": string (npm package name) or omitted.",[544,1163,1164,831,1168,1172],{},[227,1165,1166],{},[230,1167,464],{},[227,1169,1170],{},[230,1171,449],{},": arrays of strings when present.",[223,1174,1175,1176,1178],{},"Malformed shapes throw ",[227,1177,459],{}," theme or app modules install.",[268,1180,1182],{"id":1181},"errors","Errors",[223,1184,1185,1186,1189],{},"Missing or invalid config throws with ",[227,1187,1188],{},"path + remediation",". Syntax errors surface from the bundler or validation step.",[268,1191,1193],{"id":1192},"example-with-filesystem","Example with filesystem",[273,1195,1197],{"className":275,"code":1196,"language":277,"meta":278,"style":278},"export default defineDesktopConfig({\n  theme: '@owdproject\u002Ftheme-nova',\n  apps: ['@owdproject\u002Fapp-about'],\n  modules: [\n    '@owdproject\u002Fmodule-fs',\n    '@owdproject\u002Fmodule-persistence',\n  ],\n  workspaces: { enabled: true },\n  terminal: { prompt: 'owd$ ' },\n})\n",[230,1198,1199,1211,1225,1243,1252,1263,1273,1280,1300,1322],{"__ignoreMap":278},[282,1200,1201,1203,1205,1207,1209],{"class":284,"line":285},[282,1202,326],{"class":288},[282,1204,329],{"class":288},[282,1206,297],{"class":332},[282,1208,335],{"class":296},[282,1210,338],{"class":292},[282,1212,1213,1215,1217,1219,1221,1223],{"class":284,"line":316},[282,1214,345],{"class":344},[282,1216,348],{"class":292},[282,1218,306],{"class":292},[282,1220,353],{"class":309},[282,1222,356],{"class":292},[282,1224,359],{"class":292},[282,1226,1227,1229,1231,1233,1235,1237,1239,1241],{"class":284,"line":323},[282,1228,365],{"class":344},[282,1230,348],{"class":292},[282,1232,370],{"class":296},[282,1234,356],{"class":292},[282,1236,375],{"class":309},[282,1238,356],{"class":292},[282,1240,380],{"class":296},[282,1242,359],{"class":292},[282,1244,1245,1247,1249],{"class":284,"line":341},[282,1246,388],{"class":344},[282,1248,348],{"class":292},[282,1250,1251],{"class":296}," [\n",[282,1253,1254,1257,1259,1261],{"class":284,"line":362},[282,1255,1256],{"class":292},"    '",[282,1258,470],{"class":309},[282,1260,356],{"class":292},[282,1262,359],{"class":292},[282,1264,1265,1267,1269,1271],{"class":284,"line":385},[282,1266,1256],{"class":292},[282,1268,476],{"class":309},[282,1270,356],{"class":292},[282,1272,359],{"class":292},[282,1274,1275,1278],{"class":284,"line":398},[282,1276,1277],{"class":296},"  ]",[282,1279,359],{"class":292},[282,1281,1282,1285,1287,1289,1292,1294,1298],{"class":284,"line":729},[282,1283,1284],{"class":344},"  workspaces",[282,1286,348],{"class":292},[282,1288,293],{"class":292},[282,1290,1291],{"class":344}," enabled",[282,1293,348],{"class":292},[282,1295,1297],{"class":1296},"sfNiH"," true",[282,1299,765],{"class":292},[282,1301,1302,1304,1306,1308,1311,1313,1315,1318,1320],{"class":284,"line":739},[282,1303,700],{"class":344},[282,1305,348],{"class":292},[282,1307,293],{"class":292},[282,1309,1310],{"class":344}," prompt",[282,1312,348],{"class":292},[282,1314,306],{"class":292},[282,1316,1317],{"class":309},"owd$ ",[282,1319,356],{"class":292},[282,1321,765],{"class":292},[282,1323,1324,1326],{"class":284,"line":768},[282,1325,401],{"class":292},[282,1327,404],{"class":296},[223,1329,1330,1331,248],{},"Install modules first: ",[227,1332,1333],{},[230,1334,1335],{},"desktop add module-fs",[268,1337,1339],{"id":1338},"related","Related",[541,1341,1342,1346,1350,1354,1359],{},[544,1343,1344],{},[992,1345,152],{"href":153},[544,1347,1348],{},[992,1349,172],{"href":173},[544,1351,1352],{},[992,1353,192],{"href":193},[544,1355,1356],{},[992,1357,1358],{"href":57},"Create an app",[544,1360,1361],{},[992,1362,1363],{"href":100},"Create a theme",[1365,1366,1367],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":278,"searchDepth":316,"depth":316,"links":1369},[1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380],{"id":270,"depth":316,"text":271},{"id":407,"depth":316,"text":408},{"id":496,"depth":316,"text":497},{"id":603,"depth":316,"text":604},{"id":940,"depth":316,"text":941},{"id":984,"depth":316,"text":985},{"id":1064,"depth":316,"text":1065},{"id":1144,"depth":316,"text":1145},{"id":1181,"depth":316,"text":1182},{"id":1192,"depth":316,"text":1193},{"id":1338,"depth":316,"text":1339},"defineDesktopConfig, theme, apps, modules, shell keys, extension keys, and runtime merge.","md",null,{},{"icon":150},{"title":147,"description":1381},"ItfU1-d4QqeiIjwqDoDlSy7j6RWpE9O6w2xK-OEx0fw",[1389,1391],{"title":142,"path":143,"stem":144,"description":1390,"icon":145,"children":-1},"pnpm workspace layout, root scripts, and how the client repo is organized.",{"title":152,"path":153,"stem":154,"description":1392,"icon":155,"children":-1},"Agent-oriented checklist to adopt defineDesktopModule, defineDesktopTheme, desktop.config merge, and runtime composables.",1782171655060]