tower-studio 0.2.41 → 0.2.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +2 -0
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +16 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +27 -27
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/adapters/test/route.js +2 -2
- package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js +2 -3
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js +11 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/resume/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +5 -5
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js +11 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/stop/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +116 -116
- package/.next/standalone/.next/server/app/missions/page.js +2 -3
- package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +27 -27
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +27 -27
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +44 -44
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +112 -100
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +91 -79
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +80 -68
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +69 -69
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +27 -27
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +71 -71
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +88 -76
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +57 -45
- package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +2 -0
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +5 -5
- package/.next/standalone/.next/server/chunks/0zjb_server_app_api_internal_terminal_[taskId]_resume_route_actions_0uascj..js +3 -0
- package/.next/standalone/.next/server/chunks/0zjb_server_app_api_internal_terminal_[taskId]_stop_route_actions_0r3bvc-.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.tbb~k._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05zlbau._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06qz5fz._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__075f7rs._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08b~~wj._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__037x-0a._.js → [root-of-the-server]__0askhfg._.js} +4 -4
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04u7b2g._.js → [root-of-the-server]__0bo_6v~._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e~6fr~._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0kexk71._.js → [root-of-the-server]__0fxmnch._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gr~8aq._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hd.0to._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0g2lv9x._.js → [root-of-the-server]__0j3l3l4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0fp8qv9._.js → [root-of-the-server]__0obk~80._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__05nz.tg._.js → [root-of-the-server]__0skk0fd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ag-i9m._.js → [root-of-the-server]__0v2nkck._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~6py0f._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__126b53k._.js +4 -0
- package/.next/standalone/.next/server/chunks/_0aflzks._.js +7 -0
- package/.next/standalone/.next/server/chunks/_0b~hjvi._.js +7 -0
- package/.next/standalone/.next/server/chunks/_0qk_esg._.js +4 -0
- package/.next/standalone/.next/server/chunks/src_02ruq-1._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_07gek7k._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_0mqkaid._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_actions_agent-actions_ts_10q9r5b._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{0ws9_lucide-react_dist_esm_icons_10_90yo._.js → 0ws9_lucide-react_dist_esm_icons_0pkla8j._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.-z9ts._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__038u_kv._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__045k323._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04wbr9x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__058rbx5._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05xg05r._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__087pocz._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c2mh1c._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ce3fpq._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dsaqeq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gt5dbj._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h-se8t._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h589~0._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oq-j16._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0whlq2_._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10s67lq._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12w35bx._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_03lt1_x._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_04~zqvy._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0_z-t6g._.js → _08bq4g8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0t863nl._.js → _09z2zmm._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0_5abui._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0axcfvf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0c2gong._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0ecu98s._.js → _0dye20y._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0dzx554._.js → _0f~l8kv._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_04mn9go._.js → _0m.wslt._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0o2tntr._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0p6p_68._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_0u_uywm._.js → _0q2mf9q._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0_6ss3p._.js → _0rq68d8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0hh17jg._.js → _0rxeqmo._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0tsu0gq._.js → _0u.n7v8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0u7c6bz._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0whlnt7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0~oc5bl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_116-_2z._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_12ca88g._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_notes_notes-page-client_tsx_10gyo3v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_0d2ra01._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_11w~.ge._.js → src_lib_0x6grav._.js} +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +2 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +345 -303
- package/.next/standalone/.next/static/chunks/0-efd~h5j2ufi.js +1 -0
- package/.next/standalone/.next/static/chunks/{0fz47g1x5o2xj.js → 0.onaugl2w8ci.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ad0ou7l2.r6e.js → 0.wxa05y455w7.js} +1 -1
- package/.next/standalone/.next/static/chunks/0.z171pzeg-.7.js +1 -0
- package/.next/standalone/.next/static/chunks/01zlxs4rl~h_o.js +1 -0
- package/.next/standalone/.next/static/chunks/{05zm_-7x0fubq.js → 02f8-ju2se8qw.js} +1 -1
- package/.next/standalone/.next/static/chunks/{03sdutmq6~3v-.js → 035a_v6g7ioyw.js} +1 -1
- package/.next/standalone/.next/static/chunks/{02o~o8tgt860j.js → 040j8d.w8mkyn.js} +1 -1
- package/.next/standalone/.next/static/chunks/0_d04kox03m72.css +1 -0
- package/.next/standalone/.next/static/chunks/0af7afat3acfx.js +1 -0
- package/.next/standalone/.next/static/chunks/0ais32-8.3wlj.js +1 -0
- package/.next/standalone/.next/static/chunks/{12rj7-g8lxjew.js → 0bdwzhoelky9-.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0.65.u3zhwau~.js → 0clewc5ifaruu.js} +1 -1
- package/.next/standalone/.next/static/chunks/0dewfthzwmcwb.js +1 -0
- package/.next/standalone/.next/static/chunks/0f43x~jzb70f4.js +1 -0
- package/.next/standalone/.next/static/chunks/{0v.l5.sqos562.js → 0i-x__600fys6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0lyq0-a32.15m.js +1 -0
- package/.next/standalone/.next/static/chunks/{06s-d8my6b9t7.js → 0m~m1~si.ot17.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0tfmi08mzcieh.js → 0rozlwh3y46l0.js} +1 -1
- package/.next/standalone/.next/static/chunks/0t8lz62rmr801.js +2 -0
- package/.next/standalone/.next/static/chunks/0utrquxfg25b2.js +1 -0
- package/.next/standalone/.next/static/chunks/0wcdxs4sl-gjf.js +1 -0
- package/.next/standalone/.next/static/chunks/0wcwdbtpm0~r6.js +1 -0
- package/.next/standalone/.next/static/chunks/{0i2soupf1735z.js → 0x-ug4iz~~qr2.js} +1 -1
- package/.next/standalone/.next/static/chunks/0xj6v_80hlyv0.js +1 -0
- package/.next/standalone/.next/static/chunks/0xl7h5fsfc7zk.js +1 -0
- package/.next/standalone/.next/static/chunks/{11sqt~58g35be.js → 0ypd9eqm_pj-o.js} +1 -1
- package/.next/standalone/.next/static/chunks/115ae91fq~slq.js +1 -0
- package/.next/standalone/.next/static/chunks/{1195ux3t_r-rb.js → 13.3woq55msp..js} +1 -1
- package/.next/standalone/.next/static/chunks/17fug-zaik-v~.js +1 -0
- package/.next/standalone/.next/static/chunks/{0v8apmh_d7lz3.js → 17m4o~gdsvuo3.js} +1 -1
- package/.next/standalone/package.json +1 -1
- package/README.md +25 -3
- package/README.zh.md +25 -3
- package/dist/mcp-server.cjs +115 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.z8.oi._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02jy80j._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0az764e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0giry~0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kuo6q5._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0np.553._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u_-4~7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08w4.zf._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da~mv~._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dn90me._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gtqd5o._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0nwisa8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w--i~y._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zkpwjj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0-_yznx._.js +0 -43
- package/.next/standalone/.next/server/chunks/ssr/_03v~rg0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0_9i_x2._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0b.qjaj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0mdqhxi._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0r-flc_._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0rkdyad._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0z6ji0d._.js +0 -3
- package/.next/standalone/.next/static/chunks/0-x5eie9u3i_2.js +0 -1
- package/.next/standalone/.next/static/chunks/00w9dd4fooyic.js +0 -1
- package/.next/standalone/.next/static/chunks/04zy.uc7eru64.js +0 -1
- package/.next/standalone/.next/static/chunks/05~2gwcex7hv0.js +0 -1
- package/.next/standalone/.next/static/chunks/062.w.nsp3886.js +0 -1
- package/.next/standalone/.next/static/chunks/0651zmy-w~saj.js +0 -1
- package/.next/standalone/.next/static/chunks/06lla3jtd~xb4.js +0 -1
- package/.next/standalone/.next/static/chunks/0babmd83h6ejs.js +0 -1
- package/.next/standalone/.next/static/chunks/0c8c6pcmlzgmi.js +0 -1
- package/.next/standalone/.next/static/chunks/0c~~56wny5m2u.js +0 -1
- package/.next/standalone/.next/static/chunks/0ev98toavtr6..js +0 -1
- package/.next/standalone/.next/static/chunks/0lnsj7fwkprxe.js +0 -1
- package/.next/standalone/.next/static/chunks/0oz8sw6j078vm.js +0 -2
- package/.next/standalone/.next/static/chunks/0umi7ddtiv8sw.js +0 -1
- package/.next/standalone/.next/static/chunks/0w33dj~dfamnr.css +0 -1
- package/.next/standalone/.next/static/chunks/0y3a2-c-i9t~t.js +0 -1
- package/.next/standalone/.next/static/chunks/10qltt-r5q91p.js +0 -1
- /package/.next/standalone/.next/static/{zSKVtiYaR_yWxx7AopTMR → LCBoYZWhXzs8PjuBmxw7g}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{zSKVtiYaR_yWxx7AopTMR → LCBoYZWhXzs8PjuBmxw7g}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{zSKVtiYaR_yWxx7AopTMR → LCBoYZWhXzs8PjuBmxw7g}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"
|
|
1
|
+
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40678a2b403c111cdd409176df5bba928e0f63a5b4",null),(0,b.registerServerReference)(g,"407fab8fa8b7793fb8f25a418f04559876792ca21c",null),(0,b.registerServerReference)(h,"402bbc93aabd476c75ea98b62565514688b910719d",null),(0,b.registerServerReference)(i,"6035dc364b0b931662d0d6fe73fb33918084cbf5f0",null),(0,b.registerServerReference)(j,"4028a1d511533e45afbd300ff59e95b5ae98c8b38a",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
2
|
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
3
|
FROM "ProjectNote" n
|
|
4
4
|
JOIN "Project" p ON p.id = n."projectId"
|
|
@@ -18,7 +18,7 @@ module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(18
|
|
|
18
18
|
JOIN "Project" p ON p.id = n."projectId"
|
|
19
19
|
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
20
|
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"
|
|
21
|
+
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"6051197133a60d5756beb41200c1dbffb7f56bea66",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
22
|
|
|
23
23
|
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
24
|
|
|
@@ -42,6 +42,6 @@ Requirements:
|
|
|
42
42
|
- Keep it under 1000 words
|
|
43
43
|
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
44
|
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"40cc7ef1ee8f58c4c29b4ea5a09d41992b5428d1a4",null),(0,b.registerServerReference)(j,"6093362ff1a21c341d160d22a4cda67194afd8df8d",null),(0,b.registerServerReference)(m,"6088d6bce54c3db15d77363fd4c32e05b06ed8d150",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227),d=a.i(319997);a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join((0,d.getStorageDir)(),"assets",a);if(!b.startsWith((0,d.getStorageDir)()+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"404128eb76c56cf1d9cc06d54287e1d83f8c95c4ed",null),(0,d.registerServerReference)(o,"404dd48feaafb3f792425f10be7a057de485a3c4cb",null),(0,d.registerServerReference)(p,"4093bd48f7873d08d0ace0ad35c284d26ce036ab08",null),(0,d.registerServerReference)(q,"4002a62a3d1bd8911c25a119d422dbf24e7992fa0c",null),(0,d.registerServerReference)(r,"409ba7a1f6a566a980e159107e69ab32095aeb4094",null),(0,d.registerServerReference)(s,"401c3af67aaedff4d933f8f4befb93b2f603293620",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),835032,a=>{"use strict";async function b(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b.id),await a.$executeRawUnsafe("INSERT INTO notes_fts(note_id, title, content) VALUES (?, ?, ?)",b.id,b.title,b.content)}async function c(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b)}a.s(["deleteNoteFromFts",0,c,"syncNoteToFts",0,b])},392164,a=>{"use strict";var b=a.i(815429),c=a.i(75681),d=a.i(761469),e=a.i(188139),f=a.i(835032),g=a.i(630048);let h=c.z.object({title:c.z.string().min(1).max(200),content:c.z.string(),category:c.z.string().max(50).optional(),projectId:c.z.string().min(1),taskId:c.z.string().optional()}),i=c.z.object({title:c.z.string().min(1).max(200).optional(),content:c.z.string().optional(),category:c.z.string().max(50).optional()});async function j(a){let b=h.parse(a),c=await d.db.projectNote.create({data:{title:b.title,content:b.content,category:b.category??"备忘",projectId:b.projectId,taskId:b.taskId??null}});return await (0,f.syncNoteToFts)(d.db,{id:c.id,title:c.title,content:c.content}),(0,e.revalidatePath)("/workspace"),c}async function k(a,b){let c=i.parse(b),g=await d.db.projectNote.update({where:{id:a},data:c});return await (0,f.syncNoteToFts)(d.db,{id:g.id,title:g.title,content:g.content}),(0,e.revalidatePath)("/workspace"),g}async function l(a){await (0,f.deleteNoteFromFts)(d.db,a),await d.db.projectNote.delete({where:{id:a}}),(0,e.revalidatePath)("/workspace")}async function m(a){return d.db.projectNote.findUnique({where:{id:a}})}async function n(a,b){return d.db.projectNote.findMany({where:{projectId:a,...b?.category?{category:b.category}:{}},orderBy:[{updatedAt:"desc"},{id:"desc"}],include:{task:{select:{id:!0,title:!0}}}})}async function o(a){return d.db.projectNote.findMany({where:{taskId:a},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}(0,g.ensureServerEntryExports)([j,k,l,m,n,o]),(0,b.registerServerReference)(j,"4052197932d3dac67eb911c66ab41b8c00226c3a2e",null),(0,b.registerServerReference)(k,"60097af7fbfd06a6695f71593a604b76dc597e1cab",null),(0,b.registerServerReference)(l,"408048b95af9327b6f4be5ff902cf0d7ec9e044a81",null),(0,b.registerServerReference)(m,"406ff8ad400c128fde5ec845d9c3095c90dad25268",null),(0,b.registerServerReference)(n,"60c5266b461e31af19cd3da88a3bf16008ca81519d",null),(0,b.registerServerReference)(o,"4078a68bce1825c6bfdc7a489f96bd4bfd1ede8d57",null),a.s(["createNote",0,j,"deleteNote",0,l,"getNoteById",0,m,"getProjectNotes",0,n,"getTaskNotes",0,o,"updateNote",0,k])},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"4073dabbd454c2449d967f5f8b4fe214c769bd14e6",null),(0,b.registerServerReference)(h,"406cac08b8f7574c2e90946d4badd82085f6afec70",null),(0,b.registerServerReference)(i,"405f6da2b95ba88bc79bb6ab942e0549a5d29b7f28",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},181207,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(392164);var f=a.i(689171),g=a.i(97397);a.i(536960),a.i(196195);var h=b([d,e,f,g]);[d,e,f,g]=h.then?(await h)():h,a.s([]),c()}catch(a){c(a)}},!1),593804,a=>a.a(async(b,c)=>{try{var d=a.i(181207),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(392164),m=a.i(689171),n=a.i(97397),o=a.i(536960),p=a.i(196195),q=b([d,g,h,m,n]);[d,g,h,m,n]=q.then?(await q)():q,a.s(["0026c5edd1023252308627ad409c370f247634329f",()=>h.getActualWsPort,"004328d990a31b22f2e07b44e2349a57084d8ae3dd",()=>e.getWorkspacesWithProjects,"006920f418f1daca62ce06bc5793ca79955fbf80c8",()=>k.getOnboardingStatus,"00e3a983b0af5f8e375b5b14124a5d795b17653c10",()=>j.listAllExtensionStatus,"4002a62a3d1bd8911c25a119d422dbf24e7992fa0c",()=>n.getTaskAssets,"4013e9f181ee6c5ac1784f61eb0c42415e76e85ddc",()=>f.deleteLabel,"4018ae3b00e9897f70c5bc21e65131956d660bfd6f",()=>h.resolveGitLocalPath,"401a3952549e1a40afe2c46b45a5d77fd877093d83",()=>m.getTaskOverview,"40223b14047f662ab6187b5f5de8b7964543c9bf9d",()=>e.createProject,"4025c3ca6cc43a8fcf91f7b412c99a8906e3d86fb2",()=>j.installExtension,"4027797afe208cc106df601698112b65a2553c5142",()=>f.createLabel,"402adc0e89ad342a58c66d2faeaa0644b72363ba94",()=>e.getRecentLocalProjects,"4031f0f9cec515df23706e8f5a0819ee8e08097825",()=>e.reorderWorkspaces,"40373b26b468717413c5089ed04c09344838ee058c",()=>k.dispatchTaskCompletionEvent,"403c78663cc7c1a256c62592aba4b82cb023dca7b4",()=>j.uninstallExtension,"40445abf522459e32d24d5b2876a7ab05fbf8c8e71",()=>e.deleteProject,"4049c3ac282394cff9e752075d1a38bf7571becce2",()=>o.openInTerminal,"405070d20bbba4cf230d1ab3d73588b341855454fe",()=>h.getConfigValues,"4052197932d3dac67eb911c66ab41b8c00226c3a2e",()=>l.createNote,"405f6da2b95ba88bc79bb6ab942e0549a5d29b7f28",()=>p.fetchRemoteBranches,"406acbf62a05ba02401ed446f8b8abc2eabf59e61c",()=>e.deleteWorkspace,"406cac08b8f7574c2e90946d4badd82085f6afec70",()=>p.getProjectBranches,"406ef62c74a6c3104848e33809a0b03ee0cb2d28f1",()=>h.resolveGitLocalPathWithSource,"406ff8ad400c128fde5ec845d9c3095c90dad25268",()=>l.getNoteById,"4073dabbd454c2449d967f5f8b4fe214c769bd14e6",()=>p.getCurrentBranch,"40789341eba87d31b0db974f1d4e0a1bceae079293",()=>e.getOrCreateTowerTaskId,"4078a68bce1825c6bfdc7a489f96bd4bfd1ede8d57",()=>l.getTaskNotes,"408048b95af9327b6f4be5ff902cf0d7ec9e044a81",()=>l.deleteNote,"4082e9a85c46d5190b1df1afe0590efddc82225924",()=>k.setOnboardingProgress,"408f0738adc3036892f332c6bfe69005d9463aaa2b",()=>j.checkExtension,"409c1c009d8aeec053e4e321882172018668422c1e",()=>o.openInFileManager,"40a284d9c6e2f44b212be27d8918d2bae507fc32d9",()=>m.createTask,"40ac28269025094ddbbb7aa941653be1f48157e09d",()=>e.createWorkspace,"40b31d3c7ce758e2fff83b0c3cf4a19aca355e93aa",()=>e.getWorkspaceById,"40ba977c197093faeed47d592c99364ed49b014ab6",()=>e.getProjectByLocalPath,"40cc7ef1ee8f58c4c29b4ea5a09d41992b5428d1a4",()=>i.checkMigrationSafety,"40e7e10c94a6abb932f55b0df79ac20366e5b48043",()=>f.getLabelsForWorkspace,"40f88a535c68fc03cc5b940c1f9ddd380f4f8a6d8b",()=>e.getWorkspacesWithRecentTasks,"40fd5c40a4b3f121642b17888c343c114894b1770b",()=>o.openInEditor,"6003577e48fd962be00945ff10daa9981d32b2202b",()=>e.updateProject,"60097af7fbfd06a6695f71593a604b76dc597e1cab",()=>l.updateNote,"60198c3a189cd18963622c57227592e2dab34f15d3",()=>h.setConfigValue,"603e0b286c186fd563fc3b35be3f61208156f37310",()=>g.globalSearch,"6065d16f647c6ee94cb2f15606a415704e7fd8e696",()=>k.completeOnboarding,"6071086045e179b19b4895fd4d9ccb3c5ea0f1f1ec",()=>e.updateWorkspace,"607faca9d09eb3867f7ecd7201bc02f17216d80715",()=>h.getConfigValue,"60842739efa841a1ba87b142d51e567915f66e14e4",()=>k.setOnboardingExtensions,"6088d6bce54c3db15d77363fd4c32e05b06ed8d150",()=>i.analyzeProjectDirectory,"6093362ff1a21c341d160d22a4cda67194afd8df8d",()=>i.migrateProjectPath,"60c5266b461e31af19cd3da88a3bf16008ca81519d",()=>l.getProjectNotes]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0fu5szn._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0pvaj~l._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0391jsv._.js"].map(b=>a.l(b))).then(()=>b(818992)))},200442,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0dux7x.._.js"].map(b=>a.l(b))).then(()=>b(941750)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))}];
|
|
45
|
+
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"40e8327e313b39fc99571773ca1cac1217f978fc83",null),(0,b.registerServerReference)(j,"60e921b4290b893e15be9b596f68c0d8d5748450de",null),(0,b.registerServerReference)(m,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},859071,a=>{"use strict";a.i(666680);var b=a.i(902157),c=a.i(750227),d=a.i(319997);a.s(["ensureAssetsDir",0,function(a){let e=function(a){let b=c.join((0,d.getStorageDir)(),"assets",a);if(!b.startsWith((0,d.getStorageDir)()+c.sep))throw Error("Path traversal detected");return b}(a);return b.mkdirSync(e,{recursive:!0}),e}])},97397,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(902157),f=a.i(750227),g=a.i(75681),h=a.i(761469),i=a.i(188139),j=a.i(859071),k=a.i(980999),l=a.i(630048),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"40cea309f5ed4b3fed43f5d7068636d5b7abe8ce6d",null),(0,d.registerServerReference)(o,"409ee3a4936770685e5864c918fde77b58c82c8c49",null),(0,d.registerServerReference)(p,"4028050fca8d1cd079e697253d40f00308d04890b7",null),(0,d.registerServerReference)(q,"40dcff96f17130009ebcf1aa9207414d4e599ff823",null),(0,d.registerServerReference)(r,"40145dbdd25db4406325ab9954740bfdbd3ac3f44c",null),(0,d.registerServerReference)(s,"402a900d665c83ee0101923eeccf19b2ac388a33f0",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),835032,a=>{"use strict";async function b(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b.id),await a.$executeRawUnsafe("INSERT INTO notes_fts(note_id, title, content) VALUES (?, ?, ?)",b.id,b.title,b.content)}async function c(a,b){await a.$executeRawUnsafe("DELETE FROM notes_fts WHERE note_id = ?",b)}a.s(["deleteNoteFromFts",0,c,"syncNoteToFts",0,b])},392164,a=>{"use strict";var b=a.i(815429),c=a.i(75681),d=a.i(761469),e=a.i(188139),f=a.i(835032),g=a.i(630048);let h=c.z.object({title:c.z.string().min(1).max(200),content:c.z.string(),category:c.z.string().max(50).optional(),projectId:c.z.string().min(1),taskId:c.z.string().optional()}),i=c.z.object({title:c.z.string().min(1).max(200).optional(),content:c.z.string().optional(),category:c.z.string().max(50).optional()});async function j(a){let b=h.parse(a),c=await d.db.projectNote.create({data:{title:b.title,content:b.content,category:b.category??"备忘",projectId:b.projectId,taskId:b.taskId??null}});return await (0,f.syncNoteToFts)(d.db,{id:c.id,title:c.title,content:c.content}),(0,e.revalidatePath)("/workspace"),c}async function k(a,b){let c=i.parse(b),g=await d.db.projectNote.update({where:{id:a},data:c});return await (0,f.syncNoteToFts)(d.db,{id:g.id,title:g.title,content:g.content}),(0,e.revalidatePath)("/workspace"),g}async function l(a){await (0,f.deleteNoteFromFts)(d.db,a),await d.db.projectNote.delete({where:{id:a}}),(0,e.revalidatePath)("/workspace")}async function m(a){return d.db.projectNote.findUnique({where:{id:a}})}async function n(a,b){return d.db.projectNote.findMany({where:{projectId:a,...b?.category?{category:b.category}:{}},orderBy:[{updatedAt:"desc"},{id:"desc"}],include:{task:{select:{id:!0,title:!0}}}})}async function o(a){return d.db.projectNote.findMany({where:{taskId:a},orderBy:[{updatedAt:"desc"},{id:"desc"}]})}(0,g.ensureServerEntryExports)([j,k,l,m,n,o]),(0,b.registerServerReference)(j,"40a70edd3393a6e943c12efd99d936dd8480766f7c",null),(0,b.registerServerReference)(k,"6054880192c3edbaeac4f53e527cb974cfab8f1f32",null),(0,b.registerServerReference)(l,"40e17f6b7a150ef1f3538cd387c986871bcf686761",null),(0,b.registerServerReference)(m,"40f07fbef80cf389d45273d0504259f036e29c2c8b",null),(0,b.registerServerReference)(n,"608f95689eae64ccef8d597748a553d906c9689285",null),(0,b.registerServerReference)(o,"407b25dcf594d8f7c2bd8bfe60d61dd2f45c2495a3",null),a.s(["createNote",0,j,"deleteNote",0,l,"getNoteById",0,m,"getProjectNotes",0,n,"getTaskNotes",0,o,"updateNote",0,k])},196195,a=>{"use strict";var b=a.i(815429),c=a.i(233405),d=a.i(814747),e=a.i(446786);function f(a){return a.startsWith("~/")||"~"===a?d.default.join(e.default.homedir(),a.slice(1)):a}async function g(a){if(!a?.trim())return null;let b=d.default.resolve(f(a));try{return(0,c.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:b,encoding:"utf-8",timeout:5e3}).trim()}catch{return null}}async function h(a){if(!a?.trim())return[];let b=d.default.resolve(f(a));try{let a,d;return a=new Set((0,c.execSync)("git branch --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,""))),d=(0,c.execSync)("git branch -r --format='%(refname:short)'",{cwd:b,encoding:"utf-8",timeout:5e3}).trim().split("\n").filter(Boolean).map(a=>a.replace(/'/g,"").replace(/^origin\//,"")).filter(b=>"HEAD"!==b&&!a.has(b)),[...a,...d]}catch{return[]}}async function i(a){if(!a?.trim())return;let b=d.default.resolve(f(a));try{(0,c.spawn)("git",["fetch","--prune"],{cwd:b,stdio:"ignore",detached:!0}).unref()}catch{}}(0,a.i(630048).ensureServerEntryExports)([g,h,i]),(0,b.registerServerReference)(g,"40d983089d134142cd86ebd81bff685b6e80e6d9a5",null),(0,b.registerServerReference)(h,"40089d4052e961b88ce9db260f019e2ebf89ebeedb",null),(0,b.registerServerReference)(i,"4092134b47c02eb51ba3858c22029dc33c3aa49084",null),a.s(["fetchRemoteBranches",0,i,"getCurrentBranch",0,g,"getProjectBranches",0,h])},181207,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(392164);var f=a.i(689171),g=a.i(97397);a.i(536960),a.i(196195);var h=b([d,e,f,g]);[d,e,f,g]=h.then?(await h)():h,a.s([]),c()}catch(a){c(a)}},!1),593804,a=>a.a(async(b,c)=>{try{var d=a.i(181207),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(392164),m=a.i(689171),n=a.i(97397),o=a.i(536960),p=a.i(196195),q=b([d,g,h,m,n]);[d,g,h,m,n]=q.then?(await q)():q,a.s(["0020d458849af3dea02c06547ca93681820093cd60",()=>j.listAllExtensionStatus,"0021e29b21b5a7e177a13d6e1538a0b571700bd450",()=>e.getWorkspacesWithActiveTasks,"0048acb48e87365a574f41ec11bf19383acd938037",()=>e.getWorkspacesWithProjects,"008ca26582a6bc86f8a81485dafd39264601108780",()=>h.getActualWsPort,"00cbd31136fc6774db005529c98fc11975e67706fc",()=>k.getOnboardingStatus,"4002d954765b9e56566e449fc3bc78e4fb03be7b35",()=>k.dispatchTaskCompletionEvent,"4004282668f38cbee8857d302368731b5ab318a755",()=>j.installExtension,"40089d4052e961b88ce9db260f019e2ebf89ebeedb",()=>p.getProjectBranches,"40118872f3d23c38466036d1df507ff3b1a2f96ba8",()=>o.openInTerminal,"401a552a24f8644baa876aacdcf5eba7d28ab5cc3a",()=>e.createProject,"40240a5845f1968bde6e8e0e74ac4a2e123226c978",()=>h.resolveGitLocalPathWithSource,"40258a8e00132031ac74bd65aa5e34e1524e4dbf95",()=>e.getProjectByLocalPath,"402bbc93aabd476c75ea98b62565514688b910719d",()=>f.deleteLabel,"4045a4e8dc6e5750aaa5486feb11ec8f39f84f79cc",()=>e.reorderWorkspaces,"4049e0ef7ccd78445d833ed4f81e1914612c618a1a",()=>k.setOnboardingProgress,"4054b75c148f6c4fd80843f786e74e0da8e3622d60",()=>e.getOrCreateTowerTaskId,"406164d0875801f4fc8d154f2a576627f6f47d6cc5",()=>m.createTask,"40678a2b403c111cdd409176df5bba928e0f63a5b4",()=>f.getLabelsForWorkspace,"4071f8336f22edfe28929da6c8ff0f4029617d3711",()=>j.checkExtension,"407b25dcf594d8f7c2bd8bfe60d61dd2f45c2495a3",()=>l.getTaskNotes,"407fab8fa8b7793fb8f25a418f04559876792ca21c",()=>f.createLabel,"40887b42fd63bf331153abc27703393fbce3ca35b4",()=>o.openInEditor,"4092134b47c02eb51ba3858c22029dc33c3aa49084",()=>p.fetchRemoteBranches,"40a3c6df81ffdfc61bfe62695cc844afa21f21a1ac",()=>j.uninstallExtension,"40a70edd3393a6e943c12efd99d936dd8480766f7c",()=>l.createNote,"40ad300af169f346845aebd8b53af22da0aa31982c",()=>e.getWorkspaceById,"40b0a7436022990255822bd0a66b4fbb3eed825bfe",()=>h.resolveGitLocalPath,"40b7eec0bb0bcd1c9c8f305cb7f9cb2aa9d17c5331",()=>h.getConfigValues,"40c028aa754fb395b011ca98a0d8998d941ba9b275",()=>e.createWorkspace,"40c2837c54ab133af8f3d05570e9671852fb7debfb",()=>m.getTaskOverview,"40d355190aa13f7b29eb4ae960d07d3f17efbc9494",()=>o.openInFileManager,"40d983089d134142cd86ebd81bff685b6e80e6d9a5",()=>p.getCurrentBranch,"40dcff96f17130009ebcf1aa9207414d4e599ff823",()=>n.getTaskAssets,"40e17f6b7a150ef1f3538cd387c986871bcf686761",()=>l.deleteNote,"40e251b39cb8f280e32c2734ca8244fc03b60d94ba",()=>e.getWorkspacesWithRecentTasks,"40e8327e313b39fc99571773ca1cac1217f978fc83",()=>i.checkMigrationSafety,"40e9e4643eae5f742132fff6c126cd641da7345a95",()=>e.deleteWorkspace,"40ebfe2e4d860bd1f880950a57713cfba603ebe8cb",()=>e.getRecentLocalProjects,"40f07fbef80cf389d45273d0504259f036e29c2c8b",()=>l.getNoteById,"40f16c9bf878ed8da769bf0b0f991bce6a98c60409",()=>e.deleteProject,"600a7b6234db631cbc3d0f9a4263a6d0a9dba6455a",()=>e.updateWorkspace,"602f249ffd4feeacc003965c2280a0f6818774621f",()=>h.getConfigValue,"603ff195358b719fe71041bada759b1541862c7e83",()=>h.setConfigValue,"6051197133a60d5756beb41200c1dbffb7f56bea66",()=>g.globalSearch,"6054880192c3edbaeac4f53e527cb974cfab8f1f32",()=>l.updateNote,"6076596bd293cdd855f89742a00cf37915e785323c",()=>k.completeOnboarding,"608aac1637b86613ba60424496283123c9a2a5de0b",()=>e.updateProject,"608f95689eae64ccef8d597748a553d906c9689285",()=>l.getProjectNotes,"60989c7084fe6a3648aaebdf6450e4d69d1b62e7f2",()=>k.setOnboardingExtensions,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",()=>i.analyzeProjectDirectory,"60e921b4290b893e15be9b596f68c0d8d5748450de",()=>i.migrateProjectPath]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0fu5szn._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(a=>Promise.resolve().then(()=>a(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0pvaj~l._.js"].map(b=>a.l(b))).then(()=>b(897667)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},662330,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0391jsv._.js"].map(b=>a.l(b))).then(()=>b(818992)))},200442,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0dux7x.._.js"].map(b=>a.l(b))).then(()=>b(941750)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},173855,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js"].map(b=>a.l(b))).then(()=>b(289288)))},889618,a=>{a.v(a=>Promise.resolve().then(()=>a(163812)))},482848,a=>{a.v(a=>Promise.resolve().then(()=>a(874533)))}];
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=%5Broot-of-the-server%5D__12w35bx._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[757061,453943,a=>{"use strict";var b=a.i(728778),c=a.i(432949),d=a.i(368114),e=a.i(699570),f=a.i(14906);function g({...a}){return(0,b.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function h({className:a,...e}){return(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,d.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...e})}a.s(["Sheet",0,function({...a}){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"sheet",...a})},"SheetContent",0,function({className:a,children:i,side:j="right",showCloseButton:k=!0,...l}){return(0,b.jsxs)(g,{children:[(0,b.jsx)(h,{}),(0,b.jsxs)(c.Dialog.Popup,{"data-slot":"sheet-content","data-side":j,className:(0,d.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...l,children:[i,k&&(0,b.jsxs)(c.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(e.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,b.jsx)(f.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,d.cn)("text-sm text-muted-foreground",a),...e})},"SheetHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,d.cn)("flex flex-col gap-0.5 p-4",a),...c})},"SheetTitle",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,d.cn)("font-heading text-base font-medium text-foreground",a),...e})}],757061);var i=a.i(780410);let j=(0,i.createServerReference)("401a3952549e1a40afe2c46b45a5d77fd877093d83",i.callServer,void 0,i.findSourceMapURL,"getTaskOverview");a.s(["getTaskOverview",0,j],453943)},157551,a=>{"use strict";let b=(0,a.i(711796).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);a.s(["Calendar",0,b],157551)},972420,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(757061),e=a.i(269876),f=a.i(786304),g=a.i(699570),h=a.i(951192),i=a.i(811798),j=a.i(453943),k=a.i(105646),l=a.i(4914),m=a.i(264237),n=a.i(207040),o=a.i(468855),p=a.i(788086),q=a.i(445798),r=a.i(510650),s=a.i(532615),t=a.i(894148),u=a.i(161181),v=a.i(521007),w=a.i(157551),x=a.i(22761),y=a.i(264589),z=a.i(165614),A=a.i(625892),B=a.i(939859),C=a.i(648512),D=a.i(350739),E=a.i(509405),F=a.i(87339),G=a.i(347165);function H({added:a,removed:c}){let{t:d}=(0,h.useI18n)();return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-gray-500",children:[(0,b.jsx)("span",{children:d("diff.filesChanged",{count:String(a+c)})}),a>0&&(0,b.jsxs)("span",{className:"text-green-500",children:["+",a]}),c>0&&(0,b.jsxs)("span",{className:"text-red-500",children:["-",c]})]})}var I=a.i(551578),J=a.i(952313);let K=/\.(txt|md|json)$/i;function L({text:a}){let{t:d}=(0,h.useI18n)(),[e,f]=(0,c.useState)(!1),[g,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=j.current;a&&i(a.scrollHeight>a.clientHeight+1)},[]),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{ref:j,className:`text-sm text-foreground whitespace-pre-wrap ${e?"":"line-clamp-5"}`,children:a}),g&&(0,b.jsx)("button",{type:"button",onClick:()=>f(a=>!a),className:"mt-1 text-xs font-medium text-sky-600 hover:underline dark:text-sky-400",children:d(e?"taskDrawer.collapseDescription":"taskDrawer.expandDescription")})]})}a.s(["TaskOverviewDrawer",0,function({open:a,onOpenChange:M,taskId:N,hideEnvActions:O=!1}){let{t:P}=(0,h.useI18n)(),[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useTransition)(),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)([]),[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)(null),[aa,ab]=(0,c.useState)([]),[ac,ad]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!N||!a){R(null),Z([]),ab([]);return}(0,l.getTaskNotes)(N).then(a=>Z(a.map(a=>({id:a.id,title:a.title,content:a.content,category:a.category})))).catch(()=>Z([])),(0,m.getTaskAssets)(N).then(a=>ab(a.map(a=>({id:a.id,filename:a.filename,path:a.path,mimeType:a.mimeType,size:a.size})))).catch(()=>ab([])),T(async()=>{let a=await (0,j.getTaskOverview)(N);a&&(R(a),a.project?.workspaceId&&(0,k.getLabelsForWorkspace)(a.project.workspaceId).then(a=>{X(a.map(a=>({id:a.id,name:a.name,color:a.color,isBuiltin:a.isBuiltin})))}).catch(()=>X([])))})},[N,a]);let ae=Q?v.BOARD_COLUMNS.find(a=>a.id===Q.status):null,af=Q?v.PRIORITY_CONFIG[Q.priority]:null,ag=Q?.executions?.[0]??null,ah=(()=>{if(ag?.worktreePath)return ag.worktreePath;let a=Q?.project?.localPath;return a?Q?.subPath?`${a}/${Q.subPath}`:a:null})(),ai=(()=>{let a=ag?.gitStats;if(!a)return null;try{let b=JSON.parse(a);return{added:b.insertions??0,removed:b.deletions??0}}catch{return null}})(),aj=a=>(0,u.isImageAsset)(a.filename,a.mimeType)||K.test(a.filename),ak=a=>{aj(a)?ad(a):J.toast.info(P("assets.previewNotSupported"))},al=async a=>{try{let b=await fetch("/api/internal/assets/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a.path})});if(!b.ok){let a=await b.json().catch(()=>({}));J.toast.error(a.error||P("git.openInFileManagerFailed"))}}catch{J.toast.error(P("git.openInFileManagerFailed"))}},am=ac?(0,u.isImageAsset)(ac.filename,ac.mimeType)?"image":K.test(ac.filename)?"text":null:null,an=aa.filter(a=>(0,u.isImageAsset)(a.filename,a.mimeType)).map(a=>({id:a.id,url:(0,u.localPathToApiUrl)(a.path),filename:a.filename})),ao=ac?an.findIndex(a=>a.id===ac.id):-1,ap=async a=>{if(Q?.project)try{let{autoStart:b,...c}=a;await (0,i.createTask)({...c,projectId:Q.project.id}),J.toast.success(P("taskDrawer.duplicateSuccess")),V(!1),M(!1)}catch{J.toast.error(P("taskDrawer.duplicateFailed"))}};return(0,b.jsxs)(d.Sheet,{open:a,onOpenChange:M,children:[(0,b.jsxs)(d.SheetContent,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,b.jsxs)(d.SheetHeader,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,b.jsx)(d.SheetTitle,{className:"text-base font-semibold leading-tight pr-8",children:Q?.title??""}),(0,b.jsx)(d.SheetDescription,{className:"sr-only",children:P("taskDrawer.title")}),Q&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[ae&&(0,b.jsxs)(f.Badge,{variant:"secondary",className:"text-xs",children:[(0,b.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${ae.color}`}),ae.label]}),af&&(0,b.jsx)(f.Badge,{variant:"secondary",className:`text-xs ${af.color}`,children:af.label}),Q.version&&(0,b.jsx)(I.TaskVersionTag,{number:Q.version.number,name:Q.version.name,showName:!0})]})]}),(0,b.jsx)(e.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:S&&!Q?(0,b.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:P("assets.loading")}):Q?(0,b.jsxs)("div",{className:"p-4 pb-8 space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:P("taskDrawer.description")}),Q.description?(0,b.jsx)(L,{text:Q.description},Q.id):(0,b.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:P("taskDrawer.noDescription")})]}),Q.labels.length>0&&(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:P("taskDrawer.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:Q.labels.map(a=>(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,borderColor:`${a.label.color}40`},children:a.label.name},a.label.id))})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(w.Calendar,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:P("taskDrawer.createdAt")}),(0,b.jsx)("span",{className:"text-foreground",children:new Date(Q.createdAt).toLocaleDateString()})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(y.Package,{className:"h-3.5 w-3.5"}),P("taskDrawer.resources"),(0,b.jsx)("span",{className:"text-foreground",children:Q._count.assets})]}),aa.length>0?(0,b.jsx)("div",{className:"space-y-1.5",children:aa.map(a=>{var c;let d=aj(a);return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border px-2 py-1.5",children:[(0,b.jsx)(F.Paperclip,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("button",{type:"button",onClick:()=>ak(a),disabled:!d,className:`min-w-0 flex-1 truncate text-left text-sm ${d?"cursor-pointer hover:underline":"cursor-default"}`,title:d?P("assets.preview"):a.filename,children:a.filename}),(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(c=a.size)?c<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1024/1024).toFixed(1)} MB`:""}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5",children:[d&&(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>ak(a),className:"shrink-0 text-muted-foreground hover:bg-accent",title:P("assets.preview"),children:(0,b.jsx)(E.Eye,{className:"h-3 w-3"})}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>al(a),className:"shrink-0 text-muted-foreground hover:bg-accent",title:P("assets.revealInFinder"),children:(0,b.jsx)(G.FolderOpen,{className:"h-3 w-3"})})]})]},a.id)})}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noResources")})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(D.FileText,{className:"h-3.5 w-3.5"}),P("taskDrawer.notes")]}),Y.length>0?(0,b.jsx)("div",{className:"space-y-1.5",children:Y.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>_(a),className:"group/note flex w-full items-start gap-2 rounded-md border border-border p-2 text-left transition-colors hover:bg-accent/40",title:P("taskDrawer.previewNote"),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium",children:a.title}),a.content&&(0,b.jsx)("p",{className:"mt-0.5 line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:a.content})]}),(0,b.jsx)(E.Eye,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover/note:opacity-100"})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noNotes")})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:P("taskDrawer.fileChanges")}),ai?(0,b.jsx)(H,{added:ai.added,removed:ai.removed}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noFileChanges")})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(z.PlayCircle,{className:"h-3.5 w-3.5"}),P("taskDrawer.lastExecution")]}),ag?(0,b.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:ag.status}),ag.summary&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:ag.summary.slice(0,200)})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noExecution")})]}),ah&&!O&&(0,b.jsxs)("section",{className:"flex flex-col",children:[(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,n.openInFileManager)(ah)}catch(a){console.error("openInFileManager failed:",a),J.toast.error(P("git.openInFileManagerFailed"))}},children:[(0,b.jsx)(A.FolderSearch,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInFileManager")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,o.openInEditor)(ah)}catch(a){console.error("openInEditor failed:",a),J.toast.error(P("git.openInEditorFailed"))}},children:[(0,b.jsx)(B.Code,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInEditor")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,p.openInTerminal)(ah)}catch(a){console.error("openInTerminal failed:",a),J.toast.error(P("git.openInTerminalFailed"))}},children:[(0,b.jsx)(C.Terminal,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInTerminal")]})]}),(0,b.jsx)("section",{children:(0,b.jsxs)(g.Button,{variant:"default",className:"w-full",onClick:()=>{Q&&V(!0)},disabled:!Q,children:[(0,b.jsx)(x.Copy,{className:"h-4 w-4"}),P("taskDrawer.duplicate")]})})]}):null})]}),Q?.project&&(0,b.jsx)(q.CreateTaskDialog,{open:U,onOpenChange:V,onSubmit:ap,labels:W,projectType:Q.project.type,projectLocalPath:Q.project.localPath,prefillFromTask:{title:Q.title,description:Q.description,priority:Q.priority,subPath:Q.subPath,labelIds:Q.labels.map(a=>a.label.id),baseBranch:Q.baseBranch}}),(0,b.jsx)(r.NotePreviewDialog,{note:$,open:null!==$,onOpenChange:a=>{a||_(null)}}),(0,b.jsx)(s.ImageLightbox,{imageUrl:"image"===am&&ao>=0?an[ao].url:null,filename:"image"===am&&ao>=0?an[ao].filename:"",open:"image"===am,onOpenChange:a=>{a||ad(null)},assets:an.map(({url:a,filename:b})=>({url:a,filename:b})),currentIndex:ao>=0?ao:void 0,onIndexChange:a=>{let b=an[a];if(!b)return;let c=aa.find(a=>a.id===b.id);c&&ad(c)}}),(0,b.jsx)(t.TextPreviewDialog,{url:"text"===am&&ac?(0,u.localPathToApiUrl)(ac.path):null,filename:ac?.filename??"",open:"text"===am,onOpenChange:a=>{a||ad(null)}})]})}],972420)}];
|
|
1
|
+
module.exports=[757061,292939,a=>{"use strict";var b=a.i(728778),c=a.i(432949),d=a.i(368114),e=a.i(699570),f=a.i(14906);function g({...a}){return(0,b.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function h({className:a,...e}){return(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,d.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...e})}a.s(["Sheet",0,function({...a}){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"sheet",...a})},"SheetContent",0,function({className:a,children:i,side:j="right",showCloseButton:k=!0,...l}){return(0,b.jsxs)(g,{children:[(0,b.jsx)(h,{}),(0,b.jsxs)(c.Dialog.Popup,{"data-slot":"sheet-content","data-side":j,className:(0,d.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...l,children:[i,k&&(0,b.jsxs)(c.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(e.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,b.jsx)(f.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"SheetDescription",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,d.cn)("text-sm text-muted-foreground",a),...e})},"SheetHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,d.cn)("flex flex-col gap-0.5 p-4",a),...c})},"SheetTitle",0,function({className:a,...e}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,d.cn)("font-heading text-base font-medium text-foreground",a),...e})}],757061);var i=a.i(780410);let j=(0,i.createServerReference)("40c2837c54ab133af8f3d05570e9671852fb7debfb",i.callServer,void 0,i.findSourceMapURL,"getTaskOverview");a.s(["getTaskOverview",0,j],292939)},157551,a=>{"use strict";let b=(0,a.i(711796).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);a.s(["Calendar",0,b],157551)},972420,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(757061),e=a.i(269876),f=a.i(786304),g=a.i(699570),h=a.i(951192),i=a.i(374531),j=a.i(292939),k=a.i(773696),l=a.i(226758),m=a.i(958726),n=a.i(231780),o=a.i(441143),p=a.i(123248),q=a.i(445798),r=a.i(510650),s=a.i(532615),t=a.i(894148),u=a.i(161181),v=a.i(521007),w=a.i(157551),x=a.i(22761),y=a.i(264589),z=a.i(165614),A=a.i(625892),B=a.i(939859),C=a.i(648512),D=a.i(350739),E=a.i(509405),F=a.i(87339),G=a.i(347165);function H({added:a,removed:c}){let{t:d}=(0,h.useI18n)();return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-gray-500",children:[(0,b.jsx)("span",{children:d("diff.filesChanged",{count:String(a+c)})}),a>0&&(0,b.jsxs)("span",{className:"text-green-500",children:["+",a]}),c>0&&(0,b.jsxs)("span",{className:"text-red-500",children:["-",c]})]})}var I=a.i(551578),J=a.i(952313);let K=/\.(txt|md|json)$/i;function L({text:a}){let{t:d}=(0,h.useI18n)(),[e,f]=(0,c.useState)(!1),[g,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=j.current;a&&i(a.scrollHeight>a.clientHeight+1)},[]),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{ref:j,className:`text-sm text-foreground whitespace-pre-wrap ${e?"":"line-clamp-5"}`,children:a}),g&&(0,b.jsx)("button",{type:"button",onClick:()=>f(a=>!a),className:"mt-1 text-xs font-medium text-sky-600 hover:underline dark:text-sky-400",children:d(e?"taskDrawer.collapseDescription":"taskDrawer.expandDescription")})]})}a.s(["TaskOverviewDrawer",0,function({open:a,onOpenChange:M,taskId:N,hideEnvActions:O=!1}){let{t:P}=(0,h.useI18n)(),[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useTransition)(),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)([]),[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)(null),[aa,ab]=(0,c.useState)([]),[ac,ad]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!N||!a){R(null),Z([]),ab([]);return}(0,l.getTaskNotes)(N).then(a=>Z(a.map(a=>({id:a.id,title:a.title,content:a.content,category:a.category})))).catch(()=>Z([])),(0,m.getTaskAssets)(N).then(a=>ab(a.map(a=>({id:a.id,filename:a.filename,path:a.path,mimeType:a.mimeType,size:a.size})))).catch(()=>ab([])),T(async()=>{let a=await (0,j.getTaskOverview)(N);a&&(R(a),a.project?.workspaceId&&(0,k.getLabelsForWorkspace)(a.project.workspaceId).then(a=>{X(a.map(a=>({id:a.id,name:a.name,color:a.color,isBuiltin:a.isBuiltin})))}).catch(()=>X([])))})},[N,a]);let ae=Q?v.BOARD_COLUMNS.find(a=>a.id===Q.status):null,af=Q?v.PRIORITY_CONFIG[Q.priority]:null,ag=Q?.executions?.[0]??null,ah=(()=>{if(ag?.worktreePath)return ag.worktreePath;let a=Q?.project?.localPath;return a?Q?.subPath?`${a}/${Q.subPath}`:a:null})(),ai=(()=>{let a=ag?.gitStats;if(!a)return null;try{let b=JSON.parse(a);return{added:b.insertions??0,removed:b.deletions??0}}catch{return null}})(),aj=a=>(0,u.isImageAsset)(a.filename,a.mimeType)||K.test(a.filename),ak=a=>{aj(a)?ad(a):J.toast.info(P("assets.previewNotSupported"))},al=async a=>{try{let b=await fetch("/api/internal/assets/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a.path})});if(!b.ok){let a=await b.json().catch(()=>({}));J.toast.error(a.error||P("git.openInFileManagerFailed"))}}catch{J.toast.error(P("git.openInFileManagerFailed"))}},am=ac?(0,u.isImageAsset)(ac.filename,ac.mimeType)?"image":K.test(ac.filename)?"text":null:null,an=aa.filter(a=>(0,u.isImageAsset)(a.filename,a.mimeType)).map(a=>({id:a.id,url:(0,u.localPathToApiUrl)(a.path),filename:a.filename})),ao=ac?an.findIndex(a=>a.id===ac.id):-1,ap=async a=>{if(Q?.project)try{let{autoStart:b,...c}=a;await (0,i.createTask)({...c,projectId:Q.project.id}),J.toast.success(P("taskDrawer.duplicateSuccess")),V(!1),M(!1)}catch{J.toast.error(P("taskDrawer.duplicateFailed"))}};return(0,b.jsxs)(d.Sheet,{open:a,onOpenChange:M,children:[(0,b.jsxs)(d.SheetContent,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,b.jsxs)(d.SheetHeader,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,b.jsx)(d.SheetTitle,{className:"text-base font-semibold leading-tight pr-8",children:Q?.title??""}),(0,b.jsx)(d.SheetDescription,{className:"sr-only",children:P("taskDrawer.title")}),Q&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[ae&&(0,b.jsxs)(f.Badge,{variant:"secondary",className:"text-xs",children:[(0,b.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${ae.color}`}),ae.label]}),af&&(0,b.jsx)(f.Badge,{variant:"secondary",className:`text-xs ${af.color}`,children:af.label}),Q.version&&(0,b.jsx)(I.TaskVersionTag,{number:Q.version.number,name:Q.version.name,showName:!0})]})]}),(0,b.jsx)(e.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:S&&!Q?(0,b.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:P("assets.loading")}):Q?(0,b.jsxs)("div",{className:"p-4 pb-8 space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:P("taskDrawer.description")}),Q.description?(0,b.jsx)(L,{text:Q.description},Q.id):(0,b.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:P("taskDrawer.noDescription")})]}),Q.labels.length>0&&(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:P("taskDrawer.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:Q.labels.map(a=>(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,borderColor:`${a.label.color}40`},children:a.label.name},a.label.id))})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(w.Calendar,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:P("taskDrawer.createdAt")}),(0,b.jsx)("span",{className:"text-foreground",children:new Date(Q.createdAt).toLocaleDateString()})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(y.Package,{className:"h-3.5 w-3.5"}),P("taskDrawer.resources"),(0,b.jsx)("span",{className:"text-foreground",children:Q._count.assets})]}),aa.length>0?(0,b.jsx)("div",{className:"space-y-1.5",children:aa.map(a=>{var c;let d=aj(a);return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border px-2 py-1.5",children:[(0,b.jsx)(F.Paperclip,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("button",{type:"button",onClick:()=>ak(a),disabled:!d,className:`min-w-0 flex-1 truncate text-left text-sm ${d?"cursor-pointer hover:underline":"cursor-default"}`,title:d?P("assets.preview"):a.filename,children:a.filename}),(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(c=a.size)?c<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1024/1024).toFixed(1)} MB`:""}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5",children:[d&&(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>ak(a),className:"shrink-0 text-muted-foreground hover:bg-accent",title:P("assets.preview"),children:(0,b.jsx)(E.Eye,{className:"h-3 w-3"})}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-xs",onClick:()=>al(a),className:"shrink-0 text-muted-foreground hover:bg-accent",title:P("assets.revealInFinder"),children:(0,b.jsx)(G.FolderOpen,{className:"h-3 w-3"})})]})]},a.id)})}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noResources")})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(D.FileText,{className:"h-3.5 w-3.5"}),P("taskDrawer.notes")]}),Y.length>0?(0,b.jsx)("div",{className:"space-y-1.5",children:Y.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>_(a),className:"group/note flex w-full items-start gap-2 rounded-md border border-border p-2 text-left transition-colors hover:bg-accent/40",title:P("taskDrawer.previewNote"),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium",children:a.title}),a.content&&(0,b.jsx)("p",{className:"mt-0.5 line-clamp-2 whitespace-pre-wrap text-xs text-muted-foreground",children:a.content})]}),(0,b.jsx)(E.Eye,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover/note:opacity-100"})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noNotes")})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:P("taskDrawer.fileChanges")}),ai?(0,b.jsx)(H,{added:ai.added,removed:ai.removed}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noFileChanges")})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(z.PlayCircle,{className:"h-3.5 w-3.5"}),P("taskDrawer.lastExecution")]}),ag?(0,b.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,b.jsx)(f.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:ag.status}),ag.summary&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:ag.summary.slice(0,200)})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:P("taskDrawer.noExecution")})]}),ah&&!O&&(0,b.jsxs)("section",{className:"flex flex-col",children:[(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,n.openInFileManager)(ah)}catch(a){console.error("openInFileManager failed:",a),J.toast.error(P("git.openInFileManagerFailed"))}},children:[(0,b.jsx)(A.FolderSearch,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInFileManager")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,o.openInEditor)(ah)}catch(a){console.error("openInEditor failed:",a),J.toast.error(P("git.openInEditorFailed"))}},children:[(0,b.jsx)(B.Code,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInEditor")]}),(0,b.jsxs)(g.Button,{variant:"ghost",className:"w-full h-8 justify-start gap-2 px-2 text-xs text-muted-foreground",onClick:async()=>{try{await (0,p.openInTerminal)(ah)}catch(a){console.error("openInTerminal failed:",a),J.toast.error(P("git.openInTerminalFailed"))}},children:[(0,b.jsx)(C.Terminal,{className:"h-3.5 w-3.5 shrink-0"}),P("git.openInTerminal")]})]}),(0,b.jsx)("section",{children:(0,b.jsxs)(g.Button,{variant:"default",className:"w-full",onClick:()=>{Q&&V(!0)},disabled:!Q,children:[(0,b.jsx)(x.Copy,{className:"h-4 w-4"}),P("taskDrawer.duplicate")]})})]}):null})]}),Q?.project&&(0,b.jsx)(q.CreateTaskDialog,{open:U,onOpenChange:V,onSubmit:ap,labels:W,projectType:Q.project.type,projectLocalPath:Q.project.localPath,prefillFromTask:{title:Q.title,description:Q.description,priority:Q.priority,subPath:Q.subPath,labelIds:Q.labels.map(a=>a.label.id),baseBranch:Q.baseBranch}}),(0,b.jsx)(r.NotePreviewDialog,{note:$,open:null!==$,onOpenChange:a=>{a||_(null)}}),(0,b.jsx)(s.ImageLightbox,{imageUrl:"image"===am&&ao>=0?an[ao].url:null,filename:"image"===am&&ao>=0?an[ao].filename:"",open:"image"===am,onOpenChange:a=>{a||ad(null)},assets:an.map(({url:a,filename:b})=>({url:a,filename:b})),currentIndex:ao>=0?ao:void 0,onIndexChange:a=>{let b=an[a];if(!b)return;let c=aa.find(a=>a.id===b.id);c&&ad(c)}}),(0,b.jsx)(t.TextPreviewDialog,{url:"text"===am&&ac?(0,u.localPathToApiUrl)(ac.path):null,filename:ac?.filename??"",open:"text"===am,onOpenChange:a=>{a||ad(null)}})]})}],972420)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0-~9em3._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"
|
|
1
|
+
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40678a2b403c111cdd409176df5bba928e0f63a5b4",null),(0,b.registerServerReference)(g,"407fab8fa8b7793fb8f25a418f04559876792ca21c",null),(0,b.registerServerReference)(h,"402bbc93aabd476c75ea98b62565514688b910719d",null),(0,b.registerServerReference)(i,"6035dc364b0b931662d0d6fe73fb33918084cbf5f0",null),(0,b.registerServerReference)(j,"4028a1d511533e45afbd300ff59e95b5ae98c8b38a",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
2
|
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
3
|
FROM "ProjectNote" n
|
|
4
4
|
JOIN "Project" p ON p.id = n."projectId"
|
|
@@ -18,7 +18,7 @@ module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(18
|
|
|
18
18
|
JOIN "Project" p ON p.id = n."projectId"
|
|
19
19
|
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
20
|
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"
|
|
21
|
+
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"6051197133a60d5756beb41200c1dbffb7f56bea66",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
22
|
|
|
23
23
|
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
24
|
|
|
@@ -42,6 +42,6 @@ Requirements:
|
|
|
42
42
|
- Keep it under 1000 words
|
|
43
43
|
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
44
|
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"
|
|
45
|
+
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"40e8327e313b39fc99571773ca1cac1217f978fc83",null),(0,b.registerServerReference)(j,"60e921b4290b893e15be9b596f68c0d8d5748450de",null),(0,b.registerServerReference)(m,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},374306,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),811509,a=>a.a(async(b,c)=>{try{var d=a.i(374306),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=b([d,g,h]);[d,g,h]=l.then?(await l)():l,a.s(["0020d458849af3dea02c06547ca93681820093cd60",()=>j.listAllExtensionStatus,"008ca26582a6bc86f8a81485dafd39264601108780",()=>h.getActualWsPort,"00cbd31136fc6774db005529c98fc11975e67706fc",()=>k.getOnboardingStatus,"4002d954765b9e56566e449fc3bc78e4fb03be7b35",()=>k.dispatchTaskCompletionEvent,"4004282668f38cbee8857d302368731b5ab318a755",()=>j.installExtension,"401a552a24f8644baa876aacdcf5eba7d28ab5cc3a",()=>e.createProject,"40240a5845f1968bde6e8e0e74ac4a2e123226c978",()=>h.resolveGitLocalPathWithSource,"402bbc93aabd476c75ea98b62565514688b910719d",()=>f.deleteLabel,"4045a4e8dc6e5750aaa5486feb11ec8f39f84f79cc",()=>e.reorderWorkspaces,"4049e0ef7ccd78445d833ed4f81e1914612c618a1a",()=>k.setOnboardingProgress,"40678a2b403c111cdd409176df5bba928e0f63a5b4",()=>f.getLabelsForWorkspace,"4071f8336f22edfe28929da6c8ff0f4029617d3711",()=>j.checkExtension,"407fab8fa8b7793fb8f25a418f04559876792ca21c",()=>f.createLabel,"40a3c6df81ffdfc61bfe62695cc844afa21f21a1ac",()=>j.uninstallExtension,"40b0a7436022990255822bd0a66b4fbb3eed825bfe",()=>h.resolveGitLocalPath,"40b7eec0bb0bcd1c9c8f305cb7f9cb2aa9d17c5331",()=>h.getConfigValues,"40c028aa754fb395b011ca98a0d8998d941ba9b275",()=>e.createWorkspace,"40e8327e313b39fc99571773ca1cac1217f978fc83",()=>i.checkMigrationSafety,"40e9e4643eae5f742132fff6c126cd641da7345a95",()=>e.deleteWorkspace,"600a7b6234db631cbc3d0f9a4263a6d0a9dba6455a",()=>e.updateWorkspace,"602f249ffd4feeacc003965c2280a0f6818774621f",()=>h.getConfigValue,"603ff195358b719fe71041bada759b1541862c7e83",()=>h.setConfigValue,"6051197133a60d5756beb41200c1dbffb7f56bea66",()=>g.globalSearch,"6076596bd293cdd855f89742a00cf37915e785323c",()=>k.completeOnboarding,"60989c7084fe6a3648aaebdf6450e4d69d1b62e7f2",()=>k.setOnboardingExtensions,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",()=>i.analyzeProjectDirectory,"60e921b4290b893e15be9b596f68c0d8d5748450de",()=>i.migrateProjectPath]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0qdh-v4._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0ni-_7_._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=_03lt1_x._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"
|
|
1
|
+
module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(496877);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40678a2b403c111cdd409176df5bba928e0f63a5b4",null),(0,b.registerServerReference)(g,"407fab8fa8b7793fb8f25a418f04559876792ca21c",null),(0,b.registerServerReference)(h,"402bbc93aabd476c75ea98b62565514688b910719d",null),(0,b.registerServerReference)(i,"6035dc364b0b931662d0d6fe73fb33918084cbf5f0",null),(0,b.registerServerReference)(j,"4028a1d511533e45afbd300ff59e95b5ae98c8b38a",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},287068,a=>{"use strict";var b=a.i(761469);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>{let b="DONE"===a.status||"CANCELLED"===a.status,c=a.project.workspaceId;return{id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:b?`/workspaces/${c}/archive?projectId=${a.projectId}`:`/workspaces/${c}?projectId=${a.projectId}`}});if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
2
|
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
3
|
FROM "ProjectNote" n
|
|
4
4
|
JOIN "Project" p ON p.id = n."projectId"
|
|
@@ -18,7 +18,7 @@ module.exports=[495370,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(18
|
|
|
18
18
|
JOIN "Project" p ON p.id = n."projectId"
|
|
19
19
|
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
20
|
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"
|
|
21
|
+
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},396904,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(287068),f=a.i(980999),g=a.i(630048),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"6051197133a60d5756beb41200c1dbffb7f56bea66",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),101844,a=>{"use strict";var b=a.i(815429),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(761469),g=a.i(188139),h=a.i(630048);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(98813);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(98813);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=e.default.dirname(h);try{await (0,c.mkdir)(n,{recursive:!0})}catch(a){if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限创建父目录 ${n} — 请检查 Git 路径映射规则的模板是否漏了 "~/" 前缀`};if("EROFS"===a.code)return{success:!1,error:`父目录所在文件系统只读:${n}`};return{success:!1,error:`创建父目录失败:${a.message||a.code||"未知错误"}`}}try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${h}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
22
|
|
|
23
23
|
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
24
|
|
|
@@ -42,6 +42,6 @@ Requirements:
|
|
|
42
42
|
- Keep it under 1000 words
|
|
43
43
|
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
44
|
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"
|
|
45
|
+
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"40e8327e313b39fc99571773ca1cac1217f978fc83",null),(0,b.registerServerReference)(j,"60e921b4290b893e15be9b596f68c0d8d5748450de",null),(0,b.registerServerReference)(m,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])},42344,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),413773,a=>a.a(async(b,c)=>{try{var d=a.i(42344),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=b([d,g,h]);[d,g,h]=l.then?(await l)():l,a.s(["0020d458849af3dea02c06547ca93681820093cd60",()=>j.listAllExtensionStatus,"008ca26582a6bc86f8a81485dafd39264601108780",()=>h.getActualWsPort,"00cbd31136fc6774db005529c98fc11975e67706fc",()=>k.getOnboardingStatus,"4002d954765b9e56566e449fc3bc78e4fb03be7b35",()=>k.dispatchTaskCompletionEvent,"4004282668f38cbee8857d302368731b5ab318a755",()=>j.installExtension,"401a552a24f8644baa876aacdcf5eba7d28ab5cc3a",()=>e.createProject,"40240a5845f1968bde6e8e0e74ac4a2e123226c978",()=>h.resolveGitLocalPathWithSource,"402bbc93aabd476c75ea98b62565514688b910719d",()=>f.deleteLabel,"4045a4e8dc6e5750aaa5486feb11ec8f39f84f79cc",()=>e.reorderWorkspaces,"4049e0ef7ccd78445d833ed4f81e1914612c618a1a",()=>k.setOnboardingProgress,"40678a2b403c111cdd409176df5bba928e0f63a5b4",()=>f.getLabelsForWorkspace,"4071f8336f22edfe28929da6c8ff0f4029617d3711",()=>j.checkExtension,"407fab8fa8b7793fb8f25a418f04559876792ca21c",()=>f.createLabel,"40a3c6df81ffdfc61bfe62695cc844afa21f21a1ac",()=>j.uninstallExtension,"40b0a7436022990255822bd0a66b4fbb3eed825bfe",()=>h.resolveGitLocalPath,"40b7eec0bb0bcd1c9c8f305cb7f9cb2aa9d17c5331",()=>h.getConfigValues,"40c028aa754fb395b011ca98a0d8998d941ba9b275",()=>e.createWorkspace,"40e8327e313b39fc99571773ca1cac1217f978fc83",()=>i.checkMigrationSafety,"40e9e4643eae5f742132fff6c126cd641da7345a95",()=>e.deleteWorkspace,"600a7b6234db631cbc3d0f9a4263a6d0a9dba6455a",()=>e.updateWorkspace,"602f249ffd4feeacc003965c2280a0f6818774621f",()=>h.getConfigValue,"603ff195358b719fe71041bada759b1541862c7e83",()=>h.setConfigValue,"6051197133a60d5756beb41200c1dbffb7f56bea66",()=>g.globalSearch,"6076596bd293cdd855f89742a00cf37915e785323c",()=>k.completeOnboarding,"60989c7084fe6a3648aaebdf6450e4d69d1b62e7f2",()=>k.setOnboardingExtensions,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",()=>i.analyzeProjectDirectory,"60e921b4290b893e15be9b596f68c0d8d5748450de",()=>i.migrateProjectPath]),c()}catch(a){c(a)}},!1),76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0_9avpk._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(a=>Promise.resolve().then(()=>a(962620)))},507502,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_worktree_ts_06cucy3._.js"].map(b=>a.l(b))).then(()=>b(845427)))},752453,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__03fujv7._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=_04~zqvy._.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"00ea7101dd585f1c104d9e2aa7acca8c32e8fd8f54",null),(0,b.registerServerReference)(j,"60b3a61ea4b17d1a9685dcf2844f7d5af7a1226cc1",null),(0,b.registerServerReference)(k,"009e9c73dabe27469607224136537934b9407417e3",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.41",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/run-migrations.ts","scripts/migrations/","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish","release:ship":"bash scripts/release.sh",start:"node bin/tower.mjs",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts","db:migrate":"tsx scripts/run-migrations.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tinykeys:"^4.0.0",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
|
|
1
|
+
module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"00f858a5218e8e3a2e0c60ce41cf49a6e9a028e1e8",null),(0,b.registerServerReference)(j,"60c7b2bd039a4b1363ba710718b8b611115bbb95bf",null),(0,b.registerServerReference)(k,"00f669168ce1f897eb2fe810a0a9342dac00ed6046",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.42",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/run-migrations.ts","scripts/migrations/","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish","release:ship":"bash scripts/release.sh",start:"node bin/tower.mjs",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts","db:migrate":"tsx scripts/run-migrations.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tinykeys:"^4.0.0",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
|
|
2
2
|
CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts
|
|
3
3
|
USING fts5(note_id UNINDEXED, title, content, tokenize='trigram case_sensitive 0')
|
|
4
|
-
`);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"
|
|
4
|
+
`);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"409e19af345e57bfa405427b90dd7d5247ba344de9",null),(0,d.registerServerReference)(q,"00c5aa98cd7ecfe57d2a587c9369b3f37096641a87",null),(0,d.registerServerReference)(r,"40994375884acf58977f687f484052339cffe252c2",null),(0,d.registerServerReference)(s,"407e636625b31adf81533f78f7f325c8bc8dfb3496",null),(0,d.registerServerReference)(t,"401da388c168ac9cc648c2c7e32fbc451853901088",null),(0,d.registerServerReference)(u,"003d24888f6ca371f75d3ec3ecd7b450b578b69c64",null),(0,d.registerServerReference)(v,"408756c53bce7865e11cf2ad38da7c453230680ea0",null),a.s(["createBackup",0,p,"deleteBackupFile",0,r,"getBackupDir",0,u,"listBackupFiles",0,q,"resetSystem",0,t,"restoreBackup",0,s,"setBackupDir",0,v]),c()}catch(a){c(a)}},!1),415673,a=>{"use strict";var b=a.i(815429),c=a.i(902157),d=a.i(750227),e=a.i(75681),f=a.i(761469),g=a.i(319997),h=a.i(630048);async function i(){return{current:(0,g.getStorageDir)(),default:(0,g.getDefaultStorageDir)(),isDefault:null===(0,g.readStoragePointer)()}}let j=e.z.object({newPath:e.z.string().min(1)});async function k(a){let{newPath:b}=j.parse(a),e=d.resolve(b),h=d.resolve((0,g.getStorageDir)()),i=d.resolve((0,g.getDefaultStorageDir)());if(!d.isAbsolute(e))return{ok:!1,error:"请输入绝对路径"};if(e===h)return{ok:!0,moved:0};if(e.startsWith(h+d.sep)||h.startsWith(e+d.sep))return{ok:!1,error:"新路径不能是当前存储目录的父级或子级"};if(c.existsSync(e)){if(!c.statSync(e).isDirectory())return{ok:!1,error:"目标路径已存在且不是目录"};if(c.readdirSync(e).length>0)return{ok:!1,error:"目标目录非空,请选择一个空目录或新目录"}}let k=d.dirname(e);try{c.mkdirSync(e,{recursive:!0}),c.accessSync(e,c.constants.W_OK)}catch{return{ok:!1,error:`无法写入目标目录(检查权限):${k}`}}try{c.existsSync(h)&&(c.cpSync(h,e,{recursive:!0}),c.rmSync(h,{recursive:!0,force:!0}))}catch(a){return{ok:!1,error:`迁移文件失败:${a instanceof Error?a.message:String(a)}`}}let l=0,m=h+d.sep;for(let a of(await f.db.projectAsset.findMany({select:{id:!0,path:!0}})))if(a.path.startsWith(m)){let b=d.join(e,a.path.slice(h.length+1));await f.db.projectAsset.update({where:{id:a.id},data:{path:b}}),l+=1}return(0,g.writeStoragePointer)(e===i?null:e),{ok:!0,moved:l}}(0,h.ensureServerEntryExports)([i,k]),(0,b.registerServerReference)(i,"0005463824fcdbaaae14fbed6bae4511fd40e34818",null),(0,b.registerServerReference)(k,"409f230fcc7698edd512e9f725f139ace2d667ca76",null),a.s(["getStorageLocation",0,i,"setStorageLocation",0,k])},520288,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(925886),a.i(487373);var f=a.i(537944);a.i(415673);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),857434,a=>a.a(async(b,c)=>{try{var d=a.i(520288),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(925886),m=a.i(487373),n=a.i(537944),o=a.i(415673),p=b([d,g,h,n]);[d,g,h,n]=p.then?(await p)():p,a.s(["0005463824fcdbaaae14fbed6bae4511fd40e34818",()=>o.getStorageLocation,"0020d458849af3dea02c06547ca93681820093cd60",()=>j.listAllExtensionStatus,"003d24888f6ca371f75d3ec3ecd7b450b578b69c64",()=>n.getBackupDir,"008ca26582a6bc86f8a81485dafd39264601108780",()=>h.getActualWsPort,"00b6b12eb25ee453f445c4bcdf4d50b3d1c7b38351",()=>h.getAvailableTerminalApps,"00c5aa98cd7ecfe57d2a587c9369b3f37096641a87",()=>n.listBackupFiles,"00cbd31136fc6774db005529c98fc11975e67706fc",()=>k.getOnboardingStatus,"00f669168ce1f897eb2fe810a0a9342dac00ed6046",()=>m.getAvailableProviders,"00f6fe91c94d11e3e6cd2112ec769707959a54189f",()=>h.getAvailableEditors,"4002d954765b9e56566e449fc3bc78e4fb03be7b35",()=>k.dispatchTaskCompletionEvent,"4004282668f38cbee8857d302368731b5ab318a755",()=>j.installExtension,"40069fdee2c55c311e4c4c161b632054cb261456e5",()=>l.deletePrompt,"401a552a24f8644baa876aacdcf5eba7d28ab5cc3a",()=>e.createProject,"401da388c168ac9cc648c2c7e32fbc451853901088",()=>n.resetSystem,"40240a5845f1968bde6e8e0e74ac4a2e123226c978",()=>h.resolveGitLocalPathWithSource,"402bbc93aabd476c75ea98b62565514688b910719d",()=>f.deleteLabel,"402d893c5a621a969e01ad18f836ca670ab21cd95a",()=>l.getPrompts,"4045a4e8dc6e5750aaa5486feb11ec8f39f84f79cc",()=>e.reorderWorkspaces,"4049e0ef7ccd78445d833ed4f81e1914612c618a1a",()=>k.setOnboardingProgress,"40678a2b403c111cdd409176df5bba928e0f63a5b4",()=>f.getLabelsForWorkspace,"4071f8336f22edfe28929da6c8ff0f4029617d3711",()=>j.checkExtension,"407e636625b31adf81533f78f7f325c8bc8dfb3496",()=>n.restoreBackup,"407fab8fa8b7793fb8f25a418f04559876792ca21c",()=>f.createLabel,"40823d37360f7d7f68dbf678d601951d5b66a9ebbb",()=>l.createPrompt,"408756c53bce7865e11cf2ad38da7c453230680ea0",()=>n.setBackupDir,"40994375884acf58977f687f484052339cffe252c2",()=>n.deleteBackupFile,"409e19af345e57bfa405427b90dd7d5247ba344de9",()=>n.createBackup,"409f230fcc7698edd512e9f725f139ace2d667ca76",()=>o.setStorageLocation,"40a3c6df81ffdfc61bfe62695cc844afa21f21a1ac",()=>j.uninstallExtension,"40b0a7436022990255822bd0a66b4fbb3eed825bfe",()=>h.resolveGitLocalPath,"40b7eec0bb0bcd1c9c8f305cb7f9cb2aa9d17c5331",()=>h.getConfigValues,"40c028aa754fb395b011ca98a0d8998d941ba9b275",()=>e.createWorkspace,"40e8327e313b39fc99571773ca1cac1217f978fc83",()=>i.checkMigrationSafety,"40e9e4643eae5f742132fff6c126cd641da7345a95",()=>e.deleteWorkspace,"6000a804d7dc12ec49a4994894ff26f850580bc609",()=>l.setDefaultPrompt,"600a7b6234db631cbc3d0f9a4263a6d0a9dba6455a",()=>e.updateWorkspace,"602f249ffd4feeacc003965c2280a0f6818774621f",()=>h.getConfigValue,"603ff195358b719fe71041bada759b1541862c7e83",()=>h.setConfigValue,"6051197133a60d5756beb41200c1dbffb7f56bea66",()=>g.globalSearch,"606d5d9caea3a6dc48ec051af50b699c375e6510dc",()=>l.updatePrompt,"6076596bd293cdd855f89742a00cf37915e785323c",()=>k.completeOnboarding,"60989c7084fe6a3648aaebdf6450e4d69d1b62e7f2",()=>k.setOnboardingExtensions,"60d6bdc95a2a456d0e0dc627f1f08c495e85e3c291",()=>i.analyzeProjectDirectory,"60e921b4290b893e15be9b596f68c0d8d5748450de",()=>i.migrateProjectPath]),c()}catch(a){c(a)}},!1)];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=_070t_mh._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[342796,(a,b,c)=>{"use strict";b.exports=a.r(918622)},374637,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].React},728778,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactJsxRuntime},986099,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactDOM},499636,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactServerDOMTurbopackClient},838928,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.AppRouterContext},806795,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.HooksClientContext},257172,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.ServerInsertedHtml},499425,a=>{"use strict";a.s(["mergeClasses",0,(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim()])},748939,539153,a=>{"use strict";a.s(["default",0,{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}],748939),a.s(["hasA11yProp",0,a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1}],539153)},392223,a=>{"use strict";var b=a.i(374637),c=a.i(748939),d=a.i(539153),e=a.i(499425);let f=(0,b.createContext)({}),g=(0,b.forwardRef)(({color:a,size:g,strokeWidth:h,absoluteStrokeWidth:i,className:j="",children:k,iconNode:l,...m},n)=>{let{size:o=24,strokeWidth:p=2,absoluteStrokeWidth:q=!1,color:r="currentColor",className:s=""}=(0,b.useContext)(f)??{},t=i??q?24*Number(h??p)/Number(g??o):h??p;return(0,b.createElement)("svg",{ref:n,...c.default,width:g??o??c.default.width,height:g??o??c.default.height,stroke:a??r,strokeWidth:t,className:(0,e.mergeClasses)("lucide",s,j),...!k&&!(0,d.hasA11yProp)(m)&&{"aria-hidden":"true"},...m},[...l.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(k)?k:[k]])});a.s(["default",0,g],392223)},403988,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},884864,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},66417,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},239624,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(403988)._(a.r(374637)),g=a.r(66417);a.r(884864);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},998029,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(374637),e=a.r(884864),f=a.r(239624);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},186592,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},780410,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(998029),g=a.r(186592),h=a.r(499636)},573242,a=>{"use strict";var b=a.i(648717);a.s(["Search",()=>b.default])},347165,a=>{"use strict";let b=(0,a.i(711796).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",0,b],347165)},
|
|
1
|
+
module.exports=[342796,(a,b,c)=>{"use strict";b.exports=a.r(918622)},374637,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].React},728778,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactJsxRuntime},986099,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactDOM},499636,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored["react-ssr"].ReactServerDOMTurbopackClient},838928,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.AppRouterContext},806795,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.HooksClientContext},257172,(a,b,c)=>{"use strict";b.exports=a.r(342796).vendored.contexts.ServerInsertedHtml},499425,a=>{"use strict";a.s(["mergeClasses",0,(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim()])},748939,539153,a=>{"use strict";a.s(["default",0,{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}],748939),a.s(["hasA11yProp",0,a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1}],539153)},392223,a=>{"use strict";var b=a.i(374637),c=a.i(748939),d=a.i(539153),e=a.i(499425);let f=(0,b.createContext)({}),g=(0,b.forwardRef)(({color:a,size:g,strokeWidth:h,absoluteStrokeWidth:i,className:j="",children:k,iconNode:l,...m},n)=>{let{size:o=24,strokeWidth:p=2,absoluteStrokeWidth:q=!1,color:r="currentColor",className:s=""}=(0,b.useContext)(f)??{},t=i??q?24*Number(h??p)/Number(g??o):h??p;return(0,b.createElement)("svg",{ref:n,...c.default,width:g??o??c.default.width,height:g??o??c.default.height,stroke:a??r,strokeWidth:t,className:(0,e.mergeClasses)("lucide",s,j),...!k&&!(0,d.hasA11yProp)(m)&&{"aria-hidden":"true"},...m},[...l.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(k)?k:[k]])});a.s(["default",0,g],392223)},403988,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},884864,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},66417,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},239624,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(403988)._(a.r(374637)),g=a.r(66417);a.r(884864);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},998029,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(374637),e=a.r(884864),f=a.r(239624);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},186592,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},780410,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(998029),g=a.r(186592),h=a.r(499636)},573242,a=>{"use strict";var b=a.i(648717);a.s(["Search",()=>b.default])},347165,a=>{"use strict";let b=(0,a.i(711796).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",0,b],347165)},668116,a=>{"use strict";var b=a.i(29715);a.s(["Check",()=>b.default])},975231,a=>{"use strict";let b=(0,a.i(711796).default)("trash-2",[["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"}]]);a.s(["Trash2",0,b],975231)},774881,a=>{"use strict";let b=(0,a.i(711796).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],774881)},146758,745539,a=>{"use strict";let b=(0,a.i(711796).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["Folder",0,b],146758);var c=a.i(219551);a.s(["ChevronUp",()=>c.default],745539)},884664,a=>{"use strict";let b=(0,a.i(711796).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["default",0,b])},192369,a=>{"use strict";let b=(0,a.i(711796).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],192369)},622945,a=>{"use strict";let b=(0,a.i(711796).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["default",0,b])},87309,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(780410);let e=(0,d.createServerReference)("4071f8336f22edfe28929da6c8ff0f4029617d3711",d.callServer,void 0,d.findSourceMapURL,"checkExtension");var f=a.i(585633);let g=(0,d.createServerReference)("40a3c6df81ffdfc61bfe62695cc844afa21f21a1ac",d.callServer,void 0,d.findSourceMapURL,"uninstallExtension");var h=a.i(953093);let i={installed:!1},j=(0,c.createContext)(null);a.s(["ExtensionContext",0,j,"ExtensionProvider",0,function({children:a,initialStatus:d}){let[k,l]=(0,c.useState)(()=>d??Object.fromEntries((0,h.listExtensionMetadata)().map(a=>[a.id,i]))),[m,n]=(0,c.useState)(new Set),o=(0,c.useRef)(new Set),p=(0,c.useCallback)(async a=>{let b=await e(a);l(c=>({...c,[a]:b}))},[]),q=(0,c.useCallback)(async a=>{if(o.current.has(a))return{success:!1,error:"install already in progress"};o.current.add(a),n(b=>{let c=new Set(b);return c.add(a),c});try{let b=await (0,f.installExtension)(a);return b.success&&await p(a),b}finally{o.current.delete(a),n(b=>{let c=new Set(b);return c.delete(a),c})}},[p]),r=(0,c.useCallback)(async a=>{if(o.current.has(a))return{success:!1,error:"operation already in progress"};o.current.add(a),n(b=>{let c=new Set(b);return c.add(a),c});try{let b=await g(a);return b.success&&await p(a),b}finally{o.current.delete(a),n(b=>{let c=new Set(b);return c.delete(a),c})}},[p]),s=(0,c.useMemo)(()=>({statusMap:k,loading:!1,installing:m,refresh:p,install:q,uninstall:r}),[k,m,p,q,r]);return(0,b.jsx)(j.Provider,{value:s,children:a})}],87309)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_08bq4g8._.js.map
|
|
@@ -27,4 +27,4 @@ Rules:
|
|
|
27
27
|
- insights array can be empty if nothing notable
|
|
28
28
|
- Keep each insight concise (1-2 sentences)`,h=await c(g,b);if(!h)return null;try{let a=h,b=a.match(/\{[\s\S]*\}/);b&&(a=b[0]);let c=JSON.parse(a);if("string"!=typeof c.summary||"boolean"!=typeof c.shouldCreateNote)return console.error("[generateDreamingInsight] Invalid response structure"),null;return c}catch(a){return console.error("[generateDreamingInsight] JSON parse failed:",a.message),null}}a.s(["aiQuery",0,c,"generateDreamingInsight",0,e,"generateSummaryFromLog",0,d])},719041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ti8vng._.js","server/chunks/ssr/07-d_@anthropic-ai_claude-agent-sdk_sdk_mjs_0myippv._.js"].map(b=>a.l(b))).then(()=>b(845454)))}];
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=_09z2zmm._.js.map
|