@brigade-dev/cli 0.1.2 → 0.1.3
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/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +12 -12
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/(board)/board/page.js +1 -1
- package/.next/standalone/.next/server/app/(board)/board/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(board)/board/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/board/page.js +2 -2
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/board/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/board/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/task/[slug]/page.js +2 -2
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/task/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(board)/r/[repoId]/task/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(board)/task/[slug]/page.js +1 -1
- package/.next/standalone/.next/server/app/(board)/task/[slug]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(board)/task/[slug]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(setup)/setup/page.js +2 -2
- package/.next/standalone/.next/server/app/(setup)/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(setup)/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/api/chat/poll/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/poll/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/session/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/stop/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/providers/auth-status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/chat/[[...path]]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/settings/[[...path]]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/tasks/[[...path]]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/tasks/[[...path]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/repos/[repoId]/tasks/[[...path]]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/last-used/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/pick-folder/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/repos/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/chat/reset/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/chat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/create-branch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/create-pr/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/data/rename/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/generate-commit-message/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/git/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/handoff/review/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/handoff/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/images/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/improve-title/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/merge-pr/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/pr-status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/question-options/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/resolve-conflicts/launch/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/resolve-conflicts/launch/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/resolve-conflicts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/status/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[slug]/status/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/auto-move/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tasks/auto-move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/auto-move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/counts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/pr-check/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/test/reset/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.meta +2 -0
- package/.next/standalone/.next/server/app/index.rsc +13 -27
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -14
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +13 -27
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +12 -12
- package/.next/standalone/.next/server/chunks/2065.js +3 -3
- package/.next/standalone/.next/server/chunks/347.js +1 -1
- package/.next/standalone/.next/server/chunks/3544.js +2 -2
- package/.next/standalone/.next/server/chunks/{1853.js → 5198.js} +1 -1
- package/.next/standalone/.next/server/chunks/5704.js +1 -1
- package/.next/standalone/.next/server/chunks/5722.js +1 -0
- package/.next/standalone/.next/server/chunks/6802.js +1 -1
- package/.next/standalone/.next/server/chunks/8031.js +1 -1
- package/.next/standalone/.next/server/chunks/8825.js +3 -0
- package/.next/standalone/.next/server/chunks/9067.js +1 -1
- package/.next/standalone/.next/server/chunks/9967.js +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/static/chunks/1416-76d75f5cdc8064f0.js +5 -0
- package/.next/standalone/.next/static/chunks/3242-340ecc54abc559dc.js +1 -0
- package/.next/standalone/.next/static/chunks/4555-1cc0cadfd257b640.js +5 -0
- package/.next/standalone/.next/static/chunks/{5083-875e22a46dea6150.js → 5083-da5fc913278c9ec9.js} +3 -3
- package/.next/standalone/.next/static/chunks/app/(board)/board/page-d97d7979cfd5798f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(board)/r/[repoId]/board/page-2a12cb83a038bfa4.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(board)/r/[repoId]/layout-94f90e6400c32897.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(board)/r/[repoId]/task/[slug]/{page-0703323a4462caf0.js → page-c7b0b0a0327f6fce.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(board)/task/[slug]/{page-e5278f44e5936ae3.js → page-771b7f853905319b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(setup)/{layout-1b51237f7b3ff3ff.js → layout-7eb803c6eff71185.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(setup)/setup/page-dccadc7f0cc15702.js +1 -0
- package/.next/standalone/.next/static/chunks/app/_global-error/{page-1b51237f7b3ff3ff.js → page-7eb803c6eff71185.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/poll/{route-1b51237f7b3ff3ff.js → route-7eb803c6eff71185.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/{route-1b51237f7b3ff3ff.js → route-7eb803c6eff71185.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/session/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/chat/stop/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/providers/auth-status/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/chat/[[...path]]/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/settings/[[...path]]/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/tasks/[[...path]]/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/last-used/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/pick-folder/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/repos/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/chat/reset/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/chat/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/create-branch/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/create-pr/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/data/rename/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/generate-commit-message/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/git/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/handoff/review/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/handoff/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/images/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/improve-title/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/merge-pr/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/move/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/pr-status/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/question-options/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/resolve-conflicts/launch/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/resolve-conflicts/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/status/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/auto-move/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/counts/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/pr-check/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/test/reset/route-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-c38fc01326ac060a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7eb803c6eff71185.js +1 -0
- package/.next/standalone/.next/static/chunks/{webpack-3e5366b71e90a143.js → webpack-010bc8c5cfa5e600.js} +1 -1
- package/.next/standalone/.next/static/css/a0a0423b02496c0c.css +3 -0
- package/.next/standalone/.next/static/media/636a5ac981f94f8b-s.p.woff2 +0 -0
- package/.next/standalone/.next/static/media/6fe53d21e6e7ebd8-s.woff2 +0 -0
- package/.next/standalone/.next/static/media/8ebc6e9dde468c4a-s.woff2 +0 -0
- package/.next/standalone/.next/static/media/9e7b0a821b9dfcb4-s.woff2 +0 -0
- package/.next/standalone/package.json +1 -1
- package/bin/brigade.js +8 -10
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/5049.js +0 -1
- package/.next/standalone/.next/server/chunks/542.js +0 -1
- package/.next/standalone/.next/server/chunks/6039.js +0 -1
- package/.next/standalone/.next/server/chunks/944.js +0 -3
- package/.next/standalone/.next/static/chunks/1416-bf500768058c7f99.js +0 -5
- package/.next/standalone/.next/static/chunks/8409-b769c7ca171825cc.js +0 -1
- package/.next/standalone/.next/static/chunks/9747-9c7022a3f430588b.js +0 -5
- package/.next/standalone/.next/static/chunks/app/(board)/board/page-afa17ad02f1a5b72.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(board)/r/[repoId]/board/page-c5245960945c7d7a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(board)/r/[repoId]/layout-2ffd1120d8289ecd.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(setup)/setup/page-cc8922011a51f165.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/session/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/sessions/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/chat/stop/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/providers/auth-status/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/chat/[[...path]]/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/settings/[[...path]]/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/[repoId]/tasks/[[...path]]/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/last-used/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/pick-folder/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/repos/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/chat/reset/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/chat/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/create-branch/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/create-pr/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/data/rename/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/generate-commit-message/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/git/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/handoff/review/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/handoff/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/images/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/improve-title/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/merge-pr/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/move/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/pr-status/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/question-options/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/resolve-conflicts/launch/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/resolve-conflicts/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[slug]/status/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/auto-move/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/counts/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/pr-check/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/test/reset/route-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-e77efc16259e5bd2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-3e702bf1b197ec82.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1b51237f7b3ff3ff.js +0 -1
- package/.next/standalone/.next/static/css/214e23fa1231e12f.css +0 -3
- package/.next/standalone/.next/static/css/e91b8c49739f08d3.css +0 -1
- /package/.next/standalone/.next/static/{XO1LWKVmDXHwIbl35KRwX → TEeaHQlTW3yW085fWMfjB}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{XO1LWKVmDXHwIbl35KRwX → TEeaHQlTW3yW085fWMfjB}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3544,exports.ids=[3544],exports.modules={63019:(a,b,c)=>{c.r(b),c.d(b,{default:()=>bg});var d=c(48249),e=c(19099),f=c(67484),g=c(2921),h=c(42114),i=c(14490);function j({className:a,children:b,...c}){return(0,d.jsxs)(h.bL,{"data-slot":"scroll-area",className:(0,i.cn)("relative",a),...c,children:[(0,d.jsx)(h.LM,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50",children:b}),(0,d.jsx)(k,{}),(0,d.jsx)(h.OK,{})]})}function k({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(h.VM,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,i.cn)("flex touch-none select-none p-px transition-colors","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(h.lr,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}var l=c(25297),m=c(20468),n=c(38420);function o({title:a,count:b,defaultOpen:c=!1,onToggleAll:e,toggleAllLabel:g,children:h}){let[i,j]=(0,f.useState)(c);return(0,d.jsxs)("div",{className:"rounded border bg-muted/30",children:[(0,d.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5 overflow-hidden px-3 py-2",onClick:()=>j(!i),children:[i?(0,d.jsx)(m.A,{className:"size-3.5 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:a}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",b,")"]}),e&&b>0&&(0,d.jsx)("button",{className:"ml-auto shrink-0 text-xs text-primary underline hover:text-primary/80 cursor-pointer",onClick:a=>{a.stopPropagation(),e()},children:g??"Toggle all"})]}),i&&(0,d.jsx)("div",{className:"overflow-hidden border-t px-3 py-2",children:h})]})}var p=c(33915),q=c(36650),r=c(66450);function s(a){return a.startsWith("diff --git")?"font-bold text-foreground bg-muted/50 pt-3 mt-2":a.startsWith("@@")?"text-blue-600 font-semibold bg-blue-500/10":a.startsWith("+")&&!a.startsWith("+++")?"bg-green-500/10 text-green-800":a.startsWith("-")&&!a.startsWith("---")?"bg-red-500/10 text-red-800":""}function t({diff:a,truncated:b,totalLines:c,maxHeight:e="400px"}){if(!a)return(0,d.jsx)("div",{className:"flex items-center justify-center py-4 text-xs text-muted-foreground",children:"No changes"});let f=function(a){let b=a.split("\n"),c=[],d=null;for(let a of b){let b=a.match(/^diff --git a\/(.+?) b\/(.+)$/);b?(d&&c.push(d),d={filePath:b[2],lines:[a]}):d&&d.lines.push(a)}return d&&c.push(d),c}(a),g=f.length>0;return(0,d.jsx)(j,{style:{maxHeight:e},children:(0,d.jsxs)("div",{className:"font-mono text-[11px] leading-relaxed",children:[g?f.map((a,b)=>(0,d.jsx)("div",{children:a.lines.map((a,c)=>(0,d.jsx)("div",{className:`px-2 py-px whitespace-pre ${s(a)}`,children:a||"\xa0"},`${b}-${c}`))},b)):a.split("\n").map((a,b)=>(0,d.jsx)("div",{className:`px-2 py-px whitespace-pre ${s(a)}`,children:a||"\xa0"},b)),b&&(0,d.jsxs)("div",{className:"mt-2 px-2 py-1.5 rounded bg-amber-500/10 border border-amber-500/20 text-amber-800 text-xs",children:["Diff truncated — showing first 5,000 of"," ",c?.toLocaleString()," lines"]})]})})}var u=c(47856);let v={M:{label:"M",color:"text-orange-500"},A:{label:"A",color:"text-green-600"},D:{label:"D",color:"text-red-600"},R:{label:"R",color:"text-blue-500"},"?":{label:"?",color:"text-gray-500"},C:{label:"C",color:"text-purple-500"},U:{label:"U",color:"text-yellow-600"}};function w({status:a,path:b,linesAdded:c,linesRemoved:e,checked:g,onToggle:h,slug:i,repoId:j,staged:k}){let l=v[a]||{label:a,color:"text-muted-foreground"},[o,s]=(0,f.useState)(!1),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(0),E=c??0,F=e??0,G=(0,f.useMemo)(()=>i?(0,u.jx)(j,i):null,[j,i]),H=!!i&&"?"!==a,I=async a=>{if(a.stopPropagation(),H){if(o)return void s(!1);if(s(!0),null===w){z(!0);try{let a=await fetch(`${G}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-file",file:b,staged:k})}),c=await a.json();x(c.diff||""),B(c.truncated||!1),D(c.totalLines||0)}catch{x("")}finally{z(!1)}}}};return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded px-1 py-0.5 text-xs",children:[h&&(0,d.jsx)("div",{className:"flex cursor-pointer items-center",onClick:h,children:g?(0,d.jsx)(p.A,{className:"size-4 shrink-0 text-primary"}):(0,d.jsx)(q.A,{className:"size-4 shrink-0 text-muted-foreground/50"})}),(0,d.jsxs)("div",{className:`flex min-w-0 flex-1 items-center gap-2 rounded px-1 py-0.5 ${H?"cursor-pointer hover:bg-muted/50":""}`,onClick:H?I:void 0,children:[H&&(o?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})),(0,d.jsx)("span",{className:`shrink-0 font-mono font-bold ${l.color}`,children:l.label}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-foreground/80",children:b}),(E>0||F>0)&&(0,d.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-1 font-mono tabular-nums",children:[E>0&&(0,d.jsxs)("span",{className:"text-green-600",children:["+",E]}),F>0&&(0,d.jsxs)("span",{className:"text-red-600",children:["-",F]})]})]})]}),o&&(0,d.jsx)("div",{className:"ml-6 mt-1 mb-2 rounded border bg-muted/10 overflow-hidden",children:y?(0,d.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,d.jsx)(r.A,{className:"size-3.5 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:w||"",truncated:A,totalLines:C,maxHeight:"300px"})})]})}let x={M:{label:"M",color:"text-orange-500"},A:{label:"A",color:"text-green-600"},D:{label:"D",color:"text-red-600"},R:{label:"R",color:"text-blue-500"},C:{label:"C",color:"text-purple-500"}};function y({hash:a,author:b,relativeTime:c,message:e,files:g,slug:h,repoId:i}){let[j,k]=(0,f.useState)(!1),[l,o]=(0,f.useState)({}),[p,q]=(0,f.useState)(null),[s,v]=(0,f.useState)(null),w=(0,f.useMemo)(()=>h?(0,u.jx)(i,h):null,[i,h]),y=async b=>{if(s===b)return void v(null);if((v(b),!l[b])&&w){q(b);try{let c=await fetch(`${w}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-commit",hash:a,file:b})}),d=await c.json();o(a=>({...a,[b]:{diff:d.diff||"",truncated:d.truncated||!1,totalLines:d.totalLines||0}}))}catch{o(a=>({...a,[b]:{diff:"",truncated:!1,totalLines:0}}))}finally{q(null)}}};return(0,d.jsxs)("div",{className:"rounded border bg-muted/20",children:[(0,d.jsxs)("div",{className:"flex cursor-pointer items-center gap-2 px-3 py-2",onClick:()=>k(!j),children:[j?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"min-w-0 truncate text-sm",children:e}),(0,d.jsx)("span",{className:"ml-auto shrink-0 font-mono text-[10px] text-muted-foreground",children:a})]}),j&&(0,d.jsxs)("div",{className:"border-t px-3 py-2",children:[(0,d.jsxs)("div",{className:"text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:b}),(0,d.jsx)("span",{className:"mx-1.5",children:"\xb7"}),(0,d.jsx)("span",{children:c})]}),g&&g.length>0&&(0,d.jsx)("div",{className:"mt-2 flex flex-col gap-0.5",children:g.map((a,b)=>{let c=x[a.status]||{label:a.status,color:"text-muted-foreground"},e=s===a.path,f=!!h;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:`flex min-w-0 items-center gap-2 text-xs rounded px-1 py-0.5 ${f?"cursor-pointer hover:bg-muted/50":""}`,onClick:f?()=>y(a.path):void 0,children:[f&&(e?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})),(0,d.jsx)("span",{className:`shrink-0 font-mono font-bold ${c.color}`,children:c.label}),(0,d.jsx)("span",{className:"truncate font-mono text-foreground/70",children:a.path})]}),e&&(0,d.jsx)("div",{className:"ml-5 mt-1 mb-2 rounded border bg-muted/10 overflow-hidden",children:p===a.path?(0,d.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,d.jsx)(r.A,{className:"size-3.5 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:l[a.path]?.diff||"",truncated:l[a.path]?.truncated,totalLines:l[a.path]?.totalLines,maxHeight:"300px"})})]},b)})})]})]})}var z=c(85449),A=c(10745);function B({slug:a,repoId:b}){let[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!0),[i,k]=(0,f.useState)(null),[m,n]=(0,f.useState)(!1),[p,q]=(0,f.useState)(null),[s,v]=(0,f.useState)(!1),[x,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(0),E=(0,f.useMemo)(()=>(0,u.jx)(b,a),[b,a]);(0,f.useCallback)(async()=>{h(!0),k(null);try{let a=await fetch(`${E}/git`),b=await a.json();b.error?(k(b.error),e(null)):e(b)}catch{k("Failed to fetch git status")}finally{h(!1)}},[E]);let F=async()=>{if(m)return void n(!1);if(n(!0),null===p){v(!0);try{let a=await fetch(`${E}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-branch"})}),b=await a.json();q(b.diff||""),B(b.truncated||!1),D(b.totalLines||0)}catch{q("")}finally{v(!1)}}},G=(0,f.useMemo)(()=>{if(!c)return[];let a=new Set,b=[];for(let d of c.staged)a.add(d.path),b.push({...d,staged:!0});for(let d of c.unstaged)a.has(d.path)||b.push(d);return b},[c]);return(0,d.jsx)("div",{className:"flex h-full flex-col",children:(0,d.jsx)(j,{className:"flex-1 min-h-0",children:(0,d.jsxs)("div",{className:"flex w-0 min-w-full flex-col gap-3 overflow-hidden p-3",children:[g&&!c&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(r.A,{className:"size-4 animate-spin"})}),i&&(0,d.jsx)("div",{className:"rounded border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700",children:i}),c&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o,{title:"Changes",count:G.length,defaultOpen:G.length>0,children:0===G.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No changes"}):G.map((c,e)=>(0,d.jsx)(w,{status:c.status,path:c.path,linesAdded:c.linesAdded,linesRemoved:c.linesRemoved,slug:a,repoId:b,staged:c.staged},e))}),!c.onMain&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5",children:[(0,d.jsx)(z.A,{className:"size-3.5 text-muted-foreground"}),(0,d.jsx)("h3",{className:"text-sm font-medium",children:"Commits"})]}),0===c.commits.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No commits on this branch yet"}):(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:c.commits.map(c=>(0,d.jsx)(y,{...c,slug:a,repoId:b},c.hash))})]}),!c.onMain&&c.commits.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)(l.$,{variant:"outline",size:"sm",onClick:F,className:"w-full gap-1.5 cursor-pointer",children:[(0,d.jsx)(A.A,{className:"size-3.5"}),m?"Hide all changes":"View all changes vs main"]}),m&&(0,d.jsx)("div",{className:"mt-2 rounded border bg-muted/10 overflow-hidden",children:s?(0,d.jsx)("div",{className:"flex items-center justify-center py-6",children:(0,d.jsx)(r.A,{className:"size-4 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:p||"",truncated:x,totalLines:C,maxHeight:"500px"})})]})]})]})})})}var C=c(46970);function D(a){return"object"==typeof a&&null!==a}let E=[/oauth token has expired/i,/token has expired/i,/expired.*token/i,/authentication_error/i,/failed to authenticate/i,/please obtain a new token/i];function F(a){let b,c=a.trim(),d=((b=c.match(/\{[\s\S]*"(?:message|detail)"\s*:\s*"([^"]+)"[\s\S]*\}/))?b[1]:null)??c;return/internal server error/i.test(d)?{message:"The AI service hit a temporary issue. You can try sending your message again.",details:c}:/overloaded/i.test(d)?{message:"The AI service is currently overloaded. Please wait a moment and try again.",details:c}:/rate limit/i.test(d)?{message:"Too many requests. Please wait a moment and try again.",details:c}:E.some(a=>a.test(d))?{message:"Authentication expired. Reconnect Claude CLI (`claude auth login`) and try again.",details:c}:/authentication|unauthorized|invalid.*key/i.test(d)?{message:"There was an authentication problem with the AI service.",details:c}:/chat request failed/i.test(d)?{message:"Couldn't reach the AI service. Check your connection and try again.",details:c}:{message:d}}function G(a){return"object"==typeof a&&null!==a}var H=c(18290);let I=new Set;function J(a,b){if(0===b.length&&a.length>0||b.length<a.length)return!1;if(b.length>a.length)return!0;for(let c=0;c<b.length;c++){let d=b[c],e=a[c];if(!e||d.id!==e.id||d.role!==e.role||(0,H.B)(e,d))return!0}return!1}function K(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.startsWith("pending-")?null:b}function L(a){let b=[],c=a=>{if("string"!=typeof a)return;let c=a.trim();c&&b.push(c)};if(c(a.result),c(a.error),Array.isArray(a.errors))for(let b of a.errors)c(b);return b}var M=c(80105),N=c(82310),O=c(44920),P=c(3202),Q=c(73428),R=c(50421),S=c(80646),T=c(1498),U=c(42163),V=c(84289),W=c(3958),X=c(62291),Y=c(44193),Z=c(94274),$=c(87058),_=c(59576);let aa=(0,c(90314).default)(async()=>{},{loadableGenerated:{modules:["components/ui/LazyCodeBlock.tsx -> ./CodeBlock"]},ssr:!1});function ab(a){try{let b=JSON.parse(a);return{code:JSON.stringify(b,null,2),language:"json"}}catch{return{code:a,language:"text"}}}function ac(a){try{let b=JSON.parse(a);return"object"==typeof b&&null!==b?b:null}catch{return null}}function ad(a){let b=a.split("/").filter(Boolean);return b.length<=2?a:b.slice(-2).join("/")}let ae={Bash:P.A,Read:Q.A,Edit:R.A,Write:S.A,Grep:T.A,Glob:U.A,WebFetch:V.A,WebSearch:V.A,Task:W.A,TodoWrite:X.A,Skill:Y.A,NotebookEdit:Z.A},af={borderRadius:"0.25rem",padding:"0.375rem",fontFamily:'"JetBrains Mono", monospace',maxHeight:"8rem",overflow:"auto"};function ag({toolCall:a,isStreaming:b,subtle:c=!1}){let[e,g]=(0,f.useState)(!1),h=ae[a.name]??$.A,i=!!a.output,j=!i&&!!b,{text:k,code:l}=function(a,b){let c=ac(b);switch(a){case"Read":{let a=c?.file_path;return a?{text:"Read",code:ad(a)}:{text:"Read file"}}case"Edit":{let a=c?.file_path;return a?{text:"Edit",code:ad(a)}:{text:"Edit file"}}case"Write":{let a=c?.file_path;return a?{text:"Write",code:ad(a)}:{text:"Write file"}}case"Bash":{let a=c?.command;if(!a)return{text:"Run command"};return{text:"Run",code:a.length>60?a.slice(0,57)+"...":a}}case"Grep":{let a=c?.pattern,b=c?.path;if(!a)return{text:"Search files"};let d=b?` in ${ad(b)}`:"";return{text:"Search for",code:`${a}${d}`}}case"Glob":{let a=c?.pattern;return a?{text:"Find files",code:a}:{text:"Find files"}}case"WebFetch":{let a=c?.url;if(!a)return{text:"Fetch URL"};try{return{text:"Fetch",code:new URL(a).hostname}}catch{return{text:"Fetch URL"}}}case"WebSearch":{let a=c?.query;return a?{text:"Search web for",code:a}:{text:"Search the web"}}case"Task":{let a=c?.description;return a?{text:"Launch agent:",code:a}:{text:"Launch sub-agent"}}case"TodoWrite":return{text:"Update task list"};case"Skill":{let a=c?.skill;return a?{text:"Use skill",code:a}:{text:"Use skill"}}case"NotebookEdit":return{text:"Edit notebook"};default:return{text:a}}}(a.name,a.input);return(0,d.jsxs)("div",{className:c?"text-xs":"rounded-md border text-xs",children:[(0,d.jsxs)("button",{type:"button",className:`flex w-full cursor-pointer items-center gap-1.5 text-left transition-colors ${c?"py-0.5 text-muted-foreground hover:text-foreground":"rounded-md px-2 py-1.5 hover:bg-accent/50"}`,onClick:()=>g(!e),children:[j?(0,d.jsx)(r.A,{className:`shrink-0 animate-spin ${c?"size-3 text-orange-500":"size-3.5 text-amber-500"}`}):i?(0,d.jsx)("div",{className:`flex shrink-0 items-center justify-center rounded-full ${c?"size-3 text-muted-foreground":"size-3.5 bg-muted text-muted-foreground"}`,children:(0,d.jsx)(_.A,{className:"size-2.5",strokeWidth:3})}):(0,d.jsx)("div",{className:`shrink-0 rounded-full border border-muted-foreground/30 ${c?"size-2.5":"size-3.5"}`}),(0,d.jsx)(h,{className:"size-3 shrink-0 text-muted-foreground"}),(0,d.jsxs)("span",{className:`flex-1 truncate ${c?"text-muted-foreground":"text-foreground"}`,children:[k,l&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("code",{className:`${c?"font-mono text-[11px] text-muted-foreground/90":"rounded bg-muted px-1 py-0.5 font-mono text-[11px] text-muted-foreground"}`,children:l})]})]}),e?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})]}),e&&(0,d.jsxs)("div",{className:`${c?"ml-6 border-l border-border/70 pl-2.5 py-1.5 space-y-1.5":"border-t px-2 py-1.5 space-y-1.5"}`,children:[a.input&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Input"}),(()=>{let{code:b,language:c}=ab(a.input);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...af,marginTop:"0.25rem"}})})()]}),a.output&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Output"}),(()=>{let{code:b,language:c}=ab(a.output);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...af,marginTop:"0.25rem"}})})()]}),j&&!a.output&&(0,d.jsxs)("div",{className:`flex items-center gap-1.5 py-1 text-[11px] ${c?"text-orange-600":"text-amber-600"}`,children:[(0,d.jsx)(r.A,{className:"size-3 animate-spin"}),(0,d.jsx)("span",{children:"Running..."})]})]})]})}var ah=c(39937),ai=c(79248);function aj({questions:a,onAnswer:b,isAnswered:c}){let[e,g]=(0,f.useState)({}),[h,j]=(0,f.useState)({}),[k,l]=(0,f.useState)(!1),m=c||k||!b,n=1===a.length&&!a[0].multiSelect,o=(0,f.useCallback)(b=>{let c=a.map((c,d)=>{let f=e[d]||[],g=(b?.[d]??h[d])?.trim(),i=[...f];if(g&&i.push(g),1===a.length)return i.join(", ");let j=c.header||`Q${d+1}`;return`${j}: ${i.join(", ")}`});return 1===a.length?c[0]:c.join("\n")},[a,e,h]),p=a=>{if(m)return;let c=h[a]?.trim();if(!c)return;let d={...h,[a]:c};if(j(d),n){l(!0),b?.(c);return}let e=o(d);e&&(l(!0),b?.(e))};return(0,d.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-4",m?"border-muted bg-muted/30 opacity-60":"border-primary/20 bg-primary/5"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-primary",children:[(0,d.jsx)(ah.A,{className:"size-4"}),(0,d.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider",children:"Question"})]}),a.map((c,f)=>(0,d.jsxs)("div",{className:"space-y-2",children:[c.header&&(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:c.header}),(0,d.jsx)("p",{className:"text-sm font-medium",children:c.question}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:c.options.map((c,h)=>{let j=(e[f]||[]).includes(c.label);return(0,d.jsxs)("button",{onClick:()=>{var d;return d=c.label,void(m||(a[f].multiSelect?g(a=>{let b=a[f]||[],c=b.includes(d)?b.filter(a=>a!==d):[...b,d];return{...a,[f]:c}}):(g(a=>({...a,[f]:[d]})),n&&(l(!0),b?.(d)))))},disabled:m,className:(0,i.cn)("w-full rounded-lg border bg-background px-3 py-2 text-left transition-colors",m?"cursor-default":"cursor-pointer hover:bg-primary/10",j&&"bg-primary text-primary-foreground border-primary"),children:[(0,d.jsx)("span",{className:"text-sm font-medium",children:`${h+1}. ${c.label}`}),c.description&&(0,d.jsx)("span",{className:(0,i.cn)("block text-xs mt-0.5",j?"text-primary-foreground/70":"text-muted-foreground"),children:c.description})]},c.label)})}),(0,d.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,d.jsx)("input",{type:"text",placeholder:"Type your answer…",value:h[f]||"",onChange:a=>j(b=>({...b,[f]:a.target.value})),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),p(f))},disabled:m,className:"flex-1 rounded-md border px-3 py-1.5 text-sm bg-background outline-none focus:ring-2 focus:ring-ring disabled:opacity-60"}),(0,d.jsx)("button",{onClick:()=>p(f),disabled:m||!h[f]?.trim(),className:"rounded-md bg-primary px-3 py-1.5 text-sm text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default","aria-label":"Send custom answer",children:(0,d.jsx)(ai.A,{className:"size-3.5"})})]})]},f)),!n&&!m&&(0,d.jsx)("button",{onClick:()=>{if(m)return;let a=o();a&&(l(!0),b?.(a))},disabled:Object.values(e).every(a=>0===a.length)&&Object.values(h).every(a=>!a?.trim()),className:"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default hover:bg-primary/90 transition-colors",children:"Submit"})]})}var ak=c(85155);function al({onAnswer:a,isAnswered:b}){let[c,e]=(0,f.useState)(!1),[g,h]=(0,f.useState)(!1),[j,k]=(0,f.useState)(""),l=b||c||!a,m=()=>{!l&&j.trim()&&(e(!0),a?.(j.trim()))};return(0,d.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-3",l?"border-muted bg-muted/30 opacity-60":"border-yellow-500/20 bg-yellow-500/5"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-yellow-600",children:[(0,d.jsx)(ak.A,{className:"size-4"}),(0,d.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider",children:"Plan ready for review"})]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"The agent has prepared a plan and is waiting for your approval to proceed."}),!g&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>{l||(e(!0),a?.("Approved — go ahead"))},disabled:l,className:(0,i.cn)("rounded-md px-4 py-2 text-sm font-medium transition-colors",l?"bg-muted text-muted-foreground cursor-default":"bg-green-600 text-white cursor-pointer hover:bg-green-700"),children:"Approve & proceed"}),(0,d.jsx)("button",{onClick:()=>{l||h(!0)},disabled:l,className:(0,i.cn)("rounded-md border px-4 py-2 text-sm font-medium transition-colors",l?"cursor-default":"cursor-pointer hover:bg-primary/10"),children:"Request changes"})]}),g&&!l&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{type:"text",placeholder:"Describe what to change…",value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),m())},autoFocus:!0,className:"flex-1 rounded-md border px-3 py-1.5 text-sm bg-background outline-none focus:ring-2 focus:ring-ring"}),(0,d.jsx)("button",{onClick:m,disabled:!j.trim(),className:"rounded-md bg-primary px-3 py-1.5 text-sm text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default",children:(0,d.jsx)(ai.A,{className:"size-3.5"})})]})]})}var am=c(77405),an=c(42755),ao=c(51843),ap=c(34343),aq=c(38393);function ar({html:a}){let[b,c]=(0,f.useState)(!1),[e,g]=(0,f.useState)(!1),[h,i]=(0,f.useState)(150),[j,k]=(0,f.useState)(!1),l=(0,f.useId)(),o=(0,f.useMemo)(()=>{let b;return b=a.replace(/<script[\s\S]*?<\/script>/gi,""),`<!DOCTYPE html>
|
|
1
|
+
"use strict";exports.id=3544,exports.ids=[3544],exports.modules={63019:(a,b,c)=>{c.r(b),c.d(b,{default:()=>bg});var d=c(48249),e=c(19099),f=c(67484),g=c(2921),h=c(42114),i=c(14490);function j({className:a,children:b,...c}){return(0,d.jsxs)(h.bL,{"data-slot":"scroll-area",className:(0,i.cn)("relative",a),...c,children:[(0,d.jsx)(h.LM,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50",children:b}),(0,d.jsx)(k,{}),(0,d.jsx)(h.OK,{})]})}function k({className:a,orientation:b="vertical",...c}){return(0,d.jsx)(h.VM,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,i.cn)("flex touch-none select-none p-px transition-colors","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,d.jsx)(h.lr,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}var l=c(25297),m=c(20468),n=c(38420);function o({title:a,count:b,defaultOpen:c=!1,onToggleAll:e,toggleAllLabel:g,children:h}){let[i,j]=(0,f.useState)(c);return(0,d.jsxs)("div",{className:"rounded border bg-muted/30",children:[(0,d.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5 overflow-hidden px-3 py-2",onClick:()=>j(!i),children:[i?(0,d.jsx)(m.A,{className:"size-3.5 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:a}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",b,")"]}),e&&b>0&&(0,d.jsx)("button",{className:"ml-auto shrink-0 text-xs text-primary underline hover:text-primary/80 cursor-pointer",onClick:a=>{a.stopPropagation(),e()},children:g??"Toggle all"})]}),i&&(0,d.jsx)("div",{className:"overflow-hidden border-t px-3 py-2",children:h})]})}var p=c(33915),q=c(36650),r=c(66450);function s(a){return a.startsWith("diff --git")?"font-bold text-foreground bg-muted/50 pt-3 mt-2":a.startsWith("@@")?"text-blue-600 font-semibold bg-blue-500/10":a.startsWith("+")&&!a.startsWith("+++")?"bg-green-500/10 text-green-800":a.startsWith("-")&&!a.startsWith("---")?"bg-red-500/10 text-red-800":""}function t({diff:a,truncated:b,totalLines:c,maxHeight:e="400px"}){if(!a)return(0,d.jsx)("div",{className:"flex items-center justify-center py-4 text-xs text-muted-foreground",children:"No changes"});let f=function(a){let b=a.split("\n"),c=[],d=null;for(let a of b){let b=a.match(/^diff --git a\/(.+?) b\/(.+)$/);b?(d&&c.push(d),d={filePath:b[2],lines:[a]}):d&&d.lines.push(a)}return d&&c.push(d),c}(a),g=f.length>0;return(0,d.jsx)(j,{style:{maxHeight:e},children:(0,d.jsxs)("div",{className:"font-mono text-[11px] leading-relaxed",children:[g?f.map((a,b)=>(0,d.jsx)("div",{children:a.lines.map((a,c)=>(0,d.jsx)("div",{className:`px-2 py-px whitespace-pre ${s(a)}`,children:a||"\xa0"},`${b}-${c}`))},b)):a.split("\n").map((a,b)=>(0,d.jsx)("div",{className:`px-2 py-px whitespace-pre ${s(a)}`,children:a||"\xa0"},b)),b&&(0,d.jsxs)("div",{className:"mt-2 px-2 py-1.5 rounded bg-amber-500/10 border border-amber-500/20 text-amber-800 text-xs",children:["Diff truncated — showing first 5,000 of"," ",c?.toLocaleString()," lines"]})]})})}var u=c(47856);let v={M:{label:"M",color:"text-orange-500"},A:{label:"A",color:"text-green-600"},D:{label:"D",color:"text-red-600"},R:{label:"R",color:"text-blue-500"},"?":{label:"?",color:"text-gray-500"},C:{label:"C",color:"text-purple-500"},U:{label:"U",color:"text-yellow-600"}};function w({status:a,path:b,linesAdded:c,linesRemoved:e,checked:g,onToggle:h,slug:i,repoId:j,staged:k}){let l=v[a]||{label:a,color:"text-muted-foreground"},[o,s]=(0,f.useState)(!1),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(0),E=c??0,F=e??0,G=(0,f.useMemo)(()=>i?(0,u.jx)(j,i):null,[j,i]),H=!!i&&"?"!==a,I=async a=>{if(a.stopPropagation(),H){if(o)return void s(!1);if(s(!0),null===w){z(!0);try{let a=await fetch(`${G}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-file",file:b,staged:k})}),c=await a.json();x(c.diff||""),B(c.truncated||!1),D(c.totalLines||0)}catch{x("")}finally{z(!1)}}}};return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded px-1 py-0.5 text-xs",children:[h&&(0,d.jsx)("div",{className:"flex cursor-pointer items-center",onClick:h,children:g?(0,d.jsx)(p.A,{className:"size-4 shrink-0 text-primary"}):(0,d.jsx)(q.A,{className:"size-4 shrink-0 text-muted-foreground/50"})}),(0,d.jsxs)("div",{className:`flex min-w-0 flex-1 items-center gap-2 rounded px-1 py-0.5 ${H?"cursor-pointer hover:bg-muted/50":""}`,onClick:H?I:void 0,children:[H&&(o?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})),(0,d.jsx)("span",{className:`shrink-0 font-mono font-bold ${l.color}`,children:l.label}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-foreground/80",children:b}),(E>0||F>0)&&(0,d.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-1 font-mono tabular-nums",children:[E>0&&(0,d.jsxs)("span",{className:"text-green-600",children:["+",E]}),F>0&&(0,d.jsxs)("span",{className:"text-red-600",children:["-",F]})]})]})]}),o&&(0,d.jsx)("div",{className:"ml-6 mt-1 mb-2 rounded border bg-muted/10 overflow-hidden",children:y?(0,d.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,d.jsx)(r.A,{className:"size-3.5 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:w||"",truncated:A,totalLines:C,maxHeight:"300px"})})]})}let x={M:{label:"M",color:"text-orange-500"},A:{label:"A",color:"text-green-600"},D:{label:"D",color:"text-red-600"},R:{label:"R",color:"text-blue-500"},C:{label:"C",color:"text-purple-500"}};function y({hash:a,author:b,relativeTime:c,message:e,files:g,slug:h,repoId:i}){let[j,k]=(0,f.useState)(!1),[l,o]=(0,f.useState)({}),[p,q]=(0,f.useState)(null),[s,v]=(0,f.useState)(null),w=(0,f.useMemo)(()=>h?(0,u.jx)(i,h):null,[i,h]),y=async b=>{if(s===b)return void v(null);if((v(b),!l[b])&&w){q(b);try{let c=await fetch(`${w}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-commit",hash:a,file:b})}),d=await c.json();o(a=>({...a,[b]:{diff:d.diff||"",truncated:d.truncated||!1,totalLines:d.totalLines||0}}))}catch{o(a=>({...a,[b]:{diff:"",truncated:!1,totalLines:0}}))}finally{q(null)}}};return(0,d.jsxs)("div",{className:"rounded border bg-muted/20",children:[(0,d.jsxs)("div",{className:"flex cursor-pointer items-center gap-2 px-3 py-2",onClick:()=>k(!j),children:[j?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"min-w-0 truncate text-sm",children:e}),(0,d.jsx)("span",{className:"ml-auto shrink-0 font-mono text-[10px] text-muted-foreground",children:a})]}),j&&(0,d.jsxs)("div",{className:"border-t px-3 py-2",children:[(0,d.jsxs)("div",{className:"text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:b}),(0,d.jsx)("span",{className:"mx-1.5",children:"\xb7"}),(0,d.jsx)("span",{children:c})]}),g&&g.length>0&&(0,d.jsx)("div",{className:"mt-2 flex flex-col gap-0.5",children:g.map((a,b)=>{let c=x[a.status]||{label:a.status,color:"text-muted-foreground"},e=s===a.path,f=!!h;return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:`flex min-w-0 items-center gap-2 text-xs rounded px-1 py-0.5 ${f?"cursor-pointer hover:bg-muted/50":""}`,onClick:f?()=>y(a.path):void 0,children:[f&&(e?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})),(0,d.jsx)("span",{className:`shrink-0 font-mono font-bold ${c.color}`,children:c.label}),(0,d.jsx)("span",{className:"truncate font-mono text-foreground/70",children:a.path})]}),e&&(0,d.jsx)("div",{className:"ml-5 mt-1 mb-2 rounded border bg-muted/10 overflow-hidden",children:p===a.path?(0,d.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,d.jsx)(r.A,{className:"size-3.5 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:l[a.path]?.diff||"",truncated:l[a.path]?.truncated,totalLines:l[a.path]?.totalLines,maxHeight:"300px"})})]},b)})})]})]})}var z=c(85449),A=c(10745);function B({slug:a,repoId:b}){let[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!0),[i,k]=(0,f.useState)(null),[m,n]=(0,f.useState)(!1),[p,q]=(0,f.useState)(null),[s,v]=(0,f.useState)(!1),[x,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)(0),E=(0,f.useMemo)(()=>(0,u.jx)(b,a),[b,a]);(0,f.useCallback)(async()=>{h(!0),k(null);try{let a=await fetch(`${E}/git`),b=await a.json();b.error?(k(b.error),e(null)):e(b)}catch{k("Failed to fetch git status")}finally{h(!1)}},[E]);let F=async()=>{if(m)return void n(!1);if(n(!0),null===p){v(!0);try{let a=await fetch(`${E}/git`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"diff-branch"})}),b=await a.json();q(b.diff||""),B(b.truncated||!1),D(b.totalLines||0)}catch{q("")}finally{v(!1)}}},G=(0,f.useMemo)(()=>{if(!c)return[];let a=new Set,b=[];for(let d of c.staged)a.add(d.path),b.push({...d,staged:!0});for(let d of c.unstaged)a.has(d.path)||b.push(d);return b},[c]);return(0,d.jsx)("div",{className:"flex h-full flex-col",children:(0,d.jsx)(j,{className:"flex-1 min-h-0",children:(0,d.jsxs)("div",{className:"flex w-0 min-w-full flex-col gap-3 overflow-hidden p-3",children:[g&&!c&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(r.A,{className:"size-4 animate-spin"})}),i&&(0,d.jsx)("div",{className:"rounded border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700",children:i}),c&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o,{title:"Changes",count:G.length,defaultOpen:G.length>0,children:0===G.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No changes"}):G.map((c,e)=>(0,d.jsx)(w,{status:c.status,path:c.path,linesAdded:c.linesAdded,linesRemoved:c.linesRemoved,slug:a,repoId:b,staged:c.staged},e))}),!c.onMain&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center gap-1.5",children:[(0,d.jsx)(z.A,{className:"size-3.5 text-muted-foreground"}),(0,d.jsx)("h3",{className:"text-sm font-medium",children:"Commits"})]}),0===c.commits.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No commits on this branch yet"}):(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:c.commits.map(c=>(0,d.jsx)(y,{...c,slug:a,repoId:b},c.hash))})]}),!c.onMain&&c.commits.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)(l.$,{variant:"outline",size:"sm",onClick:F,className:"w-full gap-1.5 cursor-pointer",children:[(0,d.jsx)(A.A,{className:"size-3.5"}),m?"Hide all changes":"View all changes vs main"]}),m&&(0,d.jsx)("div",{className:"mt-2 rounded border bg-muted/10 overflow-hidden",children:s?(0,d.jsx)("div",{className:"flex items-center justify-center py-6",children:(0,d.jsx)(r.A,{className:"size-4 animate-spin text-muted-foreground"})}):(0,d.jsx)(t,{diff:p||"",truncated:x,totalLines:C,maxHeight:"500px"})})]})]})]})})})}var C=c(46970);function D(a){return"object"==typeof a&&null!==a}let E=[/oauth token has expired/i,/token has expired/i,/expired.*token/i,/authentication_error/i,/failed to authenticate/i,/please obtain a new token/i];function F(a){let b,c=a.trim(),d=((b=c.match(/\{[\s\S]*"(?:message|detail)"\s*:\s*"([^"]+)"[\s\S]*\}/))?b[1]:null)??c;return/internal server error/i.test(d)?{message:"The AI service hit a temporary issue. You can try sending your message again.",details:c}:/overloaded/i.test(d)?{message:"The AI service is currently overloaded. Please wait a moment and try again.",details:c}:/rate limit/i.test(d)?{message:"Too many requests. Please wait a moment and try again.",details:c}:E.some(a=>a.test(d))?{message:"Authentication expired. Reconnect Claude CLI (`claude auth login`) and try again.",details:c}:/authentication|unauthorized|invalid.*key/i.test(d)?{message:"There was an authentication problem with the AI service.",details:c}:/chat request failed/i.test(d)?{message:"Couldn't reach the AI service. Check your connection and try again.",details:c}:{message:d}}function G(a){return"object"==typeof a&&null!==a}var H=c(18290);let I=new Set;function J(a,b){if(0===b.length&&a.length>0||b.length<a.length)return!1;if(b.length>a.length)return!0;for(let c=0;c<b.length;c++){let d=b[c],e=a[c];if(!e||d.id!==e.id||d.role!==e.role||(0,H.B)(e,d))return!0}return!1}function K(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.startsWith("pending-")?null:b}function L(a){let b=[],c=a=>{if("string"!=typeof a)return;let c=a.trim();c&&b.push(c)};if(c(a.result),c(a.error),Array.isArray(a.errors))for(let b of a.errors)c(b);return b}var M=c(80105),N=c(82310),O=c(44920),P=c(3202),Q=c(73428),R=c(50421),S=c(80646),T=c(1498),U=c(42163),V=c(84289),W=c(3958),X=c(62291),Y=c(44193),Z=c(94274),$=c(87058),_=c(59576);let aa=(0,c(90314).default)(async()=>{},{loadableGenerated:{modules:["components/ui/LazyCodeBlock.tsx -> ./CodeBlock"]},ssr:!1});function ab(a){try{let b=JSON.parse(a);return{code:JSON.stringify(b,null,2),language:"json"}}catch{return{code:a,language:"text"}}}function ac(a){try{let b=JSON.parse(a);return"object"==typeof b&&null!==b?b:null}catch{return null}}function ad(a){let b=a.split("/").filter(Boolean);return b.length<=2?a:b.slice(-2).join("/")}let ae={Bash:P.A,Read:Q.A,Edit:R.A,Write:S.A,Grep:T.A,Glob:U.A,WebFetch:V.A,WebSearch:V.A,Task:W.A,TodoWrite:X.A,Skill:Y.A,NotebookEdit:Z.A},af={borderRadius:"0.25rem",padding:"0.375rem",fontFamily:'"JetBrains Mono", monospace',maxHeight:"8rem",overflow:"auto"};function ag({toolCall:a,isStreaming:b,subtle:c=!1}){let[e,g]=(0,f.useState)(!1),h=ae[a.name]??$.A,i=!!a.output,j=!i&&!!b,{text:k,code:l}=function(a,b){let c=ac(b);switch(a){case"Read":{let a=c?.file_path;return a?{text:"Read",code:ad(a)}:{text:"Read file"}}case"Edit":{let a=c?.file_path;return a?{text:"Edit",code:ad(a)}:{text:"Edit file"}}case"Write":{let a=c?.file_path;return a?{text:"Write",code:ad(a)}:{text:"Write file"}}case"Bash":{let a=c?.command;if(!a)return{text:"Run command"};return{text:"Run",code:a.length>60?a.slice(0,57)+"...":a}}case"Grep":{let a=c?.pattern,b=c?.path;if(!a)return{text:"Search files"};let d=b?` in ${ad(b)}`:"";return{text:"Search for",code:`${a}${d}`}}case"Glob":{let a=c?.pattern;return a?{text:"Find files",code:a}:{text:"Find files"}}case"WebFetch":{let a=c?.url;if(!a)return{text:"Fetch URL"};try{return{text:"Fetch",code:new URL(a).hostname}}catch{return{text:"Fetch URL"}}}case"WebSearch":{let a=c?.query;return a?{text:"Search web for",code:a}:{text:"Search the web"}}case"Task":{let a=c?.description;return a?{text:"Launch sous chef:",code:a}:{text:"Launch sous chef"}}case"TodoWrite":return{text:"Update task list"};case"Skill":{let a=c?.skill;return a?{text:"Use skill",code:a}:{text:"Use skill"}}case"NotebookEdit":return{text:"Edit notebook"};default:return{text:a}}}(a.name,a.input);return(0,d.jsxs)("div",{className:c?"text-xs":"rounded-md border text-xs",children:[(0,d.jsxs)("button",{type:"button",className:`flex w-full cursor-pointer items-center gap-1.5 text-left transition-colors ${c?"py-0.5 text-muted-foreground hover:text-foreground":"rounded-md px-2 py-1.5 hover:bg-accent/50"}`,onClick:()=>g(!e),children:[j?(0,d.jsx)(r.A,{className:`shrink-0 animate-spin ${c?"size-3 text-orange-500":"size-3.5 text-amber-500"}`}):i?(0,d.jsx)("div",{className:`flex shrink-0 items-center justify-center rounded-full ${c?"size-3 text-muted-foreground":"size-3.5 bg-muted text-muted-foreground"}`,children:(0,d.jsx)(_.A,{className:"size-2.5",strokeWidth:3})}):(0,d.jsx)("div",{className:`shrink-0 rounded-full border border-muted-foreground/30 ${c?"size-2.5":"size-3.5"}`}),(0,d.jsx)(h,{className:"size-3 shrink-0 text-muted-foreground"}),(0,d.jsxs)("span",{className:`flex-1 truncate ${c?"text-muted-foreground":"text-foreground"}`,children:[k,l&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("code",{className:`${c?"font-mono text-[11px] text-muted-foreground/90":"rounded bg-muted px-1 py-0.5 font-mono text-[11px] text-muted-foreground"}`,children:l})]})]}),e?(0,d.jsx)(m.A,{className:"size-3 shrink-0 text-muted-foreground"}):(0,d.jsx)(n.A,{className:"size-3 shrink-0 text-muted-foreground"})]}),e&&(0,d.jsxs)("div",{className:`${c?"ml-6 border-l border-border/70 pl-2.5 py-1.5 space-y-1.5":"border-t px-2 py-1.5 space-y-1.5"}`,children:[a.input&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Input"}),(()=>{let{code:b,language:c}=ab(a.input);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...af,marginTop:"0.25rem"}})})()]}),a.output&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Output"}),(()=>{let{code:b,language:c}=ab(a.output);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...af,marginTop:"0.25rem"}})})()]}),j&&!a.output&&(0,d.jsxs)("div",{className:`flex items-center gap-1.5 py-1 text-[11px] ${c?"text-orange-600":"text-amber-600"}`,children:[(0,d.jsx)(r.A,{className:"size-3 animate-spin"}),(0,d.jsx)("span",{children:"Running..."})]})]})]})}var ah=c(39937),ai=c(79248);function aj({questions:a,onAnswer:b,isAnswered:c}){let[e,g]=(0,f.useState)({}),[h,j]=(0,f.useState)({}),[k,l]=(0,f.useState)(!1),m=c||k||!b,n=1===a.length&&!a[0].multiSelect,o=(0,f.useCallback)(b=>{let c=a.map((c,d)=>{let f=e[d]||[],g=(b?.[d]??h[d])?.trim(),i=[...f];if(g&&i.push(g),1===a.length)return i.join(", ");let j=c.header||`Q${d+1}`;return`${j}: ${i.join(", ")}`});return 1===a.length?c[0]:c.join("\n")},[a,e,h]),p=a=>{if(m)return;let c=h[a]?.trim();if(!c)return;let d={...h,[a]:c};if(j(d),n){l(!0),b?.(c);return}let e=o(d);e&&(l(!0),b?.(e))};return(0,d.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-4",m?"border-muted bg-muted/30 opacity-60":"border-primary/20 bg-primary/5"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-primary",children:[(0,d.jsx)(ah.A,{className:"size-4"}),(0,d.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider",children:"Question"})]}),a.map((c,f)=>(0,d.jsxs)("div",{className:"space-y-2",children:[c.header&&(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:c.header}),(0,d.jsx)("p",{className:"text-sm font-medium",children:c.question}),(0,d.jsx)("div",{className:"flex flex-col gap-2",children:c.options.map((c,h)=>{let j=(e[f]||[]).includes(c.label);return(0,d.jsxs)("button",{onClick:()=>{var d;return d=c.label,void(m||(a[f].multiSelect?g(a=>{let b=a[f]||[],c=b.includes(d)?b.filter(a=>a!==d):[...b,d];return{...a,[f]:c}}):(g(a=>({...a,[f]:[d]})),n&&(l(!0),b?.(d)))))},disabled:m,className:(0,i.cn)("w-full rounded-lg border bg-background px-3 py-2 text-left transition-colors",m?"cursor-default":"cursor-pointer hover:bg-primary/10",j&&"bg-primary text-primary-foreground border-primary"),children:[(0,d.jsx)("span",{className:"text-sm font-medium",children:`${h+1}. ${c.label}`}),c.description&&(0,d.jsx)("span",{className:(0,i.cn)("block text-xs mt-0.5",j?"text-primary-foreground/70":"text-muted-foreground"),children:c.description})]},c.label)})}),(0,d.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,d.jsx)("input",{type:"text",placeholder:"Type your answer…",value:h[f]||"",onChange:a=>j(b=>({...b,[f]:a.target.value})),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),p(f))},disabled:m,className:"flex-1 rounded-md border px-3 py-1.5 text-sm bg-background outline-none focus:ring-2 focus:ring-ring disabled:opacity-60"}),(0,d.jsx)("button",{onClick:()=>p(f),disabled:m||!h[f]?.trim(),className:"rounded-md bg-primary px-3 py-1.5 text-sm text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default","aria-label":"Send custom answer",children:(0,d.jsx)(ai.A,{className:"size-3.5"})})]})]},f)),!n&&!m&&(0,d.jsx)("button",{onClick:()=>{if(m)return;let a=o();a&&(l(!0),b?.(a))},disabled:Object.values(e).every(a=>0===a.length)&&Object.values(h).every(a=>!a?.trim()),className:"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default hover:bg-primary/90 transition-colors",children:"Submit"})]})}var ak=c(85155);function al({onAnswer:a,isAnswered:b}){let[c,e]=(0,f.useState)(!1),[g,h]=(0,f.useState)(!1),[j,k]=(0,f.useState)(""),l=b||c||!a,m=()=>{!l&&j.trim()&&(e(!0),a?.(j.trim()))};return(0,d.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-3",l?"border-muted bg-muted/30 opacity-60":"border-yellow-500/20 bg-yellow-500/5"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-yellow-600",children:[(0,d.jsx)(ak.A,{className:"size-4"}),(0,d.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider",children:"Plan ready for review"})]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"The agent has prepared a plan and is waiting for your approval to proceed."}),!g&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>{l||(e(!0),a?.("Approved — go ahead"))},disabled:l,className:(0,i.cn)("rounded-md px-4 py-2 text-sm font-medium transition-colors",l?"bg-muted text-muted-foreground cursor-default":"bg-green-600 text-white cursor-pointer hover:bg-green-700"),children:"Approve & proceed"}),(0,d.jsx)("button",{onClick:()=>{l||h(!0)},disabled:l,className:(0,i.cn)("rounded-md border px-4 py-2 text-sm font-medium transition-colors",l?"cursor-default":"cursor-pointer hover:bg-primary/10"),children:"Request changes"})]}),g&&!l&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{type:"text",placeholder:"Describe what to change…",value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),m())},autoFocus:!0,className:"flex-1 rounded-md border px-3 py-1.5 text-sm bg-background outline-none focus:ring-2 focus:ring-ring"}),(0,d.jsx)("button",{onClick:m,disabled:!j.trim(),className:"rounded-md bg-primary px-3 py-1.5 text-sm text-primary-foreground cursor-pointer disabled:opacity-50 disabled:cursor-default",children:(0,d.jsx)(ai.A,{className:"size-3.5"})})]})]})}var am=c(77405),an=c(42755),ao=c(51843),ap=c(34343),aq=c(38393);function ar({html:a}){let[b,c]=(0,f.useState)(!1),[e,g]=(0,f.useState)(!1),[h,i]=(0,f.useState)(150),[j,k]=(0,f.useState)(!1),l=(0,f.useId)(),o=(0,f.useMemo)(()=>{let b;return b=a.replace(/<script[\s\S]*?<\/script>/gi,""),`<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
@@ -19,6 +19,6 @@ ${b}
|
|
|
19
19
|
new ResizeObserver(notifyHeight).observe(document.body);
|
|
20
20
|
</script>
|
|
21
21
|
</body>
|
|
22
|
-
</html>`},[a,l]);return a.trim()?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"group relative my-2 cursor-pointer overflow-hidden rounded-lg border bg-background transition-colors hover:border-primary",style:{maxHeight:400},onClick:()=>c(!0),children:[(0,d.jsx)("div",{className:"absolute left-2 top-1.5 z-10 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground backdrop-blur-sm",children:"Preview"}),(0,d.jsxs)("div",{className:"absolute bottom-2 right-2 z-10 flex items-center gap-1 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100",children:[(0,d.jsx)(ao.A,{className:"size-3"}),"Click to expand"]}),j&&(0,d.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 z-[5] h-12 bg-gradient-to-t from-background/80 to-transparent"}),(0,d.jsx)("iframe",{srcDoc:o,sandbox:"allow-scripts",title:"HTML Preview",className:"w-full border-0",style:{height:h,pointerEvents:"none"}})]}),(0,d.jsx)(aq.lG,{open:b,onOpenChange:c,children:(0,d.jsxs)(aq.Cf,{className:"sm:max-w-[90vw] h-[80vh] p-4 flex flex-col overflow-hidden",children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"HTML Preview"}),(0,d.jsx)("iframe",{srcDoc:o,sandbox:"allow-scripts",title:"HTML Preview",className:"w-full rounded border-0 flex-1 min-h-0"}),(0,d.jsxs)("div",{className:"flex shrink-0 cursor-pointer items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:()=>g(!e),children:[e?(0,d.jsx)(m.A,{className:"size-3"}):(0,d.jsx)(n.A,{className:"size-3"}),(0,d.jsx)(ap.A,{className:"size-3"}),(0,d.jsx)("span",{children:e?"Hide code":"Show code"})]}),e&&(0,d.jsx)("div",{className:"min-h-0 max-h-[35vh] overflow-auto shrink-0 rounded-md",children:(0,d.jsx)(aa,{code:a,language:"html",variant:"light"})})]})})]}):(0,d.jsx)(aa,{code:a,language:"html",variant:"light"})}let as="prose prose-sm max-w-none prose-p:my-1 prose-headings:my-2 prose-ul:my-1 prose-li:my-0 prose-code:rounded prose-code:bg-muted prose-code:px-1 prose-code:py-0.5 prose-code:text-xs prose-pre:my-2",at={code({className:a,children:b,...c}){let e=/language-([\w-]+)/.exec(a||""),f=String(b).replace(/\n$/,"");return e&&"html-preview"===e[1]?(0,d.jsx)(ar,{html:f}):e?(0,d.jsx)(aa,{code:f,language:e[1],variant:"dark",customStyle:{fontFamily:'"JetBrains Mono", monospace'}}):(0,d.jsx)("code",{className:a,...c,children:b})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a})};function au({text:a}){return(0,d.jsx)("div",{className:as,children:(0,d.jsx)(am.oz,{remarkPlugins:[an.A],components:at,children:a})})}let av=new Set(["Task","Skill","TodoWrite"]);function aw(a){return av.has(a.name)}function ax(a){try{let b=JSON.parse(a);return{code:JSON.stringify(b,null,2),language:"json"}}catch{return{code:a,language:"text"}}}let ay={borderRadius:"0.25rem",padding:"0.375rem",fontFamily:'"JetBrains Mono", monospace',maxHeight:"8rem",overflow:"auto"};function az({block:a,isStreaming:b,subtle:c=!1}){return(0,d.jsx)(ag,{toolCall:a,isStreaming:b,subtle:c})}function aA({calls:a,isStreaming:b}){let[c,e]=(0,f.useState)(!1),g=function(a){let b=new Map;for(let c of a)b.set(c.name,(b.get(c.name)||0)+1);let c=Array.from(b.entries()).map(([a,b])=>b>1?`${a} x${b}`:a),d=c.slice(0,4),e=c.length-d.length,f=e>0?` \u00b7 +${e}`:"",g=`Used ${a.length} tool${1===a.length?"":"s"}`;return d.length>0?`${g} \u00b7 ${d.join(" \xb7 ")}${f}`:g}(a);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>e(a=>!a),className:"flex w-full items-center gap-1 text-left text-xs text-muted-foreground transition-colors hover:text-foreground",children:[(0,d.jsx)(n.A,{className:(0,i.cn)("size-3 shrink-0 transition-transform",c&&"rotate-90")}),(0,d.jsx)("span",{className:"truncate",children:g})]}),c&&(0,d.jsx)("div",{className:"mt-1 flex flex-col gap-0.5 pl-4",children:a.map((c,e)=>(0,d.jsx)(az,{block:c,subtle:!0,isStreaming:b&&e===a.length-1},`${c.name}-${e}`))})]})}function aB({block:a,isStreaming:b}){let[c,e]=(0,f.useState)(!1),g=ac(a.input),h="Skill"===a.name,j=h?Y.A:W.A,k=h?g?.skill||"Using skill":g?.description||g?.subagent_type||"Running subagent",l=h?void 0:g?.subagent_type,m=!!a.output,o=!m&&!!b;return(0,d.jsxs)("div",{className:"rounded-md border border-orange-200/70 bg-orange-50/40 px-2.5 py-1.5",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>e(a=>!a),className:"flex w-full items-center gap-2 text-left",children:[(0,d.jsx)(j,{className:"size-3.5 shrink-0 text-orange-600"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"truncate text-xs font-medium text-orange-900",children:[h?"Skill":"Subagent",": ",k]}),l&&(0,d.jsx)("p",{className:"truncate text-[11px] text-orange-700/90",children:l})]}),o?(0,d.jsx)(r.A,{className:"size-3.5 shrink-0 animate-spin text-orange-600"}):m?(0,d.jsx)(_.A,{className:"size-3.5 shrink-0 text-orange-600"}):null,(0,d.jsx)(n.A,{className:(0,i.cn)("size-3 shrink-0 text-orange-700 transition-transform",c&&"rotate-90")})]}),c&&(0,d.jsxs)("div",{className:"mt-1.5 space-y-1.5 border-t border-orange-200/80 pt-1.5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-orange-700",children:"Input"}),(()=>{let{code:b,language:c}=ax(a.input);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...ay,marginTop:"0.25rem"}})})()]}),a.output&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-orange-700",children:"Output"}),(()=>{let{code:b,language:c}=ax(a.output);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...ay,marginTop:"0.25rem"}})})()]}),o&&!a.output&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5 py-1 text-[11px] text-orange-600",children:[(0,d.jsx)(r.A,{className:"size-3 animate-spin"}),(0,d.jsx)("span",{children:"Running..."})]})]})]})}function aC({block:a}){let b=ac(a.input),c=Array.isArray(b?.todos)?b.todos:[];return 0===c.length?(0,d.jsx)(az,{block:a,subtle:!0}):(0,d.jsxs)("div",{className:"py-0.5",children:[(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Todo list"}),(0,d.jsx)("ul",{className:"mt-1 space-y-0.5 text-xs",children:c.map((a,b)=>{let c="completed"===a.status,e="in_progress"===a.status&&a.activeForm?a.activeForm:a.content||"";return(0,d.jsx)("li",{className:(0,i.cn)("leading-relaxed text-foreground",c&&"line-through"),children:e},`${a.content||"todo"}-${b}`)})})]})}function aD({block:a}){return(0,d.jsx)("div",{className:"max-w-[90%] rounded-lg border border-red-200 bg-red-50 px-3.5 py-3 text-sm",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)("span",{className:"mt-0.5 shrink-0 text-base leading-none","aria-hidden":!0,children:"⚠️"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-red-900",children:"Something went wrong"}),(0,d.jsx)("p",{className:"mt-0.5 text-red-700",children:a.message}),a.details&&(0,d.jsxs)("details",{className:"mt-2",children:[(0,d.jsx)("summary",{className:"cursor-pointer text-xs text-muted-foreground",children:"Technical details"}),(0,d.jsx)("pre",{className:"mt-1.5 whitespace-pre-wrap break-all rounded bg-white p-2 text-xs text-muted-foreground",children:a.details})]})]})]})})}function aE({images:a,slug:b,repoId:c}){let[e,g]=(0,f.useState)(null),h=a=>(0,u.wy)(c,b,a);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex gap-1.5 flex-wrap mt-1",children:a.map(a=>(0,d.jsx)("button",{onClick:()=>g(a),className:"size-16 shrink-0 cursor-pointer overflow-hidden rounded border hover:ring-2 hover:ring-ring",children:(0,d.jsx)("img",{src:h(a),alt:a,className:"size-full object-cover"})},a))}),(0,d.jsx)(aq.lG,{open:!!e,onOpenChange:a=>!a&&g(null),children:(0,d.jsxs)(aq.Cf,{className:"max-w-3xl p-2",showCloseButton:!1,children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"Image preview"}),e&&(0,d.jsx)("img",{src:h(e),alt:e,className:"w-full rounded object-contain max-h-[80vh]"})]})})]})}let aF=["Tasting","Simmering","Reducing","Prepping","Seasoning","Plating"],aG=["Counting clean forks","Looking for the missing whisk","Trying not to burn garlic","Keeping the pass in order"];function aH(){let[a,b]=(0,f.useState)(()=>(function(a){let b,c=.25>Math.random()?aG:aF;do b=c[Math.floor(Math.random()*c.length)];while(c.length>1&&void 0===b);return b})());return(0,d.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,d.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-orange-500 motion-safe:animate-pulse-dot motion-reduce:opacity-70",role:"status","aria-label":"Thinking"}),(0,d.jsxs)("span",{className:"text-sm italic text-orange-600",children:[a,"..."]})]})}function aI({message:a,showThinking:b,slug:c,repoId:e,onQuestionAnswer:f,isQuestionAnswered:g}){let h="assistant"===a.role?a.blocks:void 0;if("system"===a.role)return(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 italic",children:a.content})});if("user"===a.role){let b=a.images?.length?a.images:Array.from(a.content.matchAll(/\[Attached image: ([^\]]+)\]/g),a=>a[1]),f=a.images?.length?a.content:a.content.replace(/\[Attached image: [^\]]+\]\n*/g,"").trim();return(0,d.jsx)("div",{className:"flex flex-col items-end",children:(0,d.jsxs)("div",{className:"max-w-[90%] rounded-lg bg-primary/15 px-3 py-2 text-sm text-foreground",children:[b.length>0&&(0,d.jsx)(aE,{images:b,slug:c,repoId:e}),f&&(0,d.jsx)("p",{className:"whitespace-pre-wrap",children:f})]})})}if(h&&h.length>0){let a=h.reduce((a,b,c)=>"tool_call"===b.type?c:a,-1),c=h.reduce((a,b,c)=>"tool_call"===b.type&&"TodoWrite"===b.name?c:a,-1),e=[];for(let i=0;i<h.length;i++){let j=h[i];if("text"===j.type){if(!j.text.trim())continue;e.push((0,d.jsx)(au,{text:j.text},`text-${i}`));continue}if("error"===j.type){e.push((0,d.jsx)(aD,{block:j},`error-${i}`));continue}if("ask_question"===j.type){e.push((0,d.jsx)(aj,{questions:j.questions,onAnswer:f,isAnswered:g},`question-${i}`));continue}if("plan_approval"===j.type){e.push((0,d.jsx)(al,{onAnswer:f,isAnswered:g},`plan-${i}`));continue}if("tool_call"!==j.type)continue;if("TodoWrite"===j.name){if(i!==c)continue;e.push((0,d.jsx)(aC,{block:j},`todo-${i}`));continue}let k=i===a;if("Task"===j.name||"Skill"===j.name){e.push((0,d.jsx)(aB,{block:j,isStreaming:k&&b},`agent-${i}`));continue}if(!aw(j)){let c=i,f=[j];for(;i+1<h.length;){let a=h[i+1];if("tool_call"!==a.type||aw(a))break;f.push(a),i+=1}let g=a>=c&&a<=i;e.push((0,d.jsx)(aA,{calls:f,isStreaming:g&&b},`tools-${c}`))}}return(0,d.jsxs)("div",{className:"flex flex-col gap-2 text-sm",children:[e,b&&(0,d.jsx)(aH,{})]})}let i=a.content||"",j=!!i.trim(),k=a.toolCalls&&a.toolCalls.length>0;return j||k?(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[j&&(0,d.jsx)("div",{className:"max-w-[90%] rounded-lg bg-muted px-3 py-2 text-sm text-foreground",children:(0,d.jsx)("div",{className:as,children:(0,d.jsx)(am.oz,{remarkPlugins:[an.A],components:at,children:i})})}),k&&(0,d.jsx)("div",{className:"flex max-w-[90%] flex-col gap-1",children:a.toolCalls.map((a,b)=>(0,d.jsx)(ag,{toolCall:a,subtle:!0},b))})]}):b?(0,d.jsx)(aH,{}):null}var aJ=c(37636),aK=c(48371);let aL={warning:{border:"border-amber-200",bg:"bg-amber-50/70",dot:"bg-amber-500",text:"text-amber-800"},success:{border:"border-emerald-200",bg:"bg-emerald-50/70",dot:"bg-emerald-500",text:"text-emerald-700"},muted:{border:"border-border",bg:"bg-muted/50",dot:"bg-muted-foreground",text:"text-muted-foreground"}};function aM({variant:a,dot:b,centered:c,children:e,actions:f,className:g}){let h=aL[a];return(0,d.jsxs)("div",{className:(0,i.cn)("flex items-center gap-3 rounded-lg border px-4 py-2.5 text-xs",h.border,h.bg,c&&"justify-center",g),children:[b&&(0,d.jsx)("span",{className:(0,i.cn)("size-1.5 shrink-0 rounded-full",h.dot,"warning"===a&&"animate-pulse")}),(0,d.jsx)("div",{className:(0,i.cn)("min-w-0",!c&&"flex-1",h.text),children:e}),f&&(0,d.jsx)("div",{className:"ml-auto flex shrink-0 items-center gap-1.5",children:f})]})}var aN=c(55296),aO=c(104),aP=c(56585),aQ=c(53925),aR=c(38939),aS=c(10849);let aT=new Set(["image/png","image/jpeg","image/gif","image/webp"]);function aU({onSend:a,onStop:b,isStreaming:c,slug:e,repoId:g,onModelChange:h,selectedModel:j,leftToolbar:k}){let[m,n]=(0,f.useState)(""),[o,p]=(0,f.useState)([]),[q,r]=(0,f.useState)(!1),[s,t]=(0,f.useState)(null),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)(null),z=(0,f.useRef)(null),[A,B]=(0,f.useState)(N.xj),[C,D]=(0,f.useState)(j||N.xj),E=(0,f.useMemo)(()=>(0,u.jx)(g,e),[g,e]);(0,f.useRef)(h);let F=(0,f.useCallback)(a=>{t(null);let b=Array.from(a);for(let a of b){if(!aT.has(a.type))return void t("Only images are supported (PNG, JPEG, GIF, WebP).");if(a.size>5242880)return void t("Images must be under 5 MB.")}p(a=>{let c=[...a,...b.map(a=>({file:a,previewUrl:URL.createObjectURL(a)}))];return c.length>5?(t("Maximum 5 images per message."),a):c})},[]),G=(0,f.useCallback)(a=>{p(b=>(URL.revokeObjectURL(b[a].previewUrl),b.filter((b,c)=>c!==a))),t(null)},[]),H=(0,f.useCallback)(a=>{let b=Array.from(a.clipboardData.files).filter(a=>aT.has(a.type));b.length>0&&(a.preventDefault(),F(b))},[F]),I=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!0)},[]),J=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!1)},[]),K=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!1),a.dataTransfer.files.length>0&&F(a.dataTransfer.files)},[F]),L=(0,f.useCallback)(async()=>{let b=m.trim();if((b||0!==o.length)&&!c)if(o.length>0){r(!0),t(null);try{let c=[];for(let a of o){let b=new FormData;b.append("file",a.file);let d=await fetch(`${E}/images`,{method:"POST",body:b});if(!d.ok){let a=await d.json();t(a.error||"Upload failed — try again.");return}let e=await d.json();c.push(e.filename)}o.forEach(a=>URL.revokeObjectURL(a.previewUrl)),p([]),n(""),a(b,c,C)}catch{t("Upload failed — try again.")}finally{r(!1)}}else a(b,void 0,C),n("")},[m,o,c,E,a,C]),M=(0,f.useCallback)(a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),L())},[L]),O=(0,f.useCallback)(a=>{let b=(0,N.Ou)(a);B(b),j||D(b)},[j]);return(0,d.jsxs)("div",{className:(0,i.cn)("py-5",v&&"ring-2 ring-primary ring-inset rounded-md"),onDragOver:I,onDragLeave:J,onDrop:K,children:[o.length>0&&(0,d.jsx)("div",{className:"flex gap-2 px-1 pb-2 flex-wrap",children:o.map((a,b)=>(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("button",{onClick:()=>y(b),className:"size-14 shrink-0 cursor-pointer overflow-hidden rounded border hover:ring-2 hover:ring-ring",children:(0,d.jsx)("img",{src:a.previewUrl,alt:a.file.name,className:"size-full object-cover"})}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),G(b)},className:"absolute -top-1.5 -right-1.5 flex size-5 items-center justify-center rounded-full bg-destructive text-destructive-foreground text-xs cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",children:(0,d.jsx)(aO.A,{className:"size-3"})})]},b))}),(0,d.jsx)(aq.lG,{open:null!==x,onOpenChange:a=>!a&&y(null),children:(0,d.jsxs)(aq.Cf,{className:"max-w-3xl p-2",children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"Image preview"}),null!==x&&o[x]&&(0,d.jsx)("img",{src:o[x].previewUrl,alt:o[x].file.name,className:"w-full rounded object-contain max-h-[80vh]"})]})}),s&&(0,d.jsx)("div",{className:"px-1 pb-2 text-xs text-destructive",children:s}),(0,d.jsxs)("div",{className:"rounded-xl border bg-white shadow-[0_10px_22px_-20px_rgba(15,23,42,0.3)] transition-shadow focus-within:shadow-[0_12px_26px_-18px_rgba(15,23,42,0.34)] focus-within:ring-2 focus-within:ring-ring",children:[(0,d.jsx)("input",{ref:z,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&F(a.target.files),a.target.value=""}}),(0,d.jsx)("textarea",{className:"w-full resize-none bg-transparent px-6 pt-4 pb-5 text-sm outline-none placeholder:text-muted-foreground",rows:2,placeholder:"Write a message... (Cmd+Enter to send)",value:m,onChange:a=>n(a.target.value),onKeyDown:M,onPaste:H,disabled:c}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3",children:[(0,d.jsx)(aN.Y6,{label:"Attach image",children:(0,d.jsx)(l.$,{variant:"ghost",size:"icon",onClick:()=>z.current?.click(),disabled:c||q,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aP.A,{className:"size-4"})})}),k,(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(aS.B,{value:C,onChange:D,disabled:c,defaultModel:A,onDefaultModelChange:O}),c?(0,d.jsx)(l.$,{variant:"outline",size:"icon",onClick:b,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aQ.A,{className:"size-4"})}):(0,d.jsx)(l.$,{size:"icon",onClick:L,disabled:!m.trim()&&0===o.length||q,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aR.A,{className:"size-4"})})]})]})]})}function aV(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.startsWith("pending-")?null:b}function aW(a){return(a||"").replace(/\[Attached image: [^\]]+\]\n*/g,"").trim()}function aX(a){if(!a)return null;let b=a.match(/-(\d{10,})$/);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)?c:null}function aY({taskSlug:a,taskTitle:b,repoId:c,status:g,onTaskUpdated:h,autoStartContext:i,autoStartModel:j,autoStartImages:k,autoImproveTitle:m=!1,prefetchedActiveChat:n}){let o=(0,e.useParams)(),p=(0,u.NK)(o),q=c||p;(0,f.useMemo)(()=>(0,u.Yg)(q),[q]),(0,f.useMemo)(()=>(0,u.jx)(q,a),[q,a]);let[r,s]=(0,f.useState)(null),[t,v]=(0,f.useState)(void 0),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(null),[P,Q]=(0,f.useState)(!1),{messages:R,isStreaming:S,wasDisconnected:T,sendMessage:U,stopAgent:V,clearSessionId:W,injectSystemMessage:X,reloadFromServer:Y,hydrateFromSnapshot:Z,sessionId:$,sessionIdRef:_,awaitingInputFromQuestion:aa}=function(a,b="chat-main",c,d){let g=(0,e.useParams)(),h=(0,u.NK)(g),i=d||h,j=(0,f.useMemo)(()=>(0,u.Yg)(i),[i]),k=(0,f.useMemo)(()=>a?(0,u.jx)(i,a):null,[i,a]),[l,m]=(0,f.useState)([]),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(!1),t=(0,f.useRef)(null),[v,w]=(0,f.useState)(null),x=(0,f.useRef)(null);(0,f.useRef)(!1),(0,f.useRef)(b);let y=(0,f.useRef)([]);y.current=l;let z=(0,f.useRef)(null),A=(0,f.useRef)(!1),B=(0,f.useRef)(!1),H=(0,f.useCallback)(a=>{let b=K(a);t.current=b,w(b)},[]),M=(0,f.useCallback)(a=>{m(b=>J(b,a.messages)?a.messages:b),H(a.sessionId)},[H]);(0,f.useCallback)(a=>({messages:a.messages.filter(a=>"assistant"!==a.role||(a.content||"").trim().length>0||a.blocks&&a.blocks.length>0||a.toolCalls&&a.toolCalls.length>0),sessionId:K(a.sessionId)}),[]);let N=(0,f.useCallback)(()=>{if(!a)return;let c=y.current,d=t.current;if(A.current){B.current=!0;return}A.current=!0,(0,C.yd)(a,b,c,d,i).finally(()=>{A.current=!1,B.current&&(B.current=!1,N())})},[a,b,i]),O=(0,f.useCallback)(()=>{a&&(0,C.Hg)(a,b,i).then(a=>{!a||(m(b=>J(b,a.messages)?a.messages:b),a.sessionId&&H(a.sessionId))})},[a,b,H,i]),P=(0,f.useCallback)(async(c,d)=>{let{images:e,model:f}=d||{};if(!a)return;s(!1),q(!1);let g={id:`user-${Date.now()}`,role:"user",content:c,images:e?.length?e:void 0},h=c;if(e&&e.length>0){let a=e.map(a=>`[Attached image: ${a}]`).join("\n");h=`${a}
|
|
22
|
+
</html>`},[a,l]);return a.trim()?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"group relative my-2 cursor-pointer overflow-hidden rounded-lg border bg-background transition-colors hover:border-primary",style:{maxHeight:400},onClick:()=>c(!0),children:[(0,d.jsx)("div",{className:"absolute left-2 top-1.5 z-10 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground backdrop-blur-sm",children:"Preview"}),(0,d.jsxs)("div",{className:"absolute bottom-2 right-2 z-10 flex items-center gap-1 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100",children:[(0,d.jsx)(ao.A,{className:"size-3"}),"Click to expand"]}),j&&(0,d.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 z-[5] h-12 bg-gradient-to-t from-background/80 to-transparent"}),(0,d.jsx)("iframe",{srcDoc:o,sandbox:"allow-scripts",title:"HTML Preview",className:"w-full border-0",style:{height:h,pointerEvents:"none"}})]}),(0,d.jsx)(aq.lG,{open:b,onOpenChange:c,children:(0,d.jsxs)(aq.Cf,{className:"sm:max-w-[90vw] h-[80vh] p-4 flex flex-col overflow-hidden",children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"HTML Preview"}),(0,d.jsx)("iframe",{srcDoc:o,sandbox:"allow-scripts",title:"HTML Preview",className:"w-full rounded border-0 flex-1 min-h-0"}),(0,d.jsxs)("div",{className:"flex shrink-0 cursor-pointer items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:()=>g(!e),children:[e?(0,d.jsx)(m.A,{className:"size-3"}):(0,d.jsx)(n.A,{className:"size-3"}),(0,d.jsx)(ap.A,{className:"size-3"}),(0,d.jsx)("span",{children:e?"Hide code":"Show code"})]}),e&&(0,d.jsx)("div",{className:"min-h-0 max-h-[35vh] overflow-auto shrink-0 rounded-md",children:(0,d.jsx)(aa,{code:a,language:"html",variant:"light"})})]})})]}):(0,d.jsx)(aa,{code:a,language:"html",variant:"light"})}let as="prose prose-sm max-w-none prose-p:my-1 prose-headings:my-2 prose-ul:my-1 prose-li:my-0 prose-code:rounded prose-code:bg-muted prose-code:px-1 prose-code:py-0.5 prose-code:text-xs prose-pre:my-2",at={code({className:a,children:b,...c}){let e=/language-([\w-]+)/.exec(a||""),f=String(b).replace(/\n$/,"");return e&&"html-preview"===e[1]?(0,d.jsx)(ar,{html:f}):e?(0,d.jsx)(aa,{code:f,language:e[1],variant:"dark",customStyle:{fontFamily:'"JetBrains Mono", monospace'}}):(0,d.jsx)("code",{className:a,...c,children:b})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a})};function au({text:a}){return(0,d.jsx)("div",{className:as,children:(0,d.jsx)(am.oz,{remarkPlugins:[an.A],components:at,children:a})})}let av=new Set(["Task","Skill","TodoWrite"]);function aw(a){return av.has(a.name)}function ax(a){try{let b=JSON.parse(a);return{code:JSON.stringify(b,null,2),language:"json"}}catch{return{code:a,language:"text"}}}let ay={borderRadius:"0.25rem",padding:"0.375rem",fontFamily:'"JetBrains Mono", monospace',maxHeight:"8rem",overflow:"auto"};function az({block:a,isStreaming:b,subtle:c=!1}){return(0,d.jsx)(ag,{toolCall:a,isStreaming:b,subtle:c})}function aA({calls:a,isStreaming:b}){let[c,e]=(0,f.useState)(!1),g=function(a){let b=new Map;for(let c of a)b.set(c.name,(b.get(c.name)||0)+1);let c=Array.from(b.entries()).map(([a,b])=>b>1?`${a} x${b}`:a),d=c.slice(0,4),e=c.length-d.length,f=e>0?` \u00b7 +${e}`:"",g=`Used ${a.length} tool${1===a.length?"":"s"}`;return d.length>0?`${g} \u00b7 ${d.join(" \xb7 ")}${f}`:g}(a);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>e(a=>!a),className:"flex w-full items-center gap-1 text-left text-xs text-muted-foreground transition-colors hover:text-foreground",children:[(0,d.jsx)(n.A,{className:(0,i.cn)("size-3 shrink-0 transition-transform",c&&"rotate-90")}),(0,d.jsx)("span",{className:"truncate",children:g})]}),c&&(0,d.jsx)("div",{className:"mt-1 flex flex-col gap-0.5 pl-4",children:a.map((c,e)=>(0,d.jsx)(az,{block:c,subtle:!0,isStreaming:b&&e===a.length-1},`${c.name}-${e}`))})]})}function aB({block:a,isStreaming:b}){let[c,e]=(0,f.useState)(!1),g=ac(a.input),h="Skill"===a.name,j=h?Y.A:W.A,k=h?g?.skill||"Using skill":g?.description||g?.subagent_type||"Running sous chef",l=h?void 0:g?.subagent_type,m=!!a.output,o=!m&&!!b;return(0,d.jsxs)("div",{className:"rounded-md border border-orange-200/70 bg-orange-50/40 px-2.5 py-1.5",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>e(a=>!a),className:"flex w-full items-center gap-2 text-left",children:[(0,d.jsx)(j,{className:"size-3.5 shrink-0 text-orange-600"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"truncate text-xs font-medium text-orange-900",children:[h?"Skill":"Sous chef",": ",k]}),l&&(0,d.jsx)("p",{className:"truncate text-[11px] text-orange-700/90",children:l})]}),o?(0,d.jsx)(r.A,{className:"size-3.5 shrink-0 animate-spin text-orange-600"}):m?(0,d.jsx)(_.A,{className:"size-3.5 shrink-0 text-orange-600"}):null,(0,d.jsx)(n.A,{className:(0,i.cn)("size-3 shrink-0 text-orange-700 transition-transform",c&&"rotate-90")})]}),c&&(0,d.jsxs)("div",{className:"mt-1.5 space-y-1.5 border-t border-orange-200/80 pt-1.5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-orange-700",children:"Input"}),(()=>{let{code:b,language:c}=ax(a.input);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...ay,marginTop:"0.25rem"}})})()]}),a.output&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-[11px] font-medium text-orange-700",children:"Output"}),(()=>{let{code:b,language:c}=ax(a.output);return(0,d.jsx)(aa,{code:b,language:c,variant:"dark",wrapLongLines:!0,customStyle:{...ay,marginTop:"0.25rem"}})})()]}),o&&!a.output&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5 py-1 text-[11px] text-orange-600",children:[(0,d.jsx)(r.A,{className:"size-3 animate-spin"}),(0,d.jsx)("span",{children:"Running..."})]})]})]})}function aC({block:a}){let b=ac(a.input),c=Array.isArray(b?.todos)?b.todos:[];return 0===c.length?(0,d.jsx)(az,{block:a,subtle:!0}):(0,d.jsxs)("div",{className:"py-0.5",children:[(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"Todo list"}),(0,d.jsx)("ul",{className:"mt-1 space-y-0.5 text-xs",children:c.map((a,b)=>{let c="completed"===a.status,e="in_progress"===a.status&&a.activeForm?a.activeForm:a.content||"";return(0,d.jsx)("li",{className:(0,i.cn)("leading-relaxed text-foreground",c&&"line-through"),children:e},`${a.content||"todo"}-${b}`)})})]})}function aD({block:a}){return(0,d.jsx)("div",{className:"max-w-[90%] rounded-lg border border-red-200 bg-red-50 px-3.5 py-3 text-sm",children:(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)("span",{className:"mt-0.5 shrink-0 text-base leading-none","aria-hidden":!0,children:"⚠️"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-red-900",children:"Something went wrong"}),(0,d.jsx)("p",{className:"mt-0.5 text-red-700",children:a.message}),a.details&&(0,d.jsxs)("details",{className:"mt-2",children:[(0,d.jsx)("summary",{className:"cursor-pointer text-xs text-muted-foreground",children:"Technical details"}),(0,d.jsx)("pre",{className:"mt-1.5 whitespace-pre-wrap break-all rounded bg-white p-2 text-xs text-muted-foreground",children:a.details})]})]})]})})}function aE({images:a,slug:b,repoId:c}){let[e,g]=(0,f.useState)(null),h=a=>(0,u.wy)(c,b,a);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex gap-1.5 flex-wrap mt-1",children:a.map(a=>(0,d.jsx)("button",{onClick:()=>g(a),className:"size-16 shrink-0 cursor-pointer overflow-hidden rounded border hover:ring-2 hover:ring-ring",children:(0,d.jsx)("img",{src:h(a),alt:a,className:"size-full object-cover"})},a))}),(0,d.jsx)(aq.lG,{open:!!e,onOpenChange:a=>!a&&g(null),children:(0,d.jsxs)(aq.Cf,{className:"max-w-3xl p-2",showCloseButton:!1,children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"Image preview"}),e&&(0,d.jsx)("img",{src:h(e),alt:e,className:"w-full rounded object-contain max-h-[80vh]"})]})})]})}let aF=["Tasting","Simmering","Reducing","Prepping","Seasoning","Plating"],aG=["Counting clean forks","Looking for the missing whisk","Trying not to burn garlic","Keeping the pass in order"];function aH(){let[a,b]=(0,f.useState)(()=>(function(a){let b,c=.25>Math.random()?aG:aF;do b=c[Math.floor(Math.random()*c.length)];while(c.length>1&&void 0===b);return b})());return(0,d.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,d.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-orange-500 motion-safe:animate-pulse-dot motion-reduce:opacity-70",role:"status","aria-label":"Thinking"}),(0,d.jsxs)("span",{className:"text-sm italic text-orange-600",children:[a,"..."]})]})}function aI({message:a,showThinking:b,slug:c,repoId:e,onQuestionAnswer:f,isQuestionAnswered:g}){let h="assistant"===a.role?a.blocks:void 0;if("system"===a.role)return(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 italic",children:a.content})});if("user"===a.role){let b=a.images?.length?a.images:Array.from(a.content.matchAll(/\[Attached image: ([^\]]+)\]/g),a=>a[1]),f=a.images?.length?a.content:a.content.replace(/\[Attached image: [^\]]+\]\n*/g,"").trim();return(0,d.jsx)("div",{className:"flex flex-col items-end",children:(0,d.jsxs)("div",{className:"max-w-[90%] rounded-lg bg-primary/15 px-3 py-2 text-sm text-foreground",children:[b.length>0&&(0,d.jsx)(aE,{images:b,slug:c,repoId:e}),f&&(0,d.jsx)("p",{className:"whitespace-pre-wrap",children:f})]})})}if(h&&h.length>0){let a=h.reduce((a,b,c)=>"tool_call"===b.type?c:a,-1),c=h.reduce((a,b,c)=>"tool_call"===b.type&&"TodoWrite"===b.name?c:a,-1),e=[];for(let i=0;i<h.length;i++){let j=h[i];if("text"===j.type){if(!j.text.trim())continue;e.push((0,d.jsx)(au,{text:j.text},`text-${i}`));continue}if("error"===j.type){e.push((0,d.jsx)(aD,{block:j},`error-${i}`));continue}if("ask_question"===j.type){e.push((0,d.jsx)(aj,{questions:j.questions,onAnswer:f,isAnswered:g},`question-${i}`));continue}if("plan_approval"===j.type){e.push((0,d.jsx)(al,{onAnswer:f,isAnswered:g},`plan-${i}`));continue}if("tool_call"!==j.type)continue;if("TodoWrite"===j.name){if(i!==c)continue;e.push((0,d.jsx)(aC,{block:j},`todo-${i}`));continue}let k=i===a;if("Task"===j.name||"Skill"===j.name){e.push((0,d.jsx)(aB,{block:j,isStreaming:k&&b},`agent-${i}`));continue}if(!aw(j)){let c=i,f=[j];for(;i+1<h.length;){let a=h[i+1];if("tool_call"!==a.type||aw(a))break;f.push(a),i+=1}let g=a>=c&&a<=i;e.push((0,d.jsx)(aA,{calls:f,isStreaming:g&&b},`tools-${c}`))}}return(0,d.jsxs)("div",{className:"flex flex-col gap-2 text-sm",children:[e,b&&(0,d.jsx)(aH,{})]})}let i=a.content||"",j=!!i.trim(),k=a.toolCalls&&a.toolCalls.length>0;return j||k?(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[j&&(0,d.jsx)("div",{className:"max-w-[90%] rounded-lg bg-muted px-3 py-2 text-sm text-foreground",children:(0,d.jsx)("div",{className:as,children:(0,d.jsx)(am.oz,{remarkPlugins:[an.A],components:at,children:i})})}),k&&(0,d.jsx)("div",{className:"flex max-w-[90%] flex-col gap-1",children:a.toolCalls.map((a,b)=>(0,d.jsx)(ag,{toolCall:a,subtle:!0},b))})]}):b?(0,d.jsx)(aH,{}):null}var aJ=c(37636),aK=c(48371);let aL={warning:{border:"border-amber-200",bg:"bg-amber-50/70",dot:"bg-amber-500",text:"text-amber-800"},success:{border:"border-emerald-200",bg:"bg-emerald-50/70",dot:"bg-emerald-500",text:"text-emerald-700"},muted:{border:"border-border",bg:"bg-muted/50",dot:"bg-muted-foreground",text:"text-muted-foreground"}};function aM({variant:a,dot:b,centered:c,children:e,actions:f,className:g}){let h=aL[a];return(0,d.jsxs)("div",{className:(0,i.cn)("flex items-center gap-3 rounded-lg border px-4 py-2.5 text-xs",h.border,h.bg,c&&"justify-center",g),children:[b&&(0,d.jsx)("span",{className:(0,i.cn)("size-1.5 shrink-0 rounded-full",h.dot,"warning"===a&&"animate-pulse")}),(0,d.jsx)("div",{className:(0,i.cn)("min-w-0",!c&&"flex-1",h.text),children:e}),f&&(0,d.jsx)("div",{className:"ml-auto flex shrink-0 items-center gap-1.5",children:f})]})}var aN=c(55296),aO=c(104),aP=c(56585),aQ=c(53925),aR=c(38939),aS=c(10849);let aT=new Set(["image/png","image/jpeg","image/gif","image/webp"]);function aU({onSend:a,onStop:b,isStreaming:c,slug:e,repoId:g,onModelChange:h,selectedModel:j,leftToolbar:k}){let[m,n]=(0,f.useState)(""),[o,p]=(0,f.useState)([]),[q,r]=(0,f.useState)(!1),[s,t]=(0,f.useState)(null),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)(null),z=(0,f.useRef)(null),[A,B]=(0,f.useState)(N.xj),[C,D]=(0,f.useState)(j||N.xj),E=(0,f.useMemo)(()=>(0,u.jx)(g,e),[g,e]);(0,f.useRef)(h);let F=(0,f.useCallback)(a=>{t(null);let b=Array.from(a);for(let a of b){if(!aT.has(a.type))return void t("Only images are supported (PNG, JPEG, GIF, WebP).");if(a.size>5242880)return void t("Images must be under 5 MB.")}p(a=>{let c=[...a,...b.map(a=>({file:a,previewUrl:URL.createObjectURL(a)}))];return c.length>5?(t("Maximum 5 images per message."),a):c})},[]),G=(0,f.useCallback)(a=>{p(b=>(URL.revokeObjectURL(b[a].previewUrl),b.filter((b,c)=>c!==a))),t(null)},[]),H=(0,f.useCallback)(a=>{let b=Array.from(a.clipboardData.files).filter(a=>aT.has(a.type));b.length>0&&(a.preventDefault(),F(b))},[F]),I=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!0)},[]),J=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!1)},[]),K=(0,f.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),w(!1),a.dataTransfer.files.length>0&&F(a.dataTransfer.files)},[F]),L=(0,f.useCallback)(async()=>{let b=m.trim();if((b||0!==o.length)&&!c)if(o.length>0){r(!0),t(null);try{let c=[];for(let a of o){let b=new FormData;b.append("file",a.file);let d=await fetch(`${E}/images`,{method:"POST",body:b});if(!d.ok){let a=await d.json();t(a.error||"Upload failed — try again.");return}let e=await d.json();c.push(e.filename)}o.forEach(a=>URL.revokeObjectURL(a.previewUrl)),p([]),n(""),a(b,c,C)}catch{t("Upload failed — try again.")}finally{r(!1)}}else a(b,void 0,C),n("")},[m,o,c,E,a,C]),M=(0,f.useCallback)(a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),L())},[L]),O=(0,f.useCallback)(a=>{let b=(0,N.Ou)(a);B(b),j||D(b)},[j]);return(0,d.jsxs)("div",{className:(0,i.cn)("py-5",v&&"ring-2 ring-primary ring-inset rounded-md"),onDragOver:I,onDragLeave:J,onDrop:K,children:[o.length>0&&(0,d.jsx)("div",{className:"flex gap-2 px-1 pb-2 flex-wrap",children:o.map((a,b)=>(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("button",{onClick:()=>y(b),className:"size-14 shrink-0 cursor-pointer overflow-hidden rounded border hover:ring-2 hover:ring-ring",children:(0,d.jsx)("img",{src:a.previewUrl,alt:a.file.name,className:"size-full object-cover"})}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),G(b)},className:"absolute -top-1.5 -right-1.5 flex size-5 items-center justify-center rounded-full bg-destructive text-destructive-foreground text-xs cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",children:(0,d.jsx)(aO.A,{className:"size-3"})})]},b))}),(0,d.jsx)(aq.lG,{open:null!==x,onOpenChange:a=>!a&&y(null),children:(0,d.jsxs)(aq.Cf,{className:"max-w-3xl p-2",children:[(0,d.jsx)(aq.L3,{className:"sr-only",children:"Image preview"}),null!==x&&o[x]&&(0,d.jsx)("img",{src:o[x].previewUrl,alt:o[x].file.name,className:"w-full rounded object-contain max-h-[80vh]"})]})}),s&&(0,d.jsx)("div",{className:"px-1 pb-2 text-xs text-destructive",children:s}),(0,d.jsxs)("div",{className:"rounded-xl border bg-white shadow-[0_10px_22px_-20px_rgba(15,23,42,0.3)] transition-shadow focus-within:shadow-[0_12px_26px_-18px_rgba(15,23,42,0.34)] focus-within:ring-2 focus-within:ring-ring",children:[(0,d.jsx)("input",{ref:z,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&F(a.target.files),a.target.value=""}}),(0,d.jsx)("textarea",{className:"w-full resize-none bg-transparent px-6 pt-4 pb-5 text-sm outline-none placeholder:text-muted-foreground",rows:2,placeholder:"Write a message... (Cmd+Enter to send)",value:m,onChange:a=>n(a.target.value),onKeyDown:M,onPaste:H,disabled:c}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3",children:[(0,d.jsx)(aN.Y6,{label:"Attach image",children:(0,d.jsx)(l.$,{variant:"ghost",size:"icon",onClick:()=>z.current?.click(),disabled:c||q,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aP.A,{className:"size-4"})})}),k,(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(aS.B,{value:C,onChange:D,disabled:c,defaultModel:A,onDefaultModelChange:O}),c?(0,d.jsx)(l.$,{variant:"outline",size:"icon",onClick:b,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aQ.A,{className:"size-4"})}):(0,d.jsx)(l.$,{size:"icon",onClick:L,disabled:!m.trim()&&0===o.length||q,className:"shrink-0 cursor-pointer",children:(0,d.jsx)(aR.A,{className:"size-4"})})]})]})]})}function aV(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.startsWith("pending-")?null:b}function aW(a){return(a||"").replace(/\[Attached image: [^\]]+\]\n*/g,"").trim()}function aX(a){if(!a)return null;let b=a.match(/-(\d{10,})$/);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)?c:null}function aY({taskSlug:a,taskTitle:b,repoId:c,status:g,onTaskUpdated:h,autoStartContext:i,autoStartModel:j,autoStartImages:k,autoImproveTitle:m=!1,prefetchedActiveChat:n}){let o=(0,e.useParams)(),p=(0,u.NK)(o),q=c||p;(0,f.useMemo)(()=>(0,u.Yg)(q),[q]),(0,f.useMemo)(()=>(0,u.jx)(q,a),[q,a]);let[r,s]=(0,f.useState)(null),[t,v]=(0,f.useState)(void 0),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(null),[P,Q]=(0,f.useState)(!1),{messages:R,isStreaming:S,wasDisconnected:T,sendMessage:U,stopAgent:V,clearSessionId:W,injectSystemMessage:X,reloadFromServer:Y,hydrateFromSnapshot:Z,sessionId:$,sessionIdRef:_,awaitingInputFromQuestion:aa}=function(a,b="chat-main",c,d){let g=(0,e.useParams)(),h=(0,u.NK)(g),i=d||h,j=(0,f.useMemo)(()=>(0,u.Yg)(i),[i]),k=(0,f.useMemo)(()=>a?(0,u.jx)(i,a):null,[i,a]),[l,m]=(0,f.useState)([]),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(!1),t=(0,f.useRef)(null),[v,w]=(0,f.useState)(null),x=(0,f.useRef)(null);(0,f.useRef)(!1),(0,f.useRef)(b);let y=(0,f.useRef)([]);y.current=l;let z=(0,f.useRef)(null),A=(0,f.useRef)(!1),B=(0,f.useRef)(!1),H=(0,f.useCallback)(a=>{let b=K(a);t.current=b,w(b)},[]),M=(0,f.useCallback)(a=>{m(b=>J(b,a.messages)?a.messages:b),H(a.sessionId)},[H]);(0,f.useCallback)(a=>({messages:a.messages.filter(a=>"assistant"!==a.role||(a.content||"").trim().length>0||a.blocks&&a.blocks.length>0||a.toolCalls&&a.toolCalls.length>0),sessionId:K(a.sessionId)}),[]);let N=(0,f.useCallback)(()=>{if(!a)return;let c=y.current,d=t.current;if(A.current){B.current=!0;return}A.current=!0,(0,C.yd)(a,b,c,d,i).finally(()=>{A.current=!1,B.current&&(B.current=!1,N())})},[a,b,i]),O=(0,f.useCallback)(()=>{a&&(0,C.Hg)(a,b,i).then(a=>{!a||(m(b=>J(b,a.messages)?a.messages:b),a.sessionId&&H(a.sessionId))})},[a,b,H,i]),P=(0,f.useCallback)(async(c,d)=>{let{images:e,model:f}=d||{};if(!a)return;s(!1),q(!1);let g={id:`user-${Date.now()}`,role:"user",content:c,images:e?.length?e:void 0},h=c;if(e&&e.length>0){let a=e.map(a=>`[Attached image: ${a}]`).join("\n");h=`${a}
|
|
23
23
|
|
|
24
24
|
${c}`}y.current=[...y.current,g],m(y.current);let i=`assistant-${Date.now()}`;y.current=[...y.current,{id:i,role:"assistant",content:"",blocks:[]}],m(y.current),x.current?.abort(),x.current=new AbortController;try{k&&await fetch(`${k}/status`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"running"})})}catch{}o(!0),N();let l=!1,n=!1;try{let c=K(t.current);c!==t.current&&H(c);let d=!1;for(;;){console.log("[BG-AGENT] sendMessage:",c?`resuming session ${c}`:"starting new session");let e=await fetch(`${j}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:h,sessionId:c,taskSlug:a,storageId:b,model:f}),signal:x.current.signal});if(!e.ok){let a="Chat request failed";try{let b=await e.json();b?.code==="RUN_ALREADY_ACTIVE"?a=b.error||"A run is already active for this task. Stop it before starting another.":"string"==typeof b?.error&&b.error.trim().length>0&&(a=b.error.trim())}catch{}throw Error(a)}if(!e.body)throw Error("Chat request failed");let g=e.body.getReader(),k=new TextDecoder,o="",p=!1,r=null,t=null,u=!1,v=!1,w=function(a={}){let b=[],c=new Set,d=!1,e=!1,f=!1;return{getBlocks:()=>b,getContentText:()=>b.filter(a=>"text"===a.type).map(a=>a.text).join("\n\n"),hasInputRequestBlock:()=>f,processEvent:g=>{"assistant"===g.type&&g.message?function(g){if(G(g)&&Array.isArray(g.content))for(let h of g.content){if(!G(h)||e)continue;let g="string"==typeof h.type?h.type:"";if("text"===g){let a="string"==typeof h.text?h.text:"";if(!a)continue;if(function(a){return/api error:\s*\d{3}/i.test(a)||E.some(b=>b.test(a))}(a)){!function(a){let c=F(a),d=b[b.length-1];d&&"error"===d.type&&d.message===c.message&&d.details===c.details||b.push({type:"error",message:c.message,details:c.details})}(a),d=!1;continue}let c=b[b.length-1];d||!c||"text"!==c.type?b.push({type:"text",text:a}):c.text=a,d=!1;continue}if("tool_use"===g){let d="string"==typeof h.id?h.id:void 0;if(d&&c.has(d))continue;d&&c.add(d);let g=function(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return a}}(h.input),i="string"==typeof h.name&&h.name.trim().length>0?h.name:"tool",j="AskUserQuestion"===i?function(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{return null}if(!D(b)||!Array.isArray(b.questions))return null;let c=b.questions.map(a=>(function(a){if(!D(a))return null;let b="string"==typeof a.question?a.question.trim():"";if(!b)return null;let c=(Array.isArray(a.options)?a.options:[]).map(a=>(function(a){if(!D(a))return null;let b="string"==typeof a.label?a.label.trim():"";return b?{label:b,description:"string"==typeof a.description&&a.description.trim().length>0?a.description.trim():void 0}:null})(a)).filter(a=>null!==a);return{question:b,header:"string"==typeof a.header&&a.header.trim().length>0?a.header.trim():void 0,options:c,multiSelect:!0===a.multiSelect}})(a)).filter(a=>null!==a);return c.length>0?c:null}(g):null;if(j){b.push({type:"ask_question",questions:j}),f=!0,e=!0,a.onFirstQuestion?.();continue}if("ExitPlanMode"===i){let a=G(g)&&Array.isArray(g.allowedPrompts)?g.allowedPrompts:void 0;b.push({type:"plan_approval",allowedPrompts:a}),f=!0;continue}let k="string"==typeof h.input?h.input:JSON.stringify(h.input||{},null,2);b.push({type:"tool_call",name:i,input:k})}}}(g.message):"user"===g.type&&g.message?function(a){if(G(a)&&Array.isArray(a.content))for(let c of a.content){if(!G(c)||"tool_result"!==c.type)continue;let a="string"==typeof c.content?c.content:JSON.stringify(c.content||"",null,2);for(let c=b.length-1;c>=0;c--){let d=b[c];if("tool_call"===d.type&&!d.output){d.output=a.slice(0,500);break}}d=!0}}(g.message):"error"===g.type&&function(a){if(!("message"in a))return;let c="string"==typeof a.message?a.message:"Provider execution error",e="string"==typeof a.details?a.details:void 0,f=F(e??c);b.push({type:"error",message:e?c:f.message,details:e??f.details}),d=!1}(g)},resetForNewAssistantTurn:()=>{b.length=0,c.clear(),d=!1,e=!1,f=!1}}}({onFirstQuestion:()=>{if(p)return;p=!0,q(!0);let a=w.getContentText(),b=[...w.getBlocks()];z.current={id:i,content:a,blocks:b},m(c=>{let d=c.map(c=>c.id===i?{...c,content:a,blocks:b}:c);return y.current=d,d}),N(),x.current?.abort()}}),A=Date.now();for(;;){let{done:a,value:b}=await g.read();if(a)break;let d=(o+=k.decode(b,{stream:!0})).split("\n");for(let a of(o=d.pop()||"",d)){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if("[DONE]"===b){u=!0;continue}try{let a=JSON.parse(b);v=!0,"system"===a.type&&a.session_id&&(H(a.session_id),N()),"result"===a.type&&a.session_id&&H(a.session_id),"result"===a.type&&!0===a.is_error&&(r=r||function(a){if("result"!==a.type||!0!==a.is_error)return null;let b=L(a);return b.length>0?b[0]:null}(a),t=t||function(a,b){if(!b||"result"!==a.type||!0!==a.is_error)return null;for(let c of L(a)){if(!/No conversation found with session ID:/i.test(c))continue;let a=c.match(/No conversation found with session ID:\s*([A-Za-z0-9-]+)/i);if(!a||a[1]===b)return c}return null}(a,c)),("assistant"===a.type||"user"===a.type||"error"===a.type)&&w.processEvent(a);let d=w.getContentText(),e=[...w.getBlocks()];z.current={id:i,content:d,blocks:e},m(a=>a.map(a=>a.id===i?{...a,content:d,blocks:e}:a))}catch{}}let e=Date.now();e-A>=3e3&&(A=e,N())}if(z.current=null,l=u,n=v,t&&c&&!d){d=!0,c=null,H(null),m(a=>{let b=a.map(a=>a.id===i?{...a,content:"",blocks:[]}:a);return y.current=b,b}),N();continue}if(r){let a=F(r);m(b=>{let c=b.map(b=>{if(b.id!==i)return b;let c=b.blocks||[],d=c.some(b=>"error"===b.type&&b.message===a.message&&b.details===a.details);return{...b,content:(b.content||"").trim().length>0?b.content:a.message,blocks:d?c:[...c,{type:"error",message:a.message,details:a.details}]}});return y.current=c,N(),c})}!u&&v&&s(!0),N();break}}catch(a){"AbortError"===a.name?N():(n&&!l&&s(!0),m(b=>{let c=F(a.message||"Chat request failed"),d={type:"error",message:c.message,details:c.details},e=b.map(a=>a.id===i?{...a,content:a.content||c.message,blocks:[...a.blocks||[],d]}:a);return y.current=e,N(),e}))}finally{z.current=null,o(!1),x.current=null}},[a,b,H,N,k,j]),Q=(0,f.useCallback)(()=>{x.current?.abort()},[]),R=(0,f.useCallback)(async()=>{if(!a)return;x.current?.abort();let c=t.current;if(!c)try{let d=await fetch(`${j}/chat/session?taskSlug=${encodeURIComponent(a)}&storageId=${encodeURIComponent(b)}`);if(d.ok){let a=await d.json();a.sessionId&&(c=a.sessionId)}}catch{}try{await fetch(`${j}/chat/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:c,taskSlug:a,storageId:b})})}catch{k&&await fetch(`${k}/status`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"idle"})}).catch(()=>{})}o(!1),q(!1)},[a,b,j,k]),S=(0,f.useCallback)(()=>{t.current=null,w(null),q(!1),a&&(0,C.yd)(a,b,y.current,null,i)},[a,b,i]),T=(0,f.useCallback)(a=>{let b={id:`system-${Date.now()}`,role:"system",content:a};y.current=[...y.current,b],m(y.current),N()},[N]);return{messages:l,isStreaming:n,wasDisconnected:r,sendMessage:P,stopStreaming:Q,stopAgent:R,clearChat:(0,f.useCallback)(()=>{if(x.current?.abort(),x.current=null,o(!1),q(!1),m([]),y.current=[],H(null),a){(0,C._e)(a,b,i);let c=`kanban-init-sent-${a}-${b}`;try{sessionStorage.removeItem(c)}catch{}I.delete(c),fetch(`${j}/chat/session?taskSlug=${encodeURIComponent(a)}&storageId=${encodeURIComponent(b)}`,{method:"DELETE"}).catch(()=>{})}},[a,b,H,j,i]),clearSessionId:S,injectSystemMessage:T,reloadFromServer:O,hydrateFromSnapshot:M,sessionId:v,sessionIdRef:t,awaitingInputFromQuestion:p}}(a,"chat-main",0,q),{addSession:ab,removeSession:ac,getSession:ad}=(0,M.a)(),ae=(0,f.useRef)(null),af=(0,f.useRef)(null),[ag,ah]=(0,f.useState)(!0),[ai,aj]=(0,f.useState)(!1),ak=(0,f.useRef)(h);ak.current=h,(0,f.useRef)(null),(0,f.useRef)(null);let al=(0,f.useRef)(null);(0,f.useRef)(!1);let am=S||"running"===g&&!("needs_tasting"===g||ai||aa),an=t||N.xj,ao=(0,f.useMemo)(()=>(0,N.xq)(an).provider,[an]),ap=w?.providers?.[ao],aq=!ap||ap.connected;(0,f.useMemo)(()=>(0,O.p)(b),[b]);let ar=(0,f.useCallback)(async()=>{z(!0);try{let a=await (0,C.qq)();return a&&x(a),a}finally{z(!1)}},[]),as=(0,f.useCallback)(async a=>{let b=(0,N.xq)(a).provider,c=w?.providers?.[b],d=w?.checkedAt?Date.parse(w.checkedAt):0,e=d>0&&Date.now()-d<15e3;if(c&&e)return c.connected;let f=await ar(),g=f?.providers?.[b];return!g||g.connected},[w,ar]);(0,f.useCallback)(async(a,b,c)=>{let d=aV(b),e={messages:[...R],sessionId:aV(_.current)},f=e.sessionId!==d,g=new Set(e.messages.map(a=>a.id)),h=[],i=new Map;for(let b of a){if(g.has(b.id)){let a=e.messages.findIndex(a=>a.id===b.id);-1!==a&&(0,H.B)(e.messages[a],b)&&i.set(a,b);continue}!function(a,b){if("user"!==b.role)return!1;let c=aW(b.content);if(!c)return!1;let d=aX(b.id);for(let b=a.length-1;b>=0;b--){let e=a[b];if("user"!==e.role||aW(e.content)!==c)continue;let f=aX(e.id);if(null!==d&&null!==f)return 1e4>=Math.abs(d-f);return!0}return!1}(e.messages,b)&&h.push(b)}if(i.size>0){for(let[a,b]of i)e.messages[a]=b;f=!0}if(h.length>0&&(e.messages=[...e.messages,...h],f=!0),c){let a=e.messages.findIndex(a=>a.id===c.id);-1!==a?(0,H.B)(e.messages[a],c)&&(e.messages[a]=c,f=!0):(e.messages.push(c),f=!0)}f&&Z({messages:e.messages,sessionId:d})},[R,_,Z]),(0,f.useRef)(S).current=S,(0,f.useRef)(ab).current=ab,(0,f.useRef)(!1),(0,f.useRef)(!1),(0,f.useRef)(!1);let at=(()=>{if(S||am)return!1;if(T)return!0;let a=[...R].reverse().find(a=>"system"===a.role);if(a?.content?.includes("Session restarted")){let b=R.indexOf(a);return!R.slice(b+1).some(a=>"user"===a.role)}return!1})(),au=(0,f.useCallback)(async(a,b,c)=>{let d=c||t||N.xj;await as(d)?(B(null),aj(!1),al.current||(al.current=d),U(a,{images:b,model:d})):B({id:`queued-${Date.now()}`,message:a,images:b,model:d})},[t,as,U]),av=(0,f.useCallback)(()=>{A&&(B(null),au(A.message,A.images,A.model))},[A,au]),aw=(0,f.useCallback)(a=>{t!==a&&v(a)},[t]),ax=(0,f.useCallback)(async()=>{let a=t||N.xj;await as(a)?(W(),aj(!1),U("Continue where you left off",{model:a})):B({id:`queued-${Date.now()}`,message:"Continue where you left off",model:a})},[t,as,W,U]),ay=(0,f.useCallback)(async()=>{await V(),$&&ac($),ak.current()},[V,$,ac]);return((0,f.useRef)(!1),n||0!==R.length||a)?(0,d.jsxs)("div",{className:"flex h-full flex-col overflow-hidden bg-white",children:[(0,d.jsx)("div",{ref:af,className:"flex-1 min-h-0 overflow-y-auto",children:(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-4xl flex-col gap-3 px-6 py-4 md:px-10 md:py-5",children:[0===R.length&&!am&&(0,d.jsx)("div",{className:"py-10 text-center text-xs text-muted-foreground",children:"Start a conversation."}),R.map((b,c)=>{let e=c+1<R.length&&"user"===R[c+1].role;return(0,d.jsx)(aI,{message:b,slug:a,repoId:q,showThinking:am&&"assistant"===b.role&&c===R.length-1,onQuestionAnswer:au,isQuestionAnswered:"assistant"===b.role&&e&&!!b.blocks?.some(a=>"ask_question"===a.type||"plan_approval"===a.type)},b.id)}),am&&(0===R.length||R[R.length-1]?.role!=="assistant")&&(0,d.jsx)(aI,{message:{id:"__tail-thinking__",role:"assistant",content:""},slug:a,repoId:q,showThinking:!0}),(0,d.jsx)("div",{ref:ae})]})}),(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-4xl flex-col gap-2 px-6 pt-2 pb-4 md:px-10 md:pb-6",children:[ap&&!ap.connected&&(0,d.jsxs)(aM,{variant:"warning",dot:!0,actions:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:async()=>{try{await navigator.clipboard.writeText(ap.reauthCommand),Q(!0),window.setTimeout(()=>Q(!1),1500)}catch{Q(!1)}},className:"rounded-full border border-amber-200 bg-white px-3 py-1 text-xs font-medium text-amber-700 cursor-pointer hover:bg-amber-100 transition-colors",children:P?"Copied":"Reconnect"}),(0,d.jsx)("button",{onClick:()=>{ar()},disabled:y,className:"rounded-full border border-amber-200 bg-white px-3 py-1 text-xs font-medium text-amber-700 cursor-pointer hover:bg-amber-100 transition-colors disabled:opacity-60 disabled:cursor-default",children:y?"Checking...":"Check again"})]}),children:[(0,d.jsxs)("p",{children:["expired"===ap.reason?`${N.OW[ao]} authentication expired.`:`${N.OW[ao]} is disconnected.`," ","Run this command in your terminal:"]}),(0,d.jsx)("code",{className:"mt-1 inline-block rounded bg-amber-100 px-1 py-0.5 text-[11px]",children:ap.reauthCommand}),A&&(0,d.jsx)("p",{className:"mt-1 text-[11px] text-amber-700",children:"Your last message is queued."})]}),A&&aq&&(0,d.jsx)(aM,{variant:"success",dot:!0,actions:(0,d.jsx)("button",{onClick:av,className:"rounded-full border border-emerald-200 bg-white px-3 py-1 text-xs font-medium text-emerald-700 cursor-pointer hover:bg-emerald-100 transition-colors",children:"Retry now"}),children:"Reconnected. Retrying your queued message automatically."}),at&&(0,d.jsxs)(aM,{variant:"muted",centered:!0,children:[(0,d.jsx)("span",{children:"Conversation was interrupted"}),(0,d.jsxs)(l.$,{variant:"outline",size:"sm",onClick:ax,className:"ml-2 gap-1 h-7 px-3 text-xs cursor-pointer",children:[(0,d.jsx)(aK.A,{className:"size-3"}),"Resume"]})]}),(0,d.jsx)(aU,{onSend:au,onModelChange:aw,selectedModel:t,onStop:ay,isStreaming:am,slug:a,repoId:q})]})]}):(0,d.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,d.jsx)(aJ._,{size:"lg"})})}var aZ=c(82244),a$=c(83235),a_=c(15065),a0=c(35563),a1=c(13090),a2=c(22685),a3=c(12421),a4=c(21571);let a5={pending:null,in_progress:(0,d.jsx)(r.A,{className:"size-3.5 animate-spin text-orange-500"}),done:(0,d.jsx)(_.A,{className:"size-3.5 text-green-600"}),error:(0,d.jsx)(aO.A,{className:"size-3.5 text-red-500"}),warning:(0,d.jsx)(a3.A,{className:"size-3.5 text-amber-500"})};function a6({steps:a,onRetry:b,onCancel:c,cancelPending:e,onClose:f,isComplete:g,isError:h}){let j=!!(c||g||h);return(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 z-50 w-80 rounded-lg border bg-background shadow-lg",children:[(0,d.jsxs)("div",{className:"p-4 space-y-2",children:[0===a.length&&!g&&!h&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin"}),"Starting handoff…"]}),a.map(a=>(0,d.jsxs)("div",{className:"flex items-start gap-2 text-sm",children:[(0,d.jsx)("span",{className:"mt-0.5 shrink-0 w-4",children:a5[a.status]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("span",{className:(0,i.cn)("error"===a.status&&"text-red-600","done"===a.status&&"text-muted-foreground"),children:a.label}),a.detail&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:a.detail})]})]},a.id)),g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-green-600 pt-1",children:[(0,d.jsx)(a4.A,{className:"size-4"}),"Handed off!"]})]}),j&&(0,d.jsxs)("div",{className:"border-t px-4 py-2 flex gap-2",children:[c&&(0,d.jsx)(l.$,{size:"sm",variant:"outline",onClick:c,disabled:e,className:"flex-1 text-xs cursor-pointer",children:e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin mr-1"}),"Cancelling…"]}):"Cancel handoff"}),h&&b&&(0,d.jsx)(l.$,{size:"sm",variant:"outline",onClick:b,className:"flex-1 text-xs cursor-pointer",children:"Retry"}),(g||h)&&(0,d.jsx)(l.$,{size:"sm",variant:"ghost",onClick:f,className:"flex-1 text-xs cursor-pointer",children:"Close"})]})]})}let a7=(0,c(21654).F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function a8({className:a,variant:b,...c}){return(0,d.jsx)("div",{className:(0,i.cn)(a7({variant:b}),a),...c})}var a9=c(45963);let ba={addition:"bg-green-500/10 text-green-800",deletion:"bg-red-500/10 text-red-800",hunk:"bg-blue-500/8 text-blue-600 font-medium",context:"",meta:"text-muted-foreground"},bb={addition:"bg-green-500/15 text-green-700 border-r border-green-500/20",deletion:"bg-red-500/15 text-red-700 border-r border-red-500/20",hunk:"bg-blue-500/10 border-r border-blue-500/20",context:"bg-muted/30 text-muted-foreground border-r border-border/50",meta:"bg-muted/30 border-r border-border/50"};function bc({open:a,reviewData:b,truncated:c,totalLines:e,attempt:g,onApprove:h,onCancel:i,onResolveDifferently:j,submittingAction:k,submitError:o,onCancelHandoff:q,cancelHandoffPending:s}){let[t,u]=(0,f.useState)(!0),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)(""),[z,A]=(0,f.useState)(new Set),B=new Set(b.conflictFiles.filter(a=>"text"===a.type).map(a=>a.path)),C=new Set(b.conflictFiles.filter(a=>"binary"===a.type).map(a=>a.path)),D=!b.fullDiff||"No diff available"===b.fullDiff,E=(0,f.useMemo)(()=>D?[]:function(a,b,c){let d=a.split("\n"),e=[],f=null,g=0,h=0;for(let a of d){let d=a.match(/^diff --git a\/(.+?) b\/(.+)$/);if(d){f&&e.push(f);let a=d[2];f={filePath:a,lines:[],additions:0,deletions:0,isConflictFile:b.has(a),isBinaryConflict:c.has(a)};continue}if(!f)continue;let i=a.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)/);if(i){g=parseInt(i[1],10),h=parseInt(i[2],10),f.lines.push({content:a,type:"hunk",oldNum:null,newNum:null});continue}if(a.startsWith("index ")||a.startsWith("--- ")||a.startsWith("+++ ")||a.startsWith("old mode")||a.startsWith("new mode")||a.startsWith("new file")||a.startsWith("deleted file")||a.startsWith("similarity index")||a.startsWith("rename from")||a.startsWith("rename to")||a.startsWith("Binary files")){f.lines.push({content:a,type:"meta",oldNum:null,newNum:null});continue}if(a.startsWith("+")){f.additions++,f.lines.push({content:a.slice(1),type:"addition",oldNum:null,newNum:h++});continue}if(a.startsWith("-")){f.deletions++,f.lines.push({content:a.slice(1),type:"deletion",oldNum:g++,newNum:null});continue}f.lines.push({content:a.startsWith(" ")?a.slice(1):a,type:"context",oldNum:g++,newNum:h++})}return f&&e.push(f),e}(b.fullDiff,B,C),[b.fullDiff,D]),F=(0,f.useMemo)(()=>b.aiExplanation?function(a){let b=[],c=null,d=a.split("\n"),e=[];for(let a of d){let c=a.match(/^\|?\s*`?([^\s|`]+\.\w+)`?\s*\|\s*(.+?)\s*\|?\s*$/);if(c){let a=c[1].split("/").pop()||c[1];b.push({fileName:a,explanation:c[2].trim()});continue}let d=a.match(/^\*\*([^\s*]+\.\w+)\*\*\s*[—:\-–]\s*(.+)$/);if(d){let a=d[1].split("/").pop()||d[1];b.push({fileName:a,explanation:d[2].trim()});continue}let f=a.match(/^[-*]\s+`?([^\s`]+\.\w+)`?\s*[—:\-–]\s*(.+)$/);if(f){let a=f[1].split("/").pop()||f[1];b.push({fileName:a,explanation:f[2].trim()});continue}a.match(/^\|?\s*[-|]+\s*\|?\s*$/)||a.match(/^\|\s*File\s*\|/i)||e.push(a)}let f=e.join("\n").trim();return f&&(c=f),{fileExplanations:b,summary:c}}(b.aiExplanation):null,[b.aiExplanation]);return(0,d.jsx)(aq.lG,{open:a,onOpenChange:()=>{},children:(0,d.jsxs)(aq.Cf,{className:"sm:max-w-4xl max-h-[85vh] flex flex-col overflow-hidden",showCloseButton:!1,onPointerDownOutside:a=>a.preventDefault(),onEscapeKeyDown:a=>a.preventDefault(),children:[(0,d.jsxs)(aq.c7,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(aq.L3,{children:"Review conflict resolution"}),g&&g>1&&(0,d.jsxs)(a8,{className:"bg-blue-100 text-blue-800 border-blue-300",children:["Attempt ",g]})]}),(0,d.jsxs)(aq.rr,{children:["The AI resolved ",b.conflictFiles.length," conflict",1!==b.conflictFiles.length?"s":"",". Review the changes before merging."]})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto space-y-3",children:[F&&(0,d.jsxs)("div",{className:"rounded-lg border border-indigo-200 bg-indigo-50/50 overflow-hidden",children:[(0,d.jsxs)("button",{onClick:()=>u(!t),className:"flex items-center gap-2 w-full px-3 py-2.5 bg-indigo-100/60 cursor-pointer hover:bg-indigo-100 transition-colors",children:[(0,d.jsx)(a9.A,{className:"size-4 text-indigo-600"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-indigo-800",children:"How conflicts were resolved"}),t?(0,d.jsx)(m.A,{className:"size-4 ml-auto text-indigo-500"}):(0,d.jsx)(n.A,{className:"size-4 ml-auto text-indigo-500"})]}),t&&(0,d.jsxs)("div",{className:"px-3 py-3 space-y-2",children:[F.fileExplanations.map((a,b)=>(0,d.jsxs)("div",{className:"flex gap-2.5 p-2.5 rounded-md bg-white border border-border/50",children:[(0,d.jsx)(Z.A,{className:"size-4 text-amber-500 mt-0.5 shrink-0"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"text-xs font-semibold text-foreground",children:(0,d.jsx)("code",{className:"bg-muted px-1 py-0.5 rounded text-[11px]",children:a.fileName})}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:a.explanation})]})]},b)),0===F.fileExplanations.length&&b.aiExplanation&&(0,d.jsx)("div",{className:"text-xs text-foreground/80 whitespace-pre-wrap leading-relaxed",children:b.aiExplanation}),F.summary&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2.5 py-2 rounded-md bg-green-50 border border-green-200 text-xs text-green-800 leading-relaxed",children:[(0,d.jsx)(p.A,{className:"size-3.5 mt-0.5 shrink-0"}),(0,d.jsx)("span",{children:F.summary})]})]})]}),(0,d.jsx)("div",{className:"rounded-lg border",children:D?(0,d.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:"No changes detected"}):(0,d.jsxs)("div",{className:"divide-y divide-border",children:[E.map((a,b)=>{let c=z.has(b),e=a.filePath.split("/").pop()||a.filePath,f=a.filePath.includes("/")?a.filePath.slice(0,a.filePath.lastIndexOf("/")+1):"";return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{onClick:()=>{A(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:`flex items-center gap-2 px-3 py-2 cursor-pointer sticky top-0 z-10 ${a.isConflictFile?"bg-amber-50 hover:bg-amber-100/70":"bg-muted/50 hover:bg-muted/80"} transition-colors`,children:[c?(0,d.jsx)(n.A,{className:"size-3.5 text-muted-foreground shrink-0"}):(0,d.jsx)(m.A,{className:"size-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)(Z.A,{className:"size-3.5 text-muted-foreground shrink-0"}),(0,d.jsxs)("span",{className:"font-mono text-xs truncate",children:[f&&(0,d.jsx)("span",{className:"text-muted-foreground",children:f}),(0,d.jsx)("span",{className:"font-medium",children:e})]}),a.isConflictFile&&(0,d.jsx)(a8,{className:"bg-amber-100 text-amber-800 border-amber-300 text-[10px] px-1.5 py-0",children:"CONFLICT"}),a.isBinaryConflict&&(0,d.jsx)(a8,{className:"bg-red-100 text-red-800 border-red-300 text-[10px] px-1.5 py-0",children:"BINARY"}),(0,d.jsxs)("span",{className:"ml-auto flex items-center gap-1 text-xs shrink-0",children:[a.additions>0&&(0,d.jsxs)("span",{className:"text-green-600 font-medium",children:["+",a.additions]}),a.additions>0&&a.deletions>0&&(0,d.jsx)("span",{className:"text-muted-foreground",children:"\xb7"}),a.deletions>0&&(0,d.jsxs)("span",{className:"text-red-600 font-medium",children:["−",a.deletions]})]})]}),!c&&(0,d.jsx)("div",{className:"font-mono text-[11px] leading-5",children:a.lines.map((a,b)=>"meta"===a.type?null:(0,d.jsxs)("div",{className:`flex ${ba[a.type]}`,children:[(0,d.jsx)("span",{className:`w-10 shrink-0 text-right pr-2 select-none text-[10px] ${bb[a.type]}`,children:a.oldNum??""}),(0,d.jsx)("span",{className:`w-10 shrink-0 text-right pr-2 select-none text-[10px] ${bb[a.type]}`,children:a.newNum??""}),(0,d.jsx)("span",{className:"flex-1 px-2 whitespace-pre overflow-x-auto",children:"hunk"===a.type?(0,d.jsx)("span",{className:"font-medium",children:a.content}):a.content||"\xa0"})]},b))})]},b)}),c&&(0,d.jsxs)("div",{className:"px-3 py-2.5 bg-amber-50 border-t border-amber-200 text-amber-800 text-xs",children:[(0,d.jsx)(a3.A,{className:"size-3.5 inline mr-1.5 -mt-0.5"}),"Diff truncated — showing first 5,000 of"," ",e?.toLocaleString()," lines"]})]})})]}),v&&(0,d.jsxs)("div",{className:"border-t pt-3 mt-3 space-y-2 shrink-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"How should the conflicts be resolved?"}),(0,d.jsx)("textarea",{className:"w-full min-h-[80px] rounded-md border p-2 text-sm",placeholder:"Describe how you want the conflicts resolved...",value:x,onChange:a=>y(a.target.value)}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>w(!1),disabled:null!==k||s,className:"cursor-pointer",children:"Back"}),(0,d.jsx)(l.$,{size:"sm",onClick:()=>j(x),disabled:!x.trim()||null!==k||s,className:"bg-amber-600 hover:bg-amber-700 text-white cursor-pointer",children:"retry"===k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin mr-1"}),"Submitting…"]}):"Submit feedback"})]})]}),!v&&(0,d.jsxs)(aq.Es,{className:"shrink-0",children:[(0,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(l.$,{variant:"outline",onClick:()=>w(!0),disabled:null!==k||s,className:"text-amber-700 border-amber-300 hover:bg-amber-50 cursor-pointer",children:"Resolve differently ↻"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$,{variant:"outline",onClick:i,disabled:null!==k||s,className:"cursor-pointer",children:"cancel"===k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin mr-1"}),"Cancelling…"]}):"Cancel"}),(0,d.jsx)(l.$,{onClick:h,disabled:null!==k||s,className:"bg-green-600 hover:bg-green-700 text-white cursor-pointer",children:"approve"===k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin mr-1"}),"Approving…"]}):"Approve & Merge"})]})]}),(o||q)&&(0,d.jsxs)("div",{className:"flex w-full items-center justify-between gap-2 text-xs",children:[(0,d.jsx)("span",{className:o?"text-red-600":"text-muted-foreground",children:o||"Need to abort immediately? Cancel the whole handoff."}),q&&(0,d.jsx)(l.$,{variant:"ghost",size:"sm",onClick:q,disabled:null!==k||s,className:"text-xs cursor-pointer",children:s?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.A,{className:"size-3.5 animate-spin mr-1"}),"Cancelling handoff…"]}):"Cancel handoff now"})]})]})]})})}var bd=c(67605),be=c(74247),bf=c(54224);function bg(){let a,b=(0,e.useParams)(),c=(0,e.useRouter)(),h=(0,e.useSearchParams)(),j=b.slug,k=(0,u.NK)(b),o=(0,f.useMemo)(()=>(0,u.Yg)(k),[k]),p=k?`/r/${encodeURIComponent(k)}/board`:"/board",q=a=>k?`/r/${encodeURIComponent(k)}/task/${encodeURIComponent(a)}`:`/task/${encodeURIComponent(a)}`,s=(0,f.useMemo)(()=>`${o}/tasks`,[o]),t=(0,f.useMemo)(()=>`${s}/${encodeURIComponent(j)}`,[s,j]),v=h.get("context"),w=h.get("model"),x="1"===h.get("autoTitle"),y=h.get("images")?.split(",").filter(Boolean)||void 0,{task:z,loading:A,fetchTask:D}=(0,g.S)(j,k),{addToast:E}=(0,bf.d)(),[F,G]=(0,f.useState)(null),H=(0,f.useCallback)(async()=>{try{let a=await fetch(`${s}/counts`),b=await a.json();return G({slugs:b.slugs,total:b.inputNeeded}),b}catch{return null}},[s]),I=(0,f.useMemo)(()=>{if(!F||0===F.total)return null;let a=F.slugs.indexOf(j);if(-1===a)return{nextSlug:F.slugs[0],total:F.total};let b=(a+1)%F.slugs.length;return{nextSlug:F.slugs[b],total:F.total}},[F,j]),J=(0,f.useCallback)(async()=>{let a=await H();if(!a||0===a.inputNeeded)return;let b=a.slugs.indexOf(j),d=-1===b?a.slugs[0]:a.slugs[(b+1)%a.slugs.length];c.push(q(d))},[H,j,c]),[K,L]=(0,f.useState)(!1),[M,O]=(0,f.useState)(!1),[P,Q]=(0,f.useState)(void 0),[R,S]=(0,f.useState)(!1),[T,U]=(0,f.useState)(!1),[V,W]=(0,f.useState)(""),[X,Y]=(0,f.useState)(null),[Z,$]=(0,f.useState)(!1),[aa,ab]=(0,f.useState)(null),[ac,ad]=(0,f.useState)(0),[ae,af]=(0,f.useState)(0),[ag,ah]=(0,f.useState)(!1),[ai,aj]=(0,f.useState)(null),[ak,al]=(0,f.useState)(!1),am=(0,f.useRef)(null),[an,ao]=(0,f.useState)(null),[ap,aq]=(0,f.useState)(null),[ar,as]=(0,f.useState)(!1),at=!z?.branch,au=(0,f.useCallback)(async(a,b)=>{let c=await fetch(`${t}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetColumn:a,force:b})});if(c.ok){if((await c.json()).worktreeWarning){window.confirm("This task's worktree has uncommitted changes. Remove worktree anyway?")&&await au(a,!0);return}await D()}},[t,D]),av=(0,f.useCallback)(a=>{(0,C.U8)(j,a,k)},[j,k]),aw=(0,f.useCallback)(async()=>{let a=V.trim();if(!a||a===z?.title)return void U(!1);let b=await fetch(t,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a})});if(b.ok){let a=await b.json();U(!1),a.newSlug?(av(a.newSlug),c.replace(q(a.newSlug))):await D()}},[V,z?.title,t,c,D,av]),ax=(0,f.useCallback)(async a=>{(await fetch(t,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:a})})).ok&&await D()},[t,D]),ay=(0,f.useCallback)(async()=>{try{let a=await fetch(t,{method:"DELETE",signal:AbortSignal.timeout(3e4)});if(a.ok)c.push(p);else{let b=await a.json().catch(()=>null);E(b?.error??`Delete failed (${a.status})`,"error")}}catch{E("Delete request timed out — the server may be busy. Try again.","error")}},[t,j,c,p,E]),az=(0,f.useCallback)(()=>{if(!aa)return;let a=`cd "${aa}"`;navigator.clipboard.writeText(a).then(()=>{ah(!0),setTimeout(()=>ah(!1),2e3)}).catch(()=>{})},[aa]),aA=(0,f.useCallback)(()=>{am.current||(al(!0),am.current=setInterval(async()=>{try{let a=await fetch(`${t}/handoff`),b=await a.json();if("idle"===b.phase){am.current&&clearInterval(am.current),am.current=null,aj(null),al(!1),ao(null),aq(null),as(!1);return}aj(b),"completed"===b.phase?(am.current&&clearInterval(am.current),am.current=null,ao(null),aq(null),as(!1),await D(),at?(al(!1),aj(null),$(!1),ad(0),af(0)):(al(!1),c.push(p))):("error"===b.phase||"cancelled"===b.phase)&&(am.current&&clearInterval(am.current),am.current=null,ao(null),as(!1))}catch{}},1500))},[t,D,c,p,at]),aB=(0,f.useCallback)(async()=>{if(ai?.phase!=="running"&&ai?.phase!=="awaiting_review"){aj(null),ao(null),aq(null);try{let a=await fetch(`${t}/handoff`,{method:"POST"}),b=await a.json().catch(()=>({}));if(409===a.status&&b.phase&&"idle"!==b.phase){aj(b),aA();return}if(!a.ok){let a="string"==typeof b?.error?b.error:"Failed to start handoff";al(!0),aj({phase:"error",steps:[{id:"start",label:"Failed to start handoff",status:"error",detail:a}],reviewData:null,reviewTruncated:!1,reviewTotalLines:0,reviewAttempt:1,errorMessage:a,startedAt:new Date().toISOString()});return}aj(b),aA()}catch{let a="Failed to reach handoff API";al(!0),aj({phase:"error",steps:[{id:"start",label:"Failed to start handoff",status:"error",detail:a}],reviewData:null,reviewTruncated:!1,reviewTotalLines:0,reviewAttempt:1,errorMessage:a,startedAt:new Date().toISOString()})}}},[t,ai,aA]),aC=(0,f.useCallback)(async()=>{if(!ar){as(!0),aq(null);try{let a=await fetch(`${t}/handoff`,{method:"DELETE"}),b=await a.json().catch(()=>({}));if(!a.ok){let a="string"==typeof b?.error?b.error:"Failed to cancel handoff";aq(a);return}am.current&&(clearInterval(am.current),am.current=null),ao(null),al(!0),aj(a=>a?{...a,phase:"cancelled",reviewData:null}:null)}catch{aq("Failed to reach handoff cancel API")}finally{as(!1)}}},[t,ar]),aD=(0,f.useCallback)(async(a,b)=>{if(!an&&!ar){ao(a.action),aq(null);try{let c=await fetch(`${t}/handoff/review`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>({}));if(!c.ok){let a="string"==typeof d?.error?d.error:"Failed to submit review action";aq(a);try{let a=await fetch(`${t}/handoff`),b=await a.json();b.phase&&"idle"!==b.phase&&(aj(b),aA())}catch{}return}aj(a=>a?{...a,phase:b,reviewData:null}:null)}catch{aq("Failed to reach handoff review API")}finally{ao(null)}}},[t,an,ar,aA]),aE=(0,f.useCallback)(async()=>{await aD({action:"approve"},"running")},[aD]),aF=(0,f.useCallback)(async()=>{await aD({action:"cancel"},"cancelled")},[aD]),aG=(0,f.useCallback)(async a=>{await aD({action:"retry",feedback:a},"running")},[aD]),aH=(0,f.useCallback)(()=>{al(!1),aj(null),ao(null),aq(null),setTimeout(()=>aB(),0)},[aB]);if(A||!z)return(0,d.jsx)("div",{className:"flex h-screen items-center justify-center",children:(0,d.jsx)(aJ._,{size:"lg"})});let aI=N.cZ.find(a=>a.id===z.column),aK=N.G$[z.column];return(0,d.jsxs)("div",{className:"flex h-screen flex-col",children:[(0,d.jsxs)("header",{className:"relative z-10 border-b border-border bg-background",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 pt-3 pb-1",children:[(0,d.jsx)(aN.Y6,{label:"Back to board",children:(0,d.jsxs)(l.$,{variant:"outline",size:"sm",className:"gap-1.5",onClick:()=>c.push(p),children:[(0,d.jsx)(a$.A,{className:"size-4"}),"Board"]})}),(0,d.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:T?(0,d.jsx)("input",{className:"w-full min-w-0 max-w-full border-b-2 border-primary bg-transparent px-0 py-0 text-sm font-medium outline-none sm:max-w-[36rem]",value:V,onChange:a=>W(a.target.value),onBlur:aw,onKeyDown:a=>{"Enter"===a.key&&aw(),"Escape"===a.key&&U(!1)},autoFocus:!0}):(0,d.jsx)("h2",{className:"w-full min-w-0 max-w-full cursor-text truncate rounded px-0.5 text-sm font-medium transition-colors hover:bg-muted/50 sm:max-w-[36rem]",onClick:()=>{W(z.title),U(!0)},children:z.title})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[z.worktree?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-muted py-0.5 pl-2.5 pr-1 font-mono text-xs font-medium",children:[(0,d.jsx)(a_.A,{className:"size-3 text-muted-foreground"}),(0,d.jsx)("span",{className:"max-w-44 truncate",children:z.worktree.split("/").pop()||z.branch}),aa&&(0,d.jsx)(aN.Y6,{label:ag?"Copied!":"Copy cd path",children:(0,d.jsx)("button",{onClick:az,className:"ml-0.5 shrink-0 cursor-pointer rounded-full p-1 text-muted-foreground hover:bg-background hover:text-foreground",children:ag?(0,d.jsx)(_.A,{className:"size-3 text-green-600"}):(0,d.jsx)(a0.A,{className:"size-3"})})})]}):z.defaultBranch?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-muted py-0.5 px-2.5 font-mono text-xs font-medium text-muted-foreground",children:[(0,d.jsx)(a_.A,{className:"size-3"}),z.defaultBranch]}):null,(ac>0||ae>0)&&(0,d.jsx)(aN.Y6,{label:"Toggle git panel",children:(0,d.jsxs)(l.$,{variant:"ghost",size:"sm",className:(0,i.cn)("gap-2 font-mono text-xs tabular-nums border border-transparent hover:border-border",M&&"border-primary hover:border-primary"),onClick:()=>O(a=>!a),children:[ac>0&&(0,d.jsxs)("span",{className:"text-green-600",children:["+",ac]}),ae>0&&(0,d.jsxs)("span",{className:"text-red-600",children:["-",ae]})]})}),(0,d.jsxs)("div",{className:"relative",children:[X&&"MERGED"===X.state?(0,d.jsxs)(l.$,{variant:"outline",size:"sm",className:"gap-1.5",disabled:!0,children:[(0,d.jsx)(_.A,{className:"size-3.5 text-green-600"}),"Handed off"]}):X&&"CLOSED"===X.state?(0,d.jsxs)(l.$,{variant:"outline",size:"sm",className:"gap-1.5",disabled:!0,children:[(0,d.jsx)(aO.A,{className:"size-3.5 text-red-500"}),"PR Closed"]}):(0,d.jsx)(aN.Y6,{label:at?"Commit and push to main":"Commit, push, create PR, merge, and clean up",children:(0,d.jsxs)(l.$,{variant:"outline",size:"sm",className:(0,i.cn)("gap-1.5 cursor-pointer",Z?"border-green-200 bg-green-50 text-green-700 hover:bg-green-100":""),onClick:aB,disabled:!Z||ai?.phase==="running"||ai?.phase==="awaiting_review",children:[ai?.phase==="running"||ai?.phase==="awaiting_review"?(0,d.jsx)(r.A,{className:"size-3.5 animate-spin"}):(0,d.jsx)(a1.A,{className:"size-3.5"}),"Hands!"]})}),ak&&ai&&(0,d.jsx)(a6,{steps:ai.steps,onRetry:"error"===ai.phase?aH:void 0,onCancel:"running"===ai.phase||"awaiting_review"===ai.phase?aC:void 0,cancelPending:ar,onClose:()=>{al(!1),aj(null),ao(null),aq(null)},isComplete:"completed"===ai.phase,isError:"error"===ai.phase||"cancelled"===ai.phase}),ai?.phase==="awaiting_review"&&ai.reviewData&&(0,d.jsx)(bc,{open:!0,reviewData:ai.reviewData,truncated:ai.reviewTruncated,totalLines:ai.reviewTotalLines,attempt:ai.reviewAttempt,onApprove:aE,onCancel:aF,onResolveDifferently:aG,submittingAction:an,submitError:ap,onCancelHandoff:aC,cancelHandoffPending:ar})]}),K?(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(l.$,{variant:"destructive",size:"sm",onClick:ay,children:"Confirm Delete"}),(0,d.jsx)(l.$,{variant:"ghost",size:"sm",onClick:()=>L(!1),children:"Cancel"})]}):(0,d.jsx)(aN.Y6,{label:"Delete task",children:(0,d.jsx)(l.$,{variant:"ghost",size:"icon",onClick:()=>L(!0),children:(0,d.jsx)(a2.A,{className:"size-4"})})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3 pt-1",children:[(0,d.jsxs)(aZ.rI,{children:[(0,d.jsx)(aZ.ty,{asChild:!0,children:(0,d.jsxs)("button",{className:"flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium hover:bg-muted/50",children:[aK&&(0,d.jsx)(aK,{className:"size-3.5 text-muted-foreground"}),(0,d.jsx)("span",{children:aI?.title||z.column}),(0,d.jsx)(m.A,{className:"size-3 text-muted-foreground"})]})}),(0,d.jsx)(aZ.SQ,{align:"start",children:N.cZ.map(a=>{let b=N.G$[a.id];return(0,d.jsxs)(aZ._2,{onClick:()=>au(a.id),children:[b&&(0,d.jsx)(b,{className:"size-3.5 text-muted-foreground"}),a.title,a.id===z.column&&(0,d.jsx)(_.A,{className:"ml-auto size-3"})]},a.id)})})]}),(0,d.jsxs)(aZ.rI,{children:[(0,d.jsx)(aZ.ty,{asChild:!0,children:(0,d.jsxs)("button",{className:"flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium hover:bg-muted/50",children:[(0,d.jsx)(bd.w,{priority:z.priority}),(0,d.jsx)("span",{children:N.fz.find(a=>a.value===z.priority)?.label??"No priority"}),(0,d.jsx)(m.A,{className:"size-3 text-muted-foreground"})]})}),(0,d.jsx)(aZ.SQ,{align:"start",children:N.fz.map(a=>(0,d.jsxs)(aZ._2,{onClick:()=>ax(a.value),className:"cursor-pointer",children:[(0,d.jsx)(bd.w,{priority:a.value}),a.label,a.value===z.priority&&(0,d.jsx)(_.A,{className:"ml-auto size-3"})]},a.value))})]}),(a=(0,N.eE)(z.status),(0,d.jsxs)("span",{className:`inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs font-medium ${a.pillBgClass} ${a.pillTextClass}`,children:["running"===z.status?(0,d.jsx)(be.x,{size:"sm"}):(0,d.jsx)("span",{className:`size-1.5 rounded-full ${a.dotClass}`}),a.label]})),(0,d.jsx)("div",{className:"flex-1"}),I&&(0,d.jsx)(aN.Y6,{label:"Needs tasting",children:(0,d.jsxs)(l.$,{variant:"outline",size:"sm",className:"gap-1.5",onClick:J,children:[(0,d.jsx)("span",{className:(0,i.cn)("text-[11px] font-semibold px-[7px] py-px rounded-full tabular-nums",(0,N.eE)("needs_tasting").pillBgClass,(0,N.eE)("needs_tasting").pillTextClass),children:I.total}),1===I.total?"Order needs tasting":"Orders need tasting",(0,d.jsx)(n.A,{className:"size-3.5"})]})})]})]}),(0,d.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,d.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:R?(0,d.jsx)(aY,{taskSlug:j,taskTitle:z.title,repoId:k,status:z.status,onTaskUpdated:D,autoStartContext:v||void 0,autoStartModel:w||void 0,autoStartImages:y,autoImproveTitle:x,prefetchedActiveChat:P}):(0,d.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,d.jsx)(aJ._,{size:"lg"})})}),(0,d.jsxs)("div",{className:(0,i.cn)("absolute inset-y-0 right-0 z-20 flex w-[400px] max-w-[50vw] flex-col border-l border-border bg-background shadow-lg transition-transform duration-300 ease-in-out",M?"translate-x-0":"translate-x-full"),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)(a_.A,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:z.branch??"main"}),z.worktree&&(0,d.jsx)("span",{className:"shrink-0 rounded bg-green-50 px-1.5 py-0.5 text-[10px] font-medium text-green-700",children:z.worktree.split("/").pop()})]}),(0,d.jsx)(l.$,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>O(!1),children:(0,d.jsx)(aO.A,{className:"size-4"})})]}),M&&(0,d.jsx)(B,{slug:j,repoId:k})]})]})]})}},77826:(a,b,c)=>{c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/jean-charlesfabre/Documents/Brigade/kanban/src/app/(board)/task/[slug]/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/jean-charlesfabre/Documents/Brigade/kanban/src/app/(board)/task/[slug]/page.tsx","default")}};
|