tower-studio 0.2.6 → 0.2.7
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 +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +47 -47
- 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/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/adapters/test/route.js +1 -1
- package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -2
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +3 -2
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js +1 -2
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js +3 -2
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +2 -3
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js +3 -2
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js +2 -3
- package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +2 -3
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js +2 -3
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +3 -4
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +81 -81
- package/.next/standalone/.next/server/app/missions/page.js +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +47 -47
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +16 -16
- package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +47 -47
- 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 +1 -1
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +60 -60
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- 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/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +16 -16
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +102 -102
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +84 -84
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +77 -77
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +76 -76
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +47 -47
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +83 -83
- 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 +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +90 -90
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +61 -61
- 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_0h5yr8p.js +1 -1
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00mjz~7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__028ucbo._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03gi3ue._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07f7~6u._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09p152b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b-ib~7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c513um._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d~z6xs._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e44k3f._.js +20 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h.z9fm._.js +11 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lioghc._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mw.9lg._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ogh_qu._.js +20 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tys9pv._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0dsv3wl._.js → [root-of-the-server]__0wbndoc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12c9noi._.js +3 -0
- package/.next/standalone/.next/server/chunks/{_0trog_r._.js → _0_eodxe._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{src_01ztl3b._.js → src_0bkvm8c._.js} +2 -2
- package/.next/standalone/.next/server/chunks/src_0weytpz._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_0ba0ntr._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_ai_0q-~me1._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_ai_0xx6y51._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_ai_providers_index_ts_0.y.3vp._.js +1 -1
- 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]__0gcf4k3._.js → [root-of-the-server]__0.ukame._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__006_qh0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0tf4zp_._.js → [root-of-the-server]__01j8ix6._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02px.0y._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03ebsif._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vh-egg._.js → [root-of-the-server]__04pq37d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__13k4vkg._.js → [root-of-the-server]__07_b6c.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08n5qbf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0k3isnk._.js → [root-of-the-server]__09kc.q_._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11bequ2._.js → [root-of-the-server]__0ca_ueb._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0y.nw7l._.js → [root-of-the-server]__0dsdplu._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__079.nog._.js → [root-of-the-server]__0jo1r7k._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l43.5g._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0q7ho54._.js → [root-of-the-server]__0n.cuy2._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0nbj.ml._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-yld.d._.js → [root-of-the-server]__0o8k4pc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pm2~fu._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ps55l6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ribsk4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rjue04._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.5rcav._.js → [root-of-the-server]__0tc6uh2._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0c4.z1s._.js → [root-of-the-server]__0u4gc4b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0gaa~xc._.js → [root-of-the-server]__0v2eslh._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wjg_.n._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wlmzzq._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0wvyks.._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zbmoit._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0nwue~m._.js → [root-of-the-server]__0zujp5l._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ghfuuv._.js → [root-of-the-server]__0~a-emb._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_02v3fjp._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_04b71ua._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_05h.8a~._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_07~0_w6._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_08w-r6e._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_l8.dg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0f8jvpw._.js → _0_q~7z7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0vqyzrr._.js → _0b0.-sj._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_00d1y-k._.js → _0bw-tx8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0i2usny._.js → _0c-49y3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0fri5n~._.js → _0c-jnbs._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0ds6nk2._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_08t2xag._.js → _0f6u19w._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0_~ftjv._.js → _0fob8fc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0i4__mf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0ihq._v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0ah80pn._.js → _0niubv5._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0rfo51k._.js → _0pd0.8f._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0r9w-k8._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0_gqtgq._.js → _0rbai5c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0rbctq7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0rt8hus._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0ep3sg_._.js → _0y-7tle._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_054w82_._.js → _0ysygps._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_03xwww2._.js → _0ysyq9g._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_049.box._.js → _0zgu282._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_086yn8o._.js → _0zszi6-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0~80adm._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/src_095o8x6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_13jha60._.js +1 -1
- 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]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_08n755q._.js → src_lib_07rspg0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0tb2yya._.js → src_lib_0_8frs_._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_123jf_a._.js → src_lib_0fjk3hr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_12ulcxj._.js → src_lib_0g-92s-._.js} +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +356 -356
- package/.next/standalone/.next/static/chunks/{0hxgzql5.szyz.js → 00.52653v5c~c.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0r7jm27~cp-vs.js → 00j0mdc41wa44.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0nrbltth-7m~e.js → 02edbrlq~2uyx.js} +1 -1
- package/.next/standalone/.next/static/chunks/05-ui_o~3irq_.js +5 -0
- package/.next/standalone/.next/static/chunks/05hls.3r4bz.0.js +1 -0
- package/.next/standalone/.next/static/chunks/{07i~~ygu~oi26.js → 08~e63d2q~cam.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0m2lubto0vt0x.js → 0bw4ahlj4~l~g.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0fovq74l0wh7c.js → 0ft77ybyq903..js} +1 -1
- package/.next/standalone/.next/static/chunks/0fxm-wv..y_a_.js +5 -0
- package/.next/standalone/.next/static/chunks/{0v9ahxdsn0mse.js → 0i55dediewjp5.js} +1 -1
- package/.next/standalone/.next/static/chunks/0l3mmc866npw4.js +2 -0
- package/.next/standalone/.next/static/chunks/0nno5if2x1mvs.js +1 -0
- package/.next/standalone/.next/static/chunks/0q-u-hhre1uyw.js +1 -0
- package/.next/standalone/.next/static/chunks/0qazzw-pr_sv7.js +1 -0
- package/.next/standalone/.next/static/chunks/{06shpikm5rcmu.js → 0r1mkt5qs~s6m.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ee.~~ae-vl_q.js → 0v~pz9e87t99b.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jscst0zjd2az.js → 0w3jww1m3k77x.js} +1 -1
- package/.next/standalone/.next/static/chunks/0z01g02xstbqe.js +1 -0
- package/.next/standalone/.next/static/chunks/0~27mkhc9s5k2.js +5 -0
- package/.next/standalone/.next/static/chunks/{04-7c5m91nvj1.js → 117qu902jput3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0mfgulw-d49o9.js → 142w-q8.7m3kl.js} +1 -1
- package/.next/standalone/package.json +1 -1
- package/dist/mcp-server.cjs +223 -33
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.9mj3v._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05353yb._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09h3i6m._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_a8-jq._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_mbhor._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jmqy_3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j~qauc._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nwxhai._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o4z8qp._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0p_ii~p._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0puw1af._.js +0 -20
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0py_jdb._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qie1gs._.js +0 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qz9-me._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w2w3x.._.js +0 -20
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05kq890._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qe~p-n._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11ko84j._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12pnl8n._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/_0-pqb_c._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/_05-r00y._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/_0h_~oum._.js +0 -7
- package/.next/standalone/.next/static/chunks/0.zipr1bga3lu.js +0 -1
- package/.next/standalone/.next/static/chunks/037-verumdykv.js +0 -5
- package/.next/standalone/.next/static/chunks/082cedbq4pp.-.js +0 -1
- package/.next/standalone/.next/static/chunks/089ktlh~nim1x.js +0 -1
- package/.next/standalone/.next/static/chunks/0m~ltp.wfnbf7.js +0 -5
- package/.next/standalone/.next/static/chunks/0tk-ju9xhoh68.js +0 -5
- package/.next/standalone/.next/static/chunks/0w9x-ap4dcwy..js +0 -1
- package/.next/standalone/.next/static/chunks/17cayeebhpt~w.js +0 -2
- package/.next/standalone/.next/static/chunks/186ahmq856rfj.js +0 -1
- /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{VGoiH5uRfCRm6SKXNPZoz → om3SyUw4eAwMA0KLhpSGh}/_ssgManifest.js +0 -0
package/dist/mcp-server.cjs
CHANGED
|
@@ -26318,9 +26318,35 @@ var init_worktree = __esm({
|
|
|
26318
26318
|
});
|
|
26319
26319
|
|
|
26320
26320
|
// src/lib/platform.ts
|
|
26321
|
+
var platform_exports = {};
|
|
26322
|
+
__export2(platform_exports, {
|
|
26323
|
+
detectShells: () => detectShells,
|
|
26324
|
+
detectTerminalApps: () => detectTerminalApps,
|
|
26325
|
+
ensurePathInEnv: () => ensurePathInEnv,
|
|
26326
|
+
isWindows: () => isWindows,
|
|
26327
|
+
normalizePath: () => normalizePath,
|
|
26328
|
+
quoteForCmd: () => quoteForCmd,
|
|
26329
|
+
redactEnvForLogs: () => redactEnvForLogs,
|
|
26330
|
+
resolveCommandPath: () => resolveCommandPath,
|
|
26331
|
+
resolveCommandPathSync: () => resolveCommandPathSync,
|
|
26332
|
+
resolveSpawnTarget: () => resolveSpawnTarget,
|
|
26333
|
+
resolveSpawnTargetSync: () => resolveSpawnTargetSync,
|
|
26334
|
+
stripClaudeNestingEnv: () => stripClaudeNestingEnv,
|
|
26335
|
+
toForwardSlash: () => toForwardSlash
|
|
26336
|
+
});
|
|
26321
26337
|
function isWindows(platform = process.platform) {
|
|
26322
26338
|
return platform === "win32";
|
|
26323
26339
|
}
|
|
26340
|
+
function normalizePath(p2, platform = process.platform) {
|
|
26341
|
+
const normalized = import_node_path2.default.normalize(p2);
|
|
26342
|
+
if (isWindows(platform)) {
|
|
26343
|
+
return normalized.replace(/\//g, "\\");
|
|
26344
|
+
}
|
|
26345
|
+
return normalized.replace(/\\/g, "/");
|
|
26346
|
+
}
|
|
26347
|
+
function toForwardSlash(p2) {
|
|
26348
|
+
return p2.replace(/\\/g, "/");
|
|
26349
|
+
}
|
|
26324
26350
|
function quoteForCmd(arg) {
|
|
26325
26351
|
const flat = arg.replace(/\r\n|\r|\n/g, " ");
|
|
26326
26352
|
if (!flat.length) return '""';
|
|
@@ -26346,6 +26372,39 @@ function stripClaudeNestingEnv(env) {
|
|
|
26346
26372
|
}
|
|
26347
26373
|
return cleaned;
|
|
26348
26374
|
}
|
|
26375
|
+
function redactEnvForLogs(env) {
|
|
26376
|
+
const result = {};
|
|
26377
|
+
for (const [k2, v2] of Object.entries(env)) {
|
|
26378
|
+
if (v2 === void 0) continue;
|
|
26379
|
+
result[k2] = SENSITIVE_KEY_RE.test(k2) ? "***REDACTED***" : v2;
|
|
26380
|
+
}
|
|
26381
|
+
return result;
|
|
26382
|
+
}
|
|
26383
|
+
function windowsPathExts(env) {
|
|
26384
|
+
return (env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean);
|
|
26385
|
+
}
|
|
26386
|
+
async function resolveCommandPath(command, opts = {}) {
|
|
26387
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
26388
|
+
const env = opts.env ?? process.env;
|
|
26389
|
+
const platform = opts.platform ?? process.platform;
|
|
26390
|
+
const hasPathSeparator = command.includes("/") || command.includes("\\");
|
|
26391
|
+
if (hasPathSeparator) {
|
|
26392
|
+
const absolute = import_node_path2.default.isAbsolute(command) ? command : import_node_path2.default.resolve(cwd, command);
|
|
26393
|
+
return await pathExists(absolute, platform) ? absolute : null;
|
|
26394
|
+
}
|
|
26395
|
+
const pathValue = env.PATH ?? env.Path ?? "";
|
|
26396
|
+
const delimiter = isWindows(platform) ? ";" : ":";
|
|
26397
|
+
const dirs = pathValue.split(delimiter).filter(Boolean);
|
|
26398
|
+
const exts = isWindows(platform) ? windowsPathExts(env) : [""];
|
|
26399
|
+
const hasExtension = isWindows(platform) && import_node_path2.default.extname(command).length > 0;
|
|
26400
|
+
for (const dir of dirs) {
|
|
26401
|
+
const candidates = isWindows(platform) ? hasExtension ? [import_node_path2.default.join(dir, command)] : exts.map((ext) => import_node_path2.default.join(dir, `${command}${ext}`)) : [import_node_path2.default.join(dir, command)];
|
|
26402
|
+
for (const candidate of candidates) {
|
|
26403
|
+
if (await pathExists(candidate, platform)) return candidate;
|
|
26404
|
+
}
|
|
26405
|
+
}
|
|
26406
|
+
return null;
|
|
26407
|
+
}
|
|
26349
26408
|
function resolveCommandPathSync(command, platform = process.platform, exec = defaultExecSync) {
|
|
26350
26409
|
if (import_node_path2.default.extname(command) || command.includes("/") || command.includes("\\")) {
|
|
26351
26410
|
return command;
|
|
@@ -26371,6 +26430,13 @@ function resolveCommandPathSync(command, platform = process.platform, exec = def
|
|
|
26371
26430
|
}
|
|
26372
26431
|
return command;
|
|
26373
26432
|
}
|
|
26433
|
+
async function resolveSpawnTarget(command, args, opts = {}) {
|
|
26434
|
+
const env = opts.env ?? process.env;
|
|
26435
|
+
const platform = opts.platform ?? process.platform;
|
|
26436
|
+
const resolved = await resolveCommandPath(command, opts);
|
|
26437
|
+
const executable = resolved ?? command;
|
|
26438
|
+
return wrapForPlatform(executable, args, env, platform);
|
|
26439
|
+
}
|
|
26374
26440
|
function resolveSpawnTargetSync(command, args, platform = process.platform, exec) {
|
|
26375
26441
|
const resolved = resolveCommandPathSync(command, platform, exec);
|
|
26376
26442
|
return wrapForPlatform(resolved, args, process.env, platform);
|
|
@@ -26390,10 +26456,123 @@ function wrapForPlatform(executable, args, env, platform) {
|
|
|
26390
26456
|
}
|
|
26391
26457
|
return { command: executable, args };
|
|
26392
26458
|
}
|
|
26393
|
-
|
|
26459
|
+
async function pathExists(candidate, platform = process.platform) {
|
|
26460
|
+
try {
|
|
26461
|
+
await import_node_fs2.promises.access(candidate, isWindows(platform) ? import_node_fs2.constants.F_OK : import_node_fs2.constants.X_OK);
|
|
26462
|
+
return true;
|
|
26463
|
+
} catch {
|
|
26464
|
+
return false;
|
|
26465
|
+
}
|
|
26466
|
+
}
|
|
26467
|
+
async function detectShells(platform = process.platform) {
|
|
26468
|
+
if (!isWindows(platform)) {
|
|
26469
|
+
return detectUnixShells();
|
|
26470
|
+
}
|
|
26471
|
+
return detectWindowsShells();
|
|
26472
|
+
}
|
|
26473
|
+
async function detectUnixShells() {
|
|
26474
|
+
try {
|
|
26475
|
+
const content = await import_node_fs2.promises.readFile("/etc/shells", "utf-8");
|
|
26476
|
+
const shells = [];
|
|
26477
|
+
const seen = /* @__PURE__ */ new Map();
|
|
26478
|
+
for (const raw of content.split("\n")) {
|
|
26479
|
+
const line = raw.replace(/#.*/, "").trim();
|
|
26480
|
+
if (!line || !line.startsWith("/")) continue;
|
|
26481
|
+
if (!await pathExists(line)) continue;
|
|
26482
|
+
let name = import_node_path2.default.basename(line);
|
|
26483
|
+
const count = seen.get(name) ?? 0;
|
|
26484
|
+
seen.set(name, count + 1);
|
|
26485
|
+
if (count > 0) name = `${name} (${count + 1})`;
|
|
26486
|
+
shells.push({ name, path: line });
|
|
26487
|
+
}
|
|
26488
|
+
return shells;
|
|
26489
|
+
} catch {
|
|
26490
|
+
const defaults = ["/bin/zsh", "/bin/bash", "/bin/sh"];
|
|
26491
|
+
const shells = [];
|
|
26492
|
+
for (const p2 of defaults) {
|
|
26493
|
+
if (await pathExists(p2)) shells.push({ name: import_node_path2.default.basename(p2), path: p2 });
|
|
26494
|
+
}
|
|
26495
|
+
return shells;
|
|
26496
|
+
}
|
|
26497
|
+
}
|
|
26498
|
+
async function detectWindowsShells() {
|
|
26499
|
+
const shells = [];
|
|
26500
|
+
const gitBashCandidates = [];
|
|
26501
|
+
const gitPath = await resolveCommandPath("git", { platform: "win32" });
|
|
26502
|
+
if (gitPath) {
|
|
26503
|
+
const gitRoot = import_node_path2.default.resolve(import_node_path2.default.dirname(gitPath), "..", "..");
|
|
26504
|
+
gitBashCandidates.push(
|
|
26505
|
+
import_node_path2.default.join(gitRoot, "bin", "bash.exe"),
|
|
26506
|
+
import_node_path2.default.join(gitRoot, "usr", "bin", "bash.exe")
|
|
26507
|
+
);
|
|
26508
|
+
}
|
|
26509
|
+
const programDirs = [
|
|
26510
|
+
process.env.ProgramW6432,
|
|
26511
|
+
process.env.ProgramFiles,
|
|
26512
|
+
process.env["ProgramFiles(x86)"],
|
|
26513
|
+
process.env.LocalAppData ? import_node_path2.default.join(process.env.LocalAppData, "Programs") : null
|
|
26514
|
+
].filter(Boolean);
|
|
26515
|
+
for (const dir of programDirs) {
|
|
26516
|
+
gitBashCandidates.push(
|
|
26517
|
+
import_node_path2.default.join(dir, "Git", "bin", "bash.exe"),
|
|
26518
|
+
import_node_path2.default.join(dir, "Git", "usr", "bin", "bash.exe")
|
|
26519
|
+
);
|
|
26520
|
+
}
|
|
26521
|
+
const home = process.env.USERPROFILE ?? "";
|
|
26522
|
+
if (home) {
|
|
26523
|
+
gitBashCandidates.push(
|
|
26524
|
+
import_node_path2.default.join(home, "scoop", "apps", "git", "current", "bin", "bash.exe")
|
|
26525
|
+
);
|
|
26526
|
+
}
|
|
26527
|
+
if (process.env.CLAUDE_CODE_GIT_BASH_PATH) {
|
|
26528
|
+
gitBashCandidates.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH);
|
|
26529
|
+
}
|
|
26530
|
+
for (const candidate of gitBashCandidates) {
|
|
26531
|
+
if (await pathExists(candidate, "win32")) {
|
|
26532
|
+
shells.push({ name: "Git Bash", path: candidate });
|
|
26533
|
+
break;
|
|
26534
|
+
}
|
|
26535
|
+
}
|
|
26536
|
+
const pwshPath = await resolveCommandPath("pwsh", { platform: "win32" });
|
|
26537
|
+
if (pwshPath) {
|
|
26538
|
+
shells.push({ name: "PowerShell", path: pwshPath });
|
|
26539
|
+
}
|
|
26540
|
+
const winDir = process.env.windir ?? "C:\\WINDOWS";
|
|
26541
|
+
const legacyPs = import_node_path2.default.join(winDir, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
|
|
26542
|
+
if (await pathExists(legacyPs, "win32")) {
|
|
26543
|
+
shells.push({ name: "Windows PowerShell", path: legacyPs });
|
|
26544
|
+
}
|
|
26545
|
+
const cmd = process.env.ComSpec ?? import_node_path2.default.join(winDir, "System32", "cmd.exe");
|
|
26546
|
+
if (await pathExists(cmd, "win32")) {
|
|
26547
|
+
shells.push({ name: "Command Prompt", path: cmd });
|
|
26548
|
+
}
|
|
26549
|
+
return shells;
|
|
26550
|
+
}
|
|
26551
|
+
async function detectTerminalApps(platform = process.platform) {
|
|
26552
|
+
if (platform === "darwin") {
|
|
26553
|
+
const results = [];
|
|
26554
|
+
for (const t of MAC_TERMINAL_APPS) {
|
|
26555
|
+
if (await pathExists(`/Applications/${t.bundleName}.app`, platform)) {
|
|
26556
|
+
results.push({ name: t.name, value: t.bundleName });
|
|
26557
|
+
}
|
|
26558
|
+
}
|
|
26559
|
+
return results;
|
|
26560
|
+
}
|
|
26561
|
+
if (isWindows(platform)) {
|
|
26562
|
+
const results = [];
|
|
26563
|
+
const wtPath = await resolveCommandPath("wt", { platform });
|
|
26564
|
+
if (wtPath) {
|
|
26565
|
+
results.push({ name: "Windows Terminal", value: wtPath });
|
|
26566
|
+
}
|
|
26567
|
+
return results;
|
|
26568
|
+
}
|
|
26569
|
+
return [];
|
|
26570
|
+
}
|
|
26571
|
+
var import_node_fs2, import_node_child_process, import_node_path2, CLAUDE_NESTING_VARS, SENSITIVE_KEY_RE, defaultExecSync, MAC_TERMINAL_APPS;
|
|
26394
26572
|
var init_platform = __esm({
|
|
26395
26573
|
"src/lib/platform.ts"() {
|
|
26396
26574
|
"use strict";
|
|
26575
|
+
import_node_fs2 = require("node:fs");
|
|
26397
26576
|
import_node_child_process = require("node:child_process");
|
|
26398
26577
|
import_node_path2 = __toESM(require("node:path"));
|
|
26399
26578
|
CLAUDE_NESTING_VARS = [
|
|
@@ -26402,7 +26581,17 @@ var init_platform = __esm({
|
|
|
26402
26581
|
"CLAUDE_CODE_SESSION",
|
|
26403
26582
|
"CLAUDE_CODE_PARENT_SESSION"
|
|
26404
26583
|
];
|
|
26584
|
+
SENSITIVE_KEY_RE = /key|token|secret|password|passwd|authorization|cookie/i;
|
|
26405
26585
|
defaultExecSync = (cmd) => (0, import_node_child_process.execSync)(cmd, { encoding: "utf-8", timeout: 5e3 });
|
|
26586
|
+
MAC_TERMINAL_APPS = [
|
|
26587
|
+
{ name: "Terminal", bundleName: "Terminal" },
|
|
26588
|
+
{ name: "iTerm2", bundleName: "iTerm" },
|
|
26589
|
+
{ name: "Warp", bundleName: "Warp" },
|
|
26590
|
+
{ name: "Alacritty", bundleName: "Alacritty" },
|
|
26591
|
+
{ name: "WezTerm", bundleName: "WezTerm" },
|
|
26592
|
+
{ name: "kitty", bundleName: "kitty" },
|
|
26593
|
+
{ name: "Hyper", bundleName: "Hyper" }
|
|
26594
|
+
];
|
|
26406
26595
|
}
|
|
26407
26596
|
});
|
|
26408
26597
|
|
|
@@ -26417,11 +26606,11 @@ var init_tower_paths = __esm({
|
|
|
26417
26606
|
});
|
|
26418
26607
|
|
|
26419
26608
|
// src/lib/ai/adapters/cli/claude-cli-adapter.ts
|
|
26420
|
-
var
|
|
26609
|
+
var fs3, os2, path4, CLAUDE_MODELS, ClaudeCliAdapter;
|
|
26421
26610
|
var init_claude_cli_adapter = __esm({
|
|
26422
26611
|
"src/lib/ai/adapters/cli/claude-cli-adapter.ts"() {
|
|
26423
26612
|
"use strict";
|
|
26424
|
-
|
|
26613
|
+
fs3 = __toESM(require("node:fs"));
|
|
26425
26614
|
os2 = __toESM(require("node:os"));
|
|
26426
26615
|
path4 = __toESM(require("node:path"));
|
|
26427
26616
|
init_platform();
|
|
@@ -26619,7 +26808,7 @@ var init_claude_cli_adapter = __esm({
|
|
|
26619
26808
|
async installSkill(skillName, sourceDir) {
|
|
26620
26809
|
const target = path4.join(this.getConfigDir(), "skills", skillName);
|
|
26621
26810
|
try {
|
|
26622
|
-
if (!
|
|
26811
|
+
if (!fs3.existsSync(sourceDir)) {
|
|
26623
26812
|
return {
|
|
26624
26813
|
ok: false,
|
|
26625
26814
|
method: "symlink",
|
|
@@ -26627,15 +26816,15 @@ var init_claude_cli_adapter = __esm({
|
|
|
26627
26816
|
error: `Source skill dir does not exist: ${sourceDir}`
|
|
26628
26817
|
};
|
|
26629
26818
|
}
|
|
26630
|
-
|
|
26631
|
-
const existing = await
|
|
26819
|
+
fs3.mkdirSync(path4.dirname(target), { recursive: true });
|
|
26820
|
+
const existing = await fs3.promises.lstat(target).catch(() => null);
|
|
26632
26821
|
if (existing) {
|
|
26633
26822
|
if (existing.isSymbolicLink()) {
|
|
26634
|
-
const current = await
|
|
26823
|
+
const current = await fs3.promises.readlink(target);
|
|
26635
26824
|
if (path4.resolve(current) === path4.resolve(sourceDir)) {
|
|
26636
26825
|
return { ok: true, method: "symlink", detail: `${target} \u2192 ${sourceDir} (already)` };
|
|
26637
26826
|
}
|
|
26638
|
-
await
|
|
26827
|
+
await fs3.promises.unlink(target);
|
|
26639
26828
|
} else {
|
|
26640
26829
|
return {
|
|
26641
26830
|
ok: false,
|
|
@@ -26645,7 +26834,7 @@ var init_claude_cli_adapter = __esm({
|
|
|
26645
26834
|
};
|
|
26646
26835
|
}
|
|
26647
26836
|
}
|
|
26648
|
-
await
|
|
26837
|
+
await fs3.promises.symlink(sourceDir, target, "dir");
|
|
26649
26838
|
return { ok: true, method: "symlink", detail: `${target} \u2192 ${sourceDir}` };
|
|
26650
26839
|
} catch (err) {
|
|
26651
26840
|
return {
|
|
@@ -26659,7 +26848,7 @@ var init_claude_cli_adapter = __esm({
|
|
|
26659
26848
|
async uninstallSkill(skillName) {
|
|
26660
26849
|
const target = path4.join(this.getConfigDir(), "skills", skillName);
|
|
26661
26850
|
try {
|
|
26662
|
-
const stat = await
|
|
26851
|
+
const stat = await fs3.promises.lstat(target).catch(() => null);
|
|
26663
26852
|
if (!stat) return { ok: true, method: "symlink", detail: `${target} (already absent)` };
|
|
26664
26853
|
if (!stat.isSymbolicLink()) {
|
|
26665
26854
|
return {
|
|
@@ -26669,7 +26858,7 @@ var init_claude_cli_adapter = __esm({
|
|
|
26669
26858
|
error: `Refusing to remove non-symlink at ${target}`
|
|
26670
26859
|
};
|
|
26671
26860
|
}
|
|
26672
|
-
await
|
|
26861
|
+
await fs3.promises.unlink(target);
|
|
26673
26862
|
return { ok: true, method: "symlink", detail: target };
|
|
26674
26863
|
} catch (err) {
|
|
26675
26864
|
return {
|
|
@@ -26683,10 +26872,10 @@ var init_claude_cli_adapter = __esm({
|
|
|
26683
26872
|
async isSkillInstalled(skillName, expectedSourceDir) {
|
|
26684
26873
|
const target = path4.join(this.getConfigDir(), "skills", skillName);
|
|
26685
26874
|
try {
|
|
26686
|
-
const stat = await
|
|
26875
|
+
const stat = await fs3.promises.lstat(target);
|
|
26687
26876
|
if (!stat.isSymbolicLink()) return false;
|
|
26688
26877
|
if (!expectedSourceDir) return true;
|
|
26689
|
-
const current = await
|
|
26878
|
+
const current = await fs3.promises.readlink(target);
|
|
26690
26879
|
const resolved = path4.isAbsolute(current) ? current : path4.resolve(path4.dirname(target), current);
|
|
26691
26880
|
return path4.resolve(resolved) === path4.resolve(expectedSourceDir);
|
|
26692
26881
|
} catch {
|
|
@@ -26712,9 +26901,10 @@ var init_claude_cli_adapter = __esm({
|
|
|
26712
26901
|
try {
|
|
26713
26902
|
const { execFile } = await import("child_process");
|
|
26714
26903
|
const { promisify } = await import("util");
|
|
26904
|
+
const { resolveSpawnTarget: resolveSpawnTarget2 } = await Promise.resolve().then(() => (init_platform(), platform_exports));
|
|
26715
26905
|
const execFileAsync = promisify(execFile);
|
|
26716
|
-
const
|
|
26717
|
-
const { stdout } = await execFileAsync(
|
|
26906
|
+
const target = await resolveSpawnTarget2(this.resolveCommand(), ["--version"]);
|
|
26907
|
+
const { stdout } = await execFileAsync(target.command, target.args, { timeout: 5e3 });
|
|
26718
26908
|
return stdout.trim() || null;
|
|
26719
26909
|
} catch {
|
|
26720
26910
|
return null;
|
|
@@ -26735,10 +26925,10 @@ var init_claude_cli_adapter = __esm({
|
|
|
26735
26925
|
getApiKeyInfo() {
|
|
26736
26926
|
return { envVar: "ANTHROPIC_API_KEY", required: false };
|
|
26737
26927
|
}
|
|
26738
|
-
buildHelloProbeArgs() {
|
|
26928
|
+
buildHelloProbeArgs(prompt) {
|
|
26739
26929
|
return {
|
|
26740
26930
|
command: this.resolveCommand(),
|
|
26741
|
-
args: ["--print",
|
|
26931
|
+
args: ["--print", prompt, "--output-format", "stream-json", "--verbose"]
|
|
26742
26932
|
};
|
|
26743
26933
|
}
|
|
26744
26934
|
/** Resolve claude binary — env var > platform-aware resolution.
|
|
@@ -26753,15 +26943,15 @@ var init_claude_cli_adapter = __esm({
|
|
|
26753
26943
|
}
|
|
26754
26944
|
readSettings() {
|
|
26755
26945
|
try {
|
|
26756
|
-
return JSON.parse(
|
|
26946
|
+
return JSON.parse(fs3.readFileSync(this.getSettingsPath(), "utf-8"));
|
|
26757
26947
|
} catch {
|
|
26758
26948
|
return {};
|
|
26759
26949
|
}
|
|
26760
26950
|
}
|
|
26761
26951
|
writeSettings(data) {
|
|
26762
26952
|
const dir = this.getConfigDir();
|
|
26763
|
-
if (!
|
|
26764
|
-
|
|
26953
|
+
if (!fs3.existsSync(dir)) fs3.mkdirSync(dir, { recursive: true });
|
|
26954
|
+
fs3.writeFileSync(this.getSettingsPath(), JSON.stringify(data, null, 2), "utf-8");
|
|
26765
26955
|
}
|
|
26766
26956
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26767
26957
|
getHookArray(hooks, event) {
|
|
@@ -47693,7 +47883,7 @@ var require_windowsPtyAgent = __commonJS({
|
|
|
47693
47883
|
"use strict";
|
|
47694
47884
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
47695
47885
|
exports2.argsToCommandLine = exports2.WindowsPtyAgent = void 0;
|
|
47696
|
-
var
|
|
47886
|
+
var fs5 = require("fs");
|
|
47697
47887
|
var os4 = require("os");
|
|
47698
47888
|
var path6 = require("path");
|
|
47699
47889
|
var child_process_1 = require("child_process");
|
|
@@ -47752,7 +47942,7 @@ var require_windowsPtyAgent = __commonJS({
|
|
|
47752
47942
|
this._outSocket.on("connect", function() {
|
|
47753
47943
|
_this._outSocket.emit("ready_datapipe");
|
|
47754
47944
|
});
|
|
47755
|
-
var inSocketFD =
|
|
47945
|
+
var inSocketFD = fs5.openSync(term.conin, "w");
|
|
47756
47946
|
this._inSocket = new net_1.Socket({
|
|
47757
47947
|
fd: inSocketFD,
|
|
47758
47948
|
readable: false,
|
|
@@ -48186,7 +48376,7 @@ var require_unixTerminal = __commonJS({
|
|
|
48186
48376
|
})();
|
|
48187
48377
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
48188
48378
|
exports2.UnixTerminal = void 0;
|
|
48189
|
-
var
|
|
48379
|
+
var fs5 = require("fs");
|
|
48190
48380
|
var path6 = require("path");
|
|
48191
48381
|
var tty = require("tty");
|
|
48192
48382
|
var terminal_1 = require_terminal();
|
|
@@ -48449,7 +48639,7 @@ var require_unixTerminal = __commonJS({
|
|
|
48449
48639
|
return;
|
|
48450
48640
|
}
|
|
48451
48641
|
var task = this._writeQueue[0];
|
|
48452
|
-
|
|
48642
|
+
fs5.write(this._fd, task.buffer, task.offset, function(err, written) {
|
|
48453
48643
|
if (err) {
|
|
48454
48644
|
if ("code" in err && err.code === "EAGAIN") {
|
|
48455
48645
|
_this._writeImmediate = setImmediate(function() {
|
|
@@ -49803,7 +49993,7 @@ var knowledgeTools = {
|
|
|
49803
49993
|
|
|
49804
49994
|
// src/mcp/tools/note-asset-tools.ts
|
|
49805
49995
|
init_zod();
|
|
49806
|
-
var
|
|
49996
|
+
var fs4 = __toESM(require("node:fs"));
|
|
49807
49997
|
var path5 = __toESM(require("node:path"));
|
|
49808
49998
|
|
|
49809
49999
|
// src/lib/fts.ts
|
|
@@ -49960,17 +50150,17 @@ async function handleManageAssets(args) {
|
|
|
49960
50150
|
const filename = args.filename ?? path5.basename(args.sourcePath);
|
|
49961
50151
|
const destPath = path5.join(assetsDir, filename);
|
|
49962
50152
|
try {
|
|
49963
|
-
|
|
50153
|
+
fs4.renameSync(args.sourcePath, destPath);
|
|
49964
50154
|
} catch (err) {
|
|
49965
50155
|
const nodeErr = err;
|
|
49966
50156
|
if (nodeErr.code === "EXDEV") {
|
|
49967
|
-
|
|
49968
|
-
|
|
50157
|
+
fs4.copyFileSync(args.sourcePath, destPath);
|
|
50158
|
+
fs4.unlinkSync(args.sourcePath);
|
|
49969
50159
|
} else {
|
|
49970
50160
|
throw err;
|
|
49971
50161
|
}
|
|
49972
50162
|
}
|
|
49973
|
-
const stats =
|
|
50163
|
+
const stats = fs4.statSync(destPath);
|
|
49974
50164
|
const asset = await db.projectAsset.create({
|
|
49975
50165
|
data: {
|
|
49976
50166
|
filename,
|
|
@@ -49996,13 +50186,13 @@ async function handleManageAssets(args) {
|
|
|
49996
50186
|
filename = `upload-${Date.now()}${ext}`;
|
|
49997
50187
|
}
|
|
49998
50188
|
let destPath = path5.join(assetsDir, filename);
|
|
49999
|
-
if (
|
|
50189
|
+
if (fs4.existsSync(destPath)) {
|
|
50000
50190
|
const ext = path5.extname(filename);
|
|
50001
50191
|
const base = path5.basename(filename, ext);
|
|
50002
50192
|
filename = `${base}-${Date.now()}${ext}`;
|
|
50003
50193
|
destPath = path5.join(assetsDir, filename);
|
|
50004
50194
|
}
|
|
50005
|
-
|
|
50195
|
+
fs4.writeFileSync(destPath, buffer);
|
|
50006
50196
|
const asset = await db.projectAsset.create({
|
|
50007
50197
|
data: {
|
|
50008
50198
|
filename,
|
|
@@ -50034,8 +50224,8 @@ async function handleManageAssets(args) {
|
|
|
50034
50224
|
throw new Error("assetId required");
|
|
50035
50225
|
}
|
|
50036
50226
|
const asset = await db.projectAsset.findUnique({ where: { id: args.assetId } });
|
|
50037
|
-
if (asset?.path &&
|
|
50038
|
-
|
|
50227
|
+
if (asset?.path && fs4.existsSync(asset.path)) {
|
|
50228
|
+
fs4.unlinkSync(asset.path);
|
|
50039
50229
|
}
|
|
50040
50230
|
await db.projectAsset.delete({ where: { id: args.assetId } });
|
|
50041
50231
|
return { deleted: true, assetId: args.assetId };
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,e=>e.a(async(t,r)=>{try{let t=await e.y("ws-4df7fc762dfa9a52");e.n(t),r()}catch(e){r(e)}},!0),504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},192520,e=>{"use strict";let t;var r=e.i(750227),a=e.i(660526),n=e.i(902157);function s(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,a.homedir)(),".tower"),(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(s(),"assistant");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(s(),"backups");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=(0,r.join)(s(),"storage");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(s(),"database"),(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,s])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},482819,(e,t,r)=>{"use strict";t.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return a.registerServerReference}});let a=e.r(482819)},86708,(e,t,r)=>{"use strict";function a(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return a}})},843793,e=>{"use strict";var t=e.i(933919);let r=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{r.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{r.$disconnect().catch(()=>{})}),e.s(["db",0,r])},572173,e=>{"use strict";var t=e.i(843793);async function r(e,r){let a=await t.db.systemConfig.findUnique({where:{key:e}});if(!a)return r;try{return JSON.parse(a.value)}catch{return r}}e.s(["readConfigValue",0,r])},658053,e=>{"use strict";e.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},687769,(e,t,r)=>{t.exports=e.x("node:events",()=>require("node:events"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},899871,(e,t,r)=>{t.exports=e.x("node:string_decoder",()=>require("node:string_decoder"))},449719,(e,t,r)=>{t.exports=e.x("assert",()=>require("assert"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},57328,(e,t,r)=>{t.exports=e.x("node:assert",()=>require("node:assert"))},276534,e=>{"use strict";e.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"system.maxReadableFileBytes":{defaultValue:5242880,type:"number",label:"Max Readable File Size (bytes)"},"system.backupDir":{defaultValue:"",type:"string",label:"Backup Directory"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"search.codeTimeoutSec":{defaultValue:30,type:"number",label:"Code Search Timeout (seconds)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"}}])},61920,e=>{"use strict";var t=e.i(446786),r=e.i(814747);function a(e){return e.startsWith("~/")?r.default.join(t.default.homedir(),e.slice(2)):e}function n(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:s(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:s(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}function s(e){return e.replace(/\.git\/?$/,"")}e.s(["gitUrlToLocalPath",0,function(e){let t=e.trim();if(!t)return"";try{let e=n(t);if(!e)return"";let{host:s,pathSegments:i}=e;if("code.iflytek.com"===s){let e,t;return a((e=[...i],"osc"===e[0]&&"_source"===e[1]&&(e=e.slice(2)),((t=e.indexOf("-"))>0&&(e=e.slice(0,t)),0===e.length)?"":`~/company/${e.join("/")}`))}if("github.com"===s){var r;let e,t;return a((e=(r=i)[0],t=r[1],e&&t?`${"jp-liu"===e?"~/project/i":"~/project/f"}/${t}`:""))}let o=i[i.length-1];return o?a(`~/project/f/${o}`):""}catch{return""}},"matchGitPathRule",0,function(e,t){if(!t.length)return"";let r=e.trim();if(!r)return"";let s=n(r);if(!s)return"";let{host:i,pathSegments:o}=s,l=o[0]??"",u=o[o.length-1]??"",c=[...t].sort((e,t)=>{let r=+("*"===e.ownerMatch),a=+("*"===t.ownerMatch);return r!==a?r-a:e.priority-t.priority}),p=o.join("/");for(let e of c){if(e.host!==i||"*"!==e.ownerMatch&&e.ownerMatch!==l)continue;let t=e.localPathTemplate;if(t.includes("{path}"))return a(t.replace("{path}",p).replace("{owner}",l).replace("{repo}",u).replace(/\/+$/,""));let r=t.replace("{owner}",l).replace("{repo}","").replace(/\/+$/,"");return a(`${r}/${u}`)}return""}])},22569,e=>e.a(async(t,r)=>{try{var a=e.i(921675),n=e.i(843793),s=e.i(276534),i=e.i(61920),o=e.i(769310),l=e.i(721390),u=e.i(86708),c=t([l]);async function p(e,t){let r=await n.db.systemConfig.findUnique({where:{key:e}});if(!r)return t;try{return JSON.parse(r.value)}catch{return t}}async function d(e,t){await n.db.systemConfig.upsert({where:{key:e},create:{key:e,value:JSON.stringify(t)},update:{value:JSON.stringify(t)}})}async function f(e){let t=e.trim();if(!t)return"";try{let e=await p("git.pathMappingRules",[]),r=(0,i.matchGitPathRule)(t,e);if(r)return r;return(0,i.gitUrlToLocalPath)(t)}catch{return(0,i.gitUrlToLocalPath)(t)}}async function m(e){let t=await n.db.systemConfig.findMany({where:{key:{in:e}}}),r=Object.fromEntries(t.map(e=>{try{return[e.key,JSON.parse(e.value)]}catch{return[e.key,null]}})),a={};for(let t of e)a[t]=t in r?r[t]:s.CONFIG_DEFAULTS[t]?.defaultValue??null;return a}async function y(){return(0,o.detectShells)()}async function b(){return(0,o.detectTerminalApps)()}async function g(){return{platform:process.platform}}async function x(){let e=(0,l.getActiveWsPort)();if(null!==e)return e;let t=parseInt(process.env.PORT||"3000",10);return p("terminal.wsPort",t+1)}[l]=c.then?(await c)():c,(0,u.ensureServerEntryExports)([p,d,f,m,y,b,g,x]),(0,a.registerServerReference)(p,"601406ecac79b3ad03802ebdad7fee412b1cd242a3",null),(0,a.registerServerReference)(d,"602a9baca17d1dfb46d6920ffa0a228eef5457ab33",null),(0,a.registerServerReference)(f,"40b05fa1832e38faf3093f26ffc25130691bc7b075",null),(0,a.registerServerReference)(m,"408a94f097a9a92d17f4ef2a81b170cb16586e0cba",null),(0,a.registerServerReference)(y,"006ca763a21e0c7b1c866f46617803dde0a13da9ea",null),(0,a.registerServerReference)(b,"0017c96cfbba10eb5558b07c346d467fafc74ba32f",null),(0,a.registerServerReference)(g,"00dbf32469ff11201d8f24aef9098bcb9fa141bcd4",null),(0,a.registerServerReference)(x,"001e1fa1609fa6f321934af3c930363baeed8b3d15",null),e.s(["getConfigValue",0,p]),r()}catch(e){r(e)}},!1)];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0.9mj3v._.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},933919,(e,t,r)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},980738,(e,t,r)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,e=>e.a(async(t,r)=>{try{let t=await e.y("ws-4df7fc762dfa9a52");e.n(t),r()}catch(e){r(e)}},!0),504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},192520,e=>{"use strict";let t;var r=e.i(750227),a=e.i(660526),n=e.i(902157);function s(){return t||(t=process.env.TOWER_DATA_DIR||(0,r.join)((0,a.homedir)(),".tower"),(0,n.existsSync)(t)||(0,n.mkdirSync)(t,{recursive:!0})),t}e.s(["getAssistantDir",0,function(){let e=(0,r.join)(s(),"assistant");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getBackupsDir",0,function(){let e=(0,r.join)(s(),"backups");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getStorageDir",0,function(){let e=(0,r.join)(s(),"storage");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e},"getTowerDbPath",0,function(){let e;return(0,r.join)((e=(0,r.join)(s(),"database"),(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e),"tower.db")},"getTowerDir",0,s])},482819,(e,t,r)=>{"use strict";t.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return a.registerServerReference}});let a=e.r(482819)},86708,(e,t,r)=>{"use strict";function a(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return a}})},843793,e=>{"use strict";var t=e.i(933919);let r=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{r.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{r.$disconnect().catch(()=>{})}),e.s(["db",0,r])},572173,e=>{"use strict";var t=e.i(843793);async function r(e,r){let a=await t.db.systemConfig.findUnique({where:{key:e}});if(!a)return r;try{return JSON.parse(a.value)}catch{return r}}e.s(["readConfigValue",0,r])},658053,e=>{"use strict";e.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},341291,e=>{"use strict";var t=e.i(666680),r=e.i(902157),a=e.i(750227);let n=(0,e.i(192520).getStorageDir)();function s(e){if(!e.startsWith(n+a.sep))throw Error("Path traversal detected")}let i=new Set(["image","screenshot","img","photo","picture","clipboard","paste","untitled"]);e.s(["buildCacheFilename",0,function(e,r){let n=a.basename(e,a.extname(e)),s=t.randomUUID().replace(/-/g,"").slice(0,8),o=n.toLowerCase();if(!n||i.has(o)||/^screenshot[\s_\-]/i.test(n))return`tower_image-${s}${r}`;let l=n.replace(/[^\p{L}\p{N}]/gu,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"");return`${l||"file"}-${s}${r}`},"ensureAssetsDir",0,function(e){let t,i=(s(t=a.join(n,"assets",e)),t);return r.mkdirSync(i,{recursive:!0}),i},"getAssistantCacheDir",0,function(e="images"){let t=new Date,i=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`,o=a.join(n,"cache","assistant",i,e);return s(o),r.mkdirSync(o,{recursive:!0}),o},"getAssistantCacheRoot",0,function(){let e=a.join(n,"cache","assistant");return s(e),e}])},634712,e=>{"use strict";let t=["jpg","jpeg","png","gif","webp"],r=["md","txt","json","csv"],a=[...t,...r].join("|"),n=RegExp(`^\\d{4}-\\d{2}/(images|files)/[^/]+\\.(${a})$`,"i");function s(e){let a=e.replace(/^\./,"").toLowerCase();return t.includes(a)?"image":r.includes(a)?"text":null}[...t.map(e=>`.${e}`),...r.map(e=>`.${e}`),"image/*"].join(","),e.s(["ALLOWED_TEXT_EXTS",0,r,"ATTACHMENT_SUBPATH_RE",0,n,"MAX_ATTACHMENTS",0,10,"classifyAttachmentExt",0,s,"classifyAttachmentSubPath",0,function(e){if(!n.test(e))return null;let t=e.lastIndexOf(".");return t<0?null:s(e.slice(t+1))}])},276534,e=>{"use strict";e.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"system.maxReadableFileBytes":{defaultValue:5242880,type:"number",label:"Max Readable File Size (bytes)"},"system.backupDir":{defaultValue:"",type:"string",label:"Backup Directory"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"search.codeTimeoutSec":{defaultValue:30,type:"number",label:"Code Search Timeout (seconds)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"}}])},61920,e=>{"use strict";var t=e.i(446786),r=e.i(814747);function a(e){return e.startsWith("~/")?r.default.join(t.default.homedir(),e.slice(2)):e}function n(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:s(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:s(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}function s(e){return e.replace(/\.git\/?$/,"")}e.s(["gitUrlToLocalPath",0,function(e){let t=e.trim();if(!t)return"";try{let e=n(t);if(!e)return"";let{host:s,pathSegments:i}=e;if("code.iflytek.com"===s){let e,t;return a((e=[...i],"osc"===e[0]&&"_source"===e[1]&&(e=e.slice(2)),((t=e.indexOf("-"))>0&&(e=e.slice(0,t)),0===e.length)?"":`~/company/${e.join("/")}`))}if("github.com"===s){var r;let e,t;return a((e=(r=i)[0],t=r[1],e&&t?`${"jp-liu"===e?"~/project/i":"~/project/f"}/${t}`:""))}let o=i[i.length-1];return o?a(`~/project/f/${o}`):""}catch{return""}},"matchGitPathRule",0,function(e,t){if(!t.length)return"";let r=e.trim();if(!r)return"";let s=n(r);if(!s)return"";let{host:i,pathSegments:o}=s,l=o[0]??"",u=o[o.length-1]??"",c=[...t].sort((e,t)=>{let r=+("*"===e.ownerMatch),a=+("*"===t.ownerMatch);return r!==a?r-a:e.priority-t.priority}),p=o.join("/");for(let e of c){if(e.host!==i||"*"!==e.ownerMatch&&e.ownerMatch!==l)continue;let t=e.localPathTemplate;if(t.includes("{path}"))return a(t.replace("{path}",p).replace("{owner}",l).replace("{repo}",u).replace(/\/+$/,""));let r=t.replace("{owner}",l).replace("{repo}","").replace(/\/+$/,"");return a(`${r}/${u}`)}return""}])},22569,e=>e.a(async(t,r)=>{try{var a=e.i(921675),n=e.i(843793),s=e.i(276534),i=e.i(61920),o=e.i(769310),l=e.i(721390),u=e.i(86708),c=t([l]);async function p(e,t){let r=await n.db.systemConfig.findUnique({where:{key:e}});if(!r)return t;try{return JSON.parse(r.value)}catch{return t}}async function d(e,t){await n.db.systemConfig.upsert({where:{key:e},create:{key:e,value:JSON.stringify(t)},update:{value:JSON.stringify(t)}})}async function f(e){let t=e.trim();if(!t)return"";try{let e=await p("git.pathMappingRules",[]),r=(0,i.matchGitPathRule)(t,e);if(r)return r;return(0,i.gitUrlToLocalPath)(t)}catch{return(0,i.gitUrlToLocalPath)(t)}}async function m(e){let t=await n.db.systemConfig.findMany({where:{key:{in:e}}}),r=Object.fromEntries(t.map(e=>{try{return[e.key,JSON.parse(e.value)]}catch{return[e.key,null]}})),a={};for(let t of e)a[t]=t in r?r[t]:s.CONFIG_DEFAULTS[t]?.defaultValue??null;return a}async function h(){return(0,o.detectShells)()}async function g(){return(0,o.detectTerminalApps)()}async function y(){return{platform:process.platform}}async function b(){let e=(0,l.getActiveWsPort)();if(null!==e)return e;let t=parseInt(process.env.PORT||"3000",10);return p("terminal.wsPort",t+1)}[l]=c.then?(await c)():c,(0,u.ensureServerEntryExports)([p,d,f,m,h,g,y,b]),(0,a.registerServerReference)(p,"601406ecac79b3ad03802ebdad7fee412b1cd242a3",null),(0,a.registerServerReference)(d,"602a9baca17d1dfb46d6920ffa0a228eef5457ab33",null),(0,a.registerServerReference)(f,"40b05fa1832e38faf3093f26ffc25130691bc7b075",null),(0,a.registerServerReference)(m,"408a94f097a9a92d17f4ef2a81b170cb16586e0cba",null),(0,a.registerServerReference)(h,"006ca763a21e0c7b1c866f46617803dde0a13da9ea",null),(0,a.registerServerReference)(g,"0017c96cfbba10eb5558b07c346d467fafc74ba32f",null),(0,a.registerServerReference)(y,"00dbf32469ff11201d8f24aef9098bcb9fa141bcd4",null),(0,a.registerServerReference)(b,"001e1fa1609fa6f321934af3c930363baeed8b3d15",null),e.s(["getConfigValue",0,p]),r()}catch(e){r(e)}},!1),437513,e=>{"use strict";let t=[{mime:"image/jpeg",check:e=>255===e[0]&&216===e[1]&&255===e[2]},{mime:"image/png",check:e=>137===e[0]&&80===e[1]&&78===e[2]&&71===e[3]},{mime:"image/gif",check:e=>71===e[0]&&73===e[1]&&70===e[2]},{mime:"image/webp",check:e=>82===e[0]&&73===e[1]&&70===e[2]&&70===e[3]&&87===e[8]&&69===e[9]&&66===e[10]&&80===e[11]}];e.s(["MIME_TO_EXT",0,{"image/jpeg":".jpg","image/png":".png","image/gif":".gif","image/webp":".webp"},"TEXT_EXT_TO_MIME",0,{".md":"text/markdown",".txt":"text/plain",".json":"application/json",".csv":"text/csv"},"detectImageMime",0,function(e){if(e.length<12)return null;for(let r of t)if(r.check(e))return r.mime;return null},"isLikelyTextFile",0,function(e){if(0===e.length)return!0;let t=Math.min(e.length,8192);for(let r=0;r<t;r++)if(0===e[r])return!1;return!0}])},648834,e=>e.a(async(t,r)=>{try{var a=e.i(750227),n=e.i(902157),s=e.i(855104),i=e.i(198840),o=e.i(437513),l=e.i(341291),u=e.i(22569),c=e.i(634712),p=t([u]);async function d(e){let t,r,p,d=(0,i.requireLocalhost)(e);if(d)return d;let f=(await e.formData()).get("file");if(!f)return s.NextResponse.json({error:"Missing file field"},{status:400});let m=await (0,u.getConfigValue)("system.maxUploadBytes",0x3200000);if(f.size>m)return s.NextResponse.json({error:"File too large"},{status:400});let h=Buffer.from(await f.arrayBuffer()),g=a.extname(f.name),y=(0,c.classifyAttachmentExt)(g);if(!y)return s.NextResponse.json({error:"Unsupported file type"},{status:400});if("image"===y){let e=(0,o.detectImageMime)(h);if(!e)return s.NextResponse.json({error:"Invalid image content"},{status:400});r=e,t=o.MIME_TO_EXT[e],p=(0,l.getAssistantCacheDir)("images")}else{if(!(0,o.isLikelyTextFile)(h))return s.NextResponse.json({error:"File appears to be binary, not text"},{status:400});let e=g.toLowerCase();if(!c.ALLOWED_TEXT_EXTS.includes(e.replace(/^\./,"")))return s.NextResponse.json({error:"Unsupported text type"},{status:400});t=e,r=o.TEXT_EXT_TO_MIME[e]??"text/plain",p=(0,l.getAssistantCacheDir)("files")}let b=(0,l.buildCacheFilename)(f.name,t),x=a.join(p,b);if(!x.startsWith(p+a.sep)&&x!==p)return s.NextResponse.json({error:"Invalid path"},{status:400});await n.promises.writeFile(x,h);let v=a.relative((0,l.getAssistantCacheRoot)(),x);return s.NextResponse.json({filename:v,mimeType:r,kind:y})}[u]=p.then?(await p)():p,e.s(["POST",0,d,"dynamic",0,"force-dynamic","runtime",0,"nodejs"]),r()}catch(e){r(e)}},!1),122166,e=>e.a(async(t,r)=>{try{var a=e.i(765876),n=e.i(675896),s=e.i(959160),i=e.i(97944),o=e.i(86757),l=e.i(204144),u=e.i(273436),c=e.i(743641),p=e.i(813766),d=e.i(840884),f=e.i(498814),m=e.i(780006),h=e.i(544432),g=e.i(772005),y=e.i(450223),b=e.i(193695);e.i(628400);var x=e.i(800071),v=e.i(648834),w=t([v]);[v]=w.then?(await w)():w;let S=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/internal/assistant/attachments/route",pathname:"/api/internal/assistant/attachments",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/assistant/attachments/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:T,workUnitAsyncStorage:E,serverHooks:C}=S;async function R(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/internal/assistant/attachments/route";a=a.replace(/\/index$/,"")||"/";let s=await S.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:w,nextConfig:R,parsedUrl:T,isDraftMode:E,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:_,revalidateOnlyGenerated:j,resolvedPathname:k,clientReferenceManifest:M,serverActionsManifest:O}=s,N=(0,u.normalizeAppPath)(a),P=!!(C.dynamicRoutes[N]||C.routes[k]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,T,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!C.routes[k],t=C.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await D();throw new b.NoFallbackError}}let I=null;!P||S.isDev||E||(I=k,I="/index"===I?"/":I);let q=!0===S.isDev||!P,U=P&&!q;O&&M&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:M,serverActionsManifest:O});let $=e.method||"GET",L=(0,o.getTracer)(),V=L.getActiveScopeSpan(),F=!!(null==A?void 0:A.isWrappedByNextServer),H=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,R,C,H);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let B={params:w,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:G,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>S.onRequestError(e,t,a,n,A)},sharedContext:{buildId:v}},X=new c.NodeNextRequest(e),W=new c.NodeNextResponse(t),K=p.NextRequestAdapter.fromNodeNextRequest(X,(0,p.signalFromNodeResponse)(t));try{let s,i=async e=>S.handle(K,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${$} ${a}`)}),l=async s=>{var o,l;let u=async({previousCacheEntry:n})=>{try{if(!H&&_&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!P)return await (0,m.sendResponse)(X,W,a,B.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:_})},!1,A),t}},c=await S.handleResponse({req:e,nextConfig:R,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:H});if(!P)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});H||t.setHeader("x-nextjs-cache",_?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return H&&P||p.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,m.sendResponse)(X,W,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};F&&V?await l(V):(s=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:o.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!F))}catch(t){if(t instanceof b.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:_})},!1,A),P)throw t;return await (0,m.sendResponse)(X,W,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:E})},"routeModule",0,S,"serverHooks",0,C,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,E]),r()}catch(e){r(e)}},!1)];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__05353yb._.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[324725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},660526,(e,r,t)=>{r.exports=e.x("node:os",()=>require("node:os"))},933919,(e,r,t)=>{r.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},750227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},902157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,r,t)=>{r.exports=e.x("node:child_process",()=>require("node:child_process"))},980738,(e,r,t)=>{r.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},522734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))},233405,(e,r,t)=>{r.exports=e.x("child_process",()=>require("child_process"))},924868,(e,r,t)=>{r.exports=e.x("fs/promises",()=>require("fs/promises"))},814747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},918622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},843793,e=>{"use strict";var r=e.i(933919);let t=globalThis.prisma??new r.PrismaClient({log:[]});process.on("SIGTERM",()=>{t.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{t.$disconnect().catch(()=>{})}),e.s(["db",0,t])},572173,e=>{"use strict";var r=e.i(843793);async function t(e,t){let n=await r.db.systemConfig.findUnique({where:{key:e}});if(!n)return t;try{return JSON.parse(n.value)}catch{return t}}e.s(["readConfigValue",0,t])},248434,e=>{"use strict";var r=e.i(233405),t=e.i(522734),n=e.i(924868),i=e.i(814747),s=e.i(446786),o=e.i(50377);function a(e){return e.startsWith("~/")||"~"===e?i.default.join(s.default.homedir(),e.slice(1)):e}async function c(e,s,c,l){let d=a(e),u=i.default.join(d,".worktrees","task-"+s),p="task/"+s;await (0,n.mkdir)(i.default.join(d,".worktrees"),{recursive:!0});let f=(0,r.execFileSync)("git",["worktree","list","--porcelain"],{cwd:d,encoding:"utf-8",timeout:1e4}),v=i.default.normalize(u).replace(/\\/g,"/");if(f.split("\n").some(e=>e.startsWith("worktree ")&&e.slice(9).replace(/\\/g,"/")===v))return{worktreePath:u,worktreeBranch:p};if((0,t.existsSync)(u)&&(o.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${u}`),(0,r.execFileSync)("git",["worktree","remove",u,"--force"],{cwd:d,encoding:"utf-8",timeout:3e4})),(0,r.execFileSync)("git",["branch","--list",p],{cwd:d,encoding:"utf-8",timeout:5e3}).trim())(0,r.execFileSync)("git",["worktree","add",u,p],{cwd:d,encoding:"utf-8",timeout:3e4});else{let e=c;try{(0,r.execFileSync)("git",["rev-parse","--verify",c],{cwd:d,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,r.execFileSync)("git",["rev-parse","--verify",`origin/${c}`],{cwd:d,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),e=`origin/${c}`}catch{throw Error(`Base branch '${c}' does not exist locally or on remote. Available branches: `+(0,r.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:d,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,r.execFileSync)("git",["worktree","add","-b",p,u,e],{cwd:d,encoding:"utf-8",timeout:3e4})}return function(e,r,n){let s=o.logger.create("worktree"),a=["node_modules",".next"];for(let o of n?["",n]:[""])if((0,t.existsSync)(i.default.join(e,o,"package.json")))for(let n of a){let a=o?i.default.join(o,n):n,c=i.default.join(e,a),l=i.default.join(r,a);if((0,t.existsSync)(c)){try{(0,t.lstatSync)(l);continue}catch{}try{(0,t.symlinkSync)(c,l,"junction"),s.info(`Symlinked ${a}`,{from:c,to:l})}catch(e){s.warn(`Failed to symlink ${a}`,{error:String(e)})}}}}(d,u,l),{worktreePath:u,worktreeBranch:p}}async function l(e,n){let s=a(e),o=i.default.join(s,".worktrees","task-"+n),c="task/"+n;(0,t.existsSync)(o)&&(0,r.execFileSync)("git",["worktree","remove",o,"--force"],{cwd:s,encoding:"utf-8",timeout:3e4}),(0,r.execFileSync)("git",["branch","--list",c],{cwd:s,encoding:"utf-8",timeout:5e3}).trim()&&(0,r.execFileSync)("git",["branch","-D",c],{cwd:s,encoding:"utf-8",timeout:5e3})}e.s(["createWorktree",0,c,"removeWorktree",0,l])},482819,(e,r,t)=>{"use strict";r.exports=e.r(583981).vendored["react-rsc"].ReactServerDOMTurbopackServer},921675,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"registerServerReference",{enumerable:!0,get:function(){return n.registerServerReference}});let n=e.r(482819)},86708,(e,r,t)=>{"use strict";function n(e){for(let r=0;r<e.length;r++){let t=e[r];if("function"!=typeof t)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof t}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureServerEntryExports",{enumerable:!0,get:function(){return n}})},932583,e=>{"use strict";var r=e.i(921675),t=e.i(843793);async function n(e,r={}){let i=r.report,s=i?JSON.stringify(i):null;await t.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!0,version:r.version??null,mcpInstalled:i?.mcp?.ok??!1,hooksInstalled:i?.hooks?.ok??!1,skillsInstalled:i?.skill?.ok??!1,installLog:s},update:{lastTestedAt:new Date,testOk:!0,version:r.version??null,mcpInstalled:i?.mcp?.ok??!1,hooksInstalled:i?.hooks?.ok??!1,skillsInstalled:i?.skill?.ok??!1,installLog:s}})}async function i(e,r={}){await t.db.providerConnection.upsert({where:{provider:e},create:{provider:e,lastTestedAt:new Date,testOk:!1,installLog:r.reason??null},update:{lastTestedAt:new Date,testOk:!1,mcpInstalled:!1,hooksInstalled:!1,skillsInstalled:!1,installLog:r.reason??null}})}async function s(e){let r=await t.db.providerConnection.findUnique({where:{provider:e}});return!!r&&r.testOk&&r.mcpInstalled&&r.hooksInstalled&&r.skillsInstalled}async function o(){return(await t.db.providerConnection.findMany({where:{testOk:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0},select:{provider:!0},orderBy:{provider:"asc"}})).map(e=>e.provider)}async function a(){return t.db.providerConnection.findMany({select:{provider:!0,lastTestedAt:!0,testOk:!0,version:!0,mcpInstalled:!0,hooksInstalled:!0,skillsInstalled:!0,installLog:!0},orderBy:{provider:"asc"}})}(0,e.i(86708).ensureServerEntryExports)([n,i,s,o,a]),(0,r.registerServerReference)(n,"60f2f92fe7bdce7564b1bfb9fe782dce52a5f40532",null),(0,r.registerServerReference)(i,"600c4af6fb652798381c884427b885d15bc63c108c",null),(0,r.registerServerReference)(s,"40f56dbcfd9524058ae7baa773e26ec18d0a13149a",null),(0,r.registerServerReference)(o,"00d55096af76a40d03560bde74fa567e878ce6f41d",null),(0,r.registerServerReference)(a,"007c14f1aa77e25eb12260995f977911757f9fcd54",null),e.s(["getConnectedProviders",0,o,"isProviderConnected",0,s,"markProviderConnected",0,n,"markProviderDisconnected",0,i])},89428,e=>{"use strict";var r=e.i(843793),t=e.i(279711);class n extends Error{code;provider;constructor(e,r,t){super(t),this.code=e,this.provider=r,this.name="AiProviderError"}}var i=e.i(932583);let s="claude",o="请到 Settings → Test Connection 测试该 Provider 后再使用(未注入的 CLI 不能被插槽选中)";async function a(e){return r.db.aiCapabilityConfig.findUnique({where:{slot:e}})}async function c(e){if(e){if(await (0,i.isProviderConnected)(e))return e;throw new n("CLI_NOT_FOUND",e,`Provider "${e}" 未连接:${o}`)}let r=await (0,i.getConnectedProviders)();if(0===r.length)throw new n("CLI_NOT_FOUND",s,`没有任何 AI Provider 已连接:${o}`);return r.includes(s)?s:r[0]}async function l(e){let r=await a(e),i=r?.model??void 0,s=await c(r?.provider??null),o=t.providerRegistry.get(s);if(!o)throw new n("CLI_NOT_FOUND",s,`Provider "${s}" 未注册`);let l=o.cli?.adapter;if(!l)throw new n("UNSUPPORTED_MODE",s,`Provider "${s}" 不支持 CLI 模式`);return{adapter:l,provider:o,model:i}}e.s(["resolveCliAdapter",0,l],89428)},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},268548,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node_util_0xr.y7p._.js"].map(r=>e.l(r))).then(()=>r(812057)))},144264,e=>{e.v(e=>Promise.resolve().then(()=>e(233405)))},534777,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_util_0wtvqkc._.js"].map(r=>e.l(r))).then(()=>r(224361)))},217260,e=>{e.v(e=>Promise.resolve().then(()=>e(83721)))},507603,e=>{e.v(r=>Promise.all(["server/chunks/_0trog_r._.js"].map(r=>e.l(r))).then(()=>r(283373)))},136565,e=>{e.v(r=>Promise.all(["server/chunks/src_01ztl3b._.js"].map(r=>e.l(r))).then(()=>r(215624)))},260815,e=>{e.v(e=>Promise.resolve().then(()=>e(924868)))}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__09h3i6m._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[750227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},902157,(e,r,t)=>{r.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,r,t)=>{r.exports=e.x("node:child_process",()=>require("node:child_process"))},660526,(e,r,t)=>{r.exports=e.x("node:os",()=>require("node:os"))},603484,e=>{"use strict";e.i(902157);var r=e.i(874533),t=e.i(750227);function n(e=process.platform){return"win32"===e}let o=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"],s=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});e.s(["ensurePathInEnv",0,function(e,r=process.platform){let t=n(r)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[t]:function(e=process.platform){return n(e)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(r)}},"resolveCommandPathSync",0,function(e,o=process.platform,i=s){if(t.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!n(o)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let r=i(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),t=r.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(t)return t;if(r.length>0)return r[0]}catch{}return e},"stripClaudeNestingEnv",0,function(e){let r={...e};for(let e of o)delete r[e];return r}])},760138,216258,e=>{"use strict";let r;var t=e.i(902157),n=e.i(660526),o=e.i(750227),s=e.i(136902);function i(){return r||(r=process.env.TOWER_DATA_DIR||(0,o.join)((0,n.homedir)(),".tower"),(0,t.existsSync)(r)||(0,t.mkdirSync)(r,{recursive:!0})),r}function l(){let e;return(0,o.join)((e=(0,o.join)(i(),"database"),(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0}),e),"tower.db")}e.s(["getAssistantDir",0,function(){let e=(0,o.join)(i(),"assistant");return(0,t.existsSync)(e)||(0,t.mkdirSync)(e,{recursive:!0}),e},"getTowerDbPath",0,l,"getTowerDir",0,i],216258);var a=e.i(599603);let c="tower";function u(){let e=i(),r=o.join((0,n.homedir)(),".tower");if(o.resolve(e)===o.resolve(r))return"tower";let t=o.basename(e),s=t.match(/^\.?tower-(.+)$/);return s?`tower-${p(s[1])}`:`tower-${p(t)}`}function p(e){return e.replace(/[^a-z0-9_-]/gi,"-").toLowerCase().slice(0,32)}async function d(e,r){let i,p,d,m,f=s.providerRegistry.get(e),v=f?.cli?.adapter;if(!v||!await v.isAvailable())return{provider:e,available:!1,ok:!1};let h="claude"===e?function(e={}){let r=e.homeDir??n.homedir(),s=e.repoRoot??process.cwd(),i=[];return i.push(function(e){let r=o.join(e,".claude","settings.json");if(!t.existsSync(r))return{removed:!1,path:r};try{let e=t.readFileSync(r,"utf-8"),n=JSON.parse(e),o=n.mcpServers;if("object"!=typeof o||null===o||Array.isArray(o)||!("tower"in o))return{removed:!1,path:r};let s=o.tower;return delete o.tower,0===Object.keys(o).length?delete n.mcpServers:n.mcpServers=o,t.writeFileSync(r,JSON.stringify(n,null,2)+"\n","utf-8"),{removed:!0,path:r,removedEntry:s,reason:"wrong-file"}}catch(e){return{removed:!1,path:r,error:e instanceof Error?e.message:String(e)}}}(r)),i.push(function(e,r,n){if(!t.existsSync(e))return{removed:!1,path:e};try{let s=t.readFileSync(e,"utf-8"),i=JSON.parse(s),l=i.mcpServers;if("object"!=typeof l||null===l||Array.isArray(l))return{removed:!1,path:e};let a=l.tower;if(!a)return{removed:!1,path:e};let c=function(e,r){let n,s=e.args;if(!Array.isArray(s))return"foreign-repo";for(let e of s)if("string"==typeof e&&o.isAbsolute(e)){n=e;break}return n?t.existsSync(n)?o.resolve(n).startsWith(o.resolve(r)+o.sep)?"current-repo":"foreign-repo":"missing-path":"foreign-repo"}(a,n);if("current-repo"===c)return{removed:!1,path:e,reason:"alive-current-repo"};return delete l.tower,0===Object.keys(l).length?delete i.mcpServers:i.mcpServers=l,t.writeFileSync(e,JSON.stringify(i,null,2)+"\n","utf-8"),{removed:!0,path:e,removedEntry:a,reason:`${r}:${c}`}}catch(r){return{removed:!1,path:e,error:r instanceof Error?r.message:String(r)}}}(o.join(r,".mcp.json"),"home-mcp-json",s)),{steps:i,removedAny:i.some(e=>e.removed)}}():void 0,y=(i=(0,a.getPackageRoot)().replace(/\\/g,"/"),p=process.env.DATABASE_URL||`file:${l().replace(/\\/g,"/")}`,d=`${i}/dist/mcp-server.cjs`,m=u(),(0,t.existsSync)(d)?{name:m,command:"node",args:[d],env:{DATABASE_URL:p}}:{name:m,command:`${i}/node_modules/.bin/tsx`,args:[`${i}/src/mcp/index.ts`],env:{DATABASE_URL:p}}),S=await v.installMcp(y,{scope:"user"}),g=await v.installHooks(r),w=await v.installSkill(c,o.join((0,a.getPackageRoot)(),"skills",c));return{provider:e,available:!0,migration:h,mcp:S,hooks:g,skill:w,ok:S.ok&&g.ok&&w.ok}}e.s(["getTowerMcpName",0,u,"installAllForProvider",0,d],760138)},482848,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node_child_process_06l~6ej._.js"].map(r=>e.l(r))).then(()=>r(874533)))},268548,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node_util_0xr.y7p._.js"].map(r=>e.l(r))).then(()=>r(812057)))},144264,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_child_process_0pwkpv9._.js"].map(r=>e.l(r))).then(()=>r(233405)))},534777,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_util_0wtvqkc._.js"].map(r=>e.l(r))).then(()=>r(224361)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0_a8-jq._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[933919,(e,t,a)=>{t.exports=e.x("@prisma/client-9249dd53ac5b6a44",()=>require("@prisma/client-9249dd53ac5b6a44"))},750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},980738,(e,t,a)=>{t.exports=e.x("node-pty-c710df912a232c01",()=>require("node-pty-c710df912a232c01"))},433541,e=>e.a(async(t,a)=>{try{let t=await e.y("ws-4df7fc762dfa9a52");e.n(t),a()}catch(e){a(e)}},!0),504446,(e,t,a)=>{t.exports=e.x("net",()=>require("net"))},843793,e=>{"use strict";var t=e.i(933919);let a=globalThis.prisma??new t.PrismaClient({log:[]});process.on("SIGTERM",()=>{a.$disconnect().catch(()=>{})}),process.on("SIGINT",()=>{a.$disconnect().catch(()=>{})}),e.s(["db",0,a])},572173,e=>{"use strict";var t=e.i(843793);async function a(e,a){let r=await t.db.systemConfig.findUnique({where:{key:e}});if(!r)return a;try{return JSON.parse(r.value)}catch{return a}}e.s(["readConfigValue",0,a])},658053,e=>{"use strict";e.s(["ASSISTANT_SESSION_KEY",0,"__assistant__"])},395436,e=>e.a(async(t,a)=>{try{var r=e.i(855104),n=e.i(198840),s=e.i(843793),o=e.i(721390),i=t([o]);async function l(e){let t,a=(0,n.requireLocalhost)(e);if(a)return a;try{t=await e.json()}catch{return r.NextResponse.json({error:"Invalid JSON"},{status:400})}let{taskId:i,sessionId:l}=t;if(!i||"string"!=typeof i)return r.NextResponse.json({error:"taskId required"},{status:400});let d=await s.db.task.findUnique({where:{id:i},select:{id:!0,title:!0,project:{select:{workspaceId:!0}}}});if(!d)return r.NextResponse.json({error:"Task not found"},{status:404});let u={taskId:d.id,taskTitle:d.title,sessionId:l??"",workspaceId:d.project.workspaceId,type:"stop",timestamp:new Date().toISOString()};return(0,o.broadcastNotification)(u),r.NextResponse.json({ok:!0})}[o]=i.then?(await i)():i,e.s(["POST",0,l,"dynamic",0,"force-dynamic","runtime",0,"nodejs"]),a()}catch(e){a(e)}},!1),835333,e=>e.a(async(t,a)=>{try{var r=e.i(765876),n=e.i(675896),s=e.i(959160),o=e.i(97944),i=e.i(86757),l=e.i(204144),d=e.i(273436),u=e.i(743641),c=e.i(813766),p=e.i(840884),h=e.i(498814),R=e.i(780006),f=e.i(544432),v=e.i(772005),w=e.i(450223),x=e.i(193695);e.i(628400);var g=e.i(800071),m=e.i(395436),y=t([m]);[m]=y.then?(await y)():y;let C=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/internal/hooks/stop/route",pathname:"/api/internal/hooks/stop",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/internal/hooks/stop/route.ts",nextConfigOutput:"standalone",userland:m}),{workAsyncStorage:N,workUnitAsyncStorage:S,serverHooks:A}=C;async function E(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/internal/hooks/stop/route";r=r.replace(/\/index$/,"")||"/";let s=await C.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:y,nextConfig:E,parsedUrl:N,isDraftMode:S,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,resolvedPathname:I,clientReferenceManifest:q,serverActionsManifest:k}=s,O=(0,d.normalizeAppPath)(r),P=!!(A.dynamicRoutes[O]||A.routes[I]),U=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,N,!1):t.end("This page could not be found"),null);if(P&&!S){let e=!!A.routes[I],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await U();throw new x.NoFallbackError}}let H=null;!P||C.isDev||S||(H=I,H="/index"===H?"/":H);let M=!0===C.isDev||!P,j=P&&!M;k&&q&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:q,serverActionsManifest:k});let D=e.method||"GET",$=(0,i.getTracer)(),K=$.getActiveScopeSpan(),F=!!(null==T?void 0:T.isWrappedByNextServer),B=!!(0,o.getRequestMeta)(e,"minimalMode"),L=(0,o.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,E,A,B);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:y,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>C.onRequestError(e,t,r,n,T)},sharedContext:{buildId:m}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(V,(0,c.signalFromNodeResponse)(t));try{let s,o=async e=>C.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${D} ${r}`)}),l=async s=>{var i,l;let d=async({previousCacheEntry:n})=>{try{if(!B&&b&&_&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await o(s);e.fetchMetrics=G.renderOpts.fetchMetrics;let i=G.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=G.renderOpts.collectedTags;if(!P)return await (0,R.sendResponse)(V,W,r,G.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);l&&(t[w.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,n=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,T),t}},u=await C.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:B});if(!P)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",b?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&P||c.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,R.sendResponse)(V,W,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};F&&K?await l(K):(s=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${r}`,kind:i.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l),void 0,!F))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,T),P)throw t;return await (0,R.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:S})},"routeModule",0,C,"serverHooks",0,A,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,S]),a()}catch(e){a(e)}},!1)];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0_mbhor._.js.map
|