ompgui 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -4
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +1 -1
  6. package/.next/required-server-files.js +2 -2
  7. package/.next/required-server-files.json +2 -2
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +2 -2
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/api/app-update/route.js +1 -1
  21. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  22. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
  23. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  24. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  25. package/.next/server/app/api/auth/providers/route.js +1 -1
  26. package/.next/server/app/api/models/route.js +1 -1
  27. package/.next/server/app/api/models-config/connectivity/route.js +1 -1
  28. package/.next/server/app/api/models-config/connectivity/route.js.nft.json +1 -1
  29. package/.next/server/app/api/models-config/route.js +1 -1
  30. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  31. package/.next/server/app/api/models-config/test/route.js +1 -1
  32. package/.next/server/app/api/models-config/test/route.js.nft.json +1 -1
  33. package/.next/server/app/api/omp-settings/route.js +1 -1
  34. package/.next/server/app/api/providers/enable/route.js +1 -1
  35. package/.next/server/app/index.html +1 -1
  36. package/.next/server/app/index.rsc +3 -3
  37. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  38. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  39. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  40. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/login.html +1 -1
  42. package/.next/server/app/login.rsc +2 -2
  43. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  45. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  46. package/.next/server/app/page.js +1 -1
  47. package/.next/server/app/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/pair/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/pair.html +1 -1
  50. package/.next/server/app/pair.rsc +3 -3
  51. package/.next/server/app/pair.segments/_full.segment.rsc +3 -3
  52. package/.next/server/app/pair.segments/_tree.segment.rsc +1 -1
  53. package/.next/server/app/pair.segments/pair/__PAGE__.segment.rsc +3 -3
  54. package/.next/server/app-paths-manifest.json +4 -4
  55. package/.next/server/chunks/244.js +1 -0
  56. package/.next/server/chunks/2676.js +1 -1
  57. package/.next/server/chunks/6480.js +1 -1
  58. package/.next/server/chunks/7226.js +9 -9
  59. package/.next/server/chunks/933.js +1 -1
  60. package/.next/server/middleware-build-manifest.js +1 -1
  61. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  62. package/.next/server/pages/404.html +1 -1
  63. package/.next/server/pages/500.html +1 -1
  64. package/.next/server/server-reference-manifest.json +1 -1
  65. package/.next/static/chunks/4315-f0bee51727fa8bed.js +1 -0
  66. package/.next/static/chunks/{4318.65827559038c9692.js → 4318.9c215a4cb05a3069.js} +3 -3
  67. package/.next/static/chunks/app/{page-bca40f639be6becb.js → page-e7eb05ca875bdff3.js} +1 -1
  68. package/.next/static/chunks/{webpack-b14269412e91a71d.js → webpack-6731a6d88b6564cc.js} +1 -1
  69. package/README.ja.md +1 -1
  70. package/README.ko.md +5 -4
  71. package/README.md +5 -4
  72. package/README.zh-CN.md +1 -1
  73. package/package.json +1 -1
  74. package/.next/server/chunks/1448.js +0 -1
  75. package/.next/static/chunks/4315-dfe6a33b10f1a366.js +0 -1
  76. /package/.next/static/{d7tCWD5FStyLazqHgLBLG → PqMs7GKEACvEL4dphX3Ma}/_buildManifest.js +0 -0
  77. /package/.next/static/{d7tCWD5FStyLazqHgLBLG → PqMs7GKEACvEL4dphX3Ma}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"43035":{"*":{"id":"72421","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"43248","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"31466","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"73786","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"2420","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/pretendard/dist/web/variable/pretendardvariable.css":{"id":16259,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/error.tsx":{"id":87460,"name":"*","chunks":["4315","static/chunks/4315-dfe6a33b10f1a366.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/global-error.tsx":{"id":54690,"name":"*","chunks":["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/LoginForm.tsx":{"id":77397,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/components/AppShell.tsx":{"id":43035,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","1279","static/chunks/1279-86e0a1e8adc2c8b1.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","8974","static/chunks/app/page-bca40f639be6becb.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/RelayPairPanel.tsx":{"id":63944,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/ompgui/ompgui/":[],"/home/runner/work/ompgui/ompgui/app/layout":[{"inlined":false,"path":"static/css/63b622301ba107de.css"}],"/home/runner/work/ompgui/ompgui/app/error":[],"/home/runner/work/ompgui/ompgui/app/global-error":[],"/home/runner/work/ompgui/ompgui/app/page":[]},"rscModuleMapping":{"16259":{"*":{"id":"72265","name":"*","chunks":[],"async":false}},"43035":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"55038","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"59038","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"85034","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"43035":{"*":{"id":"72421","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"43248","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"31466","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"73786","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"2420","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/pretendard/dist/web/variable/pretendardvariable.css":{"id":16259,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/error.tsx":{"id":87460,"name":"*","chunks":["4315","static/chunks/4315-f0bee51727fa8bed.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/global-error.tsx":{"id":54690,"name":"*","chunks":["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/LoginForm.tsx":{"id":77397,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/components/AppShell.tsx":{"id":43035,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","1279","static/chunks/1279-86e0a1e8adc2c8b1.js","4315","static/chunks/4315-f0bee51727fa8bed.js","8974","static/chunks/app/page-e7eb05ca875bdff3.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/RelayPairPanel.tsx":{"id":63944,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/ompgui/ompgui/":[],"/home/runner/work/ompgui/ompgui/app/layout":[{"inlined":false,"path":"static/css/63b622301ba107de.css"}],"/home/runner/work/ompgui/ompgui/app/error":[],"/home/runner/work/ompgui/ompgui/app/global-error":[],"/home/runner/work/ompgui/ompgui/app/page":[]},"rscModuleMapping":{"16259":{"*":{"id":"72265","name":"*","chunks":[],"async":false}},"43035":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"55038","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"59038","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"85034","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/pair/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"43035":{"*":{"id":"72421","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"43248","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"31466","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"73786","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"2420","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/pretendard/dist/web/variable/pretendardvariable.css":{"id":16259,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/error.tsx":{"id":87460,"name":"*","chunks":["4315","static/chunks/4315-dfe6a33b10f1a366.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/global-error.tsx":{"id":54690,"name":"*","chunks":["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/LoginForm.tsx":{"id":77397,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/components/AppShell.tsx":{"id":43035,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","1279","static/chunks/1279-86e0a1e8adc2c8b1.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","8974","static/chunks/app/page-bca40f639be6becb.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/RelayPairPanel.tsx":{"id":63944,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/ompgui/ompgui/":[],"/home/runner/work/ompgui/ompgui/app/layout":[{"inlined":false,"path":"static/css/63b622301ba107de.css"}],"/home/runner/work/ompgui/ompgui/app/error":[],"/home/runner/work/ompgui/ompgui/app/global-error":[],"/home/runner/work/ompgui/ompgui/app/page":[],"/home/runner/work/ompgui/ompgui/app/pair/page":[]},"rscModuleMapping":{"16259":{"*":{"id":"72265","name":"*","chunks":[],"async":false}},"43035":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"55038","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"59038","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"85034","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/pair/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"43035":{"*":{"id":"72421","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"43248","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"31466","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"73786","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"2420","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/node_modules/pretendard/dist/web/variable/pretendardvariable.css":{"id":16259,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-32679237fb27c4d9.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/error.tsx":{"id":87460,"name":"*","chunks":["4315","static/chunks/4315-f0bee51727fa8bed.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"async":false},"/home/runner/work/ompgui/ompgui/app/global-error.tsx":{"id":54690,"name":"*","chunks":["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/LoginForm.tsx":{"id":77397,"name":"*","chunks":[],"async":false},"/home/runner/work/ompgui/ompgui/components/AppShell.tsx":{"id":43035,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","1279","static/chunks/1279-86e0a1e8adc2c8b1.js","4315","static/chunks/4315-f0bee51727fa8bed.js","8974","static/chunks/app/page-e7eb05ca875bdff3.js"],"async":false},"/home/runner/work/ompgui/ompgui/components/RelayPairPanel.tsx":{"id":63944,"name":"*","chunks":["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-f0bee51727fa8bed.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/ompgui/ompgui/":[],"/home/runner/work/ompgui/ompgui/app/layout":[{"inlined":false,"path":"static/css/63b622301ba107de.css"}],"/home/runner/work/ompgui/ompgui/app/error":[],"/home/runner/work/ompgui/ompgui/app/global-error":[],"/home/runner/work/ompgui/ompgui/app/page":[],"/home/runner/work/ompgui/ompgui/app/pair/page":[]},"rscModuleMapping":{"16259":{"*":{"id":"72265","name":"*","chunks":[],"async":false}},"43035":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"54690":{"*":{"id":"55038","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"63944":{"*":{"id":"34644","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"77397":{"*":{"id":"59038","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87460":{"*":{"id":"85034","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/63b622301ba107de.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b14269412e91a71d.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d7cddff008311ab3.js" async=""></script><script src="/_next/static/chunks/main-app-f86cfa9ca4019151.js" async=""></script><script src="/_next/static/chunks/4315-dfe6a33b10f1a366.js" async=""></script><script src="/_next/static/chunks/app/error-a88ca1da88a49a27.js" async=""></script><script src="/_next/static/chunks/app/global-error-0e57c8c5d04fec63.js" async=""></script><script src="/_next/static/chunks/7224-45882082fb768fdb.js" async=""></script><script src="/_next/static/chunks/587-c973123b3c9a5b80.js" async=""></script><script src="/_next/static/chunks/4906-1472d0151646b3d8.js" async=""></script><script src="/_next/static/chunks/app/pair/page-d72423ffc5654e29.js" async=""></script><meta name="theme-color" content="#FAF9F6" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1B1916" media="(prefers-color-scheme: dark)"/><title>ompgui</title><meta name="description" content="Web UI for the oh-my-pi (omp) coding agent"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="ompgui"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico?ed3493dcaff42f9b" type="image/x-icon" sizes="64x64"/><link rel="icon" href="/icon.svg?07757bbd46fb7171" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?63fa7d229f475de6" type="image/png" sizes="180x180"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><script>(function(){try{var r=document.documentElement,k="ompgui-theme",o="omp-theme",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem("ompgui-palette"),d=matchMedia("(prefers-color-scheme: dark)").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v==="light"||v==="dark"||v==="system"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p==="omp"?"omp":"warm";if(t==="dark"||(t!=="light"&&t!=="dark"&&d))r.classList.add("dark")}catch(e){document.documentElement.dataset.palette="warm"}})();</script><script>(function(){try{var k="ompgui-lang",o="omp-lang",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v==="en"||v==="zh-CN"||v==="ja"||v==="ko"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!=="en"&&l!=="zh-CN"&&l!=="ja"&&l!=="ko"){var n=(navigator.language||"").toLowerCase();l=n.indexOf("zh")===0?"zh-CN":n.indexOf("ja")===0?"ja":n.indexOf("ko")===0?"ko":"en"}document.documentElement.lang=l}catch(e){}})();</script><script>(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty("--app-viewport-height",(v?v.height+v.offsetTop:window.innerHeight)+"px")}r.style.setProperty("--app-viewport-height","100dvh");s();if(window.visualViewport){visualViewport.addEventListener("resize",s);visualViewport.addEventListener("scroll",s)}window.addEventListener("resize",s)}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate" style="height:var(--app-viewport-height, 100dvh);display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><main style="flex:1;display:grid;place-items:center;padding:20px;background:var(--bg)"><section style="width:min(100%, 520px);padding:32px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal)"><div style="width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--user-bg);color:var(--accent);margin-bottom:20px"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 lucide-link-2" aria-hidden="true"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg></div><h1 class="display-serif" style="margin:0;font-size:calc(var(--text-xl) + var(--space-5) - var(--space-1));color:var(--text)">Pair a phone</h1><p style="margin:10px 0 24px;color:var(--text-muted);font-size:var(--text-base);line-height:1.5">Create a one-time link for the ompgui Remote app. The phone connects over Tailscale Funnel; this Mac keeps the device token.</p><p style="margin:0 0 16px;color:var(--text-dim);font-size:var(--text-sm);line-height:1.45">Create a pairing link, then scan the QR (or paste the link) in ompgui Remote on your phone.</p><div style="display:grid;gap:14px"><div style="display:flex;flex-direction:column;gap:var(--space-2);min-width:0"><label for="_R_qlubtb_" style="font-size:var(--text-sm);font-weight:500;color:var(--text-muted);letter-spacing:0.01em;display:flex;align-items:center;gap:var(--space-2)">Relay WebSocket URL</label><input id="_R_qlubtb_" placeholder="wss://machine.tailnet.ts.net/relay" autoComplete="off" spellCheck="false" style="padding:var(--space-3) calc(var(--space-4) + var(--space-1) / 2);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);font-size:var(--text-md);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm);font-family:var(--font-mono);opacity:1" value=""/></div><button type="button" style="display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height, 36px);padding:var(--space-3) calc(var(--space-5) + var(--space-1));background:var(--accent-strong);border:none;border-radius:var(--radius-control);color:var(--on-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;opacity:1;outline:none;transition:background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm);touch-action:manipulation;-webkit-tap-highlight-color:transparent">Create pairing link</button><div><h2 style="margin:16px 0 8px;font-size:var(--text-base);color:var(--text)">Paired devices</h2><p style="margin:0;color:var(--text-muted);font-size:var(--text-sm)">No phones are paired yet.</p></div></div></section></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-b14269412e91a71d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[87460,[\"4315\",\"static/chunks/4315-dfe6a33b10f1a366.js\",\"8039\",\"static/chunks/app/error-a88ca1da88a49a27.js\"],\"default\"]\n4:I[74581,[],\"\"]\n9:I[54690,[\"4219\",\"static/chunks/app/global-error-0e57c8c5d04fec63.js\"],\"default\"]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/63b622301ba107de.css\",\"style\"]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"pair\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"pair\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/63b622301ba107de.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement,k=\\\"ompgui-theme\\\",o=\\\"omp-theme\\\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\\\"ompgui-palette\\\"),d=matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\\\"light\\\"||v===\\\"dark\\\"||v===\\\"system\\\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\\\"omp\\\"?\\\"omp\\\":\\\"warm\\\";if(t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026t!==\\\"dark\\\"\u0026\u0026d))r.classList.add(\\\"dark\\\")}catch(e){document.documentElement.dataset.palette=\\\"warm\\\"}})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var k=\\\"ompgui-lang\\\",o=\\\"omp-lang\\\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\\\"en\\\"||v===\\\"zh-CN\\\"||v===\\\"ja\\\"||v===\\\"ko\\\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\\\"en\\\"\u0026\u0026l!==\\\"zh-CN\\\"\u0026\u0026l!==\\\"ja\\\"\u0026\u0026l!==\\\"ko\\\"){var n=(navigator.language||\\\"\\\").toLowerCase();l=n.indexOf(\\\"zh\\\")===0?\\\"zh-CN\\\":n.indexOf(\\\"ja\\\")===0?\\\"ja\\\":n.indexOf(\\\"ko\\\")===0?\\\"ko\\\":\\\"en\\\"}document.documentElement.lang=l}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\\\"--app-viewport-height\\\",(v?v.height+v.offsetTop:window.innerHeight)+\\\"px\\\")}r.style.setProperty(\\\"--app-viewport-height\\\",\\\"100dvh\\\");s();if(window.visualViewport){visualViewport.addEventListener(\\\"resize\\\",s);visualViewport.addEventListener(\\\"scroll\\\",s)}window.addEventListener(\\\"resize\\\",s)}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"style\":{\"height\":\"var(--app-viewport-height, 100dvh)\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":\"$L5\",\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"$L6\",{},null,false,null]},null,false,\"$7\"]},null,false,null],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"d7tCWD5FStyLazqHgLBLG\"}\na:I[63944,[\"7224\",\"static/chunks/7224-45882082fb768fdb.js\",\"587\",\"static/chunks/587-c973123b3c9a5b80.js\",\"4315\",\"static/chunks/4315-dfe6a33b10f1a366.js\",\"4906\",\"static/chunks/4906-1472d0151646b3d8.js\",\"863\",\"static/chunks/app/pair/page-d72423ffc5654e29.js\"],\"RelayPairPanel\"]\nb:I[90484,[],\"OutletBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[90484,[],\"ViewportBoundary\"]\n10:I[90484,[],\"MetadataBoundary\"]\n5:[\"$\",\"$L4\",null,{}]\n6:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$La\",null,{}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@d\"}]}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L11\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n7:C\nf:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#FAF9F6\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1B1916\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n12:I[86869,[],\"IconMark\"]\nd:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"ompgui\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web UI for the oh-my-pi (omp) coding agent\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"ompgui\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?ed3493dcaff42f9b\",\"type\":\"image/x-icon\",\"sizes\":\"64x64\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon.svg?07757bbd46fb7171\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?63fa7d229f475de6\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"10\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/63b622301ba107de.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-6731a6d88b6564cc.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d7cddff008311ab3.js" async=""></script><script src="/_next/static/chunks/main-app-f86cfa9ca4019151.js" async=""></script><script src="/_next/static/chunks/4315-f0bee51727fa8bed.js" async=""></script><script src="/_next/static/chunks/app/error-a88ca1da88a49a27.js" async=""></script><script src="/_next/static/chunks/app/global-error-0e57c8c5d04fec63.js" async=""></script><script src="/_next/static/chunks/7224-45882082fb768fdb.js" async=""></script><script src="/_next/static/chunks/587-c973123b3c9a5b80.js" async=""></script><script src="/_next/static/chunks/4906-1472d0151646b3d8.js" async=""></script><script src="/_next/static/chunks/app/pair/page-d72423ffc5654e29.js" async=""></script><meta name="theme-color" content="#FAF9F6" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1B1916" media="(prefers-color-scheme: dark)"/><title>ompgui</title><meta name="description" content="Web UI for the oh-my-pi (omp) coding agent"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="ompgui"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico?ed3493dcaff42f9b" type="image/x-icon" sizes="64x64"/><link rel="icon" href="/icon.svg?07757bbd46fb7171" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?63fa7d229f475de6" type="image/png" sizes="180x180"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><script>(function(){try{var r=document.documentElement,k="ompgui-theme",o="omp-theme",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem("ompgui-palette"),d=matchMedia("(prefers-color-scheme: dark)").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v==="light"||v==="dark"||v==="system"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p==="omp"?"omp":"warm";if(t==="dark"||(t!=="light"&&t!=="dark"&&d))r.classList.add("dark")}catch(e){document.documentElement.dataset.palette="warm"}})();</script><script>(function(){try{var k="ompgui-lang",o="omp-lang",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v==="en"||v==="zh-CN"||v==="ja"||v==="ko"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!=="en"&&l!=="zh-CN"&&l!=="ja"&&l!=="ko"){var n=(navigator.language||"").toLowerCase();l=n.indexOf("zh")===0?"zh-CN":n.indexOf("ja")===0?"ja":n.indexOf("ko")===0?"ko":"en"}document.documentElement.lang=l}catch(e){}})();</script><script>(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty("--app-viewport-height",(v?v.height+v.offsetTop:window.innerHeight)+"px")}r.style.setProperty("--app-viewport-height","100dvh");s();if(window.visualViewport){visualViewport.addEventListener("resize",s);visualViewport.addEventListener("scroll",s)}window.addEventListener("resize",s)}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate" style="height:var(--app-viewport-height, 100dvh);display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><main style="flex:1;display:grid;place-items:center;padding:20px;background:var(--bg)"><section style="width:min(100%, 520px);padding:32px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal)"><div style="width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--user-bg);color:var(--accent);margin-bottom:20px"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 lucide-link-2" aria-hidden="true"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg></div><h1 class="display-serif" style="margin:0;font-size:calc(var(--text-xl) + var(--space-5) - var(--space-1));color:var(--text)">Pair a phone</h1><p style="margin:10px 0 24px;color:var(--text-muted);font-size:var(--text-base);line-height:1.5">Create a one-time link for the ompgui Remote app. The phone connects over Tailscale Funnel; this Mac keeps the device token.</p><p style="margin:0 0 16px;color:var(--text-dim);font-size:var(--text-sm);line-height:1.45">Create a pairing link, then scan the QR (or paste the link) in ompgui Remote on your phone.</p><div style="display:grid;gap:14px"><div style="display:flex;flex-direction:column;gap:var(--space-2);min-width:0"><label for="_R_qlubtb_" style="font-size:var(--text-sm);font-weight:500;color:var(--text-muted);letter-spacing:0.01em;display:flex;align-items:center;gap:var(--space-2)">Relay WebSocket URL</label><input id="_R_qlubtb_" placeholder="wss://machine.tailnet.ts.net/relay" autoComplete="off" spellCheck="false" style="padding:var(--space-3) calc(var(--space-4) + var(--space-1) / 2);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);font-size:var(--text-md);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm);font-family:var(--font-mono);opacity:1" value=""/></div><button type="button" style="display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height, 36px);padding:var(--space-3) calc(var(--space-5) + var(--space-1));background:var(--accent-strong);border:none;border-radius:var(--radius-control);color:var(--on-accent);font-size:var(--text-base);font-weight:600;cursor:pointer;opacity:1;outline:none;transition:background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm);touch-action:manipulation;-webkit-tap-highlight-color:transparent">Create pairing link</button><div><h2 style="margin:16px 0 8px;font-size:var(--text-base);color:var(--text)">Paired devices</h2><p style="margin:0;color:var(--text-muted);font-size:var(--text-sm)">No phones are paired yet.</p></div></div></section></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-6731a6d88b6564cc.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[87460,[\"4315\",\"static/chunks/4315-f0bee51727fa8bed.js\",\"8039\",\"static/chunks/app/error-a88ca1da88a49a27.js\"],\"default\"]\n4:I[74581,[],\"\"]\n9:I[54690,[\"4219\",\"static/chunks/app/global-error-0e57c8c5d04fec63.js\"],\"default\"]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/63b622301ba107de.css\",\"style\"]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"pair\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"pair\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/63b622301ba107de.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement,k=\\\"ompgui-theme\\\",o=\\\"omp-theme\\\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\\\"ompgui-palette\\\"),d=matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\\\"light\\\"||v===\\\"dark\\\"||v===\\\"system\\\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\\\"omp\\\"?\\\"omp\\\":\\\"warm\\\";if(t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026t!==\\\"dark\\\"\u0026\u0026d))r.classList.add(\\\"dark\\\")}catch(e){document.documentElement.dataset.palette=\\\"warm\\\"}})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var k=\\\"ompgui-lang\\\",o=\\\"omp-lang\\\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\\\"en\\\"||v===\\\"zh-CN\\\"||v===\\\"ja\\\"||v===\\\"ko\\\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\\\"en\\\"\u0026\u0026l!==\\\"zh-CN\\\"\u0026\u0026l!==\\\"ja\\\"\u0026\u0026l!==\\\"ko\\\"){var n=(navigator.language||\\\"\\\").toLowerCase();l=n.indexOf(\\\"zh\\\")===0?\\\"zh-CN\\\":n.indexOf(\\\"ja\\\")===0?\\\"ja\\\":n.indexOf(\\\"ko\\\")===0?\\\"ko\\\":\\\"en\\\"}document.documentElement.lang=l}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\\\"--app-viewport-height\\\",(v?v.height+v.offsetTop:window.innerHeight)+\\\"px\\\")}r.style.setProperty(\\\"--app-viewport-height\\\",\\\"100dvh\\\");s();if(window.visualViewport){visualViewport.addEventListener(\\\"resize\\\",s);visualViewport.addEventListener(\\\"scroll\\\",s)}window.addEventListener(\\\"resize\\\",s)}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"style\":{\"height\":\"var(--app-viewport-height, 100dvh)\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":\"$L5\",\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"$L6\",{},null,false,null]},null,false,\"$7\"]},null,false,null],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"PqMs7GKEACvEL4dphX3Ma\"}\na:I[63944,[\"7224\",\"static/chunks/7224-45882082fb768fdb.js\",\"587\",\"static/chunks/587-c973123b3c9a5b80.js\",\"4315\",\"static/chunks/4315-f0bee51727fa8bed.js\",\"4906\",\"static/chunks/4906-1472d0151646b3d8.js\",\"863\",\"static/chunks/app/pair/page-d72423ffc5654e29.js\"],\"RelayPairPanel\"]\nb:I[90484,[],\"OutletBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[90484,[],\"ViewportBoundary\"]\n10:I[90484,[],\"MetadataBoundary\"]\n5:[\"$\",\"$L4\",null,{}]\n6:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$La\",null,{}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@d\"}]}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L11\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n7:C\nf:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#FAF9F6\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1B1916\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n12:I[86869,[],\"IconMark\"]\nd:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"ompgui\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web UI for the oh-my-pi (omp) coding agent\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"ompgui\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?ed3493dcaff42f9b\",\"type\":\"image/x-icon\",\"sizes\":\"64x64\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon.svg?07757bbd46fb7171\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?63fa7d229f475de6\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"10\",{}]]\n"])</script></body></html>
@@ -1,14 +1,14 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[57121,[],""]
3
- 3:I[87460,["4315","static/chunks/4315-dfe6a33b10f1a366.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
3
+ 3:I[87460,["4315","static/chunks/4315-f0bee51727fa8bed.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
4
4
  4:I[74581,[],""]
5
5
  9:I[54690,["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"default"]
6
6
  :HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
7
7
  :HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
8
8
  :HL["/_next/static/css/63b622301ba107de.css","style"]
9
9
  7:X
10
- 0:{"P":null,"c":["","pair"],"q":"","i":false,"f":[[["",{"children":["pair",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],["$","body",null,{"translate":"no","className":"notranslate","style":{"height":"var(--app-viewport-height, 100dvh)","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$3","errorStyles":[],"errorScripts":null,"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":"$L5","templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["$L6",{},null,false,null]},null,false,"$7"]},null,false,null],"$L8",false]],"m":"$undefined","G":["$9",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d7tCWD5FStyLazqHgLBLG"}
11
- a:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
10
+ 0:{"P":null,"c":["","pair"],"q":"","i":false,"f":[[["",{"children":["pair",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],["$","body",null,{"translate":"no","className":"notranslate","style":{"height":"var(--app-viewport-height, 100dvh)","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$3","errorStyles":[],"errorScripts":null,"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":"$L5","templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["$L6",{},null,false,null]},null,false,"$7"]},null,false,null],"$L8",false]],"m":"$undefined","G":["$9",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"PqMs7GKEACvEL4dphX3Ma"}
11
+ a:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-f0bee51727fa8bed.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
12
12
  b:I[90484,[],"OutletBoundary"]
13
13
  c:"$Sreact.suspense"
14
14
  e:I[90484,[],"ViewportBoundary"]
@@ -1,14 +1,14 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[57121,[],""]
3
- 3:I[87460,["4315","static/chunks/4315-dfe6a33b10f1a366.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
3
+ 3:I[87460,["4315","static/chunks/4315-f0bee51727fa8bed.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
4
4
  4:I[74581,[],""]
5
5
  9:I[54690,["4219","static/chunks/app/global-error-0e57c8c5d04fec63.js"],"default"]
6
6
  :HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
7
7
  :HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
8
8
  :HL["/_next/static/css/63b622301ba107de.css","style"]
9
9
  7:X
10
- 0:{"P":null,"c":["","pair"],"q":"","i":false,"f":[[["",{"children":["pair",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],["$","body",null,{"translate":"no","className":"notranslate","style":{"height":"var(--app-viewport-height, 100dvh)","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$3","errorStyles":[],"errorScripts":null,"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":"$L5","templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["$L6",{},null,false,null]},null,false,"$7"]},null,false,null],"$L8",false]],"m":"$undefined","G":["$9",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d7tCWD5FStyLazqHgLBLG"}
11
- a:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
10
+ 0:{"P":null,"c":["","pair"],"q":"","i":false,"f":[[["",{"children":["pair",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],["$","body",null,{"translate":"no","className":"notranslate","style":{"height":"var(--app-viewport-height, 100dvh)","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$3","errorStyles":[],"errorScripts":null,"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":"$L5","templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["$L6",{},null,false,null]},null,false,"$7"]},null,false,null],"$L8",false]],"m":"$undefined","G":["$9",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"PqMs7GKEACvEL4dphX3Ma"}
11
+ a:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-f0bee51727fa8bed.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
12
12
  b:I[90484,[],"OutletBoundary"]
13
13
  c:"$Sreact.suspense"
14
14
  e:I[90484,[],"ViewportBoundary"]
@@ -1,4 +1,4 @@
1
1
  :HL["/_next/static/media/7deddc85b7ffd1dc-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
2
2
  :HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
3
3
  :HL["/_next/static/css/63b622301ba107de.css","style"]
4
- 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"pair","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"d7tCWD5FStyLazqHgLBLG"}
4
+ 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"pair","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"PqMs7GKEACvEL4dphX3Ma"}
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-dfe6a33b10f1a366.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
2
+ 2:I[63944,["7224","static/chunks/7224-45882082fb768fdb.js","587","static/chunks/587-c973123b3c9a5b80.js","4315","static/chunks/4315-f0bee51727fa8bed.js","4906","static/chunks/4906-1472d0151646b3d8.js","863","static/chunks/app/pair/page-d72423ffc5654e29.js"],"RelayPairPanel"]
3
3
  3:I[90484,[],"OutletBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  8:I[90484,[],"ViewportBoundary"]
@@ -11,8 +11,8 @@ d:I[74581,[],""]
11
11
  7:X
12
12
  f:X
13
13
  f:C
14
- 0:{"buildId":"d7tCWD5FStyLazqHgLBLG","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":"$@6","staleTime":"$7","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$L8",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#FAF9F6","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#1B1916","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ompgui"}],["$","meta","1",{"name":"description","content":"Web UI for the oh-my-pi (omp) coding agent"}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","meta","3",{"name":"format-detection","content":"telephone=no"}],["$","meta","4",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","5",{"name":"apple-mobile-web-app-title","content":"ompgui"}],["$","meta","6",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","7",{"rel":"icon","href":"/favicon.ico?ed3493dcaff42f9b","type":"image/x-icon","sizes":"64x64"}],["$","link","8",{"rel":"icon","href":"/icon.svg?07757bbd46fb7171","type":"image/svg+xml","sizes":"any"}],["$","link","9",{"rel":"apple-touch-icon","href":"/apple-icon.png?63fa7d229f475de6","type":"image/png","sizes":"180x180"}],["$","$La","10",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@b","staleTime":"$7","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lc",null,{"parallelRouterKey":"children","template":["$","$Ld",null,{}]}]]}],"isPartial":"$@e","staleTime":"$7","varyParams":"$f"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],"$L10"]}]]}],"isPartial":"$@11","staleTime":"$7","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@12","rootVaryParams":null,"needsRuntimeRequest":"$@13"}
15
- 14:I[87460,["4315","static/chunks/4315-dfe6a33b10f1a366.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
14
+ 0:{"buildId":"PqMs7GKEACvEL4dphX3Ma","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":"$@6","staleTime":"$7","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$L8",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#FAF9F6","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#1B1916","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ompgui"}],["$","meta","1",{"name":"description","content":"Web UI for the oh-my-pi (omp) coding agent"}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","meta","3",{"name":"format-detection","content":"telephone=no"}],["$","meta","4",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","5",{"name":"apple-mobile-web-app-title","content":"ompgui"}],["$","meta","6",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","7",{"rel":"icon","href":"/favicon.ico?ed3493dcaff42f9b","type":"image/x-icon","sizes":"64x64"}],["$","link","8",{"rel":"icon","href":"/icon.svg?07757bbd46fb7171","type":"image/svg+xml","sizes":"any"}],["$","link","9",{"rel":"apple-touch-icon","href":"/apple-icon.png?63fa7d229f475de6","type":"image/png","sizes":"180x180"}],["$","$La","10",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@b","staleTime":"$7","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lc",null,{"parallelRouterKey":"children","template":["$","$Ld",null,{}]}]]}],"isPartial":"$@e","staleTime":"$7","varyParams":"$f"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/63b622301ba107de.css","precedence":"next"}]],["$","html",null,{"lang":"en","translate":"no","className":"__variable_66b8ca notranslate","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"google","content":"notranslate"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement,k=\"ompgui-theme\",o=\"omp-theme\",t=localStorage.getItem(k),v=localStorage.getItem(o),p=localStorage.getItem(\"ompgui-palette\"),d=matchMedia(\"(prefers-color-scheme: dark)\").matches;if(t!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"light\"||v===\"dark\"||v===\"system\"){t=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}r.dataset.palette=p===\"omp\"?\"omp\":\"warm\";if(t===\"dark\"||(t!==\"light\"&&t!==\"dark\"&&d))r.classList.add(\"dark\")}catch(e){document.documentElement.dataset.palette=\"warm\"}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var k=\"ompgui-lang\",o=\"omp-lang\",l=localStorage.getItem(k),v=localStorage.getItem(o);if(l!==null){if(v!==null)try{localStorage.removeItem(o)}catch(e){}}else if(v!==null){if(v===\"en\"||v===\"zh-CN\"||v===\"ja\"||v===\"ko\"){l=v;try{localStorage.setItem(k,v);localStorage.removeItem(o)}catch(e){}}else try{localStorage.removeItem(o)}catch(e){}}if(l!==\"en\"&&l!==\"zh-CN\"&&l!==\"ja\"&&l!==\"ko\"){var n=(navigator.language||\"\").toLowerCase();l=n.indexOf(\"zh\")===0?\"zh-CN\":n.indexOf(\"ja\")===0?\"ja\":n.indexOf(\"ko\")===0?\"ko\":\"en\"}document.documentElement.lang=l}catch(e){}})();"}}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var r=document.documentElement;function s(){var v=window.visualViewport;r.style.setProperty(\"--app-viewport-height\",(v?v.height+v.offsetTop:window.innerHeight)+\"px\")}r.style.setProperty(\"--app-viewport-height\",\"100dvh\");s();if(window.visualViewport){visualViewport.addEventListener(\"resize\",s);visualViewport.addEventListener(\"scroll\",s)}window.addEventListener(\"resize\",s)}catch(e){}})();"}}]]}],"$L10"]}]]}],"isPartial":"$@11","staleTime":"$7","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@12","rootVaryParams":null,"needsRuntimeRequest":"$@13"}
15
+ 14:I[87460,["4315","static/chunks/4315-f0bee51727fa8bed.js","8039","static/chunks/app/error-a88ca1da88a49a27.js"],"default"]
16
16
  5:null
17
17
  10:["$","body",null,{"translate":"no","className":"notranslate","style":{"height":"var(--app-viewport-height, 100dvh)","display":"flex","flexDirection":"column"},"children":["$","$Lc",null,{"parallelRouterKey":"children","error":"$14","errorStyles":[],"errorScripts":null,"template":["$","$Ld",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]
18
18
  7:300
@@ -28,12 +28,12 @@
28
28
  "/favicon.ico/route": "app/favicon.ico/route.js",
29
29
  "/icon.svg/route": "app/icon.svg/route.js",
30
30
  "/manifest.webmanifest/route": "app/manifest.webmanifest/route.js",
31
+ "/api/agent/running/events/route": "app/api/agent/running/events/route.js",
31
32
  "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
32
33
  "/api/agent/new/route": "app/api/agent/new/route.js",
33
- "/api/agent/running/events/route": "app/api/agent/running/events/route.js",
34
- "/api/agents/[name]/route": "app/api/agents/[name]/route.js",
35
34
  "/api/agents/route": "app/api/agents/route.js",
36
35
  "/api/agents/unpack/route": "app/api/agents/unpack/route.js",
36
+ "/api/agents/[name]/route": "app/api/agents/[name]/route.js",
37
37
  "/api/app-update/route": "app/api/app-update/route.js",
38
38
  "/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
39
39
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
@@ -47,9 +47,9 @@
47
47
  "/api/mcp/route": "app/api/mcp/route.js",
48
48
  "/api/models-config/test/route": "app/api/models-config/test/route.js",
49
49
  "/api/models-config/route": "app/api/models-config/route.js",
50
- "/api/omp-settings/route": "app/api/omp-settings/route.js",
51
50
  "/api/omp-update/route": "app/api/omp-update/route.js",
52
51
  "/api/omp-version/route": "app/api/omp-version/route.js",
52
+ "/api/omp-settings/route": "app/api/omp-settings/route.js",
53
53
  "/api/models/route": "app/api/models/route.js",
54
54
  "/api/relay/devices/[id]/route": "app/api/relay/devices/[id]/route.js",
55
55
  "/api/relay/devices/route": "app/api/relay/devices/route.js",
@@ -64,8 +64,8 @@
64
64
  "/api/skills/install/route": "app/api/skills/install/route.js",
65
65
  "/api/skills/route": "app/api/skills/route.js",
66
66
  "/api/usage/route": "app/api/usage/route.js",
67
- "/api/skills/update/route": "app/api/skills/update/route.js",
68
67
  "/api/skills/search/route": "app/api/skills/search/route.js",
68
+ "/api/skills/update/route": "app/api/skills/update/route.js",
69
69
  "/relay/route": "app/relay/route.js",
70
70
  "/login/page": "app/login/page.js",
71
71
  "/page": "app/page.js",
@@ -0,0 +1 @@
1
+ "use strict";exports.id=244,exports.ids=[244],exports.modules={58112:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(55511),e=c(29021);function f(a,b){let c=`${a}.tmp-${(0,d.randomUUID)()}`,f=(0,e.openSync)(c,"wx",384);try{try{(0,e.writeFileSync)(f,b,"utf8")}finally{(0,e.closeSync)(f)}(0,e.renameSync)(c,a)}finally{try{(0,e.unlinkSync)(c)}catch(a){if(!(a instanceof Error&&"code"in a&&"ENOENT"===a.code))throw a}}}},80244:(a,b,c)=>{c.d(b,{Cc:()=>k,F3:()=>t,IX:()=>B,Iy:()=>u,Jz:()=>o,V6:()=>x,YM:()=>j,hH:()=>w,kx:()=>p,v7:()=>A});var d=c(29021),e=c(33873),f=c(58112),g=c(63294),h=c(85887),i=c(20565);let j="models_config_invalid";class k extends Error{constructor(a){const b=a.length>0?a:[{path:"",message:"Invalid models configuration"}];super(b.map(a=>a.path?`${a.path} ${a.message}`:a.message).join("; ")),this.code=j,this.name="ModelsConfigValidationError",this.issues=b}}function l(a,b,c){a.push({path:b,message:c})}function m(a){if("string"!=typeof a||""===a.trim())return!1;try{let b=new URL(a);return("http:"===b.protocol||"https:"===b.protocol)&&b.hostname.length>0}catch{return!1}}function n(a,b,c){(!(0,i.u4)(a)||Object.values(a).some(a=>"string"!=typeof a))&&l(c,b,"must map header names to strings")}function o(a){let b=[];if(!(0,i.u4)(a))throw new k([{path:"",message:"must be an object"}]);let c=v(a).providers,d=void 0===c?{}:c;if((0,i.u4)(d))for(let[a,c]of Object.entries(d)){let d=`providers.${a}`;if(!(0,i.u4)(c)){l(b,d,"must be an object");continue}if(void 0===c.baseUrl||m(c.baseUrl)||l(b,`${d}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==c.api&&("string"!=typeof c.api||""===c.api.trim())&&l(b,`${d}.api`,"must be a non-empty API identifier"),void 0!==c.auth&&"none"!==c.auth&&"apiKey"!==c.auth&&"oauth"!==c.auth&&l(b,`${d}.auth`,"must be one of apiKey, none, or oauth"),void 0!==c.apiKey&&"string"!=typeof c.apiKey&&l(b,`${d}.apiKey`,"must be a string"),void 0!==c.headers&&n(c.headers,`${d}.headers`,b),void 0!==c.models&&!Array.isArray(c.models)){l(b,`${d}.models`,"must be an array");continue}let e=Array.isArray(c.models)?c.models:[],f=new Map;for(let[a,g]of(e.length>0&&(("string"!=typeof c.baseUrl||""===c.baseUrl.trim())&&l(b,`${d}.baseUrl`,"is required when defining custom models"),"apiKey"===(c.auth??"apiKey")&&("string"!=typeof c.apiKey||""===c.apiKey.trim())&&l(b,`${d}.apiKey`,"is required when defining custom models unless auth is none or oauth")),e.entries())){let e=`${d}.models[${a}]`;if(!(0,i.u4)(g)){l(b,e,"must be an object");continue}if("string"!=typeof g.id||""===g.id.trim())l(b,`${e}.id`,"is required");else{let c=f.get(g.id);void 0!==c?l(b,`${e}.id`,`duplicates the model id at index ${c}`):f.set(g.id,a)}for(let a of(void 0===g.baseUrl||m(g.baseUrl)||l(b,`${e}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==g.api&&("string"!=typeof g.api||""===g.api.trim())&&l(b,`${e}.api`,"must be a non-empty API identifier"),("string"!=typeof c.api||""===c.api.trim())&&("string"!=typeof g.api||""===g.api.trim())&&l(b,`${e}.api`,"must be specified at provider or model level"),["contextWindow","maxTokens"]))void 0!==g[a]&&("number"!=typeof g[a]||!Number.isFinite(g[a])||g[a]<=0)&&l(b,`${e}.${a}`,"must be a positive finite number");if(void 0!==g.headers&&n(g.headers,`${e}.headers`,b),void 0!==g.cost)if((0,i.u4)(g.cost))for(let a of["input","output","cacheRead","cacheWrite"]){let c=g.cost[a];void 0===c?l(b,`${e}.cost.${a}`,"is required (cost needs input, output, cacheRead, and cacheWrite)"):("number"!=typeof c||!Number.isFinite(c)||c<0)&&l(b,`${e}.cost.${a}`,"must be a finite non-negative number")}else l(b,`${e}.cost`,"must be an object")}}else l(b,"providers","must be an object");if(b.length>0)throw new k(b)}function p(a){let b={...a,providers:{}};for(let[c,d]of Object.entries(a.providers??{})){if(!(0,i.u4)(d)){b.providers[c]=d;continue}let a={...d},e="string"==typeof d.apiKey&&d.apiKey.length>0,f=(0,i.u4)(d.headers)&&Object.keys(d.headers).length>0;delete a.apiKey,delete a.headers,a.originalName=c,Array.isArray(d.models)&&(a.models=d.models.map(a=>{if(!(0,i.u4)(a))return a;let b={...a};return delete b.headers,"string"==typeof a.id?b.originalId=a.id:delete b.originalId,b})),a.apiKeyConfigured=e,a.headersConfigured=f,b.providers[c]=a}return b}function q(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function r(a){if(!(0,i.u4)(a))return a;let b={...a};return delete b.originalId,b}function s(a){if(!(0,i.u4)(a))return a;let b={...a};return delete b.originalName,delete b.apiKeyConfigured,delete b.headersConfigured,Array.isArray(b.models)&&(b.models=b.models.map(r)),b}function t(a,b,c){if("full"!==c&&"partial"!==c)throw new k([{path:"mode",message:"must be full or partial"}]);let d="full"===c?{...b,providers:{}}:{...a,...b,providers:{}},e=(0,i.u4)(a.providers)?a.providers:{},f=q(b,"providers"),g=f?b.providers:void 0;if(f&&!(0,i.u4)(g))return d.providers=g,d;if(!f&&"partial"===c)return d.providers=Object.fromEntries(Object.entries(e).map(([a,b])=>[a,s(b)])),(0,i.u4)(a.providers)||(d.providers=a.providers),d;let h=(0,i.u4)(g)?Object.entries(g):[],j=[],m=[],n=new Map;for(let[a,b]of h){let d,f=`providers.${a}`;if((0,i.u4)(b)&&q(b,"originalName")){let a=b.originalName;"string"!=typeof a?l(j,`${f}.originalName`,"must be a string identifying an existing provider"):q(e,a)?d=a:l(j,`${f}.originalName`,"must identify a provider in the current configuration")}else q(e,a)&&(d=a);if(void 0!==d){let b=n.get(d);void 0!==b?l(j,`${f}.originalName`,`duplicates the provider identity used by providers.${b}`):n.set(d,a),"partial"===c&&d!==a&&q(e,a)&&l(j,f,"rename conflicts with an existing provider; choose an unused name")}m.push({targetName:a,incoming:b,sourceName:d,previous:void 0!==d&&(0,i.u4)(e[d])?e[d]:void 0})}let o="partial"===c?Object.fromEntries(Object.entries(e).map(([a,b])=>[a,s(b)])):{};for(let{targetName:a,incoming:b,sourceName:d,previous:e}of m){if(!(0,i.u4)(b)){"partial"===c&&void 0!==d&&d!==a&&delete o[d],o[a]=b;continue}"partial"===c&&void 0!==d&&d!==a&&delete o[d];let f=e?s(e):{},g={..."partial"===c?f:{},...b};q(b,"apiKey")&&void 0!==b.apiKey?null===b.apiKey?delete g.apiKey:g.apiKey=b.apiKey:e&&q(e,"apiKey")?g.apiKey=e.apiKey:delete g.apiKey,q(b,"headers")&&void 0!==b.headers?null===b.headers?delete g.headers:g.headers=b.headers:e&&q(e,"headers")?g.headers=e.headers:delete g.headers,Array.isArray(b.models)?g.models=function(a,b,c,d,e){let f=Array.isArray(a)?a:[],g=new Map,h=new Set;for(let a of f)(0,i.u4)(a)&&"string"==typeof a.id&&(h.has(a.id)||(g.has(a.id)?(g.delete(a.id),h.add(a.id)):g.set(a.id,a)));let j=new Map,k=new Map;return b.map((a,b)=>{let f,m=`${d}[${b}]`;if(!(0,i.u4)(a))return a;if(q(a,"originalId")){let b=a.originalId;"string"!=typeof b?l(e,`${m}.originalId`,"must be a string identifying an existing model"):h.has(b)?l(e,`${m}.originalId`,"must identify exactly one existing model"):g.has(b)?f=b:l(e,`${m}.originalId`,"must identify an existing model in the current configuration")}else"string"==typeof a.id&&(h.has(a.id)?l(e,`${m}.id`,"matches multiple existing models; supply originalId"):g.has(a.id)&&(f=a.id));let n=void 0===f?void 0:g.get(f);if(void 0!==f){let c=j.get(f);void 0!==c?l(e,q(a,"originalId")?`${m}.originalId`:`${m}.id`,`duplicates the existing model identified at index ${c}`):j.set(f,b)}let o={..."partial"===c&&n?r(n):{},...a};if(delete o.originalId,q(a,"headers")&&void 0!==a.headers?null===a.headers?delete o.headers:o.headers=a.headers:n&&q(n,"headers")?o.headers=n.headers:void 0===o.headers&&delete o.headers,"string"==typeof o.id){let a=k.get(o.id);void 0!==a?l(e,`${m}.id`,`duplicates the model id at index ${a}`):k.set(o.id,b)}return o})}(e?.models,b.models,c,`providers.${a}.models`,j):"full"!==c||q(b,"models")&&void 0!==b.models?"partial"===c&&q(b,"models")&&void 0===b.models&&(e&&q(e,"models")?g.models=f.models:delete g.models):delete g.models,o[a]=s(g)}if(j.length>0)throw new k(j);return d.providers=o,d}class u extends Error{constructor(a,b){super(`${a} is not valid YAML: ${b}`),this.name="ModelsConfigParseError",this.path=a,this.detail=b}}function v(a){if(!(0,i.u4)(a.providers))return a;let b=Object.fromEntries(Object.entries(a.providers).map(([a,b])=>{if(!(0,i.u4)(b)||!Array.isArray(b.models))return[a,b];let c=b.models.filter(a=>!(0,i.u4)(a)||"string"!=typeof a.id||a.id.trim().length>0);return[a,{...b,models:c}]}));return{...a,providers:b}}function w(){let a,b=(0,h.OK)();if(!(0,d.existsSync)(b))return{path:b,exists:!1,config:{providers:{}}};try{a=(0,d.readFileSync)(b,"utf8")}catch(a){return{path:b,exists:!0,config:{providers:{}},parseError:String(a)}}let c=(0,g.Tp)(a);if(c.errors.length>0)return{path:b,exists:!0,source:a,config:{providers:{}},parseError:c.errors[0].message};let e=c.toJS();return null==e?{path:b,exists:!0,source:a,config:{providers:{}}}:(0,i.u4)(e)?{path:b,exists:!0,source:a,config:v(e)}:{path:b,exists:!0,source:a,config:{providers:{}},parseError:"the top level of models.yml must be a mapping"}}function x(){return w().config}function y(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function z(a){return(0,g.jn)(a)&&("string"==typeof a.value||"number"==typeof a.value)?String(a.value):"string"==typeof a?a:void 0}function A(a,b){if(void 0===b||""===b.trim())return(0,g.As)(a);let c=(0,g.Tp)(b);return c.errors.length>0?(0,g.As)(a):((0,g.jh)(c.contents)?!function a(b,c,d){if((0,g.jh)(c)&&y(d)){let e=new Map(Object.entries(d).filter(([,a])=>void 0!==a));for(let[d,f]of(c.items=c.items.filter(a=>{let b=z(a.key);return void 0===b||e.has(b)}),e)){let e=c.items.find(a=>z(a.key)===d);e?e.value=a(b,e.value,f):c.set(b.createNode(d),b.createNode(f))}return c}if((0,g.oP)(c)&&Array.isArray(d)){let e=[...c.items],f=new Map;for(let a of e){let b=function(a){if(!(0,g.jh)(a))return;let b=a.get("id");return"string"==typeof b?b:void 0}(a);void 0===b||f.has(b)||f.set(b,a)}return c.items=d.map((c,d)=>{let g,h=y(c)&&"string"==typeof c.id?c.id:void 0;return void 0!==h?void 0!==(g=f.get(h))&&f.delete(h):g=e[d],a(b,g,c)}),c}if((0,g.jn)(c)&&!y(d)&&!Array.isArray(d)&&typeof c.value==typeof d)return c.value=d,c;let e=b.createNode(d);return c&&e&&"object"==typeof c&&"object"==typeof e&&(null!=c.comment&&(e.comment=c.comment),null!=c.commentBefore&&(e.commentBefore=c.commentBefore),c.spaceBefore&&(e.spaceBefore=c.spaceBefore)),e}(c,c.contents,a):c.contents=c.createNode(a),c.toString())}function B(a,b={}){let c=w();if(c.parseError&&!b.overwriteUnparseable)throw new u(c.path,c.parseError);let g=A(v(a),c.parseError?void 0:c.source),h=(0,e.dirname)(c.path);(0,d.existsSync)(h)||(0,d.mkdirSync)(h,{recursive:!0}),(0,f.D)(c.path,g)}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2676,exports.ids=[1671,2676],exports.modules={51671:(a,b,c)=>{c.d(b,{YT:()=>r,eG:()=>t,getOmpVersion:()=>s,nH:()=>u,resolveOmpBin:()=>q});var d=c(79646),e=c(29021),f=c(21820),g=c(33873);let h=null,i=0,j=null,k=null,l=0,m=null,n="win32"===process.platform?"omp.exe":"omp",o=/\x1B\[[0-9;]*m/g;function p(a){try{let b=(0,e.statSync)(a),c=`${b.ino}:${b.size}:${b.mtimeMs}:${b.ctimeMs}`,d=(0,e.lstatSync)(a);return d.isSymbolicLink()&&(c+=`:${d.ino}:${d.mtimeMs}:${d.ctimeMs}`),c}catch{return null}}function q(){if(h&&(0,e.existsSync)(h))return h;if(h&&!(0,e.existsSync)(h)&&(h=null,j=null,k=null),Date.now()-i<3e4)return null;let a=function(){let a=process.env.OMPGUI_OMP_BIN??process.env.OMP_WEB_OMP_BIN;if(a)return(0,e.existsSync)(a)?a:null;for(let a of(process.env.PATH??"").split(g.delimiter)){if(!a)continue;let b=(0,g.join)(a,n);if((0,e.existsSync)(b))return b}for(let a of["/opt/homebrew/bin","/usr/local/bin",(0,g.join)((0,f.homedir)(),".bun","bin"),(0,g.join)((0,f.homedir)(),".local","bin")]){let b=(0,g.join)(a,n);if((0,e.existsSync)(b))return b}return null}();return a?(h=a,i=0,a):(i=Date.now(),null)}function r(){h=null,i=0,j=null,k=null,l=0,m=null}async function s(){let a=q();if(!a)return Date.now()-l<3e4||(l=Date.now()),null;let b=p(a);return j&&b&&k===b?j:!j&&Date.now()-l<3e4?null:m||(m=(async()=>{try{let c=(await new Promise((b,c)=>{(0,d.execFile)(a,["--version"],{timeout:1e4,windowsHide:!0},(a,d)=>{a?c(a):b(d)})})).trim();if(c){let d=p(a);return j=c,k=d??b,l=0,c}}catch{}finally{m=null}return l=Date.now(),null})())}function t(a,b={}){let c=q();if(!c)return Promise.reject(Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN."));let{promise:e,resolve:f,reject:g}=Promise.withResolvers();return(0,d.execFile)(c,a,{cwd:b.cwd,timeout:b.timeout??6e4,maxBuffer:b.maxBuffer??0x1000000,env:{...b.env??process.env,FORCE_COLOR:"0",NO_COLOR:"1"},windowsHide:!0},(b,c,d)=>{b?g(Error((d||c||b.message).replace(o,"").trim().slice(-600)||`omp ${a.join(" ")} failed`)):f({stdout:c,stderr:d})}),e}function u(a){let b=a.replace(o,""),c=b.search(/[{[]/);if(c<0)return null;try{return JSON.parse(b.slice(c))}catch{return null}}},52676:(a,b,c)=>{c.d(b,{_:()=>j,j:()=>g,runUtilityCommand:()=>i});var d=c(21820),e=c(80803);let f=["--no-session","--no-skills","--no-lsp"];function g(){let a=globalThis.__ompUtilityRpcState;if(!a)return;a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null);let b=a.proc;a.proc=null,b&&b.dispose()}async function h(a){let b=new e.X({cwd:(0,d.homedir)(),extraArgs:f,onExit:()=>{a.proc===b&&(a.proc=null)}});try{let a=await b.waitReady(6e4);await b.negotiateProtocol(a)}catch(a){throw b.dispose(),a}return b}function i(a,b=6e4){let c=function(){if(!globalThis.__ompUtilityRpcState){globalThis.__ompUtilityRpcState={proc:null,idleTimer:null,queue:Promise.resolve()};let a=()=>g();process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompUtilityRpcState}(),d=c.queue.then(async()=>{c.idleTimer&&(clearTimeout(c.idleTimer),c.idleTimer=null);try{return c.proc&&c.proc.isAlive||(c.proc=await h(c)),await c.proc.sendCommand(a,b)}finally{c.idleTimer&&clearTimeout(c.idleTimer),c.idleTimer=setTimeout(()=>{c.idleTimer=null;let a=c.proc;c.proc=null,a&&a.dispose()},3e5),c.idleTimer.unref?.()}});return c.queue=d.then(()=>void 0,()=>void 0),d}async function j(a,b={}){let c=new e.X({cwd:b.cwd??(0,d.homedir)(),extraArgs:f,env:b.env});try{let d=await c.waitReady(6e4);return await c.negotiateProtocol(d),await c.sendCommand(a,b.timeoutMs??6e4)}finally{await c.dispose()}}},80803:(a,b,c)=>{c.d(b,{x:()=>j,X:()=>k});var d=c(79646),e=c(4984),f=c(51671),g=c(28672);function h(a){return"number"==typeof a&&Number.isSafeInteger(a)}class i{push(a){if(!(0,g.u4)(a)||"rpc_chunk"!==a.type){if(this.pending)throw Error("RPC chunk sequence interrupted");if(!(0,g.u4)(a)||"string"!=typeof a.type)throw Error("RPC frame must be an object");return a}let{chunkId:b,index:c,count:d,byteLength:e}=a;if("string"!=typeof b||0===b.length||b.length>128||!h(c)||!h(d)||!h(e)||c<0||d<2||d>Math.ceil(256)||c>=d||e<1048576||e>0x4000000)throw Error("invalid RPC chunk metadata");let f=function(a){if("string"!=typeof a||0===a.length||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a))throw Error("invalid RPC chunk data");let b=Buffer.from(a,"base64");if(b.toString("base64")!==a)throw Error("invalid RPC chunk data");return b}(a.data);if(f.byteLength>262144)throw Error("RPC chunk payload exceeds the transport limit");if(!this.pending){if(0!==c)throw Error("RPC chunk sequence must start at index 0");this.pending={chunkId:b,count:d,byteLength:e,nextIndex:0,chunks:[],receivedBytes:0}}let i=this.pending;if(i.chunkId!==b||i.count!==d||i.byteLength!==e||i.nextIndex!==c)throw Error("RPC chunk sequence mismatch");if(i.chunks.push(f),i.receivedBytes+=f.byteLength,i.nextIndex++,i.receivedBytes>i.byteLength)throw Error("RPC chunk sequence exceeds declared length");if(i.nextIndex<i.count)return;if(i.receivedBytes!==i.byteLength)throw Error("RPC chunk sequence length mismatch");this.pending=void 0;let j=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(Buffer.concat(i.chunks)));if(!(0,g.u4)(j)||"string"!=typeof j.type)throw Error("RPC frame must be an object");return j}}class j extends Error{constructor(a,b,c){super(b),this.name="RpcCommandError",this.command=a,this.code=c}}class k{constructor(a){let b,c;this.pending=new Map,this.frameListeners=new Set,this.nextId=1,this.stderrTail="",this.exited=!1,this.exitInfo=null,this.protocolVersion=1,this.exit=Promise.withResolvers(),this.disposePromise=null,this.writeQueue=Promise.resolve();const g=a.dependencies?.resolveOmpBin??f.resolveOmpBin;this.spawnProcess=a.dependencies?.spawn??d.spawn,this.killProcess=a.dependencies?.kill??process.kill;const h=g();if(!h)throw Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN.");this.cwd=a.cwd,a.onFrame&&this.frameListeners.add(a.onFrame);const j=["--mode","rpc-ui","--cwd",a.cwd,...a.extraArgs??[]];this.child=this.spawnProcess(h,j,{cwd:a.cwd,env:function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}({...process.env,...a.env}),stdio:["pipe","pipe","pipe"],windowsHide:!0,detached:"win32"!==process.platform}),this.readyPromise=new Promise((a,d)=>{b=a,c=d}),this.readyPromise.catch(()=>{}),this.child.stdin.on("error",()=>{}),this.child.stdout.on("error",()=>{});const k=new i,l=(0,e.createInterface)({input:this.child.stdout});l.on("error",()=>{}),l.on("line",a=>{let c,d,e=a.trim();if(e){try{c=JSON.parse(e)}catch{return}try{if(c&&"object"==typeof c&&"rpc_chunk"===c.type&&2!==this.protocolVersion)throw Error("RPC chunk received before protocol negotiation");let a=k.push(c);if(!a)return;d=a}catch(a){this.stderrTail=(this.stderrTail+`
1
+ "use strict";exports.id=2676,exports.ids=[1671,2676],exports.modules={51671:(a,b,c)=>{c.d(b,{YT:()=>r,eG:()=>t,getOmpVersion:()=>s,nH:()=>u,resolveOmpBin:()=>q});var d=c(79646),e=c(29021),f=c(21820),g=c(33873);let h=null,i=0,j=null,k=null,l=0,m=null,n="win32"===process.platform?"omp.exe":"omp",o=/\x1B\[[0-9;]*m/g;function p(a){try{let b=(0,e.statSync)(a),c=`${b.ino}:${b.size}:${b.mtimeMs}:${b.ctimeMs}`,d=(0,e.lstatSync)(a);return d.isSymbolicLink()&&(c+=`:${d.ino}:${d.mtimeMs}:${d.ctimeMs}`),c}catch{return null}}function q(){if(h&&(0,e.existsSync)(h))return h;if(h&&!(0,e.existsSync)(h)&&(h=null,j=null,k=null),Date.now()-i<3e4)return null;let a=function(){let a=process.env.OMPGUI_OMP_BIN??process.env.OMP_WEB_OMP_BIN;if(a)return(0,e.existsSync)(a)?a:null;for(let a of(process.env.PATH??"").split(g.delimiter)){if(!a)continue;let b=(0,g.join)(a,n);if((0,e.existsSync)(b))return b}for(let a of["/opt/homebrew/bin","/usr/local/bin",(0,g.join)((0,f.homedir)(),".bun","bin"),(0,g.join)((0,f.homedir)(),".local","bin")]){let b=(0,g.join)(a,n);if((0,e.existsSync)(b))return b}return null}();return a?(h=a,i=0,a):(i=Date.now(),null)}function r(){h=null,i=0,j=null,k=null,l=0,m=null}async function s(){let a=q();if(!a)return Date.now()-l<3e4||(l=Date.now()),null;let b=p(a);return j&&b&&k===b?j:!j&&Date.now()-l<3e4?null:m||(m=(async()=>{try{let c=(await new Promise((b,c)=>{(0,d.execFile)(a,["--version"],{timeout:1e4,windowsHide:!0},(a,d)=>{a?c(a):b(d)})})).trim();if(c){let d=p(a);return j=c,k=d??b,l=0,c}}catch{}finally{m=null}return l=Date.now(),null})())}function t(a,b={}){let c=q();if(!c)return Promise.reject(Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN."));let{promise:e,resolve:f,reject:g}=Promise.withResolvers();return(0,d.execFile)(c,a,{cwd:b.cwd,timeout:b.timeout??6e4,maxBuffer:b.maxBuffer??0x1000000,env:{...b.env??process.env,FORCE_COLOR:"0",NO_COLOR:"1"},windowsHide:!0},(b,c,d)=>{b?g(Error((d||c||b.message).replace(o,"").trim().slice(-600)||`omp ${a.join(" ")} failed`)):f({stdout:c,stderr:d})}),e}function u(a){let b=a.replace(o,""),c=b.search(/[{[]/);if(c<0)return null;try{return JSON.parse(b.slice(c))}catch{return null}}},52676:(a,b,c)=>{c.d(b,{j:()=>g,runUtilityCommand:()=>i});var d=c(21820),e=c(80803);let f=["--no-session","--no-skills","--no-lsp"];function g(){let a=globalThis.__ompUtilityRpcState;if(!a)return;a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null);let b=a.proc;a.proc=null,b&&b.dispose()}async function h(a){let b=new e.X({cwd:(0,d.homedir)(),extraArgs:f,onExit:()=>{a.proc===b&&(a.proc=null)}});try{let a=await b.waitReady(6e4);await b.negotiateProtocol(a)}catch(a){throw b.dispose(),a}return b}function i(a,b=6e4){let c=function(){if(!globalThis.__ompUtilityRpcState){globalThis.__ompUtilityRpcState={proc:null,idleTimer:null,queue:Promise.resolve()};let a=()=>g();process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompUtilityRpcState}(),d=c.queue.then(async()=>{c.idleTimer&&(clearTimeout(c.idleTimer),c.idleTimer=null);try{return c.proc&&c.proc.isAlive||(c.proc=await h(c)),await c.proc.sendCommand(a,b)}finally{c.idleTimer&&clearTimeout(c.idleTimer),c.idleTimer=setTimeout(()=>{c.idleTimer=null;let a=c.proc;c.proc=null,a&&a.dispose()},3e5),c.idleTimer.unref?.()}});return c.queue=d.then(()=>void 0,()=>void 0),d}},80803:(a,b,c)=>{c.d(b,{x:()=>j,X:()=>k});var d=c(79646),e=c(4984),f=c(51671),g=c(28672);function h(a){return"number"==typeof a&&Number.isSafeInteger(a)}class i{push(a){if(!(0,g.u4)(a)||"rpc_chunk"!==a.type){if(this.pending)throw Error("RPC chunk sequence interrupted");if(!(0,g.u4)(a)||"string"!=typeof a.type)throw Error("RPC frame must be an object");return a}let{chunkId:b,index:c,count:d,byteLength:e}=a;if("string"!=typeof b||0===b.length||b.length>128||!h(c)||!h(d)||!h(e)||c<0||d<2||d>Math.ceil(256)||c>=d||e<1048576||e>0x4000000)throw Error("invalid RPC chunk metadata");let f=function(a){if("string"!=typeof a||0===a.length||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a))throw Error("invalid RPC chunk data");let b=Buffer.from(a,"base64");if(b.toString("base64")!==a)throw Error("invalid RPC chunk data");return b}(a.data);if(f.byteLength>262144)throw Error("RPC chunk payload exceeds the transport limit");if(!this.pending){if(0!==c)throw Error("RPC chunk sequence must start at index 0");this.pending={chunkId:b,count:d,byteLength:e,nextIndex:0,chunks:[],receivedBytes:0}}let i=this.pending;if(i.chunkId!==b||i.count!==d||i.byteLength!==e||i.nextIndex!==c)throw Error("RPC chunk sequence mismatch");if(i.chunks.push(f),i.receivedBytes+=f.byteLength,i.nextIndex++,i.receivedBytes>i.byteLength)throw Error("RPC chunk sequence exceeds declared length");if(i.nextIndex<i.count)return;if(i.receivedBytes!==i.byteLength)throw Error("RPC chunk sequence length mismatch");this.pending=void 0;let j=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(Buffer.concat(i.chunks)));if(!(0,g.u4)(j)||"string"!=typeof j.type)throw Error("RPC frame must be an object");return j}}class j extends Error{constructor(a,b,c){super(b),this.name="RpcCommandError",this.command=a,this.code=c}}class k{constructor(a){let b,c;this.pending=new Map,this.frameListeners=new Set,this.nextId=1,this.stderrTail="",this.exited=!1,this.exitInfo=null,this.protocolVersion=1,this.exit=Promise.withResolvers(),this.disposePromise=null,this.writeQueue=Promise.resolve();const g=a.dependencies?.resolveOmpBin??f.resolveOmpBin;this.spawnProcess=a.dependencies?.spawn??d.spawn,this.killProcess=a.dependencies?.kill??process.kill;const h=g();if(!h)throw Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN.");this.cwd=a.cwd,a.onFrame&&this.frameListeners.add(a.onFrame);const j=["--mode","rpc-ui","--cwd",a.cwd,...a.extraArgs??[]];this.child=this.spawnProcess(h,j,{cwd:a.cwd,env:function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}({...process.env,...a.env}),stdio:["pipe","pipe","pipe"],windowsHide:!0,detached:"win32"!==process.platform}),this.readyPromise=new Promise((a,d)=>{b=a,c=d}),this.readyPromise.catch(()=>{}),this.child.stdin.on("error",()=>{}),this.child.stdout.on("error",()=>{});const k=new i,l=(0,e.createInterface)({input:this.child.stdout});l.on("error",()=>{}),l.on("line",a=>{let c,d,e=a.trim();if(e){try{c=JSON.parse(e)}catch{return}try{if(c&&"object"==typeof c&&"rpc_chunk"===c.type&&2!==this.protocolVersion)throw Error("RPC chunk received before protocol negotiation");let a=k.push(c);if(!a)return;d=a}catch(a){this.stderrTail=(this.stderrTail+`
2
2
  RPC protocol error: ${a instanceof Error?a.message:String(a)}`).slice(-8192),this.dispose(0);return}if("ready"===d.type)return void b(d);if("response"===d.type)return void this.handleResponse(d);for(let a of this.frameListeners)try{a(d)}catch{}}}),this.child.stderr.on("data",a=>{this.stderrTail=(this.stderrTail+a.toString("utf8")).slice(-8192)});const m=(b,d)=>{if(this.exited)return;this.exited=!0,this.exitInfo={code:b,signal:d};let e=Error(`omp exited (code ${b??"null"}, signal ${d??"none"})${this.stderrTail?`: ${this.stderrTail.slice(-500)}`:""}`);for(let[,a]of(c(e),this.pending))a.timer&&clearTimeout(a.timer),a.reject(e);this.pending.clear(),this.exit.resolve(),a.onExit?.({code:b,signal:d,stderrTail:this.stderrTail})};this.child.on("exit",(a,b)=>{if(!this.exited&&"win32"!==process.platform&&this.child.pid)try{this.killProcess(-this.child.pid,"SIGKILL")}catch{}m(a,b)}),this.child.on("error",a=>{this.stderrTail=(this.stderrTail+`
3
3
  spawn error: ${a.message}`).slice(-8192),m(null,null)})}get isAlive(){return!this.exited}get exitDetails(){return this.exitInfo?{...this.exitInfo,stderrTail:this.stderrTail}:null}waitReady(a=6e4){let b=new Promise((b,c)=>{let d=setTimeout(()=>c(Error(`omp RPC ready timeout after ${a}ms`)),a);d.unref?.(),this.readyPromise.finally(()=>clearTimeout(d)).catch(()=>{})});return Promise.race([this.readyPromise,b])}async negotiateProtocol(a){if(!(Array.isArray(a.supportedProtocolVersions)?a.supportedProtocolVersions:[]).includes(2))return this.protocolVersion;let b=await this.sendCommand({type:"negotiate_protocol",protocolVersion:2});if(b?.protocolVersion!==2)throw Error("OMP rejected RPC protocol v2 negotiation");return this.protocolVersion=2,this.protocolVersion}onFrame(a){return this.frameListeners.add(a),()=>this.frameListeners.delete(a)}sendCommand(a,b){if(this.exited)return Promise.reject(Error("omp RPC process has exited"));let c=`w${this.nextId++}`;return new Promise((d,e)=>{let f={command:a.type,resolve:d,reject:e};b&&b>0&&(f.timer=setTimeout(()=>{this.pending.get(c)===f&&(this.pending.delete(c),e(Error(`RPC command ${a.type} timed out after ${b}ms`)))},b),f.timer.unref?.()),this.pending.set(c,f),this.writeFrame({...a,id:c},a=>{if(a){let b=this.pending.get(c);b&&(this.pending.delete(c),b.timer&&clearTimeout(b.timer),e(a))}})})}sendFrame(a){this.exited||this.writeFrame(a,()=>{})}writeFrame(a,b){this.writeQueue=this.writeQueue.then(()=>{let{promise:c,resolve:d}=Promise.withResolvers(),e=a=>{b(a),d()};if(this.exited||this.child.stdin.destroyed)return e(Error("RPC process is not running")),c;try{this.child.stdin.write(`${JSON.stringify(a)}
4
4
  `,e)}catch(a){e(a instanceof Error?a:Error(String(a)))}return c})}handleResponse(a){let b=a.id,c=b?this.pending.get(b):void 0;if(!c||!b){for(let b of this.frameListeners)try{b(a)}catch{}return}this.pending.delete(b),c.timer&&clearTimeout(c.timer),a.success?c.resolve(a.data):c.reject(new j(a.command,a.error??"RPC command failed",a.code))}dispose(a=5e3){if(this.disposePromise)return this.disposePromise;if(this.exited)return this.exit.promise;this.disposePromise=this.exit.promise.then(()=>{clearTimeout(c),clearTimeout(d)});try{this.child.stdin.end()}catch{}let b=(a,b)=>{let c=this.child.pid;if(c){if("win32"===process.platform){let d=["/pid",String(c),"/t",...a?["/f"]:[]];this.spawnProcess("taskkill",d,{windowsHide:!0,stdio:"ignore"}).once("error",()=>{if(!this.exited)try{this.child.kill(b)}catch{}});return}try{this.killProcess(-c,b)}catch{try{this.child.kill(b)}catch{}}}},c=setTimeout(()=>{this.exited||b(!1,"SIGTERM")},a),d=setTimeout(()=>{this.exited||b(!0,"SIGKILL")},2*a);return c.unref?.(),d.unref?.(),this.disposePromise}}}};