@baique/pi-web-sky 0.1.48 → 0.1.49
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-path-routes-manifest.json +17 -17
- package/.next/build-manifest.json +2 -2
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js +2 -2
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/board-assets/[...path]/route.js +2 -2
- package/.next/server/app/api/board-assets/route.js +2 -2
- package/.next/server/app/api/boards/reorder/route.js +2 -2
- package/.next/server/app/api/boards/route.js +2 -2
- package/.next/server/app/api/cwd/validate/route.js +2 -2
- package/.next/server/app/api/default-cwd/route.js +2 -2
- package/.next/server/app/api/file-index/route.js +2 -2
- package/.next/server/app/api/files/[...path]/route.js +2 -2
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/models/route.js +2 -2
- package/.next/server/app/api/plugins/route.js +2 -2
- package/.next/server/app/api/search/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/summary/route.js +2 -2
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/task-card-questions/[id]/answer/route.js +1 -1
- package/.next/server/app/api/task-card-questions/route.js +1 -1
- package/.next/server/app/api/tasks/[id]/assign-session/route.js +2 -2
- package/.next/server/app/api/tasks/reorder/route.js +2 -2
- package/.next/server/app/api/tasks/route.js +2 -2
- package/.next/server/app/api/worktrees/route.js +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +17 -17
- package/.next/server/chunks/3500.js +2 -2
- package/.next/server/chunks/4226.js +2 -2
- package/.next/server/chunks/5794.js +2 -2
- package/.next/server/chunks/5940.js +2 -2
- package/.next/server/chunks/6525.js +2 -2
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/app/{layout-34c3afa7e57644fe.js → layout-eb4df7493f8710df.js} +1 -1
- package/.next/static/chunks/app/{page-72aa0bf9f2c8b93d.js → page-6ff5ffc29de8ba5f.js} +1 -1
- package/.next/trace +7 -7
- package/.next/trace-build +1 -1
- package/bin/pi-web-options.js +1 -1
- package/lib/pi-web-options.test.mjs +3 -3
- package/lib/project-command-env.test.mjs +4 -4
- package/lib/request-security.test.mjs +50 -50
- package/lib/request-security.ts +1 -1
- package/lib/sqlite-db.ts +5 -0
- package/package.json +1 -1
- /package/.next/static/{m9gWh8uFYWdcMxBdc3tY5 → -gLK6QyBXk9SPd4ajO5tR}/_buildManifest.js +0 -0
- /package/.next/static/{m9gWh8uFYWdcMxBdc3tY5 → -gLK6QyBXk9SPd4ajO5tR}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25069":{"*":{"id":"26497","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"25069":{"*":{"id":"26497","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"19102","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/baique/work/develop/project/pi-web-sky/components/PwaRegistration.tsx":{"id":57788,"name":"*","chunks":["7177","static/chunks/app/layout-eb4df7493f8710df.js"],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Noto_Sans_Mono\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"],\"variable\":\"--font-noto-mono\",\"display\":\"swap\"}],\"variableName\":\"notoSansMono\"}":{"id":83683,"name":"*","chunks":["7177","static/chunks/app/layout-eb4df7493f8710df.js"],"async":false},"/Users/baique/work/develop/project/pi-web-sky/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-eb4df7493f8710df.js"],"async":false},"/Users/baique/work/develop/project/pi-web-sky/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-eb4df7493f8710df.js"],"async":false},"/Users/baique/work/develop/project/pi-web-sky/components/AppShell.tsx":{"id":25069,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-6ff5ffc29de8ba5f.js"],"async":false},"/Users/baique/work/develop/project/pi-web-sky/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","5362","static/chunks/5362-7d57fb3b2e15c9a1.js","8974","static/chunks/app/page-6ff5ffc29de8ba5f.js"],"async":false}},"entryCSSFiles":{"/Users/baique/work/develop/project/pi-web-sky/":[],"/Users/baique/work/develop/project/pi-web-sky/app/layout":[{"inlined":false,"path":"static/css/88714c00e109ce28.css"},{"inlined":false,"path":"static/css/4a609fb185e7cff1.css"}],"/Users/baique/work/develop/project/pi-web-sky/app/page":[{"inlined":false,"path":"static/css/46396d55066d14af.css"}]},"rscModuleMapping":{"25069":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"57788":{"*":{"id":"81276","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"84559":{"*":{"id":"25319","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
@@ -23,49 +23,49 @@
|
|
|
23
23
|
"/api/worktrees/route": "app/api/worktrees/route.js",
|
|
24
24
|
"/favicon.ico/route": "app/favicon.ico/route.js",
|
|
25
25
|
"/manifest.webmanifest/route": "app/manifest.webmanifest/route.js",
|
|
26
|
+
"/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
|
|
27
|
+
"/api/agent/new/route": "app/api/agent/new/route.js",
|
|
26
28
|
"/api/agent/running/route": "app/api/agent/running/route.js",
|
|
27
29
|
"/api/app-update/route": "app/api/app-update/route.js",
|
|
28
30
|
"/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
|
|
29
|
-
"/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
|
|
30
|
-
"/api/agent/new/route": "app/api/agent/new/route.js",
|
|
31
|
-
"/api/auth/providers/route": "app/api/auth/providers/route.js",
|
|
32
31
|
"/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
|
|
33
32
|
"/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
|
|
33
|
+
"/api/auth/providers/route": "app/api/auth/providers/route.js",
|
|
34
|
+
"/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
|
|
34
35
|
"/api/board-assets/[...path]/route": "app/api/board-assets/[...path]/route.js",
|
|
35
36
|
"/api/board-assets/route": "app/api/board-assets/route.js",
|
|
36
|
-
"/api/
|
|
37
|
+
"/api/boards/[id]/reconcile/route": "app/api/boards/[id]/reconcile/route.js",
|
|
37
38
|
"/api/boards/reorder/route": "app/api/boards/reorder/route.js",
|
|
38
39
|
"/api/boards/[id]/route": "app/api/boards/[id]/route.js",
|
|
39
|
-
"/api/boards/[id]/reconcile/route": "app/api/boards/[id]/reconcile/route.js",
|
|
40
40
|
"/api/boards/route": "app/api/boards/route.js",
|
|
41
|
-
"/api/models-config/route": "app/api/models-config/route.js",
|
|
42
41
|
"/api/models-config/catalog/route": "app/api/models-config/catalog/route.js",
|
|
43
|
-
"/api/models-config/
|
|
42
|
+
"/api/models-config/discover/route": "app/api/models-config/discover/route.js",
|
|
43
|
+
"/api/models-config/route": "app/api/models-config/route.js",
|
|
44
44
|
"/api/models/route": "app/api/models/route.js",
|
|
45
|
+
"/api/models-config/test/route": "app/api/models-config/test/route.js",
|
|
45
46
|
"/api/project-trust/route": "app/api/project-trust/route.js",
|
|
46
|
-
"/api/models-config/discover/route": "app/api/models-config/discover/route.js",
|
|
47
|
-
"/api/search/route": "app/api/search/route.js",
|
|
48
47
|
"/api/mcp/route": "app/api/mcp/route.js",
|
|
49
|
-
"/api/
|
|
50
|
-
"/api/sessions/summary/route": "app/api/sessions/summary/route.js",
|
|
48
|
+
"/api/search/route": "app/api/search/route.js",
|
|
51
49
|
"/api/quota/route": "app/api/quota/route.js",
|
|
52
50
|
"/api/plugins/route": "app/api/plugins/route.js",
|
|
51
|
+
"/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
|
|
52
|
+
"/api/sessions/summary/route": "app/api/sessions/summary/route.js",
|
|
53
|
+
"/api/sessions/route": "app/api/sessions/route.js",
|
|
53
54
|
"/api/skills/check/route": "app/api/skills/check/route.js",
|
|
54
|
-
"/api/skills/route": "app/api/skills/route.js",
|
|
55
55
|
"/api/skills/install/route": "app/api/skills/install/route.js",
|
|
56
|
+
"/api/skills/route": "app/api/skills/route.js",
|
|
56
57
|
"/api/task-card-questions/[id]/answer/route": "app/api/task-card-questions/[id]/answer/route.js",
|
|
57
|
-
"/api/task-card-questions/route": "app/api/task-card-questions/route.js",
|
|
58
58
|
"/api/skills/update/route": "app/api/skills/update/route.js",
|
|
59
|
+
"/api/task-card-questions/route": "app/api/task-card-questions/route.js",
|
|
59
60
|
"/api/skills/search/route": "app/api/skills/search/route.js",
|
|
60
61
|
"/api/task-scheduler/status/route": "app/api/task-scheduler/status/route.js",
|
|
61
62
|
"/api/tasks/[id]/board/route": "app/api/tasks/[id]/board/route.js",
|
|
63
|
+
"/api/task-cards/[id]/route": "app/api/task-cards/[id]/route.js",
|
|
64
|
+
"/api/task-cards/route": "app/api/task-cards/route.js",
|
|
62
65
|
"/api/tasks/reorder/route": "app/api/tasks/reorder/route.js",
|
|
63
66
|
"/api/tasks/route": "app/api/tasks/route.js",
|
|
64
|
-
"/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
|
|
65
|
-
"/api/task-cards/route": "app/api/task-cards/route.js",
|
|
66
|
-
"/api/task-cards/[id]/route": "app/api/task-cards/[id]/route.js",
|
|
67
|
-
"/api/terminal/route": "app/api/terminal/route.js",
|
|
68
67
|
"/api/terminal/[id]/events/route": "app/api/terminal/[id]/events/route.js",
|
|
69
68
|
"/api/terminal/[id]/route": "app/api/terminal/[id]/route.js",
|
|
69
|
+
"/api/terminal/route": "app/api/terminal/route.js",
|
|
70
70
|
"/page": "app/page.js"
|
|
71
71
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
exports.id=3500,exports.ids=[3500],exports.modules={21278:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>i});var e=c(75430),f=c(75805),g=c(72498),h=a([e,g]);async function i(a){let b=(0,e.getAgentDir)(),c=new e.DefaultResourceLoader({cwd:a,agentDir:b});await c.reload((0,g.Fk)(a,b));let{skills:d,diagnostics:h}=c.getSkills();return{skills:(0,f._)(d,{cwd:a,agentDir:b}),diagnostics:h,projectResourcesLoaded:(0,g.Y1)(a,b).trusted}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>
|
|
1
|
+
exports.id=3500,exports.ids=[3500],exports.modules={21278:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>i});var e=c(75430),f=c(75805),g=c(72498),h=a([e,g]);async function i(a){let b=(0,e.getAgentDir)(),c=new e.DefaultResourceLoader({cwd:a,agentDir:b});await c.reload((0,g.Fk)(a,b));let{skills:d,diagnostics:h}=c.getSkills();return{skills:(0,f._)(d,{cwd:a,agentDir:b}),diagnostics:h,projectResourcesLoaded:(0,g.Y1)(a,b).trusted}}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>h,Lf:()=>i});var d=c(79868),e=c(29021),f=c(21820),g=c(33873);function h(){let a=process.env.PI_CODING_AGENT_DIR;if(a){let b=a.startsWith("~")?(0,g.join)((0,f.homedir)(),a.slice(1)):a;return(0,g.normalize)(b)}return(0,g.join)((0,f.homedir)(),".pi","agent")}function i(){var a;if(globalThis.__piWebDb)return globalThis.__piWebDb;(0,e.mkdirSync)(h(),{recursive:!0});let b=new d.DatabaseSync((0,g.join)(h(),"pi-web.db"));return b.exec("PRAGMA journal_mode = WAL;"),b.exec("PRAGMA foreign_keys = ON;"),(a=b).exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
project_key TEXT NOT NULL,
|
|
@@ -27,4 +27,4 @@ exports.id=3500,exports.ids=[3500],exports.modules={21278:(a,b,c)=>{"use strict"
|
|
|
27
27
|
body,
|
|
28
28
|
tokenize = 'trigram'
|
|
29
29
|
);
|
|
30
|
-
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of
|
|
30
|
+
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of j)if(!(c.version<=b)){a.exec("BEGIN");try{for(let b of c.statements)try{a.exec(b)}catch(b){let a=b instanceof Error?b.message:String(b);if(!/duplicate column name/i.test(a))throw b}a.exec(`PRAGMA user_version = ${c.version}`),a.exec("COMMIT"),b=c.version}catch(b){throw a.exec("ROLLBACK"),b}}}(a),globalThis.__piWebDb=b,b}let j=[{version:1,name:"pinned columns",statements:["ALTER TABLE tasks ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;","ALTER TABLE session_meta ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;"]},{version:2,name:"tasks.sort_order",statements:["ALTER TABLE tasks ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:3,name:"session boards",statements:["CREATE TABLE IF NOT EXISTS boards (\n id TEXT PRIMARY KEY,\n project_key TEXT NOT NULL,\n name TEXT NOT NULL,\n is_system INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_boards_project ON boards(project_key);","CREATE TABLE IF NOT EXISTS board_nodes (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n ref_id TEXT,\n x REAL NOT NULL,\n y REAL NOT NULL,\n w REAL NOT NULL DEFAULT 0,\n h REAL NOT NULL DEFAULT 0,\n expanded INTEGER NOT NULL DEFAULT 0,\n props TEXT NOT NULL DEFAULT '{}',\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_nodes_board ON board_nodes(board_id);","CREATE TABLE IF NOT EXISTS board_edges (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n label TEXT,\n color TEXT,\n dashed INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_edges_board ON board_edges(board_id);","CREATE TABLE IF NOT EXISTS board_view (\n board_id TEXT PRIMARY KEY,\n camera_x REAL NOT NULL DEFAULT 0,\n camera_y REAL NOT NULL DEFAULT 0,\n camera_z REAL NOT NULL DEFAULT 1,\n updated INTEGER NOT NULL\n);"]},{version:4,name:"boards.sort_order",statements:["ALTER TABLE boards ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:5,name:"boards.task_id",statements:["ALTER TABLE boards ADD COLUMN task_id TEXT NULL;","CREATE INDEX IF NOT EXISTS idx_boards_task ON boards(task_id);"]},{version:6,name:"boards.task_id unique (防并发重复创建任务看板)",statements:["CREATE UNIQUE INDEX IF NOT EXISTS idx_boards_task_unique ON boards(task_id);"]},{version:7,name:"task cards",statements:["CREATE TABLE IF NOT EXISTS task_cards (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n project_key TEXT NOT NULL,\n number INTEGER NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n ready_status TEXT NOT NULL DEFAULT 'draft',\n exec_status TEXT NOT NULL DEFAULT 'not_started',\n priority INTEGER NOT NULL DEFAULT 0,\n due INTEGER,\n attachments TEXT NOT NULL DEFAULT '[]',\n cwd TEXT,\n use_worktree INTEGER NOT NULL DEFAULT 0,\n max_retries INTEGER NOT NULL DEFAULT 3,\n retry_count INTEGER NOT NULL DEFAULT 0,\n session_id TEXT,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_task_cards_board ON task_cards(board_id);","CREATE INDEX IF NOT EXISTS idx_task_cards_project ON task_cards(project_key);","CREATE UNIQUE INDEX IF NOT EXISTS idx_task_cards_number ON task_cards(project_key, number);","CREATE INDEX IF NOT EXISTS idx_task_cards_status ON task_cards(ready_status, exec_status);","CREATE TABLE IF NOT EXISTS task_card_links (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n target_card_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n created INTEGER NOT NULL,\n UNIQUE(card_id, target_card_id, kind)\n);","CREATE INDEX IF NOT EXISTS idx_task_links_card ON task_card_links(card_id);","CREATE TABLE IF NOT EXISTS task_card_questions (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n question TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n answer TEXT,\n created INTEGER NOT NULL,\n answered INTEGER\n);","CREATE INDEX IF NOT EXISTS idx_task_questions_status ON task_card_questions(status);"]},{version:8,name:"task_cards.dispatch_token (跨进程派发互斥锁)",statements:["ALTER TABLE task_cards ADD COLUMN dispatch_token TEXT NULL;"]},{version:9,name:"task_cards.owner + heartbeat (状态判定实例归属)",statements:["ALTER TABLE task_cards ADD COLUMN owner TEXT NULL;","ALTER TABLE task_cards ADD COLUMN heartbeat INTEGER NOT NULL DEFAULT 0;"]},{version:10,name:"scheduler_leader (单调度者注册)",statements:["CREATE TABLE IF NOT EXISTS scheduler_leader (\n id INTEGER PRIMARY KEY,\n instance_id TEXT NOT NULL,\n registered_at INTEGER NOT NULL,\n heartbeat INTEGER NOT NULL\n);"]},{version:11,name:"session_meta 升格会话完整索引(列表重构 v2)",statements:["ALTER TABLE session_meta ADD COLUMN path TEXT;","ALTER TABLE session_meta ADD COLUMN cwd TEXT;","ALTER TABLE session_meta ADD COLUMN project_key TEXT;","ALTER TABLE session_meta ADD COLUMN title TEXT;","ALTER TABLE session_meta ADD COLUMN first_message TEXT;","ALTER TABLE session_meta ADD COLUMN parent_id TEXT;","ALTER TABLE session_meta ADD COLUMN created INTEGER;","ALTER TABLE session_meta ADD COLUMN modified INTEGER;","CREATE INDEX IF NOT EXISTS idx_meta_project_modified ON session_meta(project_key, modified DESC);"]}]},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){if(!(a&&(0,e.hasTrustRequiringProjectResources)(a)))return{requiresTrust:!1,trusted:!0};let c=new e.ProjectTrustStore(b);return{requiresTrust:!0,trusted:!0===c.get(a)}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},75805:(a,b,c)=>{"use strict";c.d(b,{_:()=>j});var d=c(29021),e=c(21820),f=c(33873);function g(a){try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function h(a,b){let c=(0,f.relative)((0,f.resolve)(b),(0,f.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${f.sep}`)&&!(0,f.isAbsolute)(c)}function i(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}function j(a,{cwd:b,agentDir:c,globalLockPath:k=function({homeDir:a=(0,e.homedir)(),xdgStateHome:b=process.env.XDG_STATE_HOME}={}){return b?(0,f.join)(b,"skills",".skill-lock.json"):(0,f.join)(a,".agents",".skill-lock.json")}(),projectLockPath:l=(0,f.join)(b,"skills-lock.json")}){let m=g(k),n=g(l),o=(0,f.join)(c,"skills"),p=(0,f.join)(b,".pi","skills");return a.map(a=>{if(!(0,d.existsSync)(a.filePath))return a;let b=h(a.filePath,o)?i(m,a.name,"global"):h(a.filePath,p)?i(n,a.name,"project"):void 0;return b?{...a,install:b}:a})}},78335:()=>{},80547:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,Nw:()=>i.Nw,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.loadAllSessionIndex)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},82536:(a,b,c)=>{"use strict";c.d(b,{o:()=>h,x:()=>i});var d=c(29021),e=c(33873),f=c.n(e),g=c(58864);function h(a,b){for(let c of b){let b=(0,g.uK)(a)||(0,g.uK)(c),d=b?f().win32:f(),e=b?"\\":f().sep,h=d.resolve(a),i=d.resolve(c),j=b?h.toLowerCase():h,k=b?i.toLowerCase():i,l=k.endsWith(e)?k:k+e;if(j===k||j.startsWith(l))return!0}return!1}function i(a,b){let c;try{c=(0,d.realpathSync)(a)}catch{return!1}let e=new Set;for(let a of b)try{e.add((0,d.realpathSync)(a))}catch{}return h(c,e)}},96487:()=>{}};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
exports.id=4226,exports.ids=[4226],exports.modules={29742:(a,b,c)=>{"use strict";c.d(b,{BH:()=>z,GO:()=>s,Lc:()=>v,O7:()=>A,QA:()=>u,VE:()=>o,XJ:()=>n,gN:()=>p,iQ:()=>w,mL:()=>D,mY:()=>E,pt:()=>F,uZ:()=>y,w0:()=>r,zY:()=>q});var d=c(55511),e=c(66737),f=c(71856);let g=()=>Date.now(),h=new Set(["draft","todo"]),i=new Set(["not_started","running","review","done","failed","abandoned","waiting_reply"]);function j(a){if(void 0!==a&&!h.has(a))throw Error(`invalid readyStatus: ${String(a)}`)}function k(a){return{...a,useWorktree:1===a.useWorktree,attachments:JSON.parse(a.attachments)}}let l="id, board_id AS boardId, project_key AS projectKey, number, name, description, ready_status AS readyStatus, exec_status AS execStatus, priority, due, attachments, cwd, use_worktree AS useWorktree, max_retries AS maxRetries, retry_count AS retryCount, session_id AS sessionId, dispatch_token AS dispatchToken, created, updated";function m(a){return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE id = ?`).get(a)}function n(a){let b=m(a);return b?k(b):void 0}function o(a){if(0===a.length)return[];let b=a.map(()=>"?").join(","),c=new Map((0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE id IN (${b})`).all(...a).map(a=>[a.id,k(a)]));return a.map(a=>c.get(a)).filter(a=>!!a)}function p(a){return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE board_id = ? ORDER BY number`).all(a).map(k)}function q(a){var b;let c=a.name.trim();if(!a.projectKey)throw Error("projectKey is required");if(!a.boardId)throw Error("boardId is required");if(!c)throw Error("name must not be empty");j(a.readyStatus);let f=(0,d.randomUUID)(),h=g(),i=(b=a.projectKey,(0,e.Lf)().prepare("SELECT COALESCE(MAX(number), 0) AS maxNumber FROM task_cards WHERE project_key = ?").get(b).maxNumber+1);return(0,e.Lf)().prepare("INSERT INTO task_cards (id, board_id, project_key, number, name, description, ready_status, exec_status, priority, due, attachments, cwd, use_worktree, max_retries, retry_count, created, updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(f,a.boardId,a.projectKey,i,c,a.description??"",a.readyStatus??"todo","not_started",a.priority??0,a.due??null,JSON.stringify(a.attachments??[]),a.cwd??null,+!!a.useWorktree,a.maxRetries??3,0,h,h),k(m(f))}function r(a,b){let c=(0,e.Lf)(),d=m(a);if(!d)return null;let f=[],h=[],l=(a,b)=>{f.push(`${a} = ?`),h.push(b)};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("name must not be empty");l("name",a)}if(void 0!==b.description&&l("description",b.description),void 0!==b.readyStatus&&(j(b.readyStatus),l("ready_status",b.readyStatus)),void 0!==b.execStatus){var n=b.execStatus;if(void 0!==n&&!i.has(n))throw Error(`invalid execStatus: ${String(n)}`);l("exec_status",b.execStatus)}return(void 0!==b.priority&&l("priority",b.priority),void 0!==b.due&&l("due",b.due),void 0!==b.attachments&&l("attachments",JSON.stringify(b.attachments)),void 0!==b.cwd&&l("cwd",b.cwd),void 0!==b.useWorktree&&l("use_worktree",+!!b.useWorktree),void 0!==b.maxRetries&&l("max_retries",b.maxRetries),void 0!==b.sessionId&&l("session_id",b.sessionId),void 0!==b.retryCount&&l("retry_count",b.retryCount),0===f.length)?k(d):(l("updated",g()),c.prepare(`UPDATE task_cards SET ${f.join(", ")} WHERE id = ?`).run(...h,a),k(m(a)))}function s(a){let b=(0,e.Lf)();if(m(a)){b.exec("BEGIN");try{for(let c of(b.prepare("DELETE FROM task_card_links WHERE card_id = ? OR target_card_id = ?").run(a,a),b.prepare("DELETE FROM task_card_questions WHERE card_id = ?").run(a),b.prepare("SELECT id, board_id AS boardId FROM board_nodes WHERE kind = 'taskcard' AND ref_id = ? AND board_id != ?").all(a,f.p)))b.prepare("DELETE FROM board_edges WHERE board_id = ? AND (from_id = ? OR to_id = ?)").run(c.boardId,c.id,c.id),b.prepare("DELETE FROM board_nodes WHERE id = ?").run(c.id),b.prepare("UPDATE boards SET updated = ? WHERE id = ?").run(g(),c.boardId);b.prepare("DELETE FROM task_cards WHERE id = ?").run(a),b.exec("COMMIT")}catch(a){throw b.exec("ROLLBACK"),a}}}let t="id, card_id AS cardId, target_card_id AS targetCardId, kind, created";function u(a){return(0,e.Lf)().prepare(`SELECT ${t} FROM task_card_links WHERE card_id = ? ORDER BY created, rowid`).all(a)}function v(a){return(0,e.Lf)().prepare(`SELECT ${t} FROM task_card_links WHERE target_card_id = ? ORDER BY created, rowid`).all(a)}function w(a,b,c){let f=(0,e.Lf)(),h=n(a);if(!h)throw Error(`task card not found: ${a}`);let i=(b,c)=>{if(b===a)throw Error(`${c} target 不能是自身`);let d=n(b);if(!d)throw Error(`${c} target not found: ${b}`);if(d.boardId!==h.boardId)throw Error(`${c} target 不允许跨看板: ${b}`)};for(let a of b)i(a,"prerequisite");for(let a of c)i(a,"related");let j=g();f.exec("BEGIN");try{f.prepare("DELETE FROM task_card_links WHERE card_id = ?").run(a);let e=f.prepare("INSERT OR IGNORE INTO task_card_links (id, card_id, target_card_id, kind, created) VALUES (?, ?, ?, ?, ?)");for(let c of b)e.run((0,d.randomUUID)(),a,c,"prerequisite",j);for(let b of c)e.run((0,d.randomUUID)(),a,b,"related",j);f.exec("COMMIT")}catch(a){throw f.exec("ROLLBACK"),a}}function x(a){for(let b of u(a.id)){if("prerequisite"!==b.kind)continue;let a=n(b.targetCardId);if(a&&"done"!==a.execStatus)return!1}return!0}function y(){return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards
|
|
2
2
|
WHERE ready_status = 'todo' AND (exec_status = 'not_started' OR (exec_status = 'failed' AND retry_count < max_retries))
|
|
3
3
|
AND dispatch_token IS NULL
|
|
4
|
-
ORDER BY priority DESC, number`).all().map(k).filter(x)}function z(){return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE exec_status = 'running' ORDER BY number`).all().map(k)}function A(a){let b=a.map(()=>"?").join(",");return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE exec_status IN (${b}) ORDER BY number`).all(...a).map(k)}let B="id, card_id AS cardId, session_id AS sessionId, question, status, answer, created, answered";function C(a){return{...a}}function D(a){let b=a&&"all"!==a?"WHERE status = ?":"";return(0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions ${b} ORDER BY created`).all(...a&&"all"!==a?[a]:[]).map(C)}function E(){return(0,e.Lf)().prepare("SELECT COUNT(*) AS n FROM task_card_questions WHERE status = 'pending'").get().n}function F(a,b){let c=(0,e.Lf)(),d=(0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions WHERE id = ?`).get(a);if(!d)return null;if("answered"===d.status)return C(d);let f=Date.now();return c.prepare("UPDATE task_card_questions SET status = 'answered', answer = ?, answered = ? WHERE id = ?").run(b,f,a),C((0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions WHERE id = ?`).get(a))}},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>
|
|
4
|
+
ORDER BY priority DESC, number`).all().map(k).filter(x)}function z(){return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE exec_status = 'running' ORDER BY number`).all().map(k)}function A(a){let b=a.map(()=>"?").join(",");return(0,e.Lf)().prepare(`SELECT ${l} FROM task_cards WHERE exec_status IN (${b}) ORDER BY number`).all(...a).map(k)}let B="id, card_id AS cardId, session_id AS sessionId, question, status, answer, created, answered";function C(a){return{...a}}function D(a){let b=a&&"all"!==a?"WHERE status = ?":"";return(0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions ${b} ORDER BY created`).all(...a&&"all"!==a?[a]:[]).map(C)}function E(){return(0,e.Lf)().prepare("SELECT COUNT(*) AS n FROM task_card_questions WHERE status = 'pending'").get().n}function F(a,b){let c=(0,e.Lf)(),d=(0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions WHERE id = ?`).get(a);if(!d)return null;if("answered"===d.status)return C(d);let f=Date.now();return c.prepare("UPDATE task_card_questions SET status = 'answered', answer = ?, answered = ? WHERE id = ?").run(b,f,a),C((0,e.Lf)().prepare(`SELECT ${B} FROM task_card_questions WHERE id = ?`).get(a))}},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>h,Lf:()=>i});var d=c(79868),e=c(29021),f=c(21820),g=c(33873);function h(){let a=process.env.PI_CODING_AGENT_DIR;if(a){let b=a.startsWith("~")?(0,g.join)((0,f.homedir)(),a.slice(1)):a;return(0,g.normalize)(b)}return(0,g.join)((0,f.homedir)(),".pi","agent")}function i(){var a;if(globalThis.__piWebDb)return globalThis.__piWebDb;(0,e.mkdirSync)(h(),{recursive:!0});let b=new d.DatabaseSync((0,g.join)(h(),"pi-web.db"));return b.exec("PRAGMA journal_mode = WAL;"),b.exec("PRAGMA foreign_keys = ON;"),(a=b).exec(`
|
|
5
5
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
6
6
|
id TEXT PRIMARY KEY,
|
|
7
7
|
project_key TEXT NOT NULL,
|
|
@@ -30,4 +30,4 @@ exports.id=4226,exports.ids=[4226],exports.modules={29742:(a,b,c)=>{"use strict"
|
|
|
30
30
|
body,
|
|
31
31
|
tokenize = 'trigram'
|
|
32
32
|
);
|
|
33
|
-
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of
|
|
33
|
+
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of j)if(!(c.version<=b)){a.exec("BEGIN");try{for(let b of c.statements)try{a.exec(b)}catch(b){let a=b instanceof Error?b.message:String(b);if(!/duplicate column name/i.test(a))throw b}a.exec(`PRAGMA user_version = ${c.version}`),a.exec("COMMIT"),b=c.version}catch(b){throw a.exec("ROLLBACK"),b}}}(a),globalThis.__piWebDb=b,b}let j=[{version:1,name:"pinned columns",statements:["ALTER TABLE tasks ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;","ALTER TABLE session_meta ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;"]},{version:2,name:"tasks.sort_order",statements:["ALTER TABLE tasks ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:3,name:"session boards",statements:["CREATE TABLE IF NOT EXISTS boards (\n id TEXT PRIMARY KEY,\n project_key TEXT NOT NULL,\n name TEXT NOT NULL,\n is_system INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_boards_project ON boards(project_key);","CREATE TABLE IF NOT EXISTS board_nodes (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n ref_id TEXT,\n x REAL NOT NULL,\n y REAL NOT NULL,\n w REAL NOT NULL DEFAULT 0,\n h REAL NOT NULL DEFAULT 0,\n expanded INTEGER NOT NULL DEFAULT 0,\n props TEXT NOT NULL DEFAULT '{}',\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_nodes_board ON board_nodes(board_id);","CREATE TABLE IF NOT EXISTS board_edges (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n label TEXT,\n color TEXT,\n dashed INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_edges_board ON board_edges(board_id);","CREATE TABLE IF NOT EXISTS board_view (\n board_id TEXT PRIMARY KEY,\n camera_x REAL NOT NULL DEFAULT 0,\n camera_y REAL NOT NULL DEFAULT 0,\n camera_z REAL NOT NULL DEFAULT 1,\n updated INTEGER NOT NULL\n);"]},{version:4,name:"boards.sort_order",statements:["ALTER TABLE boards ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:5,name:"boards.task_id",statements:["ALTER TABLE boards ADD COLUMN task_id TEXT NULL;","CREATE INDEX IF NOT EXISTS idx_boards_task ON boards(task_id);"]},{version:6,name:"boards.task_id unique (防并发重复创建任务看板)",statements:["CREATE UNIQUE INDEX IF NOT EXISTS idx_boards_task_unique ON boards(task_id);"]},{version:7,name:"task cards",statements:["CREATE TABLE IF NOT EXISTS task_cards (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n project_key TEXT NOT NULL,\n number INTEGER NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n ready_status TEXT NOT NULL DEFAULT 'draft',\n exec_status TEXT NOT NULL DEFAULT 'not_started',\n priority INTEGER NOT NULL DEFAULT 0,\n due INTEGER,\n attachments TEXT NOT NULL DEFAULT '[]',\n cwd TEXT,\n use_worktree INTEGER NOT NULL DEFAULT 0,\n max_retries INTEGER NOT NULL DEFAULT 3,\n retry_count INTEGER NOT NULL DEFAULT 0,\n session_id TEXT,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_task_cards_board ON task_cards(board_id);","CREATE INDEX IF NOT EXISTS idx_task_cards_project ON task_cards(project_key);","CREATE UNIQUE INDEX IF NOT EXISTS idx_task_cards_number ON task_cards(project_key, number);","CREATE INDEX IF NOT EXISTS idx_task_cards_status ON task_cards(ready_status, exec_status);","CREATE TABLE IF NOT EXISTS task_card_links (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n target_card_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n created INTEGER NOT NULL,\n UNIQUE(card_id, target_card_id, kind)\n);","CREATE INDEX IF NOT EXISTS idx_task_links_card ON task_card_links(card_id);","CREATE TABLE IF NOT EXISTS task_card_questions (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n question TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n answer TEXT,\n created INTEGER NOT NULL,\n answered INTEGER\n);","CREATE INDEX IF NOT EXISTS idx_task_questions_status ON task_card_questions(status);"]},{version:8,name:"task_cards.dispatch_token (跨进程派发互斥锁)",statements:["ALTER TABLE task_cards ADD COLUMN dispatch_token TEXT NULL;"]},{version:9,name:"task_cards.owner + heartbeat (状态判定实例归属)",statements:["ALTER TABLE task_cards ADD COLUMN owner TEXT NULL;","ALTER TABLE task_cards ADD COLUMN heartbeat INTEGER NOT NULL DEFAULT 0;"]},{version:10,name:"scheduler_leader (单调度者注册)",statements:["CREATE TABLE IF NOT EXISTS scheduler_leader (\n id INTEGER PRIMARY KEY,\n instance_id TEXT NOT NULL,\n registered_at INTEGER NOT NULL,\n heartbeat INTEGER NOT NULL\n);"]},{version:11,name:"session_meta 升格会话完整索引(列表重构 v2)",statements:["ALTER TABLE session_meta ADD COLUMN path TEXT;","ALTER TABLE session_meta ADD COLUMN cwd TEXT;","ALTER TABLE session_meta ADD COLUMN project_key TEXT;","ALTER TABLE session_meta ADD COLUMN title TEXT;","ALTER TABLE session_meta ADD COLUMN first_message TEXT;","ALTER TABLE session_meta ADD COLUMN parent_id TEXT;","ALTER TABLE session_meta ADD COLUMN created INTEGER;","ALTER TABLE session_meta ADD COLUMN modified INTEGER;","CREATE INDEX IF NOT EXISTS idx_meta_project_modified ON session_meta(project_key, modified DESC);"]}]},78335:()=>{},96487:()=>{}};
|
|
@@ -3,7 +3,7 @@ new file mode 100644
|
|
|
3
3
|
--- /dev/null
|
|
4
4
|
+++ b/${a}
|
|
5
5
|
@@ -0,0 +1,${d.length} @@
|
|
6
|
-
${e}${f}`}async function w(a,b,c){try{return await n(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*j._4)}catch{return null}}async function x(a,b){let c,d,e=await o(a);if(!e||!p(e,b))return{supported:!1};let g=h().resolve(b),i=q(h().relative(e,g)),k=(await r(e)).find(a=>a.path===i);if(!k)return{supported:!1};let{status:m}=l(k);if("deleted"===m){let a=await w(e,i,k.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=f().lstatSync(g)}catch{return{supported:!1}}if(!c.isFile()||c.size>j._4)return{supported:!1};let n=f().readFileSync(g);if(u(n))return{supported:!1};let s=n.toString("utf8");if("untracked"===m)d=v(i,s);else{let a=await w(e,i,k.originalPath);if(null===a){if("added"!==m)return{supported:!1};d=v(i,s)}else d=a}return d.includes("\n@@ ")?{supported:!0,status:m,patch:d}:{supported:!1}}},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>
|
|
6
|
+
${e}${f}`}async function w(a,b,c){try{return await n(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*j._4)}catch{return null}}async function x(a,b){let c,d,e=await o(a);if(!e||!p(e,b))return{supported:!1};let g=h().resolve(b),i=q(h().relative(e,g)),k=(await r(e)).find(a=>a.path===i);if(!k)return{supported:!1};let{status:m}=l(k);if("deleted"===m){let a=await w(e,i,k.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=f().lstatSync(g)}catch{return{supported:!1}}if(!c.isFile()||c.size>j._4)return{supported:!1};let n=f().readFileSync(g);if(u(n))return{supported:!1};let s=n.toString("utf8");if("untracked"===m)d=v(i,s);else{let a=await w(e,i,k.originalPath);if(null===a){if("added"!==m)return{supported:!1};d=v(i,s)}else d=a}return d.includes("\n@@ ")?{supported:!0,status:m,patch:d}:{supported:!1}}},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>h,Lf:()=>i});var d=c(79868),e=c(29021),f=c(21820),g=c(33873);function h(){let a=process.env.PI_CODING_AGENT_DIR;if(a){let b=a.startsWith("~")?(0,g.join)((0,f.homedir)(),a.slice(1)):a;return(0,g.normalize)(b)}return(0,g.join)((0,f.homedir)(),".pi","agent")}function i(){var a;if(globalThis.__piWebDb)return globalThis.__piWebDb;(0,e.mkdirSync)(h(),{recursive:!0});let b=new d.DatabaseSync((0,g.join)(h(),"pi-web.db"));return b.exec("PRAGMA journal_mode = WAL;"),b.exec("PRAGMA foreign_keys = ON;"),(a=b).exec(`
|
|
7
7
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
8
8
|
id TEXT PRIMARY KEY,
|
|
9
9
|
project_key TEXT NOT NULL,
|
|
@@ -32,4 +32,4 @@ ${e}${f}`}async function w(a,b,c){try{return await n(a,["diff","--no-color","--n
|
|
|
32
32
|
body,
|
|
33
33
|
tokenize = 'trigram'
|
|
34
34
|
);
|
|
35
|
-
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of
|
|
35
|
+
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of j)if(!(c.version<=b)){a.exec("BEGIN");try{for(let b of c.statements)try{a.exec(b)}catch(b){let a=b instanceof Error?b.message:String(b);if(!/duplicate column name/i.test(a))throw b}a.exec(`PRAGMA user_version = ${c.version}`),a.exec("COMMIT"),b=c.version}catch(b){throw a.exec("ROLLBACK"),b}}}(a),globalThis.__piWebDb=b,b}let j=[{version:1,name:"pinned columns",statements:["ALTER TABLE tasks ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;","ALTER TABLE session_meta ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;"]},{version:2,name:"tasks.sort_order",statements:["ALTER TABLE tasks ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:3,name:"session boards",statements:["CREATE TABLE IF NOT EXISTS boards (\n id TEXT PRIMARY KEY,\n project_key TEXT NOT NULL,\n name TEXT NOT NULL,\n is_system INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_boards_project ON boards(project_key);","CREATE TABLE IF NOT EXISTS board_nodes (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n ref_id TEXT,\n x REAL NOT NULL,\n y REAL NOT NULL,\n w REAL NOT NULL DEFAULT 0,\n h REAL NOT NULL DEFAULT 0,\n expanded INTEGER NOT NULL DEFAULT 0,\n props TEXT NOT NULL DEFAULT '{}',\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_nodes_board ON board_nodes(board_id);","CREATE TABLE IF NOT EXISTS board_edges (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n label TEXT,\n color TEXT,\n dashed INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_edges_board ON board_edges(board_id);","CREATE TABLE IF NOT EXISTS board_view (\n board_id TEXT PRIMARY KEY,\n camera_x REAL NOT NULL DEFAULT 0,\n camera_y REAL NOT NULL DEFAULT 0,\n camera_z REAL NOT NULL DEFAULT 1,\n updated INTEGER NOT NULL\n);"]},{version:4,name:"boards.sort_order",statements:["ALTER TABLE boards ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:5,name:"boards.task_id",statements:["ALTER TABLE boards ADD COLUMN task_id TEXT NULL;","CREATE INDEX IF NOT EXISTS idx_boards_task ON boards(task_id);"]},{version:6,name:"boards.task_id unique (防并发重复创建任务看板)",statements:["CREATE UNIQUE INDEX IF NOT EXISTS idx_boards_task_unique ON boards(task_id);"]},{version:7,name:"task cards",statements:["CREATE TABLE IF NOT EXISTS task_cards (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n project_key TEXT NOT NULL,\n number INTEGER NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n ready_status TEXT NOT NULL DEFAULT 'draft',\n exec_status TEXT NOT NULL DEFAULT 'not_started',\n priority INTEGER NOT NULL DEFAULT 0,\n due INTEGER,\n attachments TEXT NOT NULL DEFAULT '[]',\n cwd TEXT,\n use_worktree INTEGER NOT NULL DEFAULT 0,\n max_retries INTEGER NOT NULL DEFAULT 3,\n retry_count INTEGER NOT NULL DEFAULT 0,\n session_id TEXT,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_task_cards_board ON task_cards(board_id);","CREATE INDEX IF NOT EXISTS idx_task_cards_project ON task_cards(project_key);","CREATE UNIQUE INDEX IF NOT EXISTS idx_task_cards_number ON task_cards(project_key, number);","CREATE INDEX IF NOT EXISTS idx_task_cards_status ON task_cards(ready_status, exec_status);","CREATE TABLE IF NOT EXISTS task_card_links (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n target_card_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n created INTEGER NOT NULL,\n UNIQUE(card_id, target_card_id, kind)\n);","CREATE INDEX IF NOT EXISTS idx_task_links_card ON task_card_links(card_id);","CREATE TABLE IF NOT EXISTS task_card_questions (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n question TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n answer TEXT,\n created INTEGER NOT NULL,\n answered INTEGER\n);","CREATE INDEX IF NOT EXISTS idx_task_questions_status ON task_card_questions(status);"]},{version:8,name:"task_cards.dispatch_token (跨进程派发互斥锁)",statements:["ALTER TABLE task_cards ADD COLUMN dispatch_token TEXT NULL;"]},{version:9,name:"task_cards.owner + heartbeat (状态判定实例归属)",statements:["ALTER TABLE task_cards ADD COLUMN owner TEXT NULL;","ALTER TABLE task_cards ADD COLUMN heartbeat INTEGER NOT NULL DEFAULT 0;"]},{version:10,name:"scheduler_leader (单调度者注册)",statements:["CREATE TABLE IF NOT EXISTS scheduler_leader (\n id INTEGER PRIMARY KEY,\n instance_id TEXT NOT NULL,\n registered_at INTEGER NOT NULL,\n heartbeat INTEGER NOT NULL\n);"]},{version:11,name:"session_meta 升格会话完整索引(列表重构 v2)",statements:["ALTER TABLE session_meta ADD COLUMN path TEXT;","ALTER TABLE session_meta ADD COLUMN cwd TEXT;","ALTER TABLE session_meta ADD COLUMN project_key TEXT;","ALTER TABLE session_meta ADD COLUMN title TEXT;","ALTER TABLE session_meta ADD COLUMN first_message TEXT;","ALTER TABLE session_meta ADD COLUMN parent_id TEXT;","ALTER TABLE session_meta ADD COLUMN created INTEGER;","ALTER TABLE session_meta ADD COLUMN modified INTEGER;","CREATE INDEX IF NOT EXISTS idx_meta_project_modified ON session_meta(project_key, modified DESC);"]}]},78335:()=>{},80547:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,Nw:()=>i.Nw,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.loadAllSessionIndex)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},82536:(a,b,c)=>{"use strict";c.d(b,{o:()=>h,x:()=>i});var d=c(29021),e=c(33873),f=c.n(e),g=c(58864);function h(a,b){for(let c of b){let b=(0,g.uK)(a)||(0,g.uK)(c),d=b?f().win32:f(),e=b?"\\":f().sep,h=d.resolve(a),i=d.resolve(c),j=b?h.toLowerCase():h,k=b?i.toLowerCase():i,l=k.endsWith(e)?k:k+e;if(j===k||j.startsWith(l))return!0}return!1}function i(a,b){let c;try{c=(0,d.realpathSync)(a)}catch{return!1}let e=new Set;for(let a of b)try{e.add((0,d.realpathSync)(a))}catch{}return h(c,e)}},96487:()=>{}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
exports.id=5940,exports.ids=[5940],exports.modules={20368:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>l,u:()=>k});var e=c(79748),f=c(33873),g=c(75430),h=c(80547),i=c(72498),j=a([g,h,i]);[g,h,i]=j.then?(await j)():j;class l extends Error{constructor(a,b){super(b),this.status=a}}async function k(a){let b=(0,g.getAgentDir)(),c=a?(0,f.resolve)(a):b;if(a){try{if(!(await (0,e.stat)(c)).isDirectory())throw new l(400,`Directory does not exist: ${c}`)}catch(a){if(a instanceof l)throw a;throw new l(400,`Directory does not exist: ${c}`)}let a=await (0,h.mc)();if(!(0,h.B7)(c,a))throw new l(403,"Access denied")}let d=(0,i.Fk)(c,b);return{services:await (0,g.createAgentSessionServices)({cwd:c,agentDir:b,...d?{resourceLoaderReloadOptions:d}:{}}),cwd:c}}d()}catch(a){d(a)}})},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>
|
|
1
|
+
exports.id=5940,exports.ids=[5940],exports.modules={20368:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C:()=>l,u:()=>k});var e=c(79748),f=c(33873),g=c(75430),h=c(80547),i=c(72498),j=a([g,h,i]);[g,h,i]=j.then?(await j)():j;class l extends Error{constructor(a,b){super(b),this.status=a}}async function k(a){let b=(0,g.getAgentDir)(),c=a?(0,f.resolve)(a):b;if(a){try{if(!(await (0,e.stat)(c)).isDirectory())throw new l(400,`Directory does not exist: ${c}`)}catch(a){if(a instanceof l)throw a;throw new l(400,`Directory does not exist: ${c}`)}let a=await (0,h.mc)();if(!(0,h.B7)(c,a))throw new l(403,"Access denied")}let d=(0,i.Fk)(c,b);return{services:await (0,g.createAgentSessionServices)({cwd:c,agentDir:b,...d?{resourceLoaderReloadOptions:d}:{}}),cwd:c}}d()}catch(a){d(a)}})},66737:(a,b,c)=>{"use strict";c.d(b,{$M:()=>h,Lf:()=>i});var d=c(79868),e=c(29021),f=c(21820),g=c(33873);function h(){let a=process.env.PI_CODING_AGENT_DIR;if(a){let b=a.startsWith("~")?(0,g.join)((0,f.homedir)(),a.slice(1)):a;return(0,g.normalize)(b)}return(0,g.join)((0,f.homedir)(),".pi","agent")}function i(){var a;if(globalThis.__piWebDb)return globalThis.__piWebDb;(0,e.mkdirSync)(h(),{recursive:!0});let b=new d.DatabaseSync((0,g.join)(h(),"pi-web.db"));return b.exec("PRAGMA journal_mode = WAL;"),b.exec("PRAGMA foreign_keys = ON;"),(a=b).exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
project_key TEXT NOT NULL,
|
|
@@ -27,4 +27,4 @@ exports.id=5940,exports.ids=[5940],exports.modules={20368:(a,b,c)=>{"use strict"
|
|
|
27
27
|
body,
|
|
28
28
|
tokenize = 'trigram'
|
|
29
29
|
);
|
|
30
|
-
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of
|
|
30
|
+
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of j)if(!(c.version<=b)){a.exec("BEGIN");try{for(let b of c.statements)try{a.exec(b)}catch(b){let a=b instanceof Error?b.message:String(b);if(!/duplicate column name/i.test(a))throw b}a.exec(`PRAGMA user_version = ${c.version}`),a.exec("COMMIT"),b=c.version}catch(b){throw a.exec("ROLLBACK"),b}}}(a),globalThis.__piWebDb=b,b}let j=[{version:1,name:"pinned columns",statements:["ALTER TABLE tasks ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;","ALTER TABLE session_meta ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;"]},{version:2,name:"tasks.sort_order",statements:["ALTER TABLE tasks ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:3,name:"session boards",statements:["CREATE TABLE IF NOT EXISTS boards (\n id TEXT PRIMARY KEY,\n project_key TEXT NOT NULL,\n name TEXT NOT NULL,\n is_system INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_boards_project ON boards(project_key);","CREATE TABLE IF NOT EXISTS board_nodes (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n ref_id TEXT,\n x REAL NOT NULL,\n y REAL NOT NULL,\n w REAL NOT NULL DEFAULT 0,\n h REAL NOT NULL DEFAULT 0,\n expanded INTEGER NOT NULL DEFAULT 0,\n props TEXT NOT NULL DEFAULT '{}',\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_nodes_board ON board_nodes(board_id);","CREATE TABLE IF NOT EXISTS board_edges (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n label TEXT,\n color TEXT,\n dashed INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_edges_board ON board_edges(board_id);","CREATE TABLE IF NOT EXISTS board_view (\n board_id TEXT PRIMARY KEY,\n camera_x REAL NOT NULL DEFAULT 0,\n camera_y REAL NOT NULL DEFAULT 0,\n camera_z REAL NOT NULL DEFAULT 1,\n updated INTEGER NOT NULL\n);"]},{version:4,name:"boards.sort_order",statements:["ALTER TABLE boards ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:5,name:"boards.task_id",statements:["ALTER TABLE boards ADD COLUMN task_id TEXT NULL;","CREATE INDEX IF NOT EXISTS idx_boards_task ON boards(task_id);"]},{version:6,name:"boards.task_id unique (防并发重复创建任务看板)",statements:["CREATE UNIQUE INDEX IF NOT EXISTS idx_boards_task_unique ON boards(task_id);"]},{version:7,name:"task cards",statements:["CREATE TABLE IF NOT EXISTS task_cards (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n project_key TEXT NOT NULL,\n number INTEGER NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n ready_status TEXT NOT NULL DEFAULT 'draft',\n exec_status TEXT NOT NULL DEFAULT 'not_started',\n priority INTEGER NOT NULL DEFAULT 0,\n due INTEGER,\n attachments TEXT NOT NULL DEFAULT '[]',\n cwd TEXT,\n use_worktree INTEGER NOT NULL DEFAULT 0,\n max_retries INTEGER NOT NULL DEFAULT 3,\n retry_count INTEGER NOT NULL DEFAULT 0,\n session_id TEXT,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_task_cards_board ON task_cards(board_id);","CREATE INDEX IF NOT EXISTS idx_task_cards_project ON task_cards(project_key);","CREATE UNIQUE INDEX IF NOT EXISTS idx_task_cards_number ON task_cards(project_key, number);","CREATE INDEX IF NOT EXISTS idx_task_cards_status ON task_cards(ready_status, exec_status);","CREATE TABLE IF NOT EXISTS task_card_links (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n target_card_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n created INTEGER NOT NULL,\n UNIQUE(card_id, target_card_id, kind)\n);","CREATE INDEX IF NOT EXISTS idx_task_links_card ON task_card_links(card_id);","CREATE TABLE IF NOT EXISTS task_card_questions (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n question TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n answer TEXT,\n created INTEGER NOT NULL,\n answered INTEGER\n);","CREATE INDEX IF NOT EXISTS idx_task_questions_status ON task_card_questions(status);"]},{version:8,name:"task_cards.dispatch_token (跨进程派发互斥锁)",statements:["ALTER TABLE task_cards ADD COLUMN dispatch_token TEXT NULL;"]},{version:9,name:"task_cards.owner + heartbeat (状态判定实例归属)",statements:["ALTER TABLE task_cards ADD COLUMN owner TEXT NULL;","ALTER TABLE task_cards ADD COLUMN heartbeat INTEGER NOT NULL DEFAULT 0;"]},{version:10,name:"scheduler_leader (单调度者注册)",statements:["CREATE TABLE IF NOT EXISTS scheduler_leader (\n id INTEGER PRIMARY KEY,\n instance_id TEXT NOT NULL,\n registered_at INTEGER NOT NULL,\n heartbeat INTEGER NOT NULL\n);"]},{version:11,name:"session_meta 升格会话完整索引(列表重构 v2)",statements:["ALTER TABLE session_meta ADD COLUMN path TEXT;","ALTER TABLE session_meta ADD COLUMN cwd TEXT;","ALTER TABLE session_meta ADD COLUMN project_key TEXT;","ALTER TABLE session_meta ADD COLUMN title TEXT;","ALTER TABLE session_meta ADD COLUMN first_message TEXT;","ALTER TABLE session_meta ADD COLUMN parent_id TEXT;","ALTER TABLE session_meta ADD COLUMN created INTEGER;","ALTER TABLE session_meta ADD COLUMN modified INTEGER;","CREATE INDEX IF NOT EXISTS idx_meta_project_modified ON session_meta(project_key, modified DESC);"]}]},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){if(!(a&&(0,e.hasTrustRequiringProjectResources)(a)))return{requiresTrust:!1,trusted:!0};let c=new e.ProjectTrustStore(b);return{requiresTrust:!0,trusted:!0===c.get(a)}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},78335:()=>{},80547:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,Nw:()=>i.Nw,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.loadAllSessionIndex)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},82536:(a,b,c)=>{"use strict";c.d(b,{o:()=>h,x:()=>i});var d=c(29021),e=c(33873),f=c.n(e),g=c(58864);function h(a,b){for(let c of b){let b=(0,g.uK)(a)||(0,g.uK)(c),d=b?f().win32:f(),e=b?"\\":f().sep,h=d.resolve(a),i=d.resolve(c),j=b?h.toLowerCase():h,k=b?i.toLowerCase():i,l=k.endsWith(e)?k:k+e;if(j===k||j.startsWith(l))return!0}return!1}function i(a,b){let c;try{c=(0,d.realpathSync)(a)}catch{return!1}let e=new Set;for(let a of b)try{e.add((0,d.realpathSync)(a))}catch{}return h(c,e)}},96487:()=>{}};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
first_message = excluded.first_message,
|
|
9
9
|
parent_id = excluded.parent_id,
|
|
10
10
|
created = excluded.created,
|
|
11
|
-
modified = excluded.modified`),s=l.prepare("UPDATE session_meta SET modified = ? WHERE session_id = ?"),t=l.prepare("UPDATE session_meta SET parent_id = ? WHERE session_id = ?"),u=l.prepare("UPDATE session_meta SET first_message = ? WHERE session_id = ?"),v=l.prepare("DELETE FROM session_meta WHERE session_id = ?"),w=async a=>{let b=(0,i.GL)(a.path);if(!b)return;let c=q.get(b.cwd);c||(c=(0,j.KI)(b.cwd).then(a=>(0,g.z)(a?.projectRoot??b.cwd)),q.set(b.cwd,c));let d=await c,e=b.parentSessionPath?p.get((0,h.$)(b.parentSessionPath))??null:null;r.run(a.id,Date.now(),a.path,b.cwd,d,b.firstMessage||null,e,b.created.getTime(),a.modified.getTime())},x=(a,b)=>{let c=(0,i.GL)(a.path);if(!c)return!1;let d=c.parentSessionPath?p.get((0,h.$)(c.parentSessionPath))??null:null;return d!==b.parent_id&&t.run(d,a.id),!!c.firstMessage&&c.firstMessage!==b.first_message&&(u.run(c.firstMessage,a.id),!0)};for(let a of d){o.add(a.id);let b=n.get(a.id);void 0!==b&&b.path&&b.path===a.path?null===b.modified||b.modified!==a.modified.getTime()?(x(a,b),s.run(a.modified.getTime(),a.id),k.updated+=1):!b.first_message&&x(a,b)&&(k.updated+=1):(await w(a),k.inserted+=1)}for(let a of n.keys())if(!o.has(a)){let b=n.get(a);if(b?.path&&(0,e.existsSync)(b.path))continue;v.run(a),k.deleted+=1}return k}function m(){if(globalThis.__piSessionIndexScanner?.timer)return;let a=!1,b=l().then(a=>(console.log(`[pi-web] session index scan: +${a.inserted} ~${a.updated} -${a.deleted} (${a.scanned} files)`),{ok:!0})).catch(a=>(console.error("[pi-web] session index first scan error:",a?.message??a),{ok:!1})),c=setInterval(()=>{a||(a=!0,l().catch(a=>console.error("[pi-web] session index tick error:",a?.message??a)).finally(()=>{a=!1}))},3e4);c.unref?.();let d={timer:c,firstScanDone:!1,firstScanPromise:b.then(a=>{a.ok&&(d.firstScanDone=!0)})};globalThis.__piSessionIndexScanner=d,console.log("[pi-web] session index scanner started (interval 30000ms)")}i=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},62391:(a,b,c)=>{c.d(b,{KI:()=>m});var d=c(79646),e=c(29021),f=c(33873);function g(a){return a&&"win32"===process.platform?(0,f.normalize)(a):a}function h(a){let b=(0,f.normalize)(g(a)),c=(0,f.parse)(b).root.length,d=b.length;for(;d>c&&b[d-1]===f.sep;)d--;return b.slice(0,d)}function i(a,b){if(a===b)return!0;if(!a||!b)return!1;let c=h(a),d=h(b);return"win32"===process.platform?c.toLowerCase()===d.toLowerCase():c===d}let j=(0,c(28354).promisify)(d.execFile);async function k(a,b){let{stdout:c}=await j("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}function l(a){try{return(0,e.realpathSync)(a)}catch{return a}}async function m(a){let b,c=(globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:l(c),branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,h,j,m]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),[n,o,p]=[d,h,j].map(g),q=l(a),r=i(p,q),s=!i(o,n)&&r,t=s?(0,f.dirname)(n):p;b={projectRoot:r?l(t):a,branch:m&&"HEAD"!==m?m:null,isWorktree:s,isTopLevel:r}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}},90596:(a,b,c)=>{c.d(b,{Lf:()=>
|
|
11
|
+
modified = excluded.modified`),s=l.prepare("UPDATE session_meta SET modified = ? WHERE session_id = ?"),t=l.prepare("UPDATE session_meta SET parent_id = ? WHERE session_id = ?"),u=l.prepare("UPDATE session_meta SET first_message = ? WHERE session_id = ?"),v=l.prepare("DELETE FROM session_meta WHERE session_id = ?"),w=async a=>{let b=(0,i.GL)(a.path);if(!b)return;let c=q.get(b.cwd);c||(c=(0,j.KI)(b.cwd).then(a=>(0,g.z)(a?.projectRoot??b.cwd)),q.set(b.cwd,c));let d=await c,e=b.parentSessionPath?p.get((0,h.$)(b.parentSessionPath))??null:null;r.run(a.id,Date.now(),a.path,b.cwd,d,b.firstMessage||null,e,b.created.getTime(),a.modified.getTime())},x=(a,b)=>{let c=(0,i.GL)(a.path);if(!c)return!1;let d=c.parentSessionPath?p.get((0,h.$)(c.parentSessionPath))??null:null;return d!==b.parent_id&&t.run(d,a.id),!!c.firstMessage&&c.firstMessage!==b.first_message&&(u.run(c.firstMessage,a.id),!0)};for(let a of d){o.add(a.id);let b=n.get(a.id);void 0!==b&&b.path&&b.path===a.path?null===b.modified||b.modified!==a.modified.getTime()?(x(a,b),s.run(a.modified.getTime(),a.id),k.updated+=1):!b.first_message&&x(a,b)&&(k.updated+=1):(await w(a),k.inserted+=1)}for(let a of n.keys())if(!o.has(a)){let b=n.get(a);if(b?.path&&(0,e.existsSync)(b.path))continue;v.run(a),k.deleted+=1}return k}function m(){if(globalThis.__piSessionIndexScanner?.timer)return;let a=!1,b=l().then(a=>(console.log(`[pi-web] session index scan: +${a.inserted} ~${a.updated} -${a.deleted} (${a.scanned} files)`),{ok:!0})).catch(a=>(console.error("[pi-web] session index first scan error:",a?.message??a),{ok:!1})),c=setInterval(()=>{a||(a=!0,l().catch(a=>console.error("[pi-web] session index tick error:",a?.message??a)).finally(()=>{a=!1}))},3e4);c.unref?.();let d={timer:c,firstScanDone:!1,firstScanPromise:b.then(a=>{a.ok&&(d.firstScanDone=!0)})};globalThis.__piSessionIndexScanner=d,console.log("[pi-web] session index scanner started (interval 30000ms)")}i=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},62391:(a,b,c)=>{c.d(b,{KI:()=>m});var d=c(79646),e=c(29021),f=c(33873);function g(a){return a&&"win32"===process.platform?(0,f.normalize)(a):a}function h(a){let b=(0,f.normalize)(g(a)),c=(0,f.parse)(b).root.length,d=b.length;for(;d>c&&b[d-1]===f.sep;)d--;return b.slice(0,d)}function i(a,b){if(a===b)return!0;if(!a||!b)return!1;let c=h(a),d=h(b);return"win32"===process.platform?c.toLowerCase()===d.toLowerCase():c===d}let j=(0,c(28354).promisify)(d.execFile);async function k(a,b){let{stdout:c}=await j("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}function l(a){try{return(0,e.realpathSync)(a)}catch{return a}}async function m(a){let b,c=(globalThis.__piProjectCache||(globalThis.__piProjectCache=new Map),globalThis.__piProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:l(c),branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,h,j,m]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),[n,o,p]=[d,h,j].map(g),q=l(a),r=i(p,q),s=!i(o,n)&&r,t=s?(0,f.dirname)(n):p;b={projectRoot:r?l(t):a,branch:m&&"HEAD"!==m?m:null,isWorktree:s,isTopLevel:r}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}},90596:(a,b,c)=>{c.d(b,{Lf:()=>i});var d=c(79868),e=c(29021),f=c(21820),g=c(33873);function h(){let a=process.env.PI_CODING_AGENT_DIR;if(a){let b=a.startsWith("~")?(0,g.join)((0,f.homedir)(),a.slice(1)):a;return(0,g.normalize)(b)}return(0,g.join)((0,f.homedir)(),".pi","agent")}function i(){var a;if(globalThis.__piWebDb)return globalThis.__piWebDb;(0,e.mkdirSync)(h(),{recursive:!0});let b=new d.DatabaseSync((0,g.join)(h(),"pi-web.db"));return b.exec("PRAGMA journal_mode = WAL;"),b.exec("PRAGMA foreign_keys = ON;"),(a=b).exec(`
|
|
12
12
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
13
13
|
id TEXT PRIMARY KEY,
|
|
14
14
|
project_key TEXT NOT NULL,
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
body,
|
|
38
38
|
tokenize = 'trigram'
|
|
39
39
|
);
|
|
40
|
-
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of
|
|
40
|
+
`),function(a){let b=a.prepare("PRAGMA user_version").get().user_version;for(let c of j)if(!(c.version<=b)){a.exec("BEGIN");try{for(let b of c.statements)try{a.exec(b)}catch(b){let a=b instanceof Error?b.message:String(b);if(!/duplicate column name/i.test(a))throw b}a.exec(`PRAGMA user_version = ${c.version}`),a.exec("COMMIT"),b=c.version}catch(b){throw a.exec("ROLLBACK"),b}}}(a),globalThis.__piWebDb=b,b}let j=[{version:1,name:"pinned columns",statements:["ALTER TABLE tasks ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;","ALTER TABLE session_meta ADD COLUMN pinned INTEGER NOT NULL DEFAULT 0;"]},{version:2,name:"tasks.sort_order",statements:["ALTER TABLE tasks ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:3,name:"session boards",statements:["CREATE TABLE IF NOT EXISTS boards (\n id TEXT PRIMARY KEY,\n project_key TEXT NOT NULL,\n name TEXT NOT NULL,\n is_system INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_boards_project ON boards(project_key);","CREATE TABLE IF NOT EXISTS board_nodes (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n ref_id TEXT,\n x REAL NOT NULL,\n y REAL NOT NULL,\n w REAL NOT NULL DEFAULT 0,\n h REAL NOT NULL DEFAULT 0,\n expanded INTEGER NOT NULL DEFAULT 0,\n props TEXT NOT NULL DEFAULT '{}',\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_nodes_board ON board_nodes(board_id);","CREATE TABLE IF NOT EXISTS board_edges (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n label TEXT,\n color TEXT,\n dashed INTEGER NOT NULL DEFAULT 0,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_board_edges_board ON board_edges(board_id);","CREATE TABLE IF NOT EXISTS board_view (\n board_id TEXT PRIMARY KEY,\n camera_x REAL NOT NULL DEFAULT 0,\n camera_y REAL NOT NULL DEFAULT 0,\n camera_z REAL NOT NULL DEFAULT 1,\n updated INTEGER NOT NULL\n);"]},{version:4,name:"boards.sort_order",statements:["ALTER TABLE boards ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0;"]},{version:5,name:"boards.task_id",statements:["ALTER TABLE boards ADD COLUMN task_id TEXT NULL;","CREATE INDEX IF NOT EXISTS idx_boards_task ON boards(task_id);"]},{version:6,name:"boards.task_id unique (防并发重复创建任务看板)",statements:["CREATE UNIQUE INDEX IF NOT EXISTS idx_boards_task_unique ON boards(task_id);"]},{version:7,name:"task cards",statements:["CREATE TABLE IF NOT EXISTS task_cards (\n id TEXT PRIMARY KEY,\n board_id TEXT NOT NULL,\n project_key TEXT NOT NULL,\n number INTEGER NOT NULL,\n name TEXT NOT NULL,\n description TEXT NOT NULL DEFAULT '',\n ready_status TEXT NOT NULL DEFAULT 'draft',\n exec_status TEXT NOT NULL DEFAULT 'not_started',\n priority INTEGER NOT NULL DEFAULT 0,\n due INTEGER,\n attachments TEXT NOT NULL DEFAULT '[]',\n cwd TEXT,\n use_worktree INTEGER NOT NULL DEFAULT 0,\n max_retries INTEGER NOT NULL DEFAULT 3,\n retry_count INTEGER NOT NULL DEFAULT 0,\n session_id TEXT,\n created INTEGER NOT NULL,\n updated INTEGER NOT NULL\n);","CREATE INDEX IF NOT EXISTS idx_task_cards_board ON task_cards(board_id);","CREATE INDEX IF NOT EXISTS idx_task_cards_project ON task_cards(project_key);","CREATE UNIQUE INDEX IF NOT EXISTS idx_task_cards_number ON task_cards(project_key, number);","CREATE INDEX IF NOT EXISTS idx_task_cards_status ON task_cards(ready_status, exec_status);","CREATE TABLE IF NOT EXISTS task_card_links (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n target_card_id TEXT NOT NULL,\n kind TEXT NOT NULL,\n created INTEGER NOT NULL,\n UNIQUE(card_id, target_card_id, kind)\n);","CREATE INDEX IF NOT EXISTS idx_task_links_card ON task_card_links(card_id);","CREATE TABLE IF NOT EXISTS task_card_questions (\n id TEXT PRIMARY KEY,\n card_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n question TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n answer TEXT,\n created INTEGER NOT NULL,\n answered INTEGER\n);","CREATE INDEX IF NOT EXISTS idx_task_questions_status ON task_card_questions(status);"]},{version:8,name:"task_cards.dispatch_token (跨进程派发互斥锁)",statements:["ALTER TABLE task_cards ADD COLUMN dispatch_token TEXT NULL;"]},{version:9,name:"task_cards.owner + heartbeat (状态判定实例归属)",statements:["ALTER TABLE task_cards ADD COLUMN owner TEXT NULL;","ALTER TABLE task_cards ADD COLUMN heartbeat INTEGER NOT NULL DEFAULT 0;"]},{version:10,name:"scheduler_leader (单调度者注册)",statements:["CREATE TABLE IF NOT EXISTS scheduler_leader (\n id INTEGER PRIMARY KEY,\n instance_id TEXT NOT NULL,\n registered_at INTEGER NOT NULL,\n heartbeat INTEGER NOT NULL\n);"]},{version:11,name:"session_meta 升格会话完整索引(列表重构 v2)",statements:["ALTER TABLE session_meta ADD COLUMN path TEXT;","ALTER TABLE session_meta ADD COLUMN cwd TEXT;","ALTER TABLE session_meta ADD COLUMN project_key TEXT;","ALTER TABLE session_meta ADD COLUMN title TEXT;","ALTER TABLE session_meta ADD COLUMN first_message TEXT;","ALTER TABLE session_meta ADD COLUMN parent_id TEXT;","ALTER TABLE session_meta ADD COLUMN created INTEGER;","ALTER TABLE session_meta ADD COLUMN modified INTEGER;","CREATE INDEX IF NOT EXISTS idx_meta_project_modified ON session_meta(project_key, modified DESC);"]}]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/-gLK6QyBXk9SPd4ajO5tR/_buildManifest.js","static/-gLK6QyBXk9SPd4ajO5tR/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-4a321ad1cc2cd898.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-d29203733ca4633c.js","static/chunks/main-app-dd2385a1a5a588df.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/4a609fb185e7cff1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4a321ad1cc2cd898.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d29203733ca4633c.js" async=""></script><script src="/_next/static/chunks/main-app-dd2385a1a5a588df.js" async=""></script><script src="/_next/static/chunks/app/layout-34c3afa7e57644fe.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)"/><title>Pi Web</title><meta name="description" content="Pi Web interface for the pi coding agent"/><meta name="application-name" content="Pi Web"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Pi Web"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico?8aa486c701a3d218" type="image/x-icon" sizes="512x512"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><script>(function(){try{var t=localStorage.getItem("pi-theme");var dark=t==="dark"||((t==null||t===""||t==="auto")&&window.matchMedia("(prefers-color-scheme: dark)").matches);if(dark)document.documentElement.classList.add("dark")}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><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><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4a321ad1cc2cd898.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[57788,[\"7177\",\"static/chunks/app/layout-34c3afa7e57644fe.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/88714c00e109ce28.css\",\"style\"]\n:HL[\"/_next/static/css/4a609fb185e7cff1.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/88714c00e109ce28.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4a609fb185e7cff1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");var dark=t===\\\"dark\\\"||((t==null||t===\\\"\\\"||t===\\\"auto\\\")\u0026\u0026window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);if(dark)document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"suppressHydrationWarning\":true,\"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,{}]]}]]}]]}],{\"children\":[[\"$\",\"$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\":[[\"$\",\"$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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"m9gWh8uFYWdcMxBdc3tY5\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1a1a1a\",\"media\":\"(prefers-color-scheme: dark)\"}]]\ne:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"Pi Web\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Pi Web interface for the pi coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Pi Web\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Pi Web\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?8aa486c701a3d218\",\"type\":\"image/x-icon\",\"sizes\":\"512x512\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Le\",\"11\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" translate="no" class="__variable_66b8ca notranslate"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/4a609fb185e7cff1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4a321ad1cc2cd898.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d29203733ca4633c.js" async=""></script><script src="/_next/static/chunks/main-app-dd2385a1a5a588df.js" async=""></script><script src="/_next/static/chunks/app/layout-eb4df7493f8710df.js" async=""></script><meta name="robots" content="noindex"/><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)"/><title>Pi Web</title><meta name="description" content="Pi Web interface for the pi coding agent"/><meta name="application-name" content="Pi Web"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Pi Web"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico?8aa486c701a3d218" type="image/x-icon" sizes="512x512"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><meta name="next-size-adjust" content=""/><meta name="google" content="notranslate"/><title>404: This page could not be found.</title><script>(function(){try{var t=localStorage.getItem("pi-theme");var dark=t==="dark"||((t==null||t===""||t==="auto")&&window.matchMedia("(prefers-color-scheme: dark)").matches);if(dark)document.documentElement.classList.add("dark")}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><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><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4a321ad1cc2cd898.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[57788,[\"7177\",\"static/chunks/app/layout-eb4df7493f8710df.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/88714c00e109ce28.css\",\"style\"]\n:HL[\"/_next/static/css/4a609fb185e7cff1.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/88714c00e109ce28.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/4a609fb185e7cff1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"__variable_66b8ca notranslate\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");var dark=t===\\\"dark\\\"||((t==null||t===\\\"\\\"||t===\\\"auto\\\")\u0026\u0026window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches);if(dark)document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"suppressHydrationWarning\":true,\"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,{}]]}]]}]]}],{\"children\":[[\"$\",\"$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\":[[\"$\",\"$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,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"-gLK6QyBXk9SPd4ajO5tR\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#1a1a1a\",\"media\":\"(prefers-color-scheme: dark)\"}]]\ne:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"Pi Web\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Pi Web interface for the pi coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Pi Web\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Pi Web\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?8aa486c701a3d218\",\"type\":\"image/x-icon\",\"sizes\":\"512x512\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Le\",\"11\",{}]]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4a321ad1cc2cd898.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d29203733ca4633c.js" async=""></script><script src="/_next/static/chunks/main-app-dd2385a1a5a588df.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4a321ad1cc2cd898.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4a321ad1cc2cd898.js"/><script src="/_next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js" async=""></script><script src="/_next/static/chunks/3794-d29203733ca4633c.js" async=""></script><script src="/_next/static/chunks/main-app-dd2385a1a5a588df.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4a321ad1cc2cd898.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"-gLK6QyBXk9SPd4ajO5tR\"}\n7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\nb:[]\n"])</script></body></html>
|