vibedoc 1.6.1 β 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +2 -0
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +39 -11
- package/.next/routes-manifest.json +12 -0
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page.js.nft.json +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/chat/page/app-paths-manifest.json +3 -0
- package/.next/server/app/(app)/chat/page/build-manifest.json +20 -0
- package/.next/server/app/(app)/chat/page/next-font-manifest.json +11 -0
- package/.next/server/app/(app)/chat/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/(app)/chat/page/server-reference-manifest.json +4 -0
- package/.next/server/app/(app)/chat/page.js +15 -0
- package/.next/server/app/(app)/chat/page.js.map +5 -0
- package/.next/server/app/(app)/chat/page.js.nft.json +1 -0
- package/.next/server/app/(app)/chat/page_client-reference-manifest.js +3 -0
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
- package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
- package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +22 -23
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/activity.segments/_full.segment.rsc +22 -23
- package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/activity/route.js.nft.json +1 -1
- package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/conversations/route/build-manifest.json +12 -0
- package/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/conversations/route.js +9 -0
- package/.next/server/app/api/conversations/route.js.map +5 -0
- package/.next/server/app/api/conversations/route.js.nft.json +1 -0
- package/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/decisions/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/route.js.nft.json +1 -1
- package/.next/server/app/api/explorer/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
- package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
- package/.next/server/app/api/summary/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +22 -23
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/board.segments/_full.segment.rsc +22 -23
- package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.html +1 -0
- package/.next/server/app/chat.meta +31 -0
- package/.next/server/app/chat.rsc +29 -0
- package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +31 -0
- package/.next/server/app/chat.segments/_full.segment.rsc +29 -0
- package/.next/server/app/chat.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +22 -27
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/docs.segments/_full.segment.rsc +22 -27
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +22 -23
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/explorer.segments/_full.segment.rsc +22 -23
- package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +22 -23
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/memory.segments/_full.segment.rsc +22 -23
- package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/roadmap.html +1 -1
- package/.next/server/app/roadmap.rsc +22 -26
- package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +9 -11
- package/.next/server/app/roadmap.segments/_full.segment.rsc +22 -26
- package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +22 -23
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/settings.segments/_full.segment.rsc +22 -23
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +22 -23
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +9 -10
- package/.next/server/app/setup.segments/_full.segment.rsc +22 -23
- package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/server/app-paths-manifest.json +2 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +3 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js.map +1 -0
- package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +4 -4
- package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
- package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js β 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js} +2 -2
- package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0mwkb-i._.js β 1u84_katex_dist_katex_mjs_1z0p1bs._.js} +1 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +1 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +3 -0
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js.map +1 -0
- package/.next/server/chunks/ssr/_059qmur._.js +3 -0
- package/.next/server/chunks/ssr/_059qmur._.js.map +1 -0
- package/.next/server/chunks/ssr/_081irea._.js +3 -0
- package/.next/server/chunks/ssr/_081irea._.js.map +1 -0
- package/.next/server/chunks/ssr/_0d8t8l4._.js +3 -0
- package/.next/server/chunks/ssr/_0d8t8l4._.js.map +1 -0
- package/.next/server/chunks/ssr/_0dyvcdg._.js +3 -0
- package/.next/server/chunks/ssr/_0dyvcdg._.js.map +1 -0
- package/.next/server/chunks/ssr/_1-ghqy4._.js +3 -0
- package/.next/server/chunks/ssr/_1-ghqy4._.js.map +1 -0
- package/.next/server/chunks/ssr/_17jy5db._.js +3 -0
- package/.next/server/chunks/ssr/_17jy5db._.js.map +1 -0
- package/.next/server/chunks/ssr/_1c95ems._.js +1 -1
- package/.next/server/chunks/ssr/_1c95ems._.js.map +1 -1
- package/.next/server/chunks/ssr/_1dllfz5._.js +4 -0
- package/.next/server/chunks/ssr/_1dllfz5._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js β node_modules__pnpm_0286-tg._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js β node_modules__pnpm_04khl_s._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js β node_modules__pnpm_07t_e8c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js β node_modules__pnpm_08sqeu2._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js β node_modules__pnpm_09_i2jk._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_09_i2jk._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js β node_modules__pnpm_0a9b2ei._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js β node_modules__pnpm_0ah02mu._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js β node_modules__pnpm_0cj8ryj._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js β node_modules__pnpm_0dwi7mu._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules__pnpm_0dwi7mu._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js β node_modules__pnpm_0f77_ng._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js β node_modules__pnpm_0fd3pr1._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js β node_modules__pnpm_0gifu-u._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js β node_modules__pnpm_0jpv2b6._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js β node_modules__pnpm_0og06fy._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js β node_modules__pnpm_0qc3gsk._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js β node_modules__pnpm_0ts89ne._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js β node_modules__pnpm_0ttvopp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js β node_modules__pnpm_0u3u82f._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js β node_modules__pnpm_0y35hs4._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js β node_modules__pnpm_104pzhc._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js β node_modules__pnpm_195j8p_._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +3 -0
- package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js β node_modules__pnpm_1l8k8w1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js β node_modules__pnpm_1w0f1m5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js β node_modules__pnpm_1woddr6._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js β node_modules__pnpm_1x0t5_z._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js β node_modules__pnpm_1xzf8g_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js β node_modules__pnpm_1yq90z7._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_1yq90z7._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +3 -0
- package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +5 -0
- package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -0
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +5 -0
- package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -0
- package/.next/server/chunks/ssr/{_1wf14_u._.js β src_lib_templates_index_ts_1s61uk7._.js} +2 -2
- package/.next/server/chunks/ssr/{_1wf14_u._.js.map β src_lib_templates_index_ts_1s61uk7._.js.map} +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +4 -0
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/prefetch-hints.json +19 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/050mq8l4e1ubn.js +1 -0
- package/.next/static/chunks/098le48845_fg.js +3 -0
- package/.next/static/chunks/0cw4-ebkoufdc.js +1 -0
- package/.next/static/chunks/0feo-go1w5nct.js +1 -0
- package/.next/static/chunks/14sefb904pl64.js +21 -0
- package/.next/static/chunks/1fer-wulyrjrs.js +3 -0
- package/.next/static/chunks/1o7b1x4umy8a6.js +1 -0
- package/.next/static/chunks/1q_io1j58aukw.js +1 -0
- package/.next/static/chunks/1t-cgh4477hfo.js +1 -0
- package/.next/static/chunks/1u-1po1qesc9f.js +1 -0
- package/.next/static/chunks/1u5kegkgm0xoz.js +1 -0
- package/.next/static/chunks/24ygzsgd-moqy.js +1 -0
- package/.next/static/chunks/26folxgplfa9t.js +68 -0
- package/.next/static/chunks/2ocixvjhv34_3.js +1 -0
- package/.next/static/chunks/3_lsdgxa-h7ma.css +10 -0
- package/.next/static/chunks/3rmv-sb9w9i3e.js +1 -0
- package/.next/static/chunks/3ttzomivj48jh.js +2 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +0 -1
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js +0 -3
- package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js.map +0 -1
- package/.next/server/chunks/ssr/_0qyglif._.js +0 -5
- package/.next/server/chunks/ssr/_0qyglif._.js.map +0 -1
- package/.next/server/chunks/ssr/_0skuoxv._.js +0 -6
- package/.next/server/chunks/ssr/_0skuoxv._.js.map +0 -1
- package/.next/server/chunks/ssr/_14i_6yb._.js +0 -3
- package/.next/server/chunks/ssr/_14i_6yb._.js.map +0 -1
- package/.next/server/chunks/ssr/_1cbhuz4._.js +0 -3
- package/.next/server/chunks/ssr/_1cbhuz4._.js.map +0 -1
- package/.next/server/chunks/ssr/_1ewk_mn._.js +0 -3
- package/.next/server/chunks/ssr/_1ewk_mn._.js.map +0 -1
- package/.next/server/chunks/ssr/_1y-ofyw._.js +0 -3
- package/.next/server/chunks/ssr/_1y-ofyw._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js +0 -3
- package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_008q3v8._.js +0 -3
- package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +0 -1
- package/.next/static/chunks/0-vk2d2nnzav2.js +0 -3
- package/.next/static/chunks/02sab26ica2x3.js +0 -1
- package/.next/static/chunks/0eggcu0ovk8sd.js +0 -68
- package/.next/static/chunks/0iva6rdtfqpbz.js +0 -1
- package/.next/static/chunks/0qm101bdsxdyh.css +0 -10
- package/.next/static/chunks/0wg9n5zb8mo2p.js +0 -1
- package/.next/static/chunks/0z_y7el6m76yk.js +0 -1
- package/.next/static/chunks/1-ekntoveuxzd.js +0 -4
- package/.next/static/chunks/10neasnz6hhq1.js +0 -1
- package/.next/static/chunks/22dw7r8x0h2sx.js +0 -1
- package/.next/static/chunks/26ee8jsbellqk.js +0 -21
- package/.next/static/chunks/3kkg030rcpz7l.js +0 -1
- package/.next/static/chunks/3pf_4ye6ju8gt.js +0 -1
- /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js.map β 11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map} +0 -0
- /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_0mwkb-i._.js.map β _next-internal_server_app_api_conversations_route_actions_1-pu7gs.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js.map β 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js.map β 1u84_katex_dist_katex_mjs_1z0p1bs._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js.map β _next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js.map β node_modules__pnpm_0286-tg._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js.map β node_modules__pnpm_04khl_s._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js.map β node_modules__pnpm_07t_e8c._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js.map β node_modules__pnpm_08sqeu2._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js.map β node_modules__pnpm_0a9b2ei._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js.map β node_modules__pnpm_0ah02mu._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js.map β node_modules__pnpm_0cj8ryj._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js.map β node_modules__pnpm_0f77_ng._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js.map β node_modules__pnpm_0fd3pr1._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js.map β node_modules__pnpm_0gifu-u._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js.map β node_modules__pnpm_0jpv2b6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js.map β node_modules__pnpm_0og06fy._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js.map β node_modules__pnpm_0qc3gsk._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js.map β node_modules__pnpm_0ts89ne._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js.map β node_modules__pnpm_0ttvopp._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js.map β node_modules__pnpm_0u3u82f._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js.map β node_modules__pnpm_0y35hs4._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js.map β node_modules__pnpm_104pzhc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js.map β node_modules__pnpm_195j8p_._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js.map β node_modules__pnpm_1l8k8w1._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js.map β node_modules__pnpm_1w0f1m5._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js.map β node_modules__pnpm_1woddr6._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js.map β node_modules__pnpm_1x0t5_z._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js.map β node_modules__pnpm_1xzf8g_._.js.map} +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL β uJ5RYxgFnE5svAvnuLDXN}/_buildManifest.js +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL β uJ5RYxgFnE5svAvnuLDXN}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{gJtrYenzL6_deB-6pdvIL β uJ5RYxgFnE5svAvnuLDXN}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[441852,a=>{"use strict";var b=a.i(256857);let c={name:"message-square",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]};c.node;let d=(0,b.default)(c);a.s(["MessageSquare",0,d],441852)},90751,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(544394),f=a.i(200382),g=a.i(368114),h=a.i(786304),i=a.i(749223);function j({status:a,tasks:d,onMoveTask:e,onOpenTask:f}){let[k,l]=(0,c.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,b.jsx)("span",{className:"text-sm",children:i.STATUS_ICONS[a]}),(0,b.jsx)("span",{className:"text-xs font-mono font-semibold text-muted uppercase tracking-wider",children:a}),(0,b.jsx)(h.Badge,{variant:"secondary",className:"ml-auto font-mono text-xs h-5 px-1.5",children:d.length})]}),(0,b.jsxs)("div",{className:(0,g.cn)("flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors",k&&"ring-1 ring-accent/50 bg-accent/5"),onDragOver:a=>{a.preventDefault(),l(!0)},onDragLeave:a=>{a.currentTarget.contains(a.relatedTarget)||l(!1)},onDrop:b=>{b.preventDefault(),l(!1);let c=b.dataTransfer.getData("taskId");c&&e(c,a)},children:[(d??[]).map(a=>(0,b.jsx)(i.TaskCard,{task:a,onMove:e,onOpen:()=>f(a)},a.id)),0===d.length&&(0,b.jsx)("div",{className:"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted",children:"empty"})]})]})}function k({board:a,summary:c,onMoveTask:d,onOpenTask:e,onNewTask:g}){return(0,b.jsxs)("div",{className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,b.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Task Board"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("span",{className:"text-xs font-mono text-muted",children:[c?.tasks.total||0," tasks"]}),(0,b.jsxs)("button",{onClick:g,className:"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors",children:[(0,b.jsx)(f.Plus,{className:"w-3.5 h-3.5"}),"New Task"]})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:["in-progress","todo","blocked","done"].map(c=>(0,b.jsx)(j,{status:c,tasks:a[c],onMoveTask:d,onOpenTask:e},c))})]})}var l=a.i(536236),m=a.i(923053),n=a.i(54165),o=a.i(108280);let p=[{value:"XS (< 1 hr)",label:"XS β under 1 hr"},{value:"S (1-2 hrs)",label:"S β 1β2 hrs"},{value:"M (3-4 hrs)",label:"M β 3β4 hrs"},{value:"L (5-8 hrs)",label:"L β 5β8 hrs"},{value:"XL (> 1 day)",label:"XL β over a day"}];function q({open:a,onOpenChange:d,rootParam:e,onTaskCreated:h}){let[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(!1);async function B(a){if(a.preventDefault(),!i.trim())return void y("Title is required");A(!0),y("");try{let a=await fetch(`/api/tasks/create${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:i.trim(),phase:k.trim()||void 0,size:r||void 0,description:t.trim()||void 0,dependsOn:v.trim()||void 0})});if(!a.ok){let b=await a.json();y(b.error??"Failed to create task"),A(!1);return}A(!1),h(),d(!1)}catch{y("Network error β please try again"),A(!1)}}return(0,c.useEffect)(()=>{a&&(j(""),l(""),s(""),u(""),w(""),y(""),A(!1))},[a]),(0,b.jsx)(m.Root,{open:a,onOpenChange:d,children:(0,b.jsxs)(m.Portal,{children:[(0,b.jsx)(m.Overlay,{className:"fixed inset-0 z-50 bg-black/60"}),(0,b.jsxs)(m.Content,{className:"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border",children:[(0,b.jsx)(m.Title,{className:"font-semibold text-txt",children:"New Task"}),(0,b.jsx)(m.Close,{className:"text-muted hover:text-txt transition-colors",children:(0,b.jsx)(n.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("form",{onSubmit:B,className:"p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-muted uppercase tracking-wide",children:["Title ",(0,b.jsx)("span",{className:"text-danger",children:"*"})]}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:i,onChange:a=>j(a.target.value),placeholder:"e.g. Add drag-and-drop to kanban",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-muted uppercase tracking-wide",children:"Phase"}),(0,b.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),placeholder:"e.g. 1 β Core",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-muted uppercase tracking-wide",children:"Size"}),(0,b.jsxs)("select",{value:r,onChange:a=>s(a.target.value),className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-hidden focus:border-accent transition-colors",children:[(0,b.jsx)("option",{value:"",children:"β"}),p.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))]})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-muted uppercase tracking-wide",children:"Depends on"}),(0,b.jsx)("input",{type:"text",value:v,onChange:a=>w(a.target.value),placeholder:"e.g. T001, T003",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-muted uppercase tracking-wide",children:"Description"}),(0,b.jsx)("textarea",{value:t,onChange:a=>u(a.target.value),placeholder:"What needs to be built?",rows:3,className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors resize-none"})]}),x&&(0,b.jsx)("p",{className:"text-sm text-danger",children:x}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,b.jsx)(m.Close,{type:"button",className:"px-4 py-2 text-sm text-muted hover:text-txt transition-colors",children:"Cancel"}),(0,b.jsxs)("button",{type:"submit",disabled:z||!i.trim(),className:(0,g.cn)("flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors","bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed"),children:[z?(0,b.jsx)(o.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsx)(f.Plus,{className:"w-4 h-4"}),z?"Creatingβ¦":"Create Task"]})]})]})]})]})})}function r(){let{board:a,summary:f,moveTask:g,refresh:h,rootParam:i}=(0,e.useApp)(),j=(0,d.useRouter)(),[m,n]=(0,c.useState)(null),o=(0,d.useSearchParams)().get("task"),[p,r]=(0,c.useState)(null);if(a&&o!==p){r(o);let b=o?Object.values(a).flat().find(a=>a.id===o):void 0;b&&n(b)}let[s,t]=(0,c.useState)(!1);return a?(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(k,{board:a,summary:f,onMoveTask:g,onOpenTask:n,onNewTask:()=>t(!0)}),(0,b.jsx)(l.TaskDetailPanel,{task:m,onClose:()=>{n(null),o&&j.replace("/board",{scroll:!1})},onMove:g}),(0,b.jsx)(q,{open:s,onOpenChange:t,rootParam:i,onTaskCreated:h})]}):null}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(r,{})})}],90751)},749223,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(368114),e=a.i(786304),f=a.i(699570),g=a.i(815122);let h={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},i={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},j={todo:"π","in-progress":"π¨",blocked:"π«",done:"β
",cancelled:"β"},k={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};a.s(["STATUS_ICONS",0,j,"TaskCard",0,function({task:a,onMove:l,onOpen:m}){let[n,o]=(0,c.useState)(!1),p=k[a.status]||[];return(0,b.jsxs)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.setData("taskId",a.id),b.dataTransfer.effectAllowed="move",o(!0)},onDragEnd:()=>o(!1),style:{viewTransitionName:`task-${a.file.replace(/[^a-zA-Z0-9_-]/g,"_")}`},className:(0,d.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2",h[a.status]||"border-border",n&&"opacity-50 cursor-grabbing"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-mono text-muted",children:[a.id,(0,b.jsx)(g.AgentDot,{attach:{kind:"task",id:a.id}})]}),(0,b.jsx)(e.Badge,{variant:"outline",className:(0,d.cn)("text-[10px] h-4 px-1.5 font-normal",i[a.status]),children:"in-progress"===a.status?"active":a.status})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:a.title}),a.phase&&(0,b.jsx)("p",{className:"text-xs text-muted mb-2",children:a.phase}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)(f.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:m,children:"open"}),p.map(c=>(0,b.jsxs)(f.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>l(a.id,c),children:[j[c]," ","in-progress"===c?"start":c]},c))]})]})}])},536236,578520,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(368114),e=a.i(757061),f=a.i(149350),g=a.i(749223),h=a.i(913975),i=a.i(544394);let j={task_updated:"π¨",decision_logged:"π",memory_updated:"π§ ",doc_read:"π",session_start:"π€",roadmap_updated:"πΊοΈ"};function k(a){let b=(Date.now()-new Date(a).getTime())/1e3;return b<60?"just now":b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}function l({taskId:a,onNavigate:d}){let{rootParam:e}=(0,i.useApp)(),f=(0,h.useRouter)(),[g,j]=(0,c.useState)(null);return(0,c.useEffect)(()=>{let b=e?`${e}&`:"?";fetch(`/api/sessions${b}taskId=${encodeURIComponent(a)}`).then(a=>a.json()).then(a=>j(Array.isArray(a)?a:[])).catch(()=>j([]))},[e,a]),(0,b.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,b.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===g?null:0===g.length?(0,b.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,b.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:g.map(a=>(0,b.jsxs)("button",{onClick:()=>{d(),f.push(`/activity?session=${encodeURIComponent(a.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:[(0,b.jsx)("span",{children:"ai"===a.actor?"π€":"π€"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-muted",children:k(a.start)}),(0,b.jsx)("span",{className:"truncate text-txt",children:a.headline})]},a.id))})]})}a.s(["ActivityEventRow",0,function({event:a}){return(0,b.jsxs)("div",{className:"flex gap-4 pb-4 animate-fade-in",children:[(0,b.jsx)("div",{className:"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10",children:j[a.type]||"β’"}),(0,b.jsxs)("div",{className:"flex-1 pt-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-txt",children:a.title}),"ai"===a.actor&&(0,b.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono",children:"AI"})]}),a.detail&&(0,b.jsx)("p",{className:"text-xs text-muted truncate",children:a.detail}),(0,b.jsx)("p",{className:"text-xs text-muted/60 mt-0.5 font-mono",children:k(a.timestamp)})]})]})},"timeAgo",0,k],578520);var m=a.i(441852),n=a.i(815122),o=a.i(685698),p=a.i(107742);let q={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},r={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},s={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};a.s(["TaskDetailPanel",0,function({task:a,onClose:h,onMove:i}){let[j,k]=(0,c.useState)(a);a&&a!==j&&k(a);let t=j&&q[j.status]||[],{chats:u,showAbout:v}=(0,o.useChats)(),w=j?(0,p.chatFor)(u,{kind:"task",id:j.id}):void 0;return(0,b.jsx)(e.Sheet,{open:!!a,onOpenChange:a=>{a||h()},children:(0,b.jsx)(e.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:j&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-muted",children:j.id}),(0,b.jsxs)("span",{className:(0,d.cn)("text-xs px-1.5 py-0.5 rounded-sm border font-mono",s[j.status]),children:[g.STATUS_ICONS[j.status]," ",j.status]}),(0,b.jsx)(n.AgentMark,{attach:{kind:"task",id:j.id}})]}),(0,b.jsx)(e.SheetTitle,{className:"font-medium text-txt text-sm leading-snug",children:j.title})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:[t.map(a=>(0,b.jsxs)("button",{onClick:()=>{i(j.id,a),h()},className:"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[g.STATUS_ICONS[a]," ",r[a]||a]},a)),(0,b.jsxs)("button",{onClick:()=>{h(),v({kind:"task",id:j.id})},className:"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-white transition-[filter] hover:brightness-110",children:[(0,b.jsx)(m.MessageSquare,{className:"size-3.5"})," ",w?"Open chat":"Chat about task"]})]}),(0,b.jsx)(l,{taskId:j.id,onNavigate:h},j.id),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:j.raw?(0,b.jsx)(f.MarkdownRenderer,{content:j.raw}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})})})}],536236)},815122,a=>{"use strict";var b=a.i(662145),c=a.i(795667),d=a.i(108280),e=a.i(368114),f=a.i(685698);let g={running:"Agent working","needs-answer":"Agent needs you",review:"Plan to review"};a.s(["AgentDot",0,function({attach:a}){let c=(0,f.useItemAgent)(a);if(!c)return null;let h=g[c.status];return(0,b.jsx)("span",{title:h,"aria-label":h,role:"img",className:"inline-flex shrink-0",children:"running"===c.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin text-accent"}):(0,b.jsx)("span",{className:(0,e.cn)("size-1.5 rounded-full animate-pulse-dot","needs-answer"===c.status?"bg-amber":"bg-accent")})})},"AgentMark",0,function({attach:a,className:h}){let i=(0,f.useItemAgent)(a),{show:j}=(0,f.useChats)();if(!i)return null;let k=g[i.status];return(0,b.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),j(i.chatId)},title:`${k} \xb7 open chat`,"aria-label":`${k}, open chat`,className:(0,e.cn)("nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)","running"===i.status&&"border-accent/50 text-accent hover:bg-accent/10","needs-answer"===i.status&&"border-amber/50 text-amber hover:bg-amber/10","review"===i.status&&"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20",h),children:["running"===i.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(c.Bot,{className:"size-3"}),k]})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0dyvcdg._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/message-square.ts","../../../../src/app/%28app%29/board/page.tsx","../../../../src/components/board/BoardTab.tsx","../../../../src/components/board/BoardColumn.tsx","../../../../src/components/board/NewTaskModal.tsx","../../../../src/components/board/TaskCard.tsx","../../../../src/components/board/TaskDetailPanel.tsx","../../../../src/components/board/TaskSessions.tsx","../../../../src/components/activity/ActivityEventRow.tsx","../../../../src/components/chat/AgentMark.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'message-square',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n key: '18887p',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon(__iconData);\n\nexport default MessageSquare;\n","\"use client\"\n\nimport { Suspense, useState } from \"react\"\nimport { useRouter, useSearchParams } from \"next/navigation\"\nimport { useApp } from \"@/context/AppContext\"\nimport { BoardTab } from \"@/components/board/BoardTab\"\nimport { TaskDetailPanel } from \"@/components/board/TaskDetailPanel\"\nimport { NewTaskModal } from \"@/components/board/NewTaskModal\"\nimport type { Task } from \"@/types\"\n\nexport default function BoardPage() {\n return (\n <Suspense>\n <BoardPageInner />\n </Suspense>\n )\n}\n\nfunction BoardPageInner() {\n const { board, summary, moveTask, refresh, rootParam } = useApp()\n const router = useRouter()\n const [selectedTask, setSelectedTask] = useState<Task | null>(null)\n // ?task=T055 (links from a chat) opens that task; adjusted during render so a new link re-opens it\n const taskParam = useSearchParams().get(\"task\")\n const [seenTaskParam, setSeenTaskParam] = useState<string | null>(null)\n if (board && taskParam !== seenTaskParam) {\n setSeenTaskParam(taskParam)\n const found = taskParam ? Object.values(board).flat().find((t) => t.id === taskParam) : undefined\n if (found) setSelectedTask(found)\n }\n const [newTaskOpen, setNewTaskOpen] = useState(false)\n\n if (!board) return null\n\n return (\n <div className=\"relative flex-1\">\n <BoardTab\n board={board}\n summary={summary}\n onMoveTask={moveTask}\n onOpenTask={setSelectedTask}\n onNewTask={() => setNewTaskOpen(true)}\n />\n <TaskDetailPanel\n task={selectedTask}\n onClose={() => { setSelectedTask(null); if (taskParam) router.replace(\"/board\", { scroll: false }) }}\n onMove={moveTask}\n />\n <NewTaskModal\n open={newTaskOpen}\n onOpenChange={setNewTaskOpen}\n rootParam={rootParam}\n onTaskCreated={refresh}\n />\n </div>\n )\n}\n","\"use client\"\n\nimport { Plus } from \"lucide-react\"\nimport type { TaskBoard, Task, Summary } from \"@/types\"\nimport { BoardColumn } from \"./BoardColumn\"\n\ninterface BoardTabProps {\n board: TaskBoard\n summary: Summary | null\n onMoveTask: (id: string, status: string) => void\n onOpenTask: (task: Task) => void\n onNewTask: () => void\n}\n\nexport function BoardTab({ board, summary, onMoveTask, onOpenTask, onNewTask }: BoardTabProps) {\n return (\n <div className=\"p-6\">\n <div className=\"flex items-center justify-between mb-6\">\n <h1 className=\"font-display text-xl font-semibold tracking-tight\">Task Board</h1>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs font-mono text-muted\">{summary?.tasks.total || 0} tasks</span>\n <button\n onClick={onNewTask}\n className=\"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\n >\n <Plus className=\"w-3.5 h-3.5\" />\n New Task\n </button>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\">\n {([\"in-progress\", \"todo\", \"blocked\", \"done\"] as const).map((col) => (\n <BoardColumn\n key={col}\n status={col}\n tasks={board[col]}\n onMoveTask={onMoveTask}\n onOpenTask={onOpenTask}\n />\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport type { Task } from \"@/types\"\r\nimport { TaskCard, STATUS_ICONS } from \"./TaskCard\"\r\n\r\ninterface BoardColumnProps {\r\n status: \"in-progress\" | \"todo\" | \"blocked\" | \"done\"\r\n tasks: Task[]\r\n onMoveTask: (id: string, status: string) => void\r\n onOpenTask: (task: Task) => void\r\n}\r\n\r\nexport function BoardColumn({ status, tasks, onMoveTask, onOpenTask }: BoardColumnProps) {\r\n const [isDragOver, setIsDragOver] = useState(false)\r\n\r\n return (\r\n <div className=\"flex flex-col gap-2\">\r\n {/* Column header */}\r\n <div className=\"flex items-center gap-2 mb-1\">\r\n <span className=\"text-sm\">{STATUS_ICONS[status]}</span>\r\n <span className=\"text-xs font-mono font-semibold text-muted uppercase tracking-wider\">\r\n {status}\r\n </span>\r\n <Badge variant=\"secondary\" className=\"ml-auto font-mono text-xs h-5 px-1.5\">{tasks.length}</Badge>\r\n </div>\r\n\r\n {/* Task cards */}\r\n <div\r\n className={cn(\r\n \"flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors\",\r\n isDragOver && \"ring-1 ring-accent/50 bg-accent/5\",\r\n )}\r\n onDragOver={(e) => { e.preventDefault(); setIsDragOver(true) }}\r\n onDragLeave={(e) => {\r\n if (!e.currentTarget.contains(e.relatedTarget as Node)) setIsDragOver(false)\r\n }}\r\n onDrop={(e) => {\r\n e.preventDefault()\r\n setIsDragOver(false)\r\n const taskId = e.dataTransfer.getData(\"taskId\")\r\n if (taskId) onMoveTask(taskId, status)\r\n }}\r\n >\r\n {(tasks ?? []).map((task) => (\r\n <TaskCard\r\n key={task.id}\r\n task={task}\r\n onMove={onMoveTask}\r\n onOpen={() => onOpenTask(task)}\r\n />\r\n ))}\r\n {tasks.length === 0 && (\r\n <div className=\"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted\">\r\n empty\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport * as Dialog from \"@radix-ui/react-dialog\"\nimport { X, Plus, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface NewTaskModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n rootParam: string\n onTaskCreated: () => void\n}\n\nconst SIZE_OPTIONS = [\n { value: \"XS (< 1 hr)\", label: \"XS β under 1 hr\" },\n { value: \"S (1-2 hrs)\", label: \"S β 1β2 hrs\" },\n { value: \"M (3-4 hrs)\", label: \"M β 3β4 hrs\" },\n { value: \"L (5-8 hrs)\", label: \"L β 5β8 hrs\" },\n { value: \"XL (> 1 day)\", label: \"XL β over a day\" },\n]\n\nexport function NewTaskModal({ open, onOpenChange, rootParam, onTaskCreated }: NewTaskModalProps) {\n const [title, setTitle] = useState(\"\")\n const [phase, setPhase] = useState(\"\")\n const [size, setSize] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [dependsOn, setDependsOn] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [creating, setCreating] = useState(false)\n\n useEffect(() => {\n if (open) {\n setTitle(\"\")\n setPhase(\"\")\n setSize(\"\")\n setDescription(\"\")\n setDependsOn(\"\")\n setError(\"\")\n setCreating(false)\n }\n }, [open])\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault()\n if (!title.trim()) { setError(\"Title is required\"); return }\n\n setCreating(true)\n setError(\"\")\n\n try {\n const res = await fetch(`/api/tasks/create${rootParam}`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n title: title.trim(),\n phase: phase.trim() || undefined,\n size: size || undefined,\n description: description.trim() || undefined,\n dependsOn: dependsOn.trim() || undefined,\n }),\n })\n\n if (!res.ok) {\n const data = await res.json()\n setError(data.error ?? \"Failed to create task\")\n setCreating(false)\n return\n }\n\n setCreating(false)\n onTaskCreated()\n onOpenChange(false)\n } catch {\n setError(\"Network error β please try again\")\n setCreating(false)\n }\n }\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/60\" />\n <Dialog.Content className=\"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl\">\n <div className=\"flex items-center justify-between px-5 py-4 border-b border-border\">\n <Dialog.Title className=\"font-semibold text-txt\">New Task</Dialog.Title>\n <Dialog.Close className=\"text-muted hover:text-txt transition-colors\">\n <X className=\"w-4 h-4\" />\n </Dialog.Close>\n </div>\n\n <form onSubmit={handleSubmit} className=\"p-5 space-y-4\">\n <div className=\"space-y-1.5\">\n <label className=\"block text-xs font-medium text-muted uppercase tracking-wide\">\n Title <span className=\"text-danger\">*</span>\n </label>\n <input\n autoFocus\n type=\"text\"\n value={title}\n onChange={e => setTitle(e.target.value)}\n placeholder=\"e.g. Add drag-and-drop to kanban\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-1.5\">\n <label className=\"block text-xs font-medium text-muted uppercase tracking-wide\">Phase</label>\n <input\n type=\"text\"\n value={phase}\n onChange={e => setPhase(e.target.value)}\n placeholder=\"e.g. 1 β Core\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors\"\n />\n </div>\n <div className=\"space-y-1.5\">\n <label className=\"block text-xs font-medium text-muted uppercase tracking-wide\">Size</label>\n <select\n value={size}\n onChange={e => setSize(e.target.value)}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-hidden focus:border-accent transition-colors\"\n >\n <option value=\"\">β</option>\n {SIZE_OPTIONS.map(o => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"block text-xs font-medium text-muted uppercase tracking-wide\">Depends on</label>\n <input\n type=\"text\"\n value={dependsOn}\n onChange={e => setDependsOn(e.target.value)}\n placeholder=\"e.g. T001, T003\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"block text-xs font-medium text-muted uppercase tracking-wide\">Description</label>\n <textarea\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"What needs to be built?\"\n rows={3}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent transition-colors resize-none\"\n />\n </div>\n\n {error && (\n <p className=\"text-sm text-danger\">{error}</p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <Dialog.Close\n type=\"button\"\n className=\"px-4 py-2 text-sm text-muted hover:text-txt transition-colors\"\n >\n Cancel\n </Dialog.Close>\n <button\n type=\"submit\"\n disabled={creating || !title.trim()}\n className={cn(\n \"flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\n \"bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n )}\n >\n {creating ? <Loader2 className=\"w-4 h-4 animate-spin\" /> : <Plus className=\"w-4 h-4\" />}\n {creating ? \"Creatingβ¦\" : \"Create Task\"}\n </button>\n </div>\n </form>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n )\n}\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport type { Task } from \"@/types\"\nimport { AgentDot } from \"@/components/chat/AgentMark\"\n\nconst STATUS_COLORS: Record<string, string> = {\n todo: \"text-muted border-border2\",\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\n blocked: \"text-danger border-danger/30 bg-danger/5\",\n done: \"text-teal border-teal/30 bg-teal/5\",\n cancelled: \"text-muted border-border line-through\",\n}\n\nexport const STATUS_BADGE_COLORS: Record<string, string> = {\n todo: \"border-border2 text-muted\",\n \"in-progress\": \"border-amber/40 text-amber\",\n blocked: \"border-danger/40 text-danger\",\n done: \"border-teal/40 text-teal\",\n cancelled: \"border-border text-muted\",\n}\n\nexport const STATUS_ICONS: Record<string, string> = {\n todo: \"π\",\n \"in-progress\": \"π¨\",\n blocked: \"π«\",\n done: \"β
\",\n cancelled: \"β\",\n}\n\nconst NEXT_STATUS: Record<string, string[]> = {\n todo: [\"in-progress\"],\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\n blocked: [\"in-progress\", \"cancelled\"],\n done: [\"todo\"],\n cancelled: [\"todo\"],\n}\n\ninterface TaskCardProps {\n task: Task\n onMove: (id: string, status: string) => void\n onOpen: () => void\n}\n\nexport function TaskCard({ task, onMove, onOpen }: TaskCardProps) {\n const [isDragging, setIsDragging] = useState(false)\n const nextStatuses = NEXT_STATUS[task.status] || []\n\n return (\n <div\n draggable\n onDragStart={(e) => {\n e.dataTransfer.setData(\"taskId\", task.id)\n e.dataTransfer.effectAllowed = \"move\"\n setIsDragging(true)\n }}\n onDragEnd={() => setIsDragging(false)}\n style={{ viewTransitionName: `task-${task.file.replace(/[^a-zA-Z0-9_-]/g, \"_\")}` }}\n className={cn(\n \"group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2\",\n STATUS_COLORS[task.status] || \"border-border\",\n isDragging && \"opacity-50 cursor-grabbing\",\n )}\n >\n {/* ID + status badge */}\n <div className=\"flex items-center justify-between mb-1.5\">\n <span className=\"flex items-center gap-1.5 text-xs font-mono text-muted\">{task.id}<AgentDot attach={{ kind: \"task\", id: task.id }} /></span>\n <Badge\n variant=\"outline\"\n className={cn(\"text-[10px] h-4 px-1.5 font-normal\", STATUS_BADGE_COLORS[task.status])}\n >\n {task.status === \"in-progress\" ? \"active\" : task.status}\n </Badge>\n </div>\n\n {/* Title */}\n <p className=\"font-medium text-txt text-sm leading-snug mb-2\">{task.title}</p>\n\n {/* Phase */}\n {task.phase && <p className=\"text-xs text-muted mb-2\">{task.phase}</p>}\n\n {/* Actions */}\n <div className=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={onOpen}\n >\n open\n </Button>\n {nextStatuses.map((s) => (\n <Button\n key={s}\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => onMove(task.id, s)}\n >\n {STATUS_ICONS[s]} {s === \"in-progress\" ? \"start\" : s}\n </Button>\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Sheet, SheetContent, SheetTitle } from \"@/components/ui/sheet\"\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\nimport type { Task } from \"@/types\"\nimport { STATUS_ICONS } from \"./TaskCard\"\nimport { TaskSessions } from \"./TaskSessions\"\nimport { MessageSquare } from \"lucide-react\"\nimport { AgentMark } from \"@/components/chat/AgentMark\"\nimport { useChats } from \"@/context/ChatContext\"\nimport { chatFor } from \"@/lib/chats\"\n\nconst NEXT_STATUS: Record<string, string[]> = {\n todo: [\"in-progress\"],\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\n blocked: [\"in-progress\", \"cancelled\"],\n done: [\"todo\"],\n cancelled: [\"todo\"],\n}\n\nconst STATUS_LABELS: Record<string, string> = {\n \"in-progress\": \"start\",\n done: \"done\",\n blocked: \"blocked\",\n todo: \"backlog\",\n cancelled: \"cancel\",\n}\n\nconst STATUS_COLORS: Record<string, string> = {\n todo: \"text-muted border-border2\",\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\n blocked: \"text-danger border-danger/30 bg-danger/5\",\n done: \"text-teal border-teal/30 bg-teal/5\",\n cancelled: \"text-muted border-border\",\n}\n\ninterface TaskDetailPanelProps {\n task: Task | null\n onClose: () => void\n onMove: (id: string, status: string) => void\n}\n\nexport function TaskDetailPanel({ task: openTask, onClose, onMove }: TaskDetailPanelProps) {\n // Keep the last task rendered while the sheet slides out\n const [task, setTask] = useState(openTask)\n if (openTask && openTask !== task) setTask(openTask)\n\n const nextStatuses = task ? NEXT_STATUS[task.status] || [] : []\n const { chats, showAbout } = useChats()\n const chat = task ? chatFor(chats, { kind: \"task\", id: task.id }) : undefined\n\n return (\n <Sheet open={!!openTask} onOpenChange={(open) => { if (!open) onClose() }}>\n <SheetContent side=\"right\" aria-describedby={undefined} className=\"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col\">\n {task && (\n <>\n {/* Header */}\n <div className=\"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-mono text-xs text-muted\">{task.id}</span>\n <span className={cn(\"text-xs px-1.5 py-0.5 rounded-sm border font-mono\", STATUS_COLORS[task.status])}>\n {STATUS_ICONS[task.status]} {task.status}\n </span>\n <AgentMark attach={{ kind: \"task\", id: task.id }} />\n </div>\n <SheetTitle className=\"font-medium text-txt text-sm leading-snug\">{task.title}</SheetTitle>\n </div>\n\n {/* Quick actions */}\n <div className=\"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0\">\n {nextStatuses.map((s) => (\n <button\n key={s}\n onClick={() => { onMove(task.id, s); onClose() }}\n className=\"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors\"\n >\n {STATUS_ICONS[s]} {STATUS_LABELS[s] || s}\n </button>\n ))}\n <button\n onClick={() => { onClose(); showAbout({ kind: \"task\", id: task.id }) }}\n className=\"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-white transition-[filter] hover:brightness-110\"\n >\n <MessageSquare className=\"size-3.5\" /> {chat ? \"Open chat\" : \"Chat about task\"}\n </button>\n </div>\n\n <TaskSessions key={task.id} taskId={task.id} onNavigate={onClose} />\n\n {/* Content */}\n <div className=\"flex-1 overflow-y-auto px-5 py-4\">\n {task.raw ? (\n <MarkdownRenderer content={task.raw} />\n ) : (\n <p className=\"text-sm text-muted\">No content available.</p>\n )}\n </div>\n </>\n )}\n </SheetContent>\n </Sheet>\n )\n}\n","\"use client\"\n\nimport { useEffect, useState } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useApp } from \"@/context/AppContext\"\nimport { timeAgo } from \"@/components/activity/ActivityEventRow\"\nimport type { Session } from \"@/types\"\n\n// Sessions that moved this task; mount with key={taskId} so state resets per task.\nexport function TaskSessions({ taskId, onNavigate }: { taskId: string; onNavigate: () => void }) {\n const { rootParam } = useApp()\n const router = useRouter()\n const [sessions, setSessions] = useState<Session[] | null>(null)\n\n useEffect(() => {\n const qs = rootParam ? `${rootParam}&` : \"?\"\n fetch(`/api/sessions${qs}taskId=${encodeURIComponent(taskId)}`)\n .then(r => r.json())\n .then(data => setSessions(Array.isArray(data) ? data : []))\n .catch(() => setSessions([]))\n }, [rootParam, taskId])\n\n return (\n <div className=\"px-5 py-3 border-b border-border shrink-0\">\n <p className=\"mb-2 text-xs font-mono uppercase tracking-wide text-muted\">Sessions</p>\n {sessions === null ? null : sessions.length === 0 ? (\n <p className=\"text-xs text-muted\">No recorded sessions</p>\n ) : (\n <div className=\"flex max-h-40 flex-col gap-1 overflow-y-auto\">\n {sessions.map(s => (\n <button\n key={s.id}\n onClick={() => { onNavigate(); router.push(`/activity?session=${encodeURIComponent(s.id)}`) }}\n className=\"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2\"\n >\n <span>{s.actor === \"ai\" ? \"π€\" : \"π€\"}</span>\n <span className=\"shrink-0 font-mono text-muted\">{timeAgo(s.start)}</span>\n <span className=\"truncate text-txt\">{s.headline}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type { ActivityEvent } from \"@/types\"\r\n\r\nconst ACTIVITY_ICONS: Record<string, string> = {\r\n task_updated: \"π¨\",\r\n decision_logged: \"π\",\r\n memory_updated: \"π§ \",\r\n doc_read: \"π\",\r\n session_start: \"π€\",\n roadmap_updated: \"πΊοΈ\",\r\n}\r\n\r\nexport function timeAgo(ts: string): string {\r\n const d = (Date.now() - new Date(ts).getTime()) / 1000\r\n if (d < 60) return \"just now\"\r\n if (d < 3600) return `${Math.floor(d / 60)}m ago`\r\n if (d < 86400) return `${Math.floor(d / 3600)}h ago`\r\n return `${Math.floor(d / 86400)}d ago`\r\n}\r\n\r\ninterface ActivityEventRowProps {\r\n event: ActivityEvent\r\n}\r\n\r\nexport function ActivityEventRow({ event }: ActivityEventRowProps) {\r\n return (\r\n <div className=\"flex gap-4 pb-4 animate-fade-in\">\r\n <div className=\"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10\">\r\n {ACTIVITY_ICONS[event.type] || \"β’\"}\r\n </div>\r\n <div className=\"flex-1 pt-1 min-w-0\">\r\n <div className=\"flex items-center gap-2 mb-0.5\">\r\n <span className=\"text-sm font-medium text-txt\">{event.title}</span>\r\n {event.actor === \"ai\" && (\r\n <span className=\"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono\">\r\n AI\r\n </span>\r\n )}\r\n </div>\r\n {event.detail && (\r\n <p className=\"text-xs text-muted truncate\">{event.detail}</p>\r\n )}\r\n <p className=\"text-xs text-muted/60 mt-0.5 font-mono\">{timeAgo(event.timestamp)}</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { Bot, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { useChats, useItemAgent } from \"@/context/ChatContext\"\nimport type { Attach, ItemAgent } from \"@/lib/chats\"\n\nexport const AGENT_LABEL: Record<ItemAgent[\"status\"], string> = {\n running: \"Agent working\",\n \"needs-answer\": \"Agent needs you\",\n review: \"Plan to review\",\n}\n\n/**\n * Pill on an epic/task while a chat works on it; click opens that chat.\n * `nodrag` + stopPropagation keep a React Flow node from dragging/selecting on click.\n */\nexport function AgentMark({ attach, className }: { attach: Attach; className?: string }) {\n const agent = useItemAgent(attach)\n const { show } = useChats()\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); show(agent.chatId) }}\n title={`${label} Β· open chat`}\n aria-label={`${label}, open chat`}\n className={cn(\n \"nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)\",\n agent.status === \"running\" && \"border-accent/50 text-accent hover:bg-accent/10\",\n agent.status === \"needs-answer\" && \"border-amber/50 text-amber hover:bg-amber/10\",\n agent.status === \"review\" && \"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20\",\n className,\n )}\n >\n {agent.status === \"running\" ? <Loader2 className=\"size-3 animate-spin\" /> : <Bot className=\"size-3\" />}\n {label}\n </button>\n )\n}\n\n/** Non-interactive variant for places that are already a button (timeline markers, board cards, task rows). */\nexport function AgentDot({ attach }: { attach: Attach }) {\n const agent = useItemAgent(attach)\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <span title={label} aria-label={label} role=\"img\" className=\"inline-flex shrink-0\">\n {agent.status === \"running\"\n ? <Loader2 className=\"size-3 animate-spin text-accent\" />\n : <span className={cn(\"size-1.5 rounded-full animate-pulse-dot\", agent.status === \"needs-answer\" ? \"bg-amber\" : \"bg-accent\")} />}\n </span>\n )\n}\n"],"names":["BoardColumn","status","tasks","onMoveTask","onOpenTask","isDragOver","setIsDragOver","className","variant","length","onDragOver","e","preventDefault","onDragLeave","currentTarget","contains","relatedTarget","onDrop","taskId","dataTransfer","getData","map","task","onMove","onOpen","id","STATUS_COLORS","todo","blocked","done","cancelled","STATUS_BADGE_COLORS","STATUS_ICONS","NEXT_STATUS","TaskCard","isDragging","setIsDragging","nextStatuses","draggable","onDragStart","setData","effectAllowed","onDragEnd","style","viewTransitionName","file","replace","attach","kind","title","phase","size","onClick","s","ACTIVITY_ICONS","task_updated","decision_logged","memory_updated","doc_read","session_start","roadmap_updated","timeAgo","ts","d","Date","now","getTime","Math","floor","ActivityEventRow","event","type","actor","detail","timestamp","AGENT_LABEL","running","review","AgentMark","agent","show","label","stopPropagation","chatId","AgentDot","role"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[441852,a=>{"use strict";var b=a.i(256857);let c={name:"message-square",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]};c.node;let d=(0,b.default)(c);a.s(["MessageSquare",0,d],441852)},749223,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(368114),e=a.i(786304),f=a.i(699570),g=a.i(815122);let h={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},i={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},j={todo:"π","in-progress":"π¨",blocked:"π«",done:"β
",cancelled:"β"},k={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};a.s(["STATUS_ICONS",0,j,"TaskCard",0,function({task:a,onMove:l,onOpen:m}){let[n,o]=(0,c.useState)(!1),p=k[a.status]||[];return(0,b.jsxs)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.setData("taskId",a.id),b.dataTransfer.effectAllowed="move",o(!0)},onDragEnd:()=>o(!1),style:{viewTransitionName:`task-${a.file.replace(/[^a-zA-Z0-9_-]/g,"_")}`},className:(0,d.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2",h[a.status]||"border-border",n&&"opacity-50 cursor-grabbing"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-mono text-muted",children:[a.id,(0,b.jsx)(g.AgentDot,{attach:{kind:"task",id:a.id}})]}),(0,b.jsx)(e.Badge,{variant:"outline",className:(0,d.cn)("text-[10px] h-4 px-1.5 font-normal",i[a.status]),children:"in-progress"===a.status?"active":a.status})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:a.title}),a.phase&&(0,b.jsx)("p",{className:"text-xs text-muted mb-2",children:a.phase}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)(f.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:m,children:"open"}),p.map(c=>(0,b.jsxs)(f.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>l(a.id,c),children:[j[c]," ","in-progress"===c?"start":c]},c))]})]})}])},536236,578520,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(368114),e=a.i(757061),f=a.i(149350),g=a.i(749223),h=a.i(913975),i=a.i(544394);let j={task_updated:"π¨",decision_logged:"π",memory_updated:"π§ ",doc_read:"π",session_start:"π€",roadmap_updated:"πΊοΈ"};function k(a){let b=(Date.now()-new Date(a).getTime())/1e3;return b<60?"just now":b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}function l({taskId:a,onNavigate:d}){let{rootParam:e}=(0,i.useApp)(),f=(0,h.useRouter)(),[g,j]=(0,c.useState)(null);return(0,c.useEffect)(()=>{let b=e?`${e}&`:"?";fetch(`/api/sessions${b}taskId=${encodeURIComponent(a)}`).then(a=>a.json()).then(a=>j(Array.isArray(a)?a:[])).catch(()=>j([]))},[e,a]),(0,b.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,b.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===g?null:0===g.length?(0,b.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,b.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:g.map(a=>(0,b.jsxs)("button",{onClick:()=>{d(),f.push(`/activity?session=${encodeURIComponent(a.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:[(0,b.jsx)("span",{children:"ai"===a.actor?"π€":"π€"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-muted",children:k(a.start)}),(0,b.jsx)("span",{className:"truncate text-txt",children:a.headline})]},a.id))})]})}a.s(["ActivityEventRow",0,function({event:a}){return(0,b.jsxs)("div",{className:"flex gap-4 pb-4 animate-fade-in",children:[(0,b.jsx)("div",{className:"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10",children:j[a.type]||"β’"}),(0,b.jsxs)("div",{className:"flex-1 pt-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,b.jsx)("span",{className:"text-sm font-medium text-txt",children:a.title}),"ai"===a.actor&&(0,b.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono",children:"AI"})]}),a.detail&&(0,b.jsx)("p",{className:"text-xs text-muted truncate",children:a.detail}),(0,b.jsx)("p",{className:"text-xs text-muted/60 mt-0.5 font-mono",children:k(a.timestamp)})]})]})},"timeAgo",0,k],578520);var m=a.i(441852),n=a.i(815122),o=a.i(685698),p=a.i(107742);let q={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},r={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},s={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};a.s(["TaskDetailPanel",0,function({task:a,onClose:h,onMove:i}){let[j,k]=(0,c.useState)(a);a&&a!==j&&k(a);let t=j&&q[j.status]||[],{chats:u,showAbout:v}=(0,o.useChats)(),w=j?(0,p.chatFor)(u,{kind:"task",id:j.id}):void 0;return(0,b.jsx)(e.Sheet,{open:!!a,onOpenChange:a=>{a||h()},children:(0,b.jsx)(e.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:j&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-muted",children:j.id}),(0,b.jsxs)("span",{className:(0,d.cn)("text-xs px-1.5 py-0.5 rounded-sm border font-mono",s[j.status]),children:[g.STATUS_ICONS[j.status]," ",j.status]}),(0,b.jsx)(n.AgentMark,{attach:{kind:"task",id:j.id}})]}),(0,b.jsx)(e.SheetTitle,{className:"font-medium text-txt text-sm leading-snug",children:j.title})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:[t.map(a=>(0,b.jsxs)("button",{onClick:()=>{i(j.id,a),h()},className:"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[g.STATUS_ICONS[a]," ",r[a]||a]},a)),(0,b.jsxs)("button",{onClick:()=>{h(),v({kind:"task",id:j.id})},className:"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-white transition-[filter] hover:brightness-110",children:[(0,b.jsx)(m.MessageSquare,{className:"size-3.5"})," ",w?"Open chat":"Chat about task"]})]}),(0,b.jsx)(l,{taskId:j.id,onNavigate:h},j.id),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:j.raw?(0,b.jsx)(f.MarkdownRenderer,{content:j.raw}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})})})}],536236)},815122,a=>{"use strict";var b=a.i(662145),c=a.i(795667),d=a.i(108280),e=a.i(368114),f=a.i(685698);let g={running:"Agent working","needs-answer":"Agent needs you",review:"Plan to review"};a.s(["AgentDot",0,function({attach:a}){let c=(0,f.useItemAgent)(a);if(!c)return null;let h=g[c.status];return(0,b.jsx)("span",{title:h,"aria-label":h,role:"img",className:"inline-flex shrink-0",children:"running"===c.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin text-accent"}):(0,b.jsx)("span",{className:(0,e.cn)("size-1.5 rounded-full animate-pulse-dot","needs-answer"===c.status?"bg-amber":"bg-accent")})})},"AgentMark",0,function({attach:a,className:h}){let i=(0,f.useItemAgent)(a),{show:j}=(0,f.useChats)();if(!i)return null;let k=g[i.status];return(0,b.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),j(i.chatId)},title:`${k} \xb7 open chat`,"aria-label":`${k}, open chat`,className:(0,e.cn)("nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)","running"===i.status&&"border-accent/50 text-accent hover:bg-accent/10","needs-answer"===i.status&&"border-amber/50 text-amber hover:bg-amber/10","review"===i.status&&"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20",h),children:["running"===i.status?(0,b.jsx)(d.Loader2,{className:"size-3 animate-spin"}):(0,b.jsx)(c.Bot,{className:"size-3"}),k]})}])},21215,a=>{"use strict";var b=a.i(662145),c=a.i(368114);a.s(["EmptyState",0,function({icon:a,message:d,subMessage:e,bordered:f}){return(0,b.jsxs)("div",{className:(0,c.cn)("text-center py-16 text-muted text-sm",f&&"border border-dashed border-border rounded-xl"),children:[(0,b.jsx)("p",{className:"text-3xl mb-3",children:a}),(0,b.jsx)("p",{children:d}),e&&(0,b.jsx)("p",{className:"text-xs mt-1",children:e})]})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1-ghqy4._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/message-square.ts","../../../../src/components/board/TaskCard.tsx","../../../../src/components/board/TaskDetailPanel.tsx","../../../../src/components/board/TaskSessions.tsx","../../../../src/components/activity/ActivityEventRow.tsx","../../../../src/components/chat/AgentMark.tsx","../../../../src/components/shared/EmptyState.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'message-square',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n key: '18887p',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon(__iconData);\n\nexport default MessageSquare;\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport type { Task } from \"@/types\"\nimport { AgentDot } from \"@/components/chat/AgentMark\"\n\nconst STATUS_COLORS: Record<string, string> = {\n todo: \"text-muted border-border2\",\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\n blocked: \"text-danger border-danger/30 bg-danger/5\",\n done: \"text-teal border-teal/30 bg-teal/5\",\n cancelled: \"text-muted border-border line-through\",\n}\n\nexport const STATUS_BADGE_COLORS: Record<string, string> = {\n todo: \"border-border2 text-muted\",\n \"in-progress\": \"border-amber/40 text-amber\",\n blocked: \"border-danger/40 text-danger\",\n done: \"border-teal/40 text-teal\",\n cancelled: \"border-border text-muted\",\n}\n\nexport const STATUS_ICONS: Record<string, string> = {\n todo: \"π\",\n \"in-progress\": \"π¨\",\n blocked: \"π«\",\n done: \"β
\",\n cancelled: \"β\",\n}\n\nconst NEXT_STATUS: Record<string, string[]> = {\n todo: [\"in-progress\"],\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\n blocked: [\"in-progress\", \"cancelled\"],\n done: [\"todo\"],\n cancelled: [\"todo\"],\n}\n\ninterface TaskCardProps {\n task: Task\n onMove: (id: string, status: string) => void\n onOpen: () => void\n}\n\nexport function TaskCard({ task, onMove, onOpen }: TaskCardProps) {\n const [isDragging, setIsDragging] = useState(false)\n const nextStatuses = NEXT_STATUS[task.status] || []\n\n return (\n <div\n draggable\n onDragStart={(e) => {\n e.dataTransfer.setData(\"taskId\", task.id)\n e.dataTransfer.effectAllowed = \"move\"\n setIsDragging(true)\n }}\n onDragEnd={() => setIsDragging(false)}\n style={{ viewTransitionName: `task-${task.file.replace(/[^a-zA-Z0-9_-]/g, \"_\")}` }}\n className={cn(\n \"group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2\",\n STATUS_COLORS[task.status] || \"border-border\",\n isDragging && \"opacity-50 cursor-grabbing\",\n )}\n >\n {/* ID + status badge */}\n <div className=\"flex items-center justify-between mb-1.5\">\n <span className=\"flex items-center gap-1.5 text-xs font-mono text-muted\">{task.id}<AgentDot attach={{ kind: \"task\", id: task.id }} /></span>\n <Badge\n variant=\"outline\"\n className={cn(\"text-[10px] h-4 px-1.5 font-normal\", STATUS_BADGE_COLORS[task.status])}\n >\n {task.status === \"in-progress\" ? \"active\" : task.status}\n </Badge>\n </div>\n\n {/* Title */}\n <p className=\"font-medium text-txt text-sm leading-snug mb-2\">{task.title}</p>\n\n {/* Phase */}\n {task.phase && <p className=\"text-xs text-muted mb-2\">{task.phase}</p>}\n\n {/* Actions */}\n <div className=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={onOpen}\n >\n open\n </Button>\n {nextStatuses.map((s) => (\n <Button\n key={s}\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => onMove(task.id, s)}\n >\n {STATUS_ICONS[s]} {s === \"in-progress\" ? \"start\" : s}\n </Button>\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Sheet, SheetContent, SheetTitle } from \"@/components/ui/sheet\"\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\nimport type { Task } from \"@/types\"\nimport { STATUS_ICONS } from \"./TaskCard\"\nimport { TaskSessions } from \"./TaskSessions\"\nimport { MessageSquare } from \"lucide-react\"\nimport { AgentMark } from \"@/components/chat/AgentMark\"\nimport { useChats } from \"@/context/ChatContext\"\nimport { chatFor } from \"@/lib/chats\"\n\nconst NEXT_STATUS: Record<string, string[]> = {\n todo: [\"in-progress\"],\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\n blocked: [\"in-progress\", \"cancelled\"],\n done: [\"todo\"],\n cancelled: [\"todo\"],\n}\n\nconst STATUS_LABELS: Record<string, string> = {\n \"in-progress\": \"start\",\n done: \"done\",\n blocked: \"blocked\",\n todo: \"backlog\",\n cancelled: \"cancel\",\n}\n\nconst STATUS_COLORS: Record<string, string> = {\n todo: \"text-muted border-border2\",\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\n blocked: \"text-danger border-danger/30 bg-danger/5\",\n done: \"text-teal border-teal/30 bg-teal/5\",\n cancelled: \"text-muted border-border\",\n}\n\ninterface TaskDetailPanelProps {\n task: Task | null\n onClose: () => void\n onMove: (id: string, status: string) => void\n}\n\nexport function TaskDetailPanel({ task: openTask, onClose, onMove }: TaskDetailPanelProps) {\n // Keep the last task rendered while the sheet slides out\n const [task, setTask] = useState(openTask)\n if (openTask && openTask !== task) setTask(openTask)\n\n const nextStatuses = task ? NEXT_STATUS[task.status] || [] : []\n const { chats, showAbout } = useChats()\n const chat = task ? chatFor(chats, { kind: \"task\", id: task.id }) : undefined\n\n return (\n <Sheet open={!!openTask} onOpenChange={(open) => { if (!open) onClose() }}>\n <SheetContent side=\"right\" aria-describedby={undefined} className=\"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col\">\n {task && (\n <>\n {/* Header */}\n <div className=\"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-mono text-xs text-muted\">{task.id}</span>\n <span className={cn(\"text-xs px-1.5 py-0.5 rounded-sm border font-mono\", STATUS_COLORS[task.status])}>\n {STATUS_ICONS[task.status]} {task.status}\n </span>\n <AgentMark attach={{ kind: \"task\", id: task.id }} />\n </div>\n <SheetTitle className=\"font-medium text-txt text-sm leading-snug\">{task.title}</SheetTitle>\n </div>\n\n {/* Quick actions */}\n <div className=\"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0\">\n {nextStatuses.map((s) => (\n <button\n key={s}\n onClick={() => { onMove(task.id, s); onClose() }}\n className=\"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors\"\n >\n {STATUS_ICONS[s]} {STATUS_LABELS[s] || s}\n </button>\n ))}\n <button\n onClick={() => { onClose(); showAbout({ kind: \"task\", id: task.id }) }}\n className=\"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-white transition-[filter] hover:brightness-110\"\n >\n <MessageSquare className=\"size-3.5\" /> {chat ? \"Open chat\" : \"Chat about task\"}\n </button>\n </div>\n\n <TaskSessions key={task.id} taskId={task.id} onNavigate={onClose} />\n\n {/* Content */}\n <div className=\"flex-1 overflow-y-auto px-5 py-4\">\n {task.raw ? (\n <MarkdownRenderer content={task.raw} />\n ) : (\n <p className=\"text-sm text-muted\">No content available.</p>\n )}\n </div>\n </>\n )}\n </SheetContent>\n </Sheet>\n )\n}\n","\"use client\"\n\nimport { useEffect, useState } from \"react\"\nimport { useRouter } from \"next/navigation\"\nimport { useApp } from \"@/context/AppContext\"\nimport { timeAgo } from \"@/components/activity/ActivityEventRow\"\nimport type { Session } from \"@/types\"\n\n// Sessions that moved this task; mount with key={taskId} so state resets per task.\nexport function TaskSessions({ taskId, onNavigate }: { taskId: string; onNavigate: () => void }) {\n const { rootParam } = useApp()\n const router = useRouter()\n const [sessions, setSessions] = useState<Session[] | null>(null)\n\n useEffect(() => {\n const qs = rootParam ? `${rootParam}&` : \"?\"\n fetch(`/api/sessions${qs}taskId=${encodeURIComponent(taskId)}`)\n .then(r => r.json())\n .then(data => setSessions(Array.isArray(data) ? data : []))\n .catch(() => setSessions([]))\n }, [rootParam, taskId])\n\n return (\n <div className=\"px-5 py-3 border-b border-border shrink-0\">\n <p className=\"mb-2 text-xs font-mono uppercase tracking-wide text-muted\">Sessions</p>\n {sessions === null ? null : sessions.length === 0 ? (\n <p className=\"text-xs text-muted\">No recorded sessions</p>\n ) : (\n <div className=\"flex max-h-40 flex-col gap-1 overflow-y-auto\">\n {sessions.map(s => (\n <button\n key={s.id}\n onClick={() => { onNavigate(); router.push(`/activity?session=${encodeURIComponent(s.id)}`) }}\n className=\"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2\"\n >\n <span>{s.actor === \"ai\" ? \"π€\" : \"π€\"}</span>\n <span className=\"shrink-0 font-mono text-muted\">{timeAgo(s.start)}</span>\n <span className=\"truncate text-txt\">{s.headline}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type { ActivityEvent } from \"@/types\"\r\n\r\nconst ACTIVITY_ICONS: Record<string, string> = {\r\n task_updated: \"π¨\",\r\n decision_logged: \"π\",\r\n memory_updated: \"π§ \",\r\n doc_read: \"π\",\r\n session_start: \"π€\",\n roadmap_updated: \"πΊοΈ\",\r\n}\r\n\r\nexport function timeAgo(ts: string): string {\r\n const d = (Date.now() - new Date(ts).getTime()) / 1000\r\n if (d < 60) return \"just now\"\r\n if (d < 3600) return `${Math.floor(d / 60)}m ago`\r\n if (d < 86400) return `${Math.floor(d / 3600)}h ago`\r\n return `${Math.floor(d / 86400)}d ago`\r\n}\r\n\r\ninterface ActivityEventRowProps {\r\n event: ActivityEvent\r\n}\r\n\r\nexport function ActivityEventRow({ event }: ActivityEventRowProps) {\r\n return (\r\n <div className=\"flex gap-4 pb-4 animate-fade-in\">\r\n <div className=\"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10\">\r\n {ACTIVITY_ICONS[event.type] || \"β’\"}\r\n </div>\r\n <div className=\"flex-1 pt-1 min-w-0\">\r\n <div className=\"flex items-center gap-2 mb-0.5\">\r\n <span className=\"text-sm font-medium text-txt\">{event.title}</span>\r\n {event.actor === \"ai\" && (\r\n <span className=\"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono\">\r\n AI\r\n </span>\r\n )}\r\n </div>\r\n {event.detail && (\r\n <p className=\"text-xs text-muted truncate\">{event.detail}</p>\r\n )}\r\n <p className=\"text-xs text-muted/60 mt-0.5 font-mono\">{timeAgo(event.timestamp)}</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\n\nimport { Bot, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { useChats, useItemAgent } from \"@/context/ChatContext\"\nimport type { Attach, ItemAgent } from \"@/lib/chats\"\n\nexport const AGENT_LABEL: Record<ItemAgent[\"status\"], string> = {\n running: \"Agent working\",\n \"needs-answer\": \"Agent needs you\",\n review: \"Plan to review\",\n}\n\n/**\n * Pill on an epic/task while a chat works on it; click opens that chat.\n * `nodrag` + stopPropagation keep a React Flow node from dragging/selecting on click.\n */\nexport function AgentMark({ attach, className }: { attach: Attach; className?: string }) {\n const agent = useItemAgent(attach)\n const { show } = useChats()\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); show(agent.chatId) }}\n title={`${label} Β· open chat`}\n aria-label={`${label}, open chat`}\n className={cn(\n \"nodrag inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-px font-mono text-[10px] leading-4 animate-fade-in transition-colors duration-(--duration-fast)\",\n agent.status === \"running\" && \"border-accent/50 text-accent hover:bg-accent/10\",\n agent.status === \"needs-answer\" && \"border-amber/50 text-amber hover:bg-amber/10\",\n agent.status === \"review\" && \"border-accent/50 bg-accent/10 text-accent hover:bg-accent/20\",\n className,\n )}\n >\n {agent.status === \"running\" ? <Loader2 className=\"size-3 animate-spin\" /> : <Bot className=\"size-3\" />}\n {label}\n </button>\n )\n}\n\n/** Non-interactive variant for places that are already a button (timeline markers, board cards, task rows). */\nexport function AgentDot({ attach }: { attach: Attach }) {\n const agent = useItemAgent(attach)\n if (!agent) return null\n const label = AGENT_LABEL[agent.status]\n return (\n <span title={label} aria-label={label} role=\"img\" className=\"inline-flex shrink-0\">\n {agent.status === \"running\"\n ? <Loader2 className=\"size-3 animate-spin text-accent\" />\n : <span className={cn(\"size-1.5 rounded-full animate-pulse-dot\", agent.status === \"needs-answer\" ? \"bg-amber\" : \"bg-accent\")} />}\n </span>\n )\n}\n","import { cn } from \"@/lib/utils\"\r\n\r\ninterface EmptyStateProps {\r\n icon: string\r\n message: string\r\n subMessage?: string\r\n bordered?: boolean\r\n}\r\n\r\nexport function EmptyState({ icon, message, subMessage, bordered }: EmptyStateProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"text-center py-16 text-muted text-sm\",\r\n bordered && \"border border-dashed border-border rounded-xl\",\r\n )}\r\n >\r\n <p className=\"text-3xl mb-3\">{icon}</p>\r\n <p>{message}</p>\r\n {subMessage && <p className=\"text-xs mt-1\">{subMessage}</p>}\r\n </div>\r\n )\r\n}\r\n"],"names":["STATUS_COLORS","todo","blocked","done","cancelled","STATUS_BADGE_COLORS","STATUS_ICONS","NEXT_STATUS","TaskCard","task","onMove","onOpen","isDragging","setIsDragging","nextStatuses","status","draggable","onDragStart","e","dataTransfer","setData","id","effectAllowed","onDragEnd","style","viewTransitionName","file","replace","className","attach","kind","variant","title","phase","size","onClick","map","s","ACTIVITY_ICONS","task_updated","decision_logged","memory_updated","doc_read","session_start","roadmap_updated","timeAgo","ts","d","Date","now","getTime","Math","floor","ActivityEventRow","event","type","actor","detail","timestamp","AGENT_LABEL","running","review","AgentMark","agent","show","label","stopPropagation","chatId","AgentDot","role","EmptyState","icon","message","subMessage","bordered"],"mappings":"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","ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[776692,521831,a=>{"use strict";var b=a.i(174897),c=Object.defineProperty,d=(a,b)=>c(a,"name",{value:b,configurable:!0});function e(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function f(...a){return b=>{let c=!1,d=a.map(a=>{let d=e(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():e(a[b],null)}}}}function g(...a){return b.useCallback(f(...a),a)}d(e,"setRef"),d(f,"composeRefs"),d(g,"useComposedRefs"),a.s(["useComposedRefs",0,g],521831);var h=Object.defineProperty,i=(a,b)=>h(a,"name",{value:b,configurable:!0});function j(a){let c=b.forwardRef((c,d)=>{let{children:e,...f}=c,h=null,i=!1,j=[];s(e)&&"function"==typeof w&&(e=w(e._payload)),b.Children.forEach(e,a=>{if(q(a)){i=!0;let b="child"in a.props?a.props.child:a.props.children;s(b)&&"function"==typeof w&&(b=w(b._payload)),h=n(a,b),j.push(h?.props?.children)}else j.push(a)}),h?h=b.cloneElement(h,void 0,j):!i&&1===b.Children.count(e)&&b.isValidElement(e)&&(h=e);let k=h?p(h):void 0,l=g(d,k);if(!h){if(e||0===e)throw Error(i?v(a):u(a));return e}let m=o(f,h.props??{});return h.type!==b.Fragment&&(m.ref=d?l:k),b.cloneElement(h,m)});return c.displayName=`${a}.Slot`,c}i(j,"createSlot");var k=j("Slot"),l=Symbol.for("radix.slottable");function m(a){let b=i(a=>"child"in a?a.children(a.child):a.children,"Slottable");return b.displayName=`${a}.Slottable`,b.__radixId=l,b}i(m,"createSlottable");var n=i((a,c)=>{if("child"in a.props){let c=a.props.child;return b.isValidElement(c)?b.cloneElement(c,void 0,a.props.children(c.props.children)):null}return b.isValidElement(c)?c:null},"getSlottableElementFromSlottable");function o(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}function p(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}function q(a){return b.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===l}i(o,"mergeProps"),i(p,"getElementRef"),i(q,"isSlottable");var r=Symbol.for("react.lazy");function s(a){return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===r&&"_payload"in a&&t(a._payload)}function t(a){return"object"==typeof a&&null!==a&&"then"in a}i(s,"isLazyComponent"),i(t,"isPromiseLike");var u=i(a=>`${a} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),v=i(a=>`${a} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),w=b[" use ".trim().toString()];a.s(["Slot",0,k,"createSlot",0,j,"createSlottable",0,m],776692)},142261,a=>{"use strict";var b=a.i(239337);let c=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,d=b.clsx;a.s(["cva",0,(a,b)=>e=>{var f;if((null==b?void 0:b.variants)==null)return d(a,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==e?void 0:e[a],d=null==h?void 0:h[a];if(null===b)return null;let f=c(b)||c(d);return g[a][f]}),j=e&&Object.entries(e).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return d(a,i,null==b||null==(f=b.compoundVariants)?void 0:f.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==e?void 0:e.class,null==e?void 0:e.className)}])},256857,a=>{"use strict";var b=a.i(174897);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},e=(0,b.createContext)({}),f=(0,b.forwardRef)(({color:a,size:f,width:g,height:h,strokeWidth:i,absoluteStrokeWidth:j,nonScalingStroke:k,className:l="",children:m,iconNode:n=[],icon:o={node:n,aliases:[],size:24},...p},q)=>{let{size:r=24,strokeWidth:s=2,absoluteStrokeWidth:t=!1,nonScalingStroke:u=!1,color:v="currentColor",className:w=""}=(0,b.useContext)(e)??{},x=!!m||(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(p),[y,z,A=[]]=function(a,b={}){return function(a,b={}){let e=b.attributeNames??{},f=a=>e[a]??a,g=a.size??a.width??d.width,h=a.size??a.height??d.height,i=a.aliases?.filter(a=>"string"==typeof a&&""!==a.trim()).map(a=>`lucide-${a}`)??[],j=[...a.name?[`lucide-${a.name}`]:[],...i],k=b.className?.split(" ").filter(Boolean)??[],l=!1===b.includeDefaultClasses?c(...k):c("lucide",...j,...k),m=b.absoluteStrokeWidth?Number(b.strokeWidth??d["stroke-width"])*Number(a.size??a.width??d.width)/Number(b.size??b.width??d.width):b.strokeWidth??d["stroke-width"];return["svg",{...Object.entries(d).reduce((a,[b,c])=>(a[f(b)]=c,a),{}),..."color"in b&&b.color&&{[f("stroke")]:b.color},..."size"in b&&null!=b.size&&{[f("width")]:b.size,[f("height")]:b.size},..."width"in b&&null!=b.width&&{[f("width")]:b.width},..."height"in b&&null!=b.height&&{[f("height")]:b.height},[f("stroke-width")]:m,...l&&{[f("class")]:l},[f("viewBox")]:`0 0 ${g} ${h}`,...!1===b.hasA11yProp?{[f("aria-hidden")]:"true"}:{},..."attributes"in b&&b.attributes},a.node.map(a=>{let[c,d,e]=a,g=b.nonScalingStroke?{[f("vector-effect")]:"non-scaling-stroke",...d}:d;return e?[c,g,e]:[c,g]})]}(a,{...b,attributeNames:{...b.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(o,{color:a??v,width:g??f??r,height:h??f??r,strokeWidth:i??s,absoluteStrokeWidth:j??t,nonScalingStroke:k??u,className:c(w,l),hasA11yProp:x,attributes:p});return(0,b.createElement)(y,{ref:q,...z},[...A.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(m)?m:[m]])});a.s(["default",0,function(a,c=[],d=[]){let e,g="string"==typeof a?function(a,b,c=[]){if(null==b)throw Error("[lucide]: iconNode is required when icon name is used");return{name:a?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:b,...c.length>0?{aliases:c}:{}}}(a,c,d):a,h=(0,b.forwardRef)(({className:a,...c},d)=>(0,b.createElement)(f,{ref:d,icon:g,className:a,...c}));return g.name&&(h.displayName=(e=(a=>{let b="",c=!1;for(let d of a){if("-"===d||"_"===d||d<=" "){c=b.length>0;continue}0===b.length?b+=d.toLowerCase():b+=c?d.toUpperCase():d,c=!1}return b})(g.name)).charAt(0).toUpperCase()+e.slice(1)),h}],256857)},508817,a=>{"use strict";var b=a.i(256857);let c={name:"book-open",size:24,node:[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]};c.node;let d=(0,b.default)(c);a.s(["BookOpen",0,d],508817)},795667,a=>{"use strict";var b=a.i(256857);let c={name:"bot",size:24,node:[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]};c.node;let d=(0,b.default)(c);a.s(["Bot",0,d],795667)},425404,a=>{"use strict";var b=a.i(256857);let c={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};c.node;let d=(0,b.default)(c);a.s(["Check",0,d],425404)},156298,a=>{"use strict";var b=a.i(256857);let c={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]};c.node;let d=(0,b.default)(c);a.s(["ChevronRight",0,d],156298)},926128,a=>{"use strict";var b=a.i(256857);let c={name:"file-text",size:24,node:[["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:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]};c.node;let d=(0,b.default)(c);a.s(["FileText",0,d],926128)},108280,a=>{"use strict";var b=a.i(256857);let c={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};c.node;let d=(0,b.default)(c);a.s(["Loader2",0,d],108280)},200382,a=>{"use strict";var b=a.i(256857);let c={name:"plus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]};c.node;let d=(0,b.default)(c);a.s(["Plus",0,d],200382)},72551,a=>{"use strict";var b=a.i(256857);let c={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]};c.node;let d=(0,b.default)(c);a.s(["Search",0,d],72551)},28386,a=>{"use strict";var b=a.i(256857);let c={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],28386)},54165,a=>{"use strict";var b=a.i(256857);let c={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};c.node;let d=(0,b.default)(c);a.s(["X",0,d],54165)},879136,966420,a=>{"use strict";var b=a.i(256857);let c={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};c.node;let d=(0,b.default)(c);a.s(["Zap",0,d],879136);let e={name:"settings",size:24,node:[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};e.node;let f=(0,b.default)(e);a.s(["Settings",0,f],966420)},594023,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0});var e={getAssetToken:function(){return i},getAssetTokenQuery:function(){return j},getDeploymentId:function(){return g},getDeploymentIdQuery:function(){return h}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});function g(){return d}function h(a=!1){return d?`${a?"&":"?"}dpl=${d}`:""}function i(){return!1}function j(a=!1){return""}d=void 0},786304,a=>{"use strict";var b=a.i(662145),c=a.i(142261),d=a.i(368114);let e=(0,c.cva)("inline-flex items-center rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-accent focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-accent text-white hover:bg-accent/80",secondary:"border-transparent bg-surface2 text-txt hover:bg-surface2/80",destructive:"border-transparent bg-danger text-white hover:bg-danger/80",outline:"text-txt"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},699570,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(776692),e=a.i(142261),f=a.i(368114);let g=(0,e.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-bg transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-accent text-white hover:bg-accent/90",destructive:"bg-danger text-white hover:bg-danger/90",outline:"border border-border bg-bg hover:bg-surface2 hover:text-txt",secondary:"bg-surface2 text-txt hover:bg-surface2/80",ghost:"hover:bg-surface2 hover:text-txt",link:"text-txt underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),h=c.forwardRef(({className:a,variant:c,size:e,asChild:h=!1,...i},j)=>{let k=h?d.Slot:"button";return(0,b.jsx)(k,{className:(0,f.cn)(g({variant:c,size:e,className:a})),ref:j,...i})});h.displayName="Button",a.s(["Button",0,h])},814574,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(923053),e=a.i(54165),f=a.i(368114);let g=d.Root;d.Trigger;let h=d.Portal;d.Close;let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Overlay,{ref:e,className:(0,f.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));i.displayName=d.Overlay.displayName;let j=c.forwardRef(({className:a,children:c,...g},j)=>(0,b.jsxs)(h,{children:[(0,b.jsx)(i,{}),(0,b.jsxs)(d.Content,{ref:j,className:(0,f.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-surface p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...g,children:[c,(0,b.jsxs)(d.Close,{className:"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-bg transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-accent focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-surface2 data-[state=open]:text-muted",children:[(0,b.jsx)(e.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));j.displayName=d.Content.displayName;let k=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...c});k.displayName="DialogHeader";let l=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Title,{ref:e,className:(0,f.cn)("text-lg font-semibold leading-none tracking-tight",a),...c}));l.displayName=d.Title.displayName,c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Description,{ref:e,className:(0,f.cn)("text-sm text-muted",a),...c})).displayName=d.Description.displayName,a.s(["Dialog",0,g,"DialogContent",0,j,"DialogHeader",0,k,"DialogTitle",0,l])},866718,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(368114);let e=c.forwardRef(({className:a,type:c,...e},f)=>(0,b.jsx)("input",{type:c,className:(0,d.cn)("flex h-10 w-full rounded-md border border-border bg-bg px-3 py-2 text-base ring-offset-bg file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-txt placeholder:text-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),ref:f,...e}));e.displayName="Input",a.s(["Input",0,e])},757061,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(923053),e=a.i(142261),f=a.i(54165),g=a.i(368114);let h=d.Root;d.Trigger,d.Close;let i=d.Portal,j=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Overlay,{className:(0,g.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c,ref:e}));j.displayName=d.Overlay.displayName;let k=(0,e.cva)("fixed z-50 gap-4 bg-surface p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),l=c.forwardRef(({side:a="right",className:c,children:e,...h},l)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(j,{}),(0,b.jsxs)(d.Content,{ref:l,className:(0,g.cn)(k({side:a}),c),...h,children:[e,(0,b.jsxs)(d.Close,{className:"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-bg transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-accent focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-surface2",children:[(0,b.jsx)(f.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=d.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("flex flex-col space-y-2 text-center sm:text-left",a),...c});m.displayName="SheetHeader";let n=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Title,{ref:e,className:(0,g.cn)("text-lg font-semibold text-txt",a),...c}));n.displayName=d.Title.displayName;let o=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Description,{ref:e,className:(0,g.cn)("text-sm text-muted",a),...c}));o.displayName=d.Description.displayName,a.s(["Sheet",0,h,"SheetContent",0,l,"SheetDescription",0,o,"SheetHeader",0,m,"SheetTitle",0,n])},689101,a=>{"use strict";var b=a.i(174897);let c=()=>()=>{};a.s(["useOrigin",0,function(){return(0,b.useSyncExternalStore)(c,()=>window.location.origin,()=>"")}])},210436,a=>{"use strict";var b=a.i(817163);a.s(["applyAccent",0,function(a){document.documentElement.setAttribute("data-accent",a)},"applyFontSize",0,function(a){document.documentElement.setAttribute("data-font-size",a)},"applyFonts",0,function(a){let c=document.documentElement;c.setAttribute("data-font-sans",a.fontSans??b.DEFAULT_SETTINGS.fontSans),c.setAttribute("data-font-mono",a.fontMono??b.DEFAULT_SETTINGS.fontMono)},"applyTheme",0,function(a){let b=document.documentElement,c=window.matchMedia("(prefers-color-scheme: dark)").matches;b.classList.toggle("dark","dark"===a||"system"===a&&c)}])},525395,a=>{"use strict";let b="vibedoc:ask-agent",c="vibedoc:open-chat";a.s(["ASK_AGENT_EVENT",0,b,"OPEN_CHAT_EVENT",0,c,"askAgent",0,function(a,c={}){window.dispatchEvent(new CustomEvent(b,{detail:{message:a,...c}}))},"openAgentChat",0,function(a){window.dispatchEvent(new CustomEvent(c,{detail:{chatId:a}}))}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_17jy5db._.js.map
|