@qt4798/pi-web 0.18.3 → 0.18.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +17 -17
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  20. package/.next/server/app/api/agent/[id]/route.js +1 -1
  21. package/.next/server/app/api/agent/new/route.js +1 -1
  22. package/.next/server/app/api/app-update/route.js +1 -1
  23. package/.next/server/app/api/cwd/validate/route.js +1 -1
  24. package/.next/server/app/api/default-cwd/route.js +1 -1
  25. package/.next/server/app/api/files/[...path]/route.js +1 -1
  26. package/.next/server/app/api/git/diff/route.js +1 -1
  27. package/.next/server/app/api/git/push/route.js +1 -1
  28. package/.next/server/app/api/git/stash/route.js +1 -1
  29. package/.next/server/app/api/git/status/route.js +1 -1
  30. package/.next/server/app/api/import/discover/route.js +1 -1
  31. package/.next/server/app/api/logs/route.js +1 -1
  32. package/.next/server/app/api/mcp/restart/route.js +1 -1
  33. package/.next/server/app/api/mcp/route.js +1 -1
  34. package/.next/server/app/api/models-config/builtin/route.js +1 -1
  35. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  36. package/.next/server/app/api/models-config/discover/route.js +1 -1
  37. package/.next/server/app/api/models-config/route.js +1 -1
  38. package/.next/server/app/api/models-config/test/route.js +1 -1
  39. package/.next/server/app/api/plugins/route.js +1 -1
  40. package/.next/server/app/api/project-state/route.js +1 -1
  41. package/.next/server/app/api/projects/visibility/route.js +1 -1
  42. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  43. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  44. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  45. package/.next/server/app/api/settings/title-model/route.js +1 -1
  46. package/.next/server/app/api/skills/install/route.js +1 -1
  47. package/.next/server/app/api/skills/route.js +1 -1
  48. package/.next/server/app/api/snippets/[id]/route.js +1 -1
  49. package/.next/server/app/api/snippets/route.js +1 -1
  50. package/.next/server/app/api/subagents/settings/route.js +1 -1
  51. package/.next/server/app/api/tools/extension-tools/route.js +1 -1
  52. package/.next/server/app/api/tools/settings/route.js +1 -1
  53. package/.next/server/app/api/vision-config/route.js +1 -1
  54. package/.next/server/app/api/web-auth/route.js +1 -1
  55. package/.next/server/app/index.html +1 -1
  56. package/.next/server/app/index.rsc +4 -4
  57. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  58. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  59. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  60. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/login.html +1 -1
  62. package/.next/server/app/login.rsc +2 -2
  63. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  64. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  65. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  66. package/.next/server/app/page.js +10 -8
  67. package/.next/server/app/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app-paths-manifest.json +17 -17
  69. package/.next/server/chunks/154.js +12 -11
  70. package/.next/server/chunks/4253.js +14 -11
  71. package/.next/server/chunks/440.js +1 -1
  72. package/.next/server/chunks/5725.js +1 -1
  73. package/.next/server/chunks/6429.js +8 -5
  74. package/.next/server/chunks/7915.js +1 -1
  75. package/.next/server/chunks/9332.js +1 -1
  76. package/.next/server/middleware-build-manifest.js +1 -1
  77. package/.next/server/middleware.js +1 -1
  78. package/.next/server/pages/404.html +1 -1
  79. package/.next/server/pages/500.html +1 -1
  80. package/.next/server/server-reference-manifest.json +1 -1
  81. package/.next/static/chunks/app/{page-bf524eccd13171ca.js → page-d363e57a49404652.js} +10 -8
  82. package/.next/static/css/2f7c89d02f957732.css +1 -0
  83. package/.next/trace +83 -83
  84. package/.next/trace-build +1 -1
  85. package/package.json +1 -1
  86. package/.next/static/css/5418f5ea5454ad72.css +0 -1
  87. /package/.next/static/{_xksA4ZQaCVW_rYzSdTTL → PzFJcRfrMtE8eCJrhnney}/_buildManifest.js +0 -0
  88. /package/.next/static/{_xksA4ZQaCVW_rYzSdTTL → PzFJcRfrMtE8eCJrhnney}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"42309":{"*":{"id":"28447","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"69409":{"*":{"id":"33548","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86343":{"*":{"id":"67809","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/ErrorBoundary.tsx":{"id":86343,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/settings.css":{"id":39979,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/theme-presets.css":{"id":5332,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/index.css":{"id":26408,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/400-italic.css":{"id":8057,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700.css":{"id":35279,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700-italic.css":{"id":48276,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/lilex/index.css":{"id":12043,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/AppShell.tsx":{"id":69409,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","7650","static/chunks/7650-4f948821e59fd720.js","9247","static/chunks/9247-dcc0a4a11fc397aa.js","8974","static/chunks/app/page-bf524eccd13171ca.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","7650","static/chunks/7650-4f948821e59fd720.js","9247","static/chunks/9247-dcc0a4a11fc397aa.js","8974","static/chunks/app/page-bf524eccd13171ca.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/login/page.tsx":{"id":42309,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/":[],"/Volumes/1T 原装/项目研发/pi-web-QT/app/layout":[{"inlined":false,"path":"static/css/2f46e0db0d4a3aed.css"},{"inlined":false,"path":"static/css/5418f5ea5454ad72.css"},{"inlined":false,"path":"static/css/452ea33c857da08e.css"}],"/Volumes/1T 原装/项目研发/pi-web-QT/app/page":[]},"rscModuleMapping":{"5332":{"*":{"id":"39612","name":"*","chunks":[],"async":false}},"8057":{"*":{"id":"17","name":"*","chunks":[],"async":false}},"12043":{"*":{"id":"47561","name":"*","chunks":[],"async":false}},"26408":{"*":{"id":"77222","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"35279":{"*":{"id":"10289","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"39979":{"*":{"id":"77261","name":"*","chunks":[],"async":false}},"42309":{"*":{"id":"69613","name":"*","chunks":[],"async":false}},"48276":{"*":{"id":"64388","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","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}},"69409":{"*":{"id":"35790","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}},"86343":{"*":{"id":"24387","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"55100","name":"*","chunks":[],"async":false}},"42309":{"*":{"id":"28447","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","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}},"85822":{"*":{"id":"37020","name":"*","chunks":[],"async":false}},"86343":{"*":{"id":"67809","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/ErrorBoundary.tsx":{"id":86343,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/katex/dist/katex.min.css":{"id":84559,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/settings.css":{"id":39979,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/theme-presets.css":{"id":5332,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/index.css":{"id":26408,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/400-italic.css":{"id":8057,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700.css":{"id":35279,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/ia-writer-quattro/700-italic.css":{"id":48276,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/node_modules/@fontsource/lilex/index.css":{"id":12043,"name":"*","chunks":["7177","static/chunks/app/layout-9aea218f73c7fe87.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/components/AppShell.tsx":{"id":85822,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","7650","static/chunks/7650-4f948821e59fd720.js","9247","static/chunks/9247-dcc0a4a11fc397aa.js","8974","static/chunks/app/page-d363e57a49404652.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/hooks/useI18n.tsx":{"id":39247,"name":"*","chunks":["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","7650","static/chunks/7650-4f948821e59fd720.js","9247","static/chunks/9247-dcc0a4a11fc397aa.js","8974","static/chunks/app/page-d363e57a49404652.js"],"async":false},"/Volumes/1T 原装/项目研发/pi-web-QT/app/login/page.tsx":{"id":42309,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/":[],"/Volumes/1T 原装/项目研发/pi-web-QT/app/layout":[{"inlined":false,"path":"static/css/2f46e0db0d4a3aed.css"},{"inlined":false,"path":"static/css/2f7c89d02f957732.css"},{"inlined":false,"path":"static/css/452ea33c857da08e.css"}],"/Volumes/1T 原装/项目研发/pi-web-QT/app/page":[]},"rscModuleMapping":{"5332":{"*":{"id":"39612","name":"*","chunks":[],"async":false}},"8057":{"*":{"id":"17","name":"*","chunks":[],"async":false}},"12043":{"*":{"id":"47561","name":"*","chunks":[],"async":false}},"26408":{"*":{"id":"77222","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"35279":{"*":{"id":"10289","name":"*","chunks":[],"async":false}},"39247":{"*":{"id":"73884","name":"*","chunks":[],"async":false}},"39979":{"*":{"id":"77261","name":"*","chunks":[],"async":false}},"42309":{"*":{"id":"69613","name":"*","chunks":[],"async":false}},"48276":{"*":{"id":"64388","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","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}},"85822":{"*":{"id":"35790","name":"*","chunks":[],"async":false}},"86343":{"*":{"id":"24387","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -34,67 +34,67 @@
34
34
  "/icon.ico/route": "app/icon.ico/route.js",
35
35
  "/icon.png/route": "app/icon.png/route.js",
36
36
  "/icon.svg/route": "app/icon.svg/route.js",
37
- "/api/agent/[id]/bash-output/route": "app/api/agent/[id]/bash-output/route.js",
38
37
  "/api/agent/running/route": "app/api/agent/running/route.js",
39
- "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
40
38
  "/api/agent/running/events/route": "app/api/agent/running/events/route.js",
41
- "/api/app-update/route": "app/api/app-update/route.js",
39
+ "/api/agent/[id]/bash-output/route": "app/api/agent/[id]/bash-output/route.js",
42
40
  "/api/auth/combined/route": "app/api/auth/combined/route.js",
41
+ "/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
43
42
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
43
+ "/api/app-update/route": "app/api/app-update/route.js",
44
44
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
45
45
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
46
46
  "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
47
47
  "/api/backup/export/route": "app/api/backup/export/route.js",
48
+ "/api/backup/import/route": "app/api/backup/import/route.js",
48
49
  "/api/events/route": "app/api/events/route.js",
49
50
  "/api/features/route": "app/api/features/route.js",
50
- "/api/backup/import/route": "app/api/backup/import/route.js",
51
51
  "/api/git/diff/route": "app/api/git/diff/route.js",
52
52
  "/api/git/push/route": "app/api/git/push/route.js",
53
- "/api/git/status/route": "app/api/git/status/route.js",
54
53
  "/api/git/stash/route": "app/api/git/stash/route.js",
55
- "/api/mcp/restart/route": "app/api/mcp/restart/route.js",
54
+ "/api/git/status/route": "app/api/git/status/route.js",
56
55
  "/api/logs/route": "app/api/logs/route.js",
56
+ "/api/mcp/restart/route": "app/api/mcp/restart/route.js",
57
57
  "/api/mcp/route": "app/api/mcp/route.js",
58
+ "/api/models-config/builtin/route": "app/api/models-config/builtin/route.js",
58
59
  "/api/models-config/catalog/route": "app/api/models-config/catalog/route.js",
59
60
  "/api/models-config/discover/route": "app/api/models-config/discover/route.js",
60
- "/api/models-config/test/route": "app/api/models-config/test/route.js",
61
61
  "/api/models-config/route": "app/api/models-config/route.js",
62
- "/api/modes/route": "app/api/modes/route.js",
62
+ "/api/models-config/test/route": "app/api/models-config/test/route.js",
63
63
  "/api/models/route": "app/api/models/route.js",
64
- "/api/models-config/builtin/route": "app/api/models-config/builtin/route.js",
64
+ "/api/modes/route": "app/api/modes/route.js",
65
65
  "/api/plugins/check/route": "app/api/plugins/check/route.js",
66
66
  "/api/project-aliases/route": "app/api/project-aliases/route.js",
67
+ "/api/plugins/route": "app/api/plugins/route.js",
67
68
  "/api/project-state/route": "app/api/project-state/route.js",
69
+ "/api/project-trust/route": "app/api/project-trust/route.js",
68
70
  "/api/projects/visibility/route": "app/api/projects/visibility/route.js",
69
71
  "/api/provider-usage/query/route": "app/api/provider-usage/query/route.js",
70
- "/api/project-trust/route": "app/api/project-trust/route.js",
71
- "/api/proxy/test/route": "app/api/proxy/test/route.js",
72
72
  "/api/proxy/route": "app/api/proxy/route.js",
73
- "/api/plugins/route": "app/api/plugins/route.js",
73
+ "/api/proxy/test/route": "app/api/proxy/test/route.js",
74
74
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
75
75
  "/api/sessions/route": "app/api/sessions/route.js",
76
+ "/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
76
77
  "/api/sessions/search/route": "app/api/sessions/search/route.js",
77
78
  "/api/settings/title-model/route": "app/api/settings/title-model/route.js",
78
79
  "/api/skills/check/route": "app/api/skills/check/route.js",
79
80
  "/api/skills/install/route": "app/api/skills/install/route.js",
80
81
  "/api/skills/route": "app/api/skills/route.js",
81
82
  "/api/skills/search/route": "app/api/skills/search/route.js",
83
+ "/api/skills/update/route": "app/api/skills/update/route.js",
82
84
  "/api/snippets/[id]/route": "app/api/snippets/[id]/route.js",
83
85
  "/api/snippets/route": "app/api/snippets/route.js",
84
- "/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
85
- "/api/skills/update/route": "app/api/skills/update/route.js",
86
86
  "/api/subagents/[id]/route": "app/api/subagents/[id]/route.js",
87
+ "/api/subagents/profiles/route": "app/api/subagents/profiles/route.js",
87
88
  "/api/subagents/settings/route": "app/api/subagents/settings/route.js",
88
89
  "/api/tasks/[id]/changed-files/route": "app/api/tasks/[id]/changed-files/route.js",
89
- "/api/subagents/profiles/route": "app/api/subagents/profiles/route.js",
90
90
  "/api/tasks/events/route": "app/api/tasks/events/route.js",
91
91
  "/api/terminal/[id]/events/route": "app/api/terminal/[id]/events/route.js",
92
- "/api/terminal/route": "app/api/terminal/route.js",
93
92
  "/api/terminal/[id]/route": "app/api/terminal/[id]/route.js",
93
+ "/api/terminal/route": "app/api/terminal/route.js",
94
94
  "/api/tools/extension-tools/route": "app/api/tools/extension-tools/route.js",
95
95
  "/api/tools/settings/route": "app/api/tools/settings/route.js",
96
- "/api/vision-config/route": "app/api/vision-config/route.js",
97
96
  "/api/usage/route": "app/api/usage/route.js",
97
+ "/api/vision-config/route": "app/api/vision-config/route.js",
98
98
  "/api/web-auth/route": "app/api/web-auth/route.js",
99
99
  "/page": "app/page.js",
100
100
  "/login/page": "app/login/page.js"
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=154,exports.ids=[154],exports.modules={80154:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{KG:()=>F,Kx:()=>u,MR:()=>J,Me:()=>N,Q$:()=>M,Rt:()=>O,UT:()=>q,YC:()=>P,gc:()=>E,lC:()=>r,m5:()=>L,oM:()=>K,r5:()=>k,vq:()=>s,yX:()=>I});var e=c(29021);c(33873);var f=c(79646),g=c(24923),h=c(46583),i=c(56429),j=a([h,i]);[h,i]=j.then?(await j)():j;let R=new Set;function k(a){return R.add(a),()=>R.delete(a)}function l(a){for(let b of R)b(a)}function m(){return globalThis.__piTaskEngine??null}function n(){let a=m();if(!a)throw Error("task engine not running");return a}function o(){return new Date().toISOString()}function p(a,b,c="engine",d){(0,h.fd)(a),b&&(0,h.Q1)(a.projectRoot,{taskId:a.id,kind:b,actor:c,payload:d??null}),l({type:"upsert",id:a.id})}function q(a){let b=(0,h.Mx)(a.projectRoot,(b,c)=>({id:b,projectRoot:a.projectRoot,title:a.title,config:a.config,status:"todo",failureReason:null,lastError:null,runSeq:0,sortOrder:(0,h.h6)(a.projectRoot).length,worktreePath:null,conversationId:null,sessionFile:null,baseBranch:null,workBranch:null,verdict:null,resultSummary:null,userNote:null,filesChanged:null,additions:null,deletions:null,mergeCommit:null,preflight:null,archivedAt:null,createdAt:c,updatedAt:c,startedAt:null,settledAt:null,finishedAt:null}));return(0,h.Q1)(b.projectRoot,{taskId:b.id,kind:"created",actor:"user",payload:{title:b.title}}),l({type:"upsert",id:b.id}),u(b.projectRoot),b}function r(a,b){let c=(0,h._o)(b.projectRoot,a);if(!c)return null;let d={...c,title:b.title,config:b.config};return p(d,"updated","user"),u(d.projectRoot),d}function s(a,b,c){let d=(0,h._o)(b,a);if(!d)return;d.worktreePath&&d.workBranch&&c&&(async()=>{try{await (0,g.IL)(b,d.worktreePath,!0)}catch{}try{await C(b,["branch","-D",d.workBranch])}catch{}})();let e=m(),f=e?.byTask.get(a);f&&(f.session.send({type:"abort"}).catch(()=>void 0),e?.live.delete(f.connectionId),e?.byTask.delete(a)),(0,h.bT)(b,a),l({type:"delete",id:a})}function t(a,b,c,d,f){let g=function(a){for(let b of m()?.byTask.values()??[])if(b.taskId===a)return(0,h._o)(b.projectRoot,a)??null;let b=(0,h.z1)("__engine__").replace(/__engine__$/,"");if(!(0,e.existsSync)(b))return null;for(let c of(0,e.readdirSync)(b,{withFileTypes:!0})){if(!c.isDirectory()||"__engine__"===c.name)continue;let b=(0,h._o)(H(c.name),a);if(b)return b}return null}(a);if(!g||g.runSeq!==b||!c.includes(g.status))return null;let i={...g,...f,status:d,updatedAt:o()};return p(i),i}function u(a){m()&&v(a)}async function v(a){let b=n(),c=(b.pumpLocks.get(a)??Promise.resolve()).then(()=>w(a));b.pumpLocks.set(a,c.catch(()=>void 0)),await c}async function w(a){let b=n();if(b.stopped)return;let c=(0,h.Rv)(a);if(!c.autoProcess)return;let d=(0,h.h6)(a),e=[...b.byTask.values()].filter(b=>b.projectRoot===a).length,f=c.maxConcurrent>0?c.maxConcurrent:1/0;if(!(e>=f))for(let c of d.filter(a=>"queued"===a.status).sort((a,b)=>a.sortOrder-b.sortOrder)){if(e>=f)break;!b.launching.has(c.id)&&await x(c.id,a)&&(e+=1)}}async function x(a,b){let c=n(),d=(0,h._o)(b,a);if(!d||"queued"!==d.status)return!1;let e=globalThis,i=e.__taskLaunchToken=(e.__taskLaunchToken??0)+1;if(c.launching.set(a,i),!t(a,d.runSeq,["queued"],"preparing",{startedAt:o()}))return c.launching.delete(a),!1;(0,h.Q1)(b,{taskId:a,kind:"preparing",actor:"engine"});try{var j,k,l,m,p;let e,i,q,r,s,u,v=await (0,g.KI)(b);if(!v.projectRoot)throw Error("Not a git repository");let w=`task/${a}-${d.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}`,x=null;try{x=(await (0,g.l)(v.projectRoot,w)).path}catch(b){let a=await y(v.projectRoot,w);if(!a)throw b;x=a}let B=v.branch??null,E=(0,h.Rv)(b);E.initCommand&&await (j=x,k=E.initCommand,new Promise((a,b)=>{let c=(0,f.spawn)(k,{cwd:j,shell:!0,stdio:"ignore"});c.on("error",b),c.on("exit",c=>{0===c?a():b(Error(`init command exited with code ${c??"null"}`))})}));let{session:F}=await z(d,x),G={taskId:a,runSeq:d.runSeq,connectionId:F.sessionId,projectRoot:b,session:F,pendingRequests:new Set};if(c.live.set(F.sessionId,G),c.byTask.set(a,G),(l=G).session.onEvent(a=>{let b=a.type;(async()=>{var c,d;let e=n().live.get(l.connectionId);if(!e||e.taskId!==l.taskId)return;let f=(0,h._o)(l.projectRoot,l.taskId);if(f&&("running"===f.status||"awaiting_input"===f.status||"merging"===f.status))switch(b){case"extension_ui_request":{let b=a.method,c=a.id;b&&c&&["confirm","input","select","editor"].includes(b)&&(l.pendingRequests.add(c),"running"===f.status&&(t(l.taskId,l.runSeq,["running"],"awaiting_input"),(0,h.Q1)(f.projectRoot,{taskId:l.taskId,kind:"awaiting_input",actor:"engine",payload:{method:b,id:c}})));break}case"extension_ui_response":{let b=a.id;b&&l.pendingRequests.delete(b)&&0===l.pendingRequests.size&&"awaiting_input"===f.status&&t(l.taskId,l.runSeq,["awaiting_input"],"running");break}case"agent_end":if(l.pendingRequests.size>0)break;if("merging"===f.status){let a;c=l,(a=(0,h._o)(c.projectRoot,c.taskId))&&"merging"===a.status&&D(c.session.cwd,["rev-parse","--short","HEAD"]).then(a=>a.output.trim()).catch(()=>null).then(async a=>{let b=(0,h._o)(c.projectRoot,c.taskId);if(b){t(b.id,b.runSeq,["merging"],"done",{mergeCommit:a,finishedAt:o()}),(0,h.Q1)(b.projectRoot,{taskId:b.id,kind:"merged",actor:"engine",payload:{commit:a}});try{b.worktreePath&&await (0,g.IL)(c.projectRoot,b.worktreePath,!0).catch(()=>void 0),b.workBranch&&await C(c.projectRoot,["branch","-D",b.workBranch]).catch(()=>void 0)}catch{}}});break}A(l,f);break;case"prompt_error":{let b,c=a.errorMessage??"agent error";t(l.taskId,l.runSeq,["running","awaiting_input"],"failed",{failureReason:"agent_error",lastError:c,settledAt:o(),finishedAt:o()}),(0,h.Q1)(f.projectRoot,{taskId:l.taskId,kind:"failed",actor:"engine",payload:{reason:"agent_error",message:c}}),d=l,(b=n()).live.delete(d.connectionId),b.byTask.delete(d.taskId);break}case"agent_start":"awaiting_input"===f.status&&0===l.pendingRequests.size&&t(l.taskId,l.runSeq,["awaiting_input"],"running")}})()}),!t(a,d.runSeq,["preparing"],"running",{worktreePath:x,workBranch:w,baseBranch:B,conversationId:F.sessionId,sessionFile:F.sessionFile,runSeq:d.runSeq}))return c.live.delete(F.sessionId),c.byTask.delete(a),F.shutdown().catch(()=>void 0),!1;(0,h.Q1)(b,{taskId:a,kind:"started",actor:"engine",payload:{runSeq:d.runSeq,branch:w}});let H=(m=d,p=E,e=m.config?.prompt??m.title,i=p.stagePrompts?.work??p.stagePrompts?.all??"",q=m.config?.agentType??p.defaultAgentType,r=`You are working on task "${m.title}" in a git worktree branch.
2
- `+(q?`Agent: ${q}
1
+ "use strict";exports.id=154,exports.ids=[154],exports.modules={80154:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{KG:()=>I,Kx:()=>u,MR:()=>M,Me:()=>Q,Q$:()=>P,Rt:()=>R,UT:()=>q,YC:()=>S,gc:()=>H,lC:()=>r,m5:()=>O,oM:()=>N,r5:()=>k,vq:()=>s,yX:()=>L});var e=c(29021);c(33873);var f=c(79646),g=c(24923),h=c(46583),i=c(56429),j=a([h,i]);[h,i]=j.then?(await j)():j;let ab=new Set;function k(a){return ab.add(a),()=>ab.delete(a)}function l(a){for(let b of ab)b(a)}function m(){return globalThis.__piTaskEngine??null}function n(){let a=m();if(!a)throw Error("task engine not running");return a}function o(){return new Date().toISOString()}function p(a,b,c="engine",d){(0,h.fd)(a),b&&(0,h.Q1)(a.projectRoot,{taskId:a.id,kind:b,actor:c,payload:d??null}),l({type:"upsert",id:a.id})}function q(a){let b=(0,h.Mx)(a.projectRoot,(b,c)=>({id:b,projectRoot:a.projectRoot,title:a.title,config:a.config,status:"todo",failureReason:null,lastError:null,runSeq:0,sortOrder:(0,h.h6)(a.projectRoot).length,worktreePath:null,conversationId:null,sessionFile:null,baseBranch:null,workBranch:null,verdict:null,resultSummary:null,userNote:null,filesChanged:null,additions:null,deletions:null,mergeCommit:null,preflight:null,archivedAt:null,createdAt:c,updatedAt:c,startedAt:null,settledAt:null,finishedAt:null}));return(0,h.Q1)(b.projectRoot,{taskId:b.id,kind:"created",actor:"user",payload:{title:b.title}}),l({type:"upsert",id:b.id}),u(b.projectRoot),b}function r(a,b){let c=(0,h._o)(b.projectRoot,a);if(!c)return null;let d={...c,title:b.title,config:b.config};return p(d,"updated","user"),u(d.projectRoot),d}function s(a,b,c){let d=(0,h._o)(b,a);if(!d)return;d.worktreePath&&d.workBranch&&c&&(async()=>{try{await (0,g.IL)(b,d.worktreePath,!0)}catch{}try{var a,c;await (a=b,c=["branch","-D",d.workBranch],new Promise((b,d)=>{let e=(0,f.spawn)("git",c,{cwd:a,stdio:"ignore"});e.on("error",d),e.on("exit",a=>{0===a?b():d(Error(`git ${c[0]??""} exited with code ${a??"null"}`))})}))}catch{}})();let e=m(),i=e?.byTask.get(a);i&&(i.session.send({type:"abort"}).catch(()=>void 0),e?.live.delete(i.connectionId),e?.byTask.delete(a)),(0,h.bT)(b,a),l({type:"delete",id:a})}function t(a,b,c,d,f){let g=function(a){for(let b of m()?.byTask.values()??[])if(b.taskId===a)return(0,h._o)(b.projectRoot,a)??null;let b=(0,h.z1)("__engine__").replace(/__engine__$/,"");if(!(0,e.existsSync)(b))return null;for(let c of(0,e.readdirSync)(b,{withFileTypes:!0})){if(!c.isDirectory()||"__engine__"===c.name)continue;let b=(0,h._o)(K(c.name),a);if(b)return b}return null}(a);if(!g||g.runSeq!==b||!c.includes(g.status))return null;let i={...g,...f,status:d,updatedAt:o()};return p(i),i}function u(a){m()&&v(a)}async function v(a){let b=n(),c=(b.pumpLocks.get(a)??Promise.resolve()).then(()=>w(a));b.pumpLocks.set(a,c.catch(()=>void 0)),await c}async function w(a){let b=n();if(b.stopped)return;let c=(0,h.Rv)(a);if(!c.autoProcess)return;let d=(0,h.h6)(a),e=[...b.byTask.values()].filter(b=>b.projectRoot===a).length,f=c.maxConcurrent>0?c.maxConcurrent:1/0;if(!(e>=f))for(let c of d.filter(a=>"queued"===a.status).sort((a,b)=>a.sortOrder-b.sortOrder)){if(e>=f)break;!b.launching.has(c.id)&&await x(c.id,a)&&(e+=1)}}async function x(a,b){let c=n(),d=(0,h._o)(b,a);if(!d||"queued"!==d.status)return!1;let e=globalThis,i=e.__taskLaunchToken=(e.__taskLaunchToken??0)+1;if(c.launching.set(a,i),!t(a,d.runSeq,["queued"],"preparing",{startedAt:o()}))return c.launching.delete(a),!1;(0,h.Q1)(b,{taskId:a,kind:"preparing",actor:"engine"});try{var j,k,l,m;let e,i,n,o,p,q,r=await (0,g.KI)(b);if(!r.projectRoot)throw Error("Not a git repository");let s=`task/${a}-${d.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}`,u=null;try{u=(await (0,g.l)(r.projectRoot,s)).path}catch(b){let a=await y(r.projectRoot,s);if(!a)throw b;u=a}let v=r.branch??null,w=(0,h.Rv)(b);w.initCommand&&await (j=u,k=w.initCommand,new Promise((a,b)=>{let c=(0,f.spawn)(k,{cwd:j,shell:!0,stdio:"ignore"});c.on("error",b),c.on("exit",c=>{0===c?a():b(Error(`init command exited with code ${c??"null"}`))})}));let{session:x}=await z(d,u),A={taskId:a,runSeq:d.runSeq,connectionId:x.sessionId,projectRoot:b,session:x,pendingRequests:new Set},B=c.byTask.get(a);if(B&&G(B),c.live.set(x.sessionId,A),c.byTask.set(a,A),D(A),!t(a,d.runSeq,["preparing"],"running",{worktreePath:u,workBranch:s,baseBranch:v,conversationId:x.sessionId,sessionFile:x.sessionFile,runSeq:d.runSeq}))return G(A),x.shutdown().catch(()=>void 0),!1;(0,h.Q1)(b,{taskId:a,kind:"started",actor:"engine",payload:{runSeq:d.runSeq,branch:s}});let C=(l=d,m=w,e=l.config?.prompt??l.title,i=m.stagePrompts?.work??m.stagePrompts?.all??"",n=l.config?.agentType??m.defaultAgentType,o=`You are working on task "${l.title}" in a git worktree branch.
2
+ `+(n?`Agent: ${n}
3
3
  `:"")+`Complete the work described below.
4
4
 
5
5
  `+`IMPORTANT RULES:
@@ -8,15 +8,16 @@
8
8
  `+`- Do NOT modify files outside this worktree.
9
9
  `+`- When you are done, write a short "Result summary" paragraph describing what you changed.
10
10
 
11
- `,u=(s=m.userNote?.trim())?`User note on this (re)start:
12
- ${s}
11
+ `,q=(p=l.userNote?.trim())?`User note on this (re)start:
12
+ ${p}
13
13
 
14
- `:"",r+u+e+(i?`
14
+ `:"",o+q+e+(i?`
15
15
 
16
- ${i}`:""));return await F.send({type:"prompt",message:H}),!0}catch(e){let c=e instanceof Error?e.message:String(e),d=(0,h._o)(b,a);return d&&("preparing"===d.status||"queued"===d.status)&&(t(a,d.runSeq,[d.status],"failed",{failureReason:"setup_error",lastError:c,settledAt:o(),finishedAt:o()}),(0,h.Q1)(b,{taskId:a,kind:"failed",actor:"engine",payload:{reason:"setup_error",message:c}})),!1}finally{c.launching.delete(a)}}async function y(a,b){try{let c=(await (0,g.P9)(a)).find(a=>a.branch===b);return c?.path??null}catch{return null}}async function z(a,b){let c=`task-${a.id}`,{session:d}=await (0,i.OF)(c,"",b,{});return{session:d}}async function A(a,b){let c=n().live.get(a.connectionId);if(!c||c.taskId!==a.taskId||!t(a.taskId,a.runSeq,["running","awaiting_input"],"review",{settledAt:o()}))return;(0,h.Q1)(b.projectRoot,{taskId:a.taskId,kind:"review",actor:"engine"});let d=(0,h.Rv)(b.projectRoot);d.preflightCommand&&await B(a,d.preflightCommand)}async function B(a,b){let c=(0,h._o)(a.projectRoot,a.taskId);if(c){p({...c,preflight:{status:"running",command:b}},"preflight_start","engine",{command:b});try{var d,e;let c=await (d=a.session.cwd,e=b,new Promise(a=>{let b=(0,f.spawn)(e,{cwd:d,shell:!0}),c="";b.stdout?.on("data",a=>{c+=a.toString()}),b.stderr?.on("data",a=>{c+=a.toString()}),b.on("error",()=>a({code:1,output:c})),b.on("exit",b=>a({code:b,output:c}))})),g=(0,h._o)(a.projectRoot,a.taskId);if(!g)return;p({...g,preflight:{status:0===c.code?"passed":"failed",command:b,exitCode:c.code,outputTail:0===c.code?null:c.output.slice(-4e3)}},0===c.code?"preflight_passed":"preflight_failed","engine",{command:b,exitCode:c.code})}catch(d){let c=(0,h._o)(a.projectRoot,a.taskId);if(!c)return;p({...c,preflight:{status:"failed",command:b,outputTail:d instanceof Error?d.message:String(d)}},"preflight_failed","engine",{command:b})}}}function C(a,b){return new Promise((c,d)=>{let e=(0,f.spawn)("git",b,{cwd:a,stdio:"ignore"});e.on("error",d),e.on("exit",a=>{0===a?c():d(Error(`git ${b[0]??""} exited with code ${a??"null"}`))})})}function D(a,b){return new Promise(c=>{let d=(0,f.spawn)("git",b,{cwd:a}),e="";d.stdout?.on("data",a=>{e+=a.toString()}),d.stderr?.on("data",a=>{e+=a.toString()}),d.on("error",()=>c({code:1,output:e})),d.on("exit",a=>c({code:a,output:e}))})}async function E(a,b){let c=(0,h._o)(b,a);if(!c||"todo"!==c.status)return;let d={...c,status:"queued",runSeq:c.runSeq+1};p(d,"queued","user"),u(b)}async function F(a){let b=a?[a]:await G(),c=0;for(let a of b){for(let b of(0,h.h6)(a).filter(a=>"todo"===a.status)){let a={...b,status:"queued",runSeq:b.runSeq+1};p(a,"queued","user"),c+=1}u(a)}return c}async function G(){let a=(0,h.z1)("__engine__").replace(/__engine__$/,"");return(0,e.existsSync)(a)?(0,e.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isDirectory()&&"__engine__"!==a.name).map(a=>H(a.name)):[]}function H(a){return"/"+a.split("--").map(a=>decodeURIComponent(a)).join("/")}async function I(a,b,c){let d=(0,h._o)(b,a);if(!d)return;let e=m(),f=e?.byTask.get(a);f&&e?(await f.session.send({type:"abort"}).catch(()=>void 0),t(a,f.runSeq,["running","awaiting_input","preparing","queued"],"canceled",{settledAt:o(),finishedAt:o()}),e.live.delete(f.connectionId),e.byTask.delete(a)):t(a,d.runSeq,["todo","queued","preparing"],"canceled",{settledAt:o(),finishedAt:o()}),(0,h.Q1)(b,{taskId:a,kind:"canceled",actor:"user",payload:c?{reason:c}:null})}async function J(a,b,c){let d=(0,h._o)(b,a);if(!d||"failed"!==d.status)return;let e={...d,status:"queued",runSeq:d.runSeq+1,lastError:null,failureReason:null,userNote:c??d.userNote};p(e,"queued","user",{retry:!0,note:c??null}),u(b)}async function K(a,b,c){let d=(0,h._o)(b,a);if(!d||"canceled"!==d.status)return;let e={...d,status:"todo",lastError:null,failureReason:null,userNote:c??d.userNote};p(e,"requeued","user",{note:c??null}),u(b)}async function L(a,b,c){let d=(0,h._o)(b,a);if(!d||"review"!==d.status)return;let e={...d,status:"queued",runSeq:d.runSeq+1,preflight:null};p(e,"returned","user",{feedback:c}),(0,h.Q1)(b,{taskId:a,kind:"return_feedback",actor:"user",payload:{feedback:c}}),u(b)}async function M(a,b,c){let d=(0,h._o)(b,a);if(!d)return;let e={...d,archivedAt:c?o():null};p(e,c?"archived":"unarchived","user")}async function N(a,b){let c=(0,h.h6)(a),d=new Map(c.map(a=>[a.id,a])),e=[];b.forEach((a,b)=>{let c=d.get(a);c&&e.push({...c,sortOrder:b})});let f=new Set(b),g=b.length;for(let a of c)f.has(a.id)||e.push({...a,sortOrder:g++});for(let a of e)(0,h.fd)(a);e.length>0&&l({type:"upsert",id:e[0].id})}async function O(a,b,c){let d=(0,h._o)(b,a);if(d&&"review"===d.status){if(0!==d.filesChanged)throw Error("Task has changes to merge; use merge instead");if(t(a,d.runSeq,["review"],"done",{finishedAt:o()}),(0,h.Q1)(b,{taskId:a,kind:"completed",actor:"user",payload:{deleteWorktree:c}}),c)try{d.worktreePath&&await (0,g.IL)(b,d.worktreePath,!0).catch(()=>void 0),d.workBranch&&await C(b,["branch","-D",d.workBranch]).catch(()=>void 0)}catch{}}}async function P(a,b,c,d){let e=(0,h._o)(b,a);if(!e||"review"!==e.status)return;let f=m(),g=f?.byTask.get(a),i={...e,status:"merging"};p(i,"merging","user",{message:c,deleteWorktree:d}),(0,h.Q1)(b,{taskId:a,kind:"merge_requested",actor:"user",payload:{message:c,deleteWorktree:d}});try{if(g){let a=`Merge your changes into the base branch (${e.baseBranch??"the current base"}).
16
+ ${i}`:""));return await x.send({type:"prompt",message:C}),!0}catch(i){let e=i instanceof Error?i.message:String(i),f=(0,h._o)(b,a),g=c.byTask.get(a);return g?.runSeq===d.runSeq&&f?.status==="running"?B(g,e):f?.runSeq===d.runSeq&&("preparing"===f.status||"queued"===f.status)&&(t(a,d.runSeq,[f.status],"failed",{failureReason:"setup_error",lastError:e,settledAt:o(),finishedAt:o()}),(0,h.Q1)(b,{taskId:a,kind:"failed",actor:"engine",payload:{reason:"setup_error",message:e}})),!1}finally{c.launching.delete(a)}}async function y(a,b){try{let c=(await (0,g.P9)(a)).find(a=>a.branch===b);return c?.path??null}catch{return null}}async function z(a,b){let c=`task-${a.id}`,{session:d}=await (0,i.OF)(c,"",b,{});return{session:d}}function A(a){let b=m();if(b?.live.get(a.connectionId)!==a||b.byTask.get(a.taskId)!==a)return null;let c=(0,h._o)(a.projectRoot,a.taskId);return c?.runSeq===a.runSeq?c:null}function B(a,b){let c=A(a);if(c){if("merging"===c.status){T(c,b),a.mergeIntent=void 0;return}t(a.taskId,a.runSeq,["running","awaiting_input"],"failed",{failureReason:"agent_error",lastError:b,settledAt:o(),finishedAt:o()})&&((0,h.Q1)(c.projectRoot,{taskId:a.taskId,kind:"failed",actor:"engine",payload:{reason:"agent_error",message:b}}),G(a))}}function C(a){let b=A(a);if(!b||!["running","awaiting_input","merging"].includes(b.status)||a.settling||a.session.isRunning())return;let c=a.promptError??(a.lastAssistant?.stopReason==="error"||a.lastAssistant?.stopReason==="aborted"?a.lastAssistant.errorMessage||`Agent ended with ${a.lastAssistant.stopReason}`:void 0);if(c)return void B(a,c);if(!a.pendingRequests.size&&!a.retrying){if(!a.lastAssistant||"stop"!==a.lastAssistant.stopReason)return void B(a,`Agent did not finish successfully (${a.lastAssistant?.stopReason??"no assistant result"})`);a.settling=("merging"===b.status?aa(a):E(a,b)).catch(b=>B(a,b instanceof Error?b.message:String(b))).finally(()=>{a.settling=void 0})}}function D(a){a.unsubscribe=a.session.onEvent(b=>{let c=A(a);if(c&&["running","awaiting_input","merging"].includes(c.status))switch(b.type){case"extension_ui_request":{let d=b.method,e=b.id;d&&e&&["confirm","input","select","editor"].includes(d)&&(a.pendingRequests.add(e),t(a.taskId,a.runSeq,["running"],"awaiting_input")&&(0,h.Q1)(c.projectRoot,{taskId:a.taskId,kind:"awaiting_input",actor:"engine",payload:{method:d,id:e}}));break}case"extension_ui_response":{let c=b.id;c&&a.pendingRequests.delete(c)&&0===a.pendingRequests.size&&t(a.taskId,a.runSeq,["awaiting_input"],"running");break}case"message_end":{let c=b.message;c?.role==="assistant"&&(a.lastAssistant=c);break}case"agent_end":{let c=b.messages,d=c?.findLast(a=>"assistant"===a.role);d&&(a.lastAssistant=d),a.retrying=!0===b.willRetry;break}case"auto_retry_start":a.retrying=!0;break;case"auto_retry_end":a.retrying=!1,!1===b.success&&(a.promptError=String(b.finalError??"Agent retry failed"));break;case"prompt_error":a.promptError=String(b.errorMessage??"agent error"),C(a);break;case"prompt_done":case"agent_settled":C(a);break;case"agent_start":a.lastAssistant=void 0,a.promptError=void 0,a.retrying=!1,0===a.pendingRequests.size&&t(a.taskId,a.runSeq,["awaiting_input"],"running")}})}async function E(a,b){if(!A(a)||!t(a.taskId,a.runSeq,["running","awaiting_input"],"review",{settledAt:o()}))return;(0,h.Q1)(b.projectRoot,{taskId:a.taskId,kind:"review",actor:"engine"});let c=(0,h.Rv)(b.projectRoot);c.preflightCommand&&await F(a,c.preflightCommand)}async function F(a,b){let c=A(a);if(c&&"review"===c.status){p({...c,preflight:{status:"running",command:b}},"preflight_start","engine",{command:b});try{var d,e;let c=await (d=a.session.cwd,e=b,new Promise(a=>{let b=(0,f.spawn)(e,{cwd:d,shell:!0}),c="";b.stdout?.on("data",a=>{c+=a.toString()}),b.stderr?.on("data",a=>{c+=a.toString()}),b.on("error",()=>a({code:1,output:c})),b.on("exit",b=>a({code:b,output:c}))})),g=A(a);if(!g||"review"!==g.status)return;p({...g,preflight:{status:0===c.code?"passed":"failed",command:b,exitCode:c.code,outputTail:0===c.code?null:c.output.slice(-4e3)}},0===c.code?"preflight_passed":"preflight_failed","engine",{command:b,exitCode:c.code})}catch(d){let c=A(a);if(!c||"review"!==c.status)return;p({...c,preflight:{status:"failed",command:b,outputTail:d instanceof Error?d.message:String(d)}},"preflight_failed","engine",{command:b})}}}function G(a){a.unsubscribe?.(),a.unsubscribe=void 0;let b=m();b?.live.get(a.connectionId)===a&&b.live.delete(a.connectionId),b?.byTask.get(a.taskId)===a&&b.byTask.delete(a.taskId)}async function H(a,b){let c=(0,h._o)(b,a);if(!c||"todo"!==c.status)return;let d={...c,status:"queued",runSeq:c.runSeq+1};p(d,"queued","user"),u(b)}async function I(a){let b=a?[a]:await J(),c=0;for(let a of b){for(let b of(0,h.h6)(a).filter(a=>"todo"===a.status)){let a={...b,status:"queued",runSeq:b.runSeq+1};p(a,"queued","user"),c+=1}u(a)}return c}async function J(){let a=(0,h.z1)("__engine__").replace(/__engine__$/,"");return(0,e.existsSync)(a)?(0,e.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isDirectory()&&"__engine__"!==a.name).map(a=>K(a.name)):[]}function K(a){return"/"+a.split("--").map(a=>decodeURIComponent(a)).join("/")}async function L(a,b,c){let d=(0,h._o)(b,a);if(!d)return;let e=m(),f=e?.byTask.get(a);if(f&&e){if(!t(a,f.runSeq,["running","awaiting_input","preparing","queued","merging"],"canceled",{settledAt:o(),finishedAt:o()}))return;G(f),await f.session.send({type:"abort"}).catch(()=>void 0)}else if(!t(a,d.runSeq,["todo","queued","preparing","merging"],"canceled",{settledAt:o(),finishedAt:o()}))return;e?.merging?.get(a)?.runSeq===d.runSeq&&e.merging.delete(a),(0,h.Q1)(b,{taskId:a,kind:"canceled",actor:"user",payload:c?{reason:c}:null})}async function M(a,b,c){let d=(0,h._o)(b,a);if(!d||"failed"!==d.status)return;let e={...d,status:"queued",runSeq:d.runSeq+1,lastError:null,failureReason:null,userNote:c??d.userNote};p(e,"queued","user",{retry:!0,note:c??null}),u(b)}async function N(a,b,c){let d=(0,h._o)(b,a);if(!d||"canceled"!==d.status)return;let e={...d,status:"todo",lastError:null,failureReason:null,userNote:c??d.userNote};p(e,"requeued","user",{note:c??null}),u(b)}async function O(a,b,c){let d=(0,h._o)(b,a);if(!d||"review"!==d.status)return;let e={...d,status:"queued",runSeq:d.runSeq+1,preflight:null};p(e,"returned","user",{feedback:c}),(0,h.Q1)(b,{taskId:a,kind:"return_feedback",actor:"user",payload:{feedback:c}}),u(b)}async function P(a,b,c){let d=(0,h._o)(b,a);if(!d)return;let e={...d,archivedAt:c?o():null};p(e,c?"archived":"unarchived","user")}async function Q(a,b){let c=(0,h.h6)(a),d=new Map(c.map(a=>[a.id,a])),e=[];b.forEach((a,b)=>{let c=d.get(a);c&&e.push({...c,sortOrder:b})});let f=new Set(b),g=b.length;for(let a of c)f.has(a.id)||e.push({...a,sortOrder:g++});for(let a of e)(0,h.fd)(a);e.length>0&&l({type:"upsert",id:e[0].id})}async function R(a,b,c){let d=(0,h._o)(b,a);if(d&&"review"===d.status){if(0!==d.filesChanged)throw Error("Task has changes to merge; use merge instead");await Y(b,async()=>{let e=V(()=>U(d,"review")),{base:f,source:g}=await X(d,e),i=await e(b,["merge-base","--is-ancestor",g,f],[0,1]);if(0!==i.code)throw Error("Task has committed changes to merge; use merge instead");if(!t(a,d.runSeq,["review"],"done",{finishedAt:o()}))return;(0,h.Q1)(b,{taskId:a,kind:"completed",actor:"user",payload:{deleteWorktree:c}});let j=m()?.byTask.get(a);j?.runSeq===d.runSeq&&G(j),c&&await _(d,g,f)})}}async function S(a,b,c,d){let e,f=(0,h._o)(b,a);if(!f||"review"!==f.status)return;let g=m(),i=g?.byTask.get(a);if(i?.session.isAlive()&&i.session.isRunning())throw Error("Task session is still running");let j={message:c,deleteWorktree:d,strategy:(0,h.Rv)(b).mergeStrategy},k=t(a,f.runSeq,["review"],"merging",{runSeq:f.runSeq+1,lastError:null,mergeCommit:null,finishedAt:null});if(k){(0,h.Q1)(b,{taskId:a,kind:"merge_requested",actor:"user",payload:{...j,baseBranch:f.baseBranch}});try{if(i&&g&&i.runSeq===f.runSeq&&i.session.isAlive()){G(i),e={...i,runSeq:k.runSeq,pendingRequests:new Set,lastAssistant:void 0,promptError:void 0,retrying:!1,settling:void 0,mergeIntent:j},g.live.set(e.connectionId,e),g.byTask.set(a,e),D(e);let b=`Prepare your task changes for integration into the base branch (${f.baseBranch??"unknown"}).
17
17
  Rules:
18
- - Work ONLY in this worktree; run git merge/commit from this worktree directory.
19
- - Do NOT commit unrelated changes that exist in other checkouts — commit only the files your task changed.
20
- - Do NOT touch or push other branches.
21
- `+(c?`Use this commit message: "${c}"
22
- `:"Write a concise commit message yourself.\n")+(d?"After merging, the worktree may be cleaned up.":"Keep the worktree after merging.");await g.session.send({type:"prompt",message:a})}else await Q(b,e,c,d)}catch(e){let c=e instanceof Error?e.message:String(e),d=(0,h._o)(b,a);d&&"merging"===d.status&&(t(a,d.runSeq,["merging"],"review",{lastError:`Merge failed: ${c}`}),(0,h.Q1)(b,{taskId:a,kind:"merge_failed",actor:"engine",payload:{message:c}}))}}async function Q(a,b,c,d){if(!b.worktreePath||!b.workBranch)throw Error("No worktree to merge");if((await D(a,["status","--porcelain"])).output.trim().length>0)throw Error("Main checkout has uncommitted changes; the agent-driven merge cannot run. Commit or stash them first.");let e=null!=c;if(await C(a,["merge",e?"--squash":"--no-ff",b.workBranch]),e){let d=c||`Merge task ${b.id}: ${b.title}`;await C(a,["commit","-m",d])}let f=await D(a,["rev-parse","--short","HEAD"]);t(b.id,b.runSeq,["merging"],"done",{mergeCommit:f.output.trim(),finishedAt:o()}),(0,h.Q1)(a,{taskId:b.id,kind:"merged",actor:"engine",payload:{commit:f.output.trim()}}),d&&b.worktreePath&&await (0,g.IL)(a,b.worktreePath,!0).catch(()=>void 0),d&&b.workBranch&&await C(a,["branch","-D",b.workBranch]).catch(()=>void 0)}d()}catch(a){d(a)}})}};
18
+ - Work ONLY in this worktree on branch ${f.workBranch}.
19
+ - Review and commit only the files changed for this task; do not commit unrelated work.
20
+ - Do NOT merge, switch, update, push, or delete other branches or worktrees.
21
+ - The engine will merge your committed task branch into the recorded base after you finish successfully.
22
+ `+(c?`Use this commit message: ${JSON.stringify(c)}
23
+ `:"Write a concise commit message yourself.\n")+(d?"The engine may remove the clean worktree after verified integration.":"Keep the worktree after integration.");await e.session.send({type:"prompt",message:b})}else i&&G(i),await Z(k,j)}catch(a){T(k,a instanceof Error?a.message:String(a)),e&&(e.mergeIntent=void 0)}}}function T(a,b){t(a.id,a.runSeq,["merging"],"review",{lastError:`Merge failed: ${b}`})&&(0,h.Q1)(a.projectRoot,{taskId:a.id,kind:"merge_failed",actor:"engine",payload:{message:b}})}function U(a,b){let c=(0,h._o)(a.projectRoot,a.id);return c?.runSeq===a.runSeq&&c.status===b}function V(a){return async(b,c,d=[0])=>{if(!a())throw Error("Task run was superseded");let e=await new Promise(a=>{let d=(0,f.spawn)("git",c,{cwd:b}),e="";d.stdout?.on("data",a=>{e+=a.toString()}),d.stderr?.on("data",a=>{e+=a.toString()}),d.on("error",()=>a({code:1,output:e})),d.on("exit",b=>a({code:b,output:e}))});if(!a())throw Error("Task run was superseded");if(!d.includes(e.code??-1))throw Error(e.output.trim()||`git ${c[0]} failed (${e.code})`);return{...e,output:e.output.trim()}}}async function W(a,b,c=!1){if((await a(b,["status","--porcelain=v1","--untracked-files=all",...c?["--ignored"]:[]])).output)throw Error(`Checkout has uncommitted or untracked changes: ${b}`)}async function X(a,b){if(!a.worktreePath||!a.workBranch||!a.baseBranch)throw Error("A worktree and explicit base/work branch are required");let c=`refs/heads/${a.baseBranch}`,d=`refs/heads/${a.workBranch}`;if(c===d)throw Error("Task branch must differ from the base branch");if((await b(a.projectRoot,["symbolic-ref","-q","HEAD"])).output!==c)throw Error(`Base checkout must be on branch ${a.baseBranch}; refusing to merge another branch`);if((await b(a.worktreePath,["symbolic-ref","-q","HEAD"])).output!==d)throw Error(`Worktree must be on branch ${a.workBranch}`);await W(b,a.projectRoot),await W(b,a.worktreePath);let e=(await b(a.projectRoot,["rev-parse","--verify",`${c}^{commit}`])).output,f=(await b(a.projectRoot,["rev-parse","--verify",`${d}^{commit}`])).output;return{baseRef:c,workRef:d,base:e,source:f}}async function Y(a,b){let c=globalThis,d=c.__piTaskMergeLocks??=new Map,e=(d.get(a)??Promise.resolve()).catch(()=>void 0).then(b);d.set(a,e);try{await e}finally{d.get(a)===e&&d.delete(a)}}async function Z(a,b,c){let d=m(),e=d?d.merging??=new Map:void 0,f={projectRoot:a.projectRoot,runSeq:a.runSeq};if(U(a,"merging")){e?.set(a.id,f);try{await Y(a.projectRoot,()=>$(a,b,c,()=>!e||e.get(a.id)===f))}finally{e?.get(a.id)===f&&e.delete(a.id)}}}async function $(a,b,c,d){let e,f=V(()=>d()&&U(a,"merging")&&(!c||!!A(c))),{baseRef:g,workRef:i,base:j,source:k}=await X(a,f),l=await f(a.projectRoot,["merge-base","--is-ancestor",k,j],[0,1]);if(0!==l.code){let c=b.message||`Merge task ${a.id}: ${a.title}`;if("squash"===b.strategy){await f(a.projectRoot,["merge","--squash","--no-commit",k]),e=(await f(a.projectRoot,["write-tree"])).output;let b=await f(a.projectRoot,["diff","--cached","--quiet"],[0,1]);1===b.code&&await f(a.projectRoot,["commit","-m",c])}else await f(a.projectRoot,["merge","--no-ff","--no-edit","-m",c,k])}let m=(await f(a.projectRoot,["rev-parse","--verify",`${g}^{commit}`])).output;if((await f(a.projectRoot,["symbolic-ref","-q","HEAD"])).output!==g)throw Error("Base branch changed during merge");if((await f(a.projectRoot,["rev-parse","--verify",`${i}^{commit}`])).output!==k)throw Error("Task branch changed during merge; keeping the worktree");if(await f(a.projectRoot,["merge-base","--is-ancestor",j,m]),e){if((await f(a.projectRoot,["rev-parse",`${m}^{tree}`])).output!==e)throw Error("Base commit does not contain the verified squash result")}else await f(a.projectRoot,["merge-base","--is-ancestor",k,m]);await W(f,a.projectRoot),await W(f,a.worktreePath),t(a.id,a.runSeq,["merging"],"done",{mergeCommit:m,lastError:null,finishedAt:o()})&&((0,h.Q1)(a.projectRoot,{taskId:a.id,kind:"merged",actor:"engine",payload:{commit:m,baseBranch:a.baseBranch}}),c&&G(c),b.deleteWorktree&&await _(a,k,m))}async function _(a,b,c){let d=V(()=>U(a,"done"));try{let e=`refs/heads/${a.workBranch}`;if((await d(a.projectRoot,["rev-parse","--verify",e])).output!==b)throw Error("Task branch changed after merge");if(await d(a.projectRoot,["merge-base","--is-ancestor",c,`refs/heads/${a.baseBranch}`]),await W(d,a.worktreePath,!0),!U(a,"done")||(await (0,g.IL)(a.projectRoot,a.worktreePath),!U(a,"done")))return;if((await (0,g.P9)(a.projectRoot)).some(b=>b.branch===a.workBranch))throw Error("Task branch is still checked out; keeping it");await d(a.projectRoot,["update-ref","-d",e,b])}catch(d){let b=(0,h._o)(a.projectRoot,a.id);if(!b||b.runSeq!==a.runSeq||"done"!==b.status)return;let c=d instanceof Error?d.message:String(d);p({...b,lastError:`Merged, but cleanup failed: ${c}`},"cleanup_failed","engine",{message:c})}}async function aa(a){let b=A(a);b&&"merging"===b.status&&a.mergeIntent&&await Z(b,a.mergeIntent,a)}d()}catch(a){d(a)}})}};