cursor-local-remote 0.1.3 → 0.1.4
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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +9 -9
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +17 -17
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/chat/route.js +1 -1
- package/.next/server/app/api/info/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/sessions/active/route.js +1 -1
- package/.next/server/app/api/sessions/watch/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/README.md +1 -0
- package/bin/cursor-remote.mjs +23 -7
- package/package.json +1 -1
- /package/.next/static/{haTT_JhY1uFx0nYR01IbS → -6W-b8zo1JxI5xnrQSvNd}/_buildManifest.js +0 -0
- /package/.next/static/{haTT_JhY1uFx0nYR01IbS → -6W-b8zo1JxI5xnrQSvNd}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
-6W-b8zo1JxI5xnrQSvNd
|
|
@@ -22,6 +22,13 @@
|
|
|
22
22
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
23
23
|
"static/chunks/app/manifest.webmanifest/route-05d013d09b933dec.js"
|
|
24
24
|
],
|
|
25
|
+
"/api/chat/route": [
|
|
26
|
+
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
27
|
+
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
28
|
+
"static/chunks/255-ebd51be49873d76c.js",
|
|
29
|
+
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
30
|
+
"static/chunks/app/api/chat/route-05d013d09b933dec.js"
|
|
31
|
+
],
|
|
25
32
|
"/api/info/route": [
|
|
26
33
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
27
34
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
@@ -50,13 +57,6 @@
|
|
|
50
57
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
51
58
|
"static/chunks/app/api/sessions/active/route-05d013d09b933dec.js"
|
|
52
59
|
],
|
|
53
|
-
"/api/models/route": [
|
|
54
|
-
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
55
|
-
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
56
|
-
"static/chunks/255-ebd51be49873d76c.js",
|
|
57
|
-
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
58
|
-
"static/chunks/app/api/models/route-05d013d09b933dec.js"
|
|
59
|
-
],
|
|
60
60
|
"/api/sessions/history/route": [
|
|
61
61
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
62
62
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
65
65
|
"static/chunks/app/api/sessions/history/route-05d013d09b933dec.js"
|
|
66
66
|
],
|
|
67
|
-
"/api/
|
|
67
|
+
"/api/models/route": [
|
|
68
68
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
69
69
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
70
70
|
"static/chunks/255-ebd51be49873d76c.js",
|
|
71
71
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
72
|
-
"static/chunks/app/api/
|
|
72
|
+
"static/chunks/app/api/models/route-05d013d09b933dec.js"
|
|
73
73
|
],
|
|
74
74
|
"/api/sessions/route": [
|
|
75
75
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"/apple-icon.png/route": "/apple-icon.png",
|
|
4
4
|
"/icon.png/route": "/icon.png",
|
|
5
5
|
"/manifest.webmanifest/route": "/manifest.webmanifest",
|
|
6
|
+
"/api/chat/route": "/api/chat",
|
|
6
7
|
"/api/info/route": "/api/info",
|
|
7
8
|
"/api/push/vapid-key/route": "/api/push/vapid-key",
|
|
8
9
|
"/api/push/subscribe/route": "/api/push/subscribe",
|
|
9
10
|
"/api/sessions/active/route": "/api/sessions/active",
|
|
10
|
-
"/api/models/route": "/api/models",
|
|
11
11
|
"/api/sessions/history/route": "/api/sessions/history",
|
|
12
|
-
"/api/
|
|
12
|
+
"/api/models/route": "/api/models",
|
|
13
13
|
"/api/sessions/route": "/api/sessions",
|
|
14
14
|
"/api/sessions/watch/route": "/api/sessions/watch",
|
|
15
15
|
"/page": "/"
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/-6W-b8zo1JxI5xnrQSvNd/_buildManifest.js",
|
|
9
|
+
"static/-6W-b8zo1JxI5xnrQSvNd/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [
|
|
12
12
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"x-next-revalidate-tag-token"
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
|
-
"/
|
|
33
|
+
"/apple-icon.png": {
|
|
34
34
|
"initialHeaders": {
|
|
35
|
-
"cache-control": "public, max-age=
|
|
36
|
-
"content-type": "
|
|
37
|
-
"x-next-cache-tags": "_N_T_/layout,_N_T_/
|
|
35
|
+
"cache-control": "public, immutable, no-transform, max-age=31536000",
|
|
36
|
+
"content-type": "image/png",
|
|
37
|
+
"x-next-cache-tags": "_N_T_/layout,_N_T_/apple-icon.png/layout,_N_T_/apple-icon.png/route,_N_T_/apple-icon.png"
|
|
38
38
|
},
|
|
39
39
|
"experimentalBypassFor": [
|
|
40
40
|
{
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
],
|
|
50
50
|
"initialRevalidateSeconds": false,
|
|
51
|
-
"srcRoute": "/
|
|
51
|
+
"srcRoute": "/apple-icon.png",
|
|
52
52
|
"dataRoute": null,
|
|
53
53
|
"allowHeader": [
|
|
54
54
|
"host",
|
|
@@ -59,11 +59,11 @@
|
|
|
59
59
|
"x-next-revalidate-tag-token"
|
|
60
60
|
]
|
|
61
61
|
},
|
|
62
|
-
"/
|
|
62
|
+
"/manifest.webmanifest": {
|
|
63
63
|
"initialHeaders": {
|
|
64
|
-
"cache-control": "public,
|
|
65
|
-
"content-type": "
|
|
66
|
-
"x-next-cache-tags": "_N_T_/layout,_N_T_/
|
|
64
|
+
"cache-control": "public, max-age=0, must-revalidate",
|
|
65
|
+
"content-type": "application/manifest+json",
|
|
66
|
+
"x-next-cache-tags": "_N_T_/layout,_N_T_/manifest.webmanifest/layout,_N_T_/manifest.webmanifest/route,_N_T_/manifest.webmanifest"
|
|
67
67
|
},
|
|
68
68
|
"experimentalBypassFor": [
|
|
69
69
|
{
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
}
|
|
78
78
|
],
|
|
79
79
|
"initialRevalidateSeconds": false,
|
|
80
|
-
"srcRoute": "/
|
|
80
|
+
"srcRoute": "/manifest.webmanifest",
|
|
81
81
|
"dataRoute": null,
|
|
82
82
|
"allowHeader": [
|
|
83
83
|
"host",
|
|
@@ -88,7 +88,8 @@
|
|
|
88
88
|
"x-next-revalidate-tag-token"
|
|
89
89
|
]
|
|
90
90
|
},
|
|
91
|
-
"/": {
|
|
91
|
+
"/_not-found": {
|
|
92
|
+
"initialStatus": 404,
|
|
92
93
|
"experimentalBypassFor": [
|
|
93
94
|
{
|
|
94
95
|
"type": "header",
|
|
@@ -101,8 +102,8 @@
|
|
|
101
102
|
}
|
|
102
103
|
],
|
|
103
104
|
"initialRevalidateSeconds": false,
|
|
104
|
-
"srcRoute": "/",
|
|
105
|
-
"dataRoute": "/
|
|
105
|
+
"srcRoute": "/_not-found",
|
|
106
|
+
"dataRoute": "/_not-found.rsc",
|
|
106
107
|
"allowHeader": [
|
|
107
108
|
"host",
|
|
108
109
|
"x-matched-path",
|
|
@@ -112,8 +113,7 @@
|
|
|
112
113
|
"x-next-revalidate-tag-token"
|
|
113
114
|
]
|
|
114
115
|
},
|
|
115
|
-
"/
|
|
116
|
-
"initialStatus": 404,
|
|
116
|
+
"/": {
|
|
117
117
|
"experimentalBypassFor": [
|
|
118
118
|
{
|
|
119
119
|
"type": "header",
|
|
@@ -126,8 +126,8 @@
|
|
|
126
126
|
}
|
|
127
127
|
],
|
|
128
128
|
"initialRevalidateSeconds": false,
|
|
129
|
-
"srcRoute": "/
|
|
130
|
-
"dataRoute": "/
|
|
129
|
+
"srcRoute": "/",
|
|
130
|
+
"dataRoute": "/index.rsc",
|
|
131
131
|
"allowHeader": [
|
|
132
132
|
"host",
|
|
133
133
|
"x-matched-path",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--_6W_b8zo1JxI5xnrQSvNd--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/491f5e1d36eb62fc.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-11d8cab0ea5a792e.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"SwRegister\"]\n5:I[2317,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"PwaInstall\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/491f5e1d36eb62fc.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-6W-b8zo1JxI5xnrQSvNd\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/491f5e1d36eb62fc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L10\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -10,7 +10,7 @@ c:I[4431,[],"MetadataBoundary"]
|
|
|
10
10
|
d:"$Sreact.suspense"
|
|
11
11
|
f:I[7150,[],""]
|
|
12
12
|
:HL["/_next/static/css/491f5e1d36eb62fc.css","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"-6W-b8zo1JxI5xnrQSvNd","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/491f5e1d36eb62fc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"overscroll-none","children":[["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L4",null,{}],["$","$L5",null,{}]]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
|
|
14
14
|
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0b"}]]
|
|
15
15
|
7:null
|
|
16
16
|
10:I[622,[],"IconMark"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var a={};a.id=276,a.ids=[276],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=3e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=1e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{POST:()=>E,dynamic:()=>D});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356);let u=require("node:crypto");var v=c(9646);let w=!1;var x=c(5221),y=c(6492),z=c(6277),A=c(6505),B=c(7093),C=c(401);let D="force-dynamic";async function E(a){let b=await (0,B.Y2)(a);if(b instanceof Response)return b;let c=(0,A.OG)(A.LS,b);if("error"in c)return(0,B.li)(c.error);let d=c.data,e=(0,x.K)();try{var f;let a=(0,u.randomUUID)(),b=function(a){if(!w)try{(0,v.execFileSync)("agent",["--version"],{stdio:"ignore",timeout:5e3}),w=!0}catch{throw Error("Could not find the 'agent' CLI. Make sure Cursor is installed and the CLI is on your PATH.")}let b=["-p",a.prompt,"--output-format","stream-json","--stream-partial-output"];return"1"===process.env.CURSOR_TRUST&&b.push("--trust"),a.sessionId&&b.push("--resume",a.sessionId),a.workspace&&b.push("--workspace",a.workspace),a.model&&b.push("--model",a.model),a.mode&&"agent"!==a.mode&&b.push("--mode",a.mode),(0,v.spawn)("agent",b,{stdio:["pipe","pipe","pipe"],env:{...process.env}})}({prompt:d.prompt,sessionId:d.sessionId,workspace:e,model:d.model,mode:d.mode});(0,z.VS)(a,b,e),d.sessionId&&(0,z.Xw)(a,d.sessionId),b.stderr?.on("data",a=>{let b=a.toString().trim();b&&console.error("[agent stderr]",b)});let c=await (f=d.prompt,new Promise(c=>{let d=!1,g="",h=null,i=setTimeout(()=>{d||c(null)},C.Wf);b.stdout?.on("data",b=>{let j=(g+=b.toString()).split("\n");for(let b of(g=j.pop()||"",j))if(b.trim())try{let g=JSON.parse(b);!d&&"system"===g.type&&"init"===g.subtype&&g.session_id&&(d=!0,h=g.session_id,clearTimeout(i),(0,y.ih)(g.session_id,e,f),(0,z.Xw)(a,g.session_id),c(g.session_id)),h&&("user"===g.type||"assistant"===g.type)&&(0,z.D7)(h,g)}catch{}}),b.on("close",()=>{d||(clearTimeout(i),c(null))}),b.on("error",()=>{d||(clearTimeout(i),c(null))})}));if(!c)return b.kill("SIGTERM"),(0,B.ig)("Agent failed to start");return Response.json({sessionId:c})}catch(a){return(0,B.Jo)(a,"Failed to start agent"),(0,B.ig)("Failed to start agent")}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:"app/api/chat/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/chat/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){var d;let e="/api/chat/route";"/index"===e&&(e="/");let g=await F.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),E=!!(y.dynamicRoutes[D]||y.routes[C]);if(E&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!E||F.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===F.isDev||!E,I=E&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>F.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>F.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!E)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await F.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!E)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&E||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),E)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5221:(a,b,c)=>{"use strict";c.d(b,{K:()=>e});var d=c(9902);function e(){let a=process.env.CURSOR_WORKSPACE;return a?(0,d.resolve)(a):process.cwd()}},6277:(a,b,c)=>{"use strict";c.d(b,{$m:()=>p,D7:()=>i,F1:()=>o,Ki:()=>j,VS:()=>l,Xw:()=>n,ix:()=>q,pl:()=>k,xy:()=>m});var d=c(401);let e=new Map,f=new Map,g=new Map,h=new Map;function i(a,b){let c=g.get(a);c||(c=[],g.set(a,c)),c.push(b);let d=h.get(a);if(d)for(let a of d)a()}function j(a){return g.get(a)??[]}function k(a,b){let c=h.get(a);c||(c=new Set,h.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function l(a,b,c){let i={child:b,sessionId:null,mapKey:a,workspace:c,startedAt:Date.now()};e.set(a,i);let j=()=>{i.sessionId??i.mapKey,e.delete(i.mapKey);let a=f.get(i.mapKey);if(a)for(let b of(f.delete(i.mapKey),a))b();setTimeout(()=>{g.delete(i.mapKey),h.delete(i.mapKey)},d.c1)};b.on("close",j),b.on("error",j)}function m(a,b){if(!e.has(a))return b(),()=>{};let c=f.get(a);c||(c=new Set,f.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function n(a,b){let c=e.get(a);c&&(c.sessionId=b,b!==a&&(e.set(b,c),e.delete(a),c.mapKey=b))}function o(){let a=new Set;for(let[b,c]of e)a.add(c.sessionId??b);return Array.from(a)}function p(a){return e.has(a)}function q(a){let b=e.get(a);return!!b&&(b.child.kill("SIGTERM"),!0)}},6293:a=>{"use strict";a.exports=require("sql.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6492:(a,b,c)=>{"use strict";c.d(b,{GW:()=>r,Lf:()=>n,ME:()=>s,ih:()=>q});var d=c(6293),e=c.n(d),f=c(9902),g=c(9439),h=c(9021);let i=(0,f.join)((0,g.homedir)(),".cursor-local-remote"),j=(0,f.join)(i,"sessions.db"),k=null,l=null;function m(){k&&(0,h.writeFileSync)(j,Buffer.from(k.export()))}async function n(){if(k)return k;let{Database:a}=await (!l&&(l=e()()),l);return(0,h.mkdirSync)(i,{recursive:!0}),(k=(0,h.existsSync)(j)?new a((0,h.readFileSync)(j)):new a).run(`
|
|
1
|
+
(()=>{var a={};a.id=276,a.ids=[276],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=6e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=3e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},1926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{POST:()=>E,dynamic:()=>D});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356);let u=require("node:crypto");var v=c(9646);let w=!1;var x=c(5221),y=c(6492),z=c(6277),A=c(6505),B=c(7093),C=c(401);let D="force-dynamic";async function E(a){let b=await (0,B.Y2)(a);if(b instanceof Response)return b;let c=(0,A.OG)(A.LS,b);if("error"in c)return(0,B.li)(c.error);let d=c.data,e=(0,x.K)();try{var f;let a=(0,u.randomUUID)(),b=function(a){if(!w)try{(0,v.execFileSync)("agent",["--version"],{stdio:"ignore",timeout:5e3}),w=!0}catch{throw Error("Could not find the 'agent' CLI. Make sure Cursor is installed and the CLI is on your PATH.")}let b=["-p",a.prompt,"--output-format","stream-json","--stream-partial-output"];return"1"===process.env.CURSOR_TRUST&&b.push("--trust"),a.sessionId&&b.push("--resume",a.sessionId),a.workspace&&b.push("--workspace",a.workspace),a.model&&b.push("--model",a.model),a.mode&&"agent"!==a.mode&&b.push("--mode",a.mode),(0,v.spawn)("agent",b,{stdio:["pipe","pipe","pipe"],env:{...process.env}})}({prompt:d.prompt,sessionId:d.sessionId,workspace:e,model:d.model,mode:d.mode});(0,z.VS)(a,b,e),d.sessionId&&(0,z.Xw)(a,d.sessionId);let c="1"===process.env.CLR_VERBOSE;b.stderr?.on("data",a=>{let b=a.toString().trim();b&&console.error("[agent stderr]",b)}),c&&console.log(`[chat] spawning agent in ${e} (model=${d.model??"default"}, mode=${d.mode??"agent"})`);let g=await (f=d.prompt,new Promise(c=>{let d=!1,g="",h=null,i=setTimeout(()=>{d||c(null)},C.Wf);b.stdout?.on("data",b=>{let j=(g+=b.toString()).split("\n");for(let b of(g=j.pop()||"",j))if(b.trim())try{let g=JSON.parse(b);!d&&"system"===g.type&&"init"===g.subtype&&g.session_id&&(d=!0,h=g.session_id,clearTimeout(i),(0,y.ih)(g.session_id,e,f),(0,z.Xw)(a,g.session_id),c(g.session_id)),h&&("user"===g.type||"assistant"===g.type)&&(0,z.D7)(h,g)}catch{}}),b.on("close",()=>{d||(clearTimeout(i),c(null))}),b.on("error",()=>{d||(clearTimeout(i),c(null))})}));if(!g)return b.kill("SIGTERM"),console.error("[chat] agent did not emit init event within timeout"),(0,B.ig)("Agent failed to start");return c&&console.log(`[chat] agent started session ${g}`),Response.json({sessionId:g})}catch(a){return(0,B.Jo)(a,"Failed to start agent"),(0,B.ig)("Failed to start agent")}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:"app/api/chat/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/chat/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){var d;let e="/api/chat/route";"/index"===e&&(e="/");let g=await F.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),E=!!(y.dynamicRoutes[D]||y.routes[C]);if(E&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!E||F.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===F.isDev||!E,I=E&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>F.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>F.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!E)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await F.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!E)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&E||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),E)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5221:(a,b,c)=>{"use strict";c.d(b,{K:()=>e});var d=c(9902);function e(){let a=process.env.CURSOR_WORKSPACE;return a?(0,d.resolve)(a):process.cwd()}},6277:(a,b,c)=>{"use strict";c.d(b,{$m:()=>p,D7:()=>i,F1:()=>o,Ki:()=>j,VS:()=>l,Xw:()=>n,ix:()=>q,pl:()=>k,xy:()=>m});var d=c(401);let e=new Map,f=new Map,g=new Map,h=new Map;function i(a,b){let c=g.get(a);c||(c=[],g.set(a,c)),c.push(b);let d=h.get(a);if(d)for(let a of d)a()}function j(a){return g.get(a)??[]}function k(a,b){let c=h.get(a);c||(c=new Set,h.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function l(a,b,c){let i={child:b,sessionId:null,mapKey:a,workspace:c,startedAt:Date.now()};e.set(a,i);let j=()=>{i.sessionId??i.mapKey,e.delete(i.mapKey);let a=f.get(i.mapKey);if(a)for(let b of(f.delete(i.mapKey),a))b();setTimeout(()=>{g.delete(i.mapKey),h.delete(i.mapKey)},d.c1)};b.on("close",j),b.on("error",j)}function m(a,b){if(!e.has(a))return b(),()=>{};let c=f.get(a);c||(c=new Set,f.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function n(a,b){let c=e.get(a);c&&(c.sessionId=b,b!==a&&(e.set(b,c),e.delete(a),c.mapKey=b))}function o(){let a=new Set;for(let[b,c]of e)a.add(c.sessionId??b);return Array.from(a)}function p(a){return e.has(a)}function q(a){let b=e.get(a);return!!b&&(b.child.kill("SIGTERM"),!0)}},6293:a=>{"use strict";a.exports=require("sql.js")},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6492:(a,b,c)=>{"use strict";c.d(b,{GW:()=>r,Lf:()=>n,ME:()=>s,ih:()=>q});var d=c(6293),e=c.n(d),f=c(9902),g=c(9439),h=c(9021);let i=(0,f.join)((0,g.homedir)(),".cursor-local-remote"),j=(0,f.join)(i,"sessions.db"),k=null,l=null;function m(){k&&(0,h.writeFileSync)(j,Buffer.from(k.export()))}async function n(){if(k)return k;let{Database:a}=await (!l&&(l=e()()),l);return(0,h.mkdirSync)(i,{recursive:!0}),(k=(0,h.existsSync)(j)?new a((0,h.readFileSync)(j)):new a).run(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
title TEXT NOT NULL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=26,a.ids=[26],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=
|
|
1
|
+
(()=>{var a={};a.id=26,a.ids=[26],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=6e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=3e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(1237),e=c(5088),f=c(7679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5221:(a,b,c)=>{"use strict";c.d(b,{K:()=>e});var d=c(9902);function e(){let a=process.env.CURSOR_WORKSPACE;return a?(0,d.resolve)(a):process.cwd()}},5736:(a,b,c)=>{"use strict";a.exports=c(4870)},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},8335:()=>{},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9439:a=>{"use strict";a.exports=require("os")},9857:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,dynamic:()=>x});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356),u=c(9439),v=c(5221),w=c(401);let x="force-dynamic";async function y(){let a=function(a=3100){let b=function(){let a=(0,u.networkInterfaces)();for(let b of Object.keys(a)){let c=a[b];if(c){for(let a of c)if("IPv4"===a.family&&!a.internal)return a.address}}return null}();return{lanIp:b||"localhost",port:a,url:b?`http://${b}:${a}`:`http://localhost:${a}`}}(parseInt(process.env.PORT||String(w.Wg),10)),b=process.env.AUTH_TOKEN,c=b?`${a.url}?token=${b}`:a.url;return Response.json({...a,authUrl:c,workspace:(0,v.K)()})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/info/route",pathname:"/api/info",filename:"route",bundlePath:"app/api/info/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/info/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/info/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},9902:a=>{"use strict";a.exports=require("path")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873],()=>b(b.s=9857));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=
|
|
1
|
+
(()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=6e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=3e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(1237),e=c(5088),f=c(7679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5736:(a,b,c)=>{"use strict";a.exports=c(4870)},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},7093:(a,b,c)=>{"use strict";function d(a,b){return Response.json({error:a},{status:b})}function e(a){return d(a,400)}function f(a){return d(a,404)}function g(a="Internal server error"){return d(a,500)}function h(a,b){return a instanceof Error&&console.error(a),b}async function i(a){try{return await a.json()}catch{return e("Invalid JSON body")}}c.d(b,{Jo:()=>h,Y2:()=>i,ig:()=>g,li:()=>e,mX:()=>f})},7581:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>B,dynamic:()=>z});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356),u=c(9646),v=c(8354),w=c(7093),x=c(401);let y=(0,v.promisify)(u.execFile),z="force-dynamic",A=null;async function B(){if(A&&Date.now()-A.fetchedAt<x.QO)return Response.json({models:A.models});try{"1"===process.env.CLR_VERBOSE&&console.log(`[models] fetching (timeout=${x.ZU}ms)`);let{stdout:a}=await y("agent",["models"],{encoding:"utf-8",timeout:x.ZU}),b=function(a){let b=[];for(let c of a.split("\n")){let a=c.trim();if(!a||a.startsWith("Available")||a.startsWith("Tip:"))continue;let d=a.match(/^(\S+)\s+-\s+(.+?)(?:\s+\((default|current)(?:,\s*(default|current))?\))?$/);if(!d)continue;let[,e,f,g,h]=d,i=[g,h].filter(Boolean);b.push({id:e,label:f.trim(),isDefault:i.includes("default"),isCurrent:i.includes("current")})}return b}(a);return b.length>0&&(A={models:b,fetchedAt:Date.now()}),Response.json({models:b})}catch(a){return(0,w.Jo)(a,"Failed to fetch models"),(0,w.ig)("Failed to fetch models")}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/models/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/models/route";"/index"===e&&(e="/");let g=await C.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>C.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},8335:()=>{},8354:a=>{"use strict";a.exports=require("util")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9646:a=>{"use strict";a.exports=require("child_process")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873],()=>b(b.s=7581));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=974,a.ids=[974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=
|
|
1
|
+
(()=>{var a={};a.id=974,a.ids=[974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=6e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=3e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},3956:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{DELETE:()=>z,GET:()=>y,dynamic:()=>x});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356),u=c(6277),v=c(6505),w=c(7093);let x="force-dynamic";async function y(){return Response.json({sessions:(0,u.F1)()})}async function z(a){let b=await (0,w.Y2)(a);if(b instanceof Response)return b;let c=(0,v.OG)(v.li,b);if("error"in c)return(0,w.li)(c.error);let d=(0,u.ix)(c.data.sessionId);return Response.json({killed:d})}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sessions/active/route",pathname:"/api/sessions/active",filename:"route",bundlePath:"app/api/sessions/active/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/sessions/active/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sessions/active/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6277:(a,b,c)=>{"use strict";c.d(b,{$m:()=>p,D7:()=>i,F1:()=>o,Ki:()=>j,VS:()=>l,Xw:()=>n,ix:()=>q,pl:()=>k,xy:()=>m});var d=c(401);let e=new Map,f=new Map,g=new Map,h=new Map;function i(a,b){let c=g.get(a);c||(c=[],g.set(a,c)),c.push(b);let d=h.get(a);if(d)for(let a of d)a()}function j(a){return g.get(a)??[]}function k(a,b){let c=h.get(a);c||(c=new Set,h.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function l(a,b,c){let i={child:b,sessionId:null,mapKey:a,workspace:c,startedAt:Date.now()};e.set(a,i);let j=()=>{i.sessionId??i.mapKey,e.delete(i.mapKey);let a=f.get(i.mapKey);if(a)for(let b of(f.delete(i.mapKey),a))b();setTimeout(()=>{g.delete(i.mapKey),h.delete(i.mapKey)},d.c1)};b.on("close",j),b.on("error",j)}function m(a,b){if(!e.has(a))return b(),()=>{};let c=f.get(a);c||(c=new Set,f.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function n(a,b){let c=e.get(a);c&&(c.sessionId=b,b!==a&&(e.set(b,c),e.delete(a),c.mapKey=b))}function o(){let a=new Set;for(let[b,c]of e)a.add(c.sessionId??b);return Array.from(a)}function p(a){return e.has(a)}function q(a){let b=e.get(a);return!!b&&(b.child.kill("SIGTERM"),!0)}},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6505:(a,b,c)=>{"use strict";c.d(b,{LS:()=>f,OG:()=>i,li:()=>g,vc:()=>h});var d=c(8629);let e=d.YjP().regex(/^[a-zA-Z0-9_-]{1,128}$/,"invalid sessionId"),f=d.Ikc({prompt:d.YjP().min(1,"prompt is required"),sessionId:e.optional(),model:d.YjP().max(128).regex(/^[a-zA-Z0-9._/-]+$/,"invalid model").optional(),mode:d.k5n(["agent","ask","plan"]).optional()}),g=d.Ikc({sessionId:e}),h=e;function i(a,b){let c=a.safeParse(b);if(c.success)return{data:c.data};let d=c.error.issues[0];return{error:d?.message??"Validation failed"}}},7093:(a,b,c)=>{"use strict";function d(a,b){return Response.json({error:a},{status:b})}function e(a){return d(a,400)}function f(a){return d(a,404)}function g(a="Internal server error"){return d(a,500)}function h(a,b){return a instanceof Error&&console.error(a),b}async function i(a){try{return await a.json()}catch{return e("Invalid JSON body")}}c.d(b,{Jo:()=>h,Y2:()=>i,ig:()=>g,li:()=>e,mX:()=>f})},8335:()=>{},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,878],()=>b(b.s=3956));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var a={};a.id=9,a.ids=[9],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=
|
|
1
|
+
(()=>{var a={};a.id=9,a.ids=[9],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},401:(a,b,c)=>{"use strict";c.d(b,{Mf:()=>k,QO:()=>i,UH:()=>g,Wf:()=>d,Wg:()=>l,ZU:()=>j,c1:()=>e,jf:()=>f,wS:()=>h});let d=6e4,e=12e4,f=150,g=15e3,h=800,i=3e5,j=3e4,k=300,l=3100},846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},2808:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>J,patchFetch:()=>I,routeModule:()=>E,serverHooks:()=>H,workAsyncStorage:()=>F,workUnitAsyncStorage:()=>G});var d={};c.r(d),c.d(d,{GET:()=>D,dynamic:()=>B});var e=c(5736),f=c(9117),g=c(4044),h=c(9326),i=c(2324),j=c(261),k=c(4290),l=c(5328),m=c(8928),n=c(6595),o=c(3421),p=c(7679),q=c(1681),r=c(3446),s=c(6439),t=c(1356),u=c(9021),v=c(8277),w=c(5221),x=c(6505),y=c(6277),z=c(7093),A=c(401);let B="force-dynamic";function C(a,b){return`event: ${a}
|
|
2
2
|
data: ${JSON.stringify(b)}
|
|
3
3
|
|
|
4
4
|
`}async function D(a){let b=new URL(a.url).searchParams.get("id"),c=x.vc.safeParse(b);if(!c.success)return(0,z.li)("invalid or missing session id");let d=c.data,e=(0,w.K)(),f=await (0,v.Oe)(e,d);if(!f&&!(0,y.$m)(d))return(0,z.mX)("session not found");let g=null,h=null,i=null,j=null,k=null,l=null,m=0,n=!1;function o(a,b,c){try{(g=(0,u.watch)(a,()=>{n||(i&&clearTimeout(i),i=setTimeout(()=>void c(),A.jf))})).on("error",()=>{p();try{b.close()}catch{}})}catch{}}function p(){n=!0,i&&(clearTimeout(i),i=null),j&&(clearInterval(j),j=null),k&&(k(),k=null),l&&(l(),l=null),h&&(clearInterval(h),h=null),g&&(g.close(),g=null)}return new Response(new ReadableStream({async start(a){let b=async()=>{if(!n&&f)try{let b=await (0,v.Bz)(e,d);if(b<=m)return;let{messages:c,toolCalls:f}=await (0,v.Nr)(e,d);m=b,a.enqueue(C("update",{messages:c,toolCalls:f,modifiedAt:b,isActive:(0,y.$m)(d)}))}catch{}};if(f){let{messages:c,toolCalls:g,modifiedAt:h}=await (0,v.Nr)(e,d);m=h,a.enqueue(C("connected",{messages:c,toolCalls:g,modifiedAt:h,isActive:(0,y.$m)(d)})),o(f,a,b)}else{let c=(0,y.Ki)(d),{messages:g,toolCalls:h}=(0,v.b0)(c,d);a.enqueue(C("connected",{messages:g,toolCalls:h,modifiedAt:Date.now(),isActive:!0}));let i=null;l=(0,y.pl)(d,()=>{n||(i&&clearTimeout(i),i=setTimeout(()=>{if(n)return;let b=(0,y.Ki)(d),c=(0,v.b0)(b,d);a.enqueue(C("update",{messages:c.messages,toolCalls:c.toolCalls,modifiedAt:Date.now(),isActive:(0,y.$m)(d)}))},A.jf))}),j=setInterval(async()=>{if(n)return;let c=await (0,v.Oe)(e,d);c&&(f=c,j&&(clearInterval(j),j=null),l&&(l(),l=null),o(c,a,b),b())},A.wS)}k=(0,y.xy)(d,async()=>{if(!n){await new Promise(a=>setTimeout(a,A.Mf));try{let{messages:b,toolCalls:c,modifiedAt:f}=await (0,v.Nr)(e,d);f>m&&(m=f),a.enqueue(C("update",{messages:b,toolCalls:c,modifiedAt:f,isActive:!1}))}catch{let b=(0,y.Ki)(d),c=(0,v.b0)(b,d);try{a.enqueue(C("update",{messages:c.messages,toolCalls:c.toolCalls,modifiedAt:Date.now(),isActive:!1}))}catch{}}}}),h=setInterval(()=>{if(!n)try{a.enqueue(C("ping",{ts:Date.now()}))}catch{p()}},A.UH)},cancel(){p()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sessions/watch/route",pathname:"/api/sessions/watch",filename:"route",bundlePath:"app/api/sessions/watch/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/jonmakinen/Documents/cursor-local-remote/src/app/api/sessions/watch/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:F,workUnitAsyncStorage:G,serverHooks:H}=E;function I(){return(0,g.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:G})}async function J(a,b,c){var d;let e="/api/sessions/watch/route";"/index"===e&&(e="/");let g=await E.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[D]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||E.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===E.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>E.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>E.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await E.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await E.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await E.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},3033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},4870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},5221:(a,b,c)=>{"use strict";c.d(b,{K:()=>e});var d=c(9902);function e(){let a=process.env.CURSOR_WORKSPACE;return a?(0,d.resolve)(a):process.cwd()}},6277:(a,b,c)=>{"use strict";c.d(b,{$m:()=>p,D7:()=>i,F1:()=>o,Ki:()=>j,VS:()=>l,Xw:()=>n,ix:()=>q,pl:()=>k,xy:()=>m});var d=c(401);let e=new Map,f=new Map,g=new Map,h=new Map;function i(a,b){let c=g.get(a);c||(c=[],g.set(a,c)),c.push(b);let d=h.get(a);if(d)for(let a of d)a()}function j(a){return g.get(a)??[]}function k(a,b){let c=h.get(a);c||(c=new Set,h.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function l(a,b,c){let i={child:b,sessionId:null,mapKey:a,workspace:c,startedAt:Date.now()};e.set(a,i);let j=()=>{i.sessionId??i.mapKey,e.delete(i.mapKey);let a=f.get(i.mapKey);if(a)for(let b of(f.delete(i.mapKey),a))b();setTimeout(()=>{g.delete(i.mapKey),h.delete(i.mapKey)},d.c1)};b.on("close",j),b.on("error",j)}function m(a,b){if(!e.has(a))return b(),()=>{};let c=f.get(a);c||(c=new Set,f.set(a,c));let d=c;return d.add(b),()=>{d.delete(b)}}function n(a,b){let c=e.get(a);c&&(c.sessionId=b,b!==a&&(e.set(b,c),e.delete(a),c.mapKey=b))}function o(){let a=new Set;for(let[b,c]of e)a.add(c.sessionId??b);return Array.from(a)}function p(a){return e.has(a)}function q(a){let b=e.get(a);return!!b&&(b.child.kill("SIGTERM"),!0)}},6439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},6487:()=>{},6505:(a,b,c)=>{"use strict";c.d(b,{LS:()=>f,OG:()=>i,li:()=>g,vc:()=>h});var d=c(8629);let e=d.YjP().regex(/^[a-zA-Z0-9_-]{1,128}$/,"invalid sessionId"),f=d.Ikc({prompt:d.YjP().min(1,"prompt is required"),sessionId:e.optional(),model:d.YjP().max(128).regex(/^[a-zA-Z0-9._/-]+$/,"invalid model").optional(),mode:d.k5n(["agent","ask","plan"]).optional()}),g=d.Ikc({sessionId:e}),h=e;function i(a,b){let c=a.safeParse(b);if(c.success)return{data:c.data};let d=c.error.issues[0];return{error:d?.message??"Validation failed"}}},7093:(a,b,c)=>{"use strict";function d(a,b){return Response.json({error:a},{status:b})}function e(a){return d(a,400)}function f(a){return d(a,404)}function g(a="Internal server error"){return d(a,500)}function h(a,b){return a instanceof Error&&console.error(a),b}async function i(a){try{return await a.json()}catch{return e("Invalid JSON body")}}c.d(b,{Jo:()=>h,Y2:()=>i,ig:()=>g,li:()=>e,mX:()=>f})},8277:(a,b,c)=>{"use strict";c.d(b,{Bz:()=>p,b0:()=>s,UQ:()=>m,Nr:()=>t,Oe:()=>o});let d=require("fs/promises");var e=c(9902),f=c(9439);let g=(0,e.join)((0,f.homedir)(),".cursor","projects");async function h(a){let b=(0,e.resolve)(a).replace(/^\//,"").replace(/\//g,"-"),c=(0,e.join)(g,b,"agent-transcripts");try{return await (0,d.access)(c),c}catch{return null}}async function i(a){try{let b=await (0,d.readFile)(a,"utf-8"),c=[];for(let a of b.split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{continue}return c}catch{return[]}}async function j(a){for(let b of(await i(a)))if("user"===b.role){let a=b.message,c=a?.content;return(c?.[0]?.text||"").replace(/<[^>]+>/g,"").trim().slice(0,120)}return""}async function k(a){try{return await (0,d.access)(a),!0}catch{return!1}}async function l(a,b){let c=await (0,d.stat)(a);if(c.isFile()&&b.endsWith(".jsonl"))return a;if(c.isDirectory()){let c=(0,e.join)(a,b+".jsonl");if(await k(c))return c;try{let b=(await (0,d.readdir)(a)).filter(a=>a.endsWith(".jsonl"));if(b.length>0)return(0,e.join)(a,b[0])}catch{}}return null}async function m(a){let b=await h(a);if(!b)return[];let c=[];try{for(let f of(await (0,d.readdir)(b))){let g=(0,e.join)(b,f),h=await l(g,f.replace(".jsonl",""));if(!h)continue;let i=await (0,d.stat)(h),k=f.replace(".jsonl",""),m=await j(h);m&&c.push({id:k,title:m.slice(0,60),workspace:a,preview:m,createdAt:i.birthtimeMs,updatedAt:i.mtimeMs})}}catch{}return c.sort((a,b)=>b.updatedAt-a.updatedAt)}function n(a){return a.replace(/<user_query>\n?/g,"").replace(/<\/user_query>\n?/g,"").replace(/<[^>]+>/g,"").trim()}async function o(a,b){let c=await h(a);if(!c)return null;let f=(0,e.resolve)(c),g=(0,e.resolve)(c,b);if(!g.startsWith(f+"/"))return null;let i=(0,e.join)(c,b+".jsonl");return await k(g)&&(await (0,d.stat)(g)).isDirectory()?l(g,b):await k(i)?i:null}async function p(a,b){let c=await o(a,b);if(!c)return 0;try{return(await (0,d.stat)(c)).mtimeMs}catch{return 0}}let q={Read:"read",Write:"write",Edit:"edit",StrReplace:"edit",Shell:"shell",Grep:"search",Glob:"search",List:"read",TodoWrite:"todo"};function r(a,b,c,d){let e=[];for(let f of a){let a;if("object"!=typeof f||null===f||"tool_use"!==f.type)continue;let g=f.name||"Tool",h=f.input||{},i=q[g]||"other";"TodoWrite"===g&&Array.isArray(h.todos)&&(a=h.todos.map(a=>({id:a.id,content:a.content,status:a.status?.toUpperCase().includes("COMPLETED")?"TODO_STATUS_COMPLETED":a.status?.toUpperCase().includes("PROGRESS")?"TODO_STATUS_IN_PROGRESS":"TODO_STATUS_PENDING"})));let j=a?.filter(a=>a.status.includes("COMPLETED")).length??0,k=a?.length??0;e.push({id:`${b}-tc-${c.n++}`,callId:`${b}-tc-${c.n}`,type:i,name:g,path:h.path||h.file_path,command:"shell"===i?h.command:"search"===i?h.pattern:void 0,status:"completed",result:"todo"===i&&k>0?`${k} items \xb7 ${j} done`:void 0,todos:a,timestamp:d+c.n})}return e}function s(a,b){let c=[],d=[],e={n:0},f=Date.now()-6e4;for(let g of a){let a=g.type;if("user"!==a&&"assistant"!==a)continue;let h=g.message?.content;if(!Array.isArray(h))continue;let i=[];for(let a of h)"text"===a.type&&a.text&&i.push(a.text);let j=i.join("");"user"===a&&(j=n(j)),j.trim()&&c.push({id:`${b}-live-${e.n++}`,role:a,content:j,timestamp:f+e.n}),"assistant"===a&&d.push(...r(h,b,e,f))}return{messages:c,toolCalls:d}}async function t(a,b){let c=await o(a,b);if(!c)return{messages:[],toolCalls:[],modifiedAt:0};let e=0;try{e=(await (0,d.stat)(c)).mtimeMs}catch{return{messages:[],toolCalls:[],modifiedAt:0}}let f=[],g=[],h={n:0},j=e-6e4;for(let a of(await i(c))){let c=a.role;if("user"!==c&&"assistant"!==c)continue;let d=a.message?.content;if(!Array.isArray(d))continue;let e=[];for(let a of d)"text"===a.type&&a.text&&e.push(a.text);let i=e.join("");"user"===c&&(i=n(i)),i.trim()&&f.push({id:`${b}-${h.n++}`,role:c,content:i,timestamp:j+h.n}),"assistant"===c&&g.push(...r(d,b,h,j))}return{messages:f,toolCalls:g,modifiedAt:e}}},8335:()=>{},9021:a=>{"use strict";a.exports=require("fs")},9294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},9439:a=>{"use strict";a.exports=require("os")},9902:a=>{"use strict";a.exports=require("path")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[873,878],()=>b(b.s=2808));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--haTT_JhY1uFx0nYR01IbS--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/491f5e1d36eb62fc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5eacd01f773eed7f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-11d8cab0ea5a792e.js" async=""></script><script src="/_next/static/chunks/391-727d95bcfba987c2.js" async=""></script><script src="/_next/static/chunks/app/page-9b8c5cfa3bc0cd37.js" async=""></script><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div class="h-dvh"><div class="h-full"><div class="h-full flex flex-col"><header class="shrink-0 flex items-center justify-between h-11 px-3 border-b border-border"><div class="flex items-center gap-2"><button aria-label="Open session sidebar" class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="15" y2="12"></line><line x1="3" y1="18" x2="18" y2="18"></line></svg></button><span class="text-[13px] font-medium text-text-secondary">~</span></div><div class="flex items-center gap-1"><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Connect device"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><rect x="14" y="14" width="3" height="3"></rect><line x1="21" y1="14" x2="21" y2="14.01"></line><line x1="21" y1="21" x2="21" y2="21.01"></line></svg></button></div></header><div class="flex-1 flex items-center justify-center px-6"><div class="flex flex-col items-center max-w-sm"><p class="text-text-secondary text-[13px] font-medium mb-1">Cursor Remote</p><p class="text-text-muted text-[12px] leading-relaxed">Send a message to start an agent session.</p></div></div><div class="shrink-0 bg-bg px-4 py-3 safe-bottom"><div class="max-w-3xl mx-auto"><div class="relative bg-bg-surface border border-border rounded-xl focus-within:border-text-muted/40 transition-colors"><textarea placeholder="Ask Cursor anything..." aria-label="Message input" rows="1" class="w-full resize-none bg-transparent px-3.5 pt-2.5 pb-1 pr-10 text-[13px] text-text placeholder:text-text-muted focus:outline-none"></textarea><div class="flex items-center justify-between px-2 pb-2"><div class="flex items-center gap-1" role="radiogroup" aria-label="Agent mode"><button role="radio" aria-checked="true" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors bg-bg-active text-text">Agent</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Ask</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Plan</button><span class="hidden sm:inline text-[10px] text-text-muted/50 ml-2 select-none">Enter ↵ send · Shift+Enter newline</span></div><div class="flex items-center gap-1.5"><div class="relative"><button aria-haspopup="listbox" aria-expanded="false" aria-label="Select model" class="flex items-center gap-1 px-3 py-1.5 rounded text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><span class="inline-block rounded-full border-2 border-text-muted border-t-transparent animate-spin w-2.5 h-2.5"></span><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><button disabled="" class="p-2 rounded-md text-text-muted hover:text-text disabled:opacity-20 disabled:cursor-not-allowed transition-colors" aria-label="Send message"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg></button></div></div></div></div></div></div></div><div role="dialog" aria-label="Session history" aria-hidden="true" class="fixed top-0 left-0 z-50 h-full w-[280px] bg-bg-elevated border-r border-border transform transition-transform duration-150 flex flex-col -translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Sessions</span><div class="flex items-center gap-0.5"><button aria-label="Refresh sessions" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors disabled:opacity-40"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><path d="M21 12a9 9 0 1 1-6.22-8.56"></path><polyline points="21 3 21 9 15 9"></polyline></svg></button><button aria-label="Close sidebar" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div><div class="px-2 pt-2 pb-1 space-y-1 shrink-0"><button class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>New session</button><button aria-pressed="false" class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>All workspaces</button></div><div class="overflow-y-auto flex-1 px-2 pb-2"><p class="text-text-muted text-[12px] text-center py-8">No sessions</p></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"SwRegister\"]\n5:I[2317,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"PwaInstall\"]\n6:I[5932,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-9b8c5cfa3bc0cd37.js\"],\"ErrorBoundary\"]\n7:I[1456,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-9b8c5cfa3bc0cd37.js\"],\"ChatWorkspace\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/css/491f5e1d36eb62fc.css\",\"style\"]\n:HL[\"/_next/static/css/5eacd01f773eed7f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"haTT_JhY1uFx0nYR01IbS\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/491f5e1d36eb62fc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5eacd01f773eed7f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--_6W_b8zo1JxI5xnrQSvNd--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/491f5e1d36eb62fc.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5eacd01f773eed7f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-11d8cab0ea5a792e.js" async=""></script><script src="/_next/static/chunks/391-727d95bcfba987c2.js" async=""></script><script src="/_next/static/chunks/app/page-9b8c5cfa3bc0cd37.js" async=""></script><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div class="h-dvh"><div class="h-full"><div class="h-full flex flex-col"><header class="shrink-0 flex items-center justify-between h-11 px-3 border-b border-border"><div class="flex items-center gap-2"><button aria-label="Open session sidebar" class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="15" y2="12"></line><line x1="3" y1="18" x2="18" y2="18"></line></svg></button><span class="text-[13px] font-medium text-text-secondary">~</span></div><div class="flex items-center gap-1"><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Connect device"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><rect x="14" y="14" width="3" height="3"></rect><line x1="21" y1="14" x2="21" y2="14.01"></line><line x1="21" y1="21" x2="21" y2="21.01"></line></svg></button></div></header><div class="flex-1 flex items-center justify-center px-6"><div class="flex flex-col items-center max-w-sm"><p class="text-text-secondary text-[13px] font-medium mb-1">Cursor Remote</p><p class="text-text-muted text-[12px] leading-relaxed">Send a message to start an agent session.</p></div></div><div class="shrink-0 bg-bg px-4 py-3 safe-bottom"><div class="max-w-3xl mx-auto"><div class="relative bg-bg-surface border border-border rounded-xl focus-within:border-text-muted/40 transition-colors"><textarea placeholder="Ask Cursor anything..." aria-label="Message input" rows="1" class="w-full resize-none bg-transparent px-3.5 pt-2.5 pb-1 pr-10 text-[13px] text-text placeholder:text-text-muted focus:outline-none"></textarea><div class="flex items-center justify-between px-2 pb-2"><div class="flex items-center gap-1" role="radiogroup" aria-label="Agent mode"><button role="radio" aria-checked="true" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors bg-bg-active text-text">Agent</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Ask</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Plan</button><span class="hidden sm:inline text-[10px] text-text-muted/50 ml-2 select-none">Enter ↵ send · Shift+Enter newline</span></div><div class="flex items-center gap-1.5"><div class="relative"><button aria-haspopup="listbox" aria-expanded="false" aria-label="Select model" class="flex items-center gap-1 px-3 py-1.5 rounded text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><span class="inline-block rounded-full border-2 border-text-muted border-t-transparent animate-spin w-2.5 h-2.5"></span><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><button disabled="" class="p-2 rounded-md text-text-muted hover:text-text disabled:opacity-20 disabled:cursor-not-allowed transition-colors" aria-label="Send message"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg></button></div></div></div></div></div></div></div><div role="dialog" aria-label="Session history" aria-hidden="true" class="fixed top-0 left-0 z-50 h-full w-[280px] bg-bg-elevated border-r border-border transform transition-transform duration-150 flex flex-col -translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Sessions</span><div class="flex items-center gap-0.5"><button aria-label="Refresh sessions" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors disabled:opacity-40"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><path d="M21 12a9 9 0 1 1-6.22-8.56"></path><polyline points="21 3 21 9 15 9"></polyline></svg></button><button aria-label="Close sidebar" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div><div class="px-2 pt-2 pb-1 space-y-1 shrink-0"><button class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>New session</button><button aria-pressed="false" class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>All workspaces</button></div><div class="overflow-y-auto flex-1 px-2 pb-2"><p class="text-text-muted text-[12px] text-center py-8">No sessions</p></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"SwRegister\"]\n5:I[2317,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"PwaInstall\"]\n6:I[5932,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-9b8c5cfa3bc0cd37.js\"],\"ErrorBoundary\"]\n7:I[1456,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-9b8c5cfa3bc0cd37.js\"],\"ChatWorkspace\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/css/491f5e1d36eb62fc.css\",\"style\"]\n:HL[\"/_next/static/css/5eacd01f773eed7f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-6W-b8zo1JxI5xnrQSvNd\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/491f5e1d36eb62fc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5eacd01f773eed7f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
@@ -13,7 +13,7 @@ f:"$Sreact.suspense"
|
|
|
13
13
|
11:I[7150,[],""]
|
|
14
14
|
:HL["/_next/static/css/491f5e1d36eb62fc.css","style"]
|
|
15
15
|
:HL["/_next/static/css/5eacd01f773eed7f.css","style"]
|
|
16
|
-
0:{"P":null,"b":"
|
|
16
|
+
0:{"P":null,"b":"-6W-b8zo1JxI5xnrQSvNd","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/491f5e1d36eb62fc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"overscroll-none","children":[["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",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"}],["$","$L4",null,{}],["$","$L5",null,{}]]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L6",null,{"children":["$","$L7",null,{}]}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5eacd01f773eed7f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
|
|
17
17
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0b"}]]
|
|
18
18
|
9:null
|
|
19
19
|
12:I[622,[],"IconMark"]
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"/apple-icon.png/route": "app/apple-icon.png/route.js",
|
|
4
4
|
"/icon.png/route": "app/icon.png/route.js",
|
|
5
5
|
"/manifest.webmanifest/route": "app/manifest.webmanifest/route.js",
|
|
6
|
+
"/api/chat/route": "app/api/chat/route.js",
|
|
6
7
|
"/api/info/route": "app/api/info/route.js",
|
|
7
8
|
"/api/push/vapid-key/route": "app/api/push/vapid-key/route.js",
|
|
8
9
|
"/api/push/subscribe/route": "app/api/push/subscribe/route.js",
|
|
9
10
|
"/api/sessions/active/route": "app/api/sessions/active/route.js",
|
|
10
|
-
"/api/models/route": "app/api/models/route.js",
|
|
11
11
|
"/api/sessions/history/route": "app/api/sessions/history/route.js",
|
|
12
|
-
"/api/
|
|
12
|
+
"/api/models/route": "app/api/models/route.js",
|
|
13
13
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
14
14
|
"/api/sessions/watch/route": "app/api/sessions/watch/route.js",
|
|
15
15
|
"/page": "app/page.js"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"wasm": [],
|
|
19
19
|
"assets": [],
|
|
20
20
|
"env": {
|
|
21
|
-
"__NEXT_BUILD_ID": "
|
|
21
|
+
"__NEXT_BUILD_ID": "-6W-b8zo1JxI5xnrQSvNd",
|
|
22
22
|
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "iXXMrFSSgs4vthm57YNSOxqx+PEci0BWRWSHfO7vXHw=",
|
|
23
23
|
"__NEXT_PREVIEW_MODE_ID": "1c5d6cae8d80ef41b72fb40230dd2603",
|
|
24
24
|
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "5077b6ff949d151981381dee9756424772b668d00a49f981f244a25ad2950e09",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--_6W_b8zo1JxI5xnrQSvNd--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/491f5e1d36eb62fc.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-11d8cab0ea5a792e.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"SwRegister\"]\n5:I[2317,[\"177\",\"static/chunks/app/layout-11d8cab0ea5a792e.js\"],\"PwaInstall\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/491f5e1d36eb62fc.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-6W-b8zo1JxI5xnrQSvNd\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/491f5e1d36eb62fc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L10\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" defer=""></script><script src="/_next/static/chunks/framework-7c18bae94415732c.js" defer=""></script><script src="/_next/static/chunks/main-fef688ac5ef45212.js" defer=""></script><script src="/_next/static/chunks/pages/_app-79e662cab09aea11.js" defer=""></script><script src="/_next/static/chunks/pages/_error-89cd7530328c75d9.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" defer=""></script><script src="/_next/static/chunks/framework-7c18bae94415732c.js" defer=""></script><script src="/_next/static/chunks/main-fef688ac5ef45212.js" defer=""></script><script src="/_next/static/chunks/pages/_app-79e662cab09aea11.js" defer=""></script><script src="/_next/static/chunks/pages/_error-89cd7530328c75d9.js" defer=""></script><script src="/_next/static/-6W-b8zo1JxI5xnrQSvNd/_buildManifest.js" defer=""></script><script src="/_next/static/-6W-b8zo1JxI5xnrQSvNd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"-6W-b8zo1JxI5xnrQSvNd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
package/README.md
CHANGED
|
@@ -51,6 +51,7 @@ clr [workspace] [options]
|
|
|
51
51
|
| `-p, --port` | Port to run on (default: `3100`) |
|
|
52
52
|
| `--no-open` | Don't auto-open the browser |
|
|
53
53
|
| `--no-qr` | Don't show QR code in terminal |
|
|
54
|
+
| `-v, --verbose` | Show all server and agent output |
|
|
54
55
|
|
|
55
56
|
```bash
|
|
56
57
|
clr # current folder
|
package/bin/cursor-remote.mjs
CHANGED
|
@@ -60,12 +60,14 @@ if (args.includes("--help") || args.includes("-h")) {
|
|
|
60
60
|
-p, --port Port to run on (default: 3100)
|
|
61
61
|
--no-open Don't auto-open the browser
|
|
62
62
|
--no-qr Don't show QR code in terminal
|
|
63
|
+
-v, --verbose Show all server and agent output
|
|
63
64
|
-h, --help Show this help
|
|
64
65
|
|
|
65
66
|
Examples:
|
|
66
67
|
clr # Start in current folder
|
|
67
68
|
clr ~/projects/my-app # Start for a specific project
|
|
68
69
|
clr . --port 8080 # Use a different port
|
|
70
|
+
clr -v # Verbose output for debugging
|
|
69
71
|
`);
|
|
70
72
|
process.exit(0);
|
|
71
73
|
}
|
|
@@ -74,6 +76,7 @@ const positional = [];
|
|
|
74
76
|
let rawPort = process.env.PORT || "3100";
|
|
75
77
|
let noOpen = false;
|
|
76
78
|
let noQr = false;
|
|
79
|
+
let verbose = false;
|
|
77
80
|
|
|
78
81
|
for (let i = 0; i < args.length; i++) {
|
|
79
82
|
const a = args[i];
|
|
@@ -83,6 +86,8 @@ for (let i = 0; i < args.length; i++) {
|
|
|
83
86
|
noOpen = true;
|
|
84
87
|
} else if (a === "--no-qr") {
|
|
85
88
|
noQr = true;
|
|
89
|
+
} else if (a === "--verbose" || a === "-v") {
|
|
90
|
+
verbose = true;
|
|
86
91
|
} else if (!a.startsWith("-")) {
|
|
87
92
|
positional.push(a);
|
|
88
93
|
}
|
|
@@ -165,6 +170,9 @@ if (networkUrl) {
|
|
|
165
170
|
}
|
|
166
171
|
console.log(` \x1b[2mAuth token:\x1b[0m \x1b[97m${authToken}\x1b[0m`);
|
|
167
172
|
console.log(` \x1b[2mAuth link:\x1b[0m \x1b[4m\x1b[97m${authUrl}\x1b[0m`);
|
|
173
|
+
if (verbose) {
|
|
174
|
+
console.log(` \x1b[2mVerbose:\x1b[0m \x1b[33mon\x1b[0m`);
|
|
175
|
+
}
|
|
168
176
|
console.log("");
|
|
169
177
|
|
|
170
178
|
const qrUrl = networkUrl ? `${networkUrl}?token=${authToken}` : null;
|
|
@@ -181,16 +189,15 @@ if (!noQr && qrUrl) {
|
|
|
181
189
|
});
|
|
182
190
|
}
|
|
183
191
|
|
|
184
|
-
|
|
192
|
+
function openBrowser() {
|
|
193
|
+
if (noOpen) return;
|
|
185
194
|
try {
|
|
186
195
|
const openCmd = process.platform === "darwin"
|
|
187
196
|
? "open"
|
|
188
197
|
: process.platform === "win32"
|
|
189
198
|
? "start"
|
|
190
199
|
: "xdg-open";
|
|
191
|
-
|
|
192
|
-
execFileSync(openCmd, [`${localUrl}?token=${authToken}`], { stdio: "ignore" });
|
|
193
|
-
}, 2000);
|
|
200
|
+
execFileSync(openCmd, [`${localUrl}?token=${authToken}`], { stdio: "ignore" });
|
|
194
201
|
} catch {
|
|
195
202
|
// silently fail if browser can't open
|
|
196
203
|
}
|
|
@@ -211,22 +218,31 @@ const child = spawn(nextBin, nextArgs, {
|
|
|
211
218
|
CURSOR_WORKSPACE: workspace,
|
|
212
219
|
PORT: port,
|
|
213
220
|
AUTH_TOKEN: authToken,
|
|
221
|
+
CLR_VERBOSE: verbose ? "1" : "",
|
|
214
222
|
},
|
|
215
223
|
});
|
|
216
224
|
|
|
217
225
|
let ready = false;
|
|
218
226
|
child.stdout.on("data", (data) => {
|
|
219
|
-
if (ready) return;
|
|
220
227
|
const text = data.toString();
|
|
221
|
-
if (
|
|
228
|
+
if (verbose) {
|
|
229
|
+
process.stdout.write(" \x1b[2m[next]\x1b[0m " + text);
|
|
230
|
+
}
|
|
231
|
+
if (!ready && (text.includes("Ready") || text.includes("ready"))) {
|
|
222
232
|
console.log(" \x1b[32m✓ Ready\x1b[0m");
|
|
223
233
|
ready = true;
|
|
234
|
+
openBrowser();
|
|
224
235
|
}
|
|
225
236
|
});
|
|
226
237
|
|
|
227
238
|
child.stderr.on("data", (data) => {
|
|
228
239
|
const text = data.toString().trim();
|
|
229
|
-
if (text)
|
|
240
|
+
if (!text) return;
|
|
241
|
+
if (verbose) {
|
|
242
|
+
process.stderr.write(" \x1b[2m[server]\x1b[0m " + text + "\n");
|
|
243
|
+
} else if (text.includes("Error") || text.includes("error")) {
|
|
244
|
+
process.stderr.write(" " + text + "\n");
|
|
245
|
+
}
|
|
230
246
|
});
|
|
231
247
|
|
|
232
248
|
child.on("close", (code) => {
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|