@chorus-aidlc/chorus 0.9.1 → 0.9.2
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-build-manifest.json +179 -179
- package/.next/standalone/.next/app-path-routes-manifest.json +29 -29
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +42 -42
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/ideas/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +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 +1 -1
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +1 -1
- package/.next/standalone/.next/server/app/admin.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +1 -1
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +1 -1
- package/.next/standalone/.next/server/app/login/admin.rsc +1 -1
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +1 -1
- package/.next/standalone/.next/server/app/login/callback.rsc +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.rsc +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js +3 -3
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +3 -3
- package/.next/standalone/.next/server/app-paths-manifest.json +29 -29
- package/.next/standalone/.next/server/chunks/2990.js +1 -0
- package/.next/standalone/.next/server/chunks/4090.js +2 -2
- package/.next/standalone/.next/server/chunks/5491.js +1 -0
- package/.next/standalone/.next/server/chunks/6207.js +1 -1
- package/.next/standalone/.next/server/chunks/{5044.js → 6878.js} +1 -1
- package/.next/standalone/.next/server/chunks/7578.js +2 -2
- package/.next/standalone/.next/server/chunks/7621.js +1 -0
- package/.next/standalone/.next/server/chunks/8144.js +1 -0
- package/.next/standalone/.next/server/chunks/8637.js +1 -1
- package/.next/standalone/.next/server/chunks/9508.js +2 -2
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/19126-12ce8ade288ce1dc.js +1 -0
- package/.next/standalone/.next/static/chunks/19898-7e07c69b635e3662.js +1 -0
- package/.next/standalone/.next/static/chunks/35486-1978488574385a45.js +1 -0
- package/.next/standalone/.next/static/chunks/52206-51a89715ca643e44.js +1 -0
- package/.next/standalone/.next/static/chunks/60011-b602fea2afba6992.js +1 -0
- package/.next/standalone/.next/static/chunks/{32190-a110356fb68a4333.js → 75444-976ac95fd66e7988.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-dd7eb66bb4ffd252.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-6d92b9867caf0fe1.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-f8f17f58cf779d37.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-83e2e42b27132b41.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/[ideaUuid]/{page-405cc5757c9116ed.js → page-55148db4b28ee5f5.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/ideas/{page-1591999fb2994672.js → page-556c181809c9e4f6.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-656797940b35b23c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-31f4ffd9778a39ed.js → page-414b398806324ad1.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-af88aeaedc3f4ae5.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-00ae31e877b4b261.js → page-6524ab00e6cdf59a.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-b148c338bed81dce.js → page-7b0bb5f037cd320b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-db79d84fa8ca8cbf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/{page-9768ac847f5b2b48.js → page-7a00689ba561c111.js} +1 -1
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
- package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +3 -2
- package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +2 -2
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +3 -2
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +6 -4
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +5 -3
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
- package/.next/standalone/public/skill/chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/develop-chorus/SKILL.md +2 -1
- package/.next/standalone/public/skill/proposal-chorus/SKILL.md +5 -3
- package/.next/standalone/public/skill/review-chorus/SKILL.md +4 -2
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/3405.js +0 -1
- package/.next/standalone/.next/server/chunks/4043.js +0 -1
- package/.next/standalone/.next/server/chunks/6592.js +0 -1
- package/.next/standalone/.next/server/chunks/6975.js +0 -1
- package/.next/standalone/.next/static/chunks/19126-7671ce1fd803fdd4.js +0 -1
- package/.next/standalone/.next/static/chunks/44046-5c0f7f8c0914988a.js +0 -1
- package/.next/standalone/.next/static/chunks/60011-0fbcb92028fe9655.js +0 -1
- package/.next/standalone/.next/static/chunks/6028-fe4175ea5e6241ed.js +0 -1
- package/.next/standalone/.next/static/chunks/9562-8433cd5c5abad077.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-8409ca03f132910b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-7f7a7f654cab4dc3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-a99a690b878a03be.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-95cdcec5e6db551f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-2d85f24a980966b7.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-38579c303156008c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-b153aa34b940a24c.js +0 -1
- /package/.next/standalone/.next/static/{yBxnuARbl0brBJS3_STaI → -kClYg0a7zvFcgkw_LnG7}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{yBxnuARbl0brBJS3_STaI → -kClYg0a7zvFcgkw_LnG7}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=9508,exports.ids=[7578,9508],exports.modules={23187:(a,b,c)=>{c.d(b,{y:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60c43a9f2b19ee7b3969eed5e9b23569c77064677e",d.callServer,void 0,d.findSourceMapURL,"skipElaborationAction")},27380:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>P});var e=c(10837),f=c(21968),g=c(1007),h=c(81512),i=c.n(h),j=c(9222),k=c(24364),l=c(87461),m=c(10694),n=c(16235),o=c(86460),p=c(9810),q=c(97443),r=c(65956),s=c(79543),t=c(49599),u=c(42424),v=c(9994),w=c(20170),x=c(2852),y=c(74645),z=c(6019),A=c(80251),B=c(56828);c(1053);var C=c(10072),D=c(33808),E=c(97450),F=c(70409),G=c(19093),H=c(76803),I=c(51381),J=c(23187),K=c(76172),L=c(31009),M=c(45148),N=c(76664),O=a([B,E]);[B,E]=O.then?(await O)():O;let Q={open:"bg-[#FFF3E0] text-[#E65100]",elaborating:"bg-[#E3F2FD] text-[#1976D2]",elaborated:"bg-[#E0F2F1] text-[#00796B]"},R={open:"open",elaborating:"elaborating",elaborated:"elaborated"};function P({idea:a,projectUuid:b,currentUserUuid:c,isUsedInProposal:d,onClose:h,onDeleted:O}){let P=(0,j.c)(),S=(0,g.useRouter)(),[T,U]=(0,f.useState)([]),[V,W]=(0,f.useState)(!0),[X,Y]=(0,f.useState)(!1),[Z,$]=(0,f.useState)(null),_=(0,f.useCallback)(async()=>{let b=await (0,I.z)(a.uuid);b.success&&b.data&&$(b.data)},[a.uuid]);(0,K.eV)("idea",_);let[aa,ab]=(0,f.useState)(!1),[ac,ad]=(0,f.useState)(""),[ae,af]=(0,f.useState)(!1),[ag,ah]=(0,f.useState)(null),[ai,aj]=(0,f.useState)(!1),[ak,al]=(0,f.useState)(a.title),[am,an]=(0,f.useState)(a.content||""),[ao,ap]=(0,f.useState)(!1),[aq,ar]=(0,f.useState)(null),[as,at]=(0,f.useState)(!1),[au,av]=(0,f.useState)(!1),[aw,ax]=(0,f.useState)(!1),ay="elaborated"!==a.status,az="resolved"===a.elaborationStatus,aA=("elaborating"===a.status||"elaborated"===a.status)&&az,aB="elaborating"===a.status&&(!a.elaborationStatus||"resolved"!==a.elaborationStatus)&&a.assignee?.uuid===c,aC="elaborated"!==a.status,aD=()=>{aj(!1),al(a.title),an(a.content||""),ar(null)},aE=async()=>{if(!ak.trim())return void ar(P("ideas.titleRequired"));ap(!0),ar(null);let c=await (0,C.J)({ideaUuid:a.uuid,projectUuid:b,title:ak.trim(),content:am.trim()||null});ap(!1),c.success?(aj(!1),S.refresh()):ar(c.error||P("ideas.updateFailed"))},aF=async()=>{at(!0);let c=await (0,D.Z)(a.uuid,b);at(!1),c.success&&(O?.(),h(),S.refresh())},aG=async()=>{if(!ac.trim())return void ah(P("elaboration.skipReasonRequired"));af(!0),ah(null);let b=await (0,J.y)(a.uuid,ac.trim());af(!1),b.success?(ab(!1),ad(""),S.refresh()):ah(b.error||P("common.genericError"))};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:h}),(0,e.jsxs)("div",{className:`fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ${aw?"":"animate-in slide-in-from-right duration-300"}`,children:[(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[(0,e.jsx)("div",{className:"flex-1 min-w-0",children:ai?(0,e.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:P("ideas.editIdea")}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:a.title}),(0,e.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,e.jsx)(t.E,{className:Q[a.status]||"",children:P(`status.${R[a.status]||a.status}`)}),(0,e.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:(0,N.r)(a.createdAt)})]})]})}),(0,e.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[!ai&&(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>av(!0),title:P("ideas.actions.move"),"aria-label":P("ideas.actions.move"),children:(0,e.jsx)(k.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),aC&&!ai&&(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>{al(a.title),an(a.content||""),ar(null),aj(!0)},children:(0,e.jsx)(l.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:ai?aD:h,children:(0,e.jsx)(m.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),(0,e.jsx)(y.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,e.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:ai?(0,e.jsxs)("div",{className:"space-y-5",children:[aq&&(0,e.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:aq}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(x.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("ideas.titleLabel")}),(0,e.jsx)(v.p,{id:"edit-title",value:ak,onChange:a=>al(a.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(x.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("common.content")}),(0,e.jsx)(w.T,{id:"edit-content",value:am,onChange:a=>an(a.target.value),rows:8,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]})]}):(0,e.jsxs)(L.P.div,{variants:M.qG,initial:"initial",animate:"animate",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.assignee")}),(0,e.jsx)("div",{className:"mt-2 flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-3",children:a.assignee?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(A.eu,{className:"h-7 w-7",children:(0,e.jsx)(A.q5,{className:"agent"===a.assignee.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]",children:"agent"===a.assignee.type?(0,e.jsx)(n.A,{className:"h-3.5 w-3.5"}):a.assignee.name.charAt(0).toUpperCase()})}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[#2C2C2C]",children:a.assignee.name}),(0,e.jsx)("div",{className:"text-xs text-[#6B6B6B]",children:"agent"===a.assignee.type?`${P("common.agent")} • ${a.assignee.assignedAt?(0,N.r)(a.assignee.assignedAt):""}`:P("common.user")})]})]}):(0,e.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:P("common.unassigned")})})]}),Z&&Z.rounds.length>0&&(0,e.jsx)("div",{className:"mt-5",children:(0,e.jsx)(H.R,{ideaUuid:a.uuid,elaboration:Z,onRefresh:async()=>{let b=await (0,I.z)(a.uuid);b.success&&b.data&&$(b.data)}})}),(0,e.jsxs)("div",{className:"mt-5",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.content")}),(0,e.jsx)("div",{className:"mt-2",children:a.content?(0,e.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,e.jsx)(E.MarkdownContent,{children:a.content})}):(0,e.jsx)("p",{className:"text-sm italic text-[#9A9A9A]",children:P("common.noContent")})})]}),(0,e.jsxs)("div",{className:"mt-5 flex-1",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.activity")}),(0,e.jsx)("div",{className:"mt-2 space-y-3",children:V?(0,e.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,e.jsx)(o.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===T.length?(0,e.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:P("common.noActivity")}):T.map(a=>(0,e.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,e.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[#9A9A9A]"}),(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("p",{className:"text-[13px] text-[#2C2C2C]",children:function(a,b){let{action:c,actorName:d}=a;switch(c){case"created":case"idea_created":return b("activity.ideaCreated",{actor:d});case"assigned":case"idea_assigned":return b("activity.ideaAssigned",{actor:d});case"claimed":case"idea_claimed":return b("activity.ideaClaimed",{actor:d});case"released":case"idea_released":return b("activity.ideaReleased",{actor:d});case"status_changed":case"idea_status_changed":return b("activity.ideaStatusChanged",{actor:d});case"elaboration_started":return b("activity.elaborationStarted",{actor:d});case"elaboration_answered":return b("activity.elaborationAnswered",{actor:d});case"elaboration_skipped":return b("activity.elaborationSkipped",{actor:d});case"elaboration_resolved":return b("activity.elaborationResolved",{actor:d});case"elaboration_followup":return b("activity.elaborationFollowup",{actor:d});default:return`${d}: ${c}`}}(a,P)}),(0,e.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:function(a,b){let c=new Date(a),d=new Date().getTime()-c.getTime(),e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?b("time.justNow"):e<60?b("time.minutesAgo",{minutes:e}):f<24?b("time.hoursAgo",{hours:f}):g<7?b("time.daysAgo",{days:g}):(0,N.r)(c)}(a.createdAt,P)})]})]},a.uuid))})]}),(0,e.jsxs)("div",{className:"mt-5",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("comments.title")}),(0,e.jsx)("div",{className:"mt-2",children:(0,e.jsx)(B.$,{targetType:"idea",targetUuid:a.uuid,currentUserUuid:c,compact:!0})})]})]})})}),(0,e.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:(0,e.jsx)("div",{className:"flex items-center justify-between gap-3",children:ai?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(u.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:aD,disabled:ao,children:P("common.cancel")}),(0,e.jsx)(u.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:aE,disabled:ao||!ak.trim(),children:ao?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.saving")]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(p.A,{className:"mr-2 h-4 w-4"}),P("ideas.saveChanges")]})})]}):(0,e.jsxs)(e.Fragment,{children:[ay&&(0,e.jsxs)(u.$,{variant:"outline",className:"shrink-0 border-[#E5E0D8] rounded-md px-4 py-2 text-[13px] font-medium",onClick:()=>Y(!0),children:[(0,e.jsx)(q.A,{className:"mr-2 h-4 w-4"}),a.assignee?P("common.reassign"):P("common.assign")]}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[aB&&(0,e.jsx)(u.$,{variant:"outline",size:"sm",className:"border-[#E5E0D8]",onClick:()=>{ad(""),ah(null),ab(!0)},children:P("elaboration.skipButton")}),aA&&(0,e.jsx)(i(),{href:`/projects/${b}/proposals/new?ideaUuid=${a.uuid}`,children:(0,e.jsxs)(u.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:[(0,e.jsx)(r.A,{className:"mr-2 h-4 w-4"}),P("proposals.createProposal")]})}),"elaborating"===a.status&&!az&&!aB&&(0,e.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:P("elaboration.elaborationRequiredHint")})]}),(0,e.jsxs)(z.Lt,{children:[(0,e.jsx)(z.tv,{asChild:!0,children:(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8] text-[#EF4444] hover:bg-[#FFEBEE] hover:text-[#EF4444] hover:border-[#EF4444]",children:(0,e.jsx)(s.A,{className:"h-4 w-4"})})}),(0,e.jsxs)(z.EO,{children:[(0,e.jsxs)(z.wd,{children:[(0,e.jsx)(z.r7,{children:P("ideas.deleteIdea")}),(0,e.jsx)(z.$v,{children:P("ideas.deleteIdeaConfirm",{title:a.title})})]}),(0,e.jsxs)(z.ck,{children:[(0,e.jsx)(z.Zr,{children:P("common.cancel")}),(0,e.jsx)(z.Rx,{variant:"destructive",onClick:aF,disabled:as,children:as?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.delete")]}):P("common.delete")})]})]})]})]})})})]}),(0,e.jsx)(z.Lt,{open:aa,onOpenChange:ab,children:(0,e.jsxs)(z.EO,{children:[(0,e.jsxs)(z.wd,{children:[(0,e.jsx)(z.r7,{children:P("elaboration.skipConfirmTitle")}),(0,e.jsx)(z.$v,{children:P("elaboration.skipConfirmDescription")})]}),(0,e.jsxs)("div",{className:"space-y-2 py-2",children:[(0,e.jsx)(x.J,{htmlFor:"skip-reason",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("elaboration.skipReasonLabel")}),(0,e.jsx)(v.p,{id:"skip-reason",value:ac,onChange:a=>{ad(a.target.value),ag&&ah(null)},placeholder:P("elaboration.skipReasonPlaceholder"),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0}),ag&&(0,e.jsx)("p",{className:"text-xs text-destructive",children:ag})]}),(0,e.jsxs)(z.ck,{children:[(0,e.jsx)(z.Zr,{disabled:ae,children:P("common.cancel")}),(0,e.jsx)(z.Rx,{onClick:a=>{a.preventDefault(),aG()},disabled:ae||!ac.trim(),className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:ae?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.processing")]}):P("elaboration.skipButton")})]})]})}),(0,e.jsx)(G.h,{open:au,onOpenChange:av,ideaUuid:a.uuid,projectUuid:b,onMoved:()=>{h()}}),X&&(0,e.jsx)(F.i,{idea:{uuid:a.uuid,title:a.title,content:a.content,status:a.status,assignee:a.assignee?{type:a.assignee.type,uuid:a.assignee.uuid,name:a.assignee.name}:null},projectUuid:b,currentUserUuid:c,onClose:()=>{Y(!1),h()}})]})}d()}catch(a){d(a)}})},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>n,eT:()=>m,fg:()=>l,uA:()=>q});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);async function l({companyUuid:a,targetType:b,targetUuid:c,skip:d,take:g}){if(!await (0,f._9)(b,c,a))return{comments:[],total:0};let h={companyUuid:a,targetType:b,targetUuid:c},[i,j]=await Promise.all([e.z.comment.findMany({where:h,skip:d,take:g,orderBy:{createdAt:"asc"},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.comment.count({where:h})]);return{comments:await Promise.all(i.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})),total:j}}async function m({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return n(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),p(a,b,c,k.uuid,d,g,h).catch(a=>j.A.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function n(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function o(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function p(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await n(b,c);if(!k)return;let l=await o(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function q(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}[e,f,g,h]=k.then?(await k)():k,d()}catch(a){d(a)}})},57578:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AU:()=>p,Bf:()=>H,CA:()=>C,Eh:()=>E,FD:()=>A,HF:()=>s,IV:()=>y,LJ:()=>z,M9:()=>B,PK:()=>t,TC:()=>w,X2:()=>u,e1:()=>o,fS:()=>q,gF:()=>v,gT:()=>D,lh:()=>G,nW:()=>F,tM:()=>x,v3:()=>n,wV:()=>r});var e=c(55511),f=c(52618),g=c(18818),h=c(76872),i=c(42558),j=a([f,h]);function k(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}function l(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}async function m(a){let b="user"===a.createdByType?"user":"agent",[c,d]=await Promise.all([(0,h.LS)(a.createdByUuid,b),(0,h.SJ)(a.reviewedByUuid,a.reviewNote,a.reviewedAt)]),e={uuid:a.uuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,documentDrafts:a.documentDrafts,taskDrafts:a.taskDrafts,status:a.status,createdBy:c,createdByType:a.createdByType,review:d,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return a.project&&(e.project=a.project),e}async function n(a,b){let c=await f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Proposal not found");let d=[],e=c.documentDrafts||[],g=c.taskDrafts||[],h=c.inputUuids||[];for(let a of(0===e.length&&d.push({id:"E1",level:"error",message:"Proposal must contain at least one document draft"}),e))(!a.content||a.content.length<100)&&d.push({id:"E2",level:"error",message:`Document draft "${a.title}" must have content with at least 100 characters`,field:a.title});if(0===g.length&&d.push({id:"E3",level:"error",message:"Proposal must contain at least one task draft"}),0===h.length&&d.push({id:"E4",level:"error",message:"Proposal must have at least one input (idea or other source)"}),"idea"===c.inputType&&h.length>0)for(let b of(await f.z.idea.findMany({where:{uuid:{in:h},companyUuid:a},select:{uuid:!0,title:!0,elaborationStatus:!0}})))"resolved"!==b.elaborationStatus&&d.push({id:"E5",level:"error",message:`Input idea "${b.title}" has unresolved elaboration (status: ${b.elaborationStatus})`,field:b.title});for(let a of(e.some(a=>"tech_design"===a.type)||d.push({id:"W1",level:"warning",message:"Proposal should contain at least one tech design document draft"}),g))a.description&&0!==a.description.trim().length||d.push({id:"W2",level:"warning",message:`Task draft "${a.title}" is missing a description`,field:a.title});for(let a of g)a.acceptanceCriteriaItems&&0!==a.acceptanceCriteriaItems.length||d.push({id:"E-AC",level:"error",message:`Task draft "${a.title}" is missing acceptance criteria (structured items required)`,field:a.title});for(let a of(g.length>=2&&(g.some(a=>a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0)||d.push({id:"W4",level:"warning",message:"When there are multiple tasks, at least one should declare dependencies"})),c.description&&0!==c.description.trim().length||d.push({id:"W5",level:"warning",message:"Proposal description should not be empty"}),g))a.priority||d.push({id:"I1",level:"info",message:`Task draft "${a.title}" does not have a priority set`,field:a.title});for(let a of g)null==a.storyPoints&&d.push({id:"I2",level:"info",message:`Task draft "${a.title}" does not have story points set`,field:a.title});return{valid:!d.some(a=>"error"===a.level),issues:d}}async function o(a,b){let c=await f.z.proposal.findMany({where:{companyUuid:a,inputType:"idea"},select:{uuid:!0,title:!0,inputUuids:!0}}),d=[];for(let a of c){let c=a.inputUuids;for(let e of b)c.includes(e)&&d.push({uuid:e,proposalUuid:a.uuid,proposalTitle:a.title})}return{available:0===d.length,usedIdeas:d}}async function p(a,b,c,d){let e=await f.z.idea.findMany({where:{uuid:{in:b},companyUuid:a},select:{uuid:!0,assigneeType:!0,assigneeUuid:!0}}),g=[];for(let a of e)(a.assigneeType!==d||a.assigneeUuid!==c)&&g.push(a.uuid);return{valid:0===g.length,unassignedIdeas:g}}async function q(a,b,c){let d=(await f.z.proposal.findMany({where:{projectUuid:b,companyUuid:a},orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}})).filter(a=>Array.isArray(a.inputUuids)&&a.inputUuids.includes(c));return Promise.all(d.map(a=>m(a)))}async function r({companyUuid:a,projectUuid:b,skip:c,take:d,status:e}){let g={projectUuid:b,companyUuid:a,...e&&{status:e}},[h,i]=await Promise.all([f.z.proposal.findMany({where:g,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}}),f.z.proposal.count({where:g})]);return{proposals:await Promise.all(h.map(a=>m(a))),total:i}}async function s(a,b){let c=await f.z.proposal.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?m(c):null}async function t(a,b){return f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}})}async function u(a){let b=a.documentDrafts?.map(k),c=a.taskDrafts?.map(l),d=await f.z.proposal.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,...b&&{documentDrafts:b},...c&&{taskDrafts:c},status:"draft",createdByUuid:a.createdByUuid,createdByType:a.createdByType||"agent"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}});return i.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"created"}),m(d)}async function v(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");let{updatedProposal:g,materializedTasks:h,materializedDocuments:j}=await f.z.$transaction(async b=>{let f=await b.proposal.update({where:{uuid:a},data:{status:"approved",reviewedByUuid:c,reviewNote:d||null,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}}),g=e.documentDrafts,h=e.taskDrafts,i=[],j=[];if(g&&g.length>0){let a=await b.document.createManyAndReturn({data:g.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,type:a.type||"prd",title:a.title,content:a.content||null,version:1,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}});for(let b=0;b<g.length;b++)j.push({draftUuid:g[b].uuid,documentUuid:a[b].uuid,title:a[b].title})}if(h&&h.length>0){for(let a of h)if(a.acceptanceCriteriaItems&&a.acceptanceCriteriaItems.length>0)for(let b=0;b<a.acceptanceCriteriaItems.length;b++){let c=a.acceptanceCriteriaItems[b];if(!c.description||"string"!=typeof c.description||0===c.description.trim().length)throw Error(`Task draft "${a.title}": acceptanceCriteriaItems[${b}] has an empty or invalid description`)}let a=await b.task.createManyAndReturn({data:h.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,title:a.title,description:a.description||null,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints||null,acceptanceCriteria:a.acceptanceCriteria||null,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}}),c=new Map;for(let b=0;b<h.length;b++)c.set(h[b].uuid,a[b].uuid),i.push({draftUuid:h[b].uuid,taskUuid:a[b].uuid,title:a[b].title});let d=[];for(let a of h)if(a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0){let b=c.get(a.uuid);if(!b)continue;for(let e of a.dependsOnDraftUuids){let a=c.get(e);a&&d.push({taskUuid:b,dependsOnUuid:a})}}d.length>0&&await b.taskDependency.createMany({data:d});let f=[];for(let a of h)if(a.acceptanceCriteriaItems&&a.acceptanceCriteriaItems.length>0){let b=c.get(a.uuid);if(!b)continue;for(let c=0;c<a.acceptanceCriteriaItems.length;c++){let d=a.acceptanceCriteriaItems[c];f.push({taskUuid:b,description:d.description.trim(),required:d.required??!0,sortOrder:c})}}f.length>0&&await b.acceptanceCriterion.createMany({data:f})}return{updatedProposal:f,materializedTasks:i,materializedDocuments:j}},{timeout:15e3});i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"});let k=await m(g);return h.length>0&&(k.materializedTasks=h),j.length>0&&(k.materializedDocuments=j),k}async function w(a,b){let[c,d]=await Promise.all([f.z.task.findMany({where:{companyUuid:a,proposalUuid:b,status:{not:"closed"}},select:{uuid:!0,title:!0,status:!0},orderBy:{createdAt:"asc"}}),f.z.document.findMany({where:{companyUuid:a,proposalUuid:b},select:{uuid:!0,title:!0},orderBy:{createdAt:"asc"}})]);return{tasks:c,documents:d}}async function x(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");if("approved"!==e.status)throw Error("Only approved proposals can be revoked");let[g,h]=await Promise.all([f.z.task.findMany({where:{proposalUuid:e.uuid,status:{not:"closed"}},select:{uuid:!0,title:!0}}),f.z.document.findMany({where:{proposalUuid:e.uuid},select:{uuid:!0,title:!0}})]),j=g.map(a=>({uuid:a.uuid,title:a.title})),k=h.map(a=>({uuid:a.uuid,title:a.title}));return await f.z.$transaction(async b=>{let f=j.map(a=>a.uuid),g=k.map(a=>a.uuid);f.length>0&&(await b.sessionTaskCheckin.deleteMany({where:{taskUuid:{in:f}}}),await b.taskDependency.deleteMany({where:{dependsOnUuid:{in:f},taskUuid:{notIn:f}}}),await b.task.updateMany({where:{proposalUuid:e.uuid},data:{status:"closed"}})),g.length>0&&(await b.comment.deleteMany({where:{targetType:"document",targetUuid:{in:g}}}),await b.document.deleteMany({where:{proposalUuid:e.uuid}})),await b.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:c,reviewedAt:new Date,reviewNote:d||null}})},{timeout:15e3}),i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),{proposalUuid:a,closedTasks:j,deletedDocuments:k}}async function y(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),m(d)}async function z(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"closed",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),m(d)}async function A(a,b){let c=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!c)throw Error("Proposal not found");if("draft"!==c.status)throw Error("Only draft proposals can be submitted for review");let d=await n(b,a);if(!d.valid){let a=d.issues.map(a=>`[${a.level}] ${a.message}`);throw Error(`Proposal validation failed:
|
|
2
|
-
${a.join("\n")}`)}let e=await f.z.proposal.update({where:{uuid:a},data:{status:"pending"},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:e.uuid,action:"updated"}),m(e)}async function
|
|
1
|
+
"use strict";exports.id=9508,exports.ids=[7578,9508],exports.modules={27380:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>P});var e=c(10837),f=c(21968),g=c(1007),h=c(81512),i=c.n(h),j=c(9222),k=c(24364),l=c(87461),m=c(10694),n=c(16235),o=c(86460),p=c(9810),q=c(97443),r=c(65956),s=c(79543),t=c(49599),u=c(42424),v=c(9994),w=c(20170),x=c(2852),y=c(74645),z=c(6019),A=c(80251),B=c(56828);c(90274);var C=c(97113),D=c(94570),E=c(97450),F=c(86545),G=c(88513),H=c(75797),I=c(72274),J=c(66685),K=c(76172),L=c(31009),M=c(45148),N=c(76664),O=a([B,E]);[B,E]=O.then?(await O)():O;let Q={open:"bg-[#FFF3E0] text-[#E65100]",elaborating:"bg-[#E3F2FD] text-[#1976D2]",elaborated:"bg-[#E0F2F1] text-[#00796B]"},R={open:"open",elaborating:"elaborating",elaborated:"elaborated"};function P({idea:a,projectUuid:b,currentUserUuid:c,isUsedInProposal:d,onClose:h,onDeleted:O}){let P=(0,j.c)(),S=(0,g.useRouter)(),[T,U]=(0,f.useState)([]),[V,W]=(0,f.useState)(!0),[X,Y]=(0,f.useState)(!1),[Z,$]=(0,f.useState)(null),_=(0,f.useCallback)(async()=>{let b=await (0,I.z)(a.uuid);b.success&&b.data&&$(b.data)},[a.uuid]);(0,K.eV)("idea",_);let[aa,ab]=(0,f.useState)(!1),[ac,ad]=(0,f.useState)(""),[ae,af]=(0,f.useState)(!1),[ag,ah]=(0,f.useState)(null),[ai,aj]=(0,f.useState)(!1),[ak,al]=(0,f.useState)(a.title),[am,an]=(0,f.useState)(a.content||""),[ao,ap]=(0,f.useState)(!1),[aq,ar]=(0,f.useState)(null),[as,at]=(0,f.useState)(!1),[au,av]=(0,f.useState)(!1),[aw,ax]=(0,f.useState)(!1),ay="elaborated"!==a.status,az="resolved"===a.elaborationStatus,aA=("elaborating"===a.status||"elaborated"===a.status)&&az,aB="elaborating"===a.status&&(!a.elaborationStatus||"resolved"!==a.elaborationStatus)&&a.assignee?.uuid===c,aC="elaborated"!==a.status,aD=()=>{aj(!1),al(a.title),an(a.content||""),ar(null)},aE=async()=>{if(!ak.trim())return void ar(P("ideas.titleRequired"));ap(!0),ar(null);let c=await (0,C.J)({ideaUuid:a.uuid,projectUuid:b,title:ak.trim(),content:am.trim()||null});ap(!1),c.success?(aj(!1),S.refresh()):ar(c.error||P("ideas.updateFailed"))},aF=async()=>{at(!0);let c=await (0,D.Z)(a.uuid,b);at(!1),c.success&&(O?.(),h(),S.refresh())},aG=async()=>{if(!ac.trim())return void ah(P("elaboration.skipReasonRequired"));af(!0),ah(null);let b=await (0,J.y)(a.uuid,ac.trim());af(!1),b.success?(ab(!1),ad(""),S.refresh()):ah(b.error||P("common.genericError"))};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20",onClick:h}),(0,e.jsxs)("div",{className:`fixed right-0 top-14 md:top-0 z-50 flex h-[calc(100%-3.5rem)] md:h-full w-full md:w-[480px] flex-col bg-white shadow-xl border-l border-[#E5E0D8] ${aw?"":"animate-in slide-in-from-right duration-300"}`,children:[(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-[#F5F2EC] px-6 py-5",children:[(0,e.jsx)("div",{className:"flex-1 min-w-0",children:ai?(0,e.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:P("ideas.editIdea")}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C] truncate",children:a.title}),(0,e.jsxs)("div",{className:"mt-1.5 flex items-center gap-2",children:[(0,e.jsx)(t.E,{className:Q[a.status]||"",children:P(`status.${R[a.status]||a.status}`)}),(0,e.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:(0,N.r)(a.createdAt)})]})]})}),(0,e.jsxs)("div",{className:"flex items-center gap-2 ml-4",children:[!ai&&(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>av(!0),title:P("ideas.actions.move"),"aria-label":P("ideas.actions.move"),children:(0,e.jsx)(k.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),aC&&!ai&&(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:()=>{al(a.title),an(a.content||""),ar(null),aj(!0)},children:(0,e.jsx)(l.A,{className:"h-4 w-4 text-[#6B6B6B]"})}),(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"h-8 w-8 border-[#E5E0D8]",onClick:ai?aD:h,children:(0,e.jsx)(m.A,{className:"h-4 w-4 text-[#6B6B6B]"})})]})]}),(0,e.jsx)(y.F,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:(0,e.jsx)("div",{className:"flex min-h-full flex-col px-6 py-5",children:ai?(0,e.jsxs)("div",{className:"space-y-5",children:[aq&&(0,e.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:aq}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(x.J,{htmlFor:"edit-title",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("ideas.titleLabel")}),(0,e.jsx)(v.p,{id:"edit-title",value:ak,onChange:a=>al(a.target.value),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(x.J,{htmlFor:"edit-content",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("common.content")}),(0,e.jsx)(w.T,{id:"edit-content",value:am,onChange:a=>an(a.target.value),rows:8,className:"border-[#E5E0D8] text-sm resize-none focus-visible:ring-[#C67A52]"})]})]}):(0,e.jsxs)(L.P.div,{variants:M.qG,initial:"initial",animate:"animate",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.assignee")}),(0,e.jsx)("div",{className:"mt-2 flex items-center gap-2.5 rounded-lg bg-[#FAF8F4] p-3",children:a.assignee?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(A.eu,{className:"h-7 w-7",children:(0,e.jsx)(A.q5,{className:"agent"===a.assignee.type?"bg-[#C67A52] text-white":"bg-[#E5E0D8] text-[#6B6B6B]",children:"agent"===a.assignee.type?(0,e.jsx)(n.A,{className:"h-3.5 w-3.5"}):a.assignee.name.charAt(0).toUpperCase()})}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[#2C2C2C]",children:a.assignee.name}),(0,e.jsx)("div",{className:"text-xs text-[#6B6B6B]",children:"agent"===a.assignee.type?`${P("common.agent")} • ${a.assignee.assignedAt?(0,N.r)(a.assignee.assignedAt):""}`:P("common.user")})]})]}):(0,e.jsx)("span",{className:"text-sm text-[#9A9A9A]",children:P("common.unassigned")})})]}),Z&&Z.rounds.length>0&&(0,e.jsx)("div",{className:"mt-5",children:(0,e.jsx)(H.R,{ideaUuid:a.uuid,elaboration:Z,onRefresh:async()=>{let b=await (0,I.z)(a.uuid);b.success&&b.data&&$(b.data)}})}),(0,e.jsxs)("div",{className:"mt-5",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.content")}),(0,e.jsx)("div",{className:"mt-2",children:a.content?(0,e.jsx)("div",{className:"prose prose-sm max-w-none text-[13px] leading-relaxed text-[#2C2C2C]",children:(0,e.jsx)(E.MarkdownContent,{children:a.content})}):(0,e.jsx)("p",{className:"text-sm italic text-[#9A9A9A]",children:P("common.noContent")})})]}),(0,e.jsxs)("div",{className:"mt-5 flex-1",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("common.activity")}),(0,e.jsx)("div",{className:"mt-2 space-y-3",children:V?(0,e.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,e.jsx)(o.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):0===T.length?(0,e.jsx)("p",{className:"text-sm text-[#9A9A9A] italic",children:P("common.noActivity")}):T.map(a=>(0,e.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,e.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[#9A9A9A]"}),(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("p",{className:"text-[13px] text-[#2C2C2C]",children:function(a,b){let{action:c,actorName:d}=a;switch(c){case"created":case"idea_created":return b("activity.ideaCreated",{actor:d});case"assigned":case"idea_assigned":return b("activity.ideaAssigned",{actor:d});case"claimed":case"idea_claimed":return b("activity.ideaClaimed",{actor:d});case"released":case"idea_released":return b("activity.ideaReleased",{actor:d});case"status_changed":case"idea_status_changed":return b("activity.ideaStatusChanged",{actor:d});case"elaboration_started":return b("activity.elaborationStarted",{actor:d});case"elaboration_answered":return b("activity.elaborationAnswered",{actor:d});case"elaboration_skipped":return b("activity.elaborationSkipped",{actor:d});case"elaboration_resolved":return b("activity.elaborationResolved",{actor:d});case"elaboration_followup":return b("activity.elaborationFollowup",{actor:d});default:return`${d}: ${c}`}}(a,P)}),(0,e.jsx)("p",{className:"text-[11px] text-[#9A9A9A]",children:function(a,b){let c=new Date(a),d=new Date().getTime()-c.getTime(),e=Math.floor(d/6e4),f=Math.floor(d/36e5),g=Math.floor(d/864e5);return e<1?b("time.justNow"):e<60?b("time.minutesAgo",{minutes:e}):f<24?b("time.hoursAgo",{hours:f}):g<7?b("time.daysAgo",{days:g}):(0,N.r)(c)}(a.createdAt,P)})]})]},a.uuid))})]}),(0,e.jsxs)("div",{className:"mt-5",children:[(0,e.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wider text-[#9A9A9A]",children:P("comments.title")}),(0,e.jsx)("div",{className:"mt-2",children:(0,e.jsx)(B.$,{targetType:"idea",targetUuid:a.uuid,currentUserUuid:c,compact:!0})})]})]})})}),(0,e.jsx)("div",{className:"border-t border-[#F5F2EC] px-6 py-4",children:(0,e.jsx)("div",{className:"flex items-center justify-between gap-3",children:ai?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(u.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:aD,disabled:ao,children:P("common.cancel")}),(0,e.jsx)(u.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:aE,disabled:ao||!ak.trim(),children:ao?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.saving")]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(p.A,{className:"mr-2 h-4 w-4"}),P("ideas.saveChanges")]})})]}):(0,e.jsxs)(e.Fragment,{children:[ay&&(0,e.jsxs)(u.$,{variant:"outline",className:"shrink-0 border-[#E5E0D8] rounded-md px-4 py-2 text-[13px] font-medium",onClick:()=>Y(!0),children:[(0,e.jsx)(q.A,{className:"mr-2 h-4 w-4"}),a.assignee?P("common.reassign"):P("common.assign")]}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[aB&&(0,e.jsx)(u.$,{variant:"outline",size:"sm",className:"border-[#E5E0D8]",onClick:()=>{ad(""),ah(null),ab(!0)},children:P("elaboration.skipButton")}),aA&&(0,e.jsx)(i(),{href:`/projects/${b}/proposals/new?ideaUuid=${a.uuid}`,children:(0,e.jsxs)(u.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:[(0,e.jsx)(r.A,{className:"mr-2 h-4 w-4"}),P("proposals.createProposal")]})}),"elaborating"===a.status&&!az&&!aB&&(0,e.jsx)("span",{className:"text-[11px] text-[#9A9A9A]",children:P("elaboration.elaborationRequiredHint")})]}),(0,e.jsxs)(z.Lt,{children:[(0,e.jsx)(z.tv,{asChild:!0,children:(0,e.jsx)(u.$,{variant:"outline",size:"icon",className:"shrink-0 h-8 w-8 border-[#E5E0D8] text-[#EF4444] hover:bg-[#FFEBEE] hover:text-[#EF4444] hover:border-[#EF4444]",children:(0,e.jsx)(s.A,{className:"h-4 w-4"})})}),(0,e.jsxs)(z.EO,{children:[(0,e.jsxs)(z.wd,{children:[(0,e.jsx)(z.r7,{children:P("ideas.deleteIdea")}),(0,e.jsx)(z.$v,{children:P("ideas.deleteIdeaConfirm",{title:a.title})})]}),(0,e.jsxs)(z.ck,{children:[(0,e.jsx)(z.Zr,{children:P("common.cancel")}),(0,e.jsx)(z.Rx,{variant:"destructive",onClick:aF,disabled:as,children:as?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.delete")]}):P("common.delete")})]})]})]})]})})})]}),(0,e.jsx)(z.Lt,{open:aa,onOpenChange:ab,children:(0,e.jsxs)(z.EO,{children:[(0,e.jsxs)(z.wd,{children:[(0,e.jsx)(z.r7,{children:P("elaboration.skipConfirmTitle")}),(0,e.jsx)(z.$v,{children:P("elaboration.skipConfirmDescription")})]}),(0,e.jsxs)("div",{className:"space-y-2 py-2",children:[(0,e.jsx)(x.J,{htmlFor:"skip-reason",className:"text-[13px] font-medium text-[#2C2C2C]",children:P("elaboration.skipReasonLabel")}),(0,e.jsx)(v.p,{id:"skip-reason",value:ac,onChange:a=>{ad(a.target.value),ag&&ah(null)},placeholder:P("elaboration.skipReasonPlaceholder"),className:"border-[#E5E0D8] text-sm focus-visible:ring-[#C67A52]",autoFocus:!0}),ag&&(0,e.jsx)("p",{className:"text-xs text-destructive",children:ag})]}),(0,e.jsxs)(z.ck,{children:[(0,e.jsx)(z.Zr,{disabled:ae,children:P("common.cancel")}),(0,e.jsx)(z.Rx,{onClick:a=>{a.preventDefault(),aG()},disabled:ae||!ac.trim(),className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:ae?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.A,{className:"mr-2 h-4 w-4 animate-spin"}),P("common.processing")]}):P("elaboration.skipButton")})]})]})}),(0,e.jsx)(G.h,{open:au,onOpenChange:av,ideaUuid:a.uuid,projectUuid:b,onMoved:()=>{h()}}),X&&(0,e.jsx)(F.i,{idea:{uuid:a.uuid,title:a.title,content:a.content,status:a.status,assignee:a.assignee?{type:a.assignee.type,uuid:a.assignee.uuid,name:a.assignee.name}:null},projectUuid:b,currentUserUuid:c,onClose:()=>{Y(!1),h()}})]})}d()}catch(a){d(a)}})},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>n,eT:()=>m,fg:()=>l,uA:()=>q});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);async function l({companyUuid:a,targetType:b,targetUuid:c,skip:d,take:g}){if(!await (0,f._9)(b,c,a))return{comments:[],total:0};let h={companyUuid:a,targetType:b,targetUuid:c},[i,j]=await Promise.all([e.z.comment.findMany({where:h,skip:d,take:g,orderBy:{createdAt:"asc"},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.comment.count({where:h})]);return{comments:await Promise.all(i.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})),total:j}}async function m({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return n(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),p(a,b,c,k.uuid,d,g,h).catch(a=>j.A.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function n(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function o(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function p(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await n(b,c);if(!k)return;let l=await o(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function q(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}[e,f,g,h]=k.then?(await k)():k,d()}catch(a){d(a)}})},57578:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AU:()=>p,Bf:()=>K,CA:()=>F,Eh:()=>H,FD:()=>D,HF:()=>s,IV:()=>B,LJ:()=>C,M9:()=>E,PK:()=>w,TC:()=>z,X2:()=>x,e1:()=>o,fS:()=>q,gF:()=>y,gT:()=>G,lh:()=>J,nW:()=>I,op:()=>v,tM:()=>A,v3:()=>n,wV:()=>r});var e=c(55511),f=c(52618),g=c(18818),h=c(76872),i=c(42558),j=a([f,h]);function k(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}function l(a){return{...a,uuid:a.uuid||(0,e.randomUUID)()}}async function m(a){let b="user"===a.createdByType?"user":"agent",[c,d]=await Promise.all([(0,h.LS)(a.createdByUuid,b),(0,h.SJ)(a.reviewedByUuid,a.reviewNote,a.reviewedAt)]),e={uuid:a.uuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,documentDrafts:a.documentDrafts,taskDrafts:a.taskDrafts,status:a.status,createdBy:c,createdByType:a.createdByType,review:d,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return a.project&&(e.project=a.project),e}async function n(a,b){let c=await f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}});if(!c)throw Error("Proposal not found");let d=[],e=c.documentDrafts||[],g=c.taskDrafts||[],h=c.inputUuids||[];for(let a of(0===e.length&&d.push({id:"E1",level:"error",message:"Proposal must contain at least one document draft"}),e))(!a.content||a.content.length<100)&&d.push({id:"E2",level:"error",message:`Document draft "${a.title}" must have content with at least 100 characters`,field:a.title});if(0===g.length&&d.push({id:"E3",level:"error",message:"Proposal must contain at least one task draft"}),0===h.length&&d.push({id:"E4",level:"error",message:"Proposal must have at least one input (idea or other source)"}),"idea"===c.inputType&&h.length>0)for(let b of(await f.z.idea.findMany({where:{uuid:{in:h},companyUuid:a},select:{uuid:!0,title:!0,elaborationStatus:!0}})))"resolved"!==b.elaborationStatus&&d.push({id:"E5",level:"error",message:`Input idea "${b.title}" has unresolved elaboration (status: ${b.elaborationStatus})`,field:b.title});for(let a of(e.some(a=>"tech_design"===a.type)||d.push({id:"W1",level:"warning",message:"Proposal should contain at least one tech design document draft"}),g))a.description&&0!==a.description.trim().length||d.push({id:"W2",level:"warning",message:`Task draft "${a.title}" is missing a description`,field:a.title});for(let a of g)a.acceptanceCriteriaItems&&0!==a.acceptanceCriteriaItems.length||d.push({id:"E-AC",level:"error",message:`Task draft "${a.title}" is missing acceptance criteria (structured items required)`,field:a.title});for(let a of(g.length>=2&&(g.some(a=>a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0)||d.push({id:"W4",level:"warning",message:"When there are multiple tasks, at least one should declare dependencies"})),c.description&&0!==c.description.trim().length||d.push({id:"W5",level:"warning",message:"Proposal description should not be empty"}),g))a.priority||d.push({id:"I1",level:"info",message:`Task draft "${a.title}" does not have a priority set`,field:a.title});for(let a of g)null==a.storyPoints&&d.push({id:"I2",level:"info",message:`Task draft "${a.title}" does not have story points set`,field:a.title});return{valid:!d.some(a=>"error"===a.level),issues:d}}async function o(a,b){let c=await f.z.proposal.findMany({where:{companyUuid:a,inputType:"idea"},select:{uuid:!0,title:!0,inputUuids:!0}}),d=[];for(let a of c){let c=a.inputUuids;for(let e of b)c.includes(e)&&d.push({uuid:e,proposalUuid:a.uuid,proposalTitle:a.title})}return{available:0===d.length,usedIdeas:d}}async function p(a,b,c,d){let e=await f.z.idea.findMany({where:{uuid:{in:b},companyUuid:a},select:{uuid:!0,assigneeType:!0,assigneeUuid:!0}}),g=[];for(let a of e)(a.assigneeType!==d||a.assigneeUuid!==c)&&g.push(a.uuid);return{valid:0===g.length,unassignedIdeas:g}}async function q(a,b,c){let d=(await f.z.proposal.findMany({where:{projectUuid:b,companyUuid:a},orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}})).filter(a=>Array.isArray(a.inputUuids)&&a.inputUuids.includes(c));return Promise.all(d.map(a=>m(a)))}async function r({companyUuid:a,projectUuid:b,skip:c,take:d,status:e}){let g={projectUuid:b,companyUuid:a,...e&&{status:e}},[h,i]=await Promise.all([f.z.proposal.findMany({where:g,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}}),f.z.proposal.count({where:g})]);return{proposals:await Promise.all(h.map(a=>m(a))),total:i}}async function s(a,b){let c=await f.z.proposal.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?m(c):null}function t(a){return{uuid:a.uuid,type:a.type,title:a.title,contentLength:(a.content??"").length}}function u(a){let b={uuid:a.uuid,title:a.title,acceptanceCriteriaCount:a.acceptanceCriteriaItems?.length??0};return void 0!==a.priority&&(b.priority=a.priority),void 0!==a.storyPoints&&(b.storyPoints=a.storyPoints),void 0!==a.dependsOnDraftUuids&&(b.dependsOnDraftUuids=a.dependsOnDraftUuids),b}async function v(a,b,c){let d=await s(a,b);if(!d)return null;let{documentDrafts:e,taskDrafts:f,...g}=d;switch(c){case"documents":return{...g,section:"documents",documentDrafts:e};case"tasks":return{...g,section:"tasks",taskDrafts:f};case"full":return{...d,section:"full"};default:return{...g,section:"basic",documentDraftCount:e?.length??0,taskDraftCount:f?.length??0,documentDraftIndex:(e??[]).map(t),taskDraftIndex:(f??[]).map(u)}}}async function w(a,b){return f.z.proposal.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){let b=a.documentDrafts?.map(k),c=a.taskDrafts?.map(l),d=await f.z.proposal.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,inputType:a.inputType,inputUuids:a.inputUuids,...b&&{documentDrafts:b},...c&&{taskDrafts:c},status:"draft",createdByUuid:a.createdByUuid,createdByType:a.createdByType||"agent"},select:{uuid:!0,title:!0,description:!0,inputType:!0,inputUuids:!0,documentDrafts:!0,taskDrafts:!0,status:!0,createdByUuid:!0,createdByType:!0,reviewedByUuid:!0,reviewNote:!0,reviewedAt:!0,createdAt:!0,updatedAt:!0}});return i.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"created"}),m(d)}async function y(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");let{updatedProposal:g,materializedTasks:h,materializedDocuments:j}=await f.z.$transaction(async b=>{let f=await b.proposal.update({where:{uuid:a},data:{status:"approved",reviewedByUuid:c,reviewNote:d||null,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}}),g=e.documentDrafts,h=e.taskDrafts,i=[],j=[];if(g&&g.length>0){let a=await b.document.createManyAndReturn({data:g.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,type:a.type||"prd",title:a.title,content:a.content||null,version:1,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}});for(let b=0;b<g.length;b++)j.push({draftUuid:g[b].uuid,documentUuid:a[b].uuid,title:a[b].title})}if(h&&h.length>0){for(let a of h)if(a.acceptanceCriteriaItems&&a.acceptanceCriteriaItems.length>0)for(let b=0;b<a.acceptanceCriteriaItems.length;b++){let c=a.acceptanceCriteriaItems[b];if(!c.description||"string"!=typeof c.description||0===c.description.trim().length)throw Error(`Task draft "${a.title}": acceptanceCriteriaItems[${b}] has an empty or invalid description`)}let a=await b.task.createManyAndReturn({data:h.map(a=>({companyUuid:e.companyUuid,projectUuid:e.projectUuid,title:a.title,description:a.description||null,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints||null,acceptanceCriteria:a.acceptanceCriteria||null,proposalUuid:e.uuid,createdByUuid:e.createdByUuid})),select:{uuid:!0,title:!0}}),c=new Map;for(let b=0;b<h.length;b++)c.set(h[b].uuid,a[b].uuid),i.push({draftUuid:h[b].uuid,taskUuid:a[b].uuid,title:a[b].title});let d=[];for(let a of h)if(a.dependsOnDraftUuids&&a.dependsOnDraftUuids.length>0){let b=c.get(a.uuid);if(!b)continue;for(let e of a.dependsOnDraftUuids){let a=c.get(e);a&&d.push({taskUuid:b,dependsOnUuid:a})}}d.length>0&&await b.taskDependency.createMany({data:d});let f=[];for(let a of h)if(a.acceptanceCriteriaItems&&a.acceptanceCriteriaItems.length>0){let b=c.get(a.uuid);if(!b)continue;for(let c=0;c<a.acceptanceCriteriaItems.length;c++){let d=a.acceptanceCriteriaItems[c];f.push({taskUuid:b,description:d.description.trim(),required:d.required??!0,sortOrder:c})}}f.length>0&&await b.acceptanceCriterion.createMany({data:f})}return{updatedProposal:f,materializedTasks:i,materializedDocuments:j}},{timeout:15e3});i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"});let k=await m(g);return h.length>0&&(k.materializedTasks=h),j.length>0&&(k.materializedDocuments=j),k}async function z(a,b){let[c,d]=await Promise.all([f.z.task.findMany({where:{companyUuid:a,proposalUuid:b,status:{not:"closed"}},select:{uuid:!0,title:!0,status:!0},orderBy:{createdAt:"asc"}}),f.z.document.findMany({where:{companyUuid:a,proposalUuid:b},select:{uuid:!0,title:!0},orderBy:{createdAt:"asc"}})]);return{tasks:c,documents:d}}async function A(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!e)throw Error("Proposal not found");if("approved"!==e.status)throw Error("Only approved proposals can be revoked");let[g,h]=await Promise.all([f.z.task.findMany({where:{proposalUuid:e.uuid,status:{not:"closed"}},select:{uuid:!0,title:!0}}),f.z.document.findMany({where:{proposalUuid:e.uuid},select:{uuid:!0,title:!0}})]),j=g.map(a=>({uuid:a.uuid,title:a.title})),k=h.map(a=>({uuid:a.uuid,title:a.title}));return await f.z.$transaction(async b=>{let f=j.map(a=>a.uuid),g=k.map(a=>a.uuid);f.length>0&&(await b.sessionTaskCheckin.deleteMany({where:{taskUuid:{in:f}}}),await b.taskDependency.deleteMany({where:{dependsOnUuid:{in:f},taskUuid:{notIn:f}}}),await b.task.updateMany({where:{proposalUuid:e.uuid},data:{status:"closed"}})),g.length>0&&(await b.comment.deleteMany({where:{targetType:"document",targetUuid:{in:g}}}),await b.document.deleteMany({where:{proposalUuid:e.uuid}})),await b.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:c,reviewedAt:new Date,reviewNote:d||null}})},{timeout:15e3}),i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),{proposalUuid:a,closedTasks:j,deletedDocuments:k}}async function B(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"draft",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),m(d)}async function C(a,b,c){let d=await f.z.proposal.update({where:{uuid:a},data:{status:"closed",reviewedByUuid:b,reviewNote:c,reviewedAt:new Date},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:d.uuid,action:"updated"}),m(d)}async function D(a,b){let c=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b}});if(!c)throw Error("Proposal not found");if("draft"!==c.status)throw Error("Only draft proposals can be submitted for review");let d=await n(b,a);if(!d.valid){let a=d.issues.map(a=>`[${a.level}] ${a.message}`);throw Error(`Proposal validation failed:
|
|
2
|
+
${a.join("\n")}`)}let e=await f.z.proposal.update({where:{uuid:a},data:{status:"pending"},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:e.companyUuid,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:e.uuid,action:"updated"}),m(e)}async function E(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=d.documentDrafts||[],g=k(c),h=[...e,g],j=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:h},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(j)}async function F(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=d.taskDrafts||[],g=l(c),h=[...e,g],j=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:h},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(j)}async function G(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!e)throw Error("Proposal not found or not in draft status");let g=e.documentDrafts||[],h=g.findIndex(a=>a.uuid===c);if(-1===h)throw Error("Document draft not found");g[h]={...g[h],...d};let j=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:g},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(j)}async function H(a,b,c,d){let e=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!e)throw Error("Proposal not found or not in draft status");let g=e.taskDrafts||[],h=g.findIndex(a=>a.uuid===c);if(-1===h)throw Error("Task draft not found");g[h]={...g[h],...d};let j=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:g},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:e.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(j)}async function I(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=(d.documentDrafts||[]).filter(a=>a.uuid!==c),h=await f.z.proposal.update({where:{uuid:a},data:{documentDrafts:e.length>0?e:g.D1.Fj},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(h)}async function J(a,b,c){let d=await f.z.proposal.findFirst({where:{uuid:a,companyUuid:b,status:"draft"}});if(!d)throw Error("Proposal not found or not in draft status");let e=(d.taskDrafts||[]).filter(a=>a.uuid!==c).map(a=>({...a,dependsOnDraftUuids:a.dependsOnDraftUuids?.filter(a=>a!==c)})),h=await f.z.proposal.update({where:{uuid:a},data:{taskDrafts:e.length>0?e:g.D1.Fj},include:{project:{select:{uuid:!0,name:!0}}}});return i.B.emitChange({companyUuid:b,projectUuid:d.projectUuid,entityType:"proposal",entityUuid:a,action:"updated"}),m(h)}async function K(a,b){let c=await f.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:"approved"},select:{uuid:!0,title:!0,createdAt:!0},orderBy:{createdAt:"asc"}}),d=await f.z.task.groupBy({by:["proposalUuid"],where:{companyUuid:a,projectUuid:b,proposalUuid:{in:c.map(a=>a.uuid)}},_count:!0}),e=new Map(d.map(a=>[a.proposalUuid,a._count]));return c.map((a,b)=>({uuid:a.uuid,title:a.title,sequenceNumber:b+1,taskCount:e.get(a.uuid)??0}))}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},61007:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(91533).A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},63413:(a,b,c)=>{c.d(b,{cn:()=>f});var d=c(34269),e=c(42711);function f(...a){return(0,e.QP)((0,d.$)(a))}},66685:(a,b,c)=>{c.d(b,{y:()=>e});var d=c(42377);let e=(0,d.createServerReference)("60bc14a8d39f0f24588050cac093c9f3dd936825ee",d.callServer,void 0,d.findSourceMapURL,"skipElaborationAction")},74236:(a,b,c)=>{c.d(b,{Wu:()=>i,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(10023);c(73426);var e=c(63413);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}}};
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"wasm": [],
|
|
19
19
|
"assets": [],
|
|
20
20
|
"env": {
|
|
21
|
-
"__NEXT_BUILD_ID": "
|
|
22
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
23
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
24
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
25
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
21
|
+
"__NEXT_BUILD_ID": "-kClYg0a7zvFcgkw_LnG7",
|
|
22
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "41pZSnZ4NHBZO+l00i563KC1cwLis+W9awtFCF0eKD4=",
|
|
23
|
+
"__NEXT_PREVIEW_MODE_ID": "56f817af8aac38a44c95f30bfab2be03",
|
|
24
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "2c2d74ded17a49127a8a906d879df8f99d242302c92f99e7fbf5bd249952fc67",
|
|
25
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "beeea83c7aa58b122277e432f542561dafa3442199c4059a3f806b84f9507d4e"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--_kClYg0a7zvFcgkw_LnG7--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/22a5144ee8d83bca-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f5271587012faf78-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/84edd78de243cde6.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/ea3f196c7951f8d6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8e0df5e10bc6b98f.js"/><script src="/_next/static/chunks/f40797d1-f5f1a98f6dea9bac.js" async=""></script><script src="/_next/static/chunks/65496-22ab1b8fb7a144f0.js" async=""></script><script src="/_next/static/chunks/main-app-ec87f2c9ef083ff1.js" async=""></script><script src="/_next/static/chunks/12079-0574108f1e035a69.js" async=""></script><script src="/_next/static/chunks/app/layout-482dee7dace72c88.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>Chorus</title><meta name="description" content="AI Agent & Human collaboration platform for the AI-Driven Development Lifecycle"/><meta property="og:title" content="Chorus"/><meta property="og:description" content="AI Agent & Human collaboration platform for the AI-Driven Development Lifecycle"/><meta property="og:site_name" content="Chorus"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Chorus"/><meta name="twitter:description" content="AI Agent & Human collaboration platform for the AI-Driven Development Lifecycle"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_246ccd __variable_4c40f6 antialiased"><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-8e0df5e10bc6b98f.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[32277,[\"12079\",\"static/chunks/12079-0574108f1e035a69.js\",\"7177\",\"static/chunks/app/layout-482dee7dace72c88.js\"],\"LocaleProvider\"]\n3:I[77999,[],\"\"]\n4:I[29459,[],\"\"]\n5:I[12870,[],\"OutletBoundary\"]\n7:I[52955,[],\"AsyncMetadataOutlet\"]\n9:I[12870,[],\"ViewportBoundary\"]\nb:I[12870,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[34837,[],\"\"]\n:HL[\"/_next/static/media/22a5144ee8d83bca-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f5271587012faf78-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/84edd78de243cde6.css\",\"style\"]\n:HL[\"/_next/static/css/ea3f196c7951f8d6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"-kClYg0a7zvFcgkw_LnG7\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/84edd78de243cde6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ea3f196c7951f8d6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_246ccd __variable_4c40f6 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"f:I[46691,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Chorus\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Agent \u0026 Human collaboration platform for the AI-Driven Development Lifecycle\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"Chorus\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"AI Agent \u0026 Human collaboration platform for the AI-Driven Development Lifecycle\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:site_name\",\"content\":\"Chorus\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:title\",\"content\":\"Chorus\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:description\",\"content\":\"AI Agent \u0026 Human collaboration platform for the AI-Driven Development Lifecycle\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"256x256\"}],[\"$\",\"$Lf\",\"10\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8e0df5e10bc6b98f.js" defer=""></script><script src="/_next/static/chunks/framework-b8dfed57aa9742af.js" defer=""></script><script src="/_next/static/chunks/main-fbadaf198cba7522.js" defer=""></script><script src="/_next/static/chunks/pages/_app-8e54c612c8c83750.js" defer=""></script><script src="/_next/static/chunks/pages/_error-165a1f19230c8aad.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8e0df5e10bc6b98f.js" defer=""></script><script src="/_next/static/chunks/framework-b8dfed57aa9742af.js" defer=""></script><script src="/_next/static/chunks/main-fbadaf198cba7522.js" defer=""></script><script src="/_next/static/chunks/pages/_app-8e54c612c8c83750.js" defer=""></script><script src="/_next/static/chunks/pages/_error-165a1f19230c8aad.js" defer=""></script><script src="/_next/static/-kClYg0a7zvFcgkw_LnG7/_buildManifest.js" defer=""></script><script src="/_next/static/-kClYg0a7zvFcgkw_LnG7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"-kClYg0a7zvFcgkw_LnG7","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|