codebay 0.2.0 → 0.2.1

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 (42) hide show
  1. package/.mochi/manifest.json +122 -118
  2. package/.mochi/svelte-client/HydratableIsland-wrq79y0w.js +1 -0
  3. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-7xgbmxxg.js +2 -0
  4. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-3cnbjpz2.js +13 -0
  5. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-2ntmdm3e.js +1 -0
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-t08spym1.js +23 -0
  7. package/.mochi/svelte-client/chunk-04qv4w6w.js +2 -0
  8. package/.mochi/svelte-client/chunk-5jnepvzx.js +2 -0
  9. package/.mochi/svelte-client/chunk-hcztrd75.js +1 -0
  10. package/.mochi/svelte-client/{chunk-kgn1b2t1.js → chunk-qxwt25hn.js} +1 -1
  11. package/.mochi/svelte-client/chunk-sjmcgh7f.js +2 -0
  12. package/.mochi/svelte-client/{chunk-x843txjc.js → chunk-tr67wtwn.js} +2 -2
  13. package/.mochi/svelte-compile/{App-8k1gyxdc.server.js → App-f0q5n4rk.server.js} +3 -2
  14. package/.mochi/svelte-compile/{Avatars-f7c6rp96.server.js → Avatars-p8gfef7x.server.js} +35 -54
  15. package/.mochi/svelte-compile/{Instance-yvps12zg.server.js → Instance-atjwsczx.server.js} +3 -2
  16. package/.mochi/svelte-compile/{Settings-jwg3httb.server.js → Settings-q88xw6h8.server.js} +9 -5
  17. package/.mochi/svelte-compile/{chunk-dqgstte4.js → chunk-btmcxhqy.js} +7 -1
  18. package/.mochi/svelte-css/SettingsView-1nfdwnm16cpp2.css +1 -0
  19. package/README.md +1 -0
  20. package/package.json +1 -1
  21. package/src/avatars/name-prompts.ts +30 -0
  22. package/src/components/AvatarEditor.svelte +3 -27
  23. package/src/components/AvatarsView.svelte +3 -1
  24. package/src/components/InstanceView.svelte +4 -2
  25. package/src/components/PortsBox.svelte +3 -2
  26. package/src/components/SettingsView.svelte +11 -1
  27. package/src/lib/config.server.ts +18 -0
  28. package/src/lib/devcontainer.server.ts +10 -2
  29. package/src/lib/links.ts +9 -0
  30. package/src/pages/Avatars.svelte +3 -1
  31. package/src/pages/Settings.svelte +4 -1
  32. package/src/routes.ts +9 -5
  33. package/.mochi/svelte-client/HydratableIsland-ps09gjy2.js +0 -1
  34. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js +0 -2
  35. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js +0 -13
  36. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js +0 -1
  37. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js +0 -23
  38. package/.mochi/svelte-client/chunk-jx5cekhh.js +0 -2
  39. package/.mochi/svelte-client/chunk-k3my1snp.js +0 -2
  40. package/.mochi/svelte-client/chunk-ry7q5zk5.js +0 -1
  41. package/.mochi/svelte-client/chunk-zjcg8kw5.js +0 -2
  42. package/.mochi/svelte-css/SettingsView-3bbkzsvnrth3v.css +0 -1
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "version": 2,
3
3
  "assetPrefix": "/_mochi",
4
- "bootstrapUrl": "/_mochi/client/HydratableIsland-ps09gjy2.js",
4
+ "bootstrapUrl": "/_mochi/client/HydratableIsland-wrq79y0w.js",
5
5
  "componentEntryUrls": {
6
- "AppShell_2rtnxn6pgp2rh": "/_mochi/client/_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js",
7
- "InstanceView_2ma45l9bybfhl": "/_mochi/client/_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js",
8
- "AvatarsView_257s9yq1wwr4f": "/_mochi/client/_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js",
9
- "SettingsView_8hmarwmf8onq": "/_mochi/client/_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js"
6
+ "AppShell_2rtnxn6pgp2rh": "/_mochi/client/_hydrate-AppShell_2rtnxn6pgp2rh-7xgbmxxg.js",
7
+ "InstanceView_2ma45l9bybfhl": "/_mochi/client/_hydrate-InstanceView_2ma45l9bybfhl-2ntmdm3e.js",
8
+ "AvatarsView_257s9yq1wwr4f": "/_mochi/client/_hydrate-AvatarsView_257s9yq1wwr4f-3cnbjpz2.js",
9
+ "SettingsView_8hmarwmf8onq": "/_mochi/client/_hydrate-SettingsView_8hmarwmf8onq-t08spym1.js"
10
10
  },
11
11
  "cssFileUrls": {
12
12
  "$mochi/templates/DefaultError.svelte": "/_mochi/css/DefaultError-2b0daamydxgb2.css",
@@ -15,34 +15,34 @@
15
15
  "src/components/AppShell.svelte": "/_mochi/css/AppShell-36mpg5smnbmuw.css",
16
16
  "src/components/InstanceView.svelte": "/_mochi/css/InstanceView-wq85bxtusont.css",
17
17
  "src/components/AvatarsView.svelte": "/_mochi/css/AvatarsView-3hq37u4dgtljn.css",
18
- "src/components/SettingsView.svelte": "/_mochi/css/SettingsView-3bbkzsvnrth3v.css",
18
+ "src/components/SettingsView.svelte": "/_mochi/css/SettingsView-1nfdwnm16cpp2.css",
19
19
  "src/components/IdeBar.svelte": "/_mochi/css/IdeBar-2qoqi2ya9zdn3.css",
20
- "node_modules/svelte-french-toast/dist/components/CheckmarkIcon.svelte": "/_mochi/css/CheckmarkIcon-3qlazj2oc50jc.css",
21
- "src/components/DashboardView.svelte": "/_mochi/css/DashboardView-1cy4xpqhja9sx.css",
22
20
  "src/components/IdeLoader.svelte": "/_mochi/css/IdeLoader-26rlko8e00j3g.css",
21
+ "src/components/DashboardView.svelte": "/_mochi/css/DashboardView-1cy4xpqhja9sx.css",
22
+ "node_modules/svelte-french-toast/dist/components/CheckmarkIcon.svelte": "/_mochi/css/CheckmarkIcon-3qlazj2oc50jc.css",
23
23
  "node_modules/svelte-french-toast/dist/components/ToastIcon.svelte": "/_mochi/css/ToastIcon-2z5wrkc95khg0.css",
24
- "src/components/HealthBox.svelte": "/_mochi/css/HealthBox-er2her0jukwl.css",
25
- "src/components/Skeleton.svelte": "/_mochi/css/Skeleton-8k69usiju43h.css",
26
- "node_modules/svelte-french-toast/dist/components/ToastBar.svelte": "/_mochi/css/ToastBar-3havgkmtofntq.css",
27
- "node_modules/svelte-french-toast/dist/components/ErrorIcon.svelte": "/_mochi/css/ErrorIcon-2x0tzsqxskw28.css",
28
24
  "node_modules/svelte-french-toast/dist/components/LoaderIcon.svelte": "/_mochi/css/LoaderIcon-soq5wt3p05ye.css",
25
+ "node_modules/svelte-french-toast/dist/components/ErrorIcon.svelte": "/_mochi/css/ErrorIcon-2x0tzsqxskw28.css",
29
26
  "node_modules/svelte-french-toast/dist/components/Toaster.svelte": "/_mochi/css/Toaster-kk60j193854n.css",
27
+ "node_modules/svelte-french-toast/dist/components/ToastBar.svelte": "/_mochi/css/ToastBar-3havgkmtofntq.css",
28
+ "src/components/Skeleton.svelte": "/_mochi/css/Skeleton-8k69usiju43h.css",
29
+ "src/components/HealthBox.svelte": "/_mochi/css/HealthBox-er2her0jukwl.css",
30
30
  "src/components/StatusBadge.svelte": "/_mochi/css/StatusBadge-3mq0j7z6aq4j.css",
31
- "src/components/AppBar.svelte": "/_mochi/css/AppBar-3bxinv4pabv8l.css",
32
- "src/components/AvatarEditor.svelte": "/_mochi/css/AvatarEditor-1ryrs1md5g36y.css",
33
31
  "src/components/Avatar.svelte": "/_mochi/css/Avatar-24th63awm9mna.css",
32
+ "src/components/AvatarEditor.svelte": "/_mochi/css/AvatarEditor-1ryrs1md5g36y.css",
33
+ "src/components/AppBar.svelte": "/_mochi/css/AppBar-3bxinv4pabv8l.css",
34
34
  "src/components/CoinButton.svelte": "/_mochi/css/CoinButton-1rej3sh3tkjud.css",
35
35
  "src/components/Button.svelte": "/_mochi/css/Button-2vtbrzb5kgu25.css",
36
36
  "src/components/ThemePicker.svelte": "/_mochi/css/ThemePicker-1ir8jyocm8mvi.css",
37
37
  "src/components/TopBar.svelte": "/_mochi/css/TopBar-2q87li6yt8ids.css",
38
- "node_modules/svelte-french-toast/dist/components/ToastMessage.svelte": "/_mochi/css/ToastMessage-2jfwb2og2lfa8.css",
39
- "node_modules/svelte-french-toast/dist/components/ToastWrapper.svelte": "/_mochi/css/ToastWrapper-1fbnym10rm2nv.css",
40
38
  "src/components/InstanceCard.svelte": "/_mochi/css/InstanceCard-16f77aysm7lgp.css",
41
39
  "src/components/FolderBrowser.svelte": "/_mochi/css/FolderBrowser-1x428zb3f2kti.css",
40
+ "node_modules/svelte-french-toast/dist/components/ToastWrapper.svelte": "/_mochi/css/ToastWrapper-1fbnym10rm2nv.css",
41
+ "node_modules/svelte-french-toast/dist/components/ToastMessage.svelte": "/_mochi/css/ToastMessage-2jfwb2og2lfa8.css",
42
42
  "src/components/Brand.svelte": "/_mochi/css/Brand-1la7zw5uhcbl4.css",
43
- "src/components/BranchBox.svelte": "/_mochi/css/BranchBox-1yqu1q2mgnjwz.css",
44
43
  "src/components/SettingsCog.svelte": "/_mochi/css/SettingsCog-jftyadvo64qo.css",
45
44
  "src/components/CredMenu.svelte": "/_mochi/css/CredMenu-9hwgeptp7crb.css",
45
+ "src/components/BranchBox.svelte": "/_mochi/css/BranchBox-1yqu1q2mgnjwz.css",
46
46
  "src/components/PortsBox.svelte": "/_mochi/css/PortsBox-1t25b5yg7jva3.css"
47
47
  },
48
48
  "clientFiles": {
@@ -52,48 +52,48 @@
52
52
  "/_mochi/css/AppShell-36mpg5smnbmuw.css": "svelte-css/AppShell-36mpg5smnbmuw.css",
53
53
  "/_mochi/css/InstanceView-wq85bxtusont.css": "svelte-css/InstanceView-wq85bxtusont.css",
54
54
  "/_mochi/css/AvatarsView-3hq37u4dgtljn.css": "svelte-css/AvatarsView-3hq37u4dgtljn.css",
55
- "/_mochi/css/SettingsView-3bbkzsvnrth3v.css": "svelte-css/SettingsView-3bbkzsvnrth3v.css",
55
+ "/_mochi/css/SettingsView-1nfdwnm16cpp2.css": "svelte-css/SettingsView-1nfdwnm16cpp2.css",
56
56
  "/_mochi/css/IdeBar-2qoqi2ya9zdn3.css": "svelte-css/IdeBar-2qoqi2ya9zdn3.css",
57
- "/_mochi/css/CheckmarkIcon-3qlazj2oc50jc.css": "svelte-css/CheckmarkIcon-3qlazj2oc50jc.css",
58
- "/_mochi/css/DashboardView-1cy4xpqhja9sx.css": "svelte-css/DashboardView-1cy4xpqhja9sx.css",
59
57
  "/_mochi/css/IdeLoader-26rlko8e00j3g.css": "svelte-css/IdeLoader-26rlko8e00j3g.css",
58
+ "/_mochi/css/DashboardView-1cy4xpqhja9sx.css": "svelte-css/DashboardView-1cy4xpqhja9sx.css",
59
+ "/_mochi/css/CheckmarkIcon-3qlazj2oc50jc.css": "svelte-css/CheckmarkIcon-3qlazj2oc50jc.css",
60
60
  "/_mochi/css/ToastIcon-2z5wrkc95khg0.css": "svelte-css/ToastIcon-2z5wrkc95khg0.css",
61
- "/_mochi/css/HealthBox-er2her0jukwl.css": "svelte-css/HealthBox-er2her0jukwl.css",
62
- "/_mochi/css/Skeleton-8k69usiju43h.css": "svelte-css/Skeleton-8k69usiju43h.css",
63
- "/_mochi/css/ToastBar-3havgkmtofntq.css": "svelte-css/ToastBar-3havgkmtofntq.css",
64
- "/_mochi/css/ErrorIcon-2x0tzsqxskw28.css": "svelte-css/ErrorIcon-2x0tzsqxskw28.css",
65
61
  "/_mochi/css/LoaderIcon-soq5wt3p05ye.css": "svelte-css/LoaderIcon-soq5wt3p05ye.css",
62
+ "/_mochi/css/ErrorIcon-2x0tzsqxskw28.css": "svelte-css/ErrorIcon-2x0tzsqxskw28.css",
66
63
  "/_mochi/css/Toaster-kk60j193854n.css": "svelte-css/Toaster-kk60j193854n.css",
64
+ "/_mochi/css/ToastBar-3havgkmtofntq.css": "svelte-css/ToastBar-3havgkmtofntq.css",
65
+ "/_mochi/css/Skeleton-8k69usiju43h.css": "svelte-css/Skeleton-8k69usiju43h.css",
66
+ "/_mochi/css/HealthBox-er2her0jukwl.css": "svelte-css/HealthBox-er2her0jukwl.css",
67
67
  "/_mochi/css/StatusBadge-3mq0j7z6aq4j.css": "svelte-css/StatusBadge-3mq0j7z6aq4j.css",
68
- "/_mochi/css/AppBar-3bxinv4pabv8l.css": "svelte-css/AppBar-3bxinv4pabv8l.css",
69
- "/_mochi/css/AvatarEditor-1ryrs1md5g36y.css": "svelte-css/AvatarEditor-1ryrs1md5g36y.css",
70
68
  "/_mochi/css/Avatar-24th63awm9mna.css": "svelte-css/Avatar-24th63awm9mna.css",
69
+ "/_mochi/css/AvatarEditor-1ryrs1md5g36y.css": "svelte-css/AvatarEditor-1ryrs1md5g36y.css",
70
+ "/_mochi/css/AppBar-3bxinv4pabv8l.css": "svelte-css/AppBar-3bxinv4pabv8l.css",
71
71
  "/_mochi/css/CoinButton-1rej3sh3tkjud.css": "svelte-css/CoinButton-1rej3sh3tkjud.css",
72
72
  "/_mochi/css/Button-2vtbrzb5kgu25.css": "svelte-css/Button-2vtbrzb5kgu25.css",
73
73
  "/_mochi/css/ThemePicker-1ir8jyocm8mvi.css": "svelte-css/ThemePicker-1ir8jyocm8mvi.css",
74
74
  "/_mochi/css/TopBar-2q87li6yt8ids.css": "svelte-css/TopBar-2q87li6yt8ids.css",
75
- "/_mochi/css/ToastMessage-2jfwb2og2lfa8.css": "svelte-css/ToastMessage-2jfwb2og2lfa8.css",
76
- "/_mochi/css/ToastWrapper-1fbnym10rm2nv.css": "svelte-css/ToastWrapper-1fbnym10rm2nv.css",
77
75
  "/_mochi/css/InstanceCard-16f77aysm7lgp.css": "svelte-css/InstanceCard-16f77aysm7lgp.css",
78
76
  "/_mochi/css/FolderBrowser-1x428zb3f2kti.css": "svelte-css/FolderBrowser-1x428zb3f2kti.css",
77
+ "/_mochi/css/ToastWrapper-1fbnym10rm2nv.css": "svelte-css/ToastWrapper-1fbnym10rm2nv.css",
78
+ "/_mochi/css/ToastMessage-2jfwb2og2lfa8.css": "svelte-css/ToastMessage-2jfwb2og2lfa8.css",
79
79
  "/_mochi/css/Brand-1la7zw5uhcbl4.css": "svelte-css/Brand-1la7zw5uhcbl4.css",
80
- "/_mochi/css/BranchBox-1yqu1q2mgnjwz.css": "svelte-css/BranchBox-1yqu1q2mgnjwz.css",
81
80
  "/_mochi/css/SettingsCog-jftyadvo64qo.css": "svelte-css/SettingsCog-jftyadvo64qo.css",
82
81
  "/_mochi/css/CredMenu-9hwgeptp7crb.css": "svelte-css/CredMenu-9hwgeptp7crb.css",
82
+ "/_mochi/css/BranchBox-1yqu1q2mgnjwz.css": "svelte-css/BranchBox-1yqu1q2mgnjwz.css",
83
83
  "/_mochi/css/PortsBox-1t25b5yg7jva3.css": "svelte-css/PortsBox-1t25b5yg7jva3.css",
84
84
  "/_mochi/import-css/index-0nwv3654.css": "import-css/index-0nwv3654.css",
85
85
  "/_mochi/import-css/index-xndx4980.css": "import-css/index-xndx4980.css",
86
- "/_mochi/client/HydratableIsland-ps09gjy2.js": "svelte-client/HydratableIsland-ps09gjy2.js",
87
- "/_mochi/client/chunk-k3my1snp.js": "svelte-client/chunk-k3my1snp.js",
88
- "/_mochi/client/chunk-x843txjc.js": "svelte-client/chunk-x843txjc.js",
89
- "/_mochi/client/chunk-ry7q5zk5.js": "svelte-client/chunk-ry7q5zk5.js",
90
- "/_mochi/client/chunk-jx5cekhh.js": "svelte-client/chunk-jx5cekhh.js",
91
- "/_mochi/client/chunk-zjcg8kw5.js": "svelte-client/chunk-zjcg8kw5.js",
92
- "/_mochi/client/chunk-kgn1b2t1.js": "svelte-client/chunk-kgn1b2t1.js",
93
- "/_mochi/client/_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js": "svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js",
94
- "/_mochi/client/_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js": "svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js",
95
- "/_mochi/client/_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js": "svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js",
96
- "/_mochi/client/_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js": "svelte-client/_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js"
86
+ "/_mochi/client/HydratableIsland-wrq79y0w.js": "svelte-client/HydratableIsland-wrq79y0w.js",
87
+ "/_mochi/client/chunk-5jnepvzx.js": "svelte-client/chunk-5jnepvzx.js",
88
+ "/_mochi/client/chunk-tr67wtwn.js": "svelte-client/chunk-tr67wtwn.js",
89
+ "/_mochi/client/chunk-hcztrd75.js": "svelte-client/chunk-hcztrd75.js",
90
+ "/_mochi/client/chunk-sjmcgh7f.js": "svelte-client/chunk-sjmcgh7f.js",
91
+ "/_mochi/client/chunk-04qv4w6w.js": "svelte-client/chunk-04qv4w6w.js",
92
+ "/_mochi/client/chunk-qxwt25hn.js": "svelte-client/chunk-qxwt25hn.js",
93
+ "/_mochi/client/_hydrate-AppShell_2rtnxn6pgp2rh-7xgbmxxg.js": "svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-7xgbmxxg.js",
94
+ "/_mochi/client/_hydrate-InstanceView_2ma45l9bybfhl-2ntmdm3e.js": "svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-2ntmdm3e.js",
95
+ "/_mochi/client/_hydrate-AvatarsView_257s9yq1wwr4f-3cnbjpz2.js": "svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-3cnbjpz2.js",
96
+ "/_mochi/client/_hydrate-SettingsView_8hmarwmf8onq-t08spym1.js": "svelte-client/_hydrate-SettingsView_8hmarwmf8onq-t08spym1.js"
97
97
  },
98
98
  "components": {
99
99
  "$mochi/templates/DefaultError.svelte": {
@@ -112,7 +112,7 @@
112
112
  ]
113
113
  },
114
114
  "src/pages/App.svelte": {
115
- "ssrModule": "svelte-compile/App-8k1gyxdc.server.js",
115
+ "ssrModule": "svelte-compile/App-f0q5n4rk.server.js",
116
116
  "hydratables": [
117
117
  {
118
118
  "name": "AppShell_2rtnxn6pgp2rh",
@@ -149,7 +149,7 @@
149
149
  ]
150
150
  },
151
151
  "src/pages/Instance.svelte": {
152
- "ssrModule": "svelte-compile/Instance-yvps12zg.server.js",
152
+ "ssrModule": "svelte-compile/Instance-atjwsczx.server.js",
153
153
  "hydratables": [
154
154
  {
155
155
  "name": "InstanceView_2ma45l9bybfhl",
@@ -166,7 +166,7 @@
166
166
  ]
167
167
  },
168
168
  "src/pages/Avatars.svelte": {
169
- "ssrModule": "svelte-compile/Avatars-f7c6rp96.server.js",
169
+ "ssrModule": "svelte-compile/Avatars-p8gfef7x.server.js",
170
170
  "hydratables": [
171
171
  {
172
172
  "name": "AvatarsView_257s9yq1wwr4f",
@@ -192,7 +192,7 @@
192
192
  ]
193
193
  },
194
194
  "src/pages/Settings.svelte": {
195
- "ssrModule": "svelte-compile/Settings-jwg3httb.server.js",
195
+ "ssrModule": "svelte-compile/Settings-q88xw6h8.server.js",
196
196
  "hydratables": [
197
197
  {
198
198
  "name": "SettingsView_8hmarwmf8onq",
@@ -222,8 +222,8 @@
222
222
  "stats": {
223
223
  "outputs": [
224
224
  {
225
- "name": "chunk-kgn1b2t1.js",
226
- "size": 73334,
225
+ "name": "chunk-qxwt25hn.js",
226
+ "size": 73335,
227
227
  "inputs": [
228
228
  {
229
229
  "path": "node_modules/svelte/src/internal/client/reactivity/batch.js",
@@ -693,8 +693,8 @@
693
693
  "imports": []
694
694
  },
695
695
  {
696
- "name": "_hydrate-AppShell_2rtnxn6pgp2rh-62w5zwww.js",
697
- "size": 36675,
696
+ "name": "_hydrate-AppShell_2rtnxn6pgp2rh-7xgbmxxg.js",
697
+ "size": 36664,
698
698
  "inputs": [
699
699
  {
700
700
  "path": "src/components/FolderBrowser.svelte",
@@ -746,7 +746,7 @@
746
746
  },
747
747
  {
748
748
  "path": "src/components/PortsBox.svelte",
749
- "size": 728
749
+ "size": 714
750
750
  },
751
751
  {
752
752
  "path": "node_modules/@lucide/svelte/dist/icons/component.svelte",
@@ -870,21 +870,21 @@
870
870
  }
871
871
  ],
872
872
  "imports": [
873
- "chunk-k3my1snp.js",
874
- "chunk-x843txjc.js",
875
- "chunk-ry7q5zk5.js",
876
- "chunk-jx5cekhh.js",
877
- "chunk-zjcg8kw5.js",
878
- "chunk-kgn1b2t1.js"
873
+ "chunk-5jnepvzx.js",
874
+ "chunk-tr67wtwn.js",
875
+ "chunk-hcztrd75.js",
876
+ "chunk-sjmcgh7f.js",
877
+ "chunk-04qv4w6w.js",
878
+ "chunk-qxwt25hn.js"
879
879
  ]
880
880
  },
881
881
  {
882
- "name": "_hydrate-SettingsView_8hmarwmf8onq-e7e89md0.js",
883
- "size": 35372,
882
+ "name": "_hydrate-SettingsView_8hmarwmf8onq-t08spym1.js",
883
+ "size": 35485,
884
884
  "inputs": [
885
885
  {
886
886
  "path": "src/components/SettingsView.svelte",
887
- "size": 28353
887
+ "size": 28461
888
888
  },
889
889
  {
890
890
  "path": "src/components/ThemePicker.svelte",
@@ -1016,16 +1016,16 @@
1016
1016
  }
1017
1017
  ],
1018
1018
  "imports": [
1019
- "chunk-x843txjc.js",
1020
- "chunk-ry7q5zk5.js",
1021
- "chunk-jx5cekhh.js",
1022
- "chunk-zjcg8kw5.js",
1023
- "chunk-kgn1b2t1.js"
1019
+ "chunk-tr67wtwn.js",
1020
+ "chunk-hcztrd75.js",
1021
+ "chunk-sjmcgh7f.js",
1022
+ "chunk-04qv4w6w.js",
1023
+ "chunk-qxwt25hn.js"
1024
1024
  ]
1025
1025
  },
1026
1026
  {
1027
- "name": "chunk-jx5cekhh.js",
1028
- "size": 19224,
1027
+ "name": "chunk-sjmcgh7f.js",
1028
+ "size": 19235,
1029
1029
  "inputs": [
1030
1030
  {
1031
1031
  "path": "src/components/Avatar.svelte",
@@ -1333,17 +1333,17 @@
1333
1333
  }
1334
1334
  ],
1335
1335
  "imports": [
1336
- "chunk-zjcg8kw5.js",
1337
- "chunk-kgn1b2t1.js"
1336
+ "chunk-04qv4w6w.js",
1337
+ "chunk-qxwt25hn.js"
1338
1338
  ]
1339
1339
  },
1340
1340
  {
1341
- "name": "_hydrate-InstanceView_2ma45l9bybfhl-ewk4n2c0.js",
1342
- "size": 10089,
1341
+ "name": "_hydrate-InstanceView_2ma45l9bybfhl-2ntmdm3e.js",
1342
+ "size": 10116,
1343
1343
  "inputs": [
1344
1344
  {
1345
1345
  "path": "src/components/InstanceView.svelte",
1346
- "size": 6652
1346
+ "size": 6671
1347
1347
  },
1348
1348
  {
1349
1349
  "path": "src/components/HealthBox.svelte",
@@ -1383,23 +1383,23 @@
1383
1383
  }
1384
1384
  ],
1385
1385
  "imports": [
1386
- "chunk-k3my1snp.js",
1387
- "chunk-ry7q5zk5.js",
1388
- "chunk-zjcg8kw5.js",
1389
- "chunk-kgn1b2t1.js"
1386
+ "chunk-5jnepvzx.js",
1387
+ "chunk-hcztrd75.js",
1388
+ "chunk-04qv4w6w.js",
1389
+ "chunk-qxwt25hn.js"
1390
1390
  ]
1391
1391
  },
1392
1392
  {
1393
- "name": "_hydrate-AvatarsView_257s9yq1wwr4f-jmm501zf.js",
1394
- "size": 7498,
1393
+ "name": "_hydrate-AvatarsView_257s9yq1wwr4f-3cnbjpz2.js",
1394
+ "size": 7284,
1395
1395
  "inputs": [
1396
1396
  {
1397
1397
  "path": "src/components/AvatarEditor.svelte",
1398
- "size": 3906
1398
+ "size": 3658
1399
1399
  },
1400
1400
  {
1401
1401
  "path": "src/components/AvatarsView.svelte",
1402
- "size": 1138
1402
+ "size": 1181
1403
1403
  },
1404
1404
  {
1405
1405
  "path": "src/avatars/serialize.ts",
@@ -1443,14 +1443,43 @@
1443
1443
  }
1444
1444
  ],
1445
1445
  "imports": [
1446
- "chunk-jx5cekhh.js",
1447
- "chunk-zjcg8kw5.js",
1448
- "chunk-kgn1b2t1.js"
1446
+ "chunk-sjmcgh7f.js",
1447
+ "chunk-04qv4w6w.js",
1448
+ "chunk-qxwt25hn.js"
1449
+ ]
1450
+ },
1451
+ {
1452
+ "name": "chunk-5jnepvzx.js",
1453
+ "size": 1447,
1454
+ "inputs": [
1455
+ {
1456
+ "path": "src/api.ts",
1457
+ "size": 456
1458
+ },
1459
+ {
1460
+ "path": "src/live.ts",
1461
+ "size": 404
1462
+ },
1463
+ {
1464
+ "path": "src/components/StatusBadge.svelte",
1465
+ "size": 229
1466
+ },
1467
+ {
1468
+ "path": "src/types.ts",
1469
+ "size": 132
1470
+ },
1471
+ {
1472
+ "path": "src/lib/links.ts",
1473
+ "size": 92
1474
+ }
1475
+ ],
1476
+ "imports": [
1477
+ "chunk-qxwt25hn.js"
1449
1478
  ]
1450
1479
  },
1451
1480
  {
1452
- "name": "chunk-zjcg8kw5.js",
1453
- "size": 1395,
1481
+ "name": "chunk-04qv4w6w.js",
1482
+ "size": 1400,
1454
1483
  "inputs": [
1455
1484
  {
1456
1485
  "path": "node_modules/@lucide/svelte/dist/Icon.svelte",
@@ -1474,12 +1503,12 @@
1474
1503
  }
1475
1504
  ],
1476
1505
  "imports": [
1477
- "chunk-kgn1b2t1.js"
1506
+ "chunk-qxwt25hn.js"
1478
1507
  ]
1479
1508
  },
1480
1509
  {
1481
- "name": "chunk-x843txjc.js",
1482
- "size": 1387,
1510
+ "name": "chunk-tr67wtwn.js",
1511
+ "size": 1392,
1483
1512
  "inputs": [
1484
1513
  {
1485
1514
  "path": "src/sound.ts",
@@ -1499,37 +1528,12 @@
1499
1528
  }
1500
1529
  ],
1501
1530
  "imports": [
1502
- "chunk-zjcg8kw5.js",
1503
- "chunk-kgn1b2t1.js"
1504
- ]
1505
- },
1506
- {
1507
- "name": "chunk-k3my1snp.js",
1508
- "size": 1348,
1509
- "inputs": [
1510
- {
1511
- "path": "src/api.ts",
1512
- "size": 456
1513
- },
1514
- {
1515
- "path": "src/live.ts",
1516
- "size": 404
1517
- },
1518
- {
1519
- "path": "src/components/StatusBadge.svelte",
1520
- "size": 229
1521
- },
1522
- {
1523
- "path": "src/types.ts",
1524
- "size": 132
1525
- }
1526
- ],
1527
- "imports": [
1528
- "chunk-kgn1b2t1.js"
1531
+ "chunk-04qv4w6w.js",
1532
+ "chunk-qxwt25hn.js"
1529
1533
  ]
1530
1534
  },
1531
1535
  {
1532
- "name": "chunk-ry7q5zk5.js",
1536
+ "name": "chunk-hcztrd75.js",
1533
1537
  "size": 253,
1534
1538
  "inputs": [
1535
1539
  {
@@ -1542,16 +1546,16 @@
1542
1546
  }
1543
1547
  ],
1544
1548
  "imports": [
1545
- "chunk-zjcg8kw5.js",
1546
- "chunk-kgn1b2t1.js"
1549
+ "chunk-04qv4w6w.js",
1550
+ "chunk-qxwt25hn.js"
1547
1551
  ]
1548
1552
  },
1549
1553
  {
1550
- "name": "HydratableIsland-ps09gjy2.js",
1554
+ "name": "HydratableIsland-wrq79y0w.js",
1551
1555
  "size": 54,
1552
1556
  "inputs": [],
1553
1557
  "imports": [
1554
- "chunk-kgn1b2t1.js"
1558
+ "chunk-qxwt25hn.js"
1555
1559
  ]
1556
1560
  },
1557
1561
  {
@@ -0,0 +1 @@
1
+ import{Ua as a}from"/_mochi/client/chunk-qxwt25hn.js";export{a as registerComponent};
@@ -0,0 +1,2 @@
1
+ import{a as je,b as Ie,c as zt,d as He,e as Ee,f as Je,h as ei}from"/_mochi/client/chunk-5jnepvzx.js";import{i as $e,l as Ut,m as ti}from"/_mochi/client/chunk-tr67wtwn.js";import{n as Yt}from"/_mochi/client/chunk-hcztrd75.js";import{t as Gt,u as ft,v as qe,w as Xt,x as Ge}from"/_mochi/client/chunk-sjmcgh7f.js";import{y as q}from"/_mochi/client/chunk-04qv4w6w.js";import{B as l,Ba as gt,C as X,Ea as Pt,G as dt,H as ot,Ha as rt,Ja as Tt,Ka as Ze,Ma as U,N as se,Na as j,O as Se,Oa as Et,P,R as ee,S as h,Sa as Ye,U as n,Ua as ii,V as lt,W as Lt,X as d,Y as xt,Z as s,_ as $t,ba as A,ca as he,da as ue,ea as Wt,fa as Qe,ga as t,ja as Ue,ka as Dt,la as Q,ma as Bt,na as c,pa as st,qa as oe,ra as o,sa as Z,ta as N,ua as Xe,va as mt,ya as Oe}from"/_mochi/client/chunk-qxwt25hn.js";var Fe=!1;class xe extends Date{#t=h(super.getTime());#e=new Map;#i=he;constructor(...i){super(...i);if(!Fe)this.#a()}#a(){Fe=!0;var i=xe.prototype,e=Date.prototype,a=Object.getOwnPropertyNames(e);for(let r of a){if(r.startsWith("get")||r.startsWith("to")||r==="valueOf")i[r]=function(...v){if(v.length>0)return t(this.#t),e[r].apply(this,v);var p=this.#e.get(r);if(p===void 0){let S=he;ue(this.#i),p=P(()=>{return t(this.#t),e[r].apply(this,v)}),this.#e.set(r,p),ue(S)}return t(p)};if(r.startsWith("set"))i[r]=function(...v){var p=e[r].apply(this,v);return n(this.#t,e.getTime.call(this)),p}}}}var ri=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],ni=["difference","intersection","symmetricDifference","union"],ke=!1;class Mt extends Set{#t=new Map;#e=h(0);#i=h(0);#a=Wt||-1;constructor(i){super();if(i){for(var e of i)super.add(e);this.#i.v=super.size}if(!ke)this.#n()}#r(i){return Wt===this.#a?h(i):ee(i)}#n(){ke=!0;var i=Mt.prototype,e=Set.prototype;for(let a of ri)i[a]=function(...r){return t(this.#e),e[a].apply(this,r)};for(let a of ni)i[a]=function(...r){t(this.#e);var v=e[a].apply(this,r);return new Mt(v)}}has(i){var e=super.has(i),a=this.#t,r=a.get(i);if(r===void 0){if(!e)return t(this.#e),!1;r=this.#r(!0),a.set(i,r)}return t(r),e}add(i){if(!super.has(i))super.add(i),n(this.#i,super.size),lt(this.#e);return this}delete(i){var e=super.delete(i),a=this.#t,r=a.get(i);if(r!==void 0)a.delete(i),n(r,!1);if(e)n(this.#i,super.size),lt(this.#e);return e}clear(){if(super.size===0)return;super.clear();var i=this.#t;for(var e of i.values())n(e,!1);i.clear(),n(this.#i,0),lt(this.#e)}keys(){return this.values()}values(){return t(this.#e),super.values()}entries(){return t(this.#e),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return t(this.#i)}}class Re extends Map{#t=new Map;#e=h(0);#i=h(0);#a=Wt||-1;constructor(i){super();if(i){for(var[e,a]of i)super.set(e,a);this.#i.v=super.size}}#r(i){return Wt===this.#a?h(i):ee(i)}has(i){var e=this.#t,a=e.get(i);if(a===void 0)if(super.has(i))a=this.#r(0),e.set(i,a);else return t(this.#e),!1;return t(a),!0}forEach(i,e){this.#n(),super.forEach(i,e)}get(i){var e=this.#t,a=e.get(i);if(a===void 0)if(super.has(i))a=this.#r(0),e.set(i,a);else{t(this.#e);return}return t(a),super.get(i)}set(i,e){var a=this.#t,r=a.get(i),v=super.get(i),p=super.set(i,e),S=this.#e;if(r===void 0)r=this.#r(0),a.set(i,r),n(this.#i,super.size),lt(S);else if(v!==e){lt(r);var C=S.reactions===null?null:new Set(S.reactions),w=C===null||!r.reactions?.every((R)=>C.has(R));if(w)lt(S)}return p}delete(i){var e=this.#t,a=e.get(i),r=super.delete(i);if(a!==void 0)e.delete(i),n(a,-1);if(r)n(this.#i,super.size),lt(this.#e);return r}clear(){if(super.size===0)return;super.clear();var i=this.#t;n(this.#i,0);for(var e of i.values())n(e,-1);lt(this.#e),i.clear()}#n(){t(this.#e);var i=this.#t;if(this.#i.v!==i.size){for(var e of super.keys())if(!i.has(e)){var a=this.#r(0);i.set(e,a)}}for([,a]of this.#t)t(a)}keys(){return t(this.#e),super.keys()}values(){return this.#n(),super.values()}entries(){return this.#n(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return t(this.#i),super.size}}var ie=Symbol("replace");class ae extends URLSearchParams{#t=h(0);#e=_e();#i=!1;#a(){if(!this.#e||this.#i)return;this.#i=!0;let i=this.toString();this.#e.search=i&&`?${i}`,this.#i=!1}[ie](i){if(this.#i)return;if(i.toString()===super.toString())return;this.#i=!0;for(let e of[...super.keys()])super.delete(e);for(let[e,a]of i)super.append(e,a);lt(this.#t),this.#i=!1}append(i,e){super.append(i,e),this.#a(),lt(this.#t)}delete(i,e){var a=super.has(i,e);if(super.delete(i,e),a)this.#a(),lt(this.#t)}get(i){return t(this.#t),super.get(i)}getAll(i){return t(this.#t),super.getAll(i)}has(i,e){return t(this.#t),super.has(i,e)}keys(){return t(this.#t),super.keys()}forEach(i,e){t(this.#t),super.forEach(i,e)}set(i,e){var a=super.getAll(i);super.set(i,e);var r=super.getAll(i);if(a.length!==r.length||a.some((v,p)=>v!==r[p]))this.#a(),lt(this.#t)}sort(){super.sort(),this.#a(),lt(this.#t)}toString(){return t(this.#t),super.toString()}values(){return t(this.#t),super.values()}entries(){return t(this.#t),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return t(this.#t),super.size}}var be=null;function _e(){return be}class ye extends URL{#t=h(super.protocol);#e=h(super.username);#i=h(super.password);#a=h(super.hostname);#r=h(super.port);#n=h(super.pathname);#l=h(super.hash);#d=h(super.search);#o;constructor(i,e){i=new URL(i,e);super(i);be=this,this.#o=new ae(i.searchParams),be=null}get hash(){return t(this.#l)}set hash(i){super.hash=i,n(this.#l,super.hash)}get host(){return t(this.#a),t(this.#r),super.host}set host(i){super.host=i,n(this.#a,super.hostname),n(this.#r,super.port)}get hostname(){return t(this.#a)}set hostname(i){super.hostname=i,n(this.#a,super.hostname)}get href(){return t(this.#t),t(this.#e),t(this.#i),t(this.#a),t(this.#r),t(this.#n),t(this.#l),t(this.#d),super.href}set href(i){super.href=i,n(this.#t,super.protocol),n(this.#e,super.username),n(this.#i,super.password),n(this.#a,super.hostname),n(this.#r,super.port),n(this.#n,super.pathname),n(this.#l,super.hash),n(this.#d,super.search),this.#o[ie](super.searchParams)}get password(){return t(this.#i)}set password(i){super.password=i,n(this.#i,super.password)}get pathname(){return t(this.#n)}set pathname(i){super.pathname=i,n(this.#n,super.pathname)}get port(){return t(this.#r)}set port(i){super.port=i,n(this.#r,super.port)}get protocol(){return t(this.#t)}set protocol(i){super.protocol=i,n(this.#t,super.protocol)}get search(){return t(this.#d)}set search(i){super.search=i,n(this.#d,super.search),this.#o[ie](super.searchParams)}get username(){return t(this.#e)}set username(i){super.username=i,n(this.#e,super.username)}get origin(){return t(this.#t),t(this.#a),t(this.#r),super.origin}get searchParams(){return this.#o}toString(){return this.href}toJSON(){return this.href}}class We{#t;#e;constructor(i,e){this.#t=i,this.#e=Se(e)}get current(){return this.#e(),this.#t()}}var Ke=/^[A-Za-z0-9._-]+$/;function di(i){let e=i.trim();if(!e)return null;let a,r,v=e.match(/^[A-Za-z0-9._-]+@([A-Za-z0-9.-]+):(.+)$/);if(v)a=v[1],r=v[2];else if(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)){let w;try{w=new URL(e)}catch{return null}if(w.protocol!=="http:"&&w.protocol!=="https:"&&w.protocol!=="ssh:")return null;a=w.hostname,r=w.pathname}else{let w=e.match(/^([A-Za-z0-9-]+\.[A-Za-z0-9.-]+)\/(.+)$/);if(!w)return null;a=w[1],r=w[2]}if(!a||!r)return null;let p=r.replace(/\.git$/i,"").split("/").filter(Boolean),[S,C]=p;if(!S||!C||!Ke.test(S)||!Ke.test(C))return null;return{host:a,owner:S,repo:C,cloneUrl:`https://${a}/${S}/${C}.git`}}function we(i){return di(i)!==null}var oi=new Set(["$$slots","$$events","$$legacy"]);function re(i,e){let a=U(e,oi),r=[["path",{d:"M16 14v2.2l1.6 1"}],["path",{d:"M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2"}],["circle",{cx:"16",cy:"16",r:"6"}]];q(i,j({name:"folder-clock"},()=>a,{get iconNode(){return r}}))}var si=new Set(["$$slots","$$events","$$legacy"]);function Kt(i,e){let a=U(e,si),r=[["path",{d:"M15 6a9 9 0 0 0-9 9V3"}],["circle",{cx:"18",cy:"6",r:"3"}],["circle",{cx:"6",cy:"18",r:"3"}]];q(i,j({name:"git-branch"},()=>a,{get iconNode(){return r}}))}var fi=new Set(["$$slots","$$events","$$legacy"]);function ne(i,e){let a=U(e,fi),r=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];q(i,j({name:"arrow-up"},()=>a,{get iconNode(){return r}}))}var ci=new Set(["$$slots","$$events","$$legacy"]);function le(i,e){let a=U(e,ci),r=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}]];q(i,j({name:"folder"},()=>a,{get iconNode(){return r}}))}var mi=new Set(["$$slots","$$events","$$legacy"]);function Qt(i,e){let a=U(e,mi),r=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}],["path",{d:"M12 9v4"}],["path",{d:"M12 17h.01"}]];q(i,j({name:"triangle-alert"},()=>a,{get iconNode(){return r}}))}var $i=c('<div class="recent-row svelte-oq97c4"><button class="recent-pick svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="recent-text svelte-oq97c4"><span class="recent-name svelte-oq97c4"> </span> <span class="recent-path svelte-oq97c4"> </span></span></button> <button class="recent-x svelte-oq97c4" title="Remove from history"><!></button></div>'),gi=c('<button class="recent-toggle svelte-oq97c4"> </button>'),vi=c('<div class="recent svelte-oq97c4"><div class="recent-label svelte-oq97c4">Recent</div> <!> <!></div>'),pi=c('<div class="muted svelte-oq97c4">Loading…</div>'),hi=c('<div class="muted err svelte-oq97c4"> </div>'),ui=c('<div class="row svelte-oq97c4"><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4">..</span></button></div>'),xi=c('<div class="muted svelte-oq97c4"> </div>'),bi=c('<span class="badge svelte-oq97c4">devcontainer</span>'),Si=c('<div><button class="nav svelte-oq97c4"><span class="icon svelte-oq97c4"><!></span> <span class="ename svelte-oq97c4"> </span> <!></button> <button class="pick-inline svelte-oq97c4">Select</button></div>'),wi=c("<!> <!> <!>",1),Ii=c(`<div class="warn svelte-oq97c4"><!> <span>No <code class="svelte-oq97c4">devcontainer.json</code> in this folder — a default image will be used if you select
2
+ it.</span></div>`),Ni=c('<div class="overlay svelte-oq97c4" role="button" tabindex="0"><div class="modal panel svelte-oq97c4" role="dialog" aria-modal="true" aria-label="Pick a project folder" tabindex="-1"><div class="head svelte-oq97c4"><h2 class="svelte-oq97c4">Pick a project folder</h2> <button class="x svelte-oq97c4" aria-label="Close"><!></button></div> <div class="clone svelte-oq97c4"><div class="clone-label svelte-oq97c4">Clone a Git repository</div> <div class="clone-row svelte-oq97c4"><input class="clone-url svelte-oq97c4" type="text" placeholder="https://github.com/owner/repo" spellcheck="false" autocomplete="off"/> <input class="clone-branch svelte-oq97c4" type="text" placeholder="branch (optional)" spellcheck="false" autocomplete="off"/> <button class="clone-btn svelte-oq97c4">Clone</button></div></div> <div class="crumbs svelte-oq97c4"><code class="svelte-oq97c4"> </code></div> <!> <div class="search svelte-oq97c4"><input type="text" placeholder="Filter folders…" spellcheck="false" autocomplete="off" class="svelte-oq97c4"/></div> <div class="list svelte-oq97c4"><!></div> <!> <div class="foot svelte-oq97c4"><span class="hint svelte-oq97c4">Browse to a folder, then select this folder or any subfolder.</span> <button class="primary svelte-oq97c4">Select this folder</button></div></div></div>');function Ne(i,e){dt(e,!0);let a=h(null),r=h(!0),v=h(null),p=h(""),S=h(null),C=h(Lt([])),w=h(!1),R=h(""),z=h(""),V=P(()=>we(t(R)));function F(){if(!t(V))return;e.onpick(t(R).trim(),{branch:t(z).trim()||void 0})}let $=P(()=>t(a)?t(a).entries.filter((g)=>g.name.toLowerCase().includes(t(p).trim().toLowerCase())):[]),E=P(()=>t(w)?t(C):t(C).slice(0,5));async function u(){try{let g=await Ie("/api/history");n(C,g.history??[],!0)}catch{}}async function D(g){let K=t(C);n(C,t(C).filter((ut)=>ut.source_path!==g),!0);try{await He("/api/history",{sourcePath:g})}catch{n(C,K,!0)}}async function M(g=null){n(r,!0),n(v,null),n(p,"");try{let K=g?`/api/browse?path=${encodeURIComponent(g)}`:"/api/browse";n(a,await Ie(K,void 0,"Could not list folder"),!0)}catch(K){n(v,K.message,!0)}finally{n(r,!1)}await Qe(),t(S)?.focus()}$t(()=>{M(),u()});var k=Ni(),T=d(k),W=d(T),Y=s(d(W),2),O=d(Y);Yt(O,{size:16}),l(Y),l(W);var et=s(W,2),St=s(d(et),2),wt=d(St);Pt(wt);var bt=s(wt,2);Pt(bt);var I=s(bt,2);l(St),l(et);var L=s(et,2),H=d(L),f=d(H,!0);l(H),l(L);var x=s(L,2);{var B=(g)=>{var K=vi(),ut=s(d(K),2);mt(ut,17,()=>t(E),(It)=>It.source_path,(It,ct)=>{var tt=$i(),y=d(tt),at=d(y),Nt=d(at);{var Rt=(Ct)=>{Kt(Ct,{size:16})},_t=P(()=>we(t(ct).source_path)),Ot=(Ct)=>{re(Ct,{size:16})};N(Nt,(Ct)=>{if(t(_t))Ct(Rt);else Ct(Ot,-1)})}l(at);var jt=s(at,2),Vt=d(jt),ve=d(Vt,!0);l(Vt);var qt=s(Vt,2),pe=d(qt,!0);l(qt),l(jt),l(y);var yt=s(y,2),Ft=d(yt);Yt(Ft,{size:14}),l(yt),l(tt),A(()=>{Z(ve,t(ct).name),Z(pe,t(ct).source_path),rt(yt,"aria-label",`Remove ${t(ct).name??""} from history`)}),Q("click",y,()=>e.onpick(t(ct).source_path)),Q("click",yt,(Ct)=>{Ct.stopPropagation(),D(t(ct).source_path)}),o(It,tt)});var Jt=s(ut,2);{var kt=(It)=>{var ct=gi(),tt=d(ct,!0);l(ct),A(()=>Z(tt,t(w)?"Show fewer":`Show all (${t(C).length})`)),Q("click",ct,()=>n(w,!t(w))),o(It,ct)};N(Jt,(It)=>{if(t(C).length>5)It(kt)})}l(K),o(g,K)};N(x,(g)=>{if(t(C).length>0)g(B)})}var J=s(x,2),nt=d(J);Pt(nt),Ze(nt,(g)=>n(S,g),()=>t(S)),l(J);var m=s(J,2),b=d(m);{var it=(g)=>{var K=pi();o(g,K)},vt=(g)=>{var K=hi(),ut=d(K,!0);l(K),A(()=>Z(ut,t(v))),o(g,K)},pt=(g)=>{var K=wi(),ut=xt(K);{var Jt=(tt)=>{var y=ui(),at=d(y),Nt=d(at),Rt=d(Nt);ne(Rt,{size:16}),l(Nt),X(2),l(at),l(y),Q("click",at,()=>M(t(a)?.parent??null)),o(tt,y)};N(ut,(tt)=>{if(t(a).parent&&!t(p))tt(Jt)})}var kt=s(ut,2);{var It=(tt)=>{var y=xi(),at=d(y,!0);l(y),A(()=>Z(at,t(p)?"No folders match.":"No subfolders here.")),o(tt,y)};N(kt,(tt)=>{if(t($).length===0)tt(It)})}var ct=s(kt,2);mt(ct,19,()=>t($),(tt)=>tt.path,(tt,y,at)=>{var Nt=Si();let Rt;var _t=d(Nt),Ot=d(_t),jt=d(Ot);le(jt,{size:16}),l(Ot);var Vt=s(Ot,2),ve=d(Vt,!0);l(Vt);var qt=s(Vt,2);{var pe=(Ft)=>{var Ct=bi();o(Ft,Ct)};N(qt,(Ft)=>{if(t(y).hasDevcontainer)Ft(pe)})}l(_t);var yt=s(_t,2);l(Nt),A((Ft)=>{Rt=gt(Nt,1,"row svelte-oq97c4",null,Rt,Ft),Z(ve,t(y).name)},[()=>({"first-match":t(p).trim()&&t(at)===0})]),Q("click",_t,()=>M(t(y).path)),Q("click",yt,()=>e.onpick(t(y).path)),o(tt,Nt)}),o(g,K)};N(b,(g)=>{if(t(r))g(it);else if(t(v))g(vt,1);else if(t(a))g(pt,2)})}l(m);var _=s(m,2);{var ht=(g)=>{var K=Ii(),ut=d(K);Qt(ut,{size:15}),X(2),l(K),o(g,K)};N(_,(g)=>{if(t(a)&&!t(a).hasDevcontainer)g(ht)})}var At=s(_,2),Ht=s(d(At),2);l(At),l(T),l(k),A(()=>{I.disabled=!t(V),Z(f,t(a)?.path??"…"),Ht.disabled=!t(a)}),Q("click",k,function(...g){e.onclose?.apply(this,g)}),Q("keydown",k,(g)=>g.key==="Escape"&&e.onclose()),Q("click",T,(g)=>g.stopPropagation()),Q("keydown",T,()=>{}),Q("click",Y,function(...g){e.onclose?.apply(this,g)}),Q("keydown",wt,(g)=>{if(g.key==="Enter")g.preventDefault(),F()}),Tt(wt,()=>t(R),(g)=>n(R,g)),Q("keydown",bt,(g)=>{if(g.key==="Enter")g.preventDefault(),F()}),Tt(bt,()=>t(z),(g)=>n(z,g)),Q("click",I,F),Q("keydown",nt,(g)=>{let K=t($)[0];if(g.key==="Enter"&&K)g.preventDefault(),M(K.path)}),Tt(nt,()=>t(p),(g)=>n(p,g)),Q("click",Ht,()=>t(a)&&e.onpick(t(a).path)),o(i,k),ot()}Bt(["click","keydown"]);var Ci=c('<div class="branch svelte-jv8lut" title="Branch checked out in the container"><!><span class="svelte-jv8lut"> </span></div>');function Ce(i,e){var a=Ci(),r=d(a);Kt(r,{size:12});var v=s(r),p=d(v,!0);l(v),l(a),A(()=>Z(p,e.branch)),o(i,a)}var Ei=new Set(["$$slots","$$events","$$legacy"]);function de(i,e){let a=U(e,Ei),r=[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z"}],["path",{d:"M17 21v-2"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10"}],["path",{d:"M21 21v-2"}],["path",{d:"M3 5V3"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z"}],["path",{d:"M7 5V3"}]];q(i,j({name:"cable"},()=>a,{get iconNode(){return r}}))}var Mi=c('<a target="_blank" rel="noopener"> </a>'),Li=c('<div class="fports svelte-1uaz383" title="Forwarded ports — click to open"><!> <span class="list svelte-1uaz383"></span></div>');function Me(i,e){dt(e,!0);var a=oe(),r=xt(a);{var v=(p)=>{var S=Li(),C=d(S);de(C,{size:12});var w=s(C,2);mt(w,21,()=>e.ports,(R)=>R.container_port,(R,z)=>{var V=Mi();let F;var $=d(V,!0);l(V),A((E,u)=>{F=gt(V,1,"fport svelte-1uaz383",null,F,{open:t(z).open}),rt(V,"href",E),rt(V,"title",u),Z($,t(z).container_port)},[()=>Ee(t(z).host_port),()=>`container :${t(z).container_port} → ${Ee(t(z).host_port)} ${t(z).open?"(open)":"(not published yet)"}`]),o(R,V)}),l(w),l(S),o(p,S)};N(r,(p)=>{if(e.ports.length)p(v)})}o(i,a),ot()}var Pi=c('<input class="name-edit svelte-13338y7"/>'),Ti=c('<button class="name svelte-13338y7" title="Click to rename"> </button>'),Bi=c("<span></span>"),Di=c('<div class="card-error svelte-13338y7"> </div>'),zi=c("<!> <!>",1),Ai=c('<li class="card panel svelte-13338y7"><div class="card-head svelte-13338y7"><!> <!> <!> <!></div> <div class="path svelte-13338y7"> </div> <!> <!> <!> <div class="actions svelte-13338y7"><!> <!> <!> <!></div></li>');function Le(i,e){dt(e,!0);let a=Et(e,"editingName",15),r=P(()=>e.instance.status==="running"||e.instance.status==="stopped"||e.instance.status==="error"&&!!e.instance.container_id);var v=Ai(),p=d(v),S=d(p);Gt(S,{get id(){return e.instance.id},get name(){return e.instance.name},interactive:!0});var C=s(S,2);{var w=(f)=>{var x=Pi();Pt(x),se(x,!0),Dt("focus",x,(B)=>B.currentTarget.select()),Dt("blur",x,function(...B){e.oncommitrename?.apply(this,B)}),Q("keydown",x,(B)=>{if(B.key==="Enter")B.currentTarget.blur();else if(B.key==="Escape")e.oncancelrename()}),Tt(x,a),o(f,x)},R=(f)=>{var x=Ti(),B=d(x,!0);l(x),A(()=>Z(B,e.instance.name)),Q("click",x,function(...J){e.onstartrename?.apply(this,J)}),o(f,x)};N(C,(f)=>{if(e.editing)f(w);else f(R,-1)})}var z=s(C,2);{var V=(f)=>{var x=Bi();let B;A(()=>{B=gt(x,1,"attn svelte-13338y7",null,B,{"attn-done":e.instance.attention==="done","attn-waiting":e.instance.attention==="waiting"}),rt(x,"title",e.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished"),rt(x,"aria-label",e.instance.attention==="waiting"?"Claude is waiting for input":"Claude finished")}),o(f,x)};N(z,(f)=>{if(e.instance.attention)f(V)})}var F=s(z,2);Je(F,{get status(){return e.instance.status}}),l(p);var $=s(p,2),E=d($,!0);l($);var u=s($,2);{var D=(f)=>{Me(f,{get ports(){return e.instance.forwarded_ports}})};N(u,(f)=>{if(e.instance.status==="running")f(D)})}var M=s(u,2);{var k=(f)=>{Ce(f,{get branch(){return e.instance.git_branch}})};N(M,(f)=>{if(e.instance.git_branch)f(k)})}var T=s(M,2);{var W=(f)=>{var x=Di(),B=d(x,!0);l(x),A(()=>Z(B,e.instance.error)),o(f,x)};N(T,(f)=>{if(e.instance.status==="error"&&e.instance.error)f(W)})}var Y=s(T,2),O=d(Y);{var et=(f)=>{var x=zi(),B=xt(x);{let nt=P(()=>`/ide/${e.instance.id}`);ft(B,{variant:"primary",size:"sm",get href(){return t(nt)},children:(m,b)=>{X();var it=st("Open IDE");o(m,it)},$$slots:{default:!0}})}var J=s(B,2);ft(J,{size:"sm",onclick:()=>e.onact("stop"),children:(nt,m)=>{X();var b=st("Stop");o(nt,b)},$$slots:{default:!0}}),o(f,x)},St=(f)=>{ft(f,{size:"sm",onclick:()=>e.onact("start"),children:(x,B)=>{X();var J=st("Start");o(x,J)},$$slots:{default:!0}})},wt=(f)=>{{let x=P(()=>`/instances/${e.instance.id}`);ft(f,{size:"sm",get href(){return t(x)},target:"_blank",rel:"noopener noreferrer",children:(B,J)=>{X();var nt=st("View logs");o(B,nt)},$$slots:{default:!0}})}};N(O,(f)=>{if(e.instance.status==="running")f(et);else if(e.instance.status==="stopped"||e.instance.status==="error"&&e.instance.container_id)f(St,1);else if(e.instance.status==="creating")f(wt,2)})}var bt=s(O,2);{var I=(f)=>{ft(f,{size:"sm",title:"Recreate the container and re-run setup (credentials, hooks, port forwards)",onclick:()=>e.onact("rebuild"),children:(x,B)=>{X();var J=st("Rebuild");o(x,J)},$$slots:{default:!0}})};N(bt,(f)=>{if(t(r))f(I)})}var L=s(bt,2);{let f=P(()=>`/instances/${e.instance.id}`);ft(L,{size:"sm",ghost:!0,get href(){return t(f)},target:"_blank",rel:"noopener noreferrer",children:(x,B)=>{X();var J=st("Details");o(x,J)},$$slots:{default:!0}})}var H=s(L,2);ft(H,{variant:"danger",size:"sm",onclick:()=>e.onact("delete"),children:(f,x)=>{X();var B=st("Delete");o(f,B)},$$slots:{default:!0}}),l(Y),l(v),A(()=>{rt($,"title",e.instance.source_path),Z(E,e.instance.source_path)}),o(i,v),ot()}Bt(["keydown","click"]);var Vi=new Set(["$$slots","$$events","$$legacy"]);function fe(i,e){let a=U(e,Vi),r=[["path",{d:"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"}],["path",{d:"M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z"}],["path",{d:"M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z"}],["path",{d:"M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z"}]];q(i,j({name:"component"},()=>a,{get iconNode(){return r}}))}var Fi=new Set(["$$slots","$$events","$$legacy"]);function ce(i,e){let a=U(e,Fi),r=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z"}],["path",{d:"M12 22V12"}],["polyline",{points:"3.29 7 12 12 20.71 7"}],["path",{d:"m7.5 4.27 9 5.15"}]];q(i,j({name:"package"},()=>a,{get iconNode(){return r}}))}var ki=c('<a class="brand svelte-94cd8h" href="/"><span class="logo svelte-94cd8h"><!></span><span>Codebay</span><span class="tagline svelte-94cd8h">devcontainer manager</span></a>');function Pe(i){var e=ki(),a=d(e),r=d(a);ce(r,{size:22}),l(a),X(2),l(e),o(i,e)}var Ri=new Set(["$$slots","$$events","$$legacy"]);function Zt(i,e){let a=U(e,Ri),r=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];q(i,j({name:"settings"},()=>a,{get iconNode(){return r}}))}var _i=c('<a class="cog svelte-1e745g8" href="/settings" aria-label="Settings" title="Settings"><!></a>');function Te(i){var e=_i(),a=d(e);Zt(a,{size:16}),l(e),o(i,e)}var yi=new Set(["$$slots","$$events","$$legacy"]);function me(i,e){let a=U(e,yi),r=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]];q(i,j({name:"link"},()=>a,{get iconNode(){return r}}))}var Wi=c('<button type="button" class="cred-row svelte-vongf9" role="menuitem"><span></span> <span class="cred-label"> </span> <span class="cred-state svelte-vongf9"> </span></button>'),Ki=c('<div class="cred-dropdown panel svelte-vongf9" role="menu"></div>'),Qi=c('<div class="cred-menu svelte-vongf9"><button aria-haspopup="menu" aria-label="Credentials" title="Credentials"><!></button> <!></div>');function Be(i,e){dt(e,!0);let a=h(!1),r=P(()=>e.auth.filter(($)=>$.available).length),v=P(()=>t(r)===e.auth.length?"ok":t(r)===0?"error":"warn"),p={ok:me,warn:Qt,error:Yt},S=P(()=>p[t(v)]);function C($){if($.available)Xt.success(`${$.label} credentials come from ${$.source}.`);else{let E=$.hint?` — ${$.hint}`:"";Xt.error(`No ${$.label} credentials found${E}.`)}}$t(()=>{if(!t(a))return;let $=(u)=>{if(!u.target?.closest(".cred-menu"))n(a,!1)},E=(u)=>{if(u.key==="Escape")n(a,!1)};return window.addEventListener("click",$),window.addEventListener("keydown",E),()=>{window.removeEventListener("click",$),window.removeEventListener("keydown",E)}});var w=Qi(),R=d(w),z=d(R);Oe(z,()=>t(S),($,E)=>{E($,{size:16})}),l(R);var V=s(R,2);{var F=($)=>{var E=Ki();mt(E,21,()=>e.auth,(u)=>u.id,(u,D)=>{var M=Wi(),k=d(M),T=s(k,2),W=d(T,!0);l(T);var Y=s(T,2),O=d(Y,!0);l(Y),l(M),A(()=>{rt(M,"title",t(D).available?`Credentials from ${t(D).source}, copied into each new instance.`:`No credentials found on this computer${t(D).hint?` — ${t(D).hint}`:""}.`),gt(k,1,`dot ${t(D).available?"on":"off"}`,"svelte-vongf9"),Z(W,t(D).label),Z(O,t(D).available?"Authorized":"Not found")}),Q("click",M,()=>C(t(D))),o(u,M)}),l(E),o($,E)};N(V,($)=>{if(t(a))$(F)})}l(w),A(()=>{gt(R,1,`cred ${t(v)??""}`,"svelte-vongf9"),rt(R,"aria-expanded",t(a))}),Q("click",R,()=>n(a,!t(a))),o(i,w),ot()}Bt(["click"]);var Zi=c('<header class="topbar svelte-1h259us"><!> <div class="topbar-actions svelte-1h259us"><!> <!> <!> <!> <!></div></header>');function De(i,e){let a=Et(e,"canDelete",3,!1),r=Et(e,"ready",3,!0),v=Et(e,"creating",3,!1);var p=Zi(),S=d(p);Pe(S,{});var C=s(S,2),w=d(C);{var R=(E)=>{ft(E,{variant:"default",size:"sm",get icon(){return fe},href:"/debug",children:(u,D)=>{X();var M=st("Debug");o(u,M)},$$slots:{default:!0}})};N(w,(E)=>{if(Ye)E(R)})}var z=s(w,2);Te(z,{});var V=s(z,2);Be(V,{get auth(){return e.auth}});var F=s(V,2);{let E=P(()=>!a());ft(F,{variant:"danger",size:"sm",get onclick(){return e.onDeleteAll},get disabled(){return t(E)},children:(u,D)=>{X();var M=st("Delete all");o(u,M)},$$slots:{default:!0}})}var $=s(F,2);{let E=P(()=>v()?void 0:$e),u=P(()=>!r()||v());ft($,{variant:"primary",get icon(){return t(E)},get onclick(){return e.onNew},get disabled(){return t(u)},children:(D,M)=>{X();var k=st();A(()=>Z(k,v()?"Creating…":"New instance")),o(D,k)},$$slots:{default:!0}})}l(C),l(p),o(i,p)}var Hi=c("<span>Docker daemon is not reachable.</span>"),Ji=c("<span>The devcontainer CLI is not available.</span>"),Oi=c('<div class="banner error svelte-146pixd"><strong>Setup needed.</strong> <!> <!></div>'),Yi=c('<div class="banner error svelte-146pixd"><strong>Error.</strong> <span> </span></div>'),Gi=c('<div class="empty svelte-146pixd"><p class="empty-sub svelte-146pixd">Loading…</p></div>'),Xi=c('<div class="empty svelte-146pixd"><p class="empty-title svelte-146pixd">No instances yet</p> <p class="empty-sub svelte-146pixd">Pick a project folder to spin up an isolated devcontainer.</p> <!></div>'),Ui=c('<ul class="grid svelte-146pixd"></ul>'),ji=c('<!> <main class="stage svelte-146pixd"><!> <!> <!></main> <!>',1);function ze(i,e){dt(e,!0);let a=h(!1),r=h(!1),v=h(null),p=h(null),S=h(""),C=P(()=>e.preflight.docker&&e.preflight.cli);async function w(I,L){n(a,!1),n(r,!0),n(v,null);try{await zt("/api/instances",{sourcePath:I,branch:L?.branch},"Failed to create instance")}catch(H){n(v,H.message,!0)}finally{n(r,!1)}}async function R(I,L){if(n(v,null),L==="delete"&&!confirm("Delete this instance and its copied files?"))return;if(L==="rebuild"&&!confirm("Recreate this container and re-run setup? The workspace is kept."))return;try{await zt(`/api/instances/${I}/${L}`,void 0,`Failed to ${L}`)}catch(H){n(v,H.message,!0)}}function z(I){n(p,I.id,!0),n(S,I.name,!0)}function V(){n(p,null),n(S,"")}async function F(I){let L=t(S).trim(),H=e.instances.find((f)=>f.id===I)?.name;if(!L||L===H){V();return}V(),n(v,null);try{await zt(`/api/instances/${I}/rename`,{name:L},"Failed to rename")}catch(f){n(v,f.message,!0)}}async function $(){if(n(v,null),!confirm(`Delete all ${e.instances.length} instances and their copied files?`))return;try{await zt("/api/instances/delete-all",void 0,"Failed to delete all")}catch(I){n(v,I.message,!0)}}var E=ji(),u=xt(E);{let I=P(()=>e.instances.length>0);De(u,{get auth(){return e.preflight.auth},get canDelete(){return t(I)},get ready(){return t(C)},get creating(){return t(r)},onNew:()=>n(a,!0),onDeleteAll:$})}var D=s(u,2),M=d(D);{var k=(I)=>{var L=Oi(),H=s(d(L),2);{var f=(J)=>{var nt=Hi();o(J,nt)};N(H,(J)=>{if(!e.preflight.docker)J(f)})}var x=s(H,2);{var B=(J)=>{var nt=Ji();o(J,nt)};N(x,(J)=>{if(!e.preflight.cli)J(B)})}l(L),o(I,L)};N(M,(I)=>{if(!t(C))I(k)})}var T=s(M,2);{var W=(I)=>{var L=Yi(),H=s(d(L),2),f=d(H,!0);l(H),l(L),A(()=>Z(f,t(v))),o(I,L)};N(T,(I)=>{if(t(v))I(W)})}var Y=s(T,2);{var O=(I)=>{var L=Gi();o(I,L)},et=(I)=>{var L=Xi(),H=s(d(L),4);{let f=P(()=>!t(C));ft(H,{variant:"primary",get icon(){return $e},onclick:()=>n(a,!0),get disabled(){return t(f)},children:(x,B)=>{X();var J=st("New instance");o(x,J)},$$slots:{default:!0}})}l(L),o(I,L)},St=(I)=>{var L=Ui();mt(L,21,()=>e.instances,(H)=>H.id,(H,f)=>{{let x=P(()=>t(p)===t(f).id);Le(H,{get instance(){return t(f)},get editing(){return t(x)},onact:(B)=>R(t(f).id,B),onstartrename:()=>z(t(f)),oncommitrename:()=>F(t(f).id),oncancelrename:V,get editingName(){return t(S)},set editingName(B){n(S,B,!0)}})}}),l(L),o(I,L)};N(Y,(I)=>{if(!e.loaded)I(O);else if(e.instances.length===0)I(et,1);else I(St,-1)})}l(D);var wt=s(D,2);{var bt=(I)=>{Ne(I,{onpick:w,onclose:()=>n(a,!1)})};N(wt,(I)=>{if(t(a))I(bt)})}o(i,E),ot()}var qi=c('<div class="tab-label editing svelte-r39acv"><!> <input class="tab-name-edit svelte-r39acv"/></div>'),ta=c('<button type="button" class="tab-label svelte-r39acv"><!> <span class="tab-name svelte-r39acv"> </span></button>'),ea=c("<div><!></div>"),ia=c('<nav class="tabs svelte-r39acv"></nav>'),aa=c('<!> <a class="cog svelte-r39acv" href="/settings" title="Settings" aria-label="Settings"><!></a>',1);function Ae(i,e){dt(e,!0);let a=Et(e,"editingName",15);Ge(i,{children:(r,v)=>{var p=aa(),S=xt(p);{var C=(z)=>{var V=ia();mt(V,21,()=>e.running,(F)=>F.id,(F,$)=>{var E=ea();let u;var D=d(E);{var M=(T)=>{var W=qi(),Y=d(W);Gt(Y,{get id(){return t($).id},get name(){return t($).name},scale:4});var O=s(Y,2);Pt(O),se(O,!0),l(W),Dt("focus",O,(et)=>et.currentTarget.select()),Dt("blur",O,()=>e.oncommitrename(t($).id)),Q("keydown",O,(et)=>{if(et.key==="Enter")et.currentTarget.blur();else if(et.key==="Escape")e.oncancelrename()}),Tt(O,a),o(T,W)},k=(T)=>{var W=ta(),Y=d(W);Gt(Y,{get id(){return t($).id},get name(){return t($).name},scale:4});var O=s(Y,2),et=d(O,!0);l(O),l(W),A(()=>{rt(W,"title",t($).name),Z(et,t($).name)}),Q("click",W,()=>e.onselect(t($).id)),Q("dblclick",W,()=>e.onstartrename(t($))),o(T,W)};N(D,(T)=>{if(e.editingId===t($).id)T(M);else T(k,-1)})}l(E),A(()=>u=gt(E,1,"tab svelte-r39acv",null,u,{active:t($).id===e.active,"attn-done":t($).id!==e.active&&e.attention[t($).id]==="done","attn-waiting":t($).id!==e.active&&e.attention[t($).id]==="waiting"})),o(F,E)}),l(V),o(z,V)};N(S,(z)=>{if(e.running.length>0)z(C)})}var w=s(S,2),R=d(w);Zt(R,{size:18}),l(w),o(r,p)},$$slots:{default:!0}}),ot()}Bt(["keydown","click","dblclick"]);var ra=c('<div class="row svelte-w5e143"> </div>'),na=c('<div class="stalled svelte-w5e143"><p class="svelte-w5e143">Waiting for code-server to answer inside the container.</p> <!></div>'),la=c('<div class="loader svelte-w5e143"><div class="grid svelte-w5e143" aria-hidden="true"></div> <div class="label svelte-w5e143">Loading editor<span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span><span class="dot svelte-w5e143">.</span></div> <!></div>');function ge(i,e){dt(e,!0);let a=Et(e,"speed",3,1),r=h(!1);$t(()=>{if(e.stalledAfterMs===void 0)return;let u=setTimeout(()=>n(r,!0),e.stalledAfterMs);return()=>clearTimeout(u)});let v=3,p=22,S=140,C=7,w=P(()=>Math.max(20,S/a())),z=h(Lt((()=>Array.from({length:v},()=>Array.from({length:p},()=>Math.random()<0.5?0:1)))()));$t(()=>{if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let u=setInterval(()=>{let D=t(z).map((M)=>M.slice());for(let M=0;M<C;M++){let k=D[Math.floor(Math.random()*v)],T=Math.floor(Math.random()*p);k[T]=k[T]?0:1}n(z,D,!0)},t(w));return()=>clearInterval(u)});var V=la(),F=d(V);mt(F,21,()=>t(z),Xe,(u,D)=>{var M=ra(),k=d(M,!0);l(M),A((T)=>Z(k,T),[()=>t(D).join("")]),o(u,M)}),l(F);var $=s(F,4);{var E=(u)=>{var D=na(),M=s(d(D),2);{var k=(T)=>{ft(T,{size:"sm",get onclick(){return e.onoverride},children:(W,Y)=>{X();var O=st("Open anyway");o(W,O)},$$slots:{default:!0}})};N(M,(T)=>{if(e.onoverride)T(k)})}l(D),o(u,D)};N($,(u)=>{if(t(r))u(E)})}l(V),o(i,V),ot()}var da=c('<iframe class="svelte-1duc7gd"></iframe>'),oa=c("<div><!> <!></div>"),sa=c('<div class="empty svelte-1duc7gd">No running instances.</div>'),fa=c("<div><!> <div><!> <!></div></div> <!>",1);function Ve(i,e){dt(e,!0);let a=h(Lt(e.snapshot)),r=h(Lt(e.preflight)),v=h(e.snapshot.length>0),p=P(()=>t(a).filter((m)=>m.status==="running")),S=h(Lt(Object.fromEntries(e.snapshot.map((m)=>[m.id,m.attention])))),C=h(null),w=h("");function R(m){n(C,m.id,!0),n(w,m.name,!0)}function z(){n(C,null),n(w,"")}async function V(m){let b=t(w).trim(),it=t(a).find((vt)=>vt.id===m)?.name;if(!b||b===it){z();return}z();try{await zt(`/api/instances/${m}/rename`,{name:b},"Failed to rename")}catch(vt){Xt.error(vt.message)}}let F=h(Lt(e.initialPath)),$=P(()=>t(F).startsWith("/ide")),E=P(()=>t(F).startsWith("/ide/")?t(F).slice(5):""),u=P(()=>t($)?t(p).some((m)=>m.id===t(E))?t(E):t(p)[0]?.id??"":"");function D(m){if(m===t(F))return;history.pushState({},"",m),n(F,m,!0)}$t(()=>{function m(b){if(b.defaultPrevented||b.button!==0||b.metaKey||b.ctrlKey||b.shiftKey||b.altKey)return;let it=b.target?.closest?.("a");if(!it)return;let vt=it.getAttribute("href");if(!vt||it.target==="_blank"||it.hasAttribute("download"))return;let pt=new URL(vt,location.href);if(pt.origin!==location.origin)return;if(pt.pathname==="/"||pt.pathname.startsWith("/ide/"))b.preventDefault(),D(pt.pathname)}return document.addEventListener("click",m),()=>document.removeEventListener("click",m)}),$t(()=>{function m(){n(F,location.pathname,!0)}return window.addEventListener("popstate",m),()=>window.removeEventListener("popstate",m)});let M=new Mt;$t(()=>{if(t(u))M.add(t(u))});let k=new Mt,T=new Mt,W=new Mt,Y=(m)=>T.has(m)||W.has(m),O=1e4;$t(()=>{let m=t(p).find((b)=>b.id===t(u));document.title=t($)&&m?`${m.name} — Codebay`:"Codebay"}),$t(()=>{return window.addEventListener("pointerdown",Ut),window.addEventListener("keydown",Ut),()=>{window.removeEventListener("pointerdown",Ut),window.removeEventListener("keydown",Ut)}}),$t(()=>{let m=!1;return ei((b)=>{if(b.type==="preflight"){n(r,{...t(r),docker:b.data.docker,cli:b.data.cli},!0);return}if(b.type==="health"){let _=t(a).find((ht)=>ht.id===b.data.id);if(b.data.health.codeServerAccessible&&_?.status==="running")T.add(b.data.id);return}if(b.type!=="instances")return;let it=b.data,vt=new Set(it.filter((_)=>_.status==="running").map((_)=>_.id));for(let _ of[...T])if(!vt.has(_))T.delete(_);for(let _ of[...W])if(!vt.has(_))W.delete(_);for(let _ of[...k])if(!vt.has(_))k.delete(_);let pt={};for(let _ of it)pt[_.id]=_.attention;if(m)for(let _ in pt){let ht=pt[_];if(ht&&ht!==t(S)[_])if(_===t(u))console.log(`[chime] attention id=${_} state=${ht} — skipped (tab is active/focused)`);else console.log(`[chime] attention id=${_} state=${ht} → playChime`),ti(ht)}else console.log("[chime] first frame after (re)connect — baselining, no chimes");m=!0,n(a,it,!0),n(S,pt,!0),n(v,!0)},()=>{m=!1})}),$t(()=>{if(!t(u)||!t(S)[t(u)])return;let m=()=>{if(document.visibilityState==="visible")zt(`/api/instances/${t(u)}/attention/clear`).catch(()=>{})};return m(),document.addEventListener("visibilitychange",m),()=>document.removeEventListener("visibilitychange",m)});var et=fa(),St=xt(et);let wt;var bt=d(St);{var I=(m)=>{Ae(m,{get running(){return t(p)},get active(){return t(u)},get attention(){return t(S)},get editingId(){return t(C)},onselect:(b)=>D(`/ide/${b}`),onstartrename:R,oncommitrename:V,oncancelrename:z,get editingName(){return t(w)},set editingName(b){n(w,b,!0)}})},L=(m)=>{ze(m,{get preflight(){return t(r)},get instances(){return t(a)},get loaded(){return t(v)}})};N(bt,(m)=>{if(t($))m(I);else m(L,-1)})}var H=s(bt,2);let f;var x=d(H);mt(x,17,()=>t(p),(m)=>m.id,(m,b)=>{var it=oe(),vt=xt(it);{var pt=(ht)=>{var At=oa();let Ht;var g=d(At);{var K=(y)=>{var at=da();A((Nt)=>{rt(at,"src",Nt),rt(at,"title",t(b).name)},[()=>je(t(b))]),Dt("load",at,()=>k.add(t(b).id)),Ue(at),o(y,at)},ut=P(()=>Y(t(b).id));N(g,(y)=>{if(t(ut))y(K)})}var Jt=s(g,2);{var kt=(y)=>{ge(y,{stalledAfterMs:O,onoverride:()=>W.add(t(b).id)})},It=P(()=>!Y(t(b).id)),ct=(y)=>{ge(y,{})},tt=P(()=>!k.has(t(b).id));N(Jt,(y)=>{if(t(It))y(kt);else if(t(tt))y(ct,1)})}l(At),A(()=>Ht=gt(At,1,"pane svelte-1duc7gd",null,Ht,{active:t(b).id===t(u)})),o(ht,At)},_=P(()=>M.has(t(b).id));N(vt,(ht)=>{if(t(_))ht(pt)})}o(m,it)});var B=s(x,2);{var J=(m)=>{var b=sa();o(m,b)};N(B,(m)=>{if(t($)&&t(p).length===0)m(J)})}l(H),l(St);var nt=s(St,2);qe(nt,{toastOptions:{style:"border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"}}),A(()=>{wt=gt(St,1,"app svelte-1duc7gd",null,wt,{ide:t($)}),f=gt(H,1,"panes svelte-1duc7gd",null,f,{hidden:!t($)})}),o(i,et),ot()}ii("AppShell_2rtnxn6pgp2rh",Ve);
@@ -0,0 +1,13 @@
1
+ import{o as Y,p as d,q as M,r as $,s as ne,t as N,u as Z,v as Ke,w as ie,x as Qe}from"/_mochi/client/chunk-sjmcgh7f.js";import{y as k}from"/_mochi/client/chunk-04qv4w6w.js";import{B as f,Ba as be,C as K,Ca as He,Ea as Ce,G as R,H as _,Ha as je,Ja as ze,Ka as De,Ma as I,Na as g,P as b,S as F,U as Q,Ua as Xe,W as Ee,X as i,Y as Je,Z as m,ba as H,ga as s,ka as le,la as w,ma as Me,na as q,pa as X,ra as c,sa as ce,ua as me,va as G}from"/_mochi/client/chunk-qxwt25hn.js";var Ne=new Set(["$$slots","$$events","$$legacy"]);function U(o,p){let r=I(p,Ne),l=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]];k(o,g({name:"copy"},()=>r,{get iconNode(){return l}}))}var Ae=new Set(["$$slots","$$events","$$legacy"]);function B(o,p){let r=I(p,Ae),l=[["path",{d:"M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"}],["path",{d:"m5.082 11.09 8.828 8.828"}]];k(o,g({name:"eraser"},()=>r,{get iconNode(){return l}}))}var Pe=new Set(["$$slots","$$events","$$legacy"]);function W(o,p){let r=I(p,Pe),l=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z"}]];k(o,g({name:"contrast"},()=>r,{get iconNode(){return l}}))}var Ve=new Set(["$$slots","$$events","$$legacy"]);function L(o,p){let r=I(p,Ve),l=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];k(o,g({name:"external-link"},()=>r,{get iconNode(){return l}}))}var Ue="https://github.com/khromov/codebay";function ye(o){return o.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"")}function Se(o){let p=[];for(let r=0;r<M;r++){let l="";for(let a=0;a<$;a++)l+=o[r*$+a]===d?"#":".";p.push(l)}return p}function pe(o){let p=o.pixels.map((r)=>` '${r}'`).join(`,
2
+ `);return`import type { AvatarArt } from './types.ts';
3
+
4
+ const art: AvatarArt = {
5
+ name: '${o.name}',
6
+ pixels: [
7
+ ${p}
8
+ ]
9
+ };
10
+
11
+ export default art;
12
+ `}function Te(o){let p=`Avatar contribution: ${o.name}`,r=["Hi! I drew this avatar in the editor easter egg and I'd love to see it in the official set.","","```",...o.pixels,"```","",`Ready-to-paste module (\`src/avatars/${o.name}.ts\`, plus a line in \`src/avatars/index.ts\`):`,"","```ts",pe(o).trimEnd(),"```","","_It should satisfy `src/avatars/avatars.test.ts`: exactly 8×8, only `#`/`.` pixels, unique name._"].join(`
13
+ `),l=new URLSearchParams({title:p,body:r});return`${Ue}/issues/new?${l}`}var Be=q('<span class="ring-cell svelte-qu6vp4" aria-hidden="true"></span>'),We=q("<span></span>"),Le=q('<section class="editor svelte-qu6vp4"><div class="head svelte-qu6vp4"><h2 class="svelte-qu6vp4">Draw your own avatar</h2></div> <div class="body svelte-qu6vp4"><div class="grid-frame svelte-qu6vp4"><!> <div class="grid svelte-qu6vp4" role="img" aria-label="8 by 8 pixel drawing canvas"></div></div> <div class="side svelte-qu6vp4"><div class="preview"><div class="preview-label svelte-qu6vp4">Preview</div> <div class="preview-row svelte-qu6vp4"><!> <!></div></div> <label class="name-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Name</span> <input type="text" spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/></label> <div class="tools svelte-qu6vp4"><!> <!></div></div></div> <div class="foot svelte-qu6vp4"><span class="hint svelte-qu6vp4">Draw something, then open an issue to get it into the official set.</span> <div class="actions svelte-qu6vp4"><!> <!></div></div></section>');function he(o,p){R(p,!0);let r=F(Ee(Array(M*$).fill(Y))),l=F(""),a=b(()=>ye(s(l))),u=b(()=>({name:s(a)||"my-avatar",pixels:Se(s(r))})),j=b(()=>s(a).length>0&&s(r).some((e)=>e===d)),y=F(null),S=!1,C=d,O=Array.from({length:100},(e,t)=>({r:Math.floor(t/10),c:t%10})).filter(({r:e,c:t})=>e===0||e===9||t===0||t===9);function z(e){if(!s(y))return null;let t=s(y).getBoundingClientRect(),h=Math.floor((e.clientX-t.left)/t.width*$),n=Math.floor((e.clientY-t.top)/t.height*M);if(n<0||n>=M||h<0||h>=$)return null;return n*$+h}function ee(e){let t=z(e);if(t==null)return;e.currentTarget.setPointerCapture?.(e.pointerId),S=!0,C=s(r)[t]===d?Y:d,s(r)[t]=C}function T(e){if(!S)return;let t=z(e);if(t!=null)s(r)[t]=C}function x(){S=!1}function E(){Q(r,Array(M*$).fill(Y),!0)}function A(){Q(r,s(r).map((e)=>e===d?Y:d),!0)}async function P(){try{await navigator.clipboard.writeText(pe(s(u))),ie("Copied — paste it into the GitHub issue")}catch(e){ie.error(`Copy failed: ${e.message}`)}}var D=Le(),se=m(i(D),2),re=i(se),ae=i(re);G(ae,17,()=>O,me,(e,t)=>{let h=()=>s(t).r,n=()=>s(t).c;var V=Be();H(()=>He(V,`grid-row:${h()+1};grid-column:${n()+1}`)),c(e,V)});var v=m(ae,2);G(v,21,()=>s(r),me,(e,t)=>{var h=We();let n;H(()=>n=be(h,1,"cell svelte-qu6vp4",null,n,{on:s(t)===d})),c(e,h)}),f(v),De(v,(e)=>Q(y,e),()=>s(y)),f(re);var ue=m(re,2),te=i(ue),$e=m(i(te),2),xe=i($e);N(xe,{get art(){return s(u)},get name(){return s(u).name},scale:6});var Ye=m(xe,2);N(Ye,{get art(){return s(u)},get name(){return s(u).name},scale:3}),f($e),f(te);var oe=m(te,2),fe=m(i(oe),2);Ce(fe),f(oe);var ve=m(oe,2),Ie=i(ve);Z(Ie,{size:"sm",get icon(){return B},onclick:E,children:(e,t)=>{K();var h=X("Clear");c(e,h)},$$slots:{default:!0}});var Ze=m(Ie,2);Z(Ze,{size:"sm",get icon(){return W},onclick:A,children:(e,t)=>{K();var h=X("Invert");c(e,h)},$$slots:{default:!0}}),f(ve),f(ue),f(se);var ge=m(se,2),ke=m(i(ge),2),qe=i(ke);{let e=b(()=>!s(j));Z(qe,{size:"sm",get icon(){return U},get disabled(){return s(e)},onclick:P,children:(t,h)=>{K();var n=X("Copy");c(t,n)},$$slots:{default:!0}})}var Ge=m(qe,2);{let e=b(()=>!s(j)),t=b(()=>Te(s(u)));Z(Ge,{size:"sm",variant:"primary",get icon(){return L},get disabled(){return s(e)},get href(){return s(t)},target:"_blank",rel:"noopener",children:(h,n)=>{K();var V=X("Open GitHub issue");c(h,V)},$$slots:{default:!0}})}f(ke),f(ge),f(D),H(()=>je(fe,"placeholder",p.namePlaceholder)),w("pointerdown",v,ee),w("pointermove",v,T),w("pointerup",v,x),le("pointercancel",v,x),le("lostpointercapture",v,x),ze(fe,()=>s(l),(e)=>Q(l,e)),c(o,D),_()}Me(["pointerdown","pointermove","pointerup"]);var Fe=q('<span class="title svelte-fkq7sr">Avatars</span>'),we=q('<li class="svelte-fkq7sr"><!> <span class="label svelte-fkq7sr"> </span></li>'),Re=q('<div class="page svelte-fkq7sr"><!> <main class="content svelte-fkq7sr"><!> <section class="catalog svelte-fkq7sr"><header class="svelte-fkq7sr"><h2 class="svelte-fkq7sr">The set</h2> <p class="svelte-fkq7sr"> </p></header> <ul class="svelte-fkq7sr"></ul></section></main></div> <!>',1);function de(o,p){R(p,!0);var r=Re(),l=Je(r),a=i(l);Qe(a,{children:(T,x)=>{var E=Fe();c(T,E)},$$slots:{default:!0}});var u=m(a,2),j=i(u);he(j,{get namePlaceholder(){return p.namePlaceholder}});var y=m(j,2),S=i(y),C=m(i(S),2),O=i(C);f(C),f(S);var z=m(S,2);G(z,21,()=>ne,(T)=>T.name,(T,x)=>{var E=we(),A=i(E);N(A,{get art(){return s(x)},get name(){return s(x).name},scale:8,interactive:!0});var P=m(A,2),D=i(P,!0);f(P),f(E),H(()=>ce(D,s(x).name)),c(T,E)}),f(z),f(y),f(u),f(l);var ee=m(l,2);Ke(ee,{toastOptions:{style:"border:1px solid var(--ink); background:var(--bg-card); color:var(--ink); box-shadow:4px 4px 0 var(--ink); font-family:var(--font-mono); font-size:13px;"}}),H(()=>ce(O,`${ne.length??""} hand-crafted 8×8 sprites`)),c(o,r),_()}Xe("AvatarsView_257s9yq1wwr4f",de);
@@ -0,0 +1 @@
1
+ import{a as nl,c as Gl,d as lv,e as Jl,f as vv,g as sv,h as iv}from"/_mochi/client/chunk-5jnepvzx.js";import{n as Pl}from"/_mochi/client/chunk-hcztrd75.js";import{y as d}from"/_mochi/client/chunk-04qv4w6w.js";import{Aa as Ol,B as i,Ba as fl,C as g,Ca as gl,Ea as rl,G as Il,H as Sl,Ha as Tl,Ja as $l,Ma as u,Na as P,Oa as O,P as V,Ra as _l,S as z,U as m,Ua as fv,W as Rl,X as f,Y as E,Z as h,_ as el,ba as S,ga as v,ka as ql,la as Nl,ma as ol,na as y,qa as q,ra as t,sa as I,ta as M,ua as ul,va as o}from"/_mochi/client/chunk-qxwt25hn.js";var Fv=new Set(["$$slots","$$events","$$legacy"]);function Cl(H,p){let W=u(p,Fv),e=[["path",{d:"m12 19-7-7 7-7"}],["path",{d:"M19 12H5"}]];d(H,P({name:"arrow-left"},()=>W,{get iconNode(){return e}}))}var Ov=new Set(["$$slots","$$events","$$legacy"]);function il(H,p){let W=u(p,Ov),e=[["path",{d:"M7 7h10v10"}],["path",{d:"M7 17 17 7"}]];d(H,P({name:"arrow-up-right"},()=>W,{get iconNode(){return e}}))}var Tv=new Set(["$$slots","$$events","$$legacy"]);function xl(H,p){let W=u(p,Tv),e=[["path",{d:"M20 6 9 17l-5-5"}]];d(H,P({name:"check"},()=>W,{get iconNode(){return e}}))}var Gv=y("<span></span>");function A(H,p){let W=O(p,"variant",3,"text");var e=Gv();let T;S(()=>{fl(e,1,`skel ${W()??""}`,"svelte-tl058d"),T=gl(e,"",T,{width:p.width})}),t(H,e)}var Jv=y('<div class="hrow svelte-1hnopyv"><span><!></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv"> </span></div>'),Qv=y('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <!> <!></div>'),Yv=y('<div class="hrow svelte-1hnopyv"><span class="box idle svelte-1hnopyv"></span> <span class="hlabel svelte-1hnopyv"> </span> <span class="hvalue svelte-1hnopyv">—</span></div>'),Zv=y('<div><div class="panel-bar">Health</div> <div class="health svelte-1hnopyv"><!></div> <div class="hfoot svelte-1hnopyv"> </div></div>');function Fl(H,p){Il(p,!0);let W=["Container running","Code-server reachable"],e=O(p,"health",3,null),T=O(p,"lastFetchedAt",3,null),R=O(p,"active",3,!0),G=O(p,"injectionChecks",3,0),hl=V(()=>{if(!e())return[];let C=(x)=>({ok:x,value:x?"OK":"—"});return[{label:W[0],...C(e().containerRunning)},{label:W[1],...C(e().codeServerAccessible)},...e().injections.map((x)=>({label:x.label,...C(x.ok)}))]});function Ml(){return e()?v(hl).length:W.length+G()}let b=z(Rl(Date.now()));el(()=>{let C=setInterval(()=>m(b,Date.now(),!0),1000);return()=>clearInterval(C)});let B=V(()=>{if(!R()&&!e())return"Container not running";if(!T())return"Waiting for first check…";return`Updated ${Math.max(0,Math.round((v(b)-T())/1000))}s ago`});var L=Zv();let r;var J=h(f(L),2),$=f(J);{var Wl=(C)=>{var x=q(),Y=E(x);o(Y,17,()=>v(hl),(K)=>K.label,(K,X)=>{var N=Jv(),j=f(N),U=f(j);{var n=(Z)=>{xl(Z,{size:12,strokeWidth:3})},ll=(Z)=>{Pl(Z,{size:12,strokeWidth:3})};M(U,(Z)=>{if(v(X).ok)Z(n);else Z(ll,-1)})}i(j);var vl=h(j,2),zl=f(vl,!0);i(vl);var tl=h(vl,2),Dl=f(tl,!0);i(tl),i(N),S(()=>{fl(j,1,`box ${v(X).ok?"ok":"bad"}`,"svelte-1hnopyv"),I(zl,v(X).label),I(Dl,v(X).value)}),t(K,N)}),t(C,x)},jl=(C)=>{var x=q(),Y=E(x);o(Y,17,()=>Array(Ml()),ul,(K,X)=>{var N=Qv(),j=h(f(N),2);A(j,{width:"120px"});var U=h(j,2);A(U,{variant:"pill"}),i(N),t(K,N)}),t(C,x)},kl=(C)=>{var x=q(),Y=E(x);o(Y,16,()=>W,(K)=>K,(K,X)=>{var N=Yv(),j=h(f(N),2),U=f(j,!0);i(j),g(2),i(N),S(()=>I(U,X)),t(K,N)}),t(C,x)};M($,(C)=>{if(e())C(Wl);else if(R())C(jl,1);else C(kl,-1)})}i(J);var Q=h(J,2),_=f(Q,!0);i(Q),i(L),S(()=>{r=fl(L,1,"healthwrap panel svelte-1hnopyv",null,r,{dim:!R()&&!e()}),I(_,v(B))}),t(H,L),Sl()}var Av=y('<form method="POST" action="?/restart" class="svelte-15fxkvm"><button class="restart svelte-15fxkvm" type="submit"> </button></form> <a class="open svelte-15fxkvm" target="_blank" rel="noopener">Open in new tab <!></a>',1),Ev=y('<p class="restart-err svelte-15fxkvm"> </p>'),dl=y('<code class="svelte-15fxkvm"> </code>'),Vv=y('<code class="svelte-15fxkvm">local (project devcontainer.json)</code>'),bv=y('<code class="muted svelte-15fxkvm">—</code>'),Bv=y('<button class="rebuild svelte-15fxkvm"> </button>'),Uv=y('<li class="svelte-15fxkvm"><span class="cp svelte-15fxkvm"> </span> <span class="arr svelte-15fxkvm">→</span> <a target="_blank" rel="noopener" class="svelte-15fxkvm"> <!></a> <button class="rm svelte-15fxkvm" title="Remove">×</button></li>'),cv=y('<ul class="port-list svelte-15fxkvm"></ul>'),gv=y('<p class="empty svelte-15fxkvm">No ports forwarded yet.</p>'),Rv=y('<p class="port-err svelte-15fxkvm"> </p>'),uv=y('<p class="hint pending svelte-15fxkvm">Port changes apply when you <strong class="svelte-15fxkvm">Restart</strong> (recreates the container).</p>'),Pv=y('<div class="err svelte-15fxkvm"> </div>'),dv=y('<header class="topbar svelte-15fxkvm"><a class="back svelte-15fxkvm" href="/"><!> All instances</a> <div class="title svelte-15fxkvm"><span class="name svelte-15fxkvm"> </span> <!></div> <!></header> <!> <main class="stage svelte-15fxkvm"><div class="meta svelte-15fxkvm"><span class="k svelte-15fxkvm">Source</span> <!> <span class="k svelte-15fxkvm">Image</span> <!></div> <div class="healthslot svelte-15fxkvm"><!></div> <section class="ports panel svelte-15fxkvm"><div class="ports-bar panel-bar svelte-15fxkvm"><span class="svelte-15fxkvm">Forwarded ports</span> <!></div> <div class="ports-body svelte-15fxkvm"><!> <form class="add svelte-15fxkvm"><input type="number" min="1" max="65535" placeholder="container port (e.g. 3000)" spellcheck="false" class="svelte-15fxkvm"/> <button type="submit" class="svelte-15fxkvm">Add</button></form> <!> <!> <p class="hint svelte-15fxkvm">Your app must bind to <code class="svelte-15fxkvm">0.0.0.0</code> inside the container to be reachable.</p></div></section> <div class="logwrap panel svelte-15fxkvm"><div class="log-bar panel-bar svelte-15fxkvm"><span class="svelte-15fxkvm">Boot log</span> <button class="copy svelte-15fxkvm"> </button></div> <div class="logs svelte-15fxkvm"><pre class="svelte-15fxkvm"> <span class="caret svelte-15fxkvm"></span></pre></div> <!></div></main>',1);function Ql(H,p){Il(p,!0);let W=O(p,"injectionChecks",3,0),e=z(null),T=z(null),R=z(null),G=z("");function hl(l){l.scrollTop=l.scrollHeight}el(()=>sv(`/api/instances/${p.id}/logs`,(l)=>m(G,v(G)+l),()=>m(G,""))),el(()=>iv((l)=>{if(l.type==="instances"){let s=l.data.find((a)=>a.id===p.id);if(s)m(e,s,!0)}else if(l.type==="health"&&l.data.id===p.id)m(T,l.data.health,!0),m(R,Date.now(),!0)}));let Ml=V(()=>v(e)?nl(v(e)):"#"),b=z(""),B=z(null),L=z(!1),r=V(()=>v(e)?.forwarded_ports??[]),J=V(()=>v(e)?.status==="creating");async function $(l){m(B,null);try{return await l(),!0}catch(s){return m(B,s.message,!0),!1}}async function Wl(l){l.preventDefault();let s=Number.parseInt(v(b),10);if(!Number.isInteger(s)||s<1||s>65535){m(B,"Enter a port number between 1 and 65535");return}if(await $(()=>Gl(`/api/instances/${p.id}/ports`,{port:s})))m(b,""),m(L,!0)}async function jl(l){if(await $(()=>lv(`/api/instances/${p.id}/ports/${l}`)))m(L,!0)}async function kl(){if(await $(()=>Gl(`/api/instances/${p.id}/rebuild`)))m(L,!1)}let Q=z(null),_=z(!1),C={onPending:(l)=>m(_,l,!0),submit:()=>{return m(Q,null),({result:l})=>{if(l.type==="failure")m(Q,l.data?.error??"Restart failed",!0);else if(l.type==="error")m(Q,"Network error. Try again.")}}},x=z(!1),Y;async function K(){await navigator.clipboard.writeText(v(G)),m(x,!0),clearTimeout(Y),Y=setTimeout(()=>m(x,!1),2000)}var X=dv(),N=E(X),j=f(N),U=f(j);Cl(U,{size:15}),g(),i(j);var n=h(j,2),ll=f(n),vl=f(ll,!0);i(ll);var zl=h(ll,2);{var tl=(l)=>{vv(l,{get status(){return v(e).status}})},Dl=(l)=>{A(l,{variant:"pill"})};M(zl,(l)=>{if(v(e))l(tl);else l(Dl,-1)})}i(n);var Z=h(n,2);{var ev=(l)=>{var s=Av(),a=E(s),w=f(a),c=f(w,!0);i(w),i(a),Ol(a,()=>_l(C));var F=h(a,2),k=h(f(F));il(k,{size:15}),i(F),S(()=>{w.disabled=v(_)||v(J),I(c,v(_)||v(J)?"Restarting…":"Restart container"),Tl(F,"href",v(Ml))}),t(l,s)};M(Z,(l)=>{if(v(e)?.status==="running")l(ev)})}i(N);var Yl=h(N,2);{var hv=(l)=>{var s=Ev(),a=f(s,!0);i(s),S(()=>I(a,v(Q))),t(l,s)};M(Yl,(l)=>{if(v(Q))l(hv)})}var Zl=h(Yl,2),Hl=f(Zl),Al=h(f(Hl),2);{var tv=(l)=>{var s=dl(),a=f(s,!0);i(s),S(()=>I(a,v(e).source_path)),t(l,s)},pv=(l)=>{A(l,{variant:"wide"})};M(Al,(l)=>{if(v(e))l(tv);else l(pv,-1)})}var av=h(Al,4);{var mv=(l)=>{var s=q(),a=E(s);{var w=(k)=>{var D=Vv();t(k,D)},c=(k)=>{var D=dl(),yl=f(D,!0);i(D),S(()=>I(yl,v(e).image_source)),t(k,D)},F=(k)=>{var D=bv();t(k,D)};M(a,(k)=>{if(v(e).image_source==="local")k(w);else if(v(e).image_source)k(c,1);else k(F,-1)})}t(l,s)},yv=(l)=>{A(l,{variant:"wide"})};M(av,(l)=>{if(v(e))l(mv);else l(yv,-1)})}i(Hl);var Kl=h(Hl,2),Cv=f(Kl);{let l=V(()=>!v(e)||v(e).status==="running");Fl(Cv,{get health(){return v(T)},get lastFetchedAt(){return v(R)},get injectionChecks(){return W()},get active(){return v(l)}})}i(Kl);var Ll=h(Kl,2),Xl=f(Ll),xv=h(f(Xl),2);{var Iv=(l)=>{var s=Bv(),a=f(s,!0);i(s),S(()=>{s.disabled=v(J),I(a,v(J)?"Restarting…":"Restart to apply")}),Nl("click",s,kl),t(l,s)};M(xv,(l)=>{if(v(L))l(Iv)})}i(Xl);var El=h(Xl,2),Vl=f(El);{var Sv=(l)=>{var s=cv();o(s,21,()=>v(r),(a)=>a.container_port,(a,w)=>{var c=Uv(),F=f(c),k=f(F);i(F);var D=h(F,4),yl=f(D),Kv=h(yl);il(Kv,{size:12}),i(D);var Lv=h(D,2);i(c),S((Xv,wv)=>{I(k,`:${v(w).container_port??""}`),Tl(D,"href",Xv),I(yl,`${wv??""} `)},[()=>Jl(v(w).host_port),()=>Jl(v(w).host_port).replace("http://","")]),Nl("click",Lv,()=>jl(v(w).container_port)),t(a,c)}),i(s),t(l,s)},Nv=(l)=>{var s=gv();t(l,s)};M(Vl,(l)=>{if(v(r).length)l(Sv);else l(Nv,-1)})}var pl=h(Vl,2),bl=f(pl);rl(bl),g(2),i(pl);var Bl=h(pl,2);{var Mv=(l)=>{var s=Rv(),a=f(s,!0);i(s),S(()=>I(a,v(B))),t(l,s)};M(Bl,(l)=>{if(v(B))l(Mv)})}var Wv=h(Bl,2);{var jv=(l)=>{var s=uv();t(l,s)};M(Wv,(l)=>{if(v(L))l(jv)})}g(2),i(El),i(Ll);var Ul=h(Ll,2),wl=f(Ul),al=h(f(wl),2),kv=f(al,!0);i(al),i(wl);var ml=h(wl,2),cl=f(ml),zv=f(cl,!0);g(),i(cl),i(ml),Ol(ml,()=>hl);var Dv=h(ml,2);{var Hv=(l)=>{var s=Pv(),a=f(s,!0);i(s),S(()=>I(a,v(e).error)),t(l,s)};M(Dv,(l)=>{if(v(e)?.status==="error"&&v(e).error)l(Hv)})}i(Ul),i(Zl),S(()=>{I(vl,v(e)?.name??"Instance"),al.disabled=!v(G),I(kv,v(x)?"Copied!":"Copy logs"),I(zv,v(G)||"Waiting for output…")}),ql("submit",pl,Wl),$l(bl,()=>v(b),(l)=>m(b,l)),Nl("click",al,K),t(H,X),Sl()}ol(["click"]);fv("InstanceView_2ma45l9bybfhl",Ql);