tower-studio 0.2.46 → 0.2.47
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/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- 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 +3 -3
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +82 -70
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/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/tasks/[taskId]/merge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/harness/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/harness/page/server-reference-manifest.json +92 -80
- package/.next/standalone/.next/server/app/harness/page.js +2 -1
- package/.next/standalone/.next/server/app/harness/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/harness/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +150 -138
- package/.next/standalone/.next/server/app/missions/page.js +5 -4
- 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 +3 -3
- package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +82 -70
- package/.next/standalone/.next/server/app/onboarding/page.js +2 -1
- 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 +3 -3
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +82 -70
- package/.next/standalone/.next/server/app/page.js +2 -1
- 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 +3 -3
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +128 -116
- package/.next/standalone/.next/server/app/settings/page.js +4 -3
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +190 -178
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +3 -2
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +166 -154
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +3 -2
- 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]/groups/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page/server-reference-manifest.json +86 -74
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js +2 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/groups/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +150 -138
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +3 -2
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +162 -162
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +4 -3
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +82 -70
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +3 -2
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +140 -140
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +3 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +182 -170
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +6 -5
- 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 +3 -3
- package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +108 -96
- package/.next/standalone/.next/server/app/workspaces/page.js +2 -1
- 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/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +7 -7
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0gr2wxq.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0esywxf._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kkrbn-._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0_w835g._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_05balzk._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0gif-f5._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0pg9w-x._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0vp6.co._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_11k6i~l._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_actions_agent-actions_ts_10q9r5b._.js +3 -3
- 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/[root-of-the-server]__00qdvw7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07rk6ic._.js → [root-of-the-server]__0282989._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0hzwoy5._.js → [root-of-the-server]__03jikql._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0trmndk._.js → [root-of-the-server]__04dod9d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05tx27l._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0m8m7vc._.js → [root-of-the-server]__07ha-7q._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07~giyb._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bx_h2u._.js → [root-of-the-server]__0872sqe._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__090y_.y._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0b6hugs._.js → [root-of-the-server]__09qoc8v._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.0m12b._.js → [root-of-the-server]__0bl842b._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0br5e7w._.js → [root-of-the-server]__0c81jqz._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dh0alq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0u3~-.g._.js → [root-of-the-server]__0fy8mj6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0kqp70x._.js → [root-of-the-server]__0gsk~9d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h4ltpn._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hx2p17._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ie8~g5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0n02kfa._.js → [root-of-the-server]__0j1w7ro._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0esg88l._.js → [root-of-the-server]__0jxfeb6._.js} +1 -1
- 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]__00qzvly._.js → [root-of-the-server]__0mi.v4q._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06sew6r._.js → [root-of-the-server]__0nell0t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0odoa97._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__12viys4._.js → [root-of-the-server]__0q8o5us._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0b6fbjv._.js → [root-of-the-server]__0qjjy1r._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rg73f.._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t3q30a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0tpho3f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0dhq_gl._.js → [root-of-the-server]__0tusyj0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~edc3d._.js → [root-of-the-server]__0x6eyvj._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0n3uc.v._.js → [root-of-the-server]__0xftcya._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xiiocg._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0x7br99._.js → [root-of-the-server]__0znl9us._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zsnp~d._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~fdua7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11fp64w._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vyl8to._.js → [root-of-the-server]__1290yo~._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12s3kky._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0s_q09t._.js → [root-of-the-server]__136sh9u._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0.-.0zk._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0..h3hk._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0b660g4._.js → _0111pr2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0czsddm._.js → _029yl-g._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0q2pep_._.js → _02mcoex._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_02t7f2_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0gomvsp._.js → _04brhyt._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_1118hto._.js → _08b3kyv._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0-5.hgb._.js → _0a___34._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0ami9yt._.js → _0b4v~ls._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0bdyusg._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0hsuip_._.js → _0c8-9m9._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0j7m~u6._.js → _0gcox_6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0snv7nt._.js → _0gte_c4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0g~p9_x._.js → _0hyn4md._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0l6byg1._.js → _0lqjtwo._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0noar.v._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0os43sb._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0o_c3b2._.js → _0rilhs1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0ak77.u._.js → _0sbkase._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_00_h2nx._.js → _0t-0.1o._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0mmy~98._.js → _0w~~xn0._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0awn2mm._.js → _0xexuoi._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0xu906p._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0z-z415._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0zx1ubq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0ty4xe6._.js → _0~2k74h._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0hx2o_8._.js → _0~rpgs_._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_10a_vqn._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0p5ft59._.js → _10or.ne._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_11.knhq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_12s8n8g._.js → _124j7aj._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_13yv8at._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_11j0qlp._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_07_wts6._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
- 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_0rowjw~._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0cld9rt._.js → src_lib_0-3zx.v._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0_px2pz._.js → src_lib_00ial55._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0a.zy31._.js → src_lib_01-0ix1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0b73q0a._.js → src_lib_01d~ml9._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_04nzvfd._.js → src_lib_0278czx._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_07o.0r6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_09jpiip._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0bmg7ix._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0cb~2g1._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0fdsvpu._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0fyrfen._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0dbf2qa._.js → src_lib_0gqe-g3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0ixnmd0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0lpxsj~._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0pgz5n6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0h2u7a0._.js → src_lib_0tq69ek._.js} +1 -1
- 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 +1146 -1068
- package/.next/standalone/.next/static/chunks/{0oyskd~8~j.j7.js → 00agq5_c-.llc.js} +1 -1
- package/.next/standalone/.next/static/chunks/015i97g3voot2.js +2 -0
- package/.next/standalone/.next/static/chunks/{02v-9v~885t9c.js → 01wvj~s3skc-5.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0.gedys.tq.~k.js → 031br6.h-zycv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{07qijq9o5jccu.js → 054ztat09k8d8.js} +1 -1
- package/.next/standalone/.next/static/chunks/07f592yv~pptf.js +1 -0
- package/.next/standalone/.next/static/chunks/{06x7oq8_iu~9d.js → 08j4ettv1zbmn.js} +1 -1
- package/.next/standalone/.next/static/chunks/{03uix~1ru.ovv.js → 08kc0~d-bpqxd.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0j5olwb~d3~3j.js → 08s_oyki61yjf.js} +1 -1
- package/.next/standalone/.next/static/chunks/09bc_~h466~tj.js +1 -0
- package/.next/standalone/.next/static/chunks/{0q1872yhybt55.js → 0_hj_1l73v-on.js} +1 -1
- package/.next/standalone/.next/static/chunks/{00o_eiv12t~.1.js → 0a54zbhpg7-ql.js} +1 -1
- package/.next/standalone/.next/static/chunks/0c2po53wqe-op.js +1 -0
- package/.next/standalone/.next/static/chunks/0clhvl~13pwv2.js +1 -0
- package/.next/standalone/.next/static/chunks/0fi1kdxrc9m~d.js +1 -0
- package/.next/standalone/.next/static/chunks/0j56_.0_wup.m.js +1 -0
- package/.next/standalone/.next/static/chunks/{17z9uivez~kp3.js → 0lokkque~1fox.js} +1 -1
- package/.next/standalone/.next/static/chunks/0m5k~sgt78d8a.js +1 -0
- package/.next/standalone/.next/static/chunks/{0d9u2xspag~4h.js → 0mzzaly9-cwhd.js} +1 -1
- package/.next/standalone/.next/static/chunks/0pg~fc3o64-u0.js +1 -0
- package/.next/standalone/.next/static/chunks/{0-kkc.ibted8y.js → 0pvc93qomwhkq.js} +1 -1
- package/.next/standalone/.next/static/chunks/0smoiulyzysrc.js +2 -0
- package/.next/standalone/.next/static/chunks/0ufatfbq87c84.js +1 -0
- package/.next/standalone/.next/static/chunks/{09om2gfwimh7k.js → 0ujznvfinjpzn.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0cf7e1scao3zk.js → 0ux~8zee88x-j.js} +1 -1
- package/.next/standalone/.next/static/chunks/0vy01_a6xhhrr.js +1 -0
- package/.next/standalone/.next/static/chunks/0xd_tk4asn0qj.js +1 -0
- package/.next/standalone/.next/static/chunks/{12-mlz2vukuga.js → 0~l470bpaoz9f.js} +1 -1
- package/.next/standalone/.next/static/chunks/118j.0w2pbdea.js +1 -0
- package/.next/standalone/.next/static/chunks/13yfli6~6o4z~.js +1 -0
- package/.next/standalone/.next/static/chunks/{0t1awv68pnn-e.js → 15rlbf5rw1dd..js} +1 -1
- package/.next/standalone/package.json +1 -1
- package/dist/mcp-server.cjs +6 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-geq20._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02~hdzx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h_pt4a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0idkp76._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j4m.1s._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kmonje._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lh3mlq._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0muf4wq._.js +0 -49
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0o5ohqy._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ta_mpj._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ws0_c1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~mhv4m._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1013v_g._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__123rmn-._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/_05~lqg-._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/_0771b4a._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/_0fmko25._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0hg~.4w._.js +0 -6
- package/.next/standalone/.next/server/chunks/ssr/_0nrxhfb._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/_0vkl7.h._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/_0x09t_o._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/_0zn.4bi._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/_1086w4p._.js +0 -47
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0er7rzd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0f0v8_~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0fr6fzy._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0k04rl3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0sq6aqm._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0ui-~7g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0z-gn78._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_13c4a4g._.js +0 -3
- package/.next/standalone/.next/static/chunks/00g58.es_hxli.js +0 -1
- package/.next/standalone/.next/static/chunks/01qtgj0xv1fsm.js +0 -2
- package/.next/standalone/.next/static/chunks/024euw7po0d0w.js +0 -1
- package/.next/standalone/.next/static/chunks/03ct4d8znb7tp.js +0 -1
- package/.next/standalone/.next/static/chunks/0alhq.h4~iogi.js +0 -1
- package/.next/standalone/.next/static/chunks/0ck~sr0nkabl~.js +0 -1
- package/.next/standalone/.next/static/chunks/0d1ok-v-u-xe~.js +0 -1
- package/.next/standalone/.next/static/chunks/0ftptcpntzaux.js +0 -1
- package/.next/standalone/.next/static/chunks/0gk~m5bwgoafi.js +0 -1
- package/.next/standalone/.next/static/chunks/0in_7s8n4lmfr.js +0 -1
- package/.next/standalone/.next/static/chunks/0mtrtl-jl46in.js +0 -2
- package/.next/standalone/.next/static/chunks/0~2l3wz-gxs2j.js +0 -1
- package/.next/standalone/.next/static/chunks/0~7h_a_dofg-4.js +0 -1
- package/.next/standalone/.next/static/chunks/15gztq9f12uhe.js +0 -1
- package/.next/standalone/.next/static/chunks/15ue90qe1sh-9.js +0 -1
- /package/.next/standalone/.next/static/{Pf_z-PYy0CJhvcyPEi-LM → dFewkdixeBoRBY6Fvw11J}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Pf_z-PYy0CJhvcyPEi-LM → dFewkdixeBoRBY6Fvw11J}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{Pf_z-PYy0CJhvcyPEi-LM → dFewkdixeBoRBY6Fvw11J}/_ssgManifest.js +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
module.exports=[712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.46",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/tower-post-tool-hook.js","scripts/tower-session-start-hook.js","scripts/tower-stop-hook.js","dist/mcp-server.cjs","skills/","tsconfig.json"],scripts:{predev:'TOWER_DATA_DIR="$HOME/.tower-dev" DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" node scripts/ensure-dev-db.js && pnpm db:migrate && pnpm mcp:build',dev:'NEXT_DISTDIR=.next-dev TOWER_DATA_DIR="$HOME/.tower-dev" DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" env -u TURBOPACK 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":'DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" prisma db push',"db:seed":'DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" tsx prisma/seed.ts',"db:studio":'DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" prisma studio',"db:init":'TOWER_DATA_DIR="$HOME/.tower-dev" DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" tsx scripts/init-db.ts',"db:init-fts":'DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" tsx prisma/init-fts.ts',"db:migrate":'TOWER_DATA_DIR="$HOME/.tower-dev" DATABASE_URL="file:$HOME/.tower-dev/database/tower.db" 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"}}},880830,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634),j=a.i(925886),k=a.i(815429),l=a.i(761469),m=a.i(830296),n=a.i(630048);let o="task.systemDirective";function p(){return m.CONFIG_DEFAULTS[o].defaultValue}async function q(){let a=p(),b=await (0,e.getConfigValue)(o,a);return{systemDirective:b,systemDirectiveDefault:a,systemDirectiveIsCustom:b!==a,childReviewPrompt:"[Tower] 你派生的子任务「{{childTitle}}」(taskId: {{childTaskId}})刚结束一轮、正在等指令 —— 可能完成、也可能没完成。\n\n子任务最后的回复:\n{{childReply}}\n\n请你作为中枢 review:\n1. 若要核实它具体改了什么,用 get_task_terminal_output 读它的终端产出。\n2. 若已正确完成 → stop_task_execution 关闭它 + move_task 置 DONE。\n3. 若没完成 / 有问题 → send_task_terminal_input 给它具体反馈,让它继续改。\n4. 把你的判断与决定用 manage_notes 记录下来,供用户事后查看。"}}async function r(a){await (0,e.setConfigValue)(o,a)}async function s(){return await l.db.systemConfig.deleteMany({where:{key:o}}),p()}(0,n.ensureServerEntryExports)([q,r,s]),(0,k.registerServerReference)(q,"00012b5880c4b1b33865bea388958a7000a857741d",null),(0,k.registerServerReference)(r,"403a4190ffbd80617b45fc61d8a8a67e4b4a3964f6",null),(0,k.registerServerReference)(s,"008a8f1239f29f473c63c1473a711f5e37ebd37efc",null);var t=a.i(188139),u=a.i(378322),v=a.i(855806);let w=["terminal","summary","dreaming","analysis","assistant"];async function x(){return l.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function y(a,b){if(!w.includes(a))throw Error(`无效的插槽: ${a}`);if(!u.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,v.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await l.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,t.revalidatePath)("/settings")}async function z(){return u.providerRegistry.getAvailableProviders()}(0,n.ensureServerEntryExports)([x,y,z]),(0,k.registerServerReference)(x,"00a34ff6f66d445bf99f60140f51595ec919dea805",null),(0,k.registerServerReference)(y,"6093814f04e7639e043f113c26dad5ed3b42dcf4db",null),(0,k.registerServerReference)(z,"00f503ecee8173ce949d0761132e2a3a885d3bf37d",null);var A=a.i(319997),B=a.i(750227),C=a.i(902157),D=a.i(660526),E=a.i(744992);let F=".lock";function G(a){let b=(0,B.join)(a,F);if((0,C.existsSync)(b)){let a=parseInt((0,C.readFileSync)(b,"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)(b,String(process.pid))}function H(a){let b=(0,B.join)(a,F);try{(0,C.unlinkSync)(b)}catch{}}let I=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;function J(a){if(!I.test(a))throw Error(`Invalid backup filename: ${a}`)}async function K(a,b,c,d){let e,f,g,h,i=`${d?"tower-auto":"tower-backup"}-${(e=new Date,f=a=>String(a).padStart(2,"0"),g=`${e.getFullYear()}${f(e.getMonth()+1)}${f(e.getDate())}`,h=`${f(e.getHours())}${f(e.getMinutes())}${f(e.getSeconds())}`,`${g}-${h}`)}.tar.gz`,j=(0,B.join)(b,i),k=(0,B.join)(a,"metadata.json");(0,C.writeFileSync)(k,JSON.stringify(c,null,2));try{let b=["metadata.json"];(0,C.existsSync)((0,B.join)(a,"database","tower.db"))&&b.push((0,B.join)("database","tower.db")),(0,C.existsSync)((0,B.join)(a,"storage","assets"))&&b.push((0,B.join)("storage","assets")),(0,C.existsSync)((0,B.join)(a,"assistant"))&&b.push("assistant"),(0,C.existsSync)((0,B.join)(a,"logs"))&&b.push("logs"),await E.create({gzip:!0,file:j,cwd:a},b);let e=(0,C.statSync)(j);return{filename:i,size:e.size,createdAt:c.createdAt,autoBackup:d,label:c.label??"",stats:c.stats,preview:c.preview}}catch(a){try{(0,C.unlinkSync)(j)}catch{}throw a}finally{try{(0,C.unlinkSync)(k)}catch{}}}async function L(a){let b=(0,B.join)((0,B.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,C.mkdirSync)(b,{recursive:!0}),await E.extract({file:a,cwd:b,filter:a=>"metadata.json"===a});let c=(0,B.join)(b,"metadata.json");if(!(0,C.existsSync)(c))return null;return JSON.parse((0,C.readFileSync)(c,"utf-8"))}catch{return null}finally{(0,C.rmSync)(b,{recursive:!0,force:!0})}}async function M(a){if(!(0,C.existsSync)(a))return[];let b=(0,C.readdirSync)(a).filter(a=>I.test(a)).sort().reverse(),c=[];for(let d of b){let b=(0,B.join)(a,d),e=(0,C.statSync)(b),f=await L(b);c.push({filename:d,size:e.size,createdAt:f?.createdAt??e.mtime.toISOString(),autoBackup:f?.autoBackup??d.startsWith("tower-auto"),label:f?.label??"",stats:f?.stats??{workspaces:0,projects:0,tasks:0},preview:f?.preview??[]})}return c}async function N(a,b){if((0,C.mkdirSync)(b,{recursive:!0}),await E.extract({file:a,cwd:b,filter:a=>!((0,B.isAbsolute)(a)||a.includes(".."))}),!(0,C.existsSync)((0,B.join)(b,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let O=["database",(0,B.join)("storage","assets"),"assistant","logs"];async function P(){return await (0,e.getConfigValue)("system.backupDir","")||(0,A.getBackupsDir)()}async function Q(b,c){let[d,e,f]=await Promise.all([l.db.workspace.count(),l.db.project.count(),l.db.task.count()]),g=(await l.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:e,tasks:f},preview:g}}async function R(a){let b=await P();G(b);try{let c=await Q(!1,a);return await l.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await K((0,A.getTowerDir)(),b,c,!1)}finally{H(b)}}async function S(){return M(await P())}async function T(a){J(a);let b=await P(),c=(0,B.join)(b,a);if(!(0,C.existsSync)(c))throw Error("Backup file not found");(0,C.unlinkSync)(c)}async function U(b){J(b);let c=(0,A.getTowerDir)(),d=await P(),e=(0,B.join)(d,b);if(!(0,C.existsSync)(e))throw Error("Backup file not found");G(d);let f=(0,B.join)(c,"_restore_tmp");try{let b=await Q(!0);await l.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await K(c,d,b,!0);let{destroyAllSessions:g}=await a.A(98813);g(),await N(e,f),await l.db.$disconnect();let h=(0,B.join)(c,"database");for(let a of["-wal","-shm"]){let b=(0,B.join)(h,`tower.db${a}`);try{(0,C.unlinkSync)(b)}catch{}}!function(a,b){let c=(0,B.join)(a,"_old_tmp");(0,C.mkdirSync)(c,{recursive:!0});try{for(let b of O){let d=(0,B.join)(a,b),e=(0,B.join)(c,b);(0,C.existsSync)(d)&&((0,C.mkdirSync)((0,B.dirname)((0,B.join)(c,b)),{recursive:!0}),(0,C.renameSync)(d,e))}for(let c of O){let d=(0,B.join)(b,c),e=(0,B.join)(a,c);(0,C.existsSync)(d)&&((0,C.mkdirSync)((0,B.dirname)((0,B.join)(a,c)),{recursive:!0}),(0,C.renameSync)(d,e))}(0,C.rmSync)(c,{recursive:!0,force:!0})}catch(b){for(let b of O){let d=(0,B.join)(c,b),e=(0,B.join)(a,b);if((0,C.existsSync)(d)&&!(0,C.existsSync)(e))try{(0,C.renameSync)(d,e)}catch{}}throw(0,C.rmSync)(c,{recursive:!0,force:!0}),b}}(c,f),await (0,l.resetDbConnection)(),await l.db.$executeRawUnsafe(`
|
|
2
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts
|
|
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 l.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(l.db,a);(0,t.revalidatePath)("/")}finally{for(let a of["_restore_tmp","_old_tmp"]){let b=(0,B.join)(c,a);(0,C.existsSync)(b)&&(0,C.rmSync)(b,{recursive:!0,force:!0})}H(d)}}async function V(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,A.getTowerDir)(),d=await P();G(d);try{let b=await Q(!0);await l.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await K(c,d,b,!0);let{destroyAllSessions:e}=await a.A(98813);e(),await l.db.$disconnect();for(let a of["database",(0,B.join)("storage","assets"),"assistant","logs"]){let b=(0,B.join)(c,a);(0,C.existsSync)(b)&&(0,C.rmSync)(b,{recursive:!0,force:!0})}await (0,l.resetDbConnection)(),(0,t.revalidatePath)("/")}finally{H(d)}}async function W(){return await (0,e.getConfigValue)("system.backupDir","")||(0,A.getBackupsDir)()}async function X(a){if(!(0,B.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let b=(0,D.homedir)(),c=(0,B.relative)(b,a);if(c.startsWith("..")||(0,B.isAbsolute)(c))throw Error("Backup directory must be within your home directory");await (0,e.setConfigValue)("system.backupDir",a)}(0,n.ensureServerEntryExports)([R,S,T,U,V,W,X]),(0,k.registerServerReference)(R,"4091d1c52370bebd3e8d05e3278bd1ded41ec00821",null),(0,k.registerServerReference)(S,"0095fe412d0e2677a5878a74f6a466ce8a44748d5d",null),(0,k.registerServerReference)(T,"406eb017fe97e1b8836c2d0ff73008ccb33b575bbd",null),(0,k.registerServerReference)(U,"40833100ffb6bde731d9bc18b245a88d9bf2245ee4",null),(0,k.registerServerReference)(V,"40373451bfef2452a397c143599c7c33dda0f69565",null),(0,k.registerServerReference)(W,"002b67095ad05477f1e9b1dc42e035b0013aa032cf",null),(0,k.registerServerReference)(X,"40fb517cffb715373e30718ed55eba58e6c3a0f041",null);var Y=a.i(75681);async function Z(){return{current:(0,A.getStorageDir)(),default:(0,A.getDefaultStorageDir)(),isDefault:null===(0,A.readStoragePointer)()}}let $=Y.z.object({newPath:Y.z.string().min(1)});async function _(a){let{newPath:b}=$.parse(a),c=B.resolve(b),d=B.resolve((0,A.getStorageDir)()),e=B.resolve((0,A.getDefaultStorageDir)());if(!B.isAbsolute(c))return{ok:!1,error:"请输入绝对路径"};if(c===d)return{ok:!0,moved:0};if(c.startsWith(d+B.sep)||d.startsWith(c+B.sep))return{ok:!1,error:"新路径不能是当前存储目录的父级或子级"};if(C.existsSync(c)){if(!C.statSync(c).isDirectory())return{ok:!1,error:"目标路径已存在且不是目录"};if(C.readdirSync(c).length>0)return{ok:!1,error:"目标目录非空,请选择一个空目录或新目录"}}let f=B.dirname(c);try{C.mkdirSync(c,{recursive:!0}),C.accessSync(c,C.constants.W_OK)}catch{return{ok:!1,error:`无法写入目标目录(检查权限):${f}`}}try{C.existsSync(d)&&(C.cpSync(d,c,{recursive:!0}),C.rmSync(d,{recursive:!0,force:!0}))}catch(a){return{ok:!1,error:`迁移文件失败:${a instanceof Error?a.message:String(a)}`}}let g=0,h=d+B.sep;for(let a of(await l.db.projectAsset.findMany({select:{id:!0,path:!0}})))if(a.path.startsWith(h)){let b=B.join(c,a.path.slice(d.length+1));await l.db.projectAsset.update({where:{id:a.id},data:{path:b}}),g+=1}return(0,A.writeStoragePointer)(c===e?null:c),{ok:!0,moved:g}}(0,n.ensureServerEntryExports)([Z,_]),(0,k.registerServerReference)(Z,"00242e8c0e654809a46e6a5f57040da49ea7d1a25c",null),(0,k.registerServerReference)(_,"40f82f35215d57c64e195348a95941d90ac7e90cb1",null);var aa=a.i(333500);a.s([],531008),a.i(531008),a.s(["00012b5880c4b1b33865bea388958a7000a857741d",0,q,"00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"00242e8c0e654809a46e6a5f57040da49ea7d1a25c",0,Z,"002440c9e28ab94cdd90b58bafb6f601dc41d8d108",()=>e.getAvailableEditors,"002b67095ad05477f1e9b1dc42e035b0013aa032cf",0,W,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"008a8f1239f29f473c63c1473a711f5e37ebd37efc",0,s,"0095fe412d0e2677a5878a74f6a466ce8a44748d5d",0,S,"009c9ba31d33414315e6ebce045ad942596592deeb",()=>v.getConnectedProviders,"00a34ff6f66d445bf99f60140f51595ec919dea805",0,x,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"00e0f4165c3e26131b17fe500b9750040c3067f2f6",()=>e.getAvailableTerminalApps,"00f503ecee8173ce949d0761132e2a3a885d3bf37d",0,z,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"40373451bfef2452a397c143599c7c33dda0f69565",0,V,"403a4190ffbd80617b45fc61d8a8a67e4b4a3964f6",0,r,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404cffeebf9cd5b11929ed56c5dbcb3e79b820450e",()=>j.getPrompts,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"406eb017fe97e1b8836c2d0ff73008ccb33b575bbd",0,T,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40833100ffb6bde731d9bc18b245a88d9bf2245ee4",0,U,"4091d1c52370bebd3e8d05e3278bd1ded41ec00821",0,R,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40dc9fc2c9c0b69d14fc779a0bb51b34232d5f18d5",()=>aa.testHarnessTarget,"40e19466379d9cfbf66fdbf7fcc53b5b163b8ff584",()=>j.createPrompt,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40f82f35215d57c64e195348a95941d90ac7e90cb1",0,_,"40f8a1d8e3cecafa1c8b48ae6239f0bdcedae2a59f",()=>j.deletePrompt,"40fb517cffb715373e30718ed55eba58e6c3a0f041",0,X,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"6093814f04e7639e043f113c26dad5ed3b42dcf4db",0,y,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609e6d93185ca81f068f317bfa22b1a7fe0845458e",()=>j.updatePrompt,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],880830)}];
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=_0hg~.4w._.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
|
-
FROM "ProjectNote" n
|
|
4
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
5
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
6
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
7
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
|
|
8
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
9
|
-
FROM notes_fts f
|
|
10
|
-
JOIN "ProjectNote" n ON n.id = f.note_id
|
|
11
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
12
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
13
|
-
WHERE f.notes_fts MATCH ?
|
|
14
|
-
ORDER BY rank
|
|
15
|
-
LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
16
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
17
|
-
FROM "ProjectNote" n
|
|
18
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
19
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
|
-
|
|
23
|
-
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
|
-
|
|
25
|
-
**技术栈:** 一句话列出主要语言、框架、关键库
|
|
26
|
-
**定位:** 一句话说明项目是什么
|
|
27
|
-
**核心模块:** 2-3 个关键模块,每个一句话
|
|
28
|
-
|
|
29
|
-
要求:
|
|
30
|
-
- 总字数不超过 500 字
|
|
31
|
-
- 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
|
|
32
|
-
- 不要罗列每个文件/目录,只说关键信息
|
|
33
|
-
- 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
|
|
34
|
-
|
|
35
|
-
Read package.json, README.md and other key files, then summarize:
|
|
36
|
-
|
|
37
|
-
**Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
|
|
38
|
-
**Overview:** One sentence describing what this project is
|
|
39
|
-
**Core Modules:** 2-3 key modules, one sentence each
|
|
40
|
-
|
|
41
|
-
Requirements:
|
|
42
|
-
- Keep it under 1000 words
|
|
43
|
-
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
|
-
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},362421,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634);a.s([],278604),a.i(278604),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],362421)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0fr6fzy._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(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]__123rmn-._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=_0nrxhfb._.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
|
-
FROM "ProjectNote" n
|
|
4
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
5
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
6
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
7
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
|
|
8
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
9
|
-
FROM notes_fts f
|
|
10
|
-
JOIN "ProjectNote" n ON n.id = f.note_id
|
|
11
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
12
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
13
|
-
WHERE f.notes_fts MATCH ?
|
|
14
|
-
ORDER BY rank
|
|
15
|
-
LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
16
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
17
|
-
FROM "ProjectNote" n
|
|
18
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
19
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
|
-
|
|
23
|
-
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
|
-
|
|
25
|
-
**技术栈:** 一句话列出主要语言、框架、关键库
|
|
26
|
-
**定位:** 一句话说明项目是什么
|
|
27
|
-
**核心模块:** 2-3 个关键模块,每个一句话
|
|
28
|
-
|
|
29
|
-
要求:
|
|
30
|
-
- 总字数不超过 500 字
|
|
31
|
-
- 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
|
|
32
|
-
- 不要罗列每个文件/目录,只说关键信息
|
|
33
|
-
- 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
|
|
34
|
-
|
|
35
|
-
Read package.json, README.md and other key files, then summarize:
|
|
36
|
-
|
|
37
|
-
**Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
|
|
38
|
-
**Overview:** One sentence describing what this project is
|
|
39
|
-
**Core Modules:** 2-3 key modules, one sentence each
|
|
40
|
-
|
|
41
|
-
Requirements:
|
|
42
|
-
- Keep it under 1000 words
|
|
43
|
-
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
|
-
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},245339,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634);a.s([],494583),a.i(494583),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],245339)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0_px2pz._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(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]__07rk6ic._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=_0vkl7.h._.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
|
-
FROM "ProjectNote" n
|
|
4
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
5
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
6
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
7
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
|
|
8
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
9
|
-
FROM notes_fts f
|
|
10
|
-
JOIN "ProjectNote" n ON n.id = f.note_id
|
|
11
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
12
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
13
|
-
WHERE f.notes_fts MATCH ?
|
|
14
|
-
ORDER BY rank
|
|
15
|
-
LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
16
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
17
|
-
FROM "ProjectNote" n
|
|
18
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
19
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
|
-
|
|
23
|
-
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
|
-
|
|
25
|
-
**技术栈:** 一句话列出主要语言、框架、关键库
|
|
26
|
-
**定位:** 一句话说明项目是什么
|
|
27
|
-
**核心模块:** 2-3 个关键模块,每个一句话
|
|
28
|
-
|
|
29
|
-
要求:
|
|
30
|
-
- 总字数不超过 500 字
|
|
31
|
-
- 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
|
|
32
|
-
- 不要罗列每个文件/目录,只说关键信息
|
|
33
|
-
- 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
|
|
34
|
-
|
|
35
|
-
Read package.json, README.md and other key files, then summarize:
|
|
36
|
-
|
|
37
|
-
**Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
|
|
38
|
-
**Overview:** One sentence describing what this project is
|
|
39
|
-
**Core Modules:** 2-3 key modules, one sentence each
|
|
40
|
-
|
|
41
|
-
Requirements:
|
|
42
|
-
- Keep it under 1000 words
|
|
43
|
-
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
|
-
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},631330,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634);a.s([],141621),a.i(141621),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],631330)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0k04rl3._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(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]__0ta_mpj._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=_0x09t_o._.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
|
-
FROM "ProjectNote" n
|
|
4
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
5
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
6
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
7
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
|
|
8
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
9
|
-
FROM notes_fts f
|
|
10
|
-
JOIN "ProjectNote" n ON n.id = f.note_id
|
|
11
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
12
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
13
|
-
WHERE f.notes_fts MATCH ?
|
|
14
|
-
ORDER BY rank
|
|
15
|
-
LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
16
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
17
|
-
FROM "ProjectNote" n
|
|
18
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
19
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
|
-
|
|
23
|
-
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
|
-
|
|
25
|
-
**技术栈:** 一句话列出主要语言、框架、关键库
|
|
26
|
-
**定位:** 一句话说明项目是什么
|
|
27
|
-
**核心模块:** 2-3 个关键模块,每个一句话
|
|
28
|
-
|
|
29
|
-
要求:
|
|
30
|
-
- 总字数不超过 500 字
|
|
31
|
-
- 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
|
|
32
|
-
- 不要罗列每个文件/目录,只说关键信息
|
|
33
|
-
- 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
|
|
34
|
-
|
|
35
|
-
Read package.json, README.md and other key files, then summarize:
|
|
36
|
-
|
|
37
|
-
**Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
|
|
38
|
-
**Overview:** One sentence describing what this project is
|
|
39
|
-
**Core Modules:** 2-3 key modules, one sentence each
|
|
40
|
-
|
|
41
|
-
Requirements:
|
|
42
|
-
- Keep it under 1000 words
|
|
43
|
-
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
|
-
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},278423,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634);a.s([],952484),a.i(952484),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"409ed0c82178d1e7f500225d0089b30cd36284f589",()=>g.deleteProductGroup,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"609ab0a0753de43d84bbace4355456cf5a948698d4",()=>g.updateProductGroup,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],278423)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0a.zy31._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(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]__0esg88l._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=_0zn.4bi._.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module.exports=[491890,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(933919);async function f(a){return c.db.productGroup.findMany({where:{workspaceId:a},orderBy:{name:"asc"},include:{projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}}})}async function g(a){let b=a.name.trim();if(!b)throw Error("分组名称不能为空");if(!a.workspaceId)throw Error("缺少工作区");try{let e=await c.db.productGroup.create({data:{name:b,description:a.description?.trim()||null,workspaceId:a.workspaceId}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2002"===a.code)throw Error(`分组「${b}」在该工作区已存在`);throw a}}async function h(a,b){let f={};if(void 0!==b.name){let a=b.name.trim();if(!a)throw Error("分组名称不能为空");f.name=a}void 0!==b.description&&(f.description=b.description?.trim()||null);try{let b=await c.db.productGroup.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),b}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError){if("P2002"===a.code)throw Error("同工作区已有同名分组");if("P2025"===a.code)throw Error("分组不存在")}throw a}}async function i(a){try{await c.db.$transaction([c.db.project.updateMany({where:{groupId:a},data:{groupId:null}}),c.db.productGroup.delete({where:{id:a}})]),(0,d.revalidatePath)("/workspaces")}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("分组不存在");throw a}}async function j(a,b){if(b){let[d,e]=await Promise.all([c.db.project.findUnique({where:{id:a},select:{workspaceId:!0}}),c.db.productGroup.findUnique({where:{id:b},select:{workspaceId:!0}})]);if(!d)throw Error("项目不存在");if(!e)throw Error("分组不存在");if(e.workspaceId!==d.workspaceId)throw Error("分组与项目不在同一工作区,不能跨区分组")}try{let e=await c.db.project.update({where:{id:a},data:{groupId:b}});return(0,d.revalidatePath)("/workspaces"),e}catch(a){if(a instanceof e.Prisma.PrismaClientKnownRequestError&&"P2025"===a.code)throw Error("项目不存在");throw a}}(0,a.i(630048).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"40ff151b677eeaf0636f04e8d87327f4046c314c92",null),(0,b.registerServerReference)(g,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",null),(0,b.registerServerReference)(h,"609ab0a0753de43d84bbace4355456cf5a948698d4",null),(0,b.registerServerReference)(i,"409ed0c82178d1e7f500225d0089b30cd36284f589",null),(0,b.registerServerReference)(j,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",null),a.s(["createProductGroup",0,g,"deleteProductGroup",0,i,"getProductGroups",0,f,"setProjectGroup",0,j,"updateProductGroup",0,h])},396904,101844,a=>{"use strict";var b=a.i(815429),c=a.i(761469);function d(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 e(a,b="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===b){let[a,b,c,d,h]=await Promise.allSettled([e(g,"task",f),e(g,"project",f),e(g,"repository",f),e(g,"note",f),e(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(d),...j(h)]}if("task"===b)return(await c.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"===b)return(await c.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"===b)return(await c.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"===b){if(g.length<3)return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
|
-
FROM "ProjectNote" n
|
|
4
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
5
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
6
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
7
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j));try{return(await c.db.$queryRawUnsafe(`SELECT f.note_id, f.title, f.content,
|
|
8
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
9
|
-
FROM notes_fts f
|
|
10
|
-
JOIN "ProjectNote" n ON n.id = f.note_id
|
|
11
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
12
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
13
|
-
WHERE f.notes_fts MATCH ?
|
|
14
|
-
ORDER BY rank
|
|
15
|
-
LIMIT ?`,g,h)).map(a=>d(a,j))}catch{return(await c.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
16
|
-
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
17
|
-
FROM "ProjectNote" n
|
|
18
|
-
JOIN "Project" p ON p.id = n."projectId"
|
|
19
|
-
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
|
-
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>d(a,j))}}return"asset"===b?(await c.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})):[]}var f=a.i(980999),g=a.i(630048);async function h(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return e(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",null),a.s(["globalSearch",0,h],396904);var i=a.i(924868),j=a.i(522734),k=a.i(814747),l=a.i(188139);async function m(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let d=await c.db.project.findUnique({where:{id:b}});if(!d||!d.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let e=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:f}=await a.A(98813);for(let a of e)if(void 0!==f(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let g=k.default.join(d.localPath,".worktrees");if((0,j.existsSync)(g))try{if((await (0,i.readdir)(g)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function n(b,d){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!d||"string"!=typeof d||!k.default.isAbsolute(d))return{success:!1,error:"目标路径必须是非空的绝对路径"};let e=await c.db.project.findUnique({where:{id:b}});if(!e||!e.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let f=e.localPath;if(d===f)return{success:!1,error:"源路径和目标路径相同"};if((await c.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let g=await c.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:h}=await a.A(98813);for(let a of g)if(void 0!==h(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=k.default.join(f,".worktrees");if((0,j.existsSync)(m))try{if((await (0,i.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,j.existsSync)(d))try{if((await (0,i.readdir)(d)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}let n=k.default.dirname(d);try{await (0,i.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,i.rename)(f,d)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};if("EACCES"===a.code||"EPERM"===a.code)return{success:!1,error:`无权限移动到 ${d}`};return{success:!1,error:a.message||"文件系统操作失败"}}return await c.db.project.update({where:{id:b},data:{localPath:d}}),(0,l.revalidatePath)("/workspaces"),{success:!0}}let o=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
|
-
|
|
23
|
-
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
|
-
|
|
25
|
-
**技术栈:** 一句话列出主要语言、框架、关键库
|
|
26
|
-
**定位:** 一句话说明项目是什么
|
|
27
|
-
**核心模块:** 2-3 个关键模块,每个一句话
|
|
28
|
-
|
|
29
|
-
要求:
|
|
30
|
-
- 总字数不超过 500 字
|
|
31
|
-
- 用简洁的 Markdown(加粗标签 + 短句),不要用 ## 大标题和表格
|
|
32
|
-
- 不要罗列每个文件/目录,只说关键信息
|
|
33
|
-
- 中文输出`,p=`Analyze this project directory and generate a brief Markdown project description.
|
|
34
|
-
|
|
35
|
-
Read package.json, README.md and other key files, then summarize:
|
|
36
|
-
|
|
37
|
-
**Tech Stack:** One sentence listing primary languages, frameworks, and key libraries
|
|
38
|
-
**Overview:** One sentence describing what this project is
|
|
39
|
-
**Core Modules:** 2-3 key modules, one sentence each
|
|
40
|
-
|
|
41
|
-
Requirements:
|
|
42
|
-
- Keep it under 1000 words
|
|
43
|
-
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
|
-
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function q(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!k.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(752453),e=await d("en"===c?p:o,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!e)throw Error("AI 分析未返回结果");return e.length>2e3?e.slice(0,2e3).trimEnd()+"\n\n...":e}(0,g.ensureServerEntryExports)([m,n,q]),(0,b.registerServerReference)(m,"4064146185600ce222e9bc8e2316f49c9603a85346",null),(0,b.registerServerReference)(n,"609c9417a5d51517e959d27ee390da88a7c0542bbc",null),(0,b.registerServerReference)(q,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",null),a.s(["analyzeProjectDirectory",0,q,"checkMigrationSafety",0,m,"migrateProjectPath",0,n],101844)},766779,a=>{"use strict";var b=a.i(244256),c=a.i(495370),d=a.i(396904),e=a.i(980999),f=a.i(101844),g=a.i(491890),h=a.i(563736),i=a.i(4634);a.s([],920241),a.i(920241),a.s(["00106d4fcb4d66916535f592a22f2432e998f5c560",()=>e.getActualWsPort,"001de1e475f046aa339c23ec372c92b714d1f9a6f5",()=>i.getOnboardingStatus,"0069b845452752e9c446565ecc887751ceb88f8302",()=>b.getWorkspacesWithProjects,"00abe22e017185b0aac474fd740ae59ad8cbff33a3",()=>h.listAllExtensionStatus,"40107191906b7bd9007e9c955d43addd4eb4a5a687",()=>i.setOnboardingProgress,"403508781c13bf9d40b2fa51d399f5ca275af8be45",()=>c.createLabel,"4036232b529af0e5d065629d1878dc1a6e82f9ab45",()=>b.createWorkspace,"403629f8c3d76ad7fbefdd04b8cdbe84c9ffc95758",()=>c.deleteLabel,"4036f95ed5dc32f339eacad6c635ee66f9e026db46",()=>h.checkExtension,"4047d8634587ecb96fe8459ea07f040d7d207f1c96",()=>i.dispatchTaskCompletionEvent,"404b88257c253f72e32b690fbfdc864cdbe54233e3",()=>e.resolveGitLocalPath,"404f73addc943bb8455a63e7ceecb59ca89b3e445c",()=>b.deleteWorkspace,"4064146185600ce222e9bc8e2316f49c9603a85346",()=>f.checkMigrationSafety,"406b9ebf02d3183f04e594426f6a5ebe41a65dee0d",()=>h.installExtension,"4075ec4df24bd89711034f15cca9eb240df9f3f473",()=>e.getConfigValues,"40a4ee923ff0b325baafa490ce673265b4bf3061a2",()=>c.getLabelsForWorkspace,"40adbba8c12c1bdb8072b324eb5ae7afff35a67271",()=>e.resolveGitLocalPathWithSource,"40b03ac97723fe879d9efe21b71e56c5a984151d22",()=>b.createProject,"40b59a54ce49a5ad9953b31159f64bfd2ee911e145",()=>h.uninstallExtension,"40da1ea17360e58bedf2e6bf6d1f53246b673da623",()=>b.reorderWorkspaces,"40e3cf8e78797104c14a8e7539e4e904ca54efa90c",()=>g.createProductGroup,"40ff151b677eeaf0636f04e8d87327f4046c314c92",()=>g.getProductGroups,"60307d44ba04bf0330743c985bf6cc4ce0876e8b49",()=>d.globalSearch,"6036f5d613735f83ba2f8cc49ca9b64fd1c0c0beab",()=>f.analyzeProjectDirectory,"603aca60338da224813e09368e73f008feefa9a4fe",()=>i.completeOnboarding,"609c9417a5d51517e959d27ee390da88a7c0542bbc",()=>f.migrateProjectPath,"609f47ef812de3d5f05ec0e95d0b9bc0490c684bdc",()=>g.setProjectGroup,"60abd5e499bef8cd1d081b74113f0e817026a864e7",()=>e.getConfigValue,"60bc9436cec7b2f26cf49b181625cda9710fd3e4cc",()=>b.updateWorkspace,"60cfe2e76434418decb73fd3d25bf587d7b5ad1695",()=>e.setConfigValue,"60d98f261d5da4342103e4c5be854bfdc7b172158c",()=>i.setOnboardingExtensions],766779)},76052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_0ui-~7g._.js"].map(b=>a.l(b))).then(()=>b(492067)))},98813,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e79g0v._.js"].map(b=>a.l(b))).then(()=>b(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]__0.0m12b._.js"].map(b=>a.l(b))).then(()=>b(897667)))}];
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=_1086w4p._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0er7rzd._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0f0v8_~._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0fr6fzy._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0k04rl3._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0sq6aqm._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0ui-~7g._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_0z-gn78._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[492067,a=>{"use strict";a.i(233405);var b=a.i(761469);async function c(c,d){let{TOWER_LABEL_NAME:e}=await a.A(765789),f=await b.db.task.findFirst({where:{projectId:c,labels:{some:{label:{name:e,isBuiltin:!0}}}},select:{id:!0}});if(f)return f.id;let g=await b.db.label.findFirst({where:{name:e,isBuiltin:!0}});return(await b.db.task.create({data:{title:`${d}-Tower`,description:`Project workbench for ${d}`,projectId:c,status:"TODO",priority:"LOW",order:0,...g?{labels:{create:{labelId:g.id}}}:{}},select:{id:!0}})).id}a.i(26683).logger.create("instrumentation"),a.s(["ensureTowerTask",0,c])},888269,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_pty_orphan-reaper_ts_0a0qmlo._.js"].map(b=>a.l(b))).then(()=>b(328521)))},765789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_constants_ts_0_7xt06._.js"].map(b=>a.l(b))).then(()=>b(103071)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_13c4a4g._.js.map
|