@chorus-aidlc/chorus 0.21.0 → 0.21.1
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 +213 -213
- package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
- 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 +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
- 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 +2 -2
- 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 +1 -1
- 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]/graph/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/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 +2 -2
- 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 +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/agent-connections/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/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/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/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/entities/[type]/[uuid]/root-idea/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]/parent/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/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.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]/access-preview/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]/members/[userUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/members/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/project-visits/pin/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/access-preview/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]/agent-cwds/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/preview/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]/members/[userUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/members/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]/resource-graph/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/agent-cwd-options/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/references/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/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/session/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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +1 -1
- package/.next/standalone/.next/server/app/login.html +2 -2
- package/.next/standalone/.next/server/app/login.rsc +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +3 -3
- package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
- package/.next/standalone/.next/server/chunks/1855.js +2 -2
- package/.next/standalone/.next/server/chunks/2689.js +2 -2
- package/.next/standalone/.next/server/chunks/5212.js +1 -1
- package/.next/standalone/.next/server/chunks/5281.js +2 -2
- package/.next/standalone/.next/server/chunks/5647.js +1 -1
- package/.next/standalone/.next/server/chunks/5764.js +2 -2
- package/.next/standalone/.next/server/chunks/6493.js +1 -1
- package/.next/standalone/.next/server/chunks/6991.js +2 -2
- package/.next/standalone/.next/server/chunks/{9894.js → 7138.js} +1 -1
- package/.next/standalone/.next/server/chunks/{9583.js → 7169.js} +3 -3
- package/.next/standalone/.next/server/chunks/7425.js +1 -0
- package/.next/standalone/.next/server/chunks/7839.js +1 -1
- package/.next/standalone/.next/server/chunks/8692.js +1 -0
- package/.next/standalone/.next/server/chunks/87.js +1 -0
- package/.next/standalone/.next/server/chunks/8849.js +2 -2
- package/.next/standalone/.next/server/chunks/911.js +1 -0
- package/.next/standalone/.next/server/chunks/9295.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +2 -2
- 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/15638-e8566f8551988a0b.js +1 -0
- package/.next/standalone/.next/static/chunks/30187-8406d0b0e7582b4e.js +1 -0
- package/.next/standalone/.next/static/chunks/59480-03e05915e0f0f1e4.js +1 -0
- package/.next/standalone/.next/static/chunks/65833-d0a8d9023febc1ce.js +1 -0
- package/.next/standalone/.next/static/chunks/75844-ab7e24827a4875a0.js +1 -0
- package/.next/standalone/.next/static/chunks/88277-9563bd5857edfb08.js +1 -0
- package/.next/standalone/.next/static/chunks/91202-a6809360a6c58c9a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-9a0a7266bbc1498f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-670eeb1a8007a20c.js → page-26aef423473209b6.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-deb0615a19598fe6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-cb20e73952b1d4ee.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-ed5fbcae30e875d1.js → page-c8af650e39ff3eac.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-6bc33e1fb5e252dc.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-e622257cf6a2fe0c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-49b02e795c5b279c.js → page-2085f55b6cbd4d82.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-f26cad3e8406ac07.js → page-2b9e6239037f79d5.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-04a3fbabc7542960.js → page-7afc11846cb7aefc.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/{page-d0c217c1e9a18433.js → page-406dbd7ae784ec2b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-bb641e258e90d08b.js +1 -0
- 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/bin/chorus-api.sh +1 -1
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
- 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/orchestrate/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/cli/init/contracts.mjs +3 -0
- package/cli/init/install-methods.mjs +24 -113
- package/cli/init/pi-compatibility.mjs +5 -0
- package/cli/init/pi-mcp-backend.mjs +160 -0
- package/cli/init/pi-mcp-config.mjs +48 -64
- package/cli/init/registry.mjs +3 -2
- package/cli/init/run-command.mjs +3 -1
- package/cli/init/steps/codex-restart.mjs +95 -0
- package/cli/init/steps/credential-seed.mjs +18 -17
- package/cli/init.mjs +2 -2
- package/cli/upgrade-plugins.mjs +10 -45
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/1443.js +0 -1
- package/.next/standalone/.next/server/chunks/2701.js +0 -1
- package/.next/standalone/.next/server/chunks/6666.js +0 -1
- package/.next/standalone/.next/server/chunks/7329.js +0 -1
- package/.next/standalone/.next/static/chunks/14891-8a7485231cdaf105.js +0 -1
- package/.next/standalone/.next/static/chunks/30187-12e26e880f7b6da7.js +0 -1
- package/.next/standalone/.next/static/chunks/36244-82317cfd58345146.js +0 -1
- package/.next/standalone/.next/static/chunks/40309-bedb6f19876265b4.js +0 -1
- package/.next/standalone/.next/static/chunks/56161-5d2f255f25dba375.js +0 -1
- package/.next/standalone/.next/static/chunks/6497-36958930c3e35070.js +0 -1
- package/.next/standalone/.next/static/chunks/70762-18006a86c770d908.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2f843ed9eb3944e4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ed4d5692eac763c4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-48b79f200d9f086c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-91e61264f483701b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-cf90d562352224ec.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-87d43a00d0a7b209.js +0 -1
- /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[85e3],{11179:(e,t,s)=>{"use strict";s.d(t,{CollapsibleMarkdown:()=>i});var a=s(60200),r=s(81476),n=s(25588),l=s(40058),d=s(64035);function i(e){let{content:t,className:s}=e,i=(0,n.c)(),[o,c]=(0,r.useState)(!1),[u,x]=(0,r.useState)(!1),m=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=m.current;if(!e)return;let t=()=>x(e.scrollHeight>81);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[t]),(0,a.jsxs)("div",{className:s,children:[(0,a.jsx)("div",{ref:m,className:"overflow-hidden [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_p:first-child]:mt-0 [&_p:last-child]:mb-0",style:o?void 0:{maxHeight:80},children:(0,a.jsx)(d.MarkdownContent,{children:t})}),u&&(0,a.jsx)(l.$,{variant:"link",size:"sm",onClick:()=>c(e=>!e),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:i(o?"common.showLess":"common.showMore")})]})}},30782:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},41859:(e,t,s)=>{"use strict";s.d(t,{ProjectSettingsModal:()=>w});var a=s(60200),r=s(81476),n=s(45719),l=s(32022),d=s(25588),i=s(38028),o=s(95726),c=s(28201),u=s(40058),x=s(30474),m=s(45200),p=s(16852),h=s(67566),g=s(48135),f=s(65642),j=s(2745),b=s(42885);let v=(0,b.createServerReference)("6040f6106e2b65c372c7626c61fee990099b734304",b.callServer,void 0,b.findSourceMapURL,"updateProjectAction"),y=(0,b.createServerReference)("405a4c2f1c70455c8cd8a2f7e842c8d35b07965588",b.callServer,void 0,b.findSourceMapURL,"deleteProjectAction");var k=s(99617),N=s(7252);function w(e){let{projectUuid:t,projectName:s,projectDescription:b}=e,w=(0,d.c)(),A=(0,n.useSearchParams)(),C=(0,l.r)(),[E,S]=(0,r.useState)("agent-cwds"===A.get("settings")),[F,_]=(0,r.useState)(s),[D,P]=(0,r.useState)(b||""),[M,U]=(0,r.useState)(!1),[z,L]=(0,r.useState)(!1),I=(0,r.useRef)(null),[B,O]=(0,r.useState)(null),[T,R]=(0,r.useState)(null),[V,H]=(0,r.useState)(!1),[$,q]=(0,r.useState)(0);(0,r.useEffect)(()=>{if(!E)return;let e=!1;return(async()=>{try{let s=await fetch("/api/projects/".concat(t)),a=await s.json();if(e)return;if(s.ok&&(null==a?void 0:a.success)){let t=!a.data.groupUuid;if(a.data.groupUuid){let s=await fetch("/api/project-groups/".concat(a.data.groupUuid)),r=await s.json();if(t=s.ok&&(null==r?void 0:r.success)&&"public"===r.data.visibility,e)return}R({visibility:a.data.visibility,accessLevel:a.data.accessLevel,publicAllowed:t}),H(!1)}else R(null),H(!0)}catch(t){e||(R(null),H(!0))}})(),()=>{e=!0}},[E,t,$]);let Z=(null==T?void 0:T.visibility)==="private"&&"admin"!==T.accessLevel,K=Z||!T,J=async()=>{var e;U(!0),O(null);let s=await (null==(e=I.current)?void 0:e.validate());if(!s)return void U(!1);let a=await v(t,{name:F,description:D||null,agentCwds:{upserts:s.upserts.map(e=>{let{agentUuid:t,validationRequestUuid:s}=e;return{agentUuid:t,validationRequestUuid:s}}),clears:s.clears}});U(!1),a.success?(window.dispatchEvent(new CustomEvent("project-cwd-updated",{detail:{projectUuid:t}})),S(!1),C.refresh()):a.error.agentUuid&&O({agentUuid:a.error.agentUuid,message:a.error.message})},Q=async()=>{L(!0);let e=await y(t);e&&!e.success&&L(!1)};return(0,a.jsxs)(h.lG,{open:E,onOpenChange:S,children:[(0,a.jsx)(h.zM,{asChild:!0,children:(0,a.jsxs)(u.$,{variant:"outline",size:"sm",className:"gap-1.5 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] bg-card text-[12px] font-normal text-foreground hover:border-primary hover:bg-card",children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),w("dashboard.settings")]})}),(0,a.jsxs)(h.Cf,{className:"flex max-h-[90svh] flex-col gap-0 overflow-hidden rounded-2xl border-0 p-0 sm:max-w-[620px]",children:[(0,a.jsx)(h.c7,{className:"px-7 py-6",children:(0,a.jsx)(h.L3,{className:"text-[20px] font-semibold tracking-tight text-foreground",children:w("projectSettings.title")})}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsxs)(f.tU,{defaultValue:"general",className:"min-h-0 flex-1 gap-0",children:[(0,a.jsx)("div",{className:"px-5 pt-4 sm:px-7",children:(0,a.jsxs)(f.j7,{children:[(0,a.jsx)(f.Xi,{value:"general",children:w("projectAccess.tabs.general")}),(0,a.jsx)(f.Xi,{value:"access",children:w("projectAccess.tabs.access")})]})}),(0,a.jsx)(f.av,{value:"general",className:"min-h-0 overflow-y-auto",children:(0,a.jsxs)("div",{className:"flex flex-col gap-7 p-5 sm:p-7",children:[Z&&(0,a.jsxs)("p",{"data-testid":"settings-locked-hint",className:"flex items-center gap-2 rounded-lg border border-border bg-muted px-3 py-2 text-[12px] text-muted-foreground",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5 shrink-0"}),w("projectAccess.settingsLockedHint")]}),V&&(0,a.jsx)("p",{"data-testid":"settings-access-failed",role:"alert",className:"rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:w("projectAccess.loadFailed")}),(0,a.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:w("projectSettings.basicInfo")}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(m.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.projectName")}),(0,a.jsx)(x.p,{value:F,onChange:e=>_(e.target.value),disabled:K,className:"h-11 rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(m.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.description")}),(0,a.jsx)(p.T,{value:D,onChange:e=>P(e.target.value),disabled:K,rows:3,className:"resize-none rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]})]}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsx)(k.O,{disabled:K,ref:I,projectUuid:t,agentError:B}),(0,a.jsx)(u.$,{onClick:J,disabled:M||K||!F.trim(),className:"w-fit rounded-[10px] bg-primary px-6 text-[13px] font-semibold text-white hover:bg-[#B56A42]",children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("projectSettings.saving")]}):w("projectSettings.saveChanges")}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-[#C4574C] dark:text-[#F0897E]",children:w("projectSettings.dangerZone")}),(0,a.jsx)("div",{className:"rounded-xl border border-[#C4574C40] bg-[#C4574C08] px-[18px] py-4",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("span",{className:"text-[13px] font-semibold text-foreground",children:w("projectSettings.deleteTitle")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:w("projectSettings.deleteDescription")}),Z&&(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:w("projectAccess.deleteLockedHint")})]}),(0,a.jsxs)(j.Lt,{children:[(0,a.jsx)(j.tv,{asChild:!0,children:(0,a.jsx)(u.$,{variant:"destructive",size:"sm",disabled:K,className:"ml-4 shrink-0 rounded-lg bg-[#C4574C] px-[18px] text-[12px] font-medium hover:bg-[#B3463B]",children:w("common.delete")})}),(0,a.jsxs)(j.EO,{children:[(0,a.jsxs)(j.wd,{children:[(0,a.jsx)(j.r7,{children:w("projectOverview.deleteProject")}),(0,a.jsx)(j.$v,{children:w("projectOverview.deleteProjectConfirm",{name:s})})]}),(0,a.jsxs)(j.ck,{children:[(0,a.jsx)(j.Zr,{children:w("common.cancel")}),(0,a.jsx)(j.Rx,{variant:"destructive",onClick:Q,disabled:z,children:z?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("common.delete")]}):w("common.delete")})]})]})]})]})})]})]})}),(0,a.jsx)(f.av,{value:"access",className:"min-h-0 overflow-y-auto",children:(0,a.jsx)("div",{className:"p-5 sm:p-7",children:T?(0,a.jsx)(N.z,{projectUuid:t,visibility:T.visibility,accessLevel:T.accessLevel,publicAllowed:T.publicAllowed,onVisibilityChange:e=>{R(t=>t?{...t,visibility:e}:t),C.refresh()},onMembersChanged:()=>q(e=>e+1)}):V?(0,a.jsx)("p",{className:"text-[12px] text-destructive",children:w("projectAccess.loadFailed")}):(0,a.jsxs)("p",{className:"flex items-center gap-2 text-[12px] text-muted-foreground",children:[(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}),w("projectAccess.loading")]})})})]})]})]})}},43671:(e,t,s)=>{Promise.resolve().then(s.bind(s,74567)),Promise.resolve().then(s.bind(s,64197)),Promise.resolve().then(s.bind(s,41859)),Promise.resolve().then(s.bind(s,11179)),Promise.resolve().then(s.bind(s,71784))},64197:(e,t,s)=>{"use strict";s.d(t,{ProjectCwdSummary:()=>x});var a=s(60200),r=s(81476),n=s(25588),l=s(96222),d=s(69351),i=s(55544),o=s(26185),c=s(40058),u=s(58851);function x(e){let{projectUuid:t}=e,s=(0,n.c)("fixedCwdAnchor"),x=(0,i.kz)(),[m,p]=(0,r.useState)([]),h=(0,r.useCallback)(async()=>{var e,s;let a=await (0,l.tm)("/api/projects/".concat(encodeURIComponent(t),"/agent-cwds"));if(!a.ok)return;let r=await a.json();p((null!=(s=null==r||null==(e=r.data)?void 0:e.agents)?s:[]).filter(e=>{var t;return null==(t=e.preference)?void 0:t.cwd}))},[t]);return((0,r.useEffect)(()=>{let e=!1,s=e=>{let s=e.detail;(null==s?void 0:s.projectUuid)===t&&h().catch(()=>p([]))};return h().catch(()=>{e||p([])}),window.addEventListener("project-cwd-updated",s),()=>{e=!0,window.removeEventListener("project-cwd-updated",s)}},[h,t]),0===m.length)?null:(0,a.jsx)(u.Bc,{children:(0,a.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5","aria-label":s("title"),children:m.map(e=>{let{agent:t,preference:r}=e;return(0,a.jsxs)(u.m_,{children:[(0,a.jsx)(u.k$,{asChild:!0,children:(0,a.jsxs)(c.$,{type:"button",variant:"ghost","aria-label":s("openAgentChat",{agent:t.name}),onClick:()=>null==x?void 0:x.openChatForAgent(t.uuid,{host:r.host,cwd:r.cwd}),className:"inline-flex h-auto max-w-full items-center gap-1.5 rounded-md border border-border bg-card px-2 py-1 text-[11px] font-normal text-muted-foreground hover:bg-accent hover:text-accent-foreground",children:[(0,a.jsx)(o.AgentAvatar,{name:t.name,size:16,className:"rounded-full"}),(0,a.jsx)("span",{className:"max-w-[min(12rem,50vw)] truncate font-medium text-foreground",children:t.name}),(0,a.jsx)("span",{"data-testid":"cwd-agent-dot",className:"size-2 shrink-0 rounded-full",style:{backgroundColor:(0,d.j)(t.name)},"aria-hidden":!0})]})}),(0,a.jsxs)(u.ZI,{side:"bottom",className:"flex items-center gap-2",children:[(0,a.jsx)(o.AgentAvatar,{name:t.name,size:"sm",className:"rounded-md"}),(0,a.jsx)("span",{className:"font-mono",children:r.cwd})]})]},t.uuid)})})})}},65005:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("user-plus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]])},74567:(e,t,s)=>{"use strict";s.d(t,{IdeaTracker:()=>ea});var a=s(60200),r=s(25588),n=s(81476),l=s(86461),d=s(51250);let i=(0,s(73326).A)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var o=s(26657),c=s(40058),u=s(74315),x=s(99226),m=s(44072),p=s(34775),h=s(38060),g=s(50759),f=s(82167),j=s(70246),b=s(7685),v=s(32288),y=s(47297),k=s(3562),N=s(74046),w=s(48612),A=s(55544),C=s(13636),E=s(28201),S=s(88213),F=s(75507),_=s(636),D=s(50552);function P(e){let{references:t,isLoading:s}=e,n=(0,r.c)();return(0,a.jsx)("div",{className:"space-y-2",children:s?(0,a.jsxs)("p",{className:"flex items-center gap-1.5 text-xs italic text-muted-foreground",children:[(0,a.jsx)(E.A,{className:"h-3 w-3 animate-spin"}),n("references.loading")]}):0===t.length?(0,a.jsx)("p",{className:"text-xs italic text-muted-foreground",children:n("references.empty")}):t.map(e=>{var t,s;let r=(0,_.N2)(e.type)?_.qQ[e.type]:null,l=null!=(t=null==r?void 0:r.icon)?t:y.A;return(0,a.jsxs)("div",{className:"rounded-lg border border-border bg-background p-2.5",children:[(0,a.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,a.jsxs)(F.E,{className:"gap-1 border-0 text-[10px] font-medium ".concat(null!=(s=null==r?void 0:r.badgeClass)?s:"bg-secondary text-muted-foreground"),children:[(0,a.jsx)(l,{className:"h-3 w-3"}),r?n(r.labelKey):e.type]})}),(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,a.jsx)("span",{className:"truncate",children:e.title}),(0,a.jsx)(S.A,{className:"h-3 w-3 shrink-0"})]}),(0,a.jsx)(D.L,{notes:e.notes})]},e.uuid)})})}let M={open:"open",researching:"researching",answer_questions:"answerQuestions",planning:"planning",review_proposal:"reviewProposal",building:"building",verify_work:"verifyWork",done:"done",closed:"closed"},U={open:"text-muted-foreground",researching:"text-[#7F77DD] dark:text-[#A99FF0]",answer_questions:"text-[#C47A20] dark:text-[#E0A050]",planning:"text-[#7F77DD] dark:text-[#A99FF0]",review_proposal:"text-[#C47A20] dark:text-[#E0A050]",building:"text-[#7F77DD] dark:text-[#A99FF0]",verify_work:"text-[#C47A20] dark:text-[#E0A050]",done:"text-[#1D9E75] dark:text-[#4FD1A0]",closed:"text-muted-foreground"};function z(e){var t,s,l;let{idea:i,onClick:o,depth:c=0,showConnector:u=!1}=e,x=(0,r.c)("ideaTracker"),m=(0,r.c)(),p=i.badgeHint?M[i.badgeHint]:null,h=i.badgeHint&&U[i.badgeHint]||"text-muted-foreground",g=null!=(t=i.childCount)?t:0,b=null!=(s=i.referenceCount)?s:0,E=(0,A.kz)(),S=null!=(l=null==E?void 0:E.activeSessionsByIdea.get(i.uuid))?l:[],[F,_]=(0,n.useState)(!1),[D,z]=(0,n.useState)([]),[L,I]=(0,n.useState)(!1),[B,O]=(0,n.useState)(!1),T=!0===i.isContainer;return(0,a.jsxs)(j.Nt,{open:F,onOpenChange:e=>{_(e),!e||B||L||(O(!0),I(!0),(0,C.j)("idea",i.uuid).then(e=>{e.success&&z(e.references),I(!1)}))},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3.5 py-3 transition-colors ".concat(o?"cursor-pointer hover:bg-background":""),onClick:o?()=>o(i.uuid):void 0,style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[u&&(0,a.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,a.jsx)("span",{className:"shrink-0 text-[11px] font-semibold tracking-wide ".concat(T?"text-primary":"font-normal tracking-normal text-muted-foreground"),children:x(T?"lineage.typeTheme":"lineage.typeIdea")}),(0,a.jsx)("span",{className:"truncate text-[13px] text-foreground ".concat(T?"font-medium":""),children:i.title}),p&&(0,a.jsx)("span",{className:"shrink-0 rounded bg-secondary px-1.5 py-0.5 text-[11px] ".concat(h),children:x("badge.".concat(p))}),T&&i.childProgress&&i.childProgress.total>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",title:x("lineage.childrenDone",{done:i.childProgress.done,total:i.childProgress.total}),children:[(0,a.jsx)(N.C,{done:i.childProgress.done,total:i.childProgress.total,size:12,stroke:2}),i.childProgress.done,"/",i.childProgress.total]}):g>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",children:[(0,a.jsx)(d.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),x("lineage.derivedCount",{count:g})]}):null,b>0&&(0,a.jsxs)(j.R6,{onClick:e=>e.stopPropagation(),"aria-label":m("references.countLabel",{count:b}),title:m("references.countLabel",{count:b}),className:"group/refs flex shrink-0 items-center gap-1 rounded bg-secondary px-1.5 py-0.5 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground",children:[(0,a.jsx)(f.A,{className:"h-2.5 w-2.5 transition-transform ".concat(F?"rotate-90":""),"aria-hidden":!0}),(0,a.jsx)(y.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),b]}),S.length>0&&E&&(0,a.jsx)(w.U,{sessions:S,onSelect:E.openChatForActiveSession,surface:"tracker"})]}),(0,a.jsx)("span",{className:"shrink-0 pl-4 text-[12px] text-muted-foreground",children:(0,k.s)(i.createdAt)})]}),b>0&&(0,a.jsx)(j.Ke,{onClick:e=>e.stopPropagation(),children:(0,a.jsx)("div",{className:"px-3.5 pb-3",style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:(0,a.jsx)(P,{references:D,isLoading:L})})})]})}let L={human_conduct_required:{fill:"#7F77DD"},in_progress:{fill:"#378ADD"},todo:{stroke:"#888780"},done:{fill:"#1D9E75"}},I={todo:"todo",in_progress:"inProgress",human_conduct_required:"humanConductRequired",done:"done"};function B(e){let{status:t,ideas:s,defaultOpen:l=!0,onIdeaClick:d}=e,i=(0,r.c)("ideaTracker"),o=s.length>0,[c,u]=(0,n.useState)(!!o&&l),x=I[t]||"todo",m=L[t]||L.todo;return(0,a.jsxs)(j.Nt,{open:c,onOpenChange:u,children:[(0,a.jsxs)(j.R6,{className:"group flex w-full cursor-pointer items-center gap-2 px-0 pb-1.5 pt-0",children:[c?(0,a.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}):(0,a.jsx)(f.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}),(0,a.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:m.fill,border:m.stroke?"1.5px solid ".concat(m.stroke):void 0}}),(0,a.jsx)("span",{className:"text-[13px] font-medium transition-colors group-hover:text-foreground ".concat(o?"text-foreground/80":"text-muted-foreground/60"),children:i("status.".concat(x))}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground transition-colors group-hover:text-foreground",children:s.length})]}),o&&(0,a.jsx)(j.Ke,{children:(0,a.jsx)("div",{className:"overflow-hidden rounded-lg bg-card",children:s.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.uuid,badgeInside:!0,children:(0,a.jsx)(z,{idea:e,onClick:d})})]},e.uuid))})})]})}function O(e){let{ideas:t,onIdeaClick:s}=e,r=(0,n.useMemo)(()=>(function(e){let t=new Map(e.map(e=>[e.uuid,e])),s=new Map,a=[];for(let l of e){var r,n;let e=null!=(r=l.parentUuid)?r:null;if(e&&t.has(e)){let t=null!=(n=s.get(e))?n:[];t.push(l),s.set(e,t)}else a.push(l)}let l=[],d=new Set,i=(e,t,a)=>{var r;if(!d.has(e.uuid))for(let n of(d.add(e.uuid),a.push({idea:e,depth:t,showConnector:t>0}),null!=(r=s.get(e.uuid))?r:[]))i(n,t+1,a)};for(let e of a){let t=[];i(e,0,t),t.length>0&&l.push(t)}for(let t of e)d.has(t.uuid)||(d.add(t.uuid),l.push([{idea:t,depth:0,showConnector:!1}]));return l})(t),[t]);return(0,a.jsx)("div",{className:"space-y-2.5",children:r.map(e=>(0,a.jsx)("div",{"data-testid":"lineage-tree-group",className:"overflow-hidden rounded-lg bg-card",children:e.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.idea.uuid,badgeInside:!0,children:(0,a.jsx)(z,{idea:e.idea,onClick:s,depth:e.depth,showConnector:e.showConnector})})]},e.idea.uuid))},e[0].idea.uuid))})}let T=["human_conduct_required","in_progress","todo","done"];function R(e){var t;let{projectUuid:s,initialData:l,viewMode:d,onIdeaClick:i,onNewIdea:u,onEmptyChange:g}=e,f=(0,r.c)("ideaTracker"),[j,b]=(0,n.useState)(null!=(t=null==l?void 0:l.groups)?t:{}),[v,y]=(0,n.useState)(!l),[k,N]=(0,n.useState)(null),w=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(s,"/ideas/tracker")),t=await e.json();t.success&&t.data?(b(t.data.groups),N(null)):N(t.error||f("error.loadFailed"))}catch(e){N(f("error.loadFailed"))}finally{y(!1)}},[s,f]);(0,h.eV)("idea",w),(0,h.eV)("proposal",w),(0,h.eV)("task",w),(0,n.useEffect)(()=>{l||w()},[w,l]);let A=T.reduce((e,t)=>e+(j[t]||[]).length,0);(0,n.useEffect)(()=>{v||null==g||g(0===A)},[A,v,g]);let C=T.flatMap(e=>j[e]||[]);return v?(0,a.jsx)("div",{className:"space-y-4",children:[1,2,3].map(e=>(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(p.E,{className:"h-5 w-32"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"})]},e))}):k&&0===Object.keys(j).length?(0,a.jsxs)("div",{className:"flex flex-col items-center gap-4 py-16",children:[(0,a.jsx)(x.A,{className:"h-10 w-10 text-[#E65100] dark:text-[#F0A050]"}),(0,a.jsx)("p",{className:"text-[13px] text-muted-foreground",children:k}),(0,a.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>{y(!0),N(null),w()},className:"border-border text-foreground",children:f("actions.retry")})]}):0===A?(0,a.jsxs)("div",{className:"flex min-h-[60vh] flex-col items-center justify-center gap-3",children:[(0,a.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:(0,a.jsx)(m.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,a.jsx)("p",{className:"text-[13px] font-medium text-muted-foreground",children:f("empty.noIdeas")}),(0,a.jsx)("p",{className:"max-w-[260px] text-center text-[12px] leading-relaxed text-muted-foreground",children:f("empty.getStarted")}),u&&(0,a.jsxs)(c.$,{onClick:u,size:"sm",className:"mt-2 gap-1.5 rounded-md bg-primary px-4 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(o.A,{className:"h-4 w-4"}),f("actions.newIdea")]})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[k&&Object.keys(j).length>0&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:k}),"tree"===d?(0,a.jsx)(O,{ideas:C,onIdeaClick:i}):(0,a.jsx)("div",{className:"space-y-4",children:T.map(e=>{let t=j[e]||[];return 0===t.length?null:(0,a.jsx)(B,{status:e,ideas:t,defaultOpen:"done"!==e,onIdeaClick:i},e)})})]})}var V=s(25554),H=s.n(V),$=s(16272),q=s(79099),Z=s(30782),K=s(30244),J=s(80513);let Q=[{key:"todo",bg:"#E65100"},{key:"inProgress",bg:"#5A9E6F"},{key:"toVerify",bg:"#7B1FA2"},{key:"done",bg:"#00796B"}],X={idea:"bg-primary",task:"bg-[#5A9E6F]",proposal:"bg-[#1976D2]",document:"bg-[#9A9A9A]"};function G(e){let{projectUuid:t,initialData:s}=e,l=(0,r.c)(),d=(0,r.c)("ideaTracker"),[i,o]=(0,n.useState)(null!=s?s:null),[c,u]=(0,n.useState)(!s),x=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(t,"/stats"));if(!e.ok)return;let s=await e.json();s.success&&o(s.data)}finally{u(!1)}},[t]);if((0,n.useEffect)(()=>{s||x()},[x,s]),(0,h.eV)(["idea","task","proposal","document"],x),c)return(0,a.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,a.jsx)(E.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(!i)return null;let{stats:p,recentActivities:g}=i,f=[{label:d("stats.totalIdeas"),value:p.ideas.total,badge:p.ideas.open>0?d("stats.openCount",{count:p.ideas.open}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/dashboard"),iconBg:"bg-[#FFF3E0] dark:bg-[#3a2a12]",icon:(0,a.jsx)(m.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"})},{label:d("stats.totalTasks"),value:p.tasks.total,badge:p.tasks.inProgress>0?d("stats.activeCount",{count:p.tasks.inProgress}):null,badgeStyle:"bg-[#5A9E6F20] text-[#5A9E6F] dark:text-[#6FD19A]",href:"/projects/".concat(t,"/tasks"),iconBg:"bg-[#E3F2FD] dark:bg-[#13253a]",icon:(0,a.jsx)(Z.A,{className:"h-5 w-5 text-[#1976D2] dark:text-[#5AA9F0]"})},{label:d("stats.totalProposals"),value:p.proposals.total,badge:p.proposals.pending>0?d("stats.pendingCount",{count:p.proposals.pending}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/proposals"),iconBg:"bg-[#F3E5F5] dark:bg-[#281630]",icon:(0,a.jsx)(K.A,{className:"h-5 w-5 text-[#7B1FA2] dark:text-[#C98FE0]"})},{label:d("stats.totalDocuments"),value:p.documents.total,badge:null,badgeStyle:"",href:"/projects/".concat(t,"/documents"),iconBg:"bg-[#E8F5E9] dark:bg-[#14281a]",icon:(0,a.jsx)(J.A,{className:"h-5 w-5 text-[#5A9E6F] dark:text-[#6FD19A]"})}],j=[p.tasks.todo,p.tasks.inProgress,p.tasks.toVerify,p.tasks.done],b=p.tasks.total,v=[{label:d("stats.todoCount",{count:p.tasks.todo}),color:"#E65100"},{label:d("stats.inProgressCount",{count:p.tasks.inProgress}),color:"#5A9E6F"},{label:d("stats.toVerifyCount",{count:p.tasks.toVerify}),color:"#7B1FA2"},{label:d("stats.doneCount",{count:p.tasks.done}),color:"#00796B"}];return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3 md:gap-4 lg:grid-cols-4",children:f.map(e=>(0,a.jsx)(H(),{href:e.href,children:(0,a.jsxs)($.Zp,{className:"cursor-pointer rounded-2xl border-0 bg-card p-3 shadow-none transition-all hover:shadow-md md:p-5",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between md:mb-3.5",children:[(0,a.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg md:h-10 md:w-10 md:rounded-xl ".concat(e.iconBg),children:e.icon}),e.badge&&(0,a.jsx)("span",{className:"hidden rounded-lg px-2.5 py-1 text-[11px] font-medium sm:inline ".concat(e.badgeStyle),children:e.badge})]}),(0,a.jsx)("div",{className:"text-2xl font-semibold leading-none tracking-tight text-foreground md:text-[32px]",children:e.value}),(0,a.jsx)("div",{className:"mt-0.5 text-[12px] text-muted-foreground md:text-[13px]",children:e.label})]})},e.label))}),(0,a.jsxs)("div",{className:"grid min-h-0 gap-5 lg:grid-cols-2",children:[(0,a.jsxs)($.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.taskPipeline")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:d("stats.totalCount",{count:b})})]}),b>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"mb-5 flex h-3 w-full overflow-hidden rounded-md",children:j.map((e,t)=>e>0?(0,a.jsx)("div",{className:"h-full",style:{width:"".concat(e/b*100,"%"),backgroundColor:Q[t].bg}},Q[t].key):null)}),(0,a.jsx)("div",{className:"flex flex-wrap gap-5",children:v.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("div",{className:"h-2.5 w-2.5 rounded-sm",style:{backgroundColor:e.color}}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:e.label})]},e.color))})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noTasks")})]}),(0,a.jsxs)($.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.recentActivity")}),(0,a.jsx)(H(),{href:"/projects/".concat(t,"/activity"),className:"text-[12px] font-medium text-primary hover:underline",children:d("stats.viewAll")})]}),g.length>0?(0,a.jsx)("div",{className:"flex flex-col",children:g.map((e,t)=>{let s=X[e.targetType]||"bg-[#9A9A9A]";return(0,a.jsxs)("div",{className:"flex items-start gap-3 py-3 ".concat(t<g.length-1?"border-b border-secondary":""),children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full ".concat(s)}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"text-[13px] text-foreground",children:[e.actorName," ",e.action]}),(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:(0,q.fw)(e.createdAt,l)})]})]},e.uuid)})}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noActivity")})]})]})]})}var W=s(11064),Y=s(25531),ee=s(69189);let et=["ideas","lineage","stats"],es=e=>"chorus:dashboard-view:".concat(e);function ea(e){let{projectUuid:t,projectName:s,currentUserUuid:x,initialTrackerData:m,initialStatsData:p,initialSelectedIdeaUuid:h}=e,g=(0,r.c)("ideaTracker"),f=(0,ee.F7)(),[j,b]=(0,n.useState)(()=>{var e;return(e=null==m?void 0:m.groups)&&Object.values(e).some(e=>e.some(e=>{var t;return!!e.parentUuid||(null!=(t=e.childCount)?t:0)>0}))?"lineage":"ideas"}),[v,y]=(0,n.useState)(!1),k=(0,n.useRef)(null),N=(0,n.useRef)(null),w=e=>{k.current=e.currentTarget,y(!0)};(0,n.useEffect)(()=>{let e=function(e){let t=null;try{t=window.localStorage.getItem(es(e))}catch(e){return null}return et.includes(t)?t:null}(t);e&&b(e)},[t]);let[A,C]=(0,n.useState)(()=>!!m&&0===Object.values(m.groups).reduce((e,t)=>e+t.length,0)),E="/projects/".concat(t,"/dashboard"),{selectedId:S,openPanel:F,closePanel:_}=(0,u.T)(E,h),D=[{id:"ideas",label:g("tabs.ideas"),icon:l.A},{id:"lineage",label:g("tabs.lineage"),icon:d.A},{id:"stats",label:g("tabs.stats"),icon:i}];return(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("div",{className:"inline-flex items-center gap-0.5 rounded-lg bg-[#EFEBE3] dark:bg-[#201e1a] p-0.5",children:D.map(e=>{let{id:s,label:r,icon:n}=e;return(0,a.jsxs)("button",{type:"button",onClick:()=>(e=>{b(e);try{window.localStorage.setItem(es(t),e)}catch(e){}})(s),"aria-pressed":j===s,className:"flex cursor-pointer items-center gap-1.5 rounded-md px-3 py-1.5 text-[12px] transition-colors ".concat(j===s?"bg-card font-medium text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(n,{className:"h-3.5 w-3.5"}),r]},s)})}),f&&"stats"!==j&&!A&&(0,a.jsxs)(c.$,{ref:N,onClick:w,size:"sm",className:"gap-1.5 rounded-md bg-primary px-3.5 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(o.A,{className:"h-4 w-4"}),g("actions.newIdea")]})]}),"stats"===j?(0,a.jsx)(G,{projectUuid:t,initialData:p}):(0,a.jsx)(R,{projectUuid:t,initialData:m,viewMode:"lineage"===j?"tree":"flat",onIdeaClick:F,onNewIdea:f?w:void 0,onEmptyChange:C}),(0,a.jsx)(Y.i,{open:v,onOpenChange:y,onCloseAutoFocus:e=>{var t;e.preventDefault();let s=(null==(t=k.current)?void 0:t.isConnected)?k.current:N.current;null==s||s.focus(),k.current=null},projectUuid:t,projectName:s,onCreated:e=>F(e)}),S&&(0,a.jsx)(W.D,{ideaUuid:S,projectUuid:t,currentUserUuid:x,onClose:_,onNavigate:F})]})}},78795:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]])},86461:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])}},e=>{e.O(0,[32271,87326,93151,41752,30996,57084,68381,71444,92037,41677,25554,6893,74414,34216,7659,76404,25452,33218,10201,38803,23593,10006,26441,73632,63472,65208,8575,5899,86791,80395,75556,16198,36244,6497,40309,70762,56161,98521,73849,46608,77358],()=>e(e.s=43671)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[85e3],{11179:(e,t,s)=>{"use strict";s.d(t,{CollapsibleMarkdown:()=>i});var a=s(60200),r=s(81476),n=s(25588),l=s(40058),d=s(64035);function i(e){let{content:t,className:s}=e,i=(0,n.c)(),[o,c]=(0,r.useState)(!1),[u,x]=(0,r.useState)(!1),m=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=m.current;if(!e)return;let t=()=>x(e.scrollHeight>81);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[t]),(0,a.jsxs)("div",{className:s,children:[(0,a.jsx)("div",{ref:m,className:"overflow-hidden [&_h1]:text-sm [&_h1]:font-semibold [&_h1]:mt-2 [&_h1]:mb-1 [&_h2]:text-[13px] [&_h2]:font-semibold [&_h2]:mt-2 [&_h2]:mb-1 [&_h3]:text-[13px] [&_h3]:font-semibold [&_h3]:mt-1.5 [&_h3]:mb-0.5 [&_p]:my-1 [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_p:first-child]:mt-0 [&_p:last-child]:mb-0",style:o?void 0:{maxHeight:80},children:(0,a.jsx)(d.MarkdownContent,{children:t})}),u&&(0,a.jsx)(l.$,{variant:"link",size:"sm",onClick:()=>c(e=>!e),className:"h-auto p-0 text-[#E07A5F] dark:text-[#F0A088] text-xs font-medium mt-1",children:i(o?"common.showLess":"common.showMore")})]})}},22611:(e,t,s)=>{"use strict";s.d(t,{ProjectSettingsModal:()=>w});var a=s(60200),r=s(81476),n=s(45719),l=s(32022),d=s(25588),i=s(38028),o=s(95726),c=s(28201),u=s(40058),x=s(30474),m=s(45200),p=s(16852),h=s(67566),g=s(48135),f=s(65642),j=s(2745),b=s(42885);let v=(0,b.createServerReference)("60df9ed85bd0d79a7ce1f12c6e548c78fb1f7af8ee",b.callServer,void 0,b.findSourceMapURL,"updateProjectAction"),y=(0,b.createServerReference)("40bc67afa3e4468b08c3a7fa8cac3dfe145508424b",b.callServer,void 0,b.findSourceMapURL,"deleteProjectAction");var k=s(99617),N=s(7252);function w(e){let{projectUuid:t,projectName:s,projectDescription:b}=e,w=(0,d.c)(),A=(0,n.useSearchParams)(),C=(0,l.r)(),[E,S]=(0,r.useState)("agent-cwds"===A.get("settings")),[F,_]=(0,r.useState)(s),[D,P]=(0,r.useState)(b||""),[M,U]=(0,r.useState)(!1),[z,L]=(0,r.useState)(!1),I=(0,r.useRef)(null),[B,O]=(0,r.useState)(null),[T,R]=(0,r.useState)(null),[V,H]=(0,r.useState)(!1),[$,q]=(0,r.useState)(0);(0,r.useEffect)(()=>{if(!E)return;let e=!1;return(async()=>{try{let s=await fetch("/api/projects/".concat(t)),a=await s.json();if(e)return;if(s.ok&&(null==a?void 0:a.success)){let t=!a.data.groupUuid;if(a.data.groupUuid){let s=await fetch("/api/project-groups/".concat(a.data.groupUuid)),r=await s.json();if(t=s.ok&&(null==r?void 0:r.success)&&"public"===r.data.visibility,e)return}R({visibility:a.data.visibility,accessLevel:a.data.accessLevel,publicAllowed:t}),H(!1)}else R(null),H(!0)}catch(t){e||(R(null),H(!0))}})(),()=>{e=!0}},[E,t,$]);let Z=(null==T?void 0:T.visibility)==="private"&&"admin"!==T.accessLevel,K=Z||!T,J=async()=>{var e;U(!0),O(null);let s=await (null==(e=I.current)?void 0:e.validate());if(!s)return void U(!1);let a=await v(t,{name:F,description:D||null,agentCwds:{upserts:s.upserts.map(e=>{let{agentUuid:t,validationRequestUuid:s}=e;return{agentUuid:t,validationRequestUuid:s}}),clears:s.clears}});U(!1),a.success?(window.dispatchEvent(new CustomEvent("project-cwd-updated",{detail:{projectUuid:t}})),S(!1),C.refresh()):a.error.agentUuid&&O({agentUuid:a.error.agentUuid,message:a.error.message})},Q=async()=>{L(!0);let e=await y(t);e&&!e.success&&L(!1)};return(0,a.jsxs)(h.lG,{open:E,onOpenChange:S,children:[(0,a.jsx)(h.zM,{asChild:!0,children:(0,a.jsxs)(u.$,{variant:"outline",size:"sm",className:"gap-1.5 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] bg-card text-[12px] font-normal text-foreground hover:border-primary hover:bg-card",children:[(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),w("dashboard.settings")]})}),(0,a.jsxs)(h.Cf,{className:"flex max-h-[90svh] flex-col gap-0 overflow-hidden rounded-2xl border-0 p-0 sm:max-w-[620px]",children:[(0,a.jsx)(h.c7,{className:"px-7 py-6",children:(0,a.jsx)(h.L3,{className:"text-[20px] font-semibold tracking-tight text-foreground",children:w("projectSettings.title")})}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsxs)(f.tU,{defaultValue:"general",className:"min-h-0 flex-1 gap-0",children:[(0,a.jsx)("div",{className:"px-5 pt-4 sm:px-7",children:(0,a.jsxs)(f.j7,{children:[(0,a.jsx)(f.Xi,{value:"general",children:w("projectAccess.tabs.general")}),(0,a.jsx)(f.Xi,{value:"access",children:w("projectAccess.tabs.access")})]})}),(0,a.jsx)(f.av,{value:"general",className:"min-h-0 overflow-y-auto",children:(0,a.jsxs)("div",{className:"flex flex-col gap-7 p-5 sm:p-7",children:[Z&&(0,a.jsxs)("p",{"data-testid":"settings-locked-hint",className:"flex items-center gap-2 rounded-lg border border-border bg-muted px-3 py-2 text-[12px] text-muted-foreground",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5 shrink-0"}),w("projectAccess.settingsLockedHint")]}),V&&(0,a.jsx)("p",{"data-testid":"settings-access-failed",role:"alert",className:"rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:w("projectAccess.loadFailed")}),(0,a.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:w("projectSettings.basicInfo")}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(m.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.projectName")}),(0,a.jsx)(x.p,{value:F,onChange:e=>_(e.target.value),disabled:K,className:"h-11 rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)(m.J,{className:"text-[12px] font-medium text-muted-foreground",children:w("projectSettings.description")}),(0,a.jsx)(p.T,{value:D,onChange:e=>P(e.target.value),disabled:K,rows:3,className:"resize-none rounded-[10px] border-[#E5E2DC] dark:border-[#2a2a2e] text-[14px] text-foreground focus-visible:ring-primary"})]})]}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsx)(k.O,{disabled:K,ref:I,projectUuid:t,agentError:B}),(0,a.jsx)(u.$,{onClick:J,disabled:M||K||!F.trim(),className:"w-fit rounded-[10px] bg-primary px-6 text-[13px] font-semibold text-white hover:bg-[#B56A42]",children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("projectSettings.saving")]}):w("projectSettings.saveChanges")}),(0,a.jsx)(g.Separator,{className:"bg-[#E5E2DC] dark:bg-[#26241f]"}),(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("h3",{className:"text-[14px] font-semibold text-[#C4574C] dark:text-[#F0897E]",children:w("projectSettings.dangerZone")}),(0,a.jsx)("div",{className:"rounded-xl border border-[#C4574C40] bg-[#C4574C08] px-[18px] py-4",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("span",{className:"text-[13px] font-semibold text-foreground",children:w("projectSettings.deleteTitle")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:w("projectSettings.deleteDescription")}),Z&&(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:w("projectAccess.deleteLockedHint")})]}),(0,a.jsxs)(j.Lt,{children:[(0,a.jsx)(j.tv,{asChild:!0,children:(0,a.jsx)(u.$,{variant:"destructive",size:"sm",disabled:K,className:"ml-4 shrink-0 rounded-lg bg-[#C4574C] px-[18px] text-[12px] font-medium hover:bg-[#B3463B]",children:w("common.delete")})}),(0,a.jsxs)(j.EO,{children:[(0,a.jsxs)(j.wd,{children:[(0,a.jsx)(j.r7,{children:w("projectOverview.deleteProject")}),(0,a.jsx)(j.$v,{children:w("projectOverview.deleteProjectConfirm",{name:s})})]}),(0,a.jsxs)(j.ck,{children:[(0,a.jsx)(j.Zr,{children:w("common.cancel")}),(0,a.jsx)(j.Rx,{variant:"destructive",onClick:Q,disabled:z,children:z?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),w("common.delete")]}):w("common.delete")})]})]})]})]})})]})]})}),(0,a.jsx)(f.av,{value:"access",className:"min-h-0 overflow-y-auto",children:(0,a.jsx)("div",{className:"p-5 sm:p-7",children:T?(0,a.jsx)(N.z,{projectUuid:t,visibility:T.visibility,accessLevel:T.accessLevel,publicAllowed:T.publicAllowed,onVisibilityChange:e=>{R(t=>t?{...t,visibility:e}:t),C.refresh()},onMembersChanged:()=>q(e=>e+1)}):V?(0,a.jsx)("p",{className:"text-[12px] text-destructive",children:w("projectAccess.loadFailed")}):(0,a.jsxs)("p",{className:"flex items-center gap-2 text-[12px] text-muted-foreground",children:[(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}),w("projectAccess.loading")]})})})]})]})]})}},30782:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},43671:(e,t,s)=>{Promise.resolve().then(s.bind(s,74567)),Promise.resolve().then(s.bind(s,64197)),Promise.resolve().then(s.bind(s,22611)),Promise.resolve().then(s.bind(s,11179)),Promise.resolve().then(s.bind(s,71784))},64197:(e,t,s)=>{"use strict";s.d(t,{ProjectCwdSummary:()=>x});var a=s(60200),r=s(81476),n=s(25588),l=s(96222),d=s(69351),i=s(55544),o=s(26185),c=s(40058),u=s(58851);function x(e){let{projectUuid:t}=e,s=(0,n.c)("fixedCwdAnchor"),x=(0,i.kz)(),[m,p]=(0,r.useState)([]),h=(0,r.useCallback)(async()=>{var e,s;let a=await (0,l.tm)("/api/projects/".concat(encodeURIComponent(t),"/agent-cwds"));if(!a.ok)return;let r=await a.json();p((null!=(s=null==r||null==(e=r.data)?void 0:e.agents)?s:[]).filter(e=>{var t;return null==(t=e.preference)?void 0:t.cwd}))},[t]);return((0,r.useEffect)(()=>{let e=!1,s=e=>{let s=e.detail;(null==s?void 0:s.projectUuid)===t&&h().catch(()=>p([]))};return h().catch(()=>{e||p([])}),window.addEventListener("project-cwd-updated",s),()=>{e=!0,window.removeEventListener("project-cwd-updated",s)}},[h,t]),0===m.length)?null:(0,a.jsx)(u.Bc,{children:(0,a.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5","aria-label":s("title"),children:m.map(e=>{let{agent:t,preference:r}=e;return(0,a.jsxs)(u.m_,{children:[(0,a.jsx)(u.k$,{asChild:!0,children:(0,a.jsxs)(c.$,{type:"button",variant:"ghost","aria-label":s("openAgentChat",{agent:t.name}),onClick:()=>null==x?void 0:x.openChatForAgent(t.uuid,{host:r.host,cwd:r.cwd}),className:"inline-flex h-auto max-w-full items-center gap-1.5 rounded-md border border-border bg-card px-2 py-1 text-[11px] font-normal text-muted-foreground hover:bg-accent hover:text-accent-foreground",children:[(0,a.jsx)(o.AgentAvatar,{name:t.name,size:16,className:"rounded-full"}),(0,a.jsx)("span",{className:"max-w-[min(12rem,50vw)] truncate font-medium text-foreground",children:t.name}),(0,a.jsx)("span",{"data-testid":"cwd-agent-dot",className:"size-2 shrink-0 rounded-full",style:{backgroundColor:(0,d.j)(t.name)},"aria-hidden":!0})]})}),(0,a.jsxs)(u.ZI,{side:"bottom",className:"flex items-center gap-2",children:[(0,a.jsx)(o.AgentAvatar,{name:t.name,size:"sm",className:"rounded-md"}),(0,a.jsx)("span",{className:"font-mono",children:r.cwd})]})]},t.uuid)})})})}},65005:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("user-plus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]])},74567:(e,t,s)=>{"use strict";s.d(t,{IdeaTracker:()=>ea});var a=s(60200),r=s(25588),n=s(81476),l=s(86461),d=s(51250);let i=(0,s(73326).A)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var o=s(26657),c=s(40058),u=s(74315),x=s(99226),m=s(44072),p=s(34775),h=s(38060),g=s(50759),f=s(82167),j=s(70246),b=s(7685),v=s(32288),y=s(47297),k=s(3562),N=s(74046),w=s(48612),A=s(55544),C=s(84041),E=s(28201),S=s(88213),F=s(75507),_=s(636),D=s(50552);function P(e){let{references:t,isLoading:s}=e,n=(0,r.c)();return(0,a.jsx)("div",{className:"space-y-2",children:s?(0,a.jsxs)("p",{className:"flex items-center gap-1.5 text-xs italic text-muted-foreground",children:[(0,a.jsx)(E.A,{className:"h-3 w-3 animate-spin"}),n("references.loading")]}):0===t.length?(0,a.jsx)("p",{className:"text-xs italic text-muted-foreground",children:n("references.empty")}):t.map(e=>{var t,s;let r=(0,_.N2)(e.type)?_.qQ[e.type]:null,l=null!=(t=null==r?void 0:r.icon)?t:y.A;return(0,a.jsxs)("div",{className:"rounded-lg border border-border bg-background p-2.5",children:[(0,a.jsx)("div",{className:"mb-1 flex items-center gap-2",children:(0,a.jsxs)(F.E,{className:"gap-1 border-0 text-[10px] font-medium ".concat(null!=(s=null==r?void 0:r.badgeClass)?s:"bg-secondary text-muted-foreground"),children:[(0,a.jsx)(l,{className:"h-3 w-3"}),r?n(r.labelKey):e.type]})}),(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.title,className:"flex min-w-0 items-center gap-1 text-sm font-medium text-primary hover:underline",children:[(0,a.jsx)("span",{className:"truncate",children:e.title}),(0,a.jsx)(S.A,{className:"h-3 w-3 shrink-0"})]}),(0,a.jsx)(D.L,{notes:e.notes})]},e.uuid)})})}let M={open:"open",researching:"researching",answer_questions:"answerQuestions",planning:"planning",review_proposal:"reviewProposal",building:"building",verify_work:"verifyWork",done:"done",closed:"closed"},U={open:"text-muted-foreground",researching:"text-[#7F77DD] dark:text-[#A99FF0]",answer_questions:"text-[#C47A20] dark:text-[#E0A050]",planning:"text-[#7F77DD] dark:text-[#A99FF0]",review_proposal:"text-[#C47A20] dark:text-[#E0A050]",building:"text-[#7F77DD] dark:text-[#A99FF0]",verify_work:"text-[#C47A20] dark:text-[#E0A050]",done:"text-[#1D9E75] dark:text-[#4FD1A0]",closed:"text-muted-foreground"};function z(e){var t,s,l;let{idea:i,onClick:o,depth:c=0,showConnector:u=!1}=e,x=(0,r.c)("ideaTracker"),m=(0,r.c)(),p=i.badgeHint?M[i.badgeHint]:null,h=i.badgeHint&&U[i.badgeHint]||"text-muted-foreground",g=null!=(t=i.childCount)?t:0,b=null!=(s=i.referenceCount)?s:0,E=(0,A.kz)(),S=null!=(l=null==E?void 0:E.activeSessionsByIdea.get(i.uuid))?l:[],[F,_]=(0,n.useState)(!1),[D,z]=(0,n.useState)([]),[L,I]=(0,n.useState)(!1),[B,O]=(0,n.useState)(!1),T=!0===i.isContainer;return(0,a.jsxs)(j.Nt,{open:F,onOpenChange:e=>{_(e),!e||B||L||(O(!0),I(!0),(0,C.j)("idea",i.uuid).then(e=>{e.success&&z(e.references),I(!1)}))},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3.5 py-3 transition-colors ".concat(o?"cursor-pointer hover:bg-background":""),onClick:o?()=>o(i.uuid):void 0,style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[u&&(0,a.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,a.jsx)("span",{className:"shrink-0 text-[11px] font-semibold tracking-wide ".concat(T?"text-primary":"font-normal tracking-normal text-muted-foreground"),children:x(T?"lineage.typeTheme":"lineage.typeIdea")}),(0,a.jsx)("span",{className:"truncate text-[13px] text-foreground ".concat(T?"font-medium":""),children:i.title}),p&&(0,a.jsx)("span",{className:"shrink-0 rounded bg-secondary px-1.5 py-0.5 text-[11px] ".concat(h),children:x("badge.".concat(p))}),T&&i.childProgress&&i.childProgress.total>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",title:x("lineage.childrenDone",{done:i.childProgress.done,total:i.childProgress.total}),children:[(0,a.jsx)(N.C,{done:i.childProgress.done,total:i.childProgress.total,size:12,stroke:2}),i.childProgress.done,"/",i.childProgress.total]}):g>0?(0,a.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded bg-primary/[0.12] px-1.5 py-0.5 text-[11px] font-medium text-primary",children:[(0,a.jsx)(d.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),x("lineage.derivedCount",{count:g})]}):null,b>0&&(0,a.jsxs)(j.R6,{onClick:e=>e.stopPropagation(),"aria-label":m("references.countLabel",{count:b}),title:m("references.countLabel",{count:b}),className:"group/refs flex shrink-0 items-center gap-1 rounded bg-secondary px-1.5 py-0.5 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground",children:[(0,a.jsx)(f.A,{className:"h-2.5 w-2.5 transition-transform ".concat(F?"rotate-90":""),"aria-hidden":!0}),(0,a.jsx)(y.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),b]}),S.length>0&&E&&(0,a.jsx)(w.U,{sessions:S,onSelect:E.openChatForActiveSession,surface:"tracker"})]}),(0,a.jsx)("span",{className:"shrink-0 pl-4 text-[12px] text-muted-foreground",children:(0,k.s)(i.createdAt)})]}),b>0&&(0,a.jsx)(j.Ke,{onClick:e=>e.stopPropagation(),children:(0,a.jsx)("div",{className:"px-3.5 pb-3",style:c>0?{paddingLeft:"".concat(14+22*c,"px")}:void 0,children:(0,a.jsx)(P,{references:D,isLoading:L})})})]})}let L={human_conduct_required:{fill:"#7F77DD"},in_progress:{fill:"#378ADD"},todo:{stroke:"#888780"},done:{fill:"#1D9E75"}},I={todo:"todo",in_progress:"inProgress",human_conduct_required:"humanConductRequired",done:"done"};function B(e){let{status:t,ideas:s,defaultOpen:l=!0,onIdeaClick:d}=e,i=(0,r.c)("ideaTracker"),o=s.length>0,[c,u]=(0,n.useState)(!!o&&l),x=I[t]||"todo",m=L[t]||L.todo;return(0,a.jsxs)(j.Nt,{open:c,onOpenChange:u,children:[(0,a.jsxs)(j.R6,{className:"group flex w-full cursor-pointer items-center gap-2 px-0 pb-1.5 pt-0",children:[c?(0,a.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}):(0,a.jsx)(f.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"}),(0,a.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:m.fill,border:m.stroke?"1.5px solid ".concat(m.stroke):void 0}}),(0,a.jsx)("span",{className:"text-[13px] font-medium transition-colors group-hover:text-foreground ".concat(o?"text-foreground/80":"text-muted-foreground/60"),children:i("status.".concat(x))}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground transition-colors group-hover:text-foreground",children:s.length})]}),o&&(0,a.jsx)(j.Ke,{children:(0,a.jsx)("div",{className:"overflow-hidden rounded-lg bg-card",children:s.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.uuid,badgeInside:!0,children:(0,a.jsx)(z,{idea:e,onClick:d})})]},e.uuid))})})]})}function O(e){let{ideas:t,onIdeaClick:s}=e,r=(0,n.useMemo)(()=>(function(e){let t=new Map(e.map(e=>[e.uuid,e])),s=new Map,a=[];for(let l of e){var r,n;let e=null!=(r=l.parentUuid)?r:null;if(e&&t.has(e)){let t=null!=(n=s.get(e))?n:[];t.push(l),s.set(e,t)}else a.push(l)}let l=[],d=new Set,i=(e,t,a)=>{var r;if(!d.has(e.uuid))for(let n of(d.add(e.uuid),a.push({idea:e,depth:t,showConnector:t>0}),null!=(r=s.get(e.uuid))?r:[]))i(n,t+1,a)};for(let e of a){let t=[];i(e,0,t),t.length>0&&l.push(t)}for(let t of e)d.has(t.uuid)||(d.add(t.uuid),l.push([{idea:t,depth:0,showConnector:!1}]));return l})(t),[t]);return(0,a.jsx)("div",{className:"space-y-2.5",children:r.map(e=>(0,a.jsx)("div",{"data-testid":"lineage-tree-group",className:"overflow-hidden rounded-lg bg-card",children:e.map((e,t)=>(0,a.jsxs)("div",{children:[t>0&&(0,a.jsx)("div",{className:"mx-0 h-px bg-[#F0EEEA] dark:bg-[#1f1e1c]"}),(0,a.jsx)(b.D,{entityType:"idea",entityUuid:e.idea.uuid,badgeInside:!0,children:(0,a.jsx)(z,{idea:e.idea,onClick:s,depth:e.depth,showConnector:e.showConnector})})]},e.idea.uuid))},e[0].idea.uuid))})}let T=["human_conduct_required","in_progress","todo","done"];function R(e){var t;let{projectUuid:s,initialData:l,viewMode:d,onIdeaClick:i,onNewIdea:u,onEmptyChange:g}=e,f=(0,r.c)("ideaTracker"),[j,b]=(0,n.useState)(null!=(t=null==l?void 0:l.groups)?t:{}),[v,y]=(0,n.useState)(!l),[k,N]=(0,n.useState)(null),w=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(s,"/ideas/tracker")),t=await e.json();t.success&&t.data?(b(t.data.groups),N(null)):N(t.error||f("error.loadFailed"))}catch(e){N(f("error.loadFailed"))}finally{y(!1)}},[s,f]);(0,h.eV)("idea",w),(0,h.eV)("proposal",w),(0,h.eV)("task",w),(0,n.useEffect)(()=>{l||w()},[w,l]);let A=T.reduce((e,t)=>e+(j[t]||[]).length,0);(0,n.useEffect)(()=>{v||null==g||g(0===A)},[A,v,g]);let C=T.flatMap(e=>j[e]||[]);return v?(0,a.jsx)("div",{className:"space-y-4",children:[1,2,3].map(e=>(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(p.E,{className:"h-5 w-32"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"}),(0,a.jsx)(p.E,{className:"h-12 w-full rounded-lg"})]},e))}):k&&0===Object.keys(j).length?(0,a.jsxs)("div",{className:"flex flex-col items-center gap-4 py-16",children:[(0,a.jsx)(x.A,{className:"h-10 w-10 text-[#E65100] dark:text-[#F0A050]"}),(0,a.jsx)("p",{className:"text-[13px] text-muted-foreground",children:k}),(0,a.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>{y(!0),N(null),w()},className:"border-border text-foreground",children:f("actions.retry")})]}):0===A?(0,a.jsxs)("div",{className:"flex min-h-[60vh] flex-col items-center justify-center gap-3",children:[(0,a.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-secondary",children:(0,a.jsx)(m.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,a.jsx)("p",{className:"text-[13px] font-medium text-muted-foreground",children:f("empty.noIdeas")}),(0,a.jsx)("p",{className:"max-w-[260px] text-center text-[12px] leading-relaxed text-muted-foreground",children:f("empty.getStarted")}),u&&(0,a.jsxs)(c.$,{onClick:u,size:"sm",className:"mt-2 gap-1.5 rounded-md bg-primary px-4 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(o.A,{className:"h-4 w-4"}),f("actions.newIdea")]})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[k&&Object.keys(j).length>0&&(0,a.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-[12px] text-destructive",children:k}),"tree"===d?(0,a.jsx)(O,{ideas:C,onIdeaClick:i}):(0,a.jsx)("div",{className:"space-y-4",children:T.map(e=>{let t=j[e]||[];return 0===t.length?null:(0,a.jsx)(B,{status:e,ideas:t,defaultOpen:"done"!==e,onIdeaClick:i},e)})})]})}var V=s(25554),H=s.n(V),$=s(16272),q=s(79099),Z=s(30782),K=s(30244),J=s(80513);let Q=[{key:"todo",bg:"#E65100"},{key:"inProgress",bg:"#5A9E6F"},{key:"toVerify",bg:"#7B1FA2"},{key:"done",bg:"#00796B"}],X={idea:"bg-primary",task:"bg-[#5A9E6F]",proposal:"bg-[#1976D2]",document:"bg-[#9A9A9A]"};function G(e){let{projectUuid:t,initialData:s}=e,l=(0,r.c)(),d=(0,r.c)("ideaTracker"),[i,o]=(0,n.useState)(null!=s?s:null),[c,u]=(0,n.useState)(!s),x=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/projects/".concat(t,"/stats"));if(!e.ok)return;let s=await e.json();s.success&&o(s.data)}finally{u(!1)}},[t]);if((0,n.useEffect)(()=>{s||x()},[x,s]),(0,h.eV)(["idea","task","proposal","document"],x),c)return(0,a.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,a.jsx)(E.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(!i)return null;let{stats:p,recentActivities:g}=i,f=[{label:d("stats.totalIdeas"),value:p.ideas.total,badge:p.ideas.open>0?d("stats.openCount",{count:p.ideas.open}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/dashboard"),iconBg:"bg-[#FFF3E0] dark:bg-[#3a2a12]",icon:(0,a.jsx)(m.A,{className:"h-5 w-5 text-[#E65100] dark:text-[#F0A050]"})},{label:d("stats.totalTasks"),value:p.tasks.total,badge:p.tasks.inProgress>0?d("stats.activeCount",{count:p.tasks.inProgress}):null,badgeStyle:"bg-[#5A9E6F20] text-[#5A9E6F] dark:text-[#6FD19A]",href:"/projects/".concat(t,"/tasks"),iconBg:"bg-[#E3F2FD] dark:bg-[#13253a]",icon:(0,a.jsx)(Z.A,{className:"h-5 w-5 text-[#1976D2] dark:text-[#5AA9F0]"})},{label:d("stats.totalProposals"),value:p.proposals.total,badge:p.proposals.pending>0?d("stats.pendingCount",{count:p.proposals.pending}):null,badgeStyle:"bg-primary/[0.13] text-primary",href:"/projects/".concat(t,"/proposals"),iconBg:"bg-[#F3E5F5] dark:bg-[#281630]",icon:(0,a.jsx)(K.A,{className:"h-5 w-5 text-[#7B1FA2] dark:text-[#C98FE0]"})},{label:d("stats.totalDocuments"),value:p.documents.total,badge:null,badgeStyle:"",href:"/projects/".concat(t,"/documents"),iconBg:"bg-[#E8F5E9] dark:bg-[#14281a]",icon:(0,a.jsx)(J.A,{className:"h-5 w-5 text-[#5A9E6F] dark:text-[#6FD19A]"})}],j=[p.tasks.todo,p.tasks.inProgress,p.tasks.toVerify,p.tasks.done],b=p.tasks.total,v=[{label:d("stats.todoCount",{count:p.tasks.todo}),color:"#E65100"},{label:d("stats.inProgressCount",{count:p.tasks.inProgress}),color:"#5A9E6F"},{label:d("stats.toVerifyCount",{count:p.tasks.toVerify}),color:"#7B1FA2"},{label:d("stats.doneCount",{count:p.tasks.done}),color:"#00796B"}];return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3 md:gap-4 lg:grid-cols-4",children:f.map(e=>(0,a.jsx)(H(),{href:e.href,children:(0,a.jsxs)($.Zp,{className:"cursor-pointer rounded-2xl border-0 bg-card p-3 shadow-none transition-all hover:shadow-md md:p-5",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between md:mb-3.5",children:[(0,a.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg md:h-10 md:w-10 md:rounded-xl ".concat(e.iconBg),children:e.icon}),e.badge&&(0,a.jsx)("span",{className:"hidden rounded-lg px-2.5 py-1 text-[11px] font-medium sm:inline ".concat(e.badgeStyle),children:e.badge})]}),(0,a.jsx)("div",{className:"text-2xl font-semibold leading-none tracking-tight text-foreground md:text-[32px]",children:e.value}),(0,a.jsx)("div",{className:"mt-0.5 text-[12px] text-muted-foreground md:text-[13px]",children:e.label})]})},e.label))}),(0,a.jsxs)("div",{className:"grid min-h-0 gap-5 lg:grid-cols-2",children:[(0,a.jsxs)($.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.taskPipeline")}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:d("stats.totalCount",{count:b})})]}),b>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"mb-5 flex h-3 w-full overflow-hidden rounded-md",children:j.map((e,t)=>e>0?(0,a.jsx)("div",{className:"h-full",style:{width:"".concat(e/b*100,"%"),backgroundColor:Q[t].bg}},Q[t].key):null)}),(0,a.jsx)("div",{className:"flex flex-wrap gap-5",children:v.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("div",{className:"h-2.5 w-2.5 rounded-sm",style:{backgroundColor:e.color}}),(0,a.jsx)("span",{className:"text-[12px] text-muted-foreground",children:e.label})]},e.color))})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noTasks")})]}),(0,a.jsxs)($.Zp,{className:"flex flex-col rounded-2xl border-0 bg-card p-6 shadow-none",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-[16px] font-semibold text-foreground",children:d("stats.recentActivity")}),(0,a.jsx)(H(),{href:"/projects/".concat(t,"/activity"),className:"text-[12px] font-medium text-primary hover:underline",children:d("stats.viewAll")})]}),g.length>0?(0,a.jsx)("div",{className:"flex flex-col",children:g.map((e,t)=>{let s=X[e.targetType]||"bg-[#9A9A9A]";return(0,a.jsxs)("div",{className:"flex items-start gap-3 py-3 ".concat(t<g.length-1?"border-b border-secondary":""),children:[(0,a.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full ".concat(s)}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"text-[13px] text-foreground",children:[e.actorName," ",e.action]}),(0,a.jsx)("span",{className:"text-[11px] text-muted-foreground",children:(0,q.fw)(e.createdAt,l)})]})]},e.uuid)})}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center py-10 text-[13px] text-muted-foreground",children:d("stats.noActivity")})]})]})]})}var W=s(44295),Y=s(25531),ee=s(69189);let et=["ideas","lineage","stats"],es=e=>"chorus:dashboard-view:".concat(e);function ea(e){let{projectUuid:t,projectName:s,currentUserUuid:x,initialTrackerData:m,initialStatsData:p,initialSelectedIdeaUuid:h}=e,g=(0,r.c)("ideaTracker"),f=(0,ee.F7)(),[j,b]=(0,n.useState)(()=>{var e;return(e=null==m?void 0:m.groups)&&Object.values(e).some(e=>e.some(e=>{var t;return!!e.parentUuid||(null!=(t=e.childCount)?t:0)>0}))?"lineage":"ideas"}),[v,y]=(0,n.useState)(!1),k=(0,n.useRef)(null),N=(0,n.useRef)(null),w=e=>{k.current=e.currentTarget,y(!0)};(0,n.useEffect)(()=>{let e=function(e){let t=null;try{t=window.localStorage.getItem(es(e))}catch(e){return null}return et.includes(t)?t:null}(t);e&&b(e)},[t]);let[A,C]=(0,n.useState)(()=>!!m&&0===Object.values(m.groups).reduce((e,t)=>e+t.length,0)),E="/projects/".concat(t,"/dashboard"),{selectedId:S,openPanel:F,closePanel:_}=(0,u.T)(E,h),D=[{id:"ideas",label:g("tabs.ideas"),icon:l.A},{id:"lineage",label:g("tabs.lineage"),icon:d.A},{id:"stats",label:g("tabs.stats"),icon:i}];return(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,a.jsx)("div",{className:"inline-flex items-center gap-0.5 rounded-lg bg-[#EFEBE3] dark:bg-[#201e1a] p-0.5",children:D.map(e=>{let{id:s,label:r,icon:n}=e;return(0,a.jsxs)("button",{type:"button",onClick:()=>(e=>{b(e);try{window.localStorage.setItem(es(t),e)}catch(e){}})(s),"aria-pressed":j===s,className:"flex cursor-pointer items-center gap-1.5 rounded-md px-3 py-1.5 text-[12px] transition-colors ".concat(j===s?"bg-card font-medium text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,a.jsx)(n,{className:"h-3.5 w-3.5"}),r]},s)})}),f&&"stats"!==j&&!A&&(0,a.jsxs)(c.$,{ref:N,onClick:w,size:"sm",className:"gap-1.5 rounded-md bg-primary px-3.5 py-2 text-white hover:bg-[#B56A42]",children:[(0,a.jsx)(o.A,{className:"h-4 w-4"}),g("actions.newIdea")]})]}),"stats"===j?(0,a.jsx)(G,{projectUuid:t,initialData:p}):(0,a.jsx)(R,{projectUuid:t,initialData:m,viewMode:"lineage"===j?"tree":"flat",onIdeaClick:F,onNewIdea:f?w:void 0,onEmptyChange:C}),(0,a.jsx)(Y.i,{open:v,onOpenChange:y,onCloseAutoFocus:e=>{var t;e.preventDefault();let s=(null==(t=k.current)?void 0:t.isConnected)?k.current:N.current;null==s||s.focus(),k.current=null},projectUuid:t,projectName:s,onCreated:e=>F(e)}),S&&(0,a.jsx)(W.D,{ideaUuid:S,projectUuid:t,currentUserUuid:x,onClose:_,onNavigate:F})]})}},78795:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]])},86461:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(73326).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])}},e=>{e.O(0,[32271,87326,93151,41752,30996,57084,68381,71444,92037,41677,25554,6893,74414,34216,7659,76404,25452,33218,10201,38803,23593,10006,26441,73632,63472,65208,8575,5899,86791,80395,75556,16198,75844,15638,59480,88277,91202,98521,73849,46608,77358],()=>e(e.s=43671)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[61461],{2138:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(73326).A)("file-type",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]])},8568:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(73326).A)("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]])},10666:(e,t,r)=>{"use strict";r.d(t,{E:()=>v});var n=r(60200),s=r(81476),o=r(99736),a=r(80513),i=r(2138),l=r(8568),d=r(28201),c=r(31577),m=r(25588),h=r(56791),u=r(40058),p=r(43664);function v(e){let{document:t,documentUuid:v,variant:x="default"}=e,b=(0,m.c)(),{exportDocument:f,isExporting:j,exportError:y}=function(){let[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(null);return{exportDocument:(0,s.useCallback)(async(e,n)=>{t(!0),o(null);try{let t,o,i=function(e){let t=e.replace(/[\\/:*?"<>|]/g,"").replace(/\s+/g," ").trim().replace(/\s/g,"-");return t.length>0?t:"document"}(e.title);if("md"===n){let{exportAsMarkdownBlob:n}=await r.e(76169).then(r.bind(r,76169));t=n(e),o="md"}else if("pdf"===n){let{exportAsPdf:n}=await r.e(1094).then(r.bind(r,1094));t=await n(e),o="pdf"}else if("docx"===n){let{exportAsDocx:n}=await r.e(85074).then(r.bind(r,85074));t=await n(e),o="docx"}else throw Error("Unsupported export format: ".concat(String(n)));var s=t,a="".concat(i,".").concat(o);let l=URL.createObjectURL(s),d=document.createElement("a");d.href=l,d.download=a,d.rel="noopener",d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d),setTimeout(()=>URL.revokeObjectURL(l),1e3)}catch(e){o(e instanceof Error?e.message:String(e)),p.q.error("useDocumentExport export failed",e)}finally{t(!1)}},[]),isExporting:e,exportError:n}}(),[g,w]=(0,s.useState)(null);async function P(e){w(e);try{let l=t;if(!l&&v){var r,n,s,a,i;let e=await fetch("/api/documents/".concat(v)),t=await e.json();if(!t.success||!t.data)return void o.oR.error(b("export.exportError"));let d=t.data;l={title:d.title,content:null!=(s=d.content)?s:"",type:d.type,version:d.version,createdAt:d.createdAt,updatedAt:d.updatedAt,createdByName:null!=(a=null==(r=d.createdBy)?void 0:r.name)?a:"",projectName:null!=(i=null==(n=d.project)?void 0:n.name)?i:""}}l&&await f(l,e)}finally{w(null),y&&o.oR.error(y)}}let k=[{format:"md",labelKey:"export.formatMd",icon:a.A},{format:"pdf",labelKey:"export.formatPdf",icon:i.A},{format:"docx",labelKey:"export.formatDocx",icon:l.A}],A="compact"===x;return(0,n.jsxs)(h.rI,{children:[(0,n.jsx)(h.ty,{asChild:!0,children:(0,n.jsxs)(u.$,{variant:"ghost"===x?"ghost":"outline",size:A?"sm":"default",className:A?"h-6 text-[11px] text-muted-foreground hover:text-foreground":"border-border text-muted-foreground gap-1.5",disabled:j,children:[j?(0,n.jsx)(d.A,{className:"".concat(A?"h-3 w-3":"h-4 w-4"," animate-spin")}):(0,n.jsx)(c.A,{className:A?"h-3 w-3":"h-4 w-4"}),!A&&b("export.exportDocument")]})}),(0,n.jsx)(h.SQ,{align:"end",className:"w-48",children:k.map(e=>{let{format:t,labelKey:r,icon:s}=e;return(0,n.jsxs)(h._2,{onClick:e=>{e.stopPropagation(),e.preventDefault(),P(t)},disabled:j,children:[g===t?(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(s,{className:"h-4 w-4"}),b(r)]},t)})})]})}},25128:(e,t,r)=>{Promise.resolve().then(r.bind(r,30932)),Promise.resolve().then(r.bind(r,25986)),Promise.resolve().then(r.bind(r,5751)),Promise.resolve().then(r.bind(r,95957)),Promise.resolve().then(r.bind(r,2236)),Promise.resolve().then(r.bind(r,32655)),Promise.resolve().then(r.bind(r,35877)),Promise.resolve().then(r.bind(r,8575)),Promise.resolve().then(r.bind(r,73012)),Promise.resolve().then(r.bind(r,14863)),Promise.resolve().then(r.bind(r,14122)),Promise.resolve().then(r.bind(r,94690)),Promise.resolve().then(r.bind(r,27797)),Promise.resolve().then(r.bind(r,33218)),Promise.resolve().then(r.bind(r,82288)),Promise.resolve().then(r.bind(r,48364)),Promise.resolve().then(r.bind(r,58930)),Promise.resolve().then(r.bind(r,74294)),Promise.resolve().then(r.bind(r,2735)),Promise.resolve().then(r.bind(r,23831)),Promise.resolve().then(r.bind(r,60475)),Promise.resolve().then(r.bind(r,44954)),Promise.resolve().then(r.bind(r,91462)),Promise.resolve().then(r.bind(r,44188)),Promise.resolve().then(r.bind(r,69228)),Promise.resolve().then(r.bind(r,44154)),Promise.resolve().then(r.bind(r,55794)),Promise.resolve().then(r.bind(r,87712)),Promise.resolve().then(r.bind(r,36102)),Promise.resolve().then(r.t.bind(r,25554,23)),Promise.resolve().then(r.bind(r,57177)),Promise.resolve().then(r.bind(r,65219)),Promise.resolve().then(r.bind(r,79221)),Promise.resolve().then(r.bind(r,98290))},31577:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(73326).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]])},57177:(e,t,r)=>{"use strict";r.d(t,{DocumentActions:()=>x});var n=r(60200),s=r(10666),o=r(81476),a=r(32022),i=r(25588),l=r(14006),d=r(28201),c=r(99736),m=r(40058),h=r(2745),u=r(42885);let p=(0,u.createServerReference)("403ca36326b7f7b1f5eb9b5a1e8abf8a61cc8f7e7f",u.callServer,void 0,u.findSourceMapURL,"deleteDocumentAction");function v(e){let{documentUuid:t,documentTitle:r,projectUuid:s}=e,u=(0,i.c)("documents"),v=(0,i.c)("common"),x=(0,a.r)(),[b,f]=o.useState(!1),[j,y]=o.useState(!1),[g,w]=o.useState(null),P=async()=>{y(!0),w(null);let e=await p(t);if(e.success){c.oR.success(u("deleteSuccess")),f(!1),y(!1),x.replace("/projects/".concat(e.projectUuid,"/documents")),x.refresh();return}let r="not_found"===e.error?u("deleteFailedNotFound"):u("deleteFailed");w(r),c.oR.error(r),y(!1)};return(0,n.jsxs)(h.Lt,{open:b,onOpenChange:e=>{!j&&(f(e),e||w(null))},children:[(0,n.jsx)(h.tv,{asChild:!0,children:(0,n.jsxs)(m.$,{variant:"destructive",size:"sm",children:[(0,n.jsx)(l.A,{className:"mr-2 h-4 w-4"}),v("delete")]})}),(0,n.jsxs)(h.EO,{children:[(0,n.jsxs)(h.wd,{children:[(0,n.jsx)(h.r7,{children:u("deleteDocument")}),(0,n.jsx)(h.$v,{children:u("deleteDocumentDescription",{title:r})})]}),g&&(0,n.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:g}),(0,n.jsxs)(h.ck,{children:[(0,n.jsx)(h.Zr,{disabled:j,children:v("cancel")}),(0,n.jsx)(m.$,{variant:"destructive",disabled:j,onClick:P,children:j?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"}),v("delete")]}):v("delete")})]})]})]})}function x(e){let{documentUuid:t,projectUuid:r,documentTitle:o,canDelete:a,exportDoc:i}=e;return(0,n.jsxs)("div",{className:"flex gap-2",children:[i?(0,n.jsx)(s.E,{document:i}):(0,n.jsx)(s.E,{documentUuid:t}),a&&(0,n.jsx)(v,{documentUuid:t,documentTitle:o,projectUuid:r})]})}},65219:(e,t,r)=>{"use strict";r.d(t,{DocumentComments:()=>o});var n=r(60200),s=r(75844);function o(e){let{documentUuid:t,currentUserUuid:r}=e;return(0,n.jsx)(s.$m,{targetType:"document",targetUuid:t,currentUserUuid:r,compact:!0})}},79221:(e,t,r)=>{"use strict";r.d(t,{DocumentContent:()=>u});var n=r(60200),s=r(81476),o=r(32022),a=r(25588),i=r(64035),l=r(16272),d=r(40058),c=r(42885);let m=(0,c.createServerReference)("707eca40fba0ba869e9200bc3c46a36f6b66d7869e",c.callServer,void 0,c.findSourceMapURL,"updateDocumentAction");var h=r(69189);function u(e){let{documentUuid:t,projectUuid:r,initialContent:c}=e,u=(0,a.c)(),p=(0,h.F7)(),v=(0,o.r)(),[x,b]=(0,s.useState)(!1),[f,j]=(0,s.useState)(c),[y,g]=(0,s.useTransition)();return(0,n.jsxs)(l.Zp,{className:"flex-1 overflow-auto border-border p-6",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,n.jsx)("h2",{className:"text-lg font-medium text-foreground",children:u("common.content")}),x?(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.$,{variant:"outline",onClick:()=>{j(c),b(!1)},disabled:y,className:"border-border text-muted-foreground",children:u("common.cancel")}),(0,n.jsx)(d.$,{onClick:()=>{g(async()=>{(await m(t,r,f)).success&&(b(!1),v.refresh())})},disabled:y,className:"bg-[#5A9E6F] hover:bg-[#4A8E5F] text-white",children:u(y?"common.processing":"documents.saveChanges")})]}):p&&(0,n.jsxs)(d.$,{onClick:()=>b(!0),className:"bg-primary hover:bg-[#B56A42] text-white",children:[(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mr-2 h-4 w-4",children:(0,n.jsx)("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"})}),u("common.edit")]})]}),x?(0,n.jsx)("textarea",{value:f,onChange:e=>j(e.target.value),className:"mobile-input-text h-full w-full resize-none rounded-lg border border-border p-4 font-mono text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary",placeholder:u("documents.documentContent")}):(0,n.jsx)("div",{className:"prose prose-sm max-w-none text-foreground",children:c?(0,n.jsx)(i.MarkdownContent,{children:c}):(0,n.jsx)("span",{className:"text-[#9A9A9A] italic",children:u("common.noContent")})})]})}},98290:(e,t,r)=>{"use strict";r.d(t,{FormattedDateTime:()=>o});var n=r(60200),s=r(3562);function o(e){let{date:t}=e;return(0,n.jsx)(n.Fragment,{children:(0,s.r)(t)})}}},e=>{e.O(0,[87326,93151,41752,30996,57084,71444,92037,41677,25554,6893,74414,34216,7659,76404,33218,10201,38803,23593,10006,26441,73632,63472,65208,8575,5899,86791,21495,75556,16198,75844,73849,46608,77358],()=>e(e.s=25128)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[96538],{3562:(e,t,r)=>{"use strict";function n(e){let t="string"==typeof e?new Date(e):e;if(isNaN(t.getTime()))return"";let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return"".concat(r,"-").concat(n,"-").concat(a," ").concat(s,":").concat(o)}function a(e,t){let r="string"==typeof e?new Date(e):e;return isNaN(r.getTime())?"":r.toLocaleDateString(t,{month:"short",day:"numeric"})}r.d(t,{r:()=>n,s:()=>a})},7685:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(60200),a=r(48186),s=r(69351),o=r(26185);function i(e){let{entityType:t,entityUuid:r,subEntityType:o,subEntityUuid:i,children:d,badgeInside:c}=e,{getPresence:u}=(0,a.xQ)(),m=u(t,r,o,i),f=m.length>0,p=f&&m.some(e=>"mutate"===e.action),x=f?p?m.find(e=>"mutate"===e.action):m[m.length-1]:null,g=x?(0,s.j)(x.agentName):"transparent";return(0,n.jsxs)("div",{className:"relative",style:f?{outline:"2px ".concat(p?"solid":"dashed"," ").concat(g),outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[f&&(0,n.jsxs)("div",{className:"absolute flex gap-1 z-10 justify-end ".concat(c?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"),children:[m.slice(0,3).map(e=>(0,n.jsx)(l,{entry:e},e.agentUuid)),m.length>3&&(0,n.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",m.length-3]})]}),d]})}function l(e){let{entry:t}=e,r=(0,s.j)(t.agentName);return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:r},children:[(0,n.jsx)(o.AgentAvatar,{name:t.agentName,size:14,className:"rounded-full"}),t.agentName]})}},10666:(e,t,r)=>{"use strict";r.d(t,{E:()=>x});var n=r(60200),a=r(81476),s=r(99736),o=r(80513),i=r(2138),l=r(8568),d=r(28201),c=r(31577),u=r(25588),m=r(56791),f=r(40058),p=r(43664);function x(e){let{document:t,documentUuid:x,variant:g="default"}=e,v=(0,u.c)(),{exportDocument:h,isExporting:b,exportError:y}=function(){let[e,t]=(0,a.useState)(!1),[n,s]=(0,a.useState)(null);return{exportDocument:(0,a.useCallback)(async(e,n)=>{t(!0),s(null);try{let t,s,i=function(e){let t=e.replace(/[\\/:*?"<>|]/g,"").replace(/\s+/g," ").trim().replace(/\s/g,"-");return t.length>0?t:"document"}(e.title);if("md"===n){let{exportAsMarkdownBlob:n}=await r.e(76169).then(r.bind(r,76169));t=n(e),s="md"}else if("pdf"===n){let{exportAsPdf:n}=await r.e(1094).then(r.bind(r,1094));t=await n(e),s="pdf"}else if("docx"===n){let{exportAsDocx:n}=await r.e(85074).then(r.bind(r,85074));t=await n(e),s="docx"}else throw Error("Unsupported export format: ".concat(String(n)));var a=t,o="".concat(i,".").concat(s);let l=URL.createObjectURL(a),d=document.createElement("a");d.href=l,d.download=o,d.rel="noopener",d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d),setTimeout(()=>URL.revokeObjectURL(l),1e3)}catch(e){s(e instanceof Error?e.message:String(e)),p.q.error("useDocumentExport export failed",e)}finally{t(!1)}},[]),isExporting:e,exportError:n}}(),[j,w]=(0,a.useState)(null);async function N(e){w(e);try{let l=t;if(!l&&x){var r,n,a,o,i;let e=await fetch("/api/documents/".concat(x)),t=await e.json();if(!t.success||!t.data)return void s.oR.error(v("export.exportError"));let d=t.data;l={title:d.title,content:null!=(a=d.content)?a:"",type:d.type,version:d.version,createdAt:d.createdAt,updatedAt:d.updatedAt,createdByName:null!=(o=null==(r=d.createdBy)?void 0:r.name)?o:"",projectName:null!=(i=null==(n=d.project)?void 0:n.name)?i:""}}l&&await h(l,e)}finally{w(null),y&&s.oR.error(y)}}let k=[{format:"md",labelKey:"export.formatMd",icon:o.A},{format:"pdf",labelKey:"export.formatPdf",icon:i.A},{format:"docx",labelKey:"export.formatDocx",icon:l.A}],A="compact"===g;return(0,n.jsxs)(m.rI,{children:[(0,n.jsx)(m.ty,{asChild:!0,children:(0,n.jsxs)(f.$,{variant:"ghost"===g?"ghost":"outline",size:A?"sm":"default",className:A?"h-6 text-[11px] text-muted-foreground hover:text-foreground":"border-border text-muted-foreground gap-1.5",disabled:b,children:[b?(0,n.jsx)(d.A,{className:"".concat(A?"h-3 w-3":"h-4 w-4"," animate-spin")}):(0,n.jsx)(c.A,{className:A?"h-3 w-3":"h-4 w-4"}),!A&&v("export.exportDocument")]})}),(0,n.jsx)(m.SQ,{align:"end",className:"w-48",children:k.map(e=>{let{format:t,labelKey:r,icon:a}=e;return(0,n.jsxs)(m._2,{onClick:e=>{e.stopPropagation(),e.preventDefault(),N(t)},disabled:b,children:[j===t?(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(a,{className:"h-4 w-4"}),v(r)]},t)})})]})}},16272:(e,t,r)=>{"use strict";r.d(t,{BT:()=>l,Wu:()=>d,ZB:()=>i,Zp:()=>s,aR:()=>o});var n=r(60200);r(81476);var a=r(49417);function s(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...r})}function o(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-header",className:(0,a.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",t),...r})}function i(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",t),...r})}function l(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",t),...r})}function d(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",t),...r})}},21558:(e,t,r)=>{"use strict";r.d(t,{bq:()=>u,eb:()=>f,gC:()=>m,l6:()=>d,yv:()=>c});var n=r(60200);r(81476);var a=r(50759),s=r(71507),o=r(29438),i=r(60475),l=r(49417);function d(e){let{...t}=e;return(0,n.jsx)(i.Root,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,n.jsx)(i.Value,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:r="default",children:s,...o}=e;return(0,n.jsxs)(i.Trigger,{"data-slot":"select-trigger","data-size":r,className:(0,l.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o,children:[s,(0,n.jsx)(i.Icon,{asChild:!0,children:(0,n.jsx)(a.A,{className:"size-4 opacity-50"})})]})}function m(e){let{className:t,children:r,position:a="item-aligned",align:s="center",...o}=e;return(0,n.jsx)(i.Portal,{children:(0,n.jsxs)(i.Content,{"data-slot":"select-content",className:(0,l.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===a&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,align:s,...o,children:[(0,n.jsx)(p,{}),(0,n.jsx)(i.Viewport,{className:(0,l.cn)("p-1","popper"===a&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:r}),(0,n.jsx)(x,{})]})})}function f(e){let{className:t,children:r,...a}=e;return(0,n.jsxs)(i.Item,{"data-slot":"select-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[(0,n.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,n.jsx)(i.ItemIndicator,{children:(0,n.jsx)(s.A,{className:"size-4"})})}),(0,n.jsx)(i.ItemText,{children:r})]})}function p(e){let{className:t,...r}=e;return(0,n.jsx)(i.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,n.jsx)(o.A,{className:"size-4"})})}function x(e){let{className:t,...r}=e;return(0,n.jsx)(i.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,n.jsx)(a.A,{className:"size-4"})})}},26185:(e,t,r)=>{"use strict";r.d(t,{AgentAvatar:()=>x,Pf:()=>f});var n=r(60200),a=r(81476),s=r(81106),o=r(72677),i=r(63211),l=r(14518),d=r(62925),c=r(49417);let u=new o.O(l),m=new Map;function f(e,t){let r,n="".concat(t,"\0").concat(e),a=m.get(n);if(void 0!==a)return a;try{let n="animated"===t?{seed:e,tags:["animation"]}:{seed:e,tags:["!animation"]};r=new i.e(u,n).toDataUri()}catch(e){r=null}return m.set(n,r),r}let p={xs:20,sm:24,md:32,lg:40};function x(e){let{name:t,size:r="md",animate:o=!0,className:i}=e,[l,u]=a.useState(!1);a.useEffect(()=>{var e;if("function"!=typeof window.matchMedia)return;let t=window.matchMedia("(prefers-reduced-motion: reduce)");u(t.matches);let r=e=>u(e.matches);return null==(e=t.addEventListener)||e.call(t,"change",r),()=>{var e;return null==(e=t.removeEventListener)?void 0:e.call(t,"change",r)}},[]);let m=o&&!l?"animated":"static",x=a.useMemo(()=>f(t,m),[t,m]),g="number"==typeof r?r:p[r],v=t.trim().charAt(0).toUpperCase();return(0,n.jsxs)(d.eu,{"data-slot":"agent-avatar","data-motion":m,className:(0,c.cn)("shrink-0 rounded-md bg-muted",i),style:{width:g,height:g},children:[x?(0,n.jsx)(d.BK,{src:x,alt:t,className:(0,c.cn)("rounded-md","origin-top scale-[1.5] -translate-y-[10%]"),draggable:!1}):null,(0,n.jsx)(d.q5,{className:"rounded-md","aria-label":t,children:v?(0,n.jsx)("span",{className:"text-[0.7em] font-medium",children:v}):(0,n.jsx)(s.A,{className:"size-1/2","aria-hidden":!0})})]})}},26978:(e,t,r)=>{"use strict";r.d(t,{AnimatedEmptyState:()=>s});var n=r(60200),a=r(25452);function s(e){let{children:t}=e;return(0,n.jsx)(a.P.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.2,ease:[0,0,.2,1]},children:t})}},30474:(e,t,r)=>{"use strict";r.d(t,{p:()=>s});var n=r(60200);r(81476);var a=r(49417);function s(e){let{className:t,type:r,...s}=e;return(0,n.jsx)("input",{type:r,"data-slot":"input",className:(0,a.cn)("mobile-input-text","file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...s})}},32022:(e,t,r)=>{"use strict";r.d(t,{r:()=>s});var n=r(41677),a=r(81476);function s(){let e=(0,n.r)({delay:120});return(0,a.useMemo)(()=>({...e,refresh:()=>e.refresh({showProgress:!1})}),[e])}},34506:(e,t,r)=>{Promise.resolve().then(r.bind(r,30932)),Promise.resolve().then(r.bind(r,25986)),Promise.resolve().then(r.bind(r,5751)),Promise.resolve().then(r.bind(r,95957)),Promise.resolve().then(r.bind(r,2236)),Promise.resolve().then(r.bind(r,32655)),Promise.resolve().then(r.bind(r,35877)),Promise.resolve().then(r.bind(r,8575)),Promise.resolve().then(r.bind(r,73012)),Promise.resolve().then(r.bind(r,14863)),Promise.resolve().then(r.bind(r,14122)),Promise.resolve().then(r.bind(r,94690)),Promise.resolve().then(r.bind(r,27797)),Promise.resolve().then(r.bind(r,33218)),Promise.resolve().then(r.bind(r,82288)),Promise.resolve().then(r.bind(r,48364)),Promise.resolve().then(r.bind(r,58930)),Promise.resolve().then(r.bind(r,74294)),Promise.resolve().then(r.bind(r,2735)),Promise.resolve().then(r.bind(r,23831)),Promise.resolve().then(r.bind(r,60475)),Promise.resolve().then(r.bind(r,44954)),Promise.resolve().then(r.bind(r,91462)),Promise.resolve().then(r.bind(r,44188)),Promise.resolve().then(r.bind(r,69228)),Promise.resolve().then(r.bind(r,44154)),Promise.resolve().then(r.bind(r,55794)),Promise.resolve().then(r.bind(r,87712)),Promise.resolve().then(r.bind(r,36102)),Promise.resolve().then(r.t.bind(r,25554,23)),Promise.resolve().then(r.bind(r,68227)),Promise.resolve().then(r.bind(r,48215)),Promise.resolve().then(r.bind(r,26978))},38060:(e,t,r)=>{"use strict";r.d(t,{S2:()=>c,eV:()=>d,l9:()=>l,tS:()=>i,w0:()=>u});var n=r(60200),a=r(81476);r(32022);var s=r(42790);let o=(0,a.createContext)(null);function i(e){let{projectUuid:t,children:r}=e,i=(0,s.jj)(),l=null==i?void 0:i.subscribe,d=null==i?void 0:i.openGeneration,c=(0,a.useRef)(new Set),u=(0,a.useRef)(new Set),m=(0,a.useRef)(new Set),f=(0,a.useRef)(new Set),p=(0,a.useCallback)(()=>{c.current.forEach(e=>e())},[]),x=(0,a.useCallback)(e=>{u.current.forEach(t=>t(e))},[]),g=(0,a.useCallback)(()=>{for(let e of(p(),["task","idea","proposal","document","project","project_group"]))x({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})},[p,x]);(0,a.useEffect)(()=>{let e,r,n=null,a=!1,s=0,o={};function i(r){if("presence"===r.type){if(t&&r.projectUuid!==t)return;m.current.forEach(e=>e(r));return}if("execution"===r.type)return void f.current.forEach(e=>e(r));if("string"!=typeof r.entityType||"string"!=typeof r.entityUuid||"string"!=typeof r.action||t&&r.projectUuid!==t)return;clearTimeout(e);let n=Date.now(),a=n-s;a>=3e3?(s=n,p()):e=setTimeout(()=>{s=Date.now(),p()},Math.max(1e3,3e3-a));let i=r.entityType;clearTimeout(o[i]),o[i]=setTimeout(()=>{x(r)},300)}function d(){c(),(n=new EventSource(t?"/api/events?projectUuid=".concat(encodeURIComponent(t)):"/api/events")).onopen=()=>{a&&g(),a=!0},n.onmessage=e=>{let t=null;try{t=JSON.parse(e.data)}catch(e){return}t&&i(t)},n.onerror=()=>{}}function c(){n&&(n.close(),n=null)}function u(){"visible"===document.visibilityState&&(n&&n.readyState!==EventSource.CLOSED||d())}return l?r=l(i):(d(),document.addEventListener("visibilitychange",u)),()=>{for(let t in null==r||r(),c(),clearTimeout(e),o)clearTimeout(o[t]);document.removeEventListener("visibilitychange",u)}},[t,l,p,x,g]);let v=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(l&&d){if(null===v.current){v.current=d;return}d>v.current&&(v.current=d,g())}},[l,d,g]);let h=(0,a.useCallback)(e=>(c.current.add(e),()=>{c.current.delete(e)}),[]),b=(0,a.useCallback)(e=>(u.current.add(e),()=>{u.current.delete(e)}),[]),y=(0,a.useCallback)(e=>(m.current.add(e),()=>{m.current.delete(e)}),[]),j=(0,a.useCallback)(e=>(f.current.add(e),()=>{f.current.delete(e)}),[]),w=(0,a.useMemo)(()=>({subscribe:h,subscribeEntity:b,subscribePresence:y,subscribeExecution:j}),[h,b,y,j]);return(0,n.jsx)(o.Provider,{value:w,children:r})}function l(e){let t=(0,a.useContext)(o),r=(0,a.useRef)(e);r.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=()=>r.current();return e(),t.subscribe(e)},[t])}function d(e,t){let r=(0,a.useContext)(o),n=(0,a.useRef)(t);n.current=t;let s=(0,a.useRef)(e);s.current=e,(0,a.useEffect)(()=>{if(r)return r.subscribeEntity(e=>{let t=s.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&n.current(e)})},[r])}function c(e){let t=(0,a.useContext)(o),r=(0,a.useRef)(e);r.current=e,(0,a.useEffect)(()=>{if(t)return t.subscribePresence(e=>r.current(e))},[t])}function u(e,t,r){let n=(0,a.useContext)(o),s=(0,a.useRef)(r);s.current=r,(0,a.useEffect)(()=>{if(n)return n.subscribeEntity(r=>{r.entityType===e&&r.entityUuid===t&&s.current(r)})},[n,e,t])}},40058:(e,t,r)=>{"use strict";r.d(t,{$:()=>l});var n=r(60200);r(81476);var a=r(53859),s=r(45911),o=r(49417);let i=(0,a.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function l(e){let{className:t,variant:r="default",size:a="default",asChild:l=!1,...d}=e,c=l?s.bL:"button";return(0,n.jsx)(c,{"data-slot":"button","data-variant":r,"data-size":a,className:(0,o.cn)(i({variant:r,size:a,className:t})),...d})}},42790:(e,t,r)=>{"use strict";r.d(t,{D1:()=>l,Qb:()=>i,a7:()=>s,jj:()=>d});var n=r(60200),a=r(81476);let s="stream_reset",o=(0,a.createContext)(null);function i(e){let{children:t}=e,r=(0,a.useRef)(new Set),[i,l]=(0,a.useState)(0),[d,c]=(0,a.useState)(null),u=(0,a.useCallback)(e=>(r.current.add(e),()=>{r.current.delete(e)}),[]);(0,a.useEffect)(()=>{let e=null,t=()=>{e&&(e.close(),e=null)},n=()=>{t(),(e=new EventSource(!d?"/api/events":"/api/events?sessionUuid=".concat(encodeURIComponent(d)))).onopen=()=>{for(let e of(l(e=>e+1),r.current))e({type:s})},e.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch(e){return}for(let e of r.current)e(t)},e.onerror=()=>{}},a=()=>{"visible"===document.visibilityState&&(null==e||e.readyState!==EventSource.OPEN)&&n()};return n(),document.addEventListener("visibilitychange",a),()=>{t(),document.removeEventListener("visibilitychange",a)}},[d]),(0,a.useEffect)(()=>()=>{r.current.clear()},[]);let m=(0,a.useMemo)(()=>({subscribe:u,openGeneration:i,sessionUuid:d,setSessionUuid:c}),[u,i,d]);return(0,n.jsx)(o.Provider,{value:m,children:t})}function l(){let e=(0,a.useContext)(o);if(!e)throw Error("useDashboardEvents must be used within DashboardEventProvider");return e}function d(){return(0,a.useContext)(o)}},43664:(e,t,r)=>{"use strict";r.d(t,{q:()=>i});var n=r(55036);let a={debug:0,info:1,warn:2,error:3},s=n.env.NEXT_PUBLIC_LOG_LEVEL||"warn";function o(e){return a[e]>=a[s]}let i={debug:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];o("debug")&&console.debug("[Chorus] ".concat(e),...r)},info:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];o("info")&&console.info("[Chorus] ".concat(e),...r)},warn:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];o("warn")&&console.warn("[Chorus] ".concat(e),...r)},error:function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];o("error")&&console.error("[Chorus] ".concat(e),...r)}}},45200:(e,t,r)=>{"use strict";r.d(t,{J:()=>o});var n=r(60200);r(81476);var a=r(14122),s=r(49417);function o(e){let{className:t,...r}=e;return(0,n.jsx)(a.Root,{"data-slot":"label",className:(0,s.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...r})}},48186:(e,t,r)=>{"use strict";r.d(t,{fv:()=>x,xQ:()=>g});var n=r(81476),a=r(38060);let s=new Map,o=new Map,i=new Map,l=new Set,d=0;function c(e,t,r,n){return r?n?"".concat(e,":").concat(t,":").concat(r,":").concat(n):"".concat(e,":").concat(t,":").concat(r):"".concat(e,":").concat(t)}function u(){d++,l.forEach(e=>e())}function m(e){var t;let r=e.subEntityType,n=e.subEntityUuid,a=c(e.entityType,e.entityUuid,r,n),l=function(e,t,r,n,a){let s=c(e,t,n,a);return"".concat(s,":").concat(r)}(e.entityType,e.entityUuid,e.agentUuid,r,n),d=o.get(l);if(d&&Date.now()-d<3e3)return;o.set(l,Date.now());let m={agentUuid:e.agentUuid,agentName:e.agentName,action:e.action,timestamp:Date.now()},f=(null!=(t=s.get(a))?t:[]).filter(t=>t.agentUuid!==e.agentUuid);f.push(m),s.set(a,f);let p=i.get(l);p&&clearTimeout(p);let x=setTimeout(()=>{let t=s.get(a);if(t){let r=t.filter(t=>t.agentUuid!==e.agentUuid);0===r.length?s.delete(a):s.set(a,r)}o.delete(l),i.delete(l),u()},3e3);i.set(l,x),u()}function f(){return d}function p(e){return l.add(e),()=>{l.delete(e)}}function x(e){m({type:"presence",companyUuid:"",projectUuid:"",...e,timestamp:Date.now()})}function g(){return(0,n.useSyncExternalStore)(p,f,f),(0,a.S2)(m),{getPresence:(e,t,r,n)=>{if(r){var a;return null!=(a=s.get(c(e,t,r,n)))?a:[]}let o="".concat(e,":").concat(t),i=new Map;for(let[e,t]of s)if(e===o||e.startsWith(o+":"))for(let e of t){let t=i.get(e.agentUuid);(!t||e.timestamp>t.timestamp)&&i.set(e.agentUuid,e)}return[...i.values()]}}}},48215:(e,t,r)=>{"use strict";r.d(t,{DocumentGrid:()=>h});var n=r(60200),a=r(25554),s=r.n(a),o=r(16272),i=r(75507),l=r(80513),d=r(25588),c=r(7685),u=r(10666),m=r(3562),f=r(30244),p=r(35253),x=r(48344),g=r(38395);let v={prd:{labelKey:"documents.typePrd",color:"bg-[#E3F2FD] text-[#1976D2] dark:bg-[#13253a] dark:text-[#5AA9F0]",icon:f.A},spec:{labelKey:"documents.typeSpec",color:"bg-[#E8F5E9] text-[#5A9E6F] dark:bg-[#14281a] dark:text-[#6FD19A]",icon:p.A},design:{labelKey:"documents.typeDesign",color:"bg-[#F3E5F5] text-[#7B1FA2] dark:bg-[#281630] dark:text-[#C98FE0]",icon:x.A},note:{labelKey:"documents.typeNote",color:"bg-[#FFF3E0] text-[#E65100] dark:bg-[#3a2a12] dark:text-[#F0A050]",icon:g.A},report:{labelKey:"documents.typeReport",color:"bg-[#FFF8E1] text-[#9A6B00] dark:bg-[#332a12] dark:text-[#E0B44E]",icon:l.A},other:{labelKey:"documents.typeOther",color:"bg-[#F5F5F5] text-[#6B6B6B] dark:bg-[#1e1e20] dark:text-[#aba29a]",icon:l.A}};function h(e){let{documents:t,projectUuid:r}=e,a=(0,d.c)();return(0,n.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:t.map(e=>{let t=v[e.type],d=(null==t?void 0:t.icon)||l.A;return(0,n.jsx)(c.D,{entityType:"document",entityUuid:e.uuid,children:(0,n.jsxs)(o.Zp,{className:"group relative flex flex-col border-border transition-all hover:border-primary hover:shadow-md",children:[(0,n.jsx)(s(),{href:"/projects/".concat(r,"/documents/").concat(e.uuid),className:"flex flex-1 flex-col p-5 pb-0",children:(0,n.jsxs)("div",{className:"mb-3 flex items-start gap-3",children:[(0,n.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary",children:(0,n.jsx)(d,{className:"h-5 w-5 text-muted-foreground"})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("h3",{className:"font-medium text-foreground leading-snug group-hover:text-primary line-clamp-2",children:e.title}),(0,n.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xs text-[#9A9A9A]",children:[(0,n.jsxs)("span",{children:["v",e.version]}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsx)("span",{children:a("documents.updated",{date:(0,m.r)(e.updatedAt)})})]})]})]})}),(0,n.jsxs)("div",{className:"flex items-center justify-between border-t border-secondary px-5 py-2.5",children:[(0,n.jsx)(i.E,{className:"text-[11px] ".concat((null==t?void 0:t.color)||""),children:a((null==t?void 0:t.labelKey)||"documents.typeOther")}),(0,n.jsx)("div",{onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),children:(0,n.jsx)(u.E,{documentUuid:e.uuid,variant:"compact"})})]})]})},e.uuid)})})}},49417:(e,t,r)=>{"use strict";r.d(t,{cn:()=>s});var n=r(71019),a=r(2105);function s(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,n.$)(t))}},56791:(e,t,r)=>{"use strict";r.d(t,{Hr:()=>p,Ht:()=>u,SQ:()=>d,_2:()=>c,lp:()=>m,mB:()=>f,rI:()=>i,ty:()=>l});var n=r(60200);r(81476);var a=r(76637),s=r(8575),o=r(49417);function i(e){let{...t}=e;return(0,n.jsx)(s.Root,{"data-slot":"dropdown-menu",...t})}function l(e){let{...t}=e;return(0,n.jsx)(s.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function d(e){let{className:t,sideOffset:r=4,...a}=e;return(0,n.jsx)(s.Portal,{children:(0,n.jsx)(s.Content,{"data-slot":"dropdown-menu-content",sideOffset:r,className:(0,o.cn)("bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...a})})}function c(e){let{className:t,inset:r,variant:a="default",...i}=e;return(0,n.jsx)(s.Item,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":a,className:(0,o.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0","data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive","data-[inset]:pl-8 [&_svg]:size-4",t),...i})}function u(e){let{className:t,children:r,...i}=e;return(0,n.jsxs)(s.RadioItem,{"data-slot":"dropdown-menu-radio-item",className:(0,o.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",t),...i,children:[(0,n.jsx)("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:(0,n.jsx)(s.ItemIndicator,{children:(0,n.jsx)(a.A,{className:"size-2 fill-current"})})}),r]})}function m(e){let{className:t,inset:r,...a}=e;return(0,n.jsx)(s.Label,{"data-slot":"dropdown-menu-label","data-inset":r,className:(0,o.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",t),...a})}function f(e){let{className:t,...r}=e;return(0,n.jsx)(s.Separator,{"data-slot":"dropdown-menu-separator",className:(0,o.cn)("bg-border -mx-1 my-1 h-px",t),...r})}function p(e){let{...t}=e;return(0,n.jsx)(s.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}},62925:(e,t,r)=>{"use strict";r.d(t,{BK:()=>i,eu:()=>o,q5:()=>l});var n=r(60200);r(81476);var a=r(5751),s=r(49417);function o(e){let{className:t,size:r="default",...o}=e;return(0,n.jsx)(a.Root,{"data-slot":"avatar","data-size":r,className:(0,s.cn)("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",t),...o})}function i(e){let{className:t,...r}=e;return(0,n.jsx)(a.Image,{"data-slot":"avatar-image",className:(0,s.cn)("aspect-square size-full",t),...r})}function l(e){let{className:t,...r}=e;return(0,n.jsx)(a.Fallback,{"data-slot":"avatar-fallback",className:(0,s.cn)("bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",t),...r})}},67566:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>m,Es:()=>p,L3:()=>x,c7:()=>f,lG:()=>l,rr:()=>g,zM:()=>d});var n=r(60200);r(81476);var a=r(5535),s=r(35877),o=r(49417),i=r(40058);function l(e){let{...t}=e;return(0,n.jsx)(s.Root,{"data-slot":"dialog",...t})}function d(e){let{...t}=e;return(0,n.jsx)(s.Trigger,{"data-slot":"dialog-trigger",...t})}function c(e){let{...t}=e;return(0,n.jsx)(s.Portal,{"data-slot":"dialog-portal",...t})}function u(e){let{className:t,...r}=e;return(0,n.jsx)(s.Overlay,{"data-slot":"dialog-overlay",className:(0,o.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...r})}function m(e){let{className:t,overlayClassName:r,children:i,showCloseButton:l=!0,...d}=e;return(0,n.jsxs)(c,{"data-slot":"dialog-portal",children:[(0,n.jsx)(u,{className:r}),(0,n.jsxs)(s.Content,{"data-slot":"dialog-content",className:(0,o.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",t),...d,children:[i,l&&(0,n.jsxs)(s.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,n.jsx)(a.A,{}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function f(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"dialog-header",className:(0,o.cn)("flex flex-col gap-2 text-center sm:text-left",t),...r})}function p(e){let{className:t,showCloseButton:r=!1,children:a,...l}=e;return(0,n.jsxs)("div",{"data-slot":"dialog-footer",className:(0,o.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...l,children:[a,r&&(0,n.jsx)(s.Close,{asChild:!0,children:(0,n.jsx)(i.$,{variant:"outline",children:"Close"})})]})}function x(e){let{className:t,...r}=e;return(0,n.jsx)(s.Title,{"data-slot":"dialog-title",className:(0,o.cn)("text-lg leading-none font-semibold",t),...r})}function g(e){let{className:t,...r}=e;return(0,n.jsx)(s.Description,{"data-slot":"dialog-description",className:(0,o.cn)("text-muted-foreground text-sm",t),...r})}},68227:(e,t,r)=>{"use strict";r.d(t,{CreateDocumentDialog:()=>b});var n=r(60200),a=r(81476),s=r(32022),o=r(25588),i=r(26657),l=r(80513),d=r(71740),c=r(28201),u=r(40058),m=r(30474),f=r(45200),p=r(67566),x=r(21558),g=r(42885);let v=(0,g.createServerReference)("40adabf1fe2dab02eea526e5f5f106c459b5f2642c",g.callServer,void 0,g.findSourceMapURL,"createDocumentAction");var h=r(69189);function b(e){let{projectUuid:t,trigger:r}=e,g=(0,o.c)(),b=(0,h.F7)(),y=(0,s.r)(),j=(0,a.useRef)(null),[w,N]=(0,a.useState)(!1),[k,A]=(0,a.useState)(""),[C,E]=(0,a.useState)("prd"),[P,S]=(0,a.useState)(null),[z,D]=(0,a.useState)(""),[F,U]=(0,a.useState)(null),[_,R]=(0,a.useState)(!1),T=()=>{A(""),E("prd"),S(null),D(""),U(null),j.current&&(j.current.value="")},L=async()=>{if(!k.trim())return void U(g("documents.titleRequired"));R(!0),U(null);let e=await v({projectUuid:t,title:k.trim(),type:C,content:z});R(!1),e.success?(N(!1),T(),y.refresh(),e.documentUuid&&y.push("/projects/".concat(t,"/documents/").concat(e.documentUuid))):U(e.error||g("documents.createFailed"))};return b?(0,n.jsxs)(p.lG,{open:w,onOpenChange:e=>{N(e),e||T()},children:[(0,n.jsx)(p.zM,{asChild:!0,children:r||(0,n.jsxs)(u.$,{className:"bg-primary hover:bg-[#B56A42] text-white",children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4"}),g("documents.newDocument")]})}),(0,n.jsxs)(p.Cf,{className:"sm:max-w-[480px]",children:[(0,n.jsx)(p.c7,{children:(0,n.jsx)(p.L3,{children:g("documents.createDocument")})}),(0,n.jsxs)("div",{className:"space-y-4 py-2",children:[F&&(0,n.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:F}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)(f.J,{htmlFor:"doc-title",className:"text-[13px] font-medium text-foreground",children:[g("documents.titleLabel")," *"]}),(0,n.jsx)(m.p,{id:"doc-title",value:k,onChange:e=>A(e.target.value),placeholder:g("documents.titlePlaceholder"),className:"border-border focus-visible:ring-primary",autoFocus:!0})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f.J,{htmlFor:"doc-type",className:"text-[13px] font-medium text-foreground",children:g("documents.typeLabel")}),(0,n.jsxs)(x.l6,{value:C,onValueChange:E,children:[(0,n.jsx)(x.bq,{className:"border-border focus:ring-primary",children:(0,n.jsx)(x.yv,{})}),(0,n.jsxs)(x.gC,{children:[(0,n.jsx)(x.eb,{value:"prd",children:"PRD"}),(0,n.jsx)(x.eb,{value:"spec",children:"Spec"}),(0,n.jsx)(x.eb,{value:"design",children:"Design"}),(0,n.jsx)(x.eb,{value:"note",children:"Note"}),(0,n.jsx)(x.eb,{value:"other",children:"Other"})]})]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f.J,{className:"text-[13px] font-medium text-foreground",children:g("documents.uploadMarkdown")}),(0,n.jsx)("div",{className:"flex cursor-pointer items-center gap-3 rounded-lg border border-dashed border-border p-4 transition-colors hover:border-primary hover:bg-[#FFFBF8] dark:hover:bg-[#1e1d1b]",onClick:()=>{var e;return null==(e=j.current)?void 0:e.click()},children:P?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.A,{className:"h-5 w-5 text-primary"}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-foreground truncate",children:P}),(0,n.jsxs)("p",{className:"text-xs text-[#9A9A9A]",children:[z.length.toLocaleString()," ",g("documents.characters")]})]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"h-5 w-5 text-[#9A9A9A]"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:g("documents.clickToUpload")}),(0,n.jsx)("p",{className:"text-xs text-[#9A9A9A]",children:".md, .txt, .markdown"})]})]})}),(0,n.jsx)("input",{ref:j,type:"file",accept:".md,.txt,.markdown",onChange:e=>{var t;let r=null==(t=e.target.files)?void 0:t[0];if(!r)return;S(r.name);let n=new FileReader;n.onload=e=>{var t;D(null==(t=e.target)?void 0:t.result)},n.readAsText(r)},className:"hidden"})]})]}),(0,n.jsxs)(p.Es,{children:[(0,n.jsx)(u.$,{variant:"outline",onClick:()=>N(!1),disabled:_,className:"border-border",children:g("common.cancel")}),(0,n.jsx)(u.$,{onClick:L,disabled:_||!k.trim(),className:"bg-primary hover:bg-[#B56A42] text-white",children:_?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),g("common.creating")]}):g("common.create")})]})]})]}):null}},69189:(e,t,r)=>{"use strict";r.d(t,{F7:()=>l,P6:()=>i,ProjectAccessProvider:()=>o});var n=r(60200),a=r(81476);let s=(0,a.createContext)("editor");function o(e){let{accessLevel:t,children:r}=e;return(0,n.jsx)(s.Provider,{value:t,children:r})}function i(){return(0,a.useContext)(s)}function l(){return"viewer"!==i()}},69351:(e,t,r)=>{"use strict";r.d(t,{j:()=>a});let n=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function a(e){let t=function(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return Math.abs(t)}(e)%n.length;return n[t]}},75507:(e,t,r)=>{"use strict";r.d(t,{E:()=>l});var n=r(60200);r(81476);var a=r(53859),s=r(45911),o=r(49417);let i=(0,a.F)("inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline",success:"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100",warning:"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:r="default",asChild:a=!1,...l}=e,d=a?s.bL:"span";return(0,n.jsx)(d,{"data-slot":"badge","data-variant":r,className:(0,o.cn)(i({variant:r}),t),...l})}}},e=>{e.O(0,[87326,71444,92037,41677,25554,74414,7659,25452,33218,65208,8575,21495,50585,73849,46608,77358],()=>e(e.s=34506)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[13280],{11795:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return a}});let a=(0,r(48393).createAsyncLocalStorage)()},14200:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return a.workAsyncStorageInstance}});let a=r(11795)},16395:(e,t,r)=>{"use strict";r.d(t,{ResourceGraph:()=>R});var a=r(60200),n=r(81476),l=r(40381),s=r.n(l),o=r(25588),i=r(44072),u=r(30244),d=r(53804),c=r(80513),p=r(73326);let h=(0,p.A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var f=r(5535),m=r(27477);let g=(0,p.A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),x=(0,p.A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);var y=r(29438),v=r(50759),b=r(40058),j=r(16272),w=r(75861),k=r(30474),S=r(45200),N=r(58851),C=r(26978),A=r(74315),M=r(88749),_=r(76753),z=r(38060),E=r(53823),I=r(43664),O=r(11064),P=r(61169),U=r(9882),F=r(86579);let B=s()(()=>r.e(50915).then(r.bind(r,50915)).then(e=>e.ForceGraphCanvas),{loadableGenerated:{webpack:()=>[50915]},ssr:!1,loading:()=>(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:"…"})}),L={idea:{color:"#7C4DFF",darkColor:"#9B82FF",Icon:i.A},proposal:{color:"#2563EB",darkColor:"#5A8DEF",Icon:u.A},task:{color:"#E8833A",darkColor:"#F0964E",Icon:d.A},document:{color:"#00897B",darkColor:"#1CA695",Icon:c.A}},q={idea:!0,proposal:!0,task:!0,document:!0};function R(e){var t;let{projectUuid:r,currentUserUuid:l}=e,s=(0,o.c)(),i=(0,M.a)(),[u,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(null),[R,T]=(0,n.useState)(q),V="/projects/".concat(r,"/graph"),{selectedId:$,openPanel:H,closePanel:Z}=(0,A.T)(V,null),[G,K]=(0,n.useState)(null),[J,Q]=(0,n.useState)(null),[W,X]=(0,n.useState)(null),[Y,ee]=(0,n.useState)(()=>new Set),[et,er]=(0,n.useState)(()=>new Set),[ea,en]=(0,n.useState)(""),[el,es]=(0,n.useState)(0),[eo,ei]=(0,n.useState)(null),[eu,ed]=(0,n.useState)(!1),ec=(0,n.useRef)(!1),ep=(0,n.useRef)(0),eh=(0,n.useRef)(null),ef=(0,n.useCallback)(async()=>{var e,t;null==(e=eh.current)||e.abort();let a=new AbortController;eh.current=a;let n=++ep.current;try{let e=await fetch("/api/projects/".concat(r,"/resource-graph"),{signal:a.signal}),l=await e.json();if(a.signal.aborted||n!==ep.current)return;if(!e.ok||!l.success||!l.data)return void p(null!=(t=l.error)?t:s("graph.loadFailed"));let o=l.data,i=new Set(o.nodes.map(e=>e.uuid)),u=e=>{let t=!1,r=new Set;for(let a of e)i.has(a)?r.add(a):t=!0;return t?r:e};ee(u),er(u),p(null),d(o)}catch(e){if(a.signal.aborted||n!==ep.current)return;console.error("[resource-graph] fetch failed",e),p(s("graph.loadFailed"))}},[r,s]);(0,n.useEffect)(()=>(p(null),d(null),ee(new Set),er(new Set),en(""),es(0),ei(null),ec.current=!1,ef(),()=>{var e;null==(e=eh.current)||e.abort()}),[r,ef]),(0,z.eV)("idea",ef),(0,z.eV)("proposal",ef),(0,z.eV)("task",ef),(0,z.eV)("document",ef);let em=(0,n.useCallback)(e=>{T(t=>({...t,[e]:!t[e]}))},[]),eg=(0,n.useCallback)((e,t)=>{"idea"===t?ee(t=>{let r=new Set(t);if(r.has(e)){var a;r.delete(e);let t=(null!=(a=null==u?void 0:u.nodes)?a:[]).filter(t=>{var r;return"proposal"===t.type&&(null!=(r=t.sourceIdeaUuids)?r:[]).includes(e)}).map(e=>e.uuid);t.length>0&&er(e=>{let r=!1,a=new Set(e);for(let e of t)a.delete(e)&&(r=!0);return r?a:e})}else r.add(e);return r}):"proposal"===t&&er(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[u]),ex=Y.size>0||et.size>0,ey=(0,n.useCallback)(()=>{if(!u)return;let e=new Set,t=new Set;for(let r of u.nodes)"idea"===r.type?e.add(r.uuid):"proposal"===r.type&&t.add(r.uuid);ee(e),er(t)},[u]),ev=(0,n.useCallback)(()=>{ee(new Set),er(new Set)},[]),{forceNodes:eb,forceLinks:ej,isEmpty:ew}=(0,n.useMemo)(()=>{if(!u)return{forceNodes:[],forceLinks:[],isEmpty:!0};let{visibleNodeUuids:e,visibleEdgeIndices:t,childCountByHub:r}=function(e,t,r){var a,n,l,s,o,i;let{nodes:u,edges:d}=e,c=new Set,p=new Map,h=[];for(let e of u)"idea"===e.type?c.add(e.uuid):"proposal"===e.type?p.set(e.uuid,e):h.push(e);let f=new Map;for(let e of c)f.set(e,0);for(let e of p.keys())f.set(e,0);for(let e of p.values())for(let t of null!=(a=e.sourceIdeaUuids)?a:[])c.has(t)&&f.set(t,(null!=(n=f.get(t))?n:0)+1);for(let e of h){let t=null!=(l=e.proposalUuid)?l:null;null!==t&&p.has(t)&&f.set(t,(null!=(s=f.get(t))?s:0)+1)}let m=new Set(c),g=new Set;for(let e of p.values()){let r=(null!=(o=e.sourceIdeaUuids)?o:[]).filter(e=>c.has(e));(0===r.length||r.some(e=>t.has(e)))&&(g.add(e.uuid),m.add(e.uuid))}for(let e of h){let t=null!=(i=e.proposalUuid)?i:null;if(null===t||!p.has(t)){m.add(e.uuid);continue}g.has(t)&&r.has(t)&&m.add(e.uuid)}let x=[];for(let e=0;e<d.length;e++){let t=d[e];m.has(t.from)&&m.has(t.to)&&x.push(e)}return{visibleNodeUuids:m,visibleEdgeIndices:x,childCountByHub:f}}(u,Y,et),a=u.nodes.filter(t=>e.has(t.uuid)&&R[t.type]),n=new Set(a.map(e=>e.uuid)),l=t.map(e=>u.edges[e]).filter(e=>n.has(e.from)&&n.has(e.to)),s=new Set(u.nodes.filter(e=>"idea"===e.type).map(e=>e.uuid)),o=new Map;for(let e of u.nodes){var i;if("proposal"!==e.type)continue;let t=(null!=(i=e.sourceIdeaUuids)?i:[]).find(e=>s.has(e));o.set(e.uuid,t)}let d=new Set(o.keys());return{forceNodes:a.map(e=>{var t,a;let n="idea"===e.type||"proposal"===e.type?null!=(t=r.get(e.uuid))?t:0:void 0,l="idea"===e.type?Y.has(e.uuid):"proposal"===e.type?et.has(e.uuid):void 0;return{id:e.uuid,type:e.type,title:e.title,status:e.status,childCount:n,expanded:l,hasAffordance:(a=e.type,("idea"===a||"proposal"===a)&&(null!=n?n:0)>0),ownerId:(e=>{if("proposal"===e.type)return o.get(e.uuid);if("task"===e.type||"document"===e.type){var t;let r=null!=(t=e.proposalUuid)?t:void 0;return r&&d.has(r)?r:void 0}})(e)}}),forceLinks:l.map(e=>({source:e.from,target:e.to,kind:e.kind})),isEmpty:0===a.length}},[u,Y,et,R]),ek=(0,n.useMemo)(()=>{if(!u)return null;var e=u.nodes.filter(e=>R[e.type]);let t=ea.trim().toLowerCase();if(""===t)return null;let r=new Set;for(let a of e)a.title.toLowerCase().includes(t)&&r.add(a.uuid);return r},[u,ea,R]),eS=null!==ek,eN=(0,n.useMemo)(()=>{if(null===ek||0===ek.size)return[];let{outline:e}=(0,E.U)(eb,ej),t=[];for(let r of e)ek.has(r.id)&&t.push(r.id);return t},[ek,eb,ej]),eC=eN.length,eA=eC>0?(el%eC+eC)%eC:0,eM=eC>0?eN[eA]:null,e_=(0,n.useRef)(eN);e_.current=eN;let ez=(0,n.useRef)(el);ez.current=el,(0,n.useEffect)(()=>{if(!u||null===ek||0===ek.size)return;let{ideaUuids:e,proposalUuids:t}=function(e,t){let r=new Set,a=new Set,n=new Set,l=new Map,s=new Map;for(let t of e.nodes)s.set(t.uuid,t),"idea"===t.type?n.add(t.uuid):"proposal"===t.type&&l.set(t.uuid,t);let o=e=>{var t;return(null!=(t=e.sourceIdeaUuids)?t:[]).find(e=>n.has(e))};for(let e of t){var i;let t=s.get(e);if(void 0===t||"idea"===t.type)continue;if("proposal"===t.type){let e=o(t);void 0!==e&&r.add(e);continue}let n=null!=(i=t.proposalUuid)?i:null;if(null===n)continue;let u=l.get(n);if(void 0===u)continue;a.add(n);let d=o(u);void 0!==d&&r.add(d)}return{ideaUuids:r,proposalUuids:a}}(u,ek);e.size>0&&ee(t=>{let r=!1,a=new Set(t);for(let t of e)a.has(t)||(a.add(t),r=!0);return r?a:t}),t.size>0&&er(e=>{let r=!1,a=new Set(e);for(let e of t)a.has(e)||(a.add(e),r=!0);return r?a:e})},[u,ek]),(0,n.useEffect)(()=>{let e=ec.current;!eS&&e&&(es(0),ei(null)),ec.current=eS},[eS]),(0,n.useEffect)(()=>{es(0)},[ea]),(0,n.useEffect)(()=>{if(null===ek)return;let e=setTimeout(()=>{let e=e_.current;if(0===e.length)return void ei(null);let t=(ez.current%e.length+e.length)%e.length;ei(e[t])},200);return()=>clearTimeout(e)},[ea,ek]);let eE=(0,n.useCallback)(e=>{let t=e_.current,r=t.length;if(0===r)return;let a=((ez.current+e)%r+r)%r;es(a),ei(t[a])},[]),eI=(0,n.useCallback)(()=>{en("")},[]),eO=(0,n.useCallback)(e=>{(0,_.P)(e)||("Enter"===e.key?(e.preventDefault(),eE(e.shiftKey?-1:1)):"Escape"===e.key&&(e.preventDefault(),eI()))},[eI,eE]),eP=(0,n.useCallback)(e=>{X(null),K(e)},[]),eU=(0,n.useCallback)(e=>{K(null),Q(null),X(e)},[]);(0,n.useEffect)(()=>{if(!G)return void Q(null);let e=!1;return(0,F.Q)(G).then(t=>{e||(t.success?Q(t.data):I.q.error("Failed to load task for graph panel:",t.error))}).catch(t=>{e||I.q.error("Failed to load task for graph panel:",t)}),()=>{e=!0}},[G]);let[eF,eB]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(!eF)return;let e=new AbortController;return(async()=>{try{var t;let r=await fetch("/api/documents/".concat(eF),{signal:e.signal}),a=await r.json();if(e.signal.aborted)return;if(!r.ok||!a.success||!a.data)return void I.q.error("Failed to load document for graph panel:",a.error);eU({title:a.data.title,type:a.data.type,content:null!=(t=a.data.content)?t:""})}catch(t){if(e.signal.aborted)return;I.q.error("Failed to load document for graph panel:",t)}})(),()=>e.abort()},[eF,eU]);let eL=(0,n.useCallback)((e,t,r)=>{if(r&&("idea"===t||"proposal"===t))return void eg(e,t);switch(t){case"idea":return void H(e,"elaboration");case"proposal":{var a,n;let t=(null!=(n=null==u||null==(a=u.nodes.find(t=>t.uuid===e))?void 0:a.sourceIdeaUuids)?n:[])[0];if(!t)return void I.q.warn("[resource-graph] proposal node has no project-local source idea; cannot open panel",{proposalUuid:e});H(t,"proposal");return}case"task":return void eP(e);case"document":K(null),Q(null),X(null),eB(e);return}},[u,H,eP,eg]),eq=null!=(t=null!=$?$:G)?t:eF,eR=(0,n.useCallback)(()=>{X(null),eB(null)},[]),eD=(0,a.jsxs)(a.Fragment,{children:[$&&(0,a.jsx)(O.D,{ideaUuid:$,projectUuid:r,currentUserUuid:l,onClose:Z,onNavigate:H},$),G&&J&&(0,a.jsx)(P.v,{task:J,projectUuid:r,currentUserUuid:l,mode:"overlay",onClose:()=>{K(null),Q(null)}}),W&&(0,a.jsx)(U.K,{title:W.title,type:W.type,content:W.content,mode:"overlay",onClose:eR})]});return c?(0,a.jsxs)("div",{className:"p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsx)(j.Zp,{className:"border-border p-6 text-sm text-[#B71C1C] dark:text-[#F08078]",children:c}),eD]}):u?(0,a.jsxs)("div",{className:"flex h-full min-h-0 flex-col p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsxs)("div",{className:"relative flex-1 min-h-[600px] overflow-hidden rounded-[10px] border border-border bg-background",children:[ew&&(0,a.jsx)(C.AnimatedEmptyState,{children:(0,a.jsxs)(j.Zp,{className:"m-12 flex flex-col items-center justify-center border-border p-8 text-center",children:[(0,a.jsx)("h3",{className:"mb-2 text-base font-medium text-foreground",children:s("graph.emptyTitle")}),(0,a.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:s("graph.emptyDesc")})]})}),!ew&&(0,a.jsx)(B,{nodes:eb,links:ej,selectedId:eq,onNodeClick:eL,matchIds:ek,currentMatchId:eM,centerNodeId:eo}),(0,a.jsx)("div",{className:"absolute right-3 top-3 z-10",children:i&&!eu?(0,a.jsx)(b.$,{type:"button",variant:"outline",size:"icon",onClick:()=>ed(!0),"aria-label":s("graph.controls.open"),"data-testid":"graph-controls-toggle",className:"bg-card/95 shadow-sm backdrop-blur",children:(0,a.jsx)(h,{className:"h-4 w-4"})}):(0,a.jsxs)(j.Zp,{className:"w-[208px] border-border bg-card/95 p-2.5 shadow-sm backdrop-blur",children:[i&&(0,a.jsx)("div",{className:"mb-1.5 flex justify-end",children:(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>ed(!1),"aria-label":s("graph.controls.close"),"data-testid":"graph-controls-collapse",className:"text-muted-foreground",children:(0,a.jsx)(f.A,{className:"h-3.5 w-3.5"})})}),!ew&&(0,a.jsxs)("div",{className:"mb-2","data-testid":"graph-search",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(m.A,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[#9A9A9A]","aria-hidden":"true"}),(0,a.jsx)(k.p,{type:"text",value:ea,onChange:e=>en(e.target.value),onKeyDown:eO,placeholder:s("graph.search.placeholder"),"aria-label":s("graph.search.placeholder"),"data-testid":"graph-search-input",className:"h-8 pl-8 pr-8 text-xs"}),""!==ea&&(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:eI,"aria-label":s("graph.search.clear"),"data-testid":"graph-search-clear",className:"absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground",children:(0,a.jsx)(f.A,{className:"h-3.5 w-3.5"})})]}),(0,a.jsx)(N.Bc,{delayDuration:300,children:(0,a.jsxs)(N.m_,{children:[(0,a.jsx)(N.k$,{asChild:!0,children:(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-sm",onClick:ex?ev:ey,"aria-label":ex?s("graph.collapseAll"):s("graph.expandAll"),"data-testid":"graph-expand-toggle",className:"shrink-0 text-muted-foreground",children:ex?(0,a.jsx)(g,{className:"h-3.5 w-3.5"}):(0,a.jsx)(x,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(N.ZI,{side:"bottom",children:ex?s("graph.collapseAll"):s("graph.expandAll")})]})})]}),eS&&(0,a.jsxs)("div",{className:"mt-1.5 flex items-center justify-between gap-2","data-testid":"graph-search-nav",children:[eC>0?(0,a.jsx)("span",{className:"text-[11px] tabular-nums text-muted-foreground","data-testid":"graph-search-count",children:s("graph.search.count",{current:eA+1,total:eC})}):(0,a.jsx)("span",{className:"text-[11px] text-[#B07B00] dark:text-[#E0A050]","data-testid":"graph-search-no-matches",children:s("graph.search.noMatches")}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>eE(-1),disabled:0===eC,"aria-label":s("graph.search.prev"),"data-testid":"graph-search-prev",children:(0,a.jsx)(y.A,{className:"h-3.5 w-3.5"})}),(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>eE(1),disabled:0===eC,"aria-label":s("graph.search.next"),"data-testid":"graph-search-next",children:(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"})})]})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-x-2 gap-y-1.5",children:["idea","proposal","task","document"].map(e=>{let t=L[e],r="graph-filter-".concat(e);return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(w.S,{id:r,checked:R[e],onCheckedChange:()=>em(e)}),(0,a.jsx)("span",{className:"graph-swatch h-2 w-2 shrink-0 rounded-full",style:{"--swatch":t.color,"--swatch-dark":t.darkColor}}),(0,a.jsx)(S.J,{htmlFor:r,className:"cursor-pointer text-xs text-foreground",children:s("graph.filters.".concat(e))})]},e)})})]})})]}),eD]}):(0,a.jsxs)("div",{className:"p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsx)(j.Zp,{className:"flex items-center justify-center border-border p-12 text-sm text-muted-foreground",children:s("graph.loading")}),eD]})}function D(e){let{t}=e;return(0,a.jsx)("div",{className:"mb-6 flex items-center justify-between",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:t("graph.title")}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t("graph.subtitle")})]})})}},17573:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let a=r(60200),n=r(81476),l=r(23818);function s(e){return{default:e&&"default"in e?e.default:e}}r(90727);let o={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(s)),i=t.loading;function u(e){let s=i?(0,a.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?n.Suspense:n.Fragment,d=t.ssr?(0,a.jsxs)(a.Fragment,{children:[null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(u,{...o?{fallback:s}:{},children:d})}return u.displayName="LoadableComponent",u}},23818:(e,t,r)=>{"use strict";function a(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return a}}),r(57798)},26978:(e,t,r)=>{"use strict";r.d(t,{AnimatedEmptyState:()=>l});var a=r(60200),n=r(25452);function l(e){let{children:t}=e;return(0,a.jsx)(n.P.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.2,ease:[0,0,.2,1]},children:t})}},37808:(e,t,r)=>{Promise.resolve().then(r.bind(r,16395))},40381:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(91456)._(r(17573));function n(e,t){var r;let n={};"function"==typeof e&&(n.loader=e);let l={...n,...t};return(0,a.default)({...l,modules:null==(r=l.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48393:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return o}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class a{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let n="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return n?new n:new a}function s(e){return n?n.bind(e):a.bind(e)}function o(){return n?n.snapshot():function(e,...t){return e(...t)}}},53804:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(73326).A)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},53823:(e,t,r)=>{"use strict";r.d(t,{U:()=>i});var a=r(15850);function n(e,t){return e.parent===t.parent?1:2}function l(e){var t=e.children;return t?t[0]:e.t}function s(e){var t=e.children;return t?t[t.length-1]:e.t}function o(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function i(e,t){let r=new Map;for(let t of e)r.set(t.id,t);let i=new Map,u=new Map;for(let e of t)"lineage"===e.kind?i.has(e.target)||i.set(e.target,e.source):"depends"!==e.kind||u.has(e.target)||u.set(e.target,e.source);let d=e=>{if("idea"===e.type){let t=i.get(e.id);return void 0!==t&&r.has(t)?t:void 0}if("task"===e.type){let t=u.get(e.id);if(void 0!==t&&r.has(t))return t}return void 0!==e.ownerId&&r.has(e.ownerId)?e.ownerId:void 0},c=new Map,p=new Map,h=[];for(let t of e){let e=d(t);if(void 0===e)h.push(t);else{p.set(t.id,e);let r=c.get(e);r?r.push(t):c.set(e,[t])}}let f=(e,t)=>{var r;t.add(e.id);let a=null!=(r=c.get(e.id))?r:[],n=[];for(let e of a)t.has(e.id)||n.push(f(e,t));return{id:e.id,children:n}},m=(function(){var e=n,t=1,r=1,a=null;function i(n){var l=function(e){for(var t,r,a,n,l,s=new o(e,0),i=[s];t=i.pop();)if(a=t._.children)for(t.children=Array(l=a.length),n=l-1;n>=0;--n)i.push(r=t.children[n]=new o(a[n],n)),r.parent=t;return(s.parent=new o(null,0)).children=[s],s}(n);if(l.eachAfter(u),l.parent.m=-l.z,l.eachBefore(d),a)n.eachBefore(c);else{var s=n,i=n,p=n;n.eachBefore(function(e){e.x<s.x&&(s=e),e.x>i.x&&(i=e),e.depth>p.depth&&(p=e)});var h=s===i?1:e(s,i)/2,f=h-s.x,m=t/(i.x+h+f),g=r/(p.depth||1);n.eachBefore(function(e){e.x=(e.x+f)*m,e.y=e.depth*g})}return n}function u(t){var r=t.children,a=t.parent.children,n=t.i?a[t.i-1]:null;if(r){!function(e){for(var t,r=0,a=0,n=e.children,l=n.length;--l>=0;)t=n[l],t.z+=r,t.m+=r,r+=t.s+(a+=t.c)}(t);var o=(r[0].z+r[r.length-1].z)/2;n?(t.z=n.z+e(t._,n._),t.m=t.z-o):t.z=o}else n&&(t.z=n.z+e(t._,n._));t.parent.A=function(t,r,a){if(r){for(var n,o,i,u=t,d=t,c=r,p=u.parent.children[0],h=u.m,f=d.m,m=c.m,g=p.m;c=s(c),u=l(u),c&&u;)p=l(p),(d=s(d)).a=t,(i=c.z+m-u.z-h+e(c._,u._))>0&&(!function(e,t,r){var a=r/(t.i-e.i);t.c-=a,t.s+=r,e.c+=a,t.z+=r,t.m+=r}((n=c,o=a,n.a.parent===t.parent?n.a:o),t,i),h+=i,f+=i),m+=c.m,h+=u.m,g+=p.m,f+=d.m;c&&!s(d)&&(d.t=c,d.m+=m-f),u&&!l(p)&&(p.t=u,p.m+=h-g,a=t)}return a}(t,n,t.parent.A||a[0])}function d(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function c(e){e.x*=t,e.y=e.depth*r}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(a=!1,t=+e[0],r=+e[1],i):a?null:[t,r]},i.nodeSize=function(e){return arguments.length?(a=!0,t=+e[0],r=+e[1],i):a?[t,r]:null},i})().nodeSize([72,280]),g=new Map,x=[],y=0;for(let e of h){let t=f(e,new Set),r=(0,a.Ay)(t);m(r);let n=1/0,l=-1/0;r.each(e=>{e.x<n&&(n=e.x),e.x>l&&(l=e.x)}),Number.isFinite(n)||(n=0,l=0);let s=y-n;r.eachBefore(e=>{let t=e.data.id;g.set(t,{id:t,x:e.y,y:e.x+s,depth:e.depth}),x.push({id:t,depth:e.depth})}),y=l+s+96}return{positions:g,outline:x,treeParentById:p}}o.prototype=Object.create(a.bP.prototype)},88749:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});var a=r(81476);function n(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=window.matchMedia("(max-width: 767px)");t(e.matches);let r=e=>t(e.matches);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)},[]),e}},90727:(e,t,r)=>{"use strict";function a(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return a}}),r(60200),r(42917),r(14200),r(78293)}},e=>{e.O(0,[32271,87326,93151,41752,30996,57084,68381,71444,92037,41677,25554,6893,74414,34216,7659,76404,25452,33218,10201,38803,23593,10006,26441,73632,63472,65208,8575,5899,86791,80395,75556,16198,36244,6497,40309,70762,56161,73849,46608,77358],()=>e(e.s=37808)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[13280],{11795:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return a}});let a=(0,r(48393).createAsyncLocalStorage)()},14200:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return a.workAsyncStorageInstance}});let a=r(11795)},16395:(e,t,r)=>{"use strict";r.d(t,{ResourceGraph:()=>R});var a=r(60200),n=r(81476),l=r(40381),s=r.n(l),o=r(25588),i=r(44072),u=r(30244),d=r(53804),c=r(80513),p=r(73326);let h=(0,p.A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var f=r(5535),m=r(27477);let g=(0,p.A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),x=(0,p.A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);var y=r(29438),v=r(50759),b=r(40058),j=r(16272),w=r(75861),k=r(30474),S=r(45200),N=r(58851),C=r(26978),A=r(74315),M=r(88749),_=r(76753),z=r(38060),E=r(53823),I=r(43664),O=r(44295),P=r(34709),U=r(9882),F=r(80958);let B=s()(()=>r.e(50915).then(r.bind(r,50915)).then(e=>e.ForceGraphCanvas),{loadableGenerated:{webpack:()=>[50915]},ssr:!1,loading:()=>(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:"…"})}),L={idea:{color:"#7C4DFF",darkColor:"#9B82FF",Icon:i.A},proposal:{color:"#2563EB",darkColor:"#5A8DEF",Icon:u.A},task:{color:"#E8833A",darkColor:"#F0964E",Icon:d.A},document:{color:"#00897B",darkColor:"#1CA695",Icon:c.A}},q={idea:!0,proposal:!0,task:!0,document:!0};function R(e){var t;let{projectUuid:r,currentUserUuid:l}=e,s=(0,o.c)(),i=(0,M.a)(),[u,d]=(0,n.useState)(null),[c,p]=(0,n.useState)(null),[R,T]=(0,n.useState)(q),V="/projects/".concat(r,"/graph"),{selectedId:$,openPanel:H,closePanel:Z}=(0,A.T)(V,null),[G,K]=(0,n.useState)(null),[J,Q]=(0,n.useState)(null),[W,X]=(0,n.useState)(null),[Y,ee]=(0,n.useState)(()=>new Set),[et,er]=(0,n.useState)(()=>new Set),[ea,en]=(0,n.useState)(""),[el,es]=(0,n.useState)(0),[eo,ei]=(0,n.useState)(null),[eu,ed]=(0,n.useState)(!1),ec=(0,n.useRef)(!1),ep=(0,n.useRef)(0),eh=(0,n.useRef)(null),ef=(0,n.useCallback)(async()=>{var e,t;null==(e=eh.current)||e.abort();let a=new AbortController;eh.current=a;let n=++ep.current;try{let e=await fetch("/api/projects/".concat(r,"/resource-graph"),{signal:a.signal}),l=await e.json();if(a.signal.aborted||n!==ep.current)return;if(!e.ok||!l.success||!l.data)return void p(null!=(t=l.error)?t:s("graph.loadFailed"));let o=l.data,i=new Set(o.nodes.map(e=>e.uuid)),u=e=>{let t=!1,r=new Set;for(let a of e)i.has(a)?r.add(a):t=!0;return t?r:e};ee(u),er(u),p(null),d(o)}catch(e){if(a.signal.aborted||n!==ep.current)return;console.error("[resource-graph] fetch failed",e),p(s("graph.loadFailed"))}},[r,s]);(0,n.useEffect)(()=>(p(null),d(null),ee(new Set),er(new Set),en(""),es(0),ei(null),ec.current=!1,ef(),()=>{var e;null==(e=eh.current)||e.abort()}),[r,ef]),(0,z.eV)("idea",ef),(0,z.eV)("proposal",ef),(0,z.eV)("task",ef),(0,z.eV)("document",ef);let em=(0,n.useCallback)(e=>{T(t=>({...t,[e]:!t[e]}))},[]),eg=(0,n.useCallback)((e,t)=>{"idea"===t?ee(t=>{let r=new Set(t);if(r.has(e)){var a;r.delete(e);let t=(null!=(a=null==u?void 0:u.nodes)?a:[]).filter(t=>{var r;return"proposal"===t.type&&(null!=(r=t.sourceIdeaUuids)?r:[]).includes(e)}).map(e=>e.uuid);t.length>0&&er(e=>{let r=!1,a=new Set(e);for(let e of t)a.delete(e)&&(r=!0);return r?a:e})}else r.add(e);return r}):"proposal"===t&&er(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[u]),ex=Y.size>0||et.size>0,ey=(0,n.useCallback)(()=>{if(!u)return;let e=new Set,t=new Set;for(let r of u.nodes)"idea"===r.type?e.add(r.uuid):"proposal"===r.type&&t.add(r.uuid);ee(e),er(t)},[u]),ev=(0,n.useCallback)(()=>{ee(new Set),er(new Set)},[]),{forceNodes:eb,forceLinks:ej,isEmpty:ew}=(0,n.useMemo)(()=>{if(!u)return{forceNodes:[],forceLinks:[],isEmpty:!0};let{visibleNodeUuids:e,visibleEdgeIndices:t,childCountByHub:r}=function(e,t,r){var a,n,l,s,o,i;let{nodes:u,edges:d}=e,c=new Set,p=new Map,h=[];for(let e of u)"idea"===e.type?c.add(e.uuid):"proposal"===e.type?p.set(e.uuid,e):h.push(e);let f=new Map;for(let e of c)f.set(e,0);for(let e of p.keys())f.set(e,0);for(let e of p.values())for(let t of null!=(a=e.sourceIdeaUuids)?a:[])c.has(t)&&f.set(t,(null!=(n=f.get(t))?n:0)+1);for(let e of h){let t=null!=(l=e.proposalUuid)?l:null;null!==t&&p.has(t)&&f.set(t,(null!=(s=f.get(t))?s:0)+1)}let m=new Set(c),g=new Set;for(let e of p.values()){let r=(null!=(o=e.sourceIdeaUuids)?o:[]).filter(e=>c.has(e));(0===r.length||r.some(e=>t.has(e)))&&(g.add(e.uuid),m.add(e.uuid))}for(let e of h){let t=null!=(i=e.proposalUuid)?i:null;if(null===t||!p.has(t)){m.add(e.uuid);continue}g.has(t)&&r.has(t)&&m.add(e.uuid)}let x=[];for(let e=0;e<d.length;e++){let t=d[e];m.has(t.from)&&m.has(t.to)&&x.push(e)}return{visibleNodeUuids:m,visibleEdgeIndices:x,childCountByHub:f}}(u,Y,et),a=u.nodes.filter(t=>e.has(t.uuid)&&R[t.type]),n=new Set(a.map(e=>e.uuid)),l=t.map(e=>u.edges[e]).filter(e=>n.has(e.from)&&n.has(e.to)),s=new Set(u.nodes.filter(e=>"idea"===e.type).map(e=>e.uuid)),o=new Map;for(let e of u.nodes){var i;if("proposal"!==e.type)continue;let t=(null!=(i=e.sourceIdeaUuids)?i:[]).find(e=>s.has(e));o.set(e.uuid,t)}let d=new Set(o.keys());return{forceNodes:a.map(e=>{var t,a;let n="idea"===e.type||"proposal"===e.type?null!=(t=r.get(e.uuid))?t:0:void 0,l="idea"===e.type?Y.has(e.uuid):"proposal"===e.type?et.has(e.uuid):void 0;return{id:e.uuid,type:e.type,title:e.title,status:e.status,childCount:n,expanded:l,hasAffordance:(a=e.type,("idea"===a||"proposal"===a)&&(null!=n?n:0)>0),ownerId:(e=>{if("proposal"===e.type)return o.get(e.uuid);if("task"===e.type||"document"===e.type){var t;let r=null!=(t=e.proposalUuid)?t:void 0;return r&&d.has(r)?r:void 0}})(e)}}),forceLinks:l.map(e=>({source:e.from,target:e.to,kind:e.kind})),isEmpty:0===a.length}},[u,Y,et,R]),ek=(0,n.useMemo)(()=>{if(!u)return null;var e=u.nodes.filter(e=>R[e.type]);let t=ea.trim().toLowerCase();if(""===t)return null;let r=new Set;for(let a of e)a.title.toLowerCase().includes(t)&&r.add(a.uuid);return r},[u,ea,R]),eS=null!==ek,eN=(0,n.useMemo)(()=>{if(null===ek||0===ek.size)return[];let{outline:e}=(0,E.U)(eb,ej),t=[];for(let r of e)ek.has(r.id)&&t.push(r.id);return t},[ek,eb,ej]),eC=eN.length,eA=eC>0?(el%eC+eC)%eC:0,eM=eC>0?eN[eA]:null,e_=(0,n.useRef)(eN);e_.current=eN;let ez=(0,n.useRef)(el);ez.current=el,(0,n.useEffect)(()=>{if(!u||null===ek||0===ek.size)return;let{ideaUuids:e,proposalUuids:t}=function(e,t){let r=new Set,a=new Set,n=new Set,l=new Map,s=new Map;for(let t of e.nodes)s.set(t.uuid,t),"idea"===t.type?n.add(t.uuid):"proposal"===t.type&&l.set(t.uuid,t);let o=e=>{var t;return(null!=(t=e.sourceIdeaUuids)?t:[]).find(e=>n.has(e))};for(let e of t){var i;let t=s.get(e);if(void 0===t||"idea"===t.type)continue;if("proposal"===t.type){let e=o(t);void 0!==e&&r.add(e);continue}let n=null!=(i=t.proposalUuid)?i:null;if(null===n)continue;let u=l.get(n);if(void 0===u)continue;a.add(n);let d=o(u);void 0!==d&&r.add(d)}return{ideaUuids:r,proposalUuids:a}}(u,ek);e.size>0&&ee(t=>{let r=!1,a=new Set(t);for(let t of e)a.has(t)||(a.add(t),r=!0);return r?a:t}),t.size>0&&er(e=>{let r=!1,a=new Set(e);for(let e of t)a.has(e)||(a.add(e),r=!0);return r?a:e})},[u,ek]),(0,n.useEffect)(()=>{let e=ec.current;!eS&&e&&(es(0),ei(null)),ec.current=eS},[eS]),(0,n.useEffect)(()=>{es(0)},[ea]),(0,n.useEffect)(()=>{if(null===ek)return;let e=setTimeout(()=>{let e=e_.current;if(0===e.length)return void ei(null);let t=(ez.current%e.length+e.length)%e.length;ei(e[t])},200);return()=>clearTimeout(e)},[ea,ek]);let eE=(0,n.useCallback)(e=>{let t=e_.current,r=t.length;if(0===r)return;let a=((ez.current+e)%r+r)%r;es(a),ei(t[a])},[]),eI=(0,n.useCallback)(()=>{en("")},[]),eO=(0,n.useCallback)(e=>{(0,_.P)(e)||("Enter"===e.key?(e.preventDefault(),eE(e.shiftKey?-1:1)):"Escape"===e.key&&(e.preventDefault(),eI()))},[eI,eE]),eP=(0,n.useCallback)(e=>{X(null),K(e)},[]),eU=(0,n.useCallback)(e=>{K(null),Q(null),X(e)},[]);(0,n.useEffect)(()=>{if(!G)return void Q(null);let e=!1;return(0,F.Q)(G).then(t=>{e||(t.success?Q(t.data):I.q.error("Failed to load task for graph panel:",t.error))}).catch(t=>{e||I.q.error("Failed to load task for graph panel:",t)}),()=>{e=!0}},[G]);let[eF,eB]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(!eF)return;let e=new AbortController;return(async()=>{try{var t;let r=await fetch("/api/documents/".concat(eF),{signal:e.signal}),a=await r.json();if(e.signal.aborted)return;if(!r.ok||!a.success||!a.data)return void I.q.error("Failed to load document for graph panel:",a.error);eU({title:a.data.title,type:a.data.type,content:null!=(t=a.data.content)?t:""})}catch(t){if(e.signal.aborted)return;I.q.error("Failed to load document for graph panel:",t)}})(),()=>e.abort()},[eF,eU]);let eL=(0,n.useCallback)((e,t,r)=>{if(r&&("idea"===t||"proposal"===t))return void eg(e,t);switch(t){case"idea":return void H(e,"elaboration");case"proposal":{var a,n;let t=(null!=(n=null==u||null==(a=u.nodes.find(t=>t.uuid===e))?void 0:a.sourceIdeaUuids)?n:[])[0];if(!t)return void I.q.warn("[resource-graph] proposal node has no project-local source idea; cannot open panel",{proposalUuid:e});H(t,"proposal");return}case"task":return void eP(e);case"document":K(null),Q(null),X(null),eB(e);return}},[u,H,eP,eg]),eq=null!=(t=null!=$?$:G)?t:eF,eR=(0,n.useCallback)(()=>{X(null),eB(null)},[]),eD=(0,a.jsxs)(a.Fragment,{children:[$&&(0,a.jsx)(O.D,{ideaUuid:$,projectUuid:r,currentUserUuid:l,onClose:Z,onNavigate:H},$),G&&J&&(0,a.jsx)(P.v,{task:J,projectUuid:r,currentUserUuid:l,mode:"overlay",onClose:()=>{K(null),Q(null)}}),W&&(0,a.jsx)(U.K,{title:W.title,type:W.type,content:W.content,mode:"overlay",onClose:eR})]});return c?(0,a.jsxs)("div",{className:"p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsx)(j.Zp,{className:"border-border p-6 text-sm text-[#B71C1C] dark:text-[#F08078]",children:c}),eD]}):u?(0,a.jsxs)("div",{className:"flex h-full min-h-0 flex-col p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsxs)("div",{className:"relative flex-1 min-h-[600px] overflow-hidden rounded-[10px] border border-border bg-background",children:[ew&&(0,a.jsx)(C.AnimatedEmptyState,{children:(0,a.jsxs)(j.Zp,{className:"m-12 flex flex-col items-center justify-center border-border p-8 text-center",children:[(0,a.jsx)("h3",{className:"mb-2 text-base font-medium text-foreground",children:s("graph.emptyTitle")}),(0,a.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:s("graph.emptyDesc")})]})}),!ew&&(0,a.jsx)(B,{nodes:eb,links:ej,selectedId:eq,onNodeClick:eL,matchIds:ek,currentMatchId:eM,centerNodeId:eo}),(0,a.jsx)("div",{className:"absolute right-3 top-3 z-10",children:i&&!eu?(0,a.jsx)(b.$,{type:"button",variant:"outline",size:"icon",onClick:()=>ed(!0),"aria-label":s("graph.controls.open"),"data-testid":"graph-controls-toggle",className:"bg-card/95 shadow-sm backdrop-blur",children:(0,a.jsx)(h,{className:"h-4 w-4"})}):(0,a.jsxs)(j.Zp,{className:"w-[208px] border-border bg-card/95 p-2.5 shadow-sm backdrop-blur",children:[i&&(0,a.jsx)("div",{className:"mb-1.5 flex justify-end",children:(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>ed(!1),"aria-label":s("graph.controls.close"),"data-testid":"graph-controls-collapse",className:"text-muted-foreground",children:(0,a.jsx)(f.A,{className:"h-3.5 w-3.5"})})}),!ew&&(0,a.jsxs)("div",{className:"mb-2","data-testid":"graph-search",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(m.A,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[#9A9A9A]","aria-hidden":"true"}),(0,a.jsx)(k.p,{type:"text",value:ea,onChange:e=>en(e.target.value),onKeyDown:eO,placeholder:s("graph.search.placeholder"),"aria-label":s("graph.search.placeholder"),"data-testid":"graph-search-input",className:"h-8 pl-8 pr-8 text-xs"}),""!==ea&&(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:eI,"aria-label":s("graph.search.clear"),"data-testid":"graph-search-clear",className:"absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground",children:(0,a.jsx)(f.A,{className:"h-3.5 w-3.5"})})]}),(0,a.jsx)(N.Bc,{delayDuration:300,children:(0,a.jsxs)(N.m_,{children:[(0,a.jsx)(N.k$,{asChild:!0,children:(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-sm",onClick:ex?ev:ey,"aria-label":ex?s("graph.collapseAll"):s("graph.expandAll"),"data-testid":"graph-expand-toggle",className:"shrink-0 text-muted-foreground",children:ex?(0,a.jsx)(g,{className:"h-3.5 w-3.5"}):(0,a.jsx)(x,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(N.ZI,{side:"bottom",children:ex?s("graph.collapseAll"):s("graph.expandAll")})]})})]}),eS&&(0,a.jsxs)("div",{className:"mt-1.5 flex items-center justify-between gap-2","data-testid":"graph-search-nav",children:[eC>0?(0,a.jsx)("span",{className:"text-[11px] tabular-nums text-muted-foreground","data-testid":"graph-search-count",children:s("graph.search.count",{current:eA+1,total:eC})}):(0,a.jsx)("span",{className:"text-[11px] text-[#B07B00] dark:text-[#E0A050]","data-testid":"graph-search-no-matches",children:s("graph.search.noMatches")}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>eE(-1),disabled:0===eC,"aria-label":s("graph.search.prev"),"data-testid":"graph-search-prev",children:(0,a.jsx)(y.A,{className:"h-3.5 w-3.5"})}),(0,a.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>eE(1),disabled:0===eC,"aria-label":s("graph.search.next"),"data-testid":"graph-search-next",children:(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"})})]})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-x-2 gap-y-1.5",children:["idea","proposal","task","document"].map(e=>{let t=L[e],r="graph-filter-".concat(e);return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(w.S,{id:r,checked:R[e],onCheckedChange:()=>em(e)}),(0,a.jsx)("span",{className:"graph-swatch h-2 w-2 shrink-0 rounded-full",style:{"--swatch":t.color,"--swatch-dark":t.darkColor}}),(0,a.jsx)(S.J,{htmlFor:r,className:"cursor-pointer text-xs text-foreground",children:s("graph.filters.".concat(e))})]},e)})})]})})]}),eD]}):(0,a.jsxs)("div",{className:"p-4 md:p-8",children:[(0,a.jsx)(D,{t:s}),(0,a.jsx)(j.Zp,{className:"flex items-center justify-center border-border p-12 text-sm text-muted-foreground",children:s("graph.loading")}),eD]})}function D(e){let{t}=e;return(0,a.jsx)("div",{className:"mb-6 flex items-center justify-between",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:t("graph.title")}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t("graph.subtitle")})]})})}},17573:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let a=r(60200),n=r(81476),l=r(23818);function s(e){return{default:e&&"default"in e?e.default:e}}r(90727);let o={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(s)),i=t.loading;function u(e){let s=i?(0,a.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?n.Suspense:n.Fragment,d=t.ssr?(0,a.jsxs)(a.Fragment,{children:[null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(u,{...o?{fallback:s}:{},children:d})}return u.displayName="LoadableComponent",u}},23818:(e,t,r)=>{"use strict";function a(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return a}}),r(57798)},26978:(e,t,r)=>{"use strict";r.d(t,{AnimatedEmptyState:()=>l});var a=r(60200),n=r(25452);function l(e){let{children:t}=e;return(0,a.jsx)(n.P.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},transition:{duration:.2,ease:[0,0,.2,1]},children:t})}},37808:(e,t,r)=>{Promise.resolve().then(r.bind(r,16395))},40381:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(91456)._(r(17573));function n(e,t){var r;let n={};"function"==typeof e&&(n.loader=e);let l={...n,...t};return(0,a.default)({...l,modules:null==(r=l.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48393:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return o}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class a{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let n="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return n?new n:new a}function s(e){return n?n.bind(e):a.bind(e)}function o(){return n?n.snapshot():function(e,...t){return e(...t)}}},53804:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(73326).A)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},53823:(e,t,r)=>{"use strict";r.d(t,{U:()=>i});var a=r(15850);function n(e,t){return e.parent===t.parent?1:2}function l(e){var t=e.children;return t?t[0]:e.t}function s(e){var t=e.children;return t?t[t.length-1]:e.t}function o(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function i(e,t){let r=new Map;for(let t of e)r.set(t.id,t);let i=new Map,u=new Map;for(let e of t)"lineage"===e.kind?i.has(e.target)||i.set(e.target,e.source):"depends"!==e.kind||u.has(e.target)||u.set(e.target,e.source);let d=e=>{if("idea"===e.type){let t=i.get(e.id);return void 0!==t&&r.has(t)?t:void 0}if("task"===e.type){let t=u.get(e.id);if(void 0!==t&&r.has(t))return t}return void 0!==e.ownerId&&r.has(e.ownerId)?e.ownerId:void 0},c=new Map,p=new Map,h=[];for(let t of e){let e=d(t);if(void 0===e)h.push(t);else{p.set(t.id,e);let r=c.get(e);r?r.push(t):c.set(e,[t])}}let f=(e,t)=>{var r;t.add(e.id);let a=null!=(r=c.get(e.id))?r:[],n=[];for(let e of a)t.has(e.id)||n.push(f(e,t));return{id:e.id,children:n}},m=(function(){var e=n,t=1,r=1,a=null;function i(n){var l=function(e){for(var t,r,a,n,l,s=new o(e,0),i=[s];t=i.pop();)if(a=t._.children)for(t.children=Array(l=a.length),n=l-1;n>=0;--n)i.push(r=t.children[n]=new o(a[n],n)),r.parent=t;return(s.parent=new o(null,0)).children=[s],s}(n);if(l.eachAfter(u),l.parent.m=-l.z,l.eachBefore(d),a)n.eachBefore(c);else{var s=n,i=n,p=n;n.eachBefore(function(e){e.x<s.x&&(s=e),e.x>i.x&&(i=e),e.depth>p.depth&&(p=e)});var h=s===i?1:e(s,i)/2,f=h-s.x,m=t/(i.x+h+f),g=r/(p.depth||1);n.eachBefore(function(e){e.x=(e.x+f)*m,e.y=e.depth*g})}return n}function u(t){var r=t.children,a=t.parent.children,n=t.i?a[t.i-1]:null;if(r){!function(e){for(var t,r=0,a=0,n=e.children,l=n.length;--l>=0;)t=n[l],t.z+=r,t.m+=r,r+=t.s+(a+=t.c)}(t);var o=(r[0].z+r[r.length-1].z)/2;n?(t.z=n.z+e(t._,n._),t.m=t.z-o):t.z=o}else n&&(t.z=n.z+e(t._,n._));t.parent.A=function(t,r,a){if(r){for(var n,o,i,u=t,d=t,c=r,p=u.parent.children[0],h=u.m,f=d.m,m=c.m,g=p.m;c=s(c),u=l(u),c&&u;)p=l(p),(d=s(d)).a=t,(i=c.z+m-u.z-h+e(c._,u._))>0&&(!function(e,t,r){var a=r/(t.i-e.i);t.c-=a,t.s+=r,e.c+=a,t.z+=r,t.m+=r}((n=c,o=a,n.a.parent===t.parent?n.a:o),t,i),h+=i,f+=i),m+=c.m,h+=u.m,g+=p.m,f+=d.m;c&&!s(d)&&(d.t=c,d.m+=m-f),u&&!l(p)&&(p.t=u,p.m+=h-g,a=t)}return a}(t,n,t.parent.A||a[0])}function d(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function c(e){e.x*=t,e.y=e.depth*r}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(a=!1,t=+e[0],r=+e[1],i):a?null:[t,r]},i.nodeSize=function(e){return arguments.length?(a=!0,t=+e[0],r=+e[1],i):a?[t,r]:null},i})().nodeSize([72,280]),g=new Map,x=[],y=0;for(let e of h){let t=f(e,new Set),r=(0,a.Ay)(t);m(r);let n=1/0,l=-1/0;r.each(e=>{e.x<n&&(n=e.x),e.x>l&&(l=e.x)}),Number.isFinite(n)||(n=0,l=0);let s=y-n;r.eachBefore(e=>{let t=e.data.id;g.set(t,{id:t,x:e.y,y:e.x+s,depth:e.depth}),x.push({id:t,depth:e.depth})}),y=l+s+96}return{positions:g,outline:x,treeParentById:p}}o.prototype=Object.create(a.bP.prototype)},88749:(e,t,r)=>{"use strict";r.d(t,{a:()=>n});var a=r(81476);function n(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=window.matchMedia("(max-width: 767px)");t(e.matches);let r=e=>t(e.matches);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)},[]),e}},90727:(e,t,r)=>{"use strict";function a(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return a}}),r(60200),r(42917),r(14200),r(78293)}},e=>{e.O(0,[32271,87326,93151,41752,30996,57084,68381,71444,92037,41677,25554,6893,74414,34216,7659,76404,25452,33218,10201,38803,23593,10006,26441,73632,63472,65208,8575,5899,86791,80395,75556,16198,75844,15638,59480,88277,91202,73849,46608,77358],()=>e(e.s=37808)),_N_E=e.O()}]);
|