tower-studio 0.2.36 → 0.2.38
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 +2 -2
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +26 -26
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +61 -61
- package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +26 -26
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +26 -26
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +43 -43
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +97 -97
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +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 +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +71 -71
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +72 -72
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +26 -26
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +70 -70
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +81 -81
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +46 -46
- package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0eh8dj_.js +5 -5
- 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]__00llstz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01n7exm._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01yu.gw._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05nz.tg._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qif839._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~foo~5._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0bkvm8c._.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]__0-tolks._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__046-2.-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bsx096._.js → [root-of-the-server]__04p5fnx._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05sv58d._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05xg05r._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__062b.yt._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__093tt4a._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bgr0ql._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0pa9_bd._.js → [root-of-the-server]__0dixwk_._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0guqcva._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gzafdq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vv4hxw._.js → [root-of-the-server]__0i97rbw._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jymb~t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__13~k9z5._.js → [root-of-the-server]__0mbvmq1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p0te97._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0iatlhd._.js → [root-of-the-server]__0rlar2j._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0siyg1p._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t6f4lq._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0th-t1a._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z7je5_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0-~9em3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_00t6138._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0mhdb-a._.js → _00vn2qb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_070t_mh._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_07_.oek._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0zidle2._.js → _09j.h2h._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_09ri_be._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_q.4.i._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0cxhub8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0ebel46._.js → _0ght75u._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0hh17jg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0izxa9k._.js → _0j84cn0._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0mpce0d._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0muaopo._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0n1l7yo._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0nk7qd4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0no6nrx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0xx4aa5._.js → _0qkt.3y._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0jf91oa._.js → _0t53a7_._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0vqyl_~._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0wbcp88._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0soj-y2._.js → _13glpna._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_0djxlqx._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_notes_notes-page-client_tsx_10gyo3v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_0d2ra01._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +215 -215
- package/.next/standalone/.next/static/chunks/0.nk_89kz3j6c.js +1 -0
- package/.next/standalone/.next/static/chunks/01.g0gvh6h11a.js +2 -0
- package/.next/standalone/.next/static/chunks/03zzmb3y7kpxl.js +1 -0
- package/.next/standalone/.next/static/chunks/04t77qlr4-sw7.js +1 -0
- package/.next/standalone/.next/static/chunks/097rglx2_e2oo.js +1 -0
- package/.next/standalone/.next/static/chunks/{0xy8x3-.0bopl.js → 0a234qgxmvbfu.js} +1 -1
- package/.next/standalone/.next/static/chunks/{01tsz1~lswudb.js → 0bsigqvr2-qcp.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0m_l01d2lzffq.js → 0c0u4it7gyb1..js} +1 -1
- package/.next/standalone/.next/static/chunks/0dt3ljzz2pz0r.css +1 -0
- package/.next/standalone/.next/static/chunks/{188_7xt~9qo5z.js → 0jlzko424.5et.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xc5b.xin3frr.js → 0khxfvo-tgpbc.js} +1 -1
- package/.next/standalone/.next/static/chunks/0nfwp8f87wok1.js +1 -0
- package/.next/standalone/.next/static/chunks/0qu5zm6k.e_de.js +5 -0
- package/.next/standalone/.next/static/chunks/0rbykdrqih-0t.js +1 -0
- package/.next/standalone/.next/static/chunks/{0n9bv.-ktyu9g.js → 0w7_~s93hxxkk.js} +1 -1
- package/.next/standalone/.next/static/chunks/0wbzgoyu4~g4x.js +1 -0
- package/.next/standalone/.next/static/chunks/{0odml~1zfmatg.js → 0yl2smjfz2bzk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{06pdwir_r4uhn.js → 10q75vl~mg7vy.js} +1 -1
- package/.next/standalone/.next/static/chunks/11pivwhywsmj9.js +1 -0
- package/.next/standalone/.next/static/chunks/{0m5kd96epukmx.js → 13ipvyn1q8z4y.js} +1 -1
- package/.next/standalone/.next/static/chunks/13qts-1uv7-ee.js +1 -0
- package/.next/standalone/.next/static/chunks/14bii1nj2yewi.js +1 -0
- package/.next/standalone/.next/static/chunks/14man4i21otxe.js +1 -0
- package/.next/standalone/.next/static/chunks/{0p0_.0f~k5o3x.js → 151eqj4g7bidp.js} +1 -1
- package/.next/standalone/.next/static/chunks/15_ulpp1r-6ra.js +1 -0
- package/.next/standalone/.next/static/chunks/15~2jg4z8h54~.js +1 -0
- package/.next/standalone/.next/static/chunks/{02_isu4z4lk1~.js → 17ldo-bezxis..js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ntang9wkuj-8.js → 183k6undfylp5.js} +1 -1
- package/.next/standalone/package.json +2 -2
- package/package.json +2 -2
- package/scripts/migrations/0002-backfill-done-at.ts +29 -0
- package/skills/tower/SKILL.md +81 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10xjtl0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0.7vx4q._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0gc019m._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0m_1ssw._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0nghgzi._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0reranf._.js +0 -3
- package/.next/standalone/.next/static/chunks/0-fc2i1mw_t-2.js +0 -2
- package/.next/standalone/.next/static/chunks/0.7r6od5..1~d.css +0 -1
- package/.next/standalone/.next/static/chunks/0.duc36elgwmt.js +0 -1
- package/.next/standalone/.next/static/chunks/093zwcwn8el.s.js +0 -1
- package/.next/standalone/.next/static/chunks/0gx4n5njdyksz.js +0 -1
- package/.next/standalone/.next/static/chunks/0l49-stccar4a.js +0 -1
- package/.next/standalone/.next/static/chunks/0l~z-vsf.633k.js +0 -5
- package/.next/standalone/.next/static/chunks/0m_9-3_hpbfly.js +0 -1
- package/.next/standalone/.next/static/chunks/0sm78n1ikzixj.js +0 -1
- package/.next/standalone/.next/static/chunks/0v73i.x591~km.js +0 -1
- package/.next/standalone/.next/static/chunks/0wkd~xb2skr1g.js +0 -1
- package/.next/standalone/.next/static/chunks/0xyj_-7b.4l1l.js +0 -1
- package/.next/standalone/.next/static/chunks/10f-2fo.qg504.js +0 -1
- package/.next/standalone/.next/static/chunks/11p_dl5tngif4.js +0 -1
- package/.next/standalone/.next/static/chunks/153-zn4e8fta1.js +0 -1
- /package/.next/standalone/.next/static/{SCktqI1yaRGMJYovFwj4q → 08PQLn-tnfP4XX6HBzxZ7}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{SCktqI1yaRGMJYovFwj4q → 08PQLn-tnfP4XX6HBzxZ7}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{SCktqI1yaRGMJYovFwj4q → 08PQLn-tnfP4XX6HBzxZ7}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"00d8357334fe09b9e5e97d62ca6f4fd14cc26b3f5e",null),(0,b.registerServerReference)(j,"60934fc4316e2fc9b036dd5f376e6dbef7c73dfb3d",null),(0,b.registerServerReference)(k,"0015f7c7e44e0e20cf49a9eb75cd0ee972cd0ecde2",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.36",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/run-migrations.ts","scripts/migrations/","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish",start:"next start",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts","db:migrate":"tsx scripts/run-migrations.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tinykeys:"^4.0.0",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
|
|
1
|
+
module.exports=[487373,a=>{"use strict";var b=a.i(815429),c=a.i(761469),d=a.i(188139),e=a.i(378322),f=a.i(855806),g=a.i(630048);let h=["terminal","summary","dreaming","analysis","assistant"];async function i(){return c.db.aiCapabilityConfig.findMany({orderBy:{slot:"asc"}})}async function j(a,b){if(!h.includes(a))throw Error(`无效的插槽: ${a}`);if(!e.providerRegistry.get(b.provider))throw Error(`未知的 Provider: ${b.provider}`);if("terminal"===a&&"cli"!==b.mode)throw Error("终端执行只支持 CLI 模式");if(!await (0,f.isProviderConnected)(b.provider))throw Error(`Provider "${b.provider}" 未连接或集成未注入完整 — 请到 Settings → Test Connection 测试通过后再选`);await c.db.aiCapabilityConfig.upsert({where:{slot:a},create:{slot:a,provider:b.provider,mode:b.mode,model:b.model??null},update:{provider:b.provider,mode:b.mode,model:b.model??null}}),(0,d.revalidatePath)("/settings")}async function k(){return e.providerRegistry.getAvailableProviders()}(0,g.ensureServerEntryExports)([i,j,k]),(0,b.registerServerReference)(i,"00700970dd41f90a06bf330fe389964482cbc7b430",null),(0,b.registerServerReference)(j,"60b5728606ca15f8e5daf6f51249dddeda332785f2",null),(0,b.registerServerReference)(k,"00266118c331beafed9891f843965ca9caa0782e03",null),a.s(["getAvailableProviders",0,k])},950071,a=>{"use strict";var b=a.i(750227),c=a.i(902157),d=a.i(660526),e=a.i(744992);let f=".lock",g=/^tower-(backup|auto)-\d{8}-\d{6}\.tar\.gz$/;async function h(a,d,f,g){let h,i,j,k,l=`${g?"tower-auto":"tower-backup"}-${(h=new Date,i=a=>String(a).padStart(2,"0"),j=`${h.getFullYear()}${i(h.getMonth()+1)}${i(h.getDate())}`,k=`${i(h.getHours())}${i(h.getMinutes())}${i(h.getSeconds())}`,`${j}-${k}`)}.tar.gz`,m=(0,b.join)(d,l),n=(0,b.join)(a,"metadata.json");(0,c.writeFileSync)(n,JSON.stringify(f,null,2));try{let d=["metadata.json"];(0,c.existsSync)((0,b.join)(a,"database","tower.db"))&&d.push((0,b.join)("database","tower.db")),(0,c.existsSync)((0,b.join)(a,"storage","assets"))&&d.push((0,b.join)("storage","assets")),(0,c.existsSync)((0,b.join)(a,"assistant"))&&d.push("assistant"),(0,c.existsSync)((0,b.join)(a,"logs"))&&d.push("logs"),await e.create({gzip:!0,file:m,cwd:a},d);let h=(0,c.statSync)(m);return{filename:l,size:h.size,createdAt:f.createdAt,autoBackup:g,label:f.label??"",stats:f.stats,preview:f.preview}}catch(a){try{(0,c.unlinkSync)(m)}catch{}throw a}finally{try{(0,c.unlinkSync)(n)}catch{}}}async function i(a){let d=(0,b.join)((0,b.dirname)(a),`_meta_tmp_${Date.now()}`);try{(0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>"metadata.json"===a});let f=(0,b.join)(d,"metadata.json");if(!(0,c.existsSync)(f))return null;return JSON.parse((0,c.readFileSync)(f,"utf-8"))}catch{return null}finally{(0,c.rmSync)(d,{recursive:!0,force:!0})}}async function j(a){if(!(0,c.existsSync)(a))return[];let d=(0,c.readdirSync)(a).filter(a=>g.test(a)).sort().reverse(),e=[];for(let f of d){let d=(0,b.join)(a,f),g=(0,c.statSync)(d),h=await i(d);e.push({filename:f,size:g.size,createdAt:h?.createdAt??g.mtime.toISOString(),autoBackup:h?.autoBackup??f.startsWith("tower-auto"),label:h?.label??"",stats:h?.stats??{workspaces:0,projects:0,tasks:0},preview:h?.preview??[]})}return e}async function k(a,d){if((0,c.mkdirSync)(d,{recursive:!0}),await e.extract({file:a,cwd:d,filter:a=>!((0,b.isAbsolute)(a)||a.includes(".."))}),!(0,c.existsSync)((0,b.join)(d,"database","tower.db")))throw Error("Invalid archive: missing database/tower.db")}let l=["database",(0,b.join)("storage","assets"),"assistant","logs"];a.s(["acquireLock",0,function(a){let d=(0,b.join)(a,f);if((0,c.existsSync)(d)){let a=parseInt((0,c.readFileSync)(d,"utf-8").trim(),10);try{throw process.kill(a,0),Error("Another backup operation is in progress")}catch(a){if(a instanceof Error&&a.message.includes("Another backup"))throw a}}(0,c.writeFileSync)(d,String(process.pid))},"cleanupTempDirs",0,function(a){for(let d of["_restore_tmp","_old_tmp"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}},"createArchive",0,h,"deleteWalFiles",0,function(a){let d=(0,b.join)(a,"database");for(let a of["-wal","-shm"]){let e=(0,b.join)(d,`tower.db${a}`);try{(0,c.unlinkSync)(e)}catch{}}},"extractArchive",0,k,"listArchives",0,j,"releaseLock",0,function(a){let d=(0,b.join)(a,f);try{(0,c.unlinkSync)(d)}catch{}},"swapDirs",0,function(a,d){let e=(0,b.join)(a,"_old_tmp");(0,c.mkdirSync)(e,{recursive:!0});try{for(let d of l){let f=(0,b.join)(a,d),g=(0,b.join)(e,d);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(e,d)),{recursive:!0}),(0,c.renameSync)(f,g))}for(let e of l){let f=(0,b.join)(d,e),g=(0,b.join)(a,e);(0,c.existsSync)(f)&&((0,c.mkdirSync)((0,b.dirname)((0,b.join)(a,e)),{recursive:!0}),(0,c.renameSync)(f,g))}(0,c.rmSync)(e,{recursive:!0,force:!0})}catch(d){for(let d of l){let f=(0,b.join)(e,d),g=(0,b.join)(a,d);if((0,c.existsSync)(f)&&!(0,c.existsSync)(g))try{(0,c.renameSync)(f,g)}catch{}}throw(0,c.rmSync)(e,{recursive:!0,force:!0}),d}},"validateBackupDir",0,function(a){if(!(0,b.isAbsolute)(a))throw Error("Backup directory must be an absolute path");let c=(0,d.homedir)(),e=(0,b.relative)(c,a);if(e.startsWith("..")||(0,b.isAbsolute)(e))throw Error("Backup directory must be within your home directory")},"validateFilename",0,function(a){if(!g.test(a))throw Error(`Invalid backup filename: ${a}`)},"wipeTowerData",0,function(a){for(let d of["database",(0,b.join)("storage","assets"),"assistant","logs"]){let e=(0,b.join)(a,d);(0,c.existsSync)(e)&&(0,c.rmSync)(e,{recursive:!0,force:!0})}}])},712072,(a,b,c)=>{b.exports={name:"tower-studio",version:"0.2.38",description:"AI Task Orchestration Platform — Kanban + Terminal + Code Editor + MCP",bin:{tower:"bin/tower.mjs"},files:["bin/",".next/standalone/","prisma/schema.prisma","prisma/init-fts.ts","prisma/pre-migration.sql","scripts/init-db.ts","scripts/generate-prisma-client.js","scripts/link-prisma.js","scripts/fix-native-permissions.js","scripts/post-install-banner.js","scripts/prune-standalone-natives.js","scripts/migrate-data.ts","scripts/run-migrations.ts","scripts/migrations/","scripts/post-tool-hook.js","scripts/session-start-hook.js","scripts/stop-hook.js","dist/mcp-server.cjs","skills/","next.config.ts","tsconfig.json"],scripts:{predev:"node scripts/ensure-dev-db.js && pnpm mcp:build",dev:"next dev --webpack -p 9022",build:"pnpm mcp:build && rm -rf .next && next build && find .next -name '*.map' -delete && cp -R .next/static .next/standalone/.next/ && cp -R public .next/standalone/ && node scripts/prune-standalone-natives.js",release:"pnpm build && npm pack","release:smoke":"node scripts/release-smoke.js","release:publish":"pnpm build && npm publish",start:"node bin/tower.mjs",lint:"eslint","db:generate":"prisma generate","db:push":"prisma db push","db:seed":"tsx prisma/seed.ts","db:studio":"prisma studio","db:init":"tsx scripts/init-db.ts","db:init-fts":"tsx prisma/init-fts.ts","db:migrate":"tsx scripts/run-migrations.ts",test:"vitest","test:run":"vitest run","test:e2e":"NO_PROXY=localhost,127.0.0.1 no_proxy=localhost,127.0.0.1 playwright test",changelog:"conventional-changelog -p angular -i CHANGELOG.md -s",mcp:"node dist/mcp-server.cjs","mcp:build":"esbuild src/mcp/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/mcp-server.cjs --external:@prisma/client --external:@modelcontextprotocol/sdk --external:@opentelemetry/api --alias:@=./src","mcp:dev":"tsx src/mcp/index.ts",postinstall:"node scripts/generate-prisma-client.js && node scripts/link-prisma.js && node scripts/fix-native-permissions.js && node scripts/post-install-banner.js"},pnpm:{onlyBuiltDependencies:["@prisma/engines","esbuild","node-pty","prisma"]},dependencies:{"@modelcontextprotocol/sdk":"^1.28.0","@prisma/client":"^6.19.2","@vscode/ripgrep":"1.18.0","node-pty":"^1.1.0",prisma:"^6.19.2",tinykeys:"^4.0.0",tsx:"^4.21.0",ws:"^8.20.0"},devDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.114","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@iconify/react":"^6.0.2","@monaco-editor/react":"4.8.0-rc.3","@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4","@tailwindcss/typography":"^0.5.19","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19","@types/shell-quote":"^1.7.5","@types/tar":"^7.0.87","@types/ws":"^8.18.1","@uiw/react-md-editor":"^4.0.11","@vitejs/plugin-react":"^6.0.1","@xterm/addon-attach":"^0.12.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",cmdk:"^1.1.1","conventional-changelog-cli":"^5.0.0",eslint:"^9","eslint-config-next":"16.2.1","fuse.js":"^7.3.0",ignore:"^7.0.5",jsdom:"^29.0.1","lucide-react":"^1.6.0","monaco-editor":"^0.55.1",next:"16.2.1","next-themes":"^0.4.6","parse-diff":"^0.12.0",react:"19.2.4","react-dom":"19.2.4","react-resizable-panels":"^2.1.9","react-reverse-portal":"^2.3.0",shadcn:"^4.1.0","shell-quote":"^1.8.3","simple-git":"^3.36.0",sonner:"^2.0.7",streamdown:"^2.5.0","tailwind-merge":"^3.5.0",tailwindcss:"^4",tar:"^7.5.13","tw-animate-css":"^1.4.0",typescript:"^5",vitest:"^4.1.1",zod:"^4.3.6",zustand:"^5.0.12"}}},537944,a=>a.a(async(b,c)=>{try{var d=a.i(815429),e=a.i(761469),f=a.i(319997),g=a.i(980999),h=a.i(950071),i=a.i(750227),j=a.i(902157),k=a.i(188139),l=a.i(630048),m=b([g]);async function n(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function o(b,c){let[d,f,g]=await Promise.all([e.db.workspace.count(),e.db.project.count(),e.db.task.count()]),h=(await e.db.workspace.findMany({take:3,orderBy:{updatedAt:"desc"},select:{name:!0,description:!0,projects:{take:3,select:{name:!0},orderBy:{updatedAt:"desc"}}}})).map(a=>{let b=a.description??"";return{workspace:b?`${b} ${a.name}`:a.name,projects:a.projects.map(a=>a.name)}});return{version:1,createdAt:new Date().toISOString(),towerVersion:function(){try{return a.r(712072).version??"unknown"}catch{return"unknown"}}(),autoBackup:b,label:c||void 0,stats:{workspaces:d,projects:f,tasks:g},preview:h}}async function p(a){let b=await n();(0,h.acquireLock)(b);try{let c=await o(!1,a);return await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)((0,f.getTowerDir)(),b,c,!1)}finally{(0,h.releaseLock)(b)}}async function q(){let a=await n();return(0,h.listArchives)(a)}async function r(a){(0,h.validateFilename)(a);let b=await n(),c=(0,i.join)(b,a);if(!(0,j.existsSync)(c))throw Error("Backup file not found");(0,j.unlinkSync)(c)}async function s(b){(0,h.validateFilename)(b);let c=(0,f.getTowerDir)(),d=await n(),g=(0,i.join)(d,b);if(!(0,j.existsSync)(g))throw Error("Backup file not found");(0,h.acquireLock)(d);let l=(0,i.join)(c,"_restore_tmp");try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await (0,h.extractArchive)(g,l),await e.db.$disconnect(),(0,h.deleteWalFiles)(c),(0,h.swapDirs)(c,l),await (0,e.resetDbConnection)(),await e.db.$executeRawUnsafe(`
|
|
2
2
|
CREATE VIRTUAL TABLE IF NOT EXISTS notes_fts
|
|
3
3
|
USING fts5(note_id UNINDEXED, title, content, tokenize='trigram case_sensitive 0')
|
|
4
|
-
`);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"
|
|
4
|
+
`);let{syncNoteToFts:i}=await a.A(195404);for(let a of(await e.db.projectNote.findMany({select:{id:!0,title:!0,content:!0}})))await i(e.db,a);(0,k.revalidatePath)("/")}finally{(0,h.cleanupTempDirs)(c),(0,h.releaseLock)(d)}}async function t(b){if("RESET"!==b)throw Error("Invalid confirmation");let c=(0,f.getTowerDir)(),d=await n();(0,h.acquireLock)(d);try{let b=await o(!0);await e.db.$queryRaw`PRAGMA wal_checkpoint(TRUNCATE)`,await (0,h.createArchive)(c,d,b,!0);let{destroyAllSessions:f}=await a.A(98813);f(),await e.db.$disconnect(),(0,h.wipeTowerData)(c),await (0,e.resetDbConnection)(),(0,k.revalidatePath)("/")}finally{(0,h.releaseLock)(d)}}async function u(){return await (0,g.getConfigValue)("system.backupDir","")||(0,f.getBackupsDir)()}async function v(a){(0,h.validateBackupDir)(a),await (0,g.setConfigValue)("system.backupDir",a)}[g]=m.then?(await m)():m,(0,l.ensureServerEntryExports)([p,q,r,s,t,u,v]),(0,d.registerServerReference)(p,"40e0df170298483d9bbeccecff738a693d99c5e55b",null),(0,d.registerServerReference)(q,"003a503d82c9fd68de5e7d9078ba314e57b29fcd32",null),(0,d.registerServerReference)(r,"40fcc83ab91f82e0641bc7b7a89a8e92219b896d94",null),(0,d.registerServerReference)(s,"4039e758a220806737d714f24e413810873766cfff",null),(0,d.registerServerReference)(t,"40b61b369ab366867e1f85f3bf76b20373203021c2",null),(0,d.registerServerReference)(u,"00001bcd96599679a4ade2257b7b32b836ddd7def3",null),(0,d.registerServerReference)(v,"40602cbe729aab9d0c1057cc6420ad6dc02495ad6d",null),a.s(["createBackup",0,p,"deleteBackupFile",0,r,"getBackupDir",0,u,"listBackupFiles",0,q,"resetSystem",0,t,"restoreBackup",0,s,"setBackupDir",0,v]),c()}catch(a){c(a)}},!1),415673,a=>{"use strict";var b=a.i(815429),c=a.i(902157),d=a.i(750227),e=a.i(75681),f=a.i(761469),g=a.i(319997),h=a.i(630048);async function i(){return{current:(0,g.getStorageDir)(),default:(0,g.getDefaultStorageDir)(),isDefault:null===(0,g.readStoragePointer)()}}let j=e.z.object({newPath:e.z.string().min(1)});async function k(a){let{newPath:b}=j.parse(a),e=d.resolve(b),h=d.resolve((0,g.getStorageDir)()),i=d.resolve((0,g.getDefaultStorageDir)());if(!d.isAbsolute(e))return{ok:!1,error:"请输入绝对路径"};if(e===h)return{ok:!0,moved:0};if(e.startsWith(h+d.sep)||h.startsWith(e+d.sep))return{ok:!1,error:"新路径不能是当前存储目录的父级或子级"};if(c.existsSync(e)){if(!c.statSync(e).isDirectory())return{ok:!1,error:"目标路径已存在且不是目录"};if(c.readdirSync(e).length>0)return{ok:!1,error:"目标目录非空,请选择一个空目录或新目录"}}let k=d.dirname(e);try{c.mkdirSync(e,{recursive:!0}),c.accessSync(e,c.constants.W_OK)}catch{return{ok:!1,error:`无法写入目标目录(检查权限):${k}`}}try{c.existsSync(h)&&(c.cpSync(h,e,{recursive:!0}),c.rmSync(h,{recursive:!0,force:!0}))}catch(a){return{ok:!1,error:`迁移文件失败:${a instanceof Error?a.message:String(a)}`}}let l=0,m=h+d.sep;for(let a of(await f.db.projectAsset.findMany({select:{id:!0,path:!0}})))if(a.path.startsWith(m)){let b=d.join(e,a.path.slice(h.length+1));await f.db.projectAsset.update({where:{id:a.id},data:{path:b}}),l+=1}return(0,g.writeStoragePointer)(e===i?null:e),{ok:!0,moved:l}}(0,h.ensureServerEntryExports)([i,k]),(0,b.registerServerReference)(i,"00f13439475a3793f95344ce09e2f72d811159c82b",null),(0,b.registerServerReference)(k,"4058884cd86ceb238dd23849793327b3f2fa45167e",null),a.s(["getStorageLocation",0,i,"setStorageLocation",0,k])},520288,a=>a.a(async(b,c)=>{try{a.i(244256),a.i(495370);var d=a.i(396904),e=a.i(980999);a.i(101844),a.i(563736),a.i(4634),a.i(925886),a.i(487373);var f=a.i(537944);a.i(415673);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),857434,a=>a.a(async(b,c)=>{try{var d=a.i(520288),e=a.i(244256),f=a.i(495370),g=a.i(396904),h=a.i(980999),i=a.i(101844),j=a.i(563736),k=a.i(4634),l=a.i(925886),m=a.i(487373),n=a.i(537944),o=a.i(415673),p=b([d,g,h,n]);[d,g,h,n]=p.then?(await p)():p,a.s(["00001bcd96599679a4ade2257b7b32b836ddd7def3",()=>n.getBackupDir,"00266118c331beafed9891f843965ca9caa0782e03",()=>m.getAvailableProviders,"003a503d82c9fd68de5e7d9078ba314e57b29fcd32",()=>n.listBackupFiles,"003a751a093cb8d33cb84837de53ed55bb831808f0",()=>h.getAvailableEditors,"003ef32d24bc4b29c342acf4c816cf95fa4fe3f598",()=>h.getActualWsPort,"003f1dfdc13dd3928867e8ca32a72ccaefc2e0573d",()=>k.getOnboardingStatus,"006aab408acb61a0962235f55a3de594983b7dd5bf",()=>j.listAllExtensionStatus,"0096dda894769b63f7db321229f2e29c5eb63910eb",()=>h.getAvailableTerminalApps,"00f13439475a3793f95344ce09e2f72d811159c82b",()=>o.getStorageLocation,"400e2fda1bae5acb01074e51d080a2be2a77bc34cd",()=>h.getConfigValues,"4012b5a73e0f56276592ab3dffbfb4a5886b44ad1f",()=>h.resolveGitLocalPath,"4030983d0916967d1b45111b1f8932995e322ac168",()=>f.getLabelsForWorkspace,"4039e758a220806737d714f24e413810873766cfff",()=>n.restoreBackup,"404ced5321cafdbb940385d492c4abe7763919765c",()=>l.getPrompts,"405365149185a3f1aa7bf7b74cf5fd91f66a6c9d5b",()=>e.deleteWorkspace,"4054c3d2ea9f6bcddfa7d33d42dc7ae43c5d3bc071",()=>j.installExtension,"4054f9623c07304a83a2f85e6b3b6fae81dc47f655",()=>e.reorderWorkspaces,"4058884cd86ceb238dd23849793327b3f2fa45167e",()=>o.setStorageLocation,"40602cbe729aab9d0c1057cc6420ad6dc02495ad6d",()=>n.setBackupDir,"40769e3e7c790732374614ca824e004ce8291d79f2",()=>e.createWorkspace,"4089bb43b964c3cc5b2848bc729865dee8e56f60a6",()=>k.dispatchTaskCompletionEvent,"4090dece3eac4df8d9aa55e39136298bd458446dac",()=>f.createLabel,"40ace337192d4dd9a4a7362eab01bc86850fb4a0d8",()=>k.setOnboardingProgress,"40b312e080b33001e97622ba996bad24f8aaf9fe1d",()=>j.checkExtension,"40b4afd819167bb48c681e66a7e9184ef54b187356",()=>j.uninstallExtension,"40b61b369ab366867e1f85f3bf76b20373203021c2",()=>n.resetSystem,"40c075d29e5bfede26a93e26cf145f2fccc603534f",()=>l.deletePrompt,"40c7f324fe557fb80c37a1a32181503a0536257351",()=>i.checkMigrationSafety,"40ccc3be5ee2c307201017260aa05492281bf067fb",()=>e.createProject,"40e0df170298483d9bbeccecff738a693d99c5e55b",()=>n.createBackup,"40ed593f878bdb40633ace1e213cdd4a46659ed794",()=>l.createPrompt,"40f89aa83057e20a65456875f67e50fe3a99de604e",()=>f.deleteLabel,"40fcc83ab91f82e0641bc7b7a89a8e92219b896d94",()=>n.deleteBackupFile,"6003b9bf4e05e9d923ec7aa8ed47b1d2e8b1806cb7",()=>k.setOnboardingExtensions,"60076279904b452893970a334bf7415e18d4f37849",()=>l.setDefaultPrompt,"6022565280345647acafc879d6697aabada2ec392f",()=>k.completeOnboarding,"603afc0abc8a99c0d1556130213be4f1900ced3cf3",()=>i.analyzeProjectDirectory,"603b94f659983ece6c00b16fef05685ccb8ef6c65c",()=>l.updatePrompt,"605c2fc35fe8ffc8c86eea4b9b750a9ac5c7b745f6",()=>g.globalSearch,"609263c53e73f969487fb3a78f5cad865efcc601e8",()=>e.updateWorkspace,"60c086bb0d6a417695daf1a78de8b35ca7f8183e15",()=>h.setConfigValue,"60c86ef167fca66c0b566738b7d16ce04945d66ce2",()=>i.migrateProjectPath,"60fed8ee888cd0a6a4480474a484ee4fe77a6d9c20",()=>h.getConfigValue]),c()}catch(a){c(a)}},!1)];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=_070t_mh._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘","任务笔记","经验洞见"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},113047,716834,87433,a=>{"use strict";let b=(0,a.i(711796).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s(["ChevronsUpDown",0,b],113047);var c=a.i(780410);let d=(0,c.createServerReference)("4005c134080c66bb8cabf390cf0ff11380f0e0b6db",c.callServer,void 0,c.findSourceMapURL,"getProjectBranches");a.s(["getProjectBranches",0,d],716834);let e=(0,c.createServerReference)("4078d8e4a64f54b301edad3a8747029da86e985d81",c.callServer,void 0,c.findSourceMapURL,"fetchRemoteBranches");a.s(["fetchRemoteBranches",0,e],87433)},329258,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4020a59af9c321427f702c3c13f21ccd90a0734683",b.callServer,void 0,b.findSourceMapURL,"createTask");a.s(["createTask",0,c])},310943,343441,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40b9da4796cde7c3039167d8c9a106bd4eca5494bf",b.callServer,void 0,b.findSourceMapURL,"getTaskNotes");a.s(["getTaskNotes",0,c],310943);let d=(0,b.createServerReference)("4024c970ae8e22133b65e280b1f6790b6dcc9e8aab",b.callServer,void 0,b.findSourceMapURL,"getTaskAssets");a.s(["getTaskAssets",0,d],343441)},445798,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(814574),e=a.i(699570),f=a.i(866718),g=a.i(429246),h=a.i(412783),i=a.i(577565),j=a.i(668116),k=a.i(113047),l=a.i(580701),m=a.i(599209),n=a.i(419622),o=a.i(951192),p=a.i(716834),q=a.i(87433),r=a.i(780410);let s=(0,r.createServerReference)("400954e103ea703bf5fe6e03cc8c3f1a4a7b47a9a1",r.callServer,void 0,r.findSourceMapURL,"getCurrentBranch");var t=a.i(504571);a.s(["CreateTaskDialog",0,function({open:a,onOpenChange:r,onSubmit:u,onUpdate:v,defaultStatus:w="TODO",editTask:x,editTaskLabelIds:y,prefillFromTask:z,labels:A,projectType:B,projectLocalPath:C,versions:D,defaultVersionId:E}){let F,[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)("MEDIUM"),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(!0),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),{t:ac}=(0,o.useI18n)();(0,c.useEffect)(()=>{if(!a||x)return;let b=!1;return(0,t.getConfigValues)(["task.defaultUseWorktree","task.defaultAutoStart"]).then(a=>{if(b)return;let c=a["task.defaultUseWorktree"],d=a["task.defaultAutoStart"];"boolean"==typeof c&&Z(c),"boolean"==typeof d&&_(d)}).catch(()=>{}),()=>{b=!0}},[a,x]);let ad=!!x,ae=!!C;return(0,c.useEffect)(()=>{x?(H(x.title),J(x.description??""),L(x.priority),N(x.subPath??""),P(y??[]),ab(x.versionId??null)):(z?(H(z.title??""),J(z.description??""),L(z.priority??"MEDIUM"),N(z.subPath??""),P(z.labelIds??[])):(H(""),J(""),L("MEDIUM"),N(""),P([])),ab(E??null))},[x,y,z,E]),(0,c.useEffect)(()=>{a||x||(H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),X(!1),ab(E??null))},[a,x,E]),(0,c.useEffect)(()=>{a&&ae&&!x&&(T(!0),Promise.all([(0,p.getProjectBranches)(C),s(C)]).then(([a,b])=>{R(a);let c=z?.baseBranch??null;c&&a.includes(c)?V(c):V(b&&a.includes(b)?b:a[0]??""),T(!1),(0,q.fetchRemoteBranches)(C).then(()=>{setTimeout(()=>{(0,p.getProjectBranches)(C).then(a=>{R(a),V(b=>a.includes(b)?b:a[0]??"")}).catch(()=>{})},3e3)})}).catch(()=>{R([]),V(""),T(!1)}))},[a,ae,C,x,z]),(0,b.jsx)(d.Dialog,{open:a,onOpenChange:r,disablePointerDismissal:!0,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(d.DialogHeader,{children:(0,b.jsx)(d.DialogTitle,{children:ad?ac("task.edit"):ac("task.create")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"title",children:ac("task.title")}),(0,b.jsx)(f.Input,{id:"title","data-testid":"task-title",placeholder:ac("task.titlePlaceholder"),value:G,onChange:a=>H(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault()})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"description",children:ac("task.description")}),(0,b.jsx)(g.Textarea,{id:"description",placeholder:ac("task.descPlaceholder"),rows:4,value:I,onChange:a=>J(a.target.value),className:"max-h-[200px] overflow-y-auto"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"subPath",children:ac("task.subPath")}),(0,b.jsx)(f.Input,{id:"subPath",placeholder:ac("task.subPathPlaceholder"),value:M,onChange:a=>N(a.target.value)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:ac("task.subPathHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.priority")}),(0,b.jsx)("div",{className:"flex gap-1.5",children:["LOW","MEDIUM","HIGH","CRITICAL"].map(a=>{let c={LOW:{label:ac("task.priorityLow"),style:"text-slate-300 border-slate-500/30 bg-slate-500/10"},MEDIUM:{label:ac("task.priorityMedium"),style:"text-amber-300 border-amber-500/30 bg-amber-500/10"},HIGH:{label:ac("task.priorityHigh"),style:"text-orange-300 border-orange-500/30 bg-orange-500/10"},CRITICAL:{label:ac("task.priorityCritical"),style:"text-rose-300 border-rose-500/30 bg-rose-500/10"}}[a];return(0,b.jsx)("button",{type:"button",onClick:()=>L(a),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-all ${K===a?`${c.style} ring-1 ring-current/20`:"border-border text-muted-foreground hover:bg-accent"}`,children:c.label},a)})})]}),ae&&!ad&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.baseBranch")}),S?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchLoading")}):Q.length>0?(0,b.jsxs)(m.Popover,{open:W,onOpenChange:X,children:[(0,b.jsxs)(m.PopoverTrigger,{className:"flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono transition-colors hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring","data-testid":"branch-selector",children:[(0,b.jsx)(i.GitBranch,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left text-xs",title:U||void 0,children:U||ac("task.branchNone")}),(0,b.jsx)(k.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(m.PopoverContent,{className:"w-[min(32rem,90vw)] p-0",align:"start",children:(0,b.jsxs)(n.Command,{children:[(0,b.jsx)(n.CommandInput,{placeholder:ac("task.branchSearch")}),(0,b.jsxs)(n.CommandList,{children:[(0,b.jsx)(n.CommandEmpty,{children:ac("task.branchNone")}),(0,b.jsx)(n.CommandGroup,{children:Q.map(a=>(0,b.jsxs)(n.CommandItem,{value:a,onSelect:()=>{V(a),X(!1)},children:[(0,b.jsx)(i.GitBranch,{className:"h-3 w-3 text-muted-foreground shrink-0 mr-2"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",title:a,children:a}),a===U&&(0,b.jsx)(j.Check,{className:"h-3 w-3 text-primary shrink-0 ml-auto"})]},a))})]})]})})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchNone")}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.worktreeLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${Y===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.worktreeYes"):ac("task.worktreeNo")},String(a)))})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.autoStartLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>_(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${$===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.autoStartYes"):ac("task.autoStartNo")},String(a)))})]})]}),A.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:A.map(a=>{let c=O.includes(a.id);return(0,b.jsx)("button",{type:"button",onClick:()=>{P(b=>c?b.filter(b=>b!==a.id):[...b,a.id])},className:`rounded-full px-2.5 py-1 text-xs font-medium transition-all ${c?"ring-1 ring-current/30":"opacity-50 hover:opacity-80"}`,style:{backgroundColor:a.color+"20",color:a.color,borderColor:c?a.color+"40":"transparent",borderWidth:"1px"},children:a.name},a.id)})})]}),(!ad||D&&D.length>0)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("version.picker.label")}),D&&D.length>0?(0,b.jsxs)(l.Select,{value:aa??"__none__",onValueChange:a=>ab("__none__"===a?null:a),children:[(0,b.jsx)(l.SelectTrigger,{children:(0,b.jsx)("span",{className:"truncate text-sm",children:aa&&(F=D.find(a=>a.id===aa))?F.isCurrent?`${F.number} \xb7 ${F.name} \xb7 ${ac("version.currentShort")}`:`${F.number} \xb7 ${F.name}`:ac("version.picker.none")})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsx)(l.SelectItem,{value:"__none__",children:ac("version.picker.none")}),D.map(a=>(0,b.jsx)(l.SelectItem,{value:a.id,children:a.isCurrent?`${a.number} \xb7 ${a.name} \xb7 ${ac("version.currentShort")}`:`${a.number} \xb7 ${a.name}`},a.id))]})]}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground",children:ac("version.picker.empty")})]})]}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>r(!1),children:ac("common.cancel")}),(0,b.jsx)(e.Button,{onClick:()=>{G.trim()&&(ad&&v?v(x.id,{title:G,description:I,priority:K,labelIds:O,subPath:M.trim()||"",versionId:aa}):u({title:G,description:I,priority:K,status:w,labelIds:O,...ae&&Y&&U?{baseBranch:U}:{},...M.trim()?{subPath:M.trim()}:{},versionId:aa,autoStart:$}),H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),Z(!0),ab(null),r(!1))},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:ad?ac("common.save"):ac("common.create")})]})]})})}],445798)},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},510650,a=>{"use strict";var b=a.i(728778);a.i(757942);var c=a.i(950314),d=a.i(814574),e=a.i(951192);a.s(["NotePreviewDialog",0,function({note:a,open:f,onOpenChange:g}){let{t:h}=(0,e.useI18n)();return(0,b.jsx)(d.Dialog,{open:f,onOpenChange:g,children:(0,b.jsxs)(d.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:a?.title}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:a&&a.content.trim()?(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(c.Streamdown,{children:a.content})}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("taskPage.noteEmpty")})})]})})}])},532615,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(986099),e=a.i(54384),f=a.i(912868),g=a.i(10390),h=a.i(91756);let i=(0,a.i(711796).default)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var j=a.i(747798),k=a.i(951192);function l({children:a,onClick:c,title:d,disabled:e,...f}){return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||c()},title:d,disabled:e,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-white/80 hover:bg-white/15 hover:text-white disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-white/80 transition-colors",...f,children:a})}a.s(["ImageLightbox",0,function({imageUrl:a,filename:m,open:n,onOpenChange:o,assets:p,currentIndex:q,onIndexChange:r}){let{t:s}=(0,k.useI18n)(),[t,u]=(0,c.useState)(1),[v,w]=(0,c.useState)({x:0,y:0}),[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(!1),C=!!p&&p.length>1&&"number"==typeof q&&!!r,D=C&&q>0,E=C&&q<p.length-1,F=C?p.length:0,G=F>0?Math.ceil(F/10):0,H=C?Math.floor(q/10):0,I=10*H,J=Math.min(I+10,F),K=G>1,L=C&&H>0,M=C&&H<G-1;(0,c.useEffect)(()=>{B(!0)},[]),(0,c.useEffect)(()=>{u(1),w({x:0,y:0})},[a]),(0,c.useEffect)(()=>{if(!n)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[n]);let N=(0,c.useCallback)(()=>o(!1),[o]),O=(0,c.useCallback)(()=>{C&&D&&r(q-1)},[C,D,r,q]),P=(0,c.useCallback)(()=>{C&&E&&r(q+1)},[C,E,r,q]),Q=(0,c.useCallback)(()=>{C&&L&&r((H-1)*10)},[C,L,r,H]),R=(0,c.useCallback)(()=>{C&&M&&r(Math.min((H+1)*10,F-1))},[C,M,r,H,F]),S=(0,c.useCallback)(()=>{u(a=>Math.min(8,1.25*a))},[]),T=(0,c.useCallback)(()=>{u(a=>{let b=Math.max(.1,a/1.25);return b<=1&&w({x:0,y:0}),b})},[]),U=(0,c.useCallback)(()=>{u(1),w({x:0,y:0})},[]);(0,c.useEffect)(()=>{if(!n)return;let a=a=>{switch(a.key){case"Escape":a.preventDefault(),N();break;case"ArrowLeft":C&&(a.preventDefault(),O());break;case"ArrowRight":C&&(a.preventDefault(),P());break;case"+":case"=":a.preventDefault(),S();break;case"-":case"_":a.preventDefault(),T();break;case"0":a.preventDefault(),U()}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n,C,N,O,P,S,T,U]);let V=(0,c.useRef)(!1),W=()=>{x&&y(!1),z.current=null},X=x?"cursor-grabbing":"cursor-grab";if(!n||!A)return null;let Y=(0,b.jsxs)("div",{className:"fixed inset-0 z-[100] bg-black/70 dark:bg-black/40 backdrop-blur-md",role:"dialog","aria-modal":"true","aria-label":s("assets.lightbox.zoomFit"),children:[(0,b.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 max-w-[80vw] truncate rounded-md bg-black/40 px-3 py-1 text-xs text-white/80 backdrop-blur-sm pointer-events-none",children:[m,C?` \xb7 ${q+1} / ${p.length}`:""]}),(0,b.jsx)("div",{className:`absolute inset-0 flex items-center justify-center overflow-hidden select-none ${X}`,onClick:a=>{a.target===a.currentTarget&&N()},onWheel:a=>{a.preventDefault();let b=-a.deltaY>0?1.25:.8;u(a=>{let c=Math.min(8,Math.max(.1,a*b));return c<=1&&w({x:0,y:0}),c})},children:a&&(0,b.jsx)("img",{src:a,alt:m,onClick:a=>{a.stopPropagation(),V.current&&(V.current=!1)},onPointerDown:a=>{0===a.button&&(a.stopPropagation(),V.current=!1,a.target.setPointerCapture?.(a.pointerId),z.current={x:a.clientX,y:a.clientY,panX:v.x,panY:v.y},y(!0))},onPointerMove:a=>{if(!z.current)return;let b=a.clientX-z.current.x,c=a.clientY-z.current.y;Math.abs(b)+Math.abs(c)>5&&(V.current=!0),x&&w({x:z.current.panX+b,y:z.current.panY+c})},onPointerUp:W,onPointerLeave:W,onPointerCancel:W,className:"max-h-[88vh] max-w-[92vw] object-contain pointer-events-auto",style:{transform:`translate3d(${v.x}px, ${v.y}px, 0) scale(${t})`,transformOrigin:"center center",transition:x?"none":"transform 120ms ease-out",willChange:x?"transform":"auto"},draggable:!1})}),(0,b.jsxs)("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 max-w-[92vw]",onClick:a=>a.stopPropagation(),children:[C&&(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-1.5 py-1.5 backdrop-blur-md ring-1 ring-white/10 max-w-[92vw]",children:[K&&(0,b.jsx)(l,{onClick:Q,title:`${s("assets.lightbox.prev")} (-10)`,"aria-label":`${s("assets.lightbox.prev")} (-10)`,disabled:!L,children:(0,b.jsx)(h.ChevronsLeft,{className:"h-4 w-4"})}),(0,b.jsx)(l,{onClick:O,title:s("assets.lightbox.prev"),"aria-label":s("assets.lightbox.prev"),disabled:!D,children:(0,b.jsx)(f.ChevronLeft,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:p.slice(I,J).map((a,c)=>{let d=I+c,e=d===q;return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||r(d)},title:a.filename,className:`shrink-0 h-12 w-12 overflow-hidden rounded-md transition-all ${e?"ring-2 ring-white opacity-100 scale-105":"opacity-60 hover:opacity-100 ring-1 ring-white/20"}`,children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:"h-full w-full object-cover",loading:"lazy",draggable:!1})},a.url+d)})}),(0,b.jsx)(l,{onClick:P,title:s("assets.lightbox.next"),"aria-label":s("assets.lightbox.next"),disabled:!E,children:(0,b.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),K&&(0,b.jsx)(l,{onClick:R,title:`${s("assets.lightbox.next")} (+10)`,"aria-label":`${s("assets.lightbox.next")} (+10)`,disabled:!M,children:(0,b.jsx)(i,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-2 py-1.5 backdrop-blur-md ring-1 ring-white/10",children:[(0,b.jsxs)("span",{className:"px-2 text-xs text-white/80 tabular-nums select-none min-w-12 text-center",children:[Math.round(100*t),"%"]}),(0,b.jsx)(l,{onClick:U,title:s("assets.lightbox.reset"),"aria-label":s("assets.lightbox.reset"),disabled:1===t&&0===v.x&&0===v.y,children:(0,b.jsx)(j.RotateCcw,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"mx-1 h-5 w-px bg-white/20"}),(0,b.jsx)(l,{onClick:N,title:s("assets.lightbox.close"),"aria-label":s("assets.lightbox.close"),children:(0,b.jsx)(e.X,{className:"h-4 w-4"})})]})]})]});return(0,d.createPortal)(Y,document.body)}],532615)},894148,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(704494);a.i(757942);var e=a.i(950314),f=a.i(814574),g=a.i(951192);a.s(["TextPreviewDialog",0,function({url:a,filename:h,open:i,onOpenChange:j}){let{t:k}=(0,g.useI18n)(),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!i||!a){m(null),q(null);return}let b=!1;return o(!0),q(null),m(null),fetch(a).then(a=>{let b=a.headers.get("content-length");if(b&&parseInt(b,10)>1048576)throw Error("FILE_TOO_LARGE");return a.text()}).then(a=>{if(a.length>1048576)throw Error("FILE_TOO_LARGE");b||(m(a),o(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?q(k("assets.fileTooLarge")):q(k("assets.previewError")),o(!1))}),()=>{b=!0}},[i,a,k]);let r=h.split(".").pop()?.toLowerCase();return(0,b.jsx)(f.Dialog,{open:i,onOpenChange:j,children:(0,b.jsxs)(f.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:h}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:(()=>{if(n)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:k("assets.loadingPreview")})]});if(p)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:p});if(null===l)return null;if("md"===r)return(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(e.Streamdown,{children:l})});if("json"===r){let a;try{a=JSON.stringify(JSON.parse(l),null,2)}catch{a=l}return(0,b.jsx)("pre",{className:"font-mono text-xs whitespace-pre-wrap text-foreground",children:a})}return(0,b.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap text-foreground",children:l})})()})]})})}])},161181,a=>{"use strict";let b=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","apng"]);a.s(["isImageAsset",0,function(a,c){if(c?.startsWith("image/"))return!0;let d=a.split(".").pop()?.toLowerCase();return!!d&&b.has(d)},"localPathToApiUrl",0,function(a){let b=a.replace(/\\/g,"/").match(/\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}])},87339,a=>{"use strict";let b=(0,a.i(711796).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",0,b],87339)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_07_.oek._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[56068,818862,164187,a=>{"use strict";var b=a.i(374637);let c=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},d=a=>{let d=a?c(a):c,e=a=>(function(a,c=a=>a){let d=b.default.useSyncExternalStore(a.subscribe,b.default.useCallback(()=>c(a.getState()),[a,c]),b.default.useCallback(()=>c(a.getInitialState()),[a,c]));return b.default.useDebugValue(d),d})(d,a);return Object.assign(e,d),e},e=a=>a?d(a):d;a.s(["create",0,e],818862);let f=["Shift","Meta","Alt","Control"],g="object"==typeof navigator?navigator.platform:"",h=/Mac|iPod|iPhone|iPad/.test(g)?"Meta":"Control",i="Win32"===g?["Control","Alt"]:["Alt"];function j(a,b){return"function"==typeof a.getModifierState&&(a.getModifierState(b)||i.includes(b)&&a.getModifierState("AltGraph"))}function k(a){return a.trim().split(" ").map(a=>{let b=a.split(/(?<=\w|\])\+/),c=b.pop(),d=c.match(/^\((.+)\)$/),e=d?RegExp(`^(?:${d[1]})$`,"iv"):c,f=[],g=[];for(let a of b){let b=a.match(/^\[(.*)\]$/),c=b?.[1]??a;c="$mod"===c?h:c,b?g.push(c):f.push(c)}return[f,g,e]})}a.s(["matchKeybindingPress",0,function(a,[b,c,d]){let e=b.includes("AltGraph");return!((d instanceof RegExp?!(d.test(a.key)||d.test(a.code)):d.toUpperCase()!==a.key.toUpperCase()&&d!==a.code)||b.find(b=>!j(a,b))||f.find(f=>!b.includes(f)&&!c.includes(f)&&d!==f&&j(a,f)&&!(e&&i.includes(f))))},"parseKeybinding",0,k],164187);let l=0,m=0,n=e(a=>({entries:new Map,register:b=>{var c;let d=(l+=1,`sc_${l}`);m+=1;let e=Array.isArray(c=b.keys)?[...c]:[c],f={...b,id:d,keys:e,presses:e.map(a=>k(a)),seq:m};return a(a=>{let b=new Map(a.entries);return b.set(d,f),{entries:b}}),d},unregister:b=>{a(a=>{if(!a.entries.has(b))return a;let c=new Map(a.entries);return c.delete(b),{entries:c}})}}));a.s(["selectAllShortcuts",0,function(a){return Array.from(a.entries.values())},"useShortcutStore",0,n],56068)},519786,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(56068),e=a.i(164187);function f(a){return(a.priority??0)+1e3*("global"!==a.scope)}a.s(["ShortcutProvider",0,function({children:a}){return(0,c.useEffect)(()=>{function a(a){let b=(0,d.selectAllShortcuts)(d.useShortcutStore.getState());if(0===b.length)return;let c=function(a,b,c){let d=[];for(let f of a){if(f.when&&!1===f.when())continue;let a=null;for(let c of f.presses){if(1!==c.length)continue;let d=c[0];if((0,e.matchKeybindingPress)(b,d)){a=d;break}}if(a){if(c){if(function(a){let[b]=a;return b.some(a=>"Control"===a||"Meta"===a||"Alt"===a)}(a)){if(!1===f.allowInInput)continue}else if(!f.allowInInput)continue}d.push(f)}}return 0===d.length?null:(d.sort((a,b)=>{let c=f(a),d=f(b);return c!==d?d-c:b.seq-a.seq}),d[0])}(b,a,function(a){if(!a)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!0===a.isContentEditable}(document.activeElement));c&&(!1!==c.preventDefault&&a.preventDefault(),a.stopPropagation(),c.handler(a))}return window.addEventListener("keydown",a,{capture:!0}),()=>{window.removeEventListener("keydown",a,{capture:!0})}},[]),(0,b.jsx)(b.Fragment,{children:a})}],519786)},542940,a=>{"use strict";var b=a.i(374637),c=a.i(56068);a.s(["useShortcut",0,function(...a){let d=function(a){let b=a[0];if("string"==typeof b||Array.isArray(b))return Array.isArray(b)&&b.length>0&&"string"!=typeof b[0]?b:[{keys:b,handler:a[1],...a[2]??{}}];return[b]}(a),e=(0,b.useRef)(d);(0,b.useEffect)(()=>{e.current=d});let f=(0,c.useShortcutStore)(a=>a.register),g=(0,c.useShortcutStore)(a=>a.unregister),h=JSON.stringify(d.map(a=>({keys:a.keys,scope:a.scope,description:a.description,group:a.group,allowInInput:a.allowInInput,preventDefault:a.preventDefault,priority:a.priority,hidden:a.hidden,hasWhen:"function"==typeof a.when})));(0,b.useEffect)(()=>{let a=e.current.map((a,b)=>f({...a,handler:a=>e.current[b]?.handler(a),when:a.when?()=>e.current[b]?.when?.()??!0:void 0}));return()=>{for(let b of a)g(b)}},[h,f,g])}])},424764,a=>{"use strict";var b=a.i(56068);function c(){if("u"<typeof navigator)return!1;let a=navigator.userAgentData?.platform;return/mac/i.test(a??navigator.userAgent??"")}let d={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓"};function e(a){let b=c();return a.split("+").map(a=>(function(a,b){switch(a){case"$mod":case"Meta":return b?"⌘":"Ctrl";case"Control":return"Ctrl";case"Alt":return b?"⌥":"Alt";case"Shift":return"⇧";case"Escape":return"Esc";case"Enter":return"↵";case"Tab":return"Tab";default:if(/^Digit[0-9]$/.test(a))return a.slice(5);return d[a]??a}})(a,b))}function f(a){return a.map(a=>e(a).join("+"))}a.s(["compactKeyList",0,function(a){if(a.length<3)return a;let b=a.map(a=>{let b=/^(.*?)(?:Digit)?([1-9])$/.exec(a);return b?{prefix:b[1],digit:Number(b[2])}:null});if(b.some(a=>null===a))return a;let c=b[0].prefix;return b.every(a=>a.prefix===c)&&b.every((a,b)=>a.digit===b+1)?[`${c}1–${b[b.length-1].digit}`]:a},"isMac",0,c,"renderComboTokens",0,e,"renderKeys",0,f,"useShortcutHelp",0,function(){let a=(0,b.useShortcutStore)(b.selectAllShortcuts),c=new Map;for(let b of a){if(b.hidden)continue;let a=b.group??b.scope??"global",d=c.get(a);d?d.push(b):c.set(a,[b])}return{groups:Array.from(c.entries()).map(([a,b])=>({title:a,shortcuts:b})),renderKeys:f}}])},109603,875846,267654,a=>{"use strict";let b=[{id:"global.search",defaultKeys:["$mod+k"],descriptionKey:"shortcuts.search",group:"global",scope:"global",configurable:!0},{id:"global.commandPalette",defaultKeys:["$mod+p"],descriptionKey:"shortcuts.commandPalette",group:"global",scope:"global",configurable:!0},{id:"global.help",defaultKeys:["$mod+/","?"],descriptionKey:"shortcuts.openHelp",group:"global",scope:"global",configurable:!0},{id:"global.assistant",defaultKeys:["$mod+l"],descriptionKey:"shortcuts.assistant",group:"global",scope:"global",configurable:!0},{id:"global.gotoWorkspace",defaultKeys:["Alt+Digit1","Alt+Digit2","Alt+Digit3","Alt+Digit4","Alt+Digit5","Alt+Digit6","Alt+Digit7","Alt+Digit8","Alt+Digit9"],descriptionKey:"shortcuts.gotoWorkspace",group:"global",scope:"global",configurable:!1,allowInInput:!0},{id:"panels.taskManager",defaultKeys:["$mod+Control+j"],descriptionKey:"shortcuts.panels.taskManager",group:"panels",scope:"global",configurable:!0},{id:"panels.assets",defaultKeys:["$mod+Control+k"],descriptionKey:"shortcuts.panels.assets",group:"panels",scope:"global",configurable:!0},{id:"panels.notes",defaultKeys:["$mod+Control+l"],descriptionKey:"shortcuts.panels.notes",group:"panels",scope:"global",configurable:!0},{id:"panels.archive",defaultKeys:["$mod+Control+;"],descriptionKey:"shortcuts.panels.archive",group:"panels",scope:"global",configurable:!0},{id:"missions.exit",defaultKeys:["Control+;"],descriptionKey:"shortcuts.missions.exitToNav",group:"missions",scope:"missions",configurable:!0,allowInInput:!0},{id:"missions.jump",defaultKeys:["1","2","3","4","5","6","7","8","9"],descriptionKey:"shortcuts.missions.jump",group:"missions",scope:"missions",configurable:!1},{id:"missions.moveSelection",defaultKeys:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],descriptionKey:"shortcuts.missions.moveSel",group:"missions",scope:"missions",configurable:!1},{id:"missions.cycle",defaultKeys:["Tab"],descriptionKey:"shortcuts.missions.cyclePane",group:"missions",scope:"missions",configurable:!1},{id:"missions.cycleBack",defaultKeys:["Shift+Tab"],descriptionKey:"shortcuts.missions.cyclePane",group:"missions",scope:"missions",configurable:!1},{id:"missions.focus",defaultKeys:["Enter"],descriptionKey:"shortcuts.missions.focusSel",group:"missions",scope:"missions",configurable:!1},{id:"missions.next",defaultKeys:["$mod+]","$mod+ArrowRight"],descriptionKey:"shortcuts.missions.nextPane",group:"missions",scope:"missions",configurable:!0,allowInInput:!0},{id:"missions.prev",defaultKeys:["$mod+[","$mod+ArrowLeft"],descriptionKey:"shortcuts.missions.prevPane",group:"missions",scope:"missions",configurable:!0,allowInInput:!0}],c=new Map(b.map(a=>[a.id,a]));function d(a){let b=c.get(a);if(!b)throw Error(`Unknown shortcut action: ${a}`);return b}function e(a){}function f(a,b){return a[b]??[...d(b).defaultKeys]}a.s(["SHORTCUT_ACTIONS",0,b,"getAction",0,d],109603);let g=(0,a.i(818862).create)((a,b)=>({overrides:{},setBinding:(b,c)=>a(a=>{let d={...a.overrides,[b]:c};return e(d),{overrides:d}}),resetBinding:b=>a(a=>{if(!(b in a.overrides))return a;let c={...a.overrides};return delete c[b],e(c),{overrides:c}}),resetAll:()=>{e({}),a({overrides:{}})},resolveKeys:a=>f(b().overrides,a)}));a.s(["resolveKeysFrom",0,f,"useKeymapStore",0,g],875846);var h=a.i(951192),i=a.i(542940);function j(a){return g(b=>b.overrides[a])??[...d(a).defaultKeys]}a.s(["useActionShortcut",0,function(a,b,c){let e=d(a),f=j(a),{t:g}=(0,h.useI18n)();(0,i.useShortcut)(f,b,{scope:e.scope,description:g(e.descriptionKey),group:g(`shortcuts.group.${e.group}`),allowInInput:e.allowInInput,...c})},"useResolvedKeys",0,j],267654)},423993,975787,a=>{"use strict";a.i(519786),a.i(542940);var b=a.i(424764);a.i(56068),a.i(109603),a.i(267654),a.s(["serializeKeyEvent",0,function(a){let{key:c}=a;if("Control"===c||"Shift"===c||"Alt"===c||"Meta"===c)return null;let d=(0,b.isMac)(),e=[];return(d?a.metaKey:a.ctrlKey)&&e.push("$mod"),(d?a.ctrlKey:a.metaKey)&&e.push(d?"Control":"Meta"),a.altKey&&e.push("Alt"),a.shiftKey&&e.push("Shift"),e.push(1===c.length&&/[a-zA-Z]/.test(c)?c.toLowerCase():c),e.join("+")}],975787),a.i(875846),a.s([],423993)},369289,a=>{"use strict";let b=(0,a.i(711796).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",0,b],369289)},977502,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("6003c3cecd13125ce0fa7031ae4ba6c79f9da4ea9b",b.callServer,void 0,b.findSourceMapURL,"getConfigValue");a.s(["getConfigValue",0,c])},190076,567648,a=>{"use strict";var b=a.i(711796);let c=(0,b.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);a.s(["Bell",0,c],190076);let d=(0,b.default)("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);a.s(["Keyboard",0,d],567648)},718799,a=>{"use strict";var b=a.i(728778),c=a.i(374637);a.i(423993);var d=a.i(424764),e=a.i(368114);function f({children:a}){return(0,b.jsx)("kbd",{className:(0,e.cn)("inline-flex min-w-[1.5rem] items-center justify-center rounded-md","border border-border bg-muted px-1.5 py-0.5","text-[11px] font-medium leading-none text-foreground","shadow-[inset_0_-1px_0_var(--border)]"),children:a})}a.s(["KeyCombo",0,function({keys:a}){let e=(0,d.compactKeyList)(a);return(0,b.jsx)("span",{className:"inline-flex flex-wrap items-center gap-1.5",children:e.map((a,e)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[e>0&&(0,b.jsx)("span",{className:"text-[11px] text-muted-foreground/40",children:"/"}),(0,d.renderComboTokens)(a).map((a,d)=>(0,b.jsxs)(c.Fragment,{children:[d>0&&(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"+"}),(0,b.jsx)(f,{children:a})]},d))]},`${a}-${e}`))})}])}];
|
|
1
|
+
module.exports=[56068,818862,164187,a=>{"use strict";var b=a.i(374637);let c=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},d=a=>{let d=a?c(a):c,e=a=>(function(a,c=a=>a){let d=b.default.useSyncExternalStore(a.subscribe,b.default.useCallback(()=>c(a.getState()),[a,c]),b.default.useCallback(()=>c(a.getInitialState()),[a,c]));return b.default.useDebugValue(d),d})(d,a);return Object.assign(e,d),e},e=a=>a?d(a):d;a.s(["create",0,e],818862);let f=["Shift","Meta","Alt","Control"],g="object"==typeof navigator?navigator.platform:"",h=/Mac|iPod|iPhone|iPad/.test(g)?"Meta":"Control",i="Win32"===g?["Control","Alt"]:["Alt"];function j(a,b){return"function"==typeof a.getModifierState&&(a.getModifierState(b)||i.includes(b)&&a.getModifierState("AltGraph"))}function k(a){return a.trim().split(" ").map(a=>{let b=a.split(/(?<=\w|\])\+/),c=b.pop(),d=c.match(/^\((.+)\)$/),e=d?RegExp(`^(?:${d[1]})$`,"iv"):c,f=[],g=[];for(let a of b){let b=a.match(/^\[(.*)\]$/),c=b?.[1]??a;c="$mod"===c?h:c,b?g.push(c):f.push(c)}return[f,g,e]})}a.s(["matchKeybindingPress",0,function(a,[b,c,d]){let e=b.includes("AltGraph");return!((d instanceof RegExp?!(d.test(a.key)||d.test(a.code)):d.toUpperCase()!==a.key.toUpperCase()&&d!==a.code)||b.find(b=>!j(a,b))||f.find(f=>!b.includes(f)&&!c.includes(f)&&d!==f&&j(a,f)&&!(e&&i.includes(f))))},"parseKeybinding",0,k],164187);let l=0,m=0,n=e(a=>({entries:new Map,register:b=>{var c;let d=(l+=1,`sc_${l}`);m+=1;let e=Array.isArray(c=b.keys)?[...c]:[c],f={...b,id:d,keys:e,presses:e.map(a=>k(a)),seq:m};return a(a=>{let b=new Map(a.entries);return b.set(d,f),{entries:b}}),d},unregister:b=>{a(a=>{if(!a.entries.has(b))return a;let c=new Map(a.entries);return c.delete(b),{entries:c}})}}));a.s(["selectAllShortcuts",0,function(a){return Array.from(a.entries.values())},"useShortcutStore",0,n],56068)},519786,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(56068),e=a.i(164187);function f(a){return(a.priority??0)+1e3*("global"!==a.scope)}a.s(["ShortcutProvider",0,function({children:a}){return(0,c.useEffect)(()=>{function a(a){let b=(0,d.selectAllShortcuts)(d.useShortcutStore.getState());if(0===b.length)return;let c=function(a,b,c){let d=[];for(let f of a){if(f.when&&!1===f.when())continue;let a=null;for(let c of f.presses){if(1!==c.length)continue;let d=c[0];if((0,e.matchKeybindingPress)(b,d)){a=d;break}}if(a){if(c){if(function(a){let[b]=a;return b.some(a=>"Control"===a||"Meta"===a||"Alt"===a)}(a)){if(!1===f.allowInInput)continue}else if(!f.allowInInput)continue}d.push(f)}}return 0===d.length?null:(d.sort((a,b)=>{let c=f(a),d=f(b);return c!==d?d-c:b.seq-a.seq}),d[0])}(b,a,function(a){if(!a)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!0===a.isContentEditable}(document.activeElement));c&&(!1!==c.preventDefault&&a.preventDefault(),a.stopPropagation(),c.handler(a))}return window.addEventListener("keydown",a,{capture:!0}),()=>{window.removeEventListener("keydown",a,{capture:!0})}},[]),(0,b.jsx)(b.Fragment,{children:a})}],519786)},542940,a=>{"use strict";var b=a.i(374637),c=a.i(56068);a.s(["useShortcut",0,function(...a){let d=function(a){let b=a[0];if("string"==typeof b||Array.isArray(b))return Array.isArray(b)&&b.length>0&&"string"!=typeof b[0]?b:[{keys:b,handler:a[1],...a[2]??{}}];return[b]}(a),e=(0,b.useRef)(d);(0,b.useEffect)(()=>{e.current=d});let f=(0,c.useShortcutStore)(a=>a.register),g=(0,c.useShortcutStore)(a=>a.unregister),h=JSON.stringify(d.map(a=>({keys:a.keys,scope:a.scope,description:a.description,group:a.group,allowInInput:a.allowInInput,preventDefault:a.preventDefault,priority:a.priority,hidden:a.hidden,hasWhen:"function"==typeof a.when})));(0,b.useEffect)(()=>{let a=e.current.map((a,b)=>f({...a,handler:a=>e.current[b]?.handler(a),when:a.when?()=>e.current[b]?.when?.()??!0:void 0}));return()=>{for(let b of a)g(b)}},[h,f,g])}])},424764,a=>{"use strict";var b=a.i(56068);function c(){if("u"<typeof navigator)return!1;let a=navigator.userAgentData?.platform;return/mac/i.test(a??navigator.userAgent??"")}let d={ArrowLeft:"←",ArrowRight:"→",ArrowUp:"↑",ArrowDown:"↓"};function e(a){let b=c();return a.split("+").map(a=>(function(a,b){switch(a){case"$mod":case"Meta":return b?"⌘":"Ctrl";case"Control":return"Ctrl";case"Alt":return b?"⌥":"Alt";case"Shift":return"⇧";case"Escape":return"Esc";case"Enter":return"↵";case"Tab":return"Tab";default:if(/^Digit[0-9]$/.test(a))return a.slice(5);return d[a]??a}})(a,b))}function f(a){return a.map(a=>e(a).join("+"))}a.s(["compactKeyList",0,function(a){if(a.length<3)return a;let b=a.map(a=>{let b=/^(.*?)(?:Digit)?([1-9])$/.exec(a);return b?{prefix:b[1],digit:Number(b[2])}:null});if(b.some(a=>null===a))return a;let c=b[0].prefix;return b.every(a=>a.prefix===c)&&b.every((a,b)=>a.digit===b+1)?[`${c}1–${b[b.length-1].digit}`]:a},"isMac",0,c,"renderComboTokens",0,e,"renderKeys",0,f,"useShortcutHelp",0,function(){let a=(0,b.useShortcutStore)(b.selectAllShortcuts),c=new Map;for(let b of a){if(b.hidden)continue;let a=b.group??b.scope??"global",d=c.get(a);d?d.push(b):c.set(a,[b])}return{groups:Array.from(c.entries()).map(([a,b])=>({title:a,shortcuts:b})),renderKeys:f}}])},109603,875846,267654,a=>{"use strict";let b=[{id:"global.search",defaultKeys:["$mod+k"],descriptionKey:"shortcuts.search",group:"global",scope:"global",configurable:!0},{id:"global.commandPalette",defaultKeys:["$mod+p"],descriptionKey:"shortcuts.commandPalette",group:"global",scope:"global",configurable:!0},{id:"global.help",defaultKeys:["$mod+/","?"],descriptionKey:"shortcuts.openHelp",group:"global",scope:"global",configurable:!0},{id:"global.assistant",defaultKeys:["$mod+l"],descriptionKey:"shortcuts.assistant",group:"global",scope:"global",configurable:!0},{id:"global.gotoWorkspace",defaultKeys:["Alt+Digit1","Alt+Digit2","Alt+Digit3","Alt+Digit4","Alt+Digit5","Alt+Digit6","Alt+Digit7","Alt+Digit8","Alt+Digit9"],descriptionKey:"shortcuts.gotoWorkspace",group:"global",scope:"global",configurable:!1,allowInInput:!0},{id:"panels.taskManager",defaultKeys:["$mod+Control+j"],descriptionKey:"shortcuts.panels.taskManager",group:"panels",scope:"global",configurable:!0},{id:"panels.assets",defaultKeys:["$mod+Control+k"],descriptionKey:"shortcuts.panels.assets",group:"panels",scope:"global",configurable:!0},{id:"panels.notes",defaultKeys:["$mod+Control+l"],descriptionKey:"shortcuts.panels.notes",group:"panels",scope:"global",configurable:!0},{id:"panels.archive",defaultKeys:["$mod+Control+;"],descriptionKey:"shortcuts.panels.archive",group:"panels",scope:"global",configurable:!0},{id:"missions.exit",defaultKeys:["Control+;"],descriptionKey:"shortcuts.missions.exitToNav",group:"missions",scope:"missions",configurable:!0,allowInInput:!0},{id:"missions.jump",defaultKeys:["1","2","3","4","5","6","7","8","9"],descriptionKey:"shortcuts.missions.jump",group:"missions",scope:"missions",configurable:!1},{id:"missions.moveSelection",defaultKeys:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],descriptionKey:"shortcuts.missions.moveSel",group:"missions",scope:"missions",configurable:!1},{id:"missions.cycle",defaultKeys:["Tab"],descriptionKey:"shortcuts.missions.cyclePane",group:"missions",scope:"missions",configurable:!1},{id:"missions.cycleBack",defaultKeys:["Shift+Tab"],descriptionKey:"shortcuts.missions.cyclePane",group:"missions",scope:"missions",configurable:!1},{id:"missions.focus",defaultKeys:["Enter"],descriptionKey:"shortcuts.missions.focusSel",group:"missions",scope:"missions",configurable:!1},{id:"missions.next",defaultKeys:["$mod+ArrowRight"],descriptionKey:"shortcuts.missions.nextPane",group:"missions",scope:"missions",configurable:!0,allowInInput:!0},{id:"missions.prev",defaultKeys:["$mod+ArrowLeft"],descriptionKey:"shortcuts.missions.prevPane",group:"missions",scope:"missions",configurable:!0,allowInInput:!0}],c=new Map(b.map(a=>[a.id,a]));function d(a){let b=c.get(a);if(!b)throw Error(`Unknown shortcut action: ${a}`);return b}function e(a){}function f(a,b){return a[b]??[...d(b).defaultKeys]}a.s(["SHORTCUT_ACTIONS",0,b,"getAction",0,d],109603);let g=(0,a.i(818862).create)((a,b)=>({overrides:{},setBinding:(b,c)=>a(a=>{let d={...a.overrides,[b]:c};return e(d),{overrides:d}}),resetBinding:b=>a(a=>{if(!(b in a.overrides))return a;let c={...a.overrides};return delete c[b],e(c),{overrides:c}}),resetAll:()=>{e({}),a({overrides:{}})},resolveKeys:a=>f(b().overrides,a)}));a.s(["resolveKeysFrom",0,f,"useKeymapStore",0,g],875846);var h=a.i(951192),i=a.i(542940);function j(a){return g(b=>b.overrides[a])??[...d(a).defaultKeys]}a.s(["useActionShortcut",0,function(a,b,c){let e=d(a),f=j(a),{t:g}=(0,h.useI18n)();(0,i.useShortcut)(f,b,{scope:e.scope,description:g(e.descriptionKey),group:g(`shortcuts.group.${e.group}`),allowInInput:e.allowInInput,...c})},"useResolvedKeys",0,j],267654)},423993,975787,a=>{"use strict";a.i(519786),a.i(542940);var b=a.i(424764);a.i(56068),a.i(109603),a.i(267654),a.s(["serializeKeyEvent",0,function(a){let{key:c}=a;if("Control"===c||"Shift"===c||"Alt"===c||"Meta"===c)return null;let d=(0,b.isMac)(),e=[];return(d?a.metaKey:a.ctrlKey)&&e.push("$mod"),(d?a.ctrlKey:a.metaKey)&&e.push(d?"Control":"Meta"),a.altKey&&e.push("Alt"),a.shiftKey&&e.push("Shift"),e.push(1===c.length&&/[a-zA-Z]/.test(c)?c.toLowerCase():c),e.join("+")}],975787),a.i(875846),a.s([],423993)},567648,a=>{"use strict";let b=(0,a.i(711796).default)("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);a.s(["Keyboard",0,b],567648)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_09j.h2h._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[161181,a=>{"use strict";let b=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","apng"]);a.s(["isImageAsset",0,function(a,c){if(c?.startsWith("image/"))return!0;let d=a.split(".").pop()?.toLowerCase();return!!d&&b.has(d)},"localPathToApiUrl",0,function(a){let b=a.replace(/\\/g,"/").match(/\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}])},532615,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(986099),e=a.i(54384),f=a.i(912868),g=a.i(10390),h=a.i(91756);let i=(0,a.i(711796).default)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var j=a.i(747798),k=a.i(951192);function l({children:a,onClick:c,title:d,disabled:e,...f}){return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||c()},title:d,disabled:e,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-white/80 hover:bg-white/15 hover:text-white disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-white/80 transition-colors",...f,children:a})}a.s(["ImageLightbox",0,function({imageUrl:a,filename:m,open:n,onOpenChange:o,assets:p,currentIndex:q,onIndexChange:r}){let{t:s}=(0,k.useI18n)(),[t,u]=(0,c.useState)(1),[v,w]=(0,c.useState)({x:0,y:0}),[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(!1),C=!!p&&p.length>1&&"number"==typeof q&&!!r,D=C&&q>0,E=C&&q<p.length-1,F=C?p.length:0,G=F>0?Math.ceil(F/10):0,H=C?Math.floor(q/10):0,I=10*H,J=Math.min(I+10,F),K=G>1,L=C&&H>0,M=C&&H<G-1;(0,c.useEffect)(()=>{B(!0)},[]),(0,c.useEffect)(()=>{u(1),w({x:0,y:0})},[a]),(0,c.useEffect)(()=>{if(!n)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[n]);let N=(0,c.useCallback)(()=>o(!1),[o]),O=(0,c.useCallback)(()=>{C&&D&&r(q-1)},[C,D,r,q]),P=(0,c.useCallback)(()=>{C&&E&&r(q+1)},[C,E,r,q]),Q=(0,c.useCallback)(()=>{C&&L&&r((H-1)*10)},[C,L,r,H]),R=(0,c.useCallback)(()=>{C&&M&&r(Math.min((H+1)*10,F-1))},[C,M,r,H,F]),S=(0,c.useCallback)(()=>{u(a=>Math.min(8,1.25*a))},[]),T=(0,c.useCallback)(()=>{u(a=>{let b=Math.max(.1,a/1.25);return b<=1&&w({x:0,y:0}),b})},[]),U=(0,c.useCallback)(()=>{u(1),w({x:0,y:0})},[]);(0,c.useEffect)(()=>{if(!n)return;let a=a=>{switch(a.key){case"Escape":a.preventDefault(),N();break;case"ArrowLeft":C&&(a.preventDefault(),O());break;case"ArrowRight":C&&(a.preventDefault(),P());break;case"+":case"=":a.preventDefault(),S();break;case"-":case"_":a.preventDefault(),T();break;case"0":a.preventDefault(),U()}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n,C,N,O,P,S,T,U]);let V=(0,c.useRef)(!1),W=()=>{x&&y(!1),z.current=null},X=x?"cursor-grabbing":"cursor-grab";if(!n||!A)return null;let Y=(0,b.jsxs)("div",{className:"fixed inset-0 z-[100] bg-black/70 dark:bg-black/40 backdrop-blur-md",role:"dialog","aria-modal":"true","aria-label":s("assets.lightbox.zoomFit"),children:[(0,b.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 max-w-[80vw] truncate rounded-md bg-black/40 px-3 py-1 text-xs text-white/80 backdrop-blur-sm pointer-events-none",children:[m,C?` \xb7 ${q+1} / ${p.length}`:""]}),(0,b.jsx)("div",{className:`absolute inset-0 flex items-center justify-center overflow-hidden select-none ${X}`,onClick:a=>{a.target===a.currentTarget&&N()},onWheel:a=>{a.preventDefault();let b=-a.deltaY>0?1.25:.8;u(a=>{let c=Math.min(8,Math.max(.1,a*b));return c<=1&&w({x:0,y:0}),c})},children:a&&(0,b.jsx)("img",{src:a,alt:m,onClick:a=>{a.stopPropagation(),V.current&&(V.current=!1)},onPointerDown:a=>{0===a.button&&(a.stopPropagation(),V.current=!1,a.target.setPointerCapture?.(a.pointerId),z.current={x:a.clientX,y:a.clientY,panX:v.x,panY:v.y},y(!0))},onPointerMove:a=>{if(!z.current)return;let b=a.clientX-z.current.x,c=a.clientY-z.current.y;Math.abs(b)+Math.abs(c)>5&&(V.current=!0),x&&w({x:z.current.panX+b,y:z.current.panY+c})},onPointerUp:W,onPointerLeave:W,onPointerCancel:W,className:"max-h-[88vh] max-w-[92vw] object-contain pointer-events-auto",style:{transform:`translate3d(${v.x}px, ${v.y}px, 0) scale(${t})`,transformOrigin:"center center",transition:x?"none":"transform 120ms ease-out",willChange:x?"transform":"auto"},draggable:!1})}),(0,b.jsxs)("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 max-w-[92vw]",onClick:a=>a.stopPropagation(),children:[C&&(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-1.5 py-1.5 backdrop-blur-md ring-1 ring-white/10 max-w-[92vw]",children:[K&&(0,b.jsx)(l,{onClick:Q,title:`${s("assets.lightbox.prev")} (-10)`,"aria-label":`${s("assets.lightbox.prev")} (-10)`,disabled:!L,children:(0,b.jsx)(h.ChevronsLeft,{className:"h-4 w-4"})}),(0,b.jsx)(l,{onClick:O,title:s("assets.lightbox.prev"),"aria-label":s("assets.lightbox.prev"),disabled:!D,children:(0,b.jsx)(f.ChevronLeft,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:p.slice(I,J).map((a,c)=>{let d=I+c,e=d===q;return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||r(d)},title:a.filename,className:`shrink-0 h-12 w-12 overflow-hidden rounded-md transition-all ${e?"ring-2 ring-white opacity-100 scale-105":"opacity-60 hover:opacity-100 ring-1 ring-white/20"}`,children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:"h-full w-full object-cover",loading:"lazy",draggable:!1})},a.url+d)})}),(0,b.jsx)(l,{onClick:P,title:s("assets.lightbox.next"),"aria-label":s("assets.lightbox.next"),disabled:!E,children:(0,b.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),K&&(0,b.jsx)(l,{onClick:R,title:`${s("assets.lightbox.next")} (+10)`,"aria-label":`${s("assets.lightbox.next")} (+10)`,disabled:!M,children:(0,b.jsx)(i,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-2 py-1.5 backdrop-blur-md ring-1 ring-white/10",children:[(0,b.jsxs)("span",{className:"px-2 text-xs text-white/80 tabular-nums select-none min-w-12 text-center",children:[Math.round(100*t),"%"]}),(0,b.jsx)(l,{onClick:U,title:s("assets.lightbox.reset"),"aria-label":s("assets.lightbox.reset"),disabled:1===t&&0===v.x&&0===v.y,children:(0,b.jsx)(j.RotateCcw,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"mx-1 h-5 w-px bg-white/20"}),(0,b.jsx)(l,{onClick:N,title:s("assets.lightbox.close"),"aria-label":s("assets.lightbox.close"),children:(0,b.jsx)(e.X,{className:"h-4 w-4"})})]})]})]});return(0,d.createPortal)(Y,document.body)}],532615)},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},894148,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(704494);a.i(757942);var e=a.i(950314),f=a.i(814574),g=a.i(951192);a.s(["TextPreviewDialog",0,function({url:a,filename:h,open:i,onOpenChange:j}){let{t:k}=(0,g.useI18n)(),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!i||!a){m(null),q(null);return}let b=!1;return o(!0),q(null),m(null),fetch(a).then(a=>{let b=a.headers.get("content-length");if(b&&parseInt(b,10)>1048576)throw Error("FILE_TOO_LARGE");return a.text()}).then(a=>{if(a.length>1048576)throw Error("FILE_TOO_LARGE");b||(m(a),o(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?q(k("assets.fileTooLarge")):q(k("assets.previewError")),o(!1))}),()=>{b=!0}},[i,a,k]);let r=h.split(".").pop()?.toLowerCase();return(0,b.jsx)(f.Dialog,{open:i,onOpenChange:j,children:(0,b.jsxs)(f.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:h}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:(()=>{if(n)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:k("assets.loadingPreview")})]});if(p)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:p});if(null===l)return null;if("md"===r)return(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(e.Streamdown,{children:l})});if("json"===r){let a;try{a=JSON.stringify(JSON.parse(l),null,2)}catch{a=l}return(0,b.jsx)("pre",{className:"font-mono text-xs whitespace-pre-wrap text-foreground",children:a})}return(0,b.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap text-foreground",children:l})})()})]})})}])},329258,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4020a59af9c321427f702c3c13f21ccd90a0734683",b.callServer,void 0,b.findSourceMapURL,"createTask");a.s(["createTask",0,c])},310943,343441,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40b9da4796cde7c3039167d8c9a106bd4eca5494bf",b.callServer,void 0,b.findSourceMapURL,"getTaskNotes");a.s(["getTaskNotes",0,c],310943);let d=(0,b.createServerReference)("4024c970ae8e22133b65e280b1f6790b6dcc9e8aab",b.callServer,void 0,b.findSourceMapURL,"getTaskAssets");a.s(["getTaskAssets",0,d],343441)},113047,716834,87433,a=>{"use strict";let b=(0,a.i(711796).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s(["ChevronsUpDown",0,b],113047);var c=a.i(780410);let d=(0,c.createServerReference)("4005c134080c66bb8cabf390cf0ff11380f0e0b6db",c.callServer,void 0,c.findSourceMapURL,"getProjectBranches");a.s(["getProjectBranches",0,d],716834);let e=(0,c.createServerReference)("4078d8e4a64f54b301edad3a8747029da86e985d81",c.callServer,void 0,c.findSourceMapURL,"fetchRemoteBranches");a.s(["fetchRemoteBranches",0,e],87433)},445798,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(814574),e=a.i(699570),f=a.i(866718),g=a.i(429246),h=a.i(412783),i=a.i(577565),j=a.i(668116),k=a.i(113047),l=a.i(580701),m=a.i(599209),n=a.i(419622),o=a.i(951192),p=a.i(716834),q=a.i(87433),r=a.i(780410);let s=(0,r.createServerReference)("400954e103ea703bf5fe6e03cc8c3f1a4a7b47a9a1",r.callServer,void 0,r.findSourceMapURL,"getCurrentBranch");var t=a.i(504571);a.s(["CreateTaskDialog",0,function({open:a,onOpenChange:r,onSubmit:u,onUpdate:v,defaultStatus:w="TODO",editTask:x,editTaskLabelIds:y,prefillFromTask:z,labels:A,projectType:B,projectLocalPath:C,versions:D,defaultVersionId:E}){let F,[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)("MEDIUM"),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(!0),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),{t:ac}=(0,o.useI18n)();(0,c.useEffect)(()=>{if(!a||x)return;let b=!1;return(0,t.getConfigValues)(["task.defaultUseWorktree","task.defaultAutoStart"]).then(a=>{if(b)return;let c=a["task.defaultUseWorktree"],d=a["task.defaultAutoStart"];"boolean"==typeof c&&Z(c),"boolean"==typeof d&&_(d)}).catch(()=>{}),()=>{b=!0}},[a,x]);let ad=!!x,ae=!!C;return(0,c.useEffect)(()=>{x?(H(x.title),J(x.description??""),L(x.priority),N(x.subPath??""),P(y??[]),ab(x.versionId??null)):(z?(H(z.title??""),J(z.description??""),L(z.priority??"MEDIUM"),N(z.subPath??""),P(z.labelIds??[])):(H(""),J(""),L("MEDIUM"),N(""),P([])),ab(E??null))},[x,y,z,E]),(0,c.useEffect)(()=>{a||x||(H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),X(!1),ab(E??null))},[a,x,E]),(0,c.useEffect)(()=>{a&&ae&&!x&&(T(!0),Promise.all([(0,p.getProjectBranches)(C),s(C)]).then(([a,b])=>{R(a);let c=z?.baseBranch??null;c&&a.includes(c)?V(c):V(b&&a.includes(b)?b:a[0]??""),T(!1),(0,q.fetchRemoteBranches)(C).then(()=>{setTimeout(()=>{(0,p.getProjectBranches)(C).then(a=>{R(a),V(b=>a.includes(b)?b:a[0]??"")}).catch(()=>{})},3e3)})}).catch(()=>{R([]),V(""),T(!1)}))},[a,ae,C,x,z]),(0,b.jsx)(d.Dialog,{open:a,onOpenChange:r,disablePointerDismissal:!0,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(d.DialogHeader,{children:(0,b.jsx)(d.DialogTitle,{children:ad?ac("task.edit"):ac("task.create")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"title",children:ac("task.title")}),(0,b.jsx)(f.Input,{id:"title","data-testid":"task-title",placeholder:ac("task.titlePlaceholder"),value:G,onChange:a=>H(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault()})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"description",children:ac("task.description")}),(0,b.jsx)(g.Textarea,{id:"description",placeholder:ac("task.descPlaceholder"),rows:4,value:I,onChange:a=>J(a.target.value),className:"max-h-[200px] overflow-y-auto"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"subPath",children:ac("task.subPath")}),(0,b.jsx)(f.Input,{id:"subPath",placeholder:ac("task.subPathPlaceholder"),value:M,onChange:a=>N(a.target.value)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:ac("task.subPathHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.priority")}),(0,b.jsx)("div",{className:"flex gap-1.5",children:["LOW","MEDIUM","HIGH","CRITICAL"].map(a=>{let c={LOW:{label:ac("task.priorityLow"),style:"text-slate-300 border-slate-500/30 bg-slate-500/10"},MEDIUM:{label:ac("task.priorityMedium"),style:"text-amber-300 border-amber-500/30 bg-amber-500/10"},HIGH:{label:ac("task.priorityHigh"),style:"text-orange-300 border-orange-500/30 bg-orange-500/10"},CRITICAL:{label:ac("task.priorityCritical"),style:"text-rose-300 border-rose-500/30 bg-rose-500/10"}}[a];return(0,b.jsx)("button",{type:"button",onClick:()=>L(a),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-all ${K===a?`${c.style} ring-1 ring-current/20`:"border-border text-muted-foreground hover:bg-accent"}`,children:c.label},a)})})]}),ae&&!ad&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.baseBranch")}),S?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchLoading")}):Q.length>0?(0,b.jsxs)(m.Popover,{open:W,onOpenChange:X,children:[(0,b.jsxs)(m.PopoverTrigger,{className:"flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono transition-colors hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring","data-testid":"branch-selector",children:[(0,b.jsx)(i.GitBranch,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left text-xs",title:U||void 0,children:U||ac("task.branchNone")}),(0,b.jsx)(k.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(m.PopoverContent,{className:"w-[min(32rem,90vw)] p-0",align:"start",children:(0,b.jsxs)(n.Command,{children:[(0,b.jsx)(n.CommandInput,{placeholder:ac("task.branchSearch")}),(0,b.jsxs)(n.CommandList,{children:[(0,b.jsx)(n.CommandEmpty,{children:ac("task.branchNone")}),(0,b.jsx)(n.CommandGroup,{children:Q.map(a=>(0,b.jsxs)(n.CommandItem,{value:a,onSelect:()=>{V(a),X(!1)},children:[(0,b.jsx)(i.GitBranch,{className:"h-3 w-3 text-muted-foreground shrink-0 mr-2"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",title:a,children:a}),a===U&&(0,b.jsx)(j.Check,{className:"h-3 w-3 text-primary shrink-0 ml-auto"})]},a))})]})]})})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchNone")}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.worktreeLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${Y===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.worktreeYes"):ac("task.worktreeNo")},String(a)))})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.autoStartLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>_(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${$===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.autoStartYes"):ac("task.autoStartNo")},String(a)))})]})]}),A.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:A.map(a=>{let c=O.includes(a.id);return(0,b.jsx)("button",{type:"button",onClick:()=>{P(b=>c?b.filter(b=>b!==a.id):[...b,a.id])},className:`rounded-full px-2.5 py-1 text-xs font-medium transition-all ${c?"ring-1 ring-current/30":"opacity-50 hover:opacity-80"}`,style:{backgroundColor:a.color+"20",color:a.color,borderColor:c?a.color+"40":"transparent",borderWidth:"1px"},children:a.name},a.id)})})]}),(!ad||D&&D.length>0)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("version.picker.label")}),D&&D.length>0?(0,b.jsxs)(l.Select,{value:aa??"__none__",onValueChange:a=>ab("__none__"===a?null:a),children:[(0,b.jsx)(l.SelectTrigger,{children:(0,b.jsx)("span",{className:"truncate text-sm",children:aa&&(F=D.find(a=>a.id===aa))?F.isCurrent?`${F.number} \xb7 ${F.name} \xb7 ${ac("version.currentShort")}`:`${F.number} \xb7 ${F.name}`:ac("version.picker.none")})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsx)(l.SelectItem,{value:"__none__",children:ac("version.picker.none")}),D.map(a=>(0,b.jsx)(l.SelectItem,{value:a.id,children:a.isCurrent?`${a.number} \xb7 ${a.name} \xb7 ${ac("version.currentShort")}`:`${a.number} \xb7 ${a.name}`},a.id))]})]}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground",children:ac("version.picker.empty")})]})]}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>r(!1),children:ac("common.cancel")}),(0,b.jsx)(e.Button,{onClick:()=>{G.trim()&&(ad&&v?v(x.id,{title:G,description:I,priority:K,labelIds:O,subPath:M.trim()||"",versionId:aa}):u({title:G,description:I,priority:K,status:w,labelIds:O,...ae&&Y&&U?{baseBranch:U}:{},...M.trim()?{subPath:M.trim()}:{},versionId:aa,autoStart:$}),H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),Z(!0),ab(null),r(!1))},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:ad?ac("common.save"):ac("common.create")})]})]})})}],445798)},510650,a=>{"use strict";var b=a.i(728778);a.i(757942);var c=a.i(950314),d=a.i(814574),e=a.i(951192);a.s(["NotePreviewDialog",0,function({note:a,open:f,onOpenChange:g}){let{t:h}=(0,e.useI18n)();return(0,b.jsx)(d.Dialog,{open:f,onOpenChange:g,children:(0,b.jsxs)(d.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:a?.title}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:a&&a.content.trim()?(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(c.Streamdown,{children:a.content})}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("taskPage.noteEmpty")})})]})})}])},521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘","任务笔记","经验洞见"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},87339,a=>{"use strict";let b=(0,a.i(711796).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",0,b],87339)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_09ri_be._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[521007,a=>{"use strict";a.s(["BOARD_COLUMNS",0,[{id:"TODO",label:"To Do",color:"bg-slate-400"},{id:"IN_PROGRESS",label:"In Progress",color:"bg-amber-400"},{id:"IN_REVIEW",label:"In Review",color:"bg-sky-400"},{id:"DONE",label:"Done",color:"bg-emerald-400"},{id:"CANCELLED",label:"Cancelled",color:"bg-rose-400"}],"NOTE_CATEGORIES_PRESET",0,["账号","环境","需求","备忘","任务笔记","经验洞见"],"PRIORITY_CONFIG",0,{LOW:{label:"低",color:"bg-slate-500/20 text-slate-300 border border-slate-500/30"},MEDIUM:{label:"中",color:"bg-amber-500/20 text-amber-300 border border-amber-500/30"},HIGH:{label:"高",color:"bg-orange-500/20 text-orange-300 border border-orange-500/30"},CRITICAL:{label:"紧急",color:"bg-rose-500/20 text-rose-300 border border-rose-500/30"}},"TOWER_LABEL_NAME",0,"Tower"])},757942,950314,a=>{"use strict";var b=a.i(90393);a.s([],757942),a.s(["Streamdown",()=>b.C],950314)},510650,a=>{"use strict";var b=a.i(728778);a.i(757942);var c=a.i(950314),d=a.i(814574),e=a.i(951192);a.s(["NotePreviewDialog",0,function({note:a,open:f,onOpenChange:g}){let{t:h}=(0,e.useI18n)();return(0,b.jsx)(d.Dialog,{open:f,onOpenChange:g,children:(0,b.jsxs)(d.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:a?.title}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:a&&a.content.trim()?(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(c.Streamdown,{children:a.content})}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("taskPage.noteEmpty")})})]})})}])},329258,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("4020a59af9c321427f702c3c13f21ccd90a0734683",b.callServer,void 0,b.findSourceMapURL,"createTask");a.s(["createTask",0,c])},310943,343441,a=>{"use strict";var b=a.i(780410);let c=(0,b.createServerReference)("40b9da4796cde7c3039167d8c9a106bd4eca5494bf",b.callServer,void 0,b.findSourceMapURL,"getTaskNotes");a.s(["getTaskNotes",0,c],310943);let d=(0,b.createServerReference)("4024c970ae8e22133b65e280b1f6790b6dcc9e8aab",b.callServer,void 0,b.findSourceMapURL,"getTaskAssets");a.s(["getTaskAssets",0,d],343441)},113047,716834,87433,a=>{"use strict";let b=(0,a.i(711796).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s(["ChevronsUpDown",0,b],113047);var c=a.i(780410);let d=(0,c.createServerReference)("4005c134080c66bb8cabf390cf0ff11380f0e0b6db",c.callServer,void 0,c.findSourceMapURL,"getProjectBranches");a.s(["getProjectBranches",0,d],716834);let e=(0,c.createServerReference)("4078d8e4a64f54b301edad3a8747029da86e985d81",c.callServer,void 0,c.findSourceMapURL,"fetchRemoteBranches");a.s(["fetchRemoteBranches",0,e],87433)},445798,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(814574),e=a.i(699570),f=a.i(866718),g=a.i(429246),h=a.i(412783),i=a.i(577565),j=a.i(668116),k=a.i(113047),l=a.i(580701),m=a.i(599209),n=a.i(419622),o=a.i(951192),p=a.i(716834),q=a.i(87433),r=a.i(780410);let s=(0,r.createServerReference)("400954e103ea703bf5fe6e03cc8c3f1a4a7b47a9a1",r.callServer,void 0,r.findSourceMapURL,"getCurrentBranch");var t=a.i(504571);a.s(["CreateTaskDialog",0,function({open:a,onOpenChange:r,onSubmit:u,onUpdate:v,defaultStatus:w="TODO",editTask:x,editTaskLabelIds:y,prefillFromTask:z,labels:A,projectType:B,projectLocalPath:C,versions:D,defaultVersionId:E}){let F,[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)("MEDIUM"),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(!0),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),{t:ac}=(0,o.useI18n)();(0,c.useEffect)(()=>{if(!a||x)return;let b=!1;return(0,t.getConfigValues)(["task.defaultUseWorktree","task.defaultAutoStart"]).then(a=>{if(b)return;let c=a["task.defaultUseWorktree"],d=a["task.defaultAutoStart"];"boolean"==typeof c&&Z(c),"boolean"==typeof d&&_(d)}).catch(()=>{}),()=>{b=!0}},[a,x]);let ad=!!x,ae=!!C;return(0,c.useEffect)(()=>{x?(H(x.title),J(x.description??""),L(x.priority),N(x.subPath??""),P(y??[]),ab(x.versionId??null)):(z?(H(z.title??""),J(z.description??""),L(z.priority??"MEDIUM"),N(z.subPath??""),P(z.labelIds??[])):(H(""),J(""),L("MEDIUM"),N(""),P([])),ab(E??null))},[x,y,z,E]),(0,c.useEffect)(()=>{a||x||(H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),X(!1),ab(E??null))},[a,x,E]),(0,c.useEffect)(()=>{a&&ae&&!x&&(T(!0),Promise.all([(0,p.getProjectBranches)(C),s(C)]).then(([a,b])=>{R(a);let c=z?.baseBranch??null;c&&a.includes(c)?V(c):V(b&&a.includes(b)?b:a[0]??""),T(!1),(0,q.fetchRemoteBranches)(C).then(()=>{setTimeout(()=>{(0,p.getProjectBranches)(C).then(a=>{R(a),V(b=>a.includes(b)?b:a[0]??"")}).catch(()=>{})},3e3)})}).catch(()=>{R([]),V(""),T(!1)}))},[a,ae,C,x,z]),(0,b.jsx)(d.Dialog,{open:a,onOpenChange:r,disablePointerDismissal:!0,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(d.DialogHeader,{children:(0,b.jsx)(d.DialogTitle,{children:ad?ac("task.edit"):ac("task.create")})}),(0,b.jsxs)("div",{className:"space-y-4 py-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"title",children:ac("task.title")}),(0,b.jsx)(f.Input,{id:"title","data-testid":"task-title",placeholder:ac("task.titlePlaceholder"),value:G,onChange:a=>H(a.target.value),onKeyDown:a=>"Enter"===a.key&&a.preventDefault()})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"description",children:ac("task.description")}),(0,b.jsx)(g.Textarea,{id:"description",placeholder:ac("task.descPlaceholder"),rows:4,value:I,onChange:a=>J(a.target.value),className:"max-h-[200px] overflow-y-auto"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{htmlFor:"subPath",children:ac("task.subPath")}),(0,b.jsx)(f.Input,{id:"subPath",placeholder:ac("task.subPathPlaceholder"),value:M,onChange:a=>N(a.target.value)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:ac("task.subPathHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.priority")}),(0,b.jsx)("div",{className:"flex gap-1.5",children:["LOW","MEDIUM","HIGH","CRITICAL"].map(a=>{let c={LOW:{label:ac("task.priorityLow"),style:"text-slate-300 border-slate-500/30 bg-slate-500/10"},MEDIUM:{label:ac("task.priorityMedium"),style:"text-amber-300 border-amber-500/30 bg-amber-500/10"},HIGH:{label:ac("task.priorityHigh"),style:"text-orange-300 border-orange-500/30 bg-orange-500/10"},CRITICAL:{label:ac("task.priorityCritical"),style:"text-rose-300 border-rose-500/30 bg-rose-500/10"}}[a];return(0,b.jsx)("button",{type:"button",onClick:()=>L(a),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-all ${K===a?`${c.style} ring-1 ring-current/20`:"border-border text-muted-foreground hover:bg-accent"}`,children:c.label},a)})})]}),ae&&!ad&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.baseBranch")}),S?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchLoading")}):Q.length>0?(0,b.jsxs)(m.Popover,{open:W,onOpenChange:X,children:[(0,b.jsxs)(m.PopoverTrigger,{className:"flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono transition-colors hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring","data-testid":"branch-selector",children:[(0,b.jsx)(i.GitBranch,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left text-xs",title:U||void 0,children:U||ac("task.branchNone")}),(0,b.jsx)(k.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(m.PopoverContent,{className:"w-[min(32rem,90vw)] p-0",align:"start",children:(0,b.jsxs)(n.Command,{children:[(0,b.jsx)(n.CommandInput,{placeholder:ac("task.branchSearch")}),(0,b.jsxs)(n.CommandList,{children:[(0,b.jsx)(n.CommandEmpty,{children:ac("task.branchNone")}),(0,b.jsx)(n.CommandGroup,{children:Q.map(a=>(0,b.jsxs)(n.CommandItem,{value:a,onSelect:()=>{V(a),X(!1)},children:[(0,b.jsx)(i.GitBranch,{className:"h-3 w-3 text-muted-foreground shrink-0 mr-2"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",title:a,children:a}),a===U&&(0,b.jsx)(j.Check,{className:"h-3 w-3 text-primary shrink-0 ml-auto"})]},a))})]})]})})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:ac("task.branchNone")}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.worktreeLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${Y===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.worktreeYes"):ac("task.worktreeNo")},String(a)))})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)(h.Label,{className:"text-xs text-muted-foreground",children:ac("task.autoStartLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:[!0,!1].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>_(a),className:`rounded-md px-3 py-1 text-xs font-medium transition-colors ${$===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a?ac("task.autoStartYes"):ac("task.autoStartNo")},String(a)))})]})]}),A.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("task.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:A.map(a=>{let c=O.includes(a.id);return(0,b.jsx)("button",{type:"button",onClick:()=>{P(b=>c?b.filter(b=>b!==a.id):[...b,a.id])},className:`rounded-full px-2.5 py-1 text-xs font-medium transition-all ${c?"ring-1 ring-current/30":"opacity-50 hover:opacity-80"}`,style:{backgroundColor:a.color+"20",color:a.color,borderColor:c?a.color+"40":"transparent",borderWidth:"1px"},children:a.name},a.id)})})]}),(!ad||D&&D.length>0)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{children:ac("version.picker.label")}),D&&D.length>0?(0,b.jsxs)(l.Select,{value:aa??"__none__",onValueChange:a=>ab("__none__"===a?null:a),children:[(0,b.jsx)(l.SelectTrigger,{children:(0,b.jsx)("span",{className:"truncate text-sm",children:aa&&(F=D.find(a=>a.id===aa))?F.isCurrent?`${F.number} \xb7 ${F.name} \xb7 ${ac("version.currentShort")}`:`${F.number} \xb7 ${F.name}`:ac("version.picker.none")})}),(0,b.jsxs)(l.SelectContent,{children:[(0,b.jsx)(l.SelectItem,{value:"__none__",children:ac("version.picker.none")}),D.map(a=>(0,b.jsx)(l.SelectItem,{value:a.id,children:a.isCurrent?`${a.number} \xb7 ${a.name} \xb7 ${ac("version.currentShort")}`:`${a.number} \xb7 ${a.name}`},a.id))]})]}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground",children:ac("version.picker.empty")})]})]}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>r(!1),children:ac("common.cancel")}),(0,b.jsx)(e.Button,{onClick:()=>{G.trim()&&(ad&&v?v(x.id,{title:G,description:I,priority:K,labelIds:O,subPath:M.trim()||"",versionId:aa}):u({title:G,description:I,priority:K,status:w,labelIds:O,...ae&&Y&&U?{baseBranch:U}:{},...M.trim()?{subPath:M.trim()}:{},versionId:aa,autoStart:$}),H(""),J(""),L("MEDIUM"),N(""),P([]),R([]),V(""),Z(!0),ab(null),r(!1))},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:ad?ac("common.save"):ac("common.create")})]})]})})}],445798)},532615,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(986099),e=a.i(54384),f=a.i(912868),g=a.i(10390),h=a.i(91756);let i=(0,a.i(711796).default)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var j=a.i(747798),k=a.i(951192);function l({children:a,onClick:c,title:d,disabled:e,...f}){return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||c()},title:d,disabled:e,className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-white/80 hover:bg-white/15 hover:text-white disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-white/80 transition-colors",...f,children:a})}a.s(["ImageLightbox",0,function({imageUrl:a,filename:m,open:n,onOpenChange:o,assets:p,currentIndex:q,onIndexChange:r}){let{t:s}=(0,k.useI18n)(),[t,u]=(0,c.useState)(1),[v,w]=(0,c.useState)({x:0,y:0}),[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(!1),C=!!p&&p.length>1&&"number"==typeof q&&!!r,D=C&&q>0,E=C&&q<p.length-1,F=C?p.length:0,G=F>0?Math.ceil(F/10):0,H=C?Math.floor(q/10):0,I=10*H,J=Math.min(I+10,F),K=G>1,L=C&&H>0,M=C&&H<G-1;(0,c.useEffect)(()=>{B(!0)},[]),(0,c.useEffect)(()=>{u(1),w({x:0,y:0})},[a]),(0,c.useEffect)(()=>{if(!n)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}},[n]);let N=(0,c.useCallback)(()=>o(!1),[o]),O=(0,c.useCallback)(()=>{C&&D&&r(q-1)},[C,D,r,q]),P=(0,c.useCallback)(()=>{C&&E&&r(q+1)},[C,E,r,q]),Q=(0,c.useCallback)(()=>{C&&L&&r((H-1)*10)},[C,L,r,H]),R=(0,c.useCallback)(()=>{C&&M&&r(Math.min((H+1)*10,F-1))},[C,M,r,H,F]),S=(0,c.useCallback)(()=>{u(a=>Math.min(8,1.25*a))},[]),T=(0,c.useCallback)(()=>{u(a=>{let b=Math.max(.1,a/1.25);return b<=1&&w({x:0,y:0}),b})},[]),U=(0,c.useCallback)(()=>{u(1),w({x:0,y:0})},[]);(0,c.useEffect)(()=>{if(!n)return;let a=a=>{switch(a.key){case"Escape":a.preventDefault(),N();break;case"ArrowLeft":C&&(a.preventDefault(),O());break;case"ArrowRight":C&&(a.preventDefault(),P());break;case"+":case"=":a.preventDefault(),S();break;case"-":case"_":a.preventDefault(),T();break;case"0":a.preventDefault(),U()}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n,C,N,O,P,S,T,U]);let V=(0,c.useRef)(!1),W=()=>{x&&y(!1),z.current=null},X=x?"cursor-grabbing":"cursor-grab";if(!n||!A)return null;let Y=(0,b.jsxs)("div",{className:"fixed inset-0 z-[100] bg-black/70 dark:bg-black/40 backdrop-blur-md",role:"dialog","aria-modal":"true","aria-label":s("assets.lightbox.zoomFit"),children:[(0,b.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 max-w-[80vw] truncate rounded-md bg-black/40 px-3 py-1 text-xs text-white/80 backdrop-blur-sm pointer-events-none",children:[m,C?` \xb7 ${q+1} / ${p.length}`:""]}),(0,b.jsx)("div",{className:`absolute inset-0 flex items-center justify-center overflow-hidden select-none ${X}`,onClick:a=>{a.target===a.currentTarget&&N()},onWheel:a=>{a.preventDefault();let b=-a.deltaY>0?1.25:.8;u(a=>{let c=Math.min(8,Math.max(.1,a*b));return c<=1&&w({x:0,y:0}),c})},children:a&&(0,b.jsx)("img",{src:a,alt:m,onClick:a=>{a.stopPropagation(),V.current&&(V.current=!1)},onPointerDown:a=>{0===a.button&&(a.stopPropagation(),V.current=!1,a.target.setPointerCapture?.(a.pointerId),z.current={x:a.clientX,y:a.clientY,panX:v.x,panY:v.y},y(!0))},onPointerMove:a=>{if(!z.current)return;let b=a.clientX-z.current.x,c=a.clientY-z.current.y;Math.abs(b)+Math.abs(c)>5&&(V.current=!0),x&&w({x:z.current.panX+b,y:z.current.panY+c})},onPointerUp:W,onPointerLeave:W,onPointerCancel:W,className:"max-h-[88vh] max-w-[92vw] object-contain pointer-events-auto",style:{transform:`translate3d(${v.x}px, ${v.y}px, 0) scale(${t})`,transformOrigin:"center center",transition:x?"none":"transform 120ms ease-out",willChange:x?"transform":"auto"},draggable:!1})}),(0,b.jsxs)("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 max-w-[92vw]",onClick:a=>a.stopPropagation(),children:[C&&(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-1.5 py-1.5 backdrop-blur-md ring-1 ring-white/10 max-w-[92vw]",children:[K&&(0,b.jsx)(l,{onClick:Q,title:`${s("assets.lightbox.prev")} (-10)`,"aria-label":`${s("assets.lightbox.prev")} (-10)`,disabled:!L,children:(0,b.jsx)(h.ChevronsLeft,{className:"h-4 w-4"})}),(0,b.jsx)(l,{onClick:O,title:s("assets.lightbox.prev"),"aria-label":s("assets.lightbox.prev"),disabled:!D,children:(0,b.jsx)(f.ChevronLeft,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:p.slice(I,J).map((a,c)=>{let d=I+c,e=d===q;return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),e||r(d)},title:a.filename,className:`shrink-0 h-12 w-12 overflow-hidden rounded-md transition-all ${e?"ring-2 ring-white opacity-100 scale-105":"opacity-60 hover:opacity-100 ring-1 ring-white/20"}`,children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:"h-full w-full object-cover",loading:"lazy",draggable:!1})},a.url+d)})}),(0,b.jsx)(l,{onClick:P,title:s("assets.lightbox.next"),"aria-label":s("assets.lightbox.next"),disabled:!E,children:(0,b.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),K&&(0,b.jsx)(l,{onClick:R,title:`${s("assets.lightbox.next")} (+10)`,"aria-label":`${s("assets.lightbox.next")} (+10)`,disabled:!M,children:(0,b.jsx)(i,{className:"h-4 w-4"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-black/50 px-2 py-1.5 backdrop-blur-md ring-1 ring-white/10",children:[(0,b.jsxs)("span",{className:"px-2 text-xs text-white/80 tabular-nums select-none min-w-12 text-center",children:[Math.round(100*t),"%"]}),(0,b.jsx)(l,{onClick:U,title:s("assets.lightbox.reset"),"aria-label":s("assets.lightbox.reset"),disabled:1===t&&0===v.x&&0===v.y,children:(0,b.jsx)(j.RotateCcw,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"mx-1 h-5 w-px bg-white/20"}),(0,b.jsx)(l,{onClick:N,title:s("assets.lightbox.close"),"aria-label":s("assets.lightbox.close"),children:(0,b.jsx)(e.X,{className:"h-4 w-4"})})]})]})]});return(0,d.createPortal)(Y,document.body)}],532615)},894148,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(704494);a.i(757942);var e=a.i(950314),f=a.i(814574),g=a.i(951192);a.s(["TextPreviewDialog",0,function({url:a,filename:h,open:i,onOpenChange:j}){let{t:k}=(0,g.useI18n)(),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!i||!a){m(null),q(null);return}let b=!1;return o(!0),q(null),m(null),fetch(a).then(a=>{let b=a.headers.get("content-length");if(b&&parseInt(b,10)>1048576)throw Error("FILE_TOO_LARGE");return a.text()}).then(a=>{if(a.length>1048576)throw Error("FILE_TOO_LARGE");b||(m(a),o(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?q(k("assets.fileTooLarge")):q(k("assets.previewError")),o(!1))}),()=>{b=!0}},[i,a,k]);let r=h.split(".").pop()?.toLowerCase();return(0,b.jsx)(f.Dialog,{open:i,onOpenChange:j,children:(0,b.jsxs)(f.DialogContent,{className:"w-[min(960px,92vw)] max-w-none sm:max-w-none h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-5 py-3 border-b border-border/50",children:h}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-5 py-4",children:(()=>{if(n)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:k("assets.loadingPreview")})]});if(p)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:p});if(null===l)return null;if("md"===r)return(0,b.jsx)("div",{className:"text-sm leading-relaxed",children:(0,b.jsx)(e.Streamdown,{children:l})});if("json"===r){let a;try{a=JSON.stringify(JSON.parse(l),null,2)}catch{a=l}return(0,b.jsx)("pre",{className:"font-mono text-xs whitespace-pre-wrap text-foreground",children:a})}return(0,b.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap text-foreground",children:l})})()})]})})}])},161181,a=>{"use strict";let b=new Set(["png","jpg","jpeg","gif","webp","svg","bmp","ico","avif","apng"]);a.s(["isImageAsset",0,function(a,c){if(c?.startsWith("image/"))return!0;let d=a.split(".").pop()?.toLowerCase();return!!d&&b.has(d)},"localPathToApiUrl",0,function(a){let b=a.replace(/\\/g,"/").match(/\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}])},87339,a=>{"use strict";let b=(0,a.i(711796).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",0,b],87339)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0_q.4.i._.js.map
|