@xopcai/xopc 0.0.284 → 0.0.285
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/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-CwbIMGLY.js → activity-store-B0BTIk9j.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DjiOld-S.js → agent-avatar-dicebear-Dc-0QZTQ.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CcmqK1Sc.js +1 -0
- package/dist/gateway/static/root/assets/agents-B_7PVt7S.js +1 -0
- package/dist/gateway/static/root/assets/api-COG_Tzpv.js +1 -0
- package/dist/gateway/static/root/assets/{api-3lphBVuY.js → api-Coly9ab6.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-B2nwCXxE.js → app-management-settings-panel-TWBO-msg.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BXO4Ej88.js → appearance-settings-CpTZ2KuT.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-6qxxKFsK.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-6ZRqNjla.js → archive-plugin-z_u6alob.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-CmPZalcW.js → attachment-load-C2nS04TC.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-Bc3WbK5n.js → automations-page-aIBsw9zR.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BRQlU4qk.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-OWR6cxpc.js → binary-plugins-CGmXoZnl.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Ca-tDQXm.js → block-editor-CtvzCZhC.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-Dxy2_p3U.js → browser-automation-inputs-BOTU1isH.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CibQIxpi.js → browser-automations-page-BwU5V8J0.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-DDjbDeHQ.js +8 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DM1Bcf1x.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-Bq36CUxL.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-Bh-G9mdZ.js → channels-status-swr-Dfi0Desh.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-lbzbSpV3.js → chat-terminal-dock-B0MvcO6j.js} +2 -2
- package/dist/gateway/static/root/assets/connectors-page-L8JehrxF.js +2 -0
- package/dist/gateway/static/root/assets/{date-picker-tYvbTfZT.js → date-picker-DXOvbHCr.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-B8yo7-7V.js → dependency-picker-BEnC-eS0.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-BUGkGB4-.js → desktop-pet-DtPNvznL.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DNeVGZNp.js → desktop-pet-settings-CYyjcSn6.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-BPMGvAKE.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-CiK0QI2p.js → extension-debug-page-H_aPMGXW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CirPNHJd.js → extension-page-C1JnpeMt.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-Baua1_Le.js → extension-settings-page-C75kCOqe.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-Co4hHe0i.js → gateway-config-swr-G2lQt7Ak.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-BCF732TU.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DBPNJG-e.js → gateway-startup-retry-GP31PUrG.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-DTM_kYpE.js → heartbeat-settings-C7fjiowt.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-DZXeXdUL.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-D0rMTumD.js → image-generation-api-CKFhfHSw.js} +1 -1
- package/dist/gateway/static/root/assets/imports-page-GROumhj8.js +1 -0
- package/dist/gateway/static/root/assets/{index-C9aQA4Dr.js → index-ChIrvv3t.js} +47 -47
- package/dist/gateway/static/root/assets/index-R1VNlHjj.css +2 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CMUaF61L.js → keyboard-shortcuts-settings-zcI822m_.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-CAEKGTAg.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CHxyT09t.js → local-apps-page-BtgDJ92Q.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-DO6JJ1l2.js → locale-store-DlOv7896.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DHZ4BEkG.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-jXbA2S54.js → management-settings-DasZxCyD.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-CKInRsDh.js → markdown-view-6oYdBahT.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BaPkSvW7.js → media-plugins-CxthbBvk.js} +1 -1
- package/dist/gateway/static/root/assets/{messages-BgZRsCkG.js → messages-Ls1Aaiqd.js} +1 -1
- package/dist/gateway/static/root/assets/note-detail-panel-BcWq3ddw.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-DfZ8QWyv.js +8 -0
- package/dist/gateway/static/root/assets/{page-tabs-CdYemUOu.js → page-tabs-BG39KidE.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-DzgF1yYO.js → preview-open-alternatives-Bevpbq9f.js} +1 -1
- package/dist/gateway/static/root/assets/proactive-page-D2U_xQaS.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-iQ-eW6Aj.js → product-open-page-Bi1seZpM.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CzlGTW4F.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-mQsM-TsP.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-DMNudT60.js → registry-api-D0ddwBFj.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Cb56JcO1.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-u_wVepf7.js → runtime-tools-settings-panel-Wkru8_My.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-YdZj2xdI.js → schema-form-CSMRzj9Y.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-Hj9uFcIO.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CV4-_EVA.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-Bw6xKOX5.js → settings-form-section-wcAdCkK8.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CV8kVdnE.js → settings-page-BcQGAnCs.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DzxmsaQG.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BHwjHlrV.js → share-preview-page-DQocUl-1.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-xlJh1ccG.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-wSXJRSxX.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-DRKdb6O5.js → skills-page-AmqtBJo7.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-DYfaLtts.js → skills-page.utils-DtlfCgJp.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-CWrWpKV-.js → system-settings-panel-Ct698Nf-.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-sQpwq5-c.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-CDc7Wqy5.js → theme-store-ng8KJsAT.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-Bmsy-5Fs.js → tunnel-api-Boajol0M.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-D-FRib85.js → use-autosave-BSyxRHt2.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-DIEHnAER.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-iQ7EBzII.js → voice-api-key-field-SE3OQI1s.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DNMWA2tx.js → voice-config-api-VNuCmdFe.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BesuhDlH.js → work-discovery-overlay-Dn1vy2oq.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Du81FoCy.js → workflow-run-setup-panel-BJEfGY-k.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-DgRNIyr7.js +6 -0
- package/dist/gateway/static/root/index.html +10 -10
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/proactive.js +13 -4
- package/dist/src/agent/coding/repository-instructions.js +1 -1
- package/dist/src/agent/coding/workspace-revision.js +1 -1
- package/dist/src/agent/commands/command-isolation.js +1 -1
- package/dist/src/agent/tools/factory.js +7 -3
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +10 -2
- package/dist/src/cli/command-manifest.js +2 -2
- package/dist/src/cli/commands/agent.js +2 -2
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +2 -2
- package/dist/src/cli/commands/gateway/run-foreground.js +3 -0
- package/dist/src/cli/commands/import.js +54 -6
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/platform.js +1 -1
- package/dist/src/cli/commands/profile.js +1 -1
- package/dist/src/cli/commands/tunnel.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/config/index.js +1 -1
- package/dist/src/discussions/action-tasks.js +1 -1
- package/dist/src/discussions/edits.js +1 -1
- package/dist/src/discussions/index.js +1 -1
- package/dist/src/discussions/organizer.js +1 -1
- package/dist/src/discussions/recording.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/discussions/service.js +2 -2
- package/dist/src/endpoint-tools/invocation-service.d.ts +2 -0
- package/dist/src/endpoint-tools/invocation-service.js +48 -19
- package/dist/src/gateway/heartbeat/check-store.d.ts +18 -0
- package/dist/src/gateway/heartbeat/check-store.js +73 -0
- package/dist/src/gateway/heartbeat/service.d.ts +12 -3
- package/dist/src/gateway/heartbeat/service.js +62 -45
- package/dist/src/gateway/hono/routes/discussions.js +2 -2
- package/dist/src/gateway/hono/routes/imports.js +18 -6
- package/dist/src/gateway/hono/routes/proactive-control.js +2 -1
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/service.d.ts +7 -0
- package/dist/src/gateway/service.js +24 -9
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/imports/importService.d.ts +17 -12
- package/dist/src/imports/importService.js +67 -70
- package/dist/src/imports/inventory.d.ts +11 -0
- package/dist/src/imports/inventory.js +202 -0
- package/dist/src/imports/productImport.d.ts +4 -4
- package/dist/src/imports/productImport.js +201 -108
- package/dist/src/imports/runtime.js +7 -2
- package/dist/src/imports/scanner.d.ts +1 -1
- package/dist/src/imports/scanner.js +4 -4
- package/dist/src/imports/types.d.ts +53 -0
- package/dist/src/infra/background-task.d.ts +2 -0
- package/dist/src/infra/background-task.js +25 -0
- package/dist/src/infra/process-diagnostics.d.ts +5 -0
- package/dist/src/infra/process-diagnostics.js +97 -0
- package/dist/src/infra/unhandled-rejections.js +6 -3
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/knowledge/ingestion-service.js +1 -0
- package/dist/src/media-shared/http/ssrf-guard.js +1 -1
- package/dist/src/notifications/proactive-policy.js +7 -5
- package/dist/src/proactive/execution/authorization.d.ts +2 -0
- package/dist/src/proactive/execution/authorization.js +10 -1
- package/dist/src/proactive/execution/context.js +1 -0
- package/dist/src/proactive/execution/repository.d.ts +2 -0
- package/dist/src/proactive/execution/repository.js +19 -2
- package/dist/src/proactive/execution/worker.js +14 -4
- package/dist/src/proactive/experience.d.ts +4 -1
- package/dist/src/proactive/experience.js +3 -0
- package/dist/src/proactive/follow-ups.d.ts +5 -0
- package/dist/src/proactive/follow-ups.js +18 -7
- package/dist/src/proactive/inbox/cards.js +2 -1
- package/dist/src/proactive/inbox/delivery.js +6 -7
- package/dist/src/proactive/inbox/digest.d.ts +1 -1
- package/dist/src/proactive/inbox/digest.js +23 -13
- package/dist/src/proactive/inbox/notification-policy.d.ts +1 -1
- package/dist/src/proactive/inbox/notification-policy.js +9 -6
- package/dist/src/proactive/inbox/repository.js +3 -2
- package/dist/src/proactive/inbox/service.d.ts +6 -0
- package/dist/src/proactive/inbox/service.js +18 -0
- package/dist/src/proactive/inbox/types.d.ts +1 -0
- package/dist/src/proactive/policy/presence.d.ts +1 -1
- package/dist/src/proactive/policy/presence.js +7 -5
- package/dist/src/proactive/policy/service.d.ts +8 -5
- package/dist/src/proactive/policy/service.js +12 -12
- package/dist/src/proactive/scenarios/control.d.ts +3 -3
- package/dist/src/proactive/scenarios/control.js +12 -2
- package/dist/src/proactive/source-freshness.d.ts +8 -0
- package/dist/src/proactive/source-freshness.js +27 -0
- package/dist/src/proactive/status.d.ts +2 -0
- package/dist/src/proactive/status.js +21 -0
- package/dist/src/proactive/temporal/worker.js +2 -1
- package/dist/src/realtime/runtime.js +31 -5
- package/dist/src/realtime/writer.js +16 -9
- package/dist/src/storage/sqlite/import-repository.d.ts +2 -3
- package/dist/src/storage/sqlite/import-repository.js +3 -3
- package/dist/src/storage/sqlite/import-selection-repository.d.ts +15 -0
- package/dist/src/storage/sqlite/import-selection-repository.js +28 -0
- package/dist/src/storage/sqlite/knowledge-repository.d.ts +1 -0
- package/dist/src/storage/sqlite/knowledge-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/175_import_selections.sql +8 -0
- package/dist/src/storage/sqlite/migrations/176_proactive_quality.sql +5 -0
- package/dist/src/storage/sqlite/migrations/177_proactive_check_controls.sql +25 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/work-discovery/candidate-discovery.js +1 -1
- package/dist/src/work-discovery/probe.js +1 -1
- package/package.json +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D9qP10BK.js +0 -1
- package/dist/gateway/static/root/assets/agents-D-bkOuAl.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-BKwBBwJN.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-B2-f9qZu.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-Dtn4rMeq.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DiwtR9MD.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-pTdR1q1K.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BSQ7Hs2w.js +0 -2
- package/dist/gateway/static/root/assets/device-pairing-wizard-CYkT7ecp.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CzpSYWex.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CSSJvdd6.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-XqVVYbAp.js +0 -1
- package/dist/gateway/static/root/assets/index-B_Sg5BKz.css +0 -2
- package/dist/gateway/static/root/assets/local-app-workbench-page-CZSgTYuI.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-z5ktnEzX.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-panel-DSaZfkna.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-CePEyv_C.js +0 -8
- package/dist/gateway/static/root/assets/proactive-page-Cy2Gm2f8.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-BliwYpns.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-Dm-BqnQn.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-C_XuQ9XR.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-Drt1aS2G.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BAUd06_9.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BHI9e5Tw.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DOAOjZBQ.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DU0VQpHj.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-DiPgMmBM.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-DxRaRdA0.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-CZikdgNw.js +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{h as i,t as a}from"./chunk-KS7C4IRE-Cq1tE_3b.js";import{n as o,r as s}from"./popover-select-DGmMQt4t.js";import{t as c}from"./markdown-view-CKInRsDh.js";import{n as l}from"./locale-store-DO6JJ1l2.js";import{i as u}from"./vendor-swr-BIWyz7Rc.js";import{t as d}from"./button-BA45yciM.js";import{t as f}from"./skeleton-BwbyijEw.js";import{t as p}from"./electron-env-DH5wF8X8.js";import{Bu as m,Jt as h,Kt as g,Wa as _,Yt as v,ca as y,go as b,qt as x}from"./index-C9aQA4Dr.js";var S=n(),C=e(t(),1),w=r();function T({zh:e}){let[t,n]=(0,C.useState)(g),[r,i]=(0,C.useState)(!1),[a,o]=(0,C.useState)(``),s=u(t?`/api/proactive/web-push/probes`:null,h,{refreshInterval:1e4});async function c(){i(!0),o(``);try{let e=localStorage.getItem(x());if(!e)throw Error(`Enable this browser first`);await v(`/api/proactive/web-push/subscriptions/${encodeURIComponent(e)}/test`,`POST`,{}),await s.mutate()}catch(e){o(e instanceof Error?e.message:String(e))}finally{i(!1)}}let l=!p()&&window.isSecureContext&&`serviceWorker`in navigator&&`PushManager`in window&&`Notification`in window;async function f(){i(!0),o(``);try{if(t){let e=localStorage.getItem(x());e&&await v(`/api/proactive/web-push/subscriptions/${encodeURIComponent(e)}`,`DELETE`,{}),await(await(await navigator.serviceWorker.getRegistration(`/`))?.pushManager.getSubscription())?.unsubscribe(),localStorage.removeItem(x()),n(!1);return}if(await Notification.requestPermission()!==`granted`)throw Error(e?`浏览器未允许通知。`:`Browser notification permission was not granted.`);let{publicKey:r}=await v(`/api/proactive/web-push/prepare`,`POST`,{});await navigator.serviceWorker.register(`/notification-sw.js`);let i=await navigator.serviceWorker.ready,{id:a}=await v(`/api/proactive/web-push/subscriptions`,`POST`,{subscription:(await i.pushManager.getSubscription()??await i.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:r})).toJSON(),language:e?`zh`:`en`});localStorage.setItem(x(),a),n(!0)}catch(e){o(e instanceof Error?e.message:String(e))}finally{i(!1)}}return(0,w.jsxs)(`section`,{className:`max-w-2xl rounded-2xl border border-edge bg-surface-panel p-5`,children:[(0,w.jsx)(`h2`,{className:`font-medium`,children:e?`网页关闭后也接收提醒`:`Receive alerts when this page is closed`}),(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:e?`应用在线时可将重要变化送到这台设备。锁屏只显示通用提示,详情在应用内查看。`:`When the app is online, important changes can reach this device. Lock-screen alerts stay generic; open the app for details.`}),(0,w.jsx)(d,{className:`mt-4`,disabled:r||!l,onClick:()=>void f(),children:l?t?e?`关闭这台设备的提醒`:`Disable alerts on this device`:e?`在这台设备上提醒我`:`Notify me on this device`:e?`当前设备不支持系统提醒`:`System notifications are unavailable here`}),t&&(0,w.jsx)(d,{className:`ml-2 mt-4`,disabled:r,onClick:()=>void c(),children:e?`向此浏览器发送测试通知`:`Send a test to this browser`}),s.data?.probes.slice(0,3).map(t=>(0,w.jsxs)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:[new Date(t.createdAt).toLocaleString(),` · `,t.status===`opened`?e?`已点击打开`:`Opened`:t.status===`accepted`?e?`提供方已接受,等待点击确认`:`Provider accepted; awaiting open confirmation`:t.status,t.error&&` · ${t.error}`]},t.id)),a&&(0,w.jsx)(`p`,{role:`alert`,className:`mt-3 text-sm text-danger`,children:a})]})}function E(e){return e?{locale:`zh`,levels:{off:`关闭`,quiet:`尽量安静`,balanced:`重要时找我`,active:`及时跟进`},save:`保存`,saved:`已保存`,level:`什么时候找你`,quietStart:`免打扰开始(小时)`,quietEnd:`免打扰结束(小时)`,timezone:`时区`,limit:`每日通知上限`,pause:`暂停一小时`,resume:`结束暂停`,privacy:`提醒频率不会改变助理可以查看或执行的范围;这些范围仍按每件事的授权执行。`,whyNow:`为什么现在`,evidence:`依据`,snooze:`一小时后`,retry:`重试`,kinds:{briefing:`简报`,reminder:`提醒`,risk:`风险`,recommendation:`建议`,decision:`待决定`,receipt:`执行回执`}}:{locale:`en`,levels:{off:`Off`,quiet:`Keep it quiet`,balanced:`When it matters`,active:`Keep me updated`},save:`Save`,saved:`Saved`,level:`When should the assistant notify you?`,quietStart:`Quiet hours start`,quietEnd:`Quiet hours end`,timezone:`Timezone`,limit:`Daily notification limit`,pause:`Pause for one hour`,resume:`Resume`,privacy:`Notification frequency does not change what the assistant can read or do. Each delegated item keeps its own permissions.`,whyNow:`Why now`,evidence:`Evidence`,snooze:`In one hour`,retry:`Retry`,kinds:{briefing:`Briefing`,reminder:`Reminder`,risk:`Risk`,recommendation:`Recommendation`,decision:`Decision`,receipt:`Receipt`}}}function D(e,t,n){if(n!==`zh`)return t;let r={communication_follow_up:[`邮件跟进`,`关注已委托的邮件往来,准备跟进草稿并持续等待回复。`],meeting_preparation:[`会议准备`,`在会议前检查议程与资料,提示需要提前准备的事项。`],project_delivery_risk:[`项目交付风险`,`关注项目任务、依赖与承诺,发现可能影响交付的变化。`],automation_failure_impact:[`自动化失败影响`,`分析自动化故障的实际影响,提醒需要你处理的问题。`],blocked_work:[`工作阻塞`,`检查受阻任务及依赖,指出下一步可以推进的工作。`],discussion_follow_up:[`讨论后续`,`关注讨论中的结论与未完成事项,提示需要跟进的行动。`]}[e];return r?{title:r[0],description:r[1]}:t}function O(e,t){return(t===`zh`?{unread:`待查看`,read:`已查看`,snoozed:`稍后提醒`,resolved:`已收起`,expired:`已过期`,withdrawn:`来源已撤回`}:{unread:`Ready to review`,read:`Reviewed`,snoozed:`Remind later`,resolved:`Dismissed`,expired:`Expired`,withdrawn:`Source withdrawn`})[e]??e}function k(e,t){return e.project?.name??D(e.scenarioKey,{title:e.scenarioKey.replaceAll(`_`,` `),description:``},t?`zh`:`en`).title}function A(e){return e.completedAt?`completed`:e.effectiveEnabled?`active`:`paused`}function j(e){return e.status===`completed`?`completed`:e.status===`watching`&&e.enabled?`active`:`paused`}function M(e,t,n){return e.completedAt?t?`这件事已结束`:`This work has ended`:e.effectiveEnabled?e.checking?t?`助理正在查看最新情况`:`Your assistant is reviewing the latest context`:n?.decision?t?`有一项决定等你处理`:`A decision needs your attention`:n?.artifact?t?`助理准备好了新内容`:`Your assistant prepared something new`:n?t?`有一项变化值得你看`:`A change is worth your attention`:t?`已记住,等待相关变化`:`Remembered and waiting for a relevant change`:t?`已暂停,恢复后继续跟进`:`Paused until you resume it`}function N(e,t){return e.completedAt?t?`不会再跟进`:`No more follow-up`:e.effectiveEnabled?e.scopeKind===`project`?t?`项目出现重要变化时回来`:`Returns when the project meaningfully changes`:e.scenarioKey===`meeting_preparation`?t?`相关会议临近或资料变化时回来`:`Returns when a meeting approaches or its context changes`:t?`相关沟通需要下一步时回来`:`Returns when the conversation needs a next step`:t?`恢复后继续`:`Continues when resumed`}function P(e,t){return e.filter(e=>e.subscriptionId===t).sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))[0]}function F(e,t){return e?e.decision?`${t?`等你决定`:`Waiting for your decision`}:${e.title}`:e.artifact?`${t?`最新成果`:`Latest result`}:${e.artifact.title}`:`${t?`最新变化`:`Latest update`}:${e.title}`:t?`还没有需要交付的新成果`:`No new result needs delivery yet`}function I(e,t){return e.status===`completed`?t?`这件事已结束`:`This work has ended`:e.status===`paused`||!e.enabled?t?`已暂停,恢复后继续跟进`:`Paused until you resume it`:e.sourceAvailable?e.syncFailed?t?`最近一次邮箱同步未完成`:`The latest email sync did not finish`:e.latestDirection===`sent`?t?`已同步发件,继续等待回复`:`Sent message found; waiting for a reply`:t?`正在等待回复或约定时间`:`Waiting for a reply or the agreed time`:t?`需要重新连接邮箱`:`Reconnect the email account`}function L(e,t){return new Date(e).toLocaleString(t?`zh-CN`:`en-US`)}function R({card:e,copy:t,refresh:n,detail:r=!1}){let i=t.locale===`zh`,o=(0,C.useRef)(null),[s,l]=(0,C.useState)(null),[u,f]=(0,C.useState)(!1),[p,m]=(0,C.useState)(``),[h,g]=(0,C.useState)(!1),[_,b]=(0,C.useState)(``),[x,S]=(0,C.useState)(``),[T,E]=(0,C.useState)(e.artifact?.content??``),[D,k]=(0,C.useState)(e.taskDraft),[A,j]=(0,C.useState)(e.id),[M,N]=(0,C.useState)(e.revision),P=A!==e.id||M!==e.revision,F=s!==`${e.id}:${e.revision}`&&![`withdrawn`,`expired`,`resolved`].includes(e.status),I=`${e.communication?i?`继续办理这件事。请读取最新卡片、成果和邮件往来,展示完整草稿与收件人让我确认后再发送:`:`Read the latest card, artifact and email thread. Show the full draft and recipients for my approval before sending: `:i?`继续讨论这件事,请先读取最新卡片和成果:`:`Continue this work. First read the latest card and artifact: `}xopc_use mode=proactive command=${e.communication?`continue_card`:`get_card`} args={"id":"${e.id}"}`,L=e.communication?.sessionKey?`/chat/${encodeURIComponent(e.communication.sessionKey)}?${new URLSearchParams({draft:I,autoSend:`1`})}`:y(I,void 0,{projectScope:`none`}),R=`mt-2 w-full rounded-lg border border-edge bg-surface-base p-3 text-sm text-fg`;async function z(t,r={}){if(u||P)return;let i=JSON.stringify([e.id,e.revision,t,r]);o.current?.signature!==i&&(o.current={signature:i,key:crypto.randomUUID()}),f(!0),m(``);try{let i=await v(`/api/inbox/judgments/${encodeURIComponent(e.id)}/actions`,`POST`,{...r,actionId:t,expectedRevision:e.revision,idempotencyKey:o.current.key});i.card&&(j(i.card.id),N(i.card.revision),k(i.card.taskDraft),E(i.card.artifact?.content??``)),o.current=null,t===`decide`&&l(`${e.id}:${e.revision}`),(t===`useful`||t===`not_useful`)&&b(t),t===`refine`&&(b(`refined`),S(``)),g(!1),n()}catch(e){m(e instanceof Error?e.message:String(e))}finally{f(!1)}}return(0,w.jsxs)(`article`,{className:`rounded-2xl border border-edge bg-surface-panel p-5`,children:[(0,w.jsxs)(`div`,{className:`mb-2 flex flex-wrap justify-between gap-2 text-xs text-fg-muted`,children:[(0,w.jsx)(`span`,{children:e.artifact?i?`已为你准备`:`Prepared for you`:t.kinds[e.kind]}),(0,w.jsx)(`time`,{dateTime:e.updatedAt,children:new Date(e.updatedAt).toLocaleString()})]}),(0,w.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e.title}),(0,w.jsx)(`p`,{className:`mt-2 whitespace-pre-wrap text-sm text-fg-muted`,children:e.summary}),!r&&(0,w.jsx)(a,{className:`mt-4 inline-block text-sm font-medium text-accent`,to:`/assistant-work?item=${encodeURIComponent(e.id)}`,children:e.decision?i?`查看并决定`:`Review decision`:e.artifact?i?`打开准备好的成果`:`Open prepared work`:i?`查看变化`:`View update`}),r&&e.artifact&&(0,w.jsxs)(`section`,{className:`mt-5 border-t border-edge pt-5`,children:[(0,w.jsx)(`h3`,{className:`mb-3 font-medium text-fg`,children:e.artifact.title}),h?(0,w.jsxs)(`label`,{className:`text-sm`,children:[i?`编辑成果`:`Edit prepared work`,(0,w.jsx)(`textarea`,{rows:12,maxLength:12e3,className:R,value:T,onChange:e=>E(e.target.value)})]}):(0,w.jsx)(c,{content:e.artifact.content}),F&&!h&&(0,w.jsx)(d,{className:`mt-3`,variant:`ghost`,onClick:()=>{navigator.clipboard.writeText(e.artifact.content).catch(e=>m(String(e)))},children:i?`复制成果`:`Copy`}),F&&(0,w.jsx)(`div`,{className:`mt-3 flex gap-2`,children:h?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(d,{disabled:u||P||!T.trim(),onClick:()=>void z(`edit_artifact`,{artifact:{...e.artifact,content:T}}),children:t.save}),(0,w.jsx)(d,{variant:`ghost`,onClick:()=>{g(!1),E(e.artifact.content)},children:i?`取消`:`Cancel`})]}):(0,w.jsx)(d,{variant:`ghost`,onClick:()=>g(!0),children:i?`修改成果`:`Edit`})})]}),e.decision&&F&&(0,w.jsxs)(`section`,{className:`mt-5 rounded-xl border border-edge p-4`,children:[(0,w.jsx)(`h3`,{className:`text-sm font-medium`,children:e.decision.question}),D&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:i?`确认后创建项目待办,不会自动启动执行。`:`Creates a project task without starting execution.`}),(0,w.jsxs)(`label`,{className:`mt-3 block text-sm`,children:[i?`待办标题`:`Task title`,(0,w.jsx)(`input`,{className:R,maxLength:160,value:D.title,onChange:e=>k({...D,title:e.target.value})})]}),(0,w.jsxs)(`label`,{className:`mt-3 block text-sm`,children:[i?`具体内容`:`Task objective`,(0,w.jsx)(`textarea`,{className:R,maxLength:1200,rows:4,value:D.objective,onChange:e=>k({...D,objective:e.target.value})})]})]}),(0,w.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:e.decision.options.map((e,t)=>(0,w.jsx)(d,{variant:t===0?`primary`:`ghost`,disabled:u||P||e.id===`approve`&&D!==void 0&&(!D.title.trim()||!D.objective.trim()),onClick:()=>void z(`decide`,{choice:e.id,...e.id===`approve`&&D?{taskDraft:D}:{}}),children:e.label},e.id))})]}),e.followUp&&(0,w.jsxs)(`div`,{className:`mt-4 rounded-lg border border-edge p-3 text-sm`,children:[(0,w.jsx)(a,{className:`text-accent`,to:`/tasks/${encodeURIComponent(e.followUp.taskId)}`,children:e.followUp.title}),(0,w.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:e.followUp.phase===`closed`?i?`任务已结束:${e.followUp.resolution??`—`}`:`Task closed: ${e.followUp.resolution??`—`}`:i?`待办已创建,仍在跟进实际进展。`:`Task created; following its progress.`})]}),e.actionStatus===`failed`&&![`expired`,`withdrawn`].includes(e.status)&&(0,w.jsxs)(`div`,{className:`mt-3 text-sm text-danger`,children:[e.actionError,(0,w.jsx)(d,{disabled:u||P,onClick:()=>void z(`retry`),children:t.retry})]}),r&&(0,w.jsxs)(`details`,{className:`mt-4 text-sm text-fg-muted`,children:[(0,w.jsxs)(`summary`,{className:`cursor-pointer`,children:[t.whyNow,` · `,t.evidence]}),(0,w.jsx)(`p`,{className:`mt-2`,children:e.whyNow}),(0,w.jsx)(`ul`,{className:`mt-2 space-y-2`,children:e.evidence.map(e=>(0,w.jsxs)(`li`,{children:[e.route?(0,w.jsx)(a,{className:`text-accent`,to:e.route,children:e.label}):e.label,e.excerpt&&(0,w.jsx)(`p`,{className:`whitespace-pre-wrap`,children:e.excerpt})]},e.id))})]}),r&&F&&(0,w.jsx)(a,{className:`mt-4 inline-block text-sm text-accent`,to:L,children:e.communication?i?`审阅草稿并继续办理`:`Review draft and continue`:i?`接着聊这件事`:`Continue in chat`}),r&&![`withdrawn`,`expired`].includes(e.status)&&(0,w.jsxs)(`section`,{className:`mt-5 border-t border-edge pt-4`,children:[(0,w.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:i?`这次帮助合适吗?`:`Was this help right for you?`}),(0,w.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,w.jsx)(d,{variant:`ghost`,disabled:u||!!_,onClick:()=>void z(`useful`),children:i?`有帮助`:`Helpful`}),(0,w.jsx)(d,{variant:`ghost`,disabled:u||!!_,onClick:()=>void z(`not_useful`),children:i?`不适合这个场景`:`Not right for this scene`})]}),_&&(0,w.jsx)(`p`,{role:`status`,className:`mt-2 text-xs text-fg-muted`,children:_===`refined`?i?`助理会把这条要求用于这个场景。`:`The assistant will use this instruction for this scene.`:i?`已记下,会用于调整这个场景。`:`Saved to improve this scene.`}),(0,w.jsxs)(`details`,{className:`mt-3`,children:[(0,w.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg-muted`,children:i?`告诉助理下次怎么做`:`Tell the assistant what to do next time`}),(0,w.jsx)(`label`,{className:`mt-3 block text-sm`,children:(0,w.jsx)(`textarea`,{rows:3,maxLength:2e3,className:R,value:x,onChange:e=>S(e.target.value),placeholder:i?`例如:下次先给结论,技术细节放到最后。`:`For example: lead with the conclusion and put technical detail last.`})}),(0,w.jsx)(d,{className:`mt-2`,disabled:u||!x.trim(),onClick:()=>void z(`refine`,{instruction:x}),children:i?`用于这个场景`:`Use for this scene`})]})]}),r&&F&&(0,w.jsxs)(`details`,{className:`mt-4 text-sm`,children:[(0,w.jsx)(`summary`,{className:`cursor-pointer text-fg-muted`,children:i?`调整或收起`:`Adjust or dismiss`}),(0,w.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,w.jsx)(d,{disabled:u||P,onClick:()=>void z(`handled`),children:i?`我已处理`:`Already handled`}),(0,w.jsx)(d,{disabled:u||P,onClick:()=>void z(`resolve`),children:i?`这条不用`:`Dismiss`}),(0,w.jsx)(d,{disabled:u||P,onClick:()=>void z(`snooze`),children:t.snooze}),(0,w.jsx)(a,{className:`p-2 text-accent`,to:e.communication?`/assistant-work?follow-up=${encodeURIComponent(e.communication.id)}`:`/assistant-work?delegation=${encodeURIComponent(e.subscriptionId)}`,children:i?`修改关注要求`:`Adjust instructions`})]})]}),!F&&(0,w.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:e.status===`resolved`?i?`已收起;事项进度以实际结果为准。`:`Dismissed; work progress is tracked separately.`:e.status===`expired`?i?`资料已变化或有效期已过,旧成果仅供参考。`:`Sources changed or this work expired. Review current context before acting.`:O(e.status,t.locale)}),s===`${e.id}:${e.revision}`&&(0,w.jsx)(`p`,{role:`status`,className:`mt-3 text-sm text-fg-muted`,children:i?`决定已提交,正在同步处理结果。`:`Decision submitted. Updating the result.`}),P&&s!==`${e.id}:${e.revision}`&&(0,w.jsxs)(`p`,{role:`alert`,className:`mt-3 text-sm text-warning`,children:[i?`卡片已更新。请载入最新版本再决定;重新载入会替换未提交的编辑。`:`This card changed. Load the latest version before deciding; this replaces unsaved edits.`,(0,w.jsx)(d,{variant:`ghost`,disabled:u,onClick:()=>{j(e.id),N(e.revision),k(e.taskDraft),E(e.artifact?.content??``),l(null),m(``)},children:i?`载入最新版本`:`Load latest version`})]}),p&&(0,w.jsxs)(`p`,{role:`alert`,className:`mt-3 text-sm text-danger`,children:[p,(0,w.jsx)(d,{variant:`ghost`,onClick:n,children:i?`刷新最新内容`:`Refresh latest version`})]})]})}var z=`mt-2 w-full rounded-lg border border-edge bg-surface-base p-3 text-sm text-fg`;function ee(e){let t=(0,S.c)(33),{sub:n,card:r,zh:i}=e,o;t[0]!==n||t[1]!==i?(o=k(n,i),t[0]=n,t[1]=i,t[2]=o):o=t[2];let s;t[3]===o?s=t[4]:(s=(0,w.jsx)(`h2`,{className:`font-semibold text-fg`,children:o}),t[3]=o,t[4]=s);let c;t[5]===n.userInstructions?c=t[6]:(c=(0,w.jsx)(`p`,{className:`mt-1 line-clamp-2 whitespace-pre-wrap text-sm text-fg-muted`,children:n.userInstructions}),t[5]=n.userInstructions,t[6]=c);let l;t[7]!==s||t[8]!==c?(l=(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9];let u=`/assistant-work?delegation=${encodeURIComponent(n.id)}`,d=i?`调整`:`Adjust`,f;t[10]!==u||t[11]!==d?(f=(0,w.jsx)(a,{className:`shrink-0 text-sm font-medium text-accent`,to:u,children:d}),t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==l||t[14]!==f?(p=(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[l,f]}),t[13]=l,t[14]=f,t[15]=p):p=t[15];let m;t[16]!==r||t[17]!==n||t[18]!==i?(m=M(n,i,r),t[16]=r,t[17]=n,t[18]=i,t[19]=m):m=t[19];let h;t[20]===m?h=t[21]:(h=(0,w.jsx)(`p`,{className:`font-medium text-fg`,children:m}),t[20]=m,t[21]=h);let g;t[22]!==r||t[23]!==i?(g=F(r,i),t[22]=r,t[23]=i,t[24]=g):g=t[24];let _;t[25]===g?_=t[26]:(_=(0,w.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:g}),t[25]=g,t[26]=_);let v;t[27]!==h||t[28]!==_?(v=(0,w.jsxs)(`div`,{className:`mt-4 rounded-xl bg-surface-hover px-4 py-3 text-sm`,children:[h,_]}),t[27]=h,t[28]=_,t[29]=v):v=t[29];let y;return t[30]!==v||t[31]!==p?(y=(0,w.jsxs)(`article`,{className:`rounded-2xl border border-edge bg-surface-panel p-5`,children:[p,v]}),t[30]=v,t[31]=p,t[32]=y):y=t[32],y}function te({sub:e,card:t,zh:n,refresh:r}){let[i,c]=(0,C.useState)(e.userInstructions),[l,u]=(0,C.useState)(e.delivery),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)(!1),[g,y]=(0,C.useState)(``),[b,x]=(0,C.useState)(``),[S,T]=(0,C.useState)(!1);async function D(t,i=!1){if(!m){h(!0),y(``),x(``);try{await v(`/api/proactive/subscriptions/${encodeURIComponent(e.id)}${i?`/check`:``}`,i?`POST`:`PATCH`,i?{}:{...t,expectedRevision:e.revision}),p(!1),x(i?n?`助理正在重新看看这个项目。`:`Your assistant is checking the project again.`:n?`助理跟进已更新。`:`Assistant follow-up updated.`),r()}catch(e){y(String(e)),r()}finally{h(!1)}}}async function O(t){if(!(S||!e.project)){T(!0),y(``),x(``);try{await _(e.scopeId,{mode:t,allowedActions:t===`auto_low_risk`?[`create_project_task`]:[]}),x(n?`行动边界已更新。`:`Action boundary updated.`),r()}catch(e){y(String(e)),r()}finally{T(!1)}}}let A=e.scopeKind===`project`?n?`项目目标、承诺或交付风险出现有意义的变化时`:`When the project goal, commitments, or delivery risk meaningfully changes`:e.scenarioKey===`meeting_preparation`?n?`相关会议临近,或会议资料发生变化时`:`When a relevant meeting approaches or its context changes`:n?`相关沟通出现值得你接手的变化时`:`When a conversation changes in a way that needs you`;return(0,w.jsxs)(`div`,{className:`space-y-5`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h1`,{className:`text-2xl font-semibold text-fg`,children:k(e,n)}),(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:M(e,n,t)})]}),!e.completedAt&&(0,w.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,w.jsx)(d,{disabled:m,onClick:()=>void D({enabled:!e.enabled}),children:e.enabled?n?`暂停`:`Pause`:n?`恢复`:`Resume`}),e.scopeKind===`project`&&(0,w.jsx)(d,{variant:`ghost`,disabled:m||e.checking||!e.effectiveEnabled,onClick:()=>void D({},!0),children:n?`现在再看看`:`Check again now`})]}),b&&(0,w.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:b}),t&&(0,w.jsx)(R,{card:t,copy:E(n),refresh:r,detail:!0}),(0,w.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-panel p-5`,children:[(0,w.jsx)(`h2`,{className:`font-semibold text-fg`,children:n?`跟进要求`:`What your assistant remembers`}),(0,w.jsxs)(`dl`,{className:`mt-4 space-y-4 text-sm`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n?`要帮你守住什么`:`What to protect`}),(0,w.jsx)(`dd`,{className:`mt-1 whitespace-pre-wrap text-fg`,children:e.userInstructions})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n?`什么时候回来找你`:`When to come back`}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:A})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n?`接下来`:`Next`}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:N(e,n)})]})]}),e.projectMonitoring&&!e.completedAt&&(0,w.jsxs)(`label`,{className:`mt-5 block border-t border-edge pt-5 text-sm`,children:[(0,w.jsx)(`span`,{className:`font-medium text-fg`,children:n?`助理可以做到哪里`:`How far the assistant can go`}),(0,w.jsxs)(o,{disabled:S,value:e.projectMonitoring.mode,onChange:e=>void O(e.target.value),children:[(0,w.jsx)(s,{value:`observe`,children:n?`只观察和整理`:`Observe and organize only`}),(0,w.jsx)(s,{value:`ask_before_action`,children:n?`先准备,行动前问我`:`Prepare first, ask before acting`}),(0,w.jsx)(s,{value:`auto_low_risk`,children:n?`自动完成明确的低风险动作`:`Complete explicit low-risk actions`})]}),(0,w.jsx)(`span`,{className:`mt-2 block text-xs text-fg-muted`,children:e.projectMonitoring.mode===`auto_low_risk`?n?`目前只包括在当前项目中创建可撤销的待办。`:`Currently limited to creating reversible tasks in this project.`:n?`涉及外部发送或不可逆操作时仍会询问你。`:`External sends and irreversible actions still require you.`})]}),f&&(0,w.jsxs)(`div`,{className:`mt-5 border-t border-edge pt-5`,children:[(0,w.jsxs)(`label`,{className:`block text-sm`,children:[n?`希望助理关注什么,忽略什么?`:`What should the assistant follow or ignore?`,(0,w.jsx)(`textarea`,{rows:5,maxLength:12e3,className:z,value:i,onChange:e=>c(e.target.value)})]}),(0,w.jsxs)(`label`,{className:`mt-4 block text-sm`,children:[n?`什么时候提醒我`:`When to notify me`,(0,w.jsxs)(o,{value:l,onChange:e=>u(e.target.value),children:[(0,w.jsx)(s,{value:`inbox`,children:n?`回到工作台时告诉我`:`Tell me in the Workbench`}),(0,w.jsx)(s,{value:`important`,children:n?`重要变化立即告诉我`:`Tell me right away for important changes`}),(0,w.jsx)(s,{value:`digest`,children:n?`放进每日汇总`:`Include it in my daily digest`})]})]})]}),!e.completedAt&&(0,w.jsxs)(`div`,{className:`mt-5 flex flex-wrap gap-2`,children:[f?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(d,{disabled:m||!i.trim(),onClick:()=>void D({userInstructions:i,delivery:l}),children:n?`保存安排`:`Save arrangement`}),(0,w.jsx)(d,{variant:`ghost`,onClick:()=>p(!1),children:n?`取消`:`Cancel`})]}):(0,w.jsx)(d,{variant:`ghost`,onClick:()=>p(!0),children:n?`调整安排`:`Adjust arrangement`}),(0,w.jsx)(d,{variant:`ghost`,disabled:m,onClick:()=>void D({enabled:!1,completedAt:new Date().toISOString()}),children:n?`结束安排`:`End arrangement`})]}),e.project&&(0,w.jsx)(a,{className:`mt-4 inline-block text-sm text-accent`,to:`/projects/${encodeURIComponent(e.scopeId)}`,children:n?`回到项目`:`Back to project`})]}),g&&(0,w.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:g})]})}var B=`mt-2 w-full rounded-lg border border-edge bg-surface-base p-3 text-sm text-fg`,ne=e=>{let t=new Date(e);return new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,16)};function re(e){let t=(0,S.c)(30),{follow:n,zh:r}=e,i=n.subject??(r?`邮件跟进`:`Email follow-up`),o;t[0]===i?o=t[1]:(o=(0,w.jsx)(`h2`,{className:`font-semibold text-fg`,children:i}),t[0]=i,t[1]=o);let s;t[2]===n.instructions?s=t[3]:(s=(0,w.jsx)(`p`,{className:`mt-1 line-clamp-2 whitespace-pre-wrap text-sm text-fg-muted`,children:n.instructions}),t[2]=n.instructions,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,w.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l=`/assistant-work?follow-up=${encodeURIComponent(n.id)}`,u=r?`调整`:`Adjust`,d;t[7]!==l||t[8]!==u?(d=(0,w.jsx)(a,{className:`shrink-0 text-sm font-medium text-accent`,to:l,children:u}),t[7]=l,t[8]=u,t[9]=d):d=t[9];let f;t[10]!==c||t[11]!==d?(f=(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[c,d]}),t[10]=c,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==n||t[14]!==r?(p=I(n,r),t[13]=n,t[14]=r,t[15]=p):p=t[15];let m;t[16]===p?m=t[17]:(m=(0,w.jsx)(`p`,{className:`font-medium text-fg`,children:p}),t[16]=p,t[17]=m);let h;t[18]!==n.dueAt||t[19]!==n.status||t[20]!==r?(h=n.status===`completed`?r?`这项安排已经结束`:`This arrangement has ended`:`${r?`约定时间`:`Follow up by`} ${L(n.dueAt,r)}`,t[18]=n.dueAt,t[19]=n.status,t[20]=r,t[21]=h):h=t[21];let g;t[22]===h?g=t[23]:(g=(0,w.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:h}),t[22]=h,t[23]=g);let _;t[24]!==m||t[25]!==g?(_=(0,w.jsxs)(`div`,{className:`mt-4 rounded-xl bg-surface-hover px-4 py-3 text-sm`,children:[m,g]}),t[24]=m,t[25]=g,t[26]=_):_=t[26];let v;return t[27]!==_||t[28]!==f?(v=(0,w.jsxs)(`article`,{className:`rounded-2xl border border-edge bg-surface-panel p-5`,children:[f,_]}),t[27]=_,t[28]=f,t[29]=v):v=t[29],v}function ie({follow:e,zh:t,refresh:n}){let[r,i]=(0,C.useState)(!1),[o,s]=(0,C.useState)(e.instructions),[c,l]=(0,C.useState)(ne(e.dueAt)),[u,f]=(0,C.useState)(!1),[p,m]=(0,C.useState)(``);async function h(t){f(!0),m(``);try{await v(`/api/proactive/follow-ups/${encodeURIComponent(e.id)}`,`PATCH`,{expectedRevision:e.revision,...t}),i(!1),n()}catch(e){m(String(e))}finally{f(!1)}}return(0,w.jsxs)(`article`,{className:`rounded-2xl border border-edge bg-surface-panel p-5`,children:[(0,w.jsx)(`h2`,{className:`font-medium`,children:e.subject??(t?`邮件跟进`:`Email follow-up`)}),(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:I(e,t)}),(0,w.jsxs)(`dl`,{className:`mt-4 space-y-4 text-sm`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:t?`助理在等什么`:`What the assistant is waiting for`}),(0,w.jsx)(`dd`,{className:`mt-1 whitespace-pre-wrap text-fg`,children:e.instructions})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:t?`什么时候回来找你`:`When to come back`}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:L(e.dueAt,t)})]})]}),e.syncFailed&&(0,w.jsx)(`p`,{className:`mt-3 text-sm text-danger`,children:t?`助理暂时看不到最新回复,请检查邮箱连接。`:`The assistant cannot see the latest replies right now. Check the email connection.`}),!e.sourceAvailable&&(0,w.jsx)(a,{className:`mt-3 block text-sm text-accent`,to:`/connectors`,children:t?`检查邮箱连接`:`Check email connection`}),e.sessionKey&&(0,w.jsx)(a,{className:`mt-3 block text-sm text-accent`,to:`/chat/${encodeURIComponent(e.sessionKey)}`,children:t?`继续原来的对话`:`Continue the conversation`}),r&&(0,w.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[(0,w.jsx)(`textarea`,{"aria-label":t?`跟进要求`:`Instructions`,className:B,rows:3,maxLength:12e3,value:o,onChange:e=>s(e.target.value)}),(0,w.jsx)(`input`,{"aria-label":t?`跟进时间`:`Follow-up time`,type:`datetime-local`,className:B,value:c,onChange:e=>l(e.target.value)}),(0,w.jsx)(d,{disabled:u||!o.trim()||!c,onClick:()=>void h({instructions:o,...ne(e.dueAt)===c?{}:{dueAt:new Date(c).toISOString()}}),children:t?`保存安排`:`Save arrangement`})]}),(0,w.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2`,children:[(0,w.jsx)(d,{variant:`ghost`,disabled:u,onClick:()=>i(!r),children:r?t?`取消修改`:`Cancel edit`:t?`调整安排`:`Adjust arrangement`}),(0,w.jsx)(d,{variant:`ghost`,disabled:u,onClick:()=>void h({status:e.status===`watching`?`paused`:`watching`}),children:e.status===`watching`?t?`暂停`:`Pause`:t?`恢复`:`Resume`}),e.status!==`completed`&&(0,w.jsx)(d,{variant:`ghost`,disabled:u,onClick:()=>void h({status:`completed`}),children:t?`结束安排`:`End arrangement`})]}),p&&(0,w.jsx)(`p`,{role:`alert`,className:`mt-3 text-sm text-danger`,children:p})]})}var V=`mt-1 w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`;function H(e){let t=(0,S.c)(58),{value:n,onChange:r,zh:i}=e,a;t[0]===i?a=t[1]:(a=i?{all:`所有已启用设备`,auto:`自动选择一台设备`,browser:`浏览器 / 桌面`,mobile:`手机`,telegram:`Telegram`}:{all:`All enabled devices`,auto:`Choose one device`,browser:`Browser / desktop`,mobile:`Mobile`,telegram:`Telegram`},t[0]=i,t[1]=a);let s=a,c;t[2]!==r||t[3]!==n?(c=e=>r({...n,digestEnabled:e.target.checked}),t[2]=r,t[3]=n,t[4]=c):c=t[4];let l;t[5]!==c||t[6]!==n.digestEnabled?(l=(0,w.jsx)(`input`,{type:`checkbox`,checked:n.digestEnabled,onChange:c}),t[5]=c,t[6]=n.digestEnabled,t[7]=l):l=t[7];let u=i?`将提醒合并为每日摘要`:`Combine alerts into a daily digest`,d;t[8]!==l||t[9]!==u?(d=(0,w.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f=i?`摘要时间(使用上方时区)`:`Digest time (in your selected timezone)`,p=String(n.digestHour),m;t[11]===p?m=t[12]:(m=p.padStart(2,`0`),t[11]=p,t[12]=m);let h=String(n.digestMinute),g;t[13]===h?g=t[14]:(g=h.padStart(2,`0`),t[13]=h,t[14]=g);let _=`${m}:${g}`,v;t[15]!==r||t[16]!==n?(v=e=>{let[t,i]=e.target.value.split(`:`).map(Number);r({...n,digestHour:t,digestMinute:i})},t[15]=r,t[16]=n,t[17]=v):v=t[17];let y;t[18]!==_||t[19]!==v?(y=(0,w.jsx)(`input`,{className:V,type:`time`,required:!0,value:_,onChange:v}),t[18]=_,t[19]=v,t[20]=y):y=t[20];let b;t[21]!==y||t[22]!==f?(b=(0,w.jsxs)(`label`,{className:`block text-sm`,children:[f,y]}),t[21]=y,t[22]=f,t[23]=b):b=t[23];let x=i?`提醒渠道`:`Notification channel`,C=n.preferredChannel,T;t[24]!==r||t[25]!==n?(T=e=>r({...n,preferredChannel:e.target.value}),t[24]=r,t[25]=n,t[26]=T):T=t[26];let E;t[27]===s?E=t[28]:(E=Object.entries(s).map(U),t[27]=s,t[28]=E);let D;t[29]!==T||t[30]!==E||t[31]!==n.preferredChannel?(D=(0,w.jsx)(o,{value:C,onChange:T,children:E}),t[29]=T,t[30]=E,t[31]=n.preferredChannel,t[32]=D):D=t[32];let O;t[33]!==x||t[34]!==D?(O=(0,w.jsxs)(`label`,{className:`block text-sm`,children:[x,D]}),t[33]=x,t[34]=D,t[35]=O):O=t[35];let k=i?`自动选择优先使用最近注册的浏览器,否则选择一台手机。免打扰期间的重要提醒会合并为一份摘要。`:`Automatic selection prefers the most recently registered browser, then one mobile device. Important alerts during quiet hours are combined into one digest.`,A;t[36]===k?A=t[37]:(A=(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:k}),t[36]=k,t[37]=A);let j;t[38]!==r||t[39]!==n?(j=e=>r({...n,suppressWhileViewing:e.target.checked}),t[38]=r,t[39]=n,t[40]=j):j=t[40];let M;t[41]!==j||t[42]!==n.suppressWhileViewing?(M=(0,w.jsx)(`input`,{type:`checkbox`,checked:n.suppressWhileViewing,onChange:j}),t[41]=j,t[42]=n.suppressWhileViewing,t[43]=M):M=t[43];let N=i?`正在查看卡片时不再发送系统提醒`:`Skip system alerts while viewing cards`,P;t[44]!==M||t[45]!==N?(P=(0,w.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[M,N]}),t[44]=M,t[45]=N,t[46]=P):P=t[46];let F;t[47]!==r||t[48]!==n||t[49]!==i?(F=n.preferredChannel===`telegram`&&(0,w.jsxs)(`fieldset`,{className:`space-y-3 rounded-xl border border-edge p-3`,children:[(0,w.jsx)(`legend`,{className:`px-1 text-sm`,children:`Telegram`}),[`chatId`,`accountId`,`publicUrl`].map(e=>(0,w.jsxs)(`label`,{className:`block text-sm`,children:[e===`chatId`?i?`接收对话 ID`:`Destination chat ID`:e===`accountId`?i?`账号 ID(可选)`:`Account ID (optional)`:i?`可从外部访问的控制台 HTTPS 地址`:`Public HTTPS console URL`,(0,w.jsx)(`input`,{className:V,required:e!==`accountId`,value:n.telegram?.[e]??``,onChange:t=>r({...n,telegram:{chatId:n.telegram?.chatId??``,publicUrl:n.telegram?.publicUrl??``,...n.telegram?.accountId?{accountId:n.telegram.accountId}:{},[e]:e===`accountId`?t.target.value||void 0:t.target.value}})})]},e)),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i?`需要已连接 Telegram 渠道。发送通用摘要和卡片链接;链接中不要填写访问令牌。`:`Connect the Telegram channel first. Alerts contain a generic summary and a card link. Do not put access tokens in the URL.`})]}),t[47]=r,t[48]=n,t[49]=i,t[50]=F):F=t[50];let I;return t[51]!==b||t[52]!==O||t[53]!==A||t[54]!==P||t[55]!==F||t[56]!==d?(I=(0,w.jsxs)(`div`,{className:`space-y-4 border-t border-edge pt-4`,children:[d,b,O,A,P,F]}),t[51]=b,t[52]=O,t[53]=A,t[54]=P,t[55]=F,t[56]=d,t[57]=I):I=t[57],I}function U(e){let[t,n]=e;return(0,w.jsx)(s,{value:t,children:n},t)}var W=`mt-1 w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`;function ae({preferences:e,copy:t,refresh:n}){let[r,i]=(0,C.useState)(e),[a,c]=(0,C.useState)(!1),[l,u]=(0,C.useState)(``);async function f(i=r){c(!0),u(``);try{let{revision:a,...o}={...r,...i};await v(`/api/proactive/preferences`,`PATCH`,{...o,expectedRevision:e.revision}),u(t.saved),n()}catch(e){u(e instanceof Error?e.message:String(e))}finally{c(!1)}}return(0,w.jsxs)(`form`,{className:`max-w-2xl space-y-5 rounded-2xl border border-edge bg-surface-panel p-5`,onSubmit:e=>{e.preventDefault(),f()},children:[(0,w.jsxs)(`label`,{className:`block text-sm`,children:[t.level,(0,w.jsx)(o,{value:r.level,onChange:e=>i({...r,level:e.target.value}),children:Object.entries(t.levels).map(([e,t])=>(0,w.jsx)(s,{value:e,children:t},e))})]}),(0,w.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,w.jsxs)(`label`,{className:`text-sm`,children:[t.timezone,(0,w.jsx)(`input`,{required:!0,className:W,value:r.timezone,onChange:e=>i({...r,timezone:e.target.value})})]}),(0,w.jsxs)(`label`,{className:`text-sm`,children:[t.limit,(0,w.jsx)(`input`,{required:!0,type:`number`,min:0,max:30,className:W,value:r.dailyNotificationLimit,onChange:e=>i({...r,dailyNotificationLimit:Number(e.target.value)})})]}),(0,w.jsxs)(`label`,{className:`text-sm`,children:[t.quietStart,(0,w.jsx)(`input`,{required:!0,type:`number`,min:0,max:23,className:W,value:r.quietStartHour,onChange:e=>i({...r,quietStartHour:Number(e.target.value)})})]}),(0,w.jsxs)(`label`,{className:`text-sm`,children:[t.quietEnd,(0,w.jsx)(`input`,{required:!0,type:`number`,min:0,max:23,className:W,value:r.quietEndHour,onChange:e=>i({...r,quietEndHour:Number(e.target.value)})})]})]}),(0,w.jsx)(H,{value:r,onChange:i,zh:t.locale===`zh`}),(0,w.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.privacy}),(0,w.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,w.jsx)(d,{type:`submit`,variant:`primary`,disabled:a,children:t.save}),(0,w.jsx)(d,{disabled:a,onClick:()=>void f({pausedUntil:new Date(Date.now()+36e5).toISOString()}),children:t.pause}),e.pausedUntil&&(0,w.jsx)(d,{disabled:a,onClick:()=>void f({pausedUntil:null}),children:t.resume})]}),l&&(0,w.jsx)(`p`,{role:`status`,className:`text-sm`,children:l})]})}function G(){let e=(0,S.c)(44),t=l(de)===`zh`,n;e[0]===t?n=e[1]:(n=E(t),e[0]=t,e[1]=n);let r=n,o=b(ue),s=b(le),[c,p]=i(),g;e[2]===c?g=e[3]:(g=c.get(`view`),e[2]=c,e[3]=g);let _=g,y=_===`settings`?_:`list`,x;e[4]===c?x=e[5]:(x=c.get(`state`),e[4]=c,e[5]=x);let D=x,O=D===`paused`||D===`completed`?D:`active`,k;e[6]===c?k=e[7]:(k=c.get(`item`),e[6]=c,e[7]=k);let M=k,N;e[8]===c?N=e[9]:(N=c.get(`digest`),e[8]=c,e[9]=N);let F=N,I;e[10]===c?I=e[11]:(I=c.get(`delegation`),e[10]=c,e[11]=I);let L=I,z;e[12]===c?z=e[13]:(z=c.get(`follow-up`),e[12]=c,e[13]=z);let B=z,ne=y===`list`||!!(L||B),V=u(y===`settings`?`/api/proactive/preferences`:null,h),H;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(H={refreshInterval:15e3},e[14]=H):H=e[14];let U=u(ne?`/api/proactive/overview`:null,h,H),W;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(W={revalidateOnFocus:!1},e[15]=W):W=e[15];let G=u(M?`/api/inbox/judgments/${encodeURIComponent(M)}`:null,h,W),K=u(F?`/api/proactive/digests/${encodeURIComponent(F)}`:null,h),q;e[16]===c?q=e[17]:(q=c.get(`probe`),e[16]=c,e[17]=q);let J=q,Y,fe;e[18]===J?(Y=e[19],fe=e[20]):(Y=()=>{J&&v(`/api/proactive/web-push/probes/${encodeURIComponent(J)}/opened`,`POST`,{}).catch(ce)},fe=[J],e[18]=J,e[19]=Y,e[20]=fe),(0,C.useEffect)(Y,fe);let pe=G.error??U.error??V.error??K.error,me=G.isLoading||U.isLoading||V.isLoading||K.isLoading,he=U.data?.scenes.flatMap(se)??[],ge=U.data?.delegations.filter(oe)??[],_e;e[21]===O?_e=e[22]:(_e=e=>A(e)===O,e[21]=O,e[22]=_e);let ve=ge.filter(_e),ye=U.data?.followUps.filter(e=>j(e)===O)??[],X;e[23]===L?X=e[24]:(X=e=>e.id===L,e[23]=L,e[24]=X);let be=ge.find(X),xe;e[25]!==B||e[26]!==U.data?.followUps?(xe=U.data?.followUps.find(e=>e.id===B),e[25]=B,e[26]=U.data?.followUps,e[27]=xe):xe=e[27];let Se=xe,Ce=e=>p(e),Z=!!(M||F||L||B),we=M?t?`跟进动态`:`Follow-up update`:F?t?`跟进摘要`:`Follow-up summary`:Z?t?`跟进详情`:`Follow-up details`:y===`settings`?t?`提醒偏好`:`Notification preferences`:t?`助理跟进`:`Assistant follow-ups`,Te=M||F?`/`:`/assistant-work`,Q=M||F?t?`返回工作台`:`Back to Workbench`:t?`返回助理跟进`:`Back to assistant follow-ups`,Ee,De;if(e[28]!==Q||e[29]!==Te||e[30]!==s||e[31]!==Z||e[32]!==o||e[33]!==we||e[34]!==y||e[35]!==t?(Ee=()=>(o({startExtra:Z||y===`settings`?(0,w.jsx)(d,{asChild:!0,variant:`ghost`,className:`size-8 rounded-lg p-0`,children:(0,w.jsx)(a,{to:Te,"aria-label":Q,title:Q,children:(0,w.jsx)(m,{className:`size-4`,"aria-hidden":!0})})}):null,main:(0,w.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:we}),end:!Z&&y===`list`?(0,w.jsx)(d,{asChild:!0,variant:`ghost`,className:`h-9 rounded-lg`,children:(0,w.jsx)(a,{to:`/assistant-work?view=settings`,children:t?`提醒偏好`:`Notification preferences`})}):null}),()=>s()),De=[Q,Te,s,Z,o,we,y,t],e[28]=Q,e[29]=Te,e[30]=s,e[31]=Z,e[32]=o,e[33]=we,e[34]=y,e[35]=t,e[36]=Ee,e[37]=De):(Ee=e[36],De=e[37]),(0,C.useLayoutEffect)(Ee,De),me){let t;return e[38]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-base`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-5 px-4 py-7 sm:px-6`,children:[(0,w.jsx)(f,{className:`h-8 w-48`}),(0,w.jsx)(f,{className:`h-56 rounded-2xl`}),(0,w.jsx)(f,{className:`h-40 rounded-2xl`})]})}),e[38]=t):t=e[38],t}let $;e[39]===pe?$=e[40]:($=pe&&(0,w.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,children:String(pe)}),e[39]=pe,e[40]=$);let Oe=M?(0,w.jsx)(w.Fragment,{children:G.data&&(0,w.jsx)(R,{card:G.data.card,copy:r,refresh:()=>void G.mutate(),detail:!0},`${G.data.card.id}:${G.data.card.revision}`)}):F?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`h2`,{className:`text-xl font-semibold text-fg`,children:t?`助理为你整理的变化`:`Updates prepared by your assistant`}),K.data?.cards.map(e=>(0,w.jsx)(R,{card:e,copy:r,refresh:()=>void K.mutate()},e.id)),K.data?.cards.length===0&&(0,w.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`这些事项已处理或不再需要关注。`:`These items have been handled or are no longer relevant.`})]}):be?(0,w.jsx)(w.Fragment,{children:(0,w.jsx)(te,{sub:be,card:P(he,be.id),zh:t,refresh:()=>void U.mutate()},be.id)}):Se?(0,w.jsx)(w.Fragment,{children:(0,w.jsx)(ie,{follow:Se,zh:t,refresh:()=>void U.mutate()})}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:y===`settings`?t?`决定助理什么时候提醒你,以及通过什么方式送达。`:`Choose when and how your assistant should notify you.`:t?`查看和管理交给助理持续跟进的事项。可以从项目、会议或对话中发起新的跟进。`:`Review and manage work your assistant is following. Start a follow-up from a project, meeting, or conversation.`}),y===`settings`&&V.data?(0,w.jsxs)(`div`,{className:`space-y-5`,children:[(0,w.jsx)(ae,{preferences:V.data.preferences,copy:r,refresh:()=>void V.mutate()},V.data.preferences.revision),(0,w.jsx)(T,{zh:t})]}):(0,w.jsxs)(`div`,{className:`space-y-5`,children:[(0,w.jsx)(`nav`,{className:`flex gap-2`,"aria-label":t?`跟进状态`:`Follow-up status`,children:[[`active`,t?`跟进中`:`Active`],[`paused`,t?`已暂停`:`Paused`],[`completed`,t?`已结束`:`Ended`]].map(e=>{let[t,n]=e;return(0,w.jsx)(d,{variant:O===t?`secondary`:`ghost`,onClick:()=>Ce(t===`active`?{}:{state:t}),children:n},t)})}),(0,w.jsxs)(`div`,{className:`space-y-3`,children:[ve.map(e=>(0,w.jsx)(ee,{sub:e,card:P(he,e.id),zh:t},`${e.id}:${e.revision}`)),ye.map(e=>(0,w.jsx)(re,{follow:e,zh:t},`${e.id}:${e.revision}`)),ve.length+ye.length===0&&(0,w.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-panel p-6`,children:[(0,w.jsx)(`h2`,{className:`font-medium text-fg`,children:O===`active`?t?`还没有正在跟进的事项`:`No active follow-ups`:O===`paused`?t?`没有已暂停的跟进`:`No paused follow-ups`:t?`没有已结束的跟进`:`No ended follow-ups`}),O===`active`&&(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:t?`打开一个项目,或在会议和沟通场景中告诉助理,需要它持续帮你守住什么。`:`Open a project, meeting, or conversation and tell the assistant what it should keep watching for you.`})]})]})]})]}),ke;return e[41]!==$||e[42]!==Oe?(ke=(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-base`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-6 px-4 py-7 sm:px-6`,children:[$,Oe]})}),e[41]=$,e[42]=Oe,e[43]=ke):ke=e[43],ke}function oe(e){return e.scenarioKey!==`communication_follow_up`}function se(e){return e.card?[e.card]:[]}function ce(){}function le(e){return e.clearPageHeader}function ue(e){return e.setPageHeader}function de(e){return e.language}export{G as ProactivePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{d as i,h as a,p as o,t as s}from"./chunk-KS7C4IRE-Cq1tE_3b.js";import{t as c}from"./check-DUBLcKHA.js";import{d as l,f as u,l as d,n as f,p,r as m,t as h,u as g}from"./popover-select-DGmMQt4t.js";import{t as _}from"./circle-check-C23XjkUj.js";import{t as v}from"./copy-Dv6d4Dvw.js";import{t as y}from"./download-Dk-ZjtO6.js";import{t as b}from"./external-link-DjqjBmc3.js";import{d as x,p as S,t as C}from"./markdown-view-CKInRsDh.js";import{t as w}from"./git-branch-Dh9uxTot.js";import{t as T}from"./loader-circle-CifKLtgG.js";import{t as E}from"./plus-Q2yW6OE7.js";import{t as D}from"./x-B_N4OPjy.js";import{t as O}from"./cn-JdwAhgNB.js";import{a as k,c as A,f as j,n as M,r as N}from"./locale-store-DO6JJ1l2.js";import{t as P}from"./messages-BgZRsCkG.js";import{a as F,c as I,i as L,n as R,o as z,r as ee,s as te,t as ne}from"./dist-BGTk37IG.js";import{t as B}from"./copy-to-clipboard-HOJ79TWv.js";import{i as V}from"./vendor-swr-BIWyz7Rc.js";import{t as H}from"./button-BA45yciM.js";import{t as U}from"./skeleton-BwbyijEw.js";import{$c as re,$i as W,$s as G,Aa as K,Al as ie,An as q,Au as ae,Ba as oe,Bc as se,Bi as ce,Bo as J,Bs as le,Bu as Y,Cc as ue,Cs as de,Da as fe,Dl as pe,Dn as me,Ds as he,Ea as ge,Ec as _e,Fa as ve,Fn as ye,Gi as be,Ha as xe,Hl as Se,Hr as Ce,Hs as we,Hu as Te,Ia as Ee,Is as De,Iu as Oe,Ji as ke,Jn as Ae,Jt as je,Kc as Me,Ki as Ne,Kn as Pe,La as Fe,Lc as Ie,Ln as Le,Ma as Re,Mn as ze,Na as Be,No as Ve,Ns as He,Oa as Ue,Oc as We,On as Ge,Pa as Ke,Ps as qe,Qi as Je,Ql as Ye,Ra as Xe,Rl as Ze,Ss as Qe,Su as $e,Ts as et,Ua as tt,Uc as nt,Ui as rt,Ul as it,Va as at,Vi as ot,Vt as st,Wa as ct,Wc as lt,Wi as ut,Wl as dt,Xi as ft,Xn as pt,Yi as mt,Yn as ht,Ys as gt,Yt as _t,Zi as vt,_u as yt,ac as bt,ar as xt,bc as St,bi as Ct,bu as wt,cu as Tt,da as Et,el as Dt,fa as Ot,fc as kt,fr as At,fu as jt,gn as Mt,go as Nt,ia as Pt,iu as Ft,ja as It,jl as Lt,jn as Rt,kl as zt,kn as Bt,la as Vt,lc as Ht,na as Ut,ni as Wt,nr as Gt,oa as Kt,oc as qt,ol as Jt,pc as Yt,pi as Xt,pl as Zt,pn as Qt,pr as $t,qa as en,qi as tn,qs as nn,ra as rn,vc as an,vi as on,vl as sn,vn as cn,vs as ln,wc as un,wu as dn,xc as fn,xu as pn,yl as mn,yu as hn,za as gn,zc as _n,zl as vn,zs as yn,zu as bn}from"./index-C9aQA4Dr.js";import{i as xn,n as Sn,r as Cn,t as wn}from"./note-detail-panel-DSaZfkna.js";import{n as Tn,t as En}from"./use-autosave-D-FRib85.js";import{t as Dn}from"./page-tabs-CdYemUOu.js";import{t as On}from"./date-picker-tYvbTfZT.js";import{t as kn}from"./automations-workspace-B2-f9qZu.js";import{i as An,p as jn,s as Mn}from"./skills-page.utils-DYfaLtts.js";import{t as Nn}from"./dependency-picker-B8yo7-7V.js";import{c as Pn,l as Fn,n as In,o as Ln,r as Rn,t as zn}from"./style-TIDOdKy0.js";var X=e(t(),1),Bn=n(),Z=r();function Vn(e){let t=(0,Bn.c)(27),{value:n,onPick:r,disabled:i,placeholder:a,title:o,className:s,maxWidthClass:c,compact:l,"aria-label":u}=e,d=c===void 0?`max-w-[min(12rem,40vw)]`:c,f=l===void 0?!1:l,p,m;t[0]!==a||t[1]!==n?(m=n.trim(),p=m?Pt(m):a??``,t[0]=a,t[1]=n,t[2]=p,t[3]=m):(p=t[2],m=t[3]);let h=p,g=o??(m||void 0),_=u??o??h,v=f?`inline-flex size-9 shrink-0 items-center justify-center rounded-lg p-0`:`inline-flex min-h-8 min-w-0 shrink-0 items-center gap-1 rounded-lg px-2 py-1 text-xs`,y=!f&&d,b=i&&`cursor-not-allowed opacity-60`,x;t[4]!==s||t[5]!==v||t[6]!==y||t[7]!==b?(x=O(v,`border border-edge-subtle/80 bg-surface-hover/40 dark:border-edge-subtle`,ln.transition,ln.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,y,b,s),t[4]=s,t[5]=v,t[6]=y,t[7]=b,t[8]=x):x=t[8];let S;t[9]!==i||t[10]!==r?(S=e=>{e.stopPropagation(),i||r()},t[9]=i,t[10]=r,t[11]=S):S=t[11];let C=f?`size-4`:`size-3.5`,w;t[12]===C?w=t[13]:(w=O(`shrink-0 text-fg-muted`,C),t[12]=C,t[13]=w);let T;t[14]===w?T=t[15]:(T=(0,Z.jsx)(Se,{className:w,"aria-hidden":!0}),t[14]=w,t[15]=T);let E;t[16]!==f||t[17]!==h?(E=f?null:(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:h}),t[16]=f,t[17]=h,t[18]=E):E=t[18];let D;return t[19]!==i||t[20]!==S||t[21]!==T||t[22]!==E||t[23]!==g||t[24]!==_||t[25]!==x?(D=(0,Z.jsxs)(`button`,{type:`button`,disabled:i,title:g,"aria-label":_,className:x,onClick:S,children:[T,E]}),t[19]=i,t[20]=S,t[21]=T,t[22]=E,t[23]=g,t[24]=_,t[25]=x,t[26]=D):D=t[26],D}function Hn(e){let t=(0,Bn.c)(38),{value:n,onChange:r,disabled:i,wd:a,placeholder:o,inputClassName:s,autoFocus:c,trailing:l}=e,u;t[0]!==r||t[1]!==n?(u={initialPath:n,onPicked:r},t[0]=r,t[1]=n,t[2]=u):u=t[2];let d=rn(u),f;t[3]===n?f=t[4]:(f=n.trim(),t[3]=n,t[4]=f);let p=f,m=p?`${p}\n${a.chooseFolder}`:`${o??a.notSet}\n${a.selectWorkingDirectory}`,h;t[5]===s?h=t[6]:(h=O(`min-w-0 flex-1`,s),t[5]=s,t[6]=h);let g=i||d.picking,_;t[7]===r?_=t[8]:(_=e=>void r(e.target.value),t[7]=r,t[8]=_);let v=o??a.pathInputPlaceholder,y;t[9]!==c||t[10]!==h||t[11]!==g||t[12]!==_||t[13]!==v||t[14]!==n?(y=(0,Z.jsx)(`input`,{type:`text`,className:h,value:n,disabled:g,onChange:_,placeholder:v,autoFocus:c,autoComplete:`off`,spellCheck:!1}),t[9]=c,t[10]=h,t[11]=g,t[12]=_,t[13]=v,t[14]=n,t[15]=y):y=t[15];let b=i||d.picking,x;t[16]!==m||t[17]!==d.pick||t[18]!==b||t[19]!==n||t[20]!==a.selectWorkingDirectory?(x=(0,Z.jsx)(Vn,{compact:!0,value:n,onPick:d.pick,disabled:b,title:m,"aria-label":a.selectWorkingDirectory}),t[16]=m,t[17]=d.pick,t[18]=b,t[19]=n,t[20]=a.selectWorkingDirectory,t[21]=x):x=t[21];let S;t[22]!==x||t[23]!==l?(S=(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2`,children:[x,l]}),t[22]=x,t[23]=l,t[24]=S):S=t[24];let C;t[25]!==S||t[26]!==y?(C=(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[y,S]}),t[25]=S,t[26]=y,t[27]=C):C=t[27];let w;t[28]!==d.confirmPick||t[29]!==d.hasNativePicker||t[30]!==d.modalOpen||t[31]!==d.setModalOpen||t[32]!==p||t[33]!==a?(w=d.hasNativePicker?null:(0,Z.jsx)(W,{open:d.modalOpen,onOpenChange:d.setModalOpen,initialAbsolutePath:p||void 0,onConfirm:d.confirmPick,wd:a}),t[28]=d.confirmPick,t[29]=d.hasNativePicker,t[30]=d.modalOpen,t[31]=d.setModalOpen,t[32]=p,t[33]=a,t[34]=w):w=t[34];let T;return t[35]!==C||t[36]!==w?(T=(0,Z.jsxs)(Z.Fragment,{children:[C,w]}),t[35]=C,t[36]=w,t[37]=T):T=t[37],T}function Q(e){let t=(0,Bn.c)(15),{noteId:n,attachmentId:r,className:i}=e,[a,o]=(0,X.useState)(!1),s;t[0]!==r||t[1]!==n?(s=$t(n,r),t[0]=r,t[1]=n,t[2]=s):s=t[2];let c=s;if(a){let e;t[3]===i?e=t[4]:(e=O(`flex size-12 shrink-0 items-center justify-center rounded-lg border border-edge-subtle bg-surface-hover text-fg-muted`,i),t[3]=i,t[4]=e);let n;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Z.jsx)(zt,{className:`size-4`}),t[5]=n):n=t[5];let r;return t[6]===e?r=t[7]:(r=(0,Z.jsx)(`div`,{className:e,"aria-hidden":!0,children:n}),t[6]=e,t[7]=r),r}let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>o(!0),t[8]=l):l=t[8];let u;t[9]===i?u=t[10]:(u=O(`size-12 shrink-0 rounded-lg border border-edge-subtle bg-surface-hover object-cover`,i),t[9]=i,t[10]=u);let d;return t[11]!==n||t[12]!==c||t[13]!==u?(d=(0,Z.jsx)(xt,{src:c,expectedNoteId:n,alt:``,loading:`lazy`,draggable:!1,onLoadFailed:l,className:u}),t[11]=n,t[12]=c,t[13]=u,t[14]=d):d=t[14],d}function Un(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${String(n).padStart(2,`0`)}`}function Wn(e){let t=(0,Bn.c)(38),{noteId:n,attachmentId:r,durationSec:i,className:a}=e,{playing:o,loading:s,currentTime:c,duration:l,noteId:u,attachmentId:d}=At(),f=At(Kn),p=u===n&&d===r,m=p&&o,h=p&&s,g=p?c:0,_=p&&l>0?l:i??0,v=_>0?Math.min(g/_*100,100):0,y;t[0]!==r||t[1]!==i||t[2]!==n||t[3]!==f?(y=e=>{e.stopPropagation(),f(n,r,i)},t[0]=r,t[1]=i,t[2]=n,t[3]=f,t[4]=y):y=t[4];let b=y,x;t[5]!==r||t[6]!==i||t[7]!==n||t[8]!==f?(x=e=>{(e.key===`Enter`||e.key===` `)&&(e.stopPropagation(),e.preventDefault(),f(n,r,i))},t[5]=r,t[6]=i,t[7]=n,t[8]=f,t[9]=x):x=t[9];let S=x,C;t[10]===a?C=t[11]:(C=O(`flex items-center gap-2`,a),t[10]=a,t[11]=C);let w=m?`bg-accent text-white`:`bg-accent/10 text-accent hover:bg-accent/20`,E;t[12]===w?E=t[13]:(E=O(`flex size-7 shrink-0 items-center justify-center rounded-full transition-colors`,w),t[12]=w,t[13]=E);let D=m?`Pause`:`Play`,k;t[14]!==h||t[15]!==m?(k=h?(0,Z.jsx)(T,{className:`size-3.5 animate-spin`}):m?(0,Z.jsx)(nt,{className:`size-3.5`}):(0,Z.jsx)(Ie,{className:`size-3.5 ml-0.5`}),t[14]=h,t[15]=m,t[16]=k):k=t[16];let A;t[17]!==b||t[18]!==S||t[19]!==E||t[20]!==D||t[21]!==k?(A=(0,Z.jsx)(`button`,{type:`button`,onClick:b,onKeyDown:S,className:E,"aria-label":D,children:k}),t[17]=b,t[18]=S,t[19]=E,t[20]=D,t[21]=k,t[22]=A):A=t[22];let j=`${v}%`,M;t[23]===j?M=t[24]:(M=(0,Z.jsx)(`div`,{className:`h-1 w-full overflow-hidden rounded-full bg-accent/10`,children:(0,Z.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-[width] duration-200 ease-linear`,style:{width:j}})}),t[23]=j,t[24]=M);let N;t[25]!==_||t[26]!==p||t[27]!==g?(N=Un(p&&g>0?g:_),t[25]=_,t[26]=p,t[27]=g,t[28]=N):N=t[28];let P;t[29]===N?P=t[30]:(P=(0,Z.jsx)(`span`,{className:`text-[10px] tabular-nums text-fg-muted`,children:N}),t[29]=N,t[30]=P);let F;t[31]!==M||t[32]!==P?(F=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[M,P]}),t[31]=M,t[32]=P,t[33]=F):F=t[33];let I;return t[34]!==F||t[35]!==C||t[36]!==A?(I=(0,Z.jsxs)(`div`,{className:C,onClick:Gn,children:[A,F]}),t[34]=F,t[35]=C,t[36]=A,t[37]=I):I=t[37],I}function Gn(e){return e.stopPropagation()}function Kn(e){return e.toggle}function qn(e,t){return e.snippet?.trim()?e.snippet:e.coverAttachmentId?t.imageNote:t.noText}function Jn(e){let t=(0,Bn.c)(88),{note:n,selected:r,onPress:i,onPin:a,onArchive:o,onDelete:s,labels:c,timeLabels:l}=e,u=r===void 0?!1:r,d;t[0]!==c||t[1]!==n?(d=qn(n,c),t[0]=c,t[1]=n,t[2]=d):d=t[2];let f=d,p=!n.snippet?.trim(),[m]=(0,X.useState)(er),h;t[3]!==n.createdAt||t[4]!==m||t[5]!==l?(h=xn(n.createdAt,m,l),t[3]=n.createdAt,t[4]=m,t[5]=l,t[6]=h):h=t[6];let g=h,_,v;t[7]!==n.id||t[8]!==i?(_=()=>i(n.id),v=e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),i(n.id))},t[7]=n.id,t[8]=i,t[9]=_,t[10]=v):(_=t[9],v=t[10]);let y=u?`bg-surface-active hover:bg-surface-active`:`bg-transparent hover:bg-surface-panel/70`,b;t[11]===y?b=t[12]:(b=O(`group relative flex cursor-pointer flex-col gap-2 overflow-hidden rounded-lg px-3 py-2.5`,`transition-colors duration-150 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-rail`,y),t[11]=y,t[12]=b);let x=u?`true`:void 0,S;t[13]===u?S=t[14]:(S=u?(0,Z.jsx)(`span`,{className:`pointer-events-none absolute inset-y-2 left-0 w-0.5 rounded-r-pill bg-accent`,"aria-hidden":!0}):null,t[13]=u,t[14]=S);let C;t[15]!==n.coverAttachmentId||t[16]!==n.id||t[17]!==n.kind||t[18]!==n.voiceAttachmentId||t[19]!==n.voiceDurationSec?(C=n.coverAttachmentId?(0,Z.jsx)(Q,{noteId:n.id,attachmentId:n.coverAttachmentId}):n.kind===`voice`&&n.voiceAttachmentId?(0,Z.jsx)(Wn,{noteId:n.id,attachmentId:n.voiceAttachmentId,durationSec:n.voiceDurationSec,className:`mt-0.5 w-28 shrink-0`}):null,t[15]=n.coverAttachmentId,t[16]=n.id,t[17]=n.kind,t[18]=n.voiceAttachmentId,t[19]=n.voiceDurationSec,t[20]=C):C=t[20];let w;t[21]===n.title?w=t[22]:(w=n.title&&(0,Z.jsx)(`h3`,{className:`mb-0.5 truncate text-sm font-semibold text-fg`,children:n.title}),t[21]=n.title,t[22]=w);let T=n.title?`text-fg-muted`:p?`italic text-fg-muted`:`text-fg`,E;t[23]===T?E=t[24]:(E=O(`truncate text-sm leading-5`,T),t[23]=T,t[24]=E);let D;t[25]!==f||t[26]!==E?(D=(0,Z.jsx)(`p`,{className:E,children:f}),t[25]=f,t[26]=E,t[27]=D):D=t[27];let k;t[28]!==w||t[29]!==D?(k=(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[w,D]}),t[28]=w,t[29]=D,t[30]=k):k=t[30];let A;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(Ye,{className:`size-4`}),t[31]=A):A=t[31];let j;t[32]===c.actions?j=t[33]:(j=(0,Z.jsx)(ze,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,onClick:$n,className:`shrink-0 rounded-md p-1 text-fg-muted opacity-100 transition-opacity hover:bg-surface-panel focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent lg:opacity-0 lg:group-hover:opacity-100 lg:focus-visible:opacity-100`,"aria-label":c.actions,title:c.actions,children:A})}),t[32]=c.actions,t[33]=j);let M;t[34]!==n.id||t[35]!==n.pinned||t[36]!==a?(M=()=>{a(n.id,!n.pinned).catch(Zn)},t[34]=n.id,t[35]=n.pinned,t[36]=a,t[37]=M):M=t[37];let N;t[38]===n.pinned?N=t[39]:(N=n.pinned?(0,Z.jsx)(_n,{className:`size-4`}):(0,Z.jsx)(se,{className:`size-4`}),t[38]=n.pinned,t[39]=N);let P=n.pinned?c.unpin:c.pin,F;t[40]!==M||t[41]!==N||t[42]!==P?(F=(0,Z.jsxs)(Ge,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:M,children:[N,P]}),t[40]=M,t[41]=N,t[42]=P,t[43]=F):F=t[43];let I;t[44]!==n.id||t[45]!==o?(I=()=>{o(n.id).catch(Xn)},t[44]=n.id,t[45]=o,t[46]=I):I=t[46];let L;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Z.jsx)(Te,{className:`size-4`}),t[47]=L):L=t[47];let R;t[48]!==c.archive||t[49]!==I?(R=(0,Z.jsxs)(Ge,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:I,children:[L,c.archive]}),t[48]=c.archive,t[49]=I,t[50]=R):R=t[50];let z;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,Z.jsx)(Rt,{className:`my-1 h-px bg-edge-subtle`}),t[51]=z):z=t[51];let ee;t[52]!==n.id||t[53]!==s?(ee=()=>{s(n.id).catch(Yn)},t[52]=n.id,t[53]=s,t[54]=ee):ee=t[54];let te;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,Z.jsx)(G,{className:`size-4`}),t[55]=te):te=t[55];let ne;t[56]!==c.delete||t[57]!==ee?(ne=(0,Z.jsxs)(Ge,{className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-red-500 outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:ee,children:[te,c.delete]}),t[56]=c.delete,t[57]=ee,t[58]=ne):ne=t[58];let B;t[59]!==F||t[60]!==R||t[61]!==ne?(B=(0,Z.jsx)(Bt,{children:(0,Z.jsxs)(me,{className:`z-50 min-w-[140px] rounded-xl border border-edge bg-surface-panel p-1 shadow-lg`,sideOffset:4,align:`end`,onClick:Qn,children:[F,R,z,ne]})}),t[59]=F,t[60]=R,t[61]=ne,t[62]=B):B=t[62];let V;t[63]!==j||t[64]!==B?(V=(0,Z.jsxs)(q,{children:[j,B]}),t[63]=j,t[64]=B,t[65]=V):V=t[65];let H;t[66]!==C||t[67]!==k||t[68]!==V?(H=(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[C,k,V]}),t[66]=C,t[67]=k,t[68]=V,t[69]=H):H=t[69];let U;t[70]===n.pinned?U=t[71]:(U=n.pinned&&(0,Z.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-accent/10 px-1.5 py-0.5 text-xs font-medium text-accent`,children:(0,Z.jsx)(se,{className:`size-3`})}),t[70]=n.pinned,t[71]=U);let re;t[72]===n.tags?re=t[73]:(re=n.tags?.slice(0,2).map($),t[72]=n.tags,t[73]=re);let W;t[74]===g?W=t[75]:(W=(0,Z.jsx)(`span`,{className:`ml-auto text-xs text-fg-muted`,children:g}),t[74]=g,t[75]=W);let K;t[76]!==U||t[77]!==re||t[78]!==W?(K=(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[U,re,W]}),t[76]=U,t[77]=re,t[78]=W,t[79]=K):K=t[79];let ie;return t[80]!==H||t[81]!==K||t[82]!==_||t[83]!==v||t[84]!==b||t[85]!==x||t[86]!==S?(ie=(0,Z.jsxs)(`article`,{role:`button`,tabIndex:0,onClick:_,onKeyDown:v,className:b,"aria-current":x,children:[S,H,K]}),t[80]=H,t[81]=K,t[82]=_,t[83]=v,t[84]=b,t[85]=x,t[86]=S,t[87]=ie):ie=t[87],ie}function $(e){return(0,Z.jsx)(`span`,{className:`max-w-24 truncate rounded-md bg-surface-hover px-1.5 py-0.5 text-xs text-fg-muted`,children:e},e)}function Yn(){}function Xn(){}function Zn(){}function Qn(e){return e.stopPropagation()}function $n(e){return e.stopPropagation()}function er(){return Date.now()}var tr=3e4;function nr(){if(!(typeof MediaRecorder>`u`))return[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`,`audio/ogg;codecs=opus`].find(e=>MediaRecorder.isTypeSupported(e))}function rr({placeholder:e,submitLabel:t,actionsLabel:n,imageLabel:r,voiceLabel:i,stopRecordingLabel:a,onCapture:o,onImagePick:s,onVoiceCapture:c,onVoiceError:l,recordingLabel:u,imageDisabled:d=!1,voiceDisabled:f=!1,onDiscussionCapture:p,discussionCaptureLabel:m}){let[h,g]=(0,X.useState)(``),[_,v]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(0),[C,w]=(0,X.useState)(!1),T=(0,X.useRef)(null),D=(0,X.useRef)(null),k=(0,X.useRef)(null),A=(0,X.useRef)([]),j=(0,X.useRef)(0),M=(0,X.useRef)(null),N=(0,X.useRef)(null),P=(0,X.useCallback)(()=>{M.current&&=(clearInterval(M.current),null),N.current&&=(clearTimeout(N.current),null),k.current?.getTracks().forEach(e=>e.stop()),k.current=null,D.current=null,A.current=[],b(!1),S(0)},[]);(0,X.useEffect)(()=>()=>P(),[P]);let F=(0,X.useCallback)(async()=>{let e=D.current;if(!e||e.state!==`recording`)return;w(!0),await new Promise(t=>{e.addEventListener(`stop`,()=>t(),{once:!0}),e.stop()});let t=Math.max(1,Math.round((Date.now()-j.current)/1e3)),n=e.mimeType||nr()||`audio/webm`,r=new Blob(A.current,{type:n});if(P(),r.size>0&&c){let e=n.includes(`mp4`)?`m4a`:n.includes(`ogg`)?`ogg`:`webm`,i=new File([r],`voice-${Date.now()}.${e}`,{type:n});try{await c(i,t)}finally{w(!1)}return}w(!1)},[P,c]),I=(0,X.useCallback)(async()=>{if(!(!c||C||y)){if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`){l?.();return}try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});k.current=e;let t=nr(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e);D.current=n,A.current=[],j.current=Date.now(),n.ondataavailable=e=>{e.data.size>0&&A.current.push(e.data)},n.start(),b(!0),S(0),M.current=setInterval(()=>{S(Math.round((Date.now()-j.current)/1e3))},250),N.current=setTimeout(()=>{F()},tr)}catch{P(),l?.()}}},[P,c,l,y,F,C]),L=(0,X.useCallback)(async()=>{let e=h.trim();if(!(!e||_)){v(!0),g(``);try{await o(e)}catch{g(e)}finally{v(!1),T.current?.focus()}}},[h,_,o]),R=(0,X.useCallback)(e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),L())},[L]),z=_||C,ee=!!(s||c||p);return(0,Z.jsxs)(`div`,{className:O(`flex items-center gap-1.5 rounded-2xl border border-edge bg-surface-panel p-2 shadow-float dark:shadow-elevated`,`focus-within:border-accent focus-within:ring-1 focus-within:ring-accent`,y&&`border-danger ring-1 ring-danger/40`),"aria-busy":z,children:[y?(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void F(),disabled:C,className:`shrink-0 rounded-lg bg-danger-soft p-2 text-danger transition-colors hover:bg-danger-soft disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":a,title:a,"aria-pressed":`true`,children:(0,Z.jsx)(Ht,{className:`size-4 fill-current`,"aria-hidden":!0})}):ee?(0,Z.jsxs)(q,{children:[(0,Z.jsx)(ze,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,disabled:z,className:`shrink-0 rounded-lg p-2 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":n,title:n,children:(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0})})}),(0,Z.jsx)(Bt,{children:(0,Z.jsxs)(me,{side:`top`,align:`start`,sideOffset:8,className:`z-50 min-w-44 rounded-xl border border-edge bg-surface-panel p-1 shadow-popover`,children:[s?(0,Z.jsxs)(Ge,{disabled:d,onSelect:s,className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,children:[(0,Z.jsx)(pe,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),r]}):null,c?(0,Z.jsxs)(Ge,{disabled:f,onSelect:()=>void I(),className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,children:[(0,Z.jsx)(re,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),i]}):null,p?(0,Z.jsxs)(Ge,{onSelect:p,className:`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,children:[(0,Z.jsx)(Oe,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),m]}):null]})})]}):null,y?(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate py-1.5 text-sm text-danger`,children:u.replace(`{{seconds}}`,String(x))}):(0,Z.jsx)(`textarea`,{ref:T,value:h,onChange:e=>g(e.target.value),onKeyDown:R,placeholder:e,"aria-label":e,rows:1,disabled:z,className:`max-h-28 min-h-8 flex-1 resize-none overflow-y-auto bg-transparent py-1.5 text-sm leading-5 text-fg placeholder:text-fg-muted focus:outline-none disabled:opacity-60`,style:{fieldSizing:`content`}}),(0,Z.jsx)(`button`,{type:`button`,disabled:!h.trim()||z||y,onClick:()=>void L(),"aria-label":t,title:t,className:O(`shrink-0 rounded-lg p-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50`,h.trim()&&!z&&!y?`bg-accent text-white hover:bg-accent-hover`:`text-fg-disabled`),children:(0,Z.jsx)(ue,{className:`size-4`,"aria-hidden":!0})})]})}var ir={statusFilter:`all`,kindFilter:`all`,pinnedOnly:!1},ar=240,or=320,sr=520,cr=560;function lr(e){if(globalThis.localStorage===void 0)return or;try{let t=globalThis.localStorage.getItem(e);if(!t)return or;let n=Number(t);return Number.isFinite(n)?n:or}catch{return or}}function ur(e,t){if(globalThis.localStorage!==void 0)try{globalThis.localStorage.setItem(e,String(Math.round(t)))}catch{}}var dr={thought:qt,todo:kt,voice:re,media:pe,bookmark:ae,mixed:qt,task:kt};function fr(e,t){return e.snippet?.trim()?e.snippet:e.coverAttachmentId?t.imageNote:t.noText}function pr(e,t){return e.statusFilter===t.patch.statusFilter&&e.kindFilter===t.patch.kindFilter&&e.pinnedOnly===t.patch.pinnedOnly}function mr(e,t){return`${e.replace(/\/$/,``)}/${encodeURIComponent(t)}`}function hr({selectedNoteId:e,basePath:t,managePageHeader:n=!1,showLibrary:r=!0,allowMediaCapture:a=!0,projectId:o,listTitle:s,listDescription:c,emptyText:l,emptyDescription:u,listWidthStorageKey:d=`xopc.notes.listWidth`}){let p=M(e=>e.language),h=P(p).notes,g=!!A(e=>e.sessionKey),[_,v]=(0,X.useReducer)(Ut,ir),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(``),[C,w]=(0,X.useState)(0),[T,k]=(0,X.useState)(()=>lr(d)),[N,I]=(0,X.useState)(!1),[B,H]=(0,X.useState)(!1),[U,re]=(0,X.useState)(!1),[W,G]=(0,X.useState)(null),[K,ie]=(0,X.useState)(null),q=(0,X.useRef)(null),ae=(0,X.useRef)(null),[oe]=(0,X.useState)(()=>Date.now()),se=i(),ce=(0,X.useCallback)(e=>{let t=q.current?.clientWidth??window.innerWidth,n=Math.max(ar,t-cr);return Math.max(ar,Math.min(Math.min(sr,n),e))},[]),J=(0,X.useCallback)(e=>{let t=ce(e);k(t),ur(d,t)},[ce,d]);(0,X.useLayoutEffect)(()=>{k(e=>ce(e))},[ce]);let{data:le,mutate:Y,isLoading:ue}=V((0,X.useMemo)(()=>g?[`notes-list`,o,_.statusFilter,_.kindFilter,_.pinnedOnly]:null,[g,o,_.statusFilter,_.kindFilter,_.pinnedOnly]),()=>Pe({status:_.statusFilter===`all`?void 0:_.statusFilter,kind:_.kindFilter===`all`?void 0:_.kindFilter,projectId:o,pinned:_.pinnedOnly?!0:void 0,limit:100,sortBy:`createdAt`,sortOrder:`desc`}),{keepPreviousData:!0}),de=ue&&!le,fe=le?.items??[],pe=le?.total??0,me=x.trim(),{data:he,isLoading:ge}=V(g&&y&&me?[`notes-search`,o,me]:null,()=>Pe({search:me,projectId:o,limit:30,sortBy:`updatedAt`,sortOrder:`desc`})),_e=he?.items??[],ve=e?fe.some(t=>t.id===e):!0;(0,X.useEffect)(()=>{w(0)},[me]),(0,X.useEffect)(()=>{C>=_e.length&&w(Math.max(0,_e.length-1))},[C,_e.length]),(0,X.useEffect)(()=>{let e=()=>{Y().catch(e=>{G(`${h.refreshFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`)})};return window.addEventListener(`note-updated`,e),()=>window.removeEventListener(`note-updated`,e)},[Y,h.quickCaptureFailedHint,h.refreshFailed]);let be=Nt(e=>e.setPageHeader),xe=Nt(e=>e.clearPageHeader),Se=h.noteCount.replace(`{{count}}`,String(pe)),Ce=!r&&pe===0&&c?c:Se,we=h.searchDialogTitle,Te=h.searchClose,Ee=h.searchClear,De=(0,X.useMemo)(()=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>b(!0),className:O(`inline-flex h-9 items-center gap-2 rounded-lg border border-edge bg-surface-base px-3 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,Ve),"aria-label":we,children:[(0,Z.jsx)(un,{className:`size-4`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:we})]}),[we]);(0,X.useLayoutEffect)(()=>{if(n)return g?(be({startExtra:null,main:(0,Z.jsxs)(`div`,{className:O(`flex min-w-0 items-center gap-2`,Ve),children:[(0,Z.jsx)(`h1`,{className:`min-w-0 truncate text-base font-semibold tracking-tight text-fg`,children:s??h.title}),Se?(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:Se}):null]}),end:De}),()=>xe()):(xe(),()=>xe())},[xe,g,De,s,n,h.title,Se,e,be]);let Oe=(0,X.useMemo)(()=>({justNow:h.justNow,minutesAgo:h.minutesAgo,today:h.today,yesterday:h.yesterday,daysAgo:h.daysAgo,locale:j(p)}),[p,h.justNow,h.minutesAgo,h.today,h.yesterday,h.daysAgo]),ke=(0,X.useMemo)(()=>[{id:`recent`,label:h.viewRecent,patch:{statusFilter:`all`,kindFilter:`all`,pinnedOnly:!1}},{id:`inbox`,label:h.filterInbox,patch:{statusFilter:`inbox`,kindFilter:`all`,pinnedOnly:!1}},{id:`pinned`,label:h.pinned,patch:{statusFilter:`all`,kindFilter:`all`,pinnedOnly:!0}},{id:`tasks`,label:h.viewTasks,patch:{statusFilter:`all`,kindFilter:`todo`,pinnedOnly:!1}},{id:`voice`,label:h.kindVoice,patch:{statusFilter:`all`,kindFilter:`voice`,pinnedOnly:!1}},{id:`media`,label:h.kindMedia,patch:{statusFilter:`all`,kindFilter:`media`,pinnedOnly:!1}},{id:`bookmarks`,label:h.kindBookmark,patch:{statusFilter:`all`,kindFilter:`bookmark`,pinnedOnly:!1}},{id:`processed`,label:h.filterProcessed,patch:{statusFilter:`processed`,kindFilter:`all`,pinnedOnly:!1}},{id:`archive`,label:h.filterArchived,patch:{statusFilter:`archived`,kindFilter:`all`,pinnedOnly:!1}}],[h.filterArchived,h.filterInbox,h.filterProcessed,h.kindBookmark,h.kindMedia,h.kindVoice,h.pinned,h.viewRecent,h.viewTasks]),je=ke.find(e=>pr(_,e))??ke[0],Ne=s??je.label,Fe=(0,X.useCallback)(async e=>{G(null);try{let n=o?await ye({markdown:e,kind:`thought`,projectId:o,channel:`web`}):await Ae(e,`web`);await Y(),se(mr(t,n.id))}catch(e){throw G(`${h.quickCaptureFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`),e}},[t,Y,h.quickCaptureFailed,h.quickCaptureFailedHint,se,o]),Ie=(0,X.useCallback)(async()=>{if(!U){re(!0),G(null);try{let e=await ye({markdown:``,kind:`thought`,projectId:o,channel:`web`});v({type:`patch`,patch:ir}),await Y(),ie(e.id),se(mr(t,e.id))}catch(e){G(`${h.createBlankFailed}: ${e instanceof Error?e.message:h.createBlankFailedHint}`)}finally{re(!1)}}},[t,U,Y,h.createBlankFailed,h.createBlankFailedHint,se,o]),Re=(0,X.useCallback)(()=>{let e=document.createElement(`input`);e.type=`file`,e.accept=`image/*`,e.onchange=async()=>{let t=e.files?.[0];if(t)try{G(null),await ht(t,`web`),await Y()}catch(e){G(`${h.imageUploadFailed}: ${e instanceof Error?e.message:h.imageUploadFailedHint}`)}},e.click()},[Y,h.imageUploadFailed,h.imageUploadFailedHint]),ze=(0,X.useCallback)(async(e,t)=>{try{G(null),await pt(e,t,`web`),await Y()}catch(e){G(`${h.voiceUploadFailed}: ${e instanceof Error?e.message:h.voiceUploadFailedHint}`)}},[Y,h.voiceUploadFailed,h.voiceUploadFailedHint]),Be=(0,X.useCallback)(()=>{G(`${h.voiceCaptureFailed}: ${h.voiceCaptureFailedHint}`)},[h.voiceCaptureFailed,h.voiceCaptureFailedHint]),He=(0,X.useCallback)(async(e,t)=>{G(null);try{await Gt(e,{pinned:t}),await Y()}catch(e){G(`${h.actionFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`)}},[Y,h.actionFailed,h.quickCaptureFailedHint]),Ue=(0,X.useCallback)(async e=>{G(null);try{await Gt(e,{status:`archived`}),await Y()}catch(e){G(`${h.actionFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`)}},[Y,h.actionFailed,h.quickCaptureFailedHint]),We=(0,X.useCallback)(async e=>{G(null);try{await Le(e),await Y()}catch(e){G(`${h.actionFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`)}},[Y,h.actionFailed,h.quickCaptureFailedHint]),Ge=(0,X.useCallback)(e=>{se(mr(t,e))},[t,se]),Ke=(0,X.useCallback)(e=>{se(mr(t,e)),b(!1)},[t,se]),qe=(0,X.useCallback)(e=>{if(_e.length){if(e.key===`ArrowDown`)e.preventDefault(),w(e=>Math.min(_e.length-1,e+1));else if(e.key===`ArrowUp`)e.preventDefault(),w(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=_e[C]??_e[0];t&&Ke(t.id)}}},[C,Ke,_e]),Je=(0,X.useCallback)(e=>{e.preventDefault();let t=e.currentTarget,n=ae.current;t.setPointerCapture(e.pointerId),I(!0);let r=q.current?.clientWidth??window.innerWidth,i=Math.max(ar,r-cr),a=Math.min(sr,i),o=e=>Math.max(ar,Math.min(a,e)),s=e.clientX,c=o(T),l=e.pointerId,u=0,f=c,p=c;n&&(n.style.transition=`none`,n.style.width=`${c}px`);let m=()=>{u=0,p=f,n&&(n.style.width=`${p}px`)},h=e=>{f=o(c+e.clientX-s),u===0&&(u=window.requestAnimationFrame(m))},g=()=>{u!==0&&(window.cancelAnimationFrame(u),m());try{t.releasePointerCapture(l)}catch{}I(!1),q.current?.style.setProperty(`--notes-list-width`,`${p}px`),n&&(n.style.removeProperty(`transition`),n.style.removeProperty(`width`)),k(p),ur(d,p),window.removeEventListener(`pointermove`,h),window.removeEventListener(`pointerup`,g),window.removeEventListener(`pointercancel`,g)};window.addEventListener(`pointermove`,h),window.addEventListener(`pointerup`,g),window.addEventListener(`pointercancel`,g)},[d,T]);(0,X.useEffect)(()=>{let e=e=>{e.defaultPrevented||e.repeat||e.key.toLowerCase()!==`n`||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey||(e.preventDefault(),Ie())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Ie]);let Ye=(0,X.useCallback)(e=>{e.key===`ArrowLeft`?(e.preventDefault(),J(T-16)):e.key===`ArrowRight`?(e.preventDefault(),J(T+16)):e.key===`Home`?(e.preventDefault(),J(ar)):e.key===`End`&&(e.preventDefault(),J(sr))},[J,T]);return g?(0,Z.jsxs)(`div`,{ref:q,className:`flex h-full min-h-0 w-full flex-1 overflow-hidden bg-surface-base`,style:{"--notes-list-width":`${T}px`},children:[(0,Z.jsxs)(`section`,{ref:ae,className:O(`relative flex min-h-0 w-full shrink-0 flex-col overflow-hidden border-r border-edge bg-surface-rail`,!N&&`lg:transition-[width] lg:duration-[280ms] lg:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:lg:transition-none`,B?`lg:w-0 lg:min-w-0 lg:max-w-0 lg:pointer-events-none`:`lg:w-[var(--notes-list-width)]`,e&&`hidden lg:flex`),"aria-hidden":B?!0:void 0,children:[(0,Z.jsxs)(`div`,{className:`shrink-0 border-b border-edge-subtle p-3`,children:[W?(0,Z.jsx)(`p`,{className:`mb-3 rounded-lg border border-danger/25 bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:W}):null,(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[r?(0,Z.jsx)(f,{value:je.id,onChange:e=>{let t=ke.find(t=>t.id===e.target.value);t&&v({type:`patch`,patch:t.patch})},className:`-ml-1 h-7 w-full max-w-44 rounded-lg border border-transparent bg-transparent px-2 text-sm font-semibold text-fg transition-colors hover:border-edge hover:bg-surface-base focus:border-accent focus:bg-surface-base focus:outline-none focus:ring-1 focus:ring-accent`,"aria-label":h.libraryTitle,children:ke.map(e=>(0,Z.jsx)(m,{value:e.id,children:e.label},e.id))}):(0,Z.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:Ne}),(0,Z.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:Ce})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>H(!0),className:`hidden size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent lg:inline-flex`,"aria-label":h.collapseNotesList,title:h.collapseNotesList,children:(0,Z.jsx)(Me,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}),(0,Z.jsx)(`button`,{type:`button`,onClick:Ie,disabled:U,className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":h.createBlankNote,title:h.createBlankShortcut,children:(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0})}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>b(!0),className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":h.searchDialogTitle,title:h.searchDialogTitle,children:(0,Z.jsx)(un,{className:`size-4`,"aria-hidden":!0})})]})]})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 py-3 [scrollbar-gutter:stable]`,children:de?(0,Z.jsx)(`div`,{className:`flex flex-col gap-2`,children:[1,2,3,4].map(e=>(0,Z.jsx)(`div`,{className:`h-20 animate-pulse rounded-lg bg-surface-hover`},e))}):fe.length===0?(0,Z.jsxs)(`div`,{className:`flex h-full min-h-48 flex-col items-center justify-center gap-2 px-6 py-10 text-center`,children:[(0,Z.jsx)(`span`,{className:`mb-1 inline-flex size-12 items-center justify-center rounded-xl border border-edge-subtle bg-surface-base text-fg-muted`,children:(0,Z.jsx)(qt,{className:`size-6`,"aria-hidden":!0})}),(0,Z.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:e&&!ve?h.noteOutsideCurrentView:l??h.noNotes}),e&&!ve?null:(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:u??h.noNotesDescription})]}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e&&!ve?(0,Z.jsx)(`div`,{className:`mb-2 rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 text-xs leading-5 text-fg-muted`,children:h.noteOutsideCurrentView}):null,fe.map((t,n)=>{let r=n>0?Sn(fe[n-1].createdAt):null;return(0,Z.jsxs)(`div`,{children:[Sn(t.createdAt)!==r&&(0,Z.jsx)(`div`,{className:O(`px-3 pb-1.5 pt-2 text-xs font-medium text-fg-muted`,n===0&&`pt-0`),children:Cn(t.createdAt,oe,Oe)}),(0,Z.jsx)(Jn,{note:t,selected:t.id===e,onPress:Ge,onPin:He,onArchive:Ue,onDelete:We,timeLabels:Oe,labels:{pin:h.pin,unpin:h.unpin,archive:h.archive,delete:h.delete,actions:h.noteActions,imageNote:h.imageNote,noText:h.noText}})]},t.id)})]})}),(0,Z.jsx)(`div`,{className:`shrink-0 border-t border-edge-subtle p-3`,children:(0,Z.jsx)(rr,{placeholder:h.quickCapturePlaceholder,submitLabel:h.quickCaptureSubmit,actionsLabel:h.quickCaptureActions,imageLabel:h.quickCaptureImage,voiceLabel:h.quickCaptureVoice,stopRecordingLabel:h.stopRecording,onCapture:Fe,onImagePick:a?Re:void 0,onVoiceCapture:a?ze:void 0,onVoiceError:Be,recordingLabel:h.recording,discussionCaptureLabel:h.discussionCapture.title,onDiscussionCapture:()=>en(o)})})]}),(0,Z.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":h.resizeNotesList,"aria-valuemin":ar,"aria-valuemax":sr,"aria-valuenow":Math.round(T),tabIndex:0,onPointerDown:Je,onDoubleClick:()=>J(or),onKeyDown:Ye,title:h.resizeNotesList,className:O(`group relative z-10 hidden shrink-0 cursor-col-resize touch-none select-none items-center justify-center bg-surface-base lg:flex`,`lg:transition-[width,opacity] lg:duration-[280ms] lg:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:lg:transition-none`,B?`lg:w-0 lg:opacity-0 lg:pointer-events-none`:`lg:w-2 lg:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-0`),children:(0,Z.jsx)(`span`,{"aria-hidden":!0,className:O(`h-full w-px bg-edge transition-[background-color,transform] duration-150`,`group-hover:bg-accent/70 group-focus-visible:bg-accent`,N&&`bg-accent scale-x-[2]`)})}),(0,Z.jsxs)(`section`,{className:O(`relative min-w-0 flex-1 bg-surface-base`,!e&&`hidden lg:flex`),children:[B?(0,Z.jsx)(`button`,{type:`button`,onClick:()=>H(!1),className:`absolute left-3 top-3 z-10 hidden size-8 items-center justify-center rounded-lg border border-edge bg-surface-base text-fg-muted shadow-surface transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent lg:inline-flex`,"aria-label":h.expandNotesList,title:h.expandNotesList,children:(0,Z.jsx)(Me,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}):null,e?(0,Z.jsx)(wn,{noteId:e,onBack:()=>se(t),onSaved:()=>{Y().catch(e=>{G(`${h.refreshFailed}: ${e instanceof Error?e.message:h.quickCaptureFailedHint}`)})},backButtonClassName:`lg:hidden`,clearHeaderOnCleanup:!1,onOpenSearch:()=>b(!0),autoFocus:e===K,onAutoFocusConsumed:()=>ie(null)}):(0,Z.jsx)(`div`,{className:`flex h-full min-h-0 flex-1 items-center justify-center px-8 text-center`,children:(0,Z.jsxs)(`div`,{className:`max-w-sm`,children:[(0,Z.jsx)(qt,{className:`mx-auto size-9 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`h2`,{className:`mt-4 text-base font-semibold text-fg`,children:h.emptyEditorTitle}),(0,Z.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:h.emptyEditorDescription}),(0,Z.jsxs)(`button`,{type:`button`,onClick:Ie,disabled:U,className:`mt-5 inline-flex items-center gap-2 rounded-lg bg-accent px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0}),U?h.creatingBlankNote:h.createBlankNote]})]})})]}),(0,Z.jsx)(ne,{open:y,onOpenChange:b,children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-24 z-[90] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,Z.jsx)(te,{className:`text-sm font-semibold text-fg`,children:we}),(0,Z.jsx)(L,{className:`sr-only`,children:h.searchPlaceholder}),(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`inline-flex size-8 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":Te,children:(0,Z.jsx)(D,{className:`size-4`,"aria-hidden":!0})})})]}),(0,Z.jsxs)(`div`,{className:`p-4`,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(un,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`input`,{type:`search`,value:x,onChange:e=>S(e.target.value),onKeyDown:qe,placeholder:h.searchPlaceholder,className:`w-full rounded-lg border border-edge bg-surface-base py-2 pl-9 pr-10 text-sm text-fg placeholder:text-fg-muted focus:border-accent focus:outline-none focus:ring-1 focus:ring-accent`}),x?(0,Z.jsx)(`button`,{type:`button`,onClick:()=>S(``),className:`absolute right-2 top-1/2 inline-flex size-7 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":Ee,children:(0,Z.jsx)(D,{className:`size-3.5`,"aria-hidden":!0})}):null]}),(0,Z.jsx)(`div`,{className:`mt-4 max-h-[min(28rem,calc(100vh-14rem))] overflow-y-auto [scrollbar-gutter:stable]`,children:me?ge&&!he?(0,Z.jsx)(`div`,{className:`flex flex-col gap-2`,children:[1,2,3].map(e=>(0,Z.jsx)(`div`,{className:`h-16 animate-pulse rounded-lg bg-surface-hover`},e))}):_e.length===0?(0,Z.jsxs)(`div`,{className:`flex min-h-40 flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,Z.jsx)(qt,{className:`size-7 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:h.searchNoResults}),(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:h.searchNoResultsDescription})]}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`p`,{className:`px-2 pb-1 text-xs text-fg-muted`,children:h.searchResultsCount.replace(`{{count}}`,String(he?.total??_e.length))}),_e.map((e,t)=>{let n=dr[e.kind]||qt,r=fr(e,{imageNote:h.imageNote,noText:h.noText});return(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>Ke(e.id),onMouseEnter:()=>w(t),className:O(`flex w-full items-start gap-3 rounded-lg px-3 py-2.5 text-left transition-colors`,t===C?`bg-surface-active`:`hover:bg-surface-hover`),children:[(0,Z.jsx)(n,{className:`mt-0.5 size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.title||r}),(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:xn(e.updatedAt,oe,Oe)})]}),e.title?(0,Z.jsx)(`span`,{className:`mt-0.5 block line-clamp-2 text-xs leading-5 text-fg-muted`,children:r}):null,e.tags?.length?(0,Z.jsx)(`span`,{className:`mt-1 flex min-w-0 flex-wrap gap-1`,children:e.tags.slice(0,3).map(e=>(0,Z.jsx)(`span`,{className:`max-w-24 truncate rounded-md bg-surface-hover px-1.5 py-0.5 text-xs text-fg-muted`,children:e},e))}):null]})]},e.id)})]}):(0,Z.jsxs)(`div`,{className:`flex min-h-40 flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,Z.jsx)(un,{className:`size-7 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:h.searchEmptyTitle}),(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:h.searchEmptyDescription})]})})]})]})]})})]}):(0,Z.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,Z.jsx)(qt,{className:`size-10 text-fg-muted`}),(0,Z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:h.needToken})]})}function gr(e){return k(N(`/api/projects/${encodeURIComponent(e)}/skills`))}function _r(e,t){return k(N(`/api/projects/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}`))}function vr(e,t){return k(N(`/api/projects/${encodeURIComponent(e)}/workspace-trust`),{method:`PATCH`,body:JSON.stringify({trusted:t})})}function yr(e,t){let n=new FormData;return n.set(`file`,t),k(N(`/api/projects/${encodeURIComponent(e)}/skills/upload`),{method:`POST`,body:n})}function br(e,t,n={}){return k(N(`/api/projects/${encodeURIComponent(e)}/skills/marketplace/install`),{method:`POST`,body:JSON.stringify({name:t,...n})})}function xr(e,t){return k(N(`/api/projects/${encodeURIComponent(e)}/skills/source/install`),{method:`POST`,body:JSON.stringify({source:t})})}function Sr(e,t){return k(N(`/api/projects/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}`),{method:`DELETE`})}function Cr({projectId:e,copy:t}){let[n,r]=(0,X.useState)([]),[i,a]=(0,X.useState)([]),[o,s]=(0,X.useState)([]),[c,d]=(0,X.useState)([]),[f,m]=(0,X.useState)(``),[_,v]=(0,X.useState)(null),[b,x]=(0,X.useState)(!1),[S,C]=(0,X.useState)(!0),[T,k]=(0,X.useState)(!1),[A,j]=(0,X.useState)(null),[M,N]=(0,X.useState)(``),[P,I]=(0,X.useState)(null),[L,B]=(0,X.useState)(null),[V,re]=(0,X.useState)(``),[W,G]=(0,X.useState)(1),[K,ie]=(0,X.useState)(null),[q,ae]=(0,X.useState)(!1),[oe,se]=(0,X.useState)(``),[ce,J]=(0,X.useState)(``),le=(0,X.useRef)(null),Y=(0,X.useCallback)(async()=>{C(!0),N(``);try{let t=await gr(e);r(t.items),a(t.inheritedItems),s(t.sources)}catch(e){N(e instanceof Error?e.message:String(e))}finally{C(!1)}},[e]);(0,X.useEffect)(()=>{Y()},[Y]),(0,X.useEffect)(()=>{let t=!1;return Ee(e).then(e=>{t||d(e)}).catch(()=>{t||d([])}),()=>{t=!0}},[e]),(0,X.useEffect)(()=>{if(!f){v(null);return}let e=c.find(e=>e.key===f),t=!1;return v(null),N(``),x(!0),cn(e?.agentId??e?.routing?.agentId,f,!0).then(e=>{t||v(e)}).catch(e=>{t||N(e instanceof Error?e.message:String(e))}).finally(()=>{t||x(!1)}),()=>{t=!0}},[f,c]),(0,X.useEffect)(()=>{if(P!==`marketplace`)return;let e=new AbortController,t=window.setTimeout(()=>{ae(!0),se(``),jn({q:V,page:W,pageSize:8,sort:`downloads`,signal:e.signal}).then(ie).catch(t=>{e.signal.aborted||se(t instanceof Error?t.message:String(t))}).finally(()=>{e.signal.aborted||ae(!1)})},250);return()=>{window.clearTimeout(t),e.abort()}},[P,W,V]);async function ue(e,t){k(!0),j(t??null),N(``);try{await e(),I(null),J(``),await Y()}catch(e){N(e instanceof Error?e.message:String(e))}finally{k(!1),j(null)}}async function de(t){N(``);try{B((await _r(e,t)).skill)}catch(e){N(e instanceof Error?e.message:String(e))}}async function fe(n){if(n.removable&&window.confirm(t.removeConfirm.replace(`{{name}}`,n.name))){k(!0);try{await Sr(e,n.directoryId),await Y()}catch(e){N(e instanceof Error?e.message:String(e))}finally{k(!1)}}}async function pe(){k(!0),N(``);try{await vr(e,!0),await Y()}catch(e){N(e instanceof Error?e.message:String(e))}finally{k(!1)}}let me=o.find(e=>e.origin===`agents-workspace`),he=new Map(_?.skills.map(e=>[e.name,e]));return(0,Z.jsxs)(`section`,{id:`project-panel-skills`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-skills`,className:`grid content-start gap-4`,children:[(0,Z.jsx)(`div`,{className:`rounded-lg bg-surface-panel p-4 shadow-surface`,children:(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.title}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:t.description})]}),(0,Z.jsxs)(u,{children:[(0,Z.jsx)(p,{asChild:!0,children:(0,Z.jsxs)(H,{type:`button`,children:[(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0}),t.add,(0,Z.jsx)($e,{className:`size-3.5`,"aria-hidden":!0})]})}),(0,Z.jsx)(l,{children:(0,Z.jsxs)(g,{align:`end`,sideOffset:8,className:`z-50 w-72 rounded-lg border border-edge bg-surface-panel p-1.5 shadow-xl`,children:[(0,Z.jsx)(Dr,{icon:bt,title:t.marketplace,hint:t.marketplaceHint,onClick:()=>I(`marketplace`)}),(0,Z.jsx)(Dr,{icon:w,title:t.source,hint:t.sourceHint,onClick:()=>I(`source`)}),(0,Z.jsx)(Dr,{icon:gt,title:t.upload,hint:t.uploadHint,onClick:()=>le.current?.click()})]})})]}),(0,Z.jsx)(`input`,{ref:le,type:`file`,accept:`.zip,application/zip`,className:`hidden`,onChange:t=>{let n=t.target.files?.[0];n&&ue(()=>yr(e,n)),t.target.value=``}})]})}),M?(0,Z.jsx)(`p`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:M}):null,me?.state===`untrusted`?(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Z.jsx)(Jt,{className:`mt-0.5 size-4 shrink-0 text-amber-700 dark:text-amber-300`,"aria-hidden":!0}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.trustTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:t.trustHint})]})]}),(0,Z.jsxs)(H,{type:`button`,variant:`secondary`,disabled:T,onClick:()=>void pe(),children:[(0,Z.jsx)(an,{className:`size-4`,"aria-hidden":!0}),T?t.trusting:t.trustAction]})]}):null,c.length?(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-3 rounded-lg border border-edge bg-surface-panel p-4`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.sessionViewLabel}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:b?t.sessionLoading:f?_?.agentId:t.sessionViewAll})]}),(0,Z.jsx)(h,{value:f,options:c.map(e=>({value:e.key,label:e.name?.trim()||`${t.sessionFallback} · ${e.key.slice(-12)}`})),placeholder:t.sessionViewAll,emptyLabel:t.sessionViewAll,triggerClassName:`w-[min(24rem,calc(100vw-3rem))]`,onChange:m})]}):null,S?(0,Z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:[0,1,2].map(e=>(0,Z.jsx)(U,{className:`h-36 rounded-lg`},e))}):n.length?(0,Z.jsx)(wr,{title:t.localTitle,items:n,copy:t,busy:T,availabilityByName:he,onPreview:de,onRemove:fe}):(0,Z.jsxs)(`div`,{className:`rounded-lg border border-dashed border-edge bg-surface-panel px-6 py-12 text-center`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.empty}),(0,Z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:t.emptyHint})]}),!S&&i.length?(0,Z.jsx)(wr,{title:t.inheritedTitle,hint:t.inheritedHint,items:i,copy:t,busy:T,availabilityByName:he,onPreview:de,onRemove:fe}):null,(0,Z.jsx)(ne,{open:P!==null,onOpenChange:e=>{e||I(null)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-50 bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:O(`xopc-dialog-content fixed left-1/2 top-1/2 z-50 flex -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-xl`,P===`marketplace`?`h-[min(46rem,calc(100vh-2rem))] w-[min(58rem,calc(100vw-2rem))]`:`h-[min(22rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))]`),children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:P===`marketplace`?t.marketplace:t.source}),(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`size-9 p-0`,children:(0,Z.jsx)(D,{className:`size-4`})})})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:P===`marketplace`?(0,Z.jsxs)(`section`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:t.marketplace}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:t.marketplaceHint}),(0,Z.jsxs)(`div`,{className:`relative mt-3`,children:[(0,Z.jsx)(un,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`input`,{className:`h-10 w-full rounded-md border border-edge bg-surface-base pl-9 pr-3 text-sm outline-none focus:border-accent`,value:V,onChange:e=>{re(e.target.value),G(1)},placeholder:t.marketplacePlaceholder,autoFocus:!0})]}),oe?(0,Z.jsx)(`p`,{className:`mt-3 text-sm text-red-600 dark:text-red-300`,children:oe}):null,q&&!K?(0,Z.jsx)(`div`,{className:`mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[0,1,2,3].map(e=>(0,Z.jsx)(U,{className:`h-32 rounded-lg`},e))}):K?.items.length?(0,Z.jsx)(`div`,{className:`mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2`,children:K.items.map(r=>{let i=r.providerId??K.provider,a=An(r,i),o=n.some(e=>e.origin===`xopc-workspace`&&(e.directoryId===r.id||e.directoryId===a||e.name===r.name)),s=A===a;return(0,Z.jsxs)(`article`,{className:`group flex min-h-32 gap-3 rounded-lg border border-edge bg-surface-base p-3`,children:[(0,Z.jsx)(Mn,{name:r.name,className:`size-10`}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Z.jsx)(`h4`,{className:`truncate text-sm font-semibold text-fg`,children:r.name}),(0,Z.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:r.description||`—`}),(0,Z.jsxs)(`div`,{className:`mt-auto flex items-end justify-between gap-2 pt-2`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-fg-subtle`,children:[(0,Z.jsx)(y,{className:`size-3.5`,"aria-hidden":!0}),t.marketplaceDownloads,` `,r.downloads]}),(0,Z.jsx)(H,{type:`button`,className:`h-8 px-2.5 text-xs`,variant:o?`secondary`:`primary`,disabled:T||o,onClick:()=>void ue(()=>br(e,a,{provider:i}),a),children:o?t.marketplaceInstalled:s?t.installing:t.install})]})]})]},`${i??`default`}:${r.id}`)})}):q?null:(0,Z.jsx)(`p`,{className:`mt-6 text-center text-sm text-fg-muted`,children:t.marketplaceEmpty}),K&&K.meta.totalPages>1?(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center justify-between border-t border-edge-subtle pt-3`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t.marketplacePage.replace(`{{page}}`,String(K.meta.page)).replace(`{{total}}`,String(K.meta.totalPages))}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,disabled:q||W<=1,onClick:()=>G(e=>Math.max(1,e-1)),children:[(0,Z.jsx)(pn,{className:`size-4`}),t.marketplacePrevious]}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,disabled:q||W>=K.meta.totalPages,onClick:()=>G(e=>e+1),children:[t.marketplaceNext,(0,Z.jsx)(wt,{className:`size-4`})]})]})]}):null]}):(0,Z.jsxs)(`section`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:t.sourceHint}),(0,Z.jsx)(`input`,{className:`mt-4 h-10 w-full rounded-md border border-edge bg-surface-base px-3 text-sm outline-none focus:border-accent`,value:ce,onChange:e=>J(e.target.value),placeholder:t.sourcePlaceholder,autoFocus:!0}),(0,Z.jsxs)(`div`,{className:`mt-auto flex justify-end gap-2 border-t border-edge pt-4`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`secondary`,children:t.close})}),(0,Z.jsx)(H,{type:`button`,disabled:T||!ce.trim(),onClick:()=>void ue(()=>xr(e,ce.trim())),children:T?t.installing:t.install})]})]})})]})]})}),(0,Z.jsx)(ne,{open:!!L,onOpenChange:e=>{e||B(null)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-50 bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-50 flex h-[min(42rem,calc(100vh-2rem))] w-[min(48rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-xl`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:L?.name}),(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`size-9 p-0`,children:(0,Z.jsx)(D,{className:`size-4`})})})]}),(0,Z.jsx)(`pre`,{className:`min-h-0 flex-1 overflow-auto whitespace-pre-wrap p-5 text-sm leading-6 text-fg-muted`,children:L?.bodyMarkdown})]})]})})]})}function wr(e){let t=(0,Bn.c)(25),{title:n,hint:r,items:i,copy:a,busy:o,availabilityByName:s,onPreview:c,onRemove:l}=e,u;t[0]===n?u=t[1]:(u=(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n}),t[0]=n,t[1]=u);let d;t[2]===r?d=t[3]:(d=r?(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:r}):null,t[2]=r,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,Z.jsxs)(`div`,{children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p;if(t[7]!==s||t[8]!==o||t[9]!==a||t[10]!==i||t[11]!==c||t[12]!==l){let e;t[14]!==s||t[15]!==o||t[16]!==a||t[17]!==c||t[18]!==l?(e=e=>{let t=e.effective?s.get(e.name):void 0;return(0,Z.jsxs)(`article`,{className:O(`flex min-h-36 flex-col rounded-lg border border-edge bg-surface-panel p-4`,!e.effective&&`opacity-70`),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(Te,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),(0,Z.jsx)(`h4`,{className:`min-w-0 truncate text-sm font-semibold text-fg`,children:e.name})]}),(0,Z.jsx)(`p`,{className:`mt-2 line-clamp-2 flex-1 text-sm leading-5 text-fg-muted`,children:e.description||e.directoryId}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5 text-[11px] text-fg-subtle`,children:[(0,Z.jsx)(`span`,{className:`rounded-md bg-surface-hover/70 px-2 py-0.5`,children:Tr(a,e.origin)}),e.writable?null:(0,Z.jsx)(`span`,{className:`rounded-md bg-surface-hover/70 px-2 py-0.5`,children:a.sourceReadOnly}),e.effective?null:(0,Z.jsx)(`span`,{className:`rounded-md bg-amber-500/10 px-2 py-0.5 text-amber-800 dark:text-amber-200`,children:a.shadowed}),t?(0,Z.jsx)(`span`,{className:O(`rounded-md px-2 py-0.5`,t.availableForCurrentAgent?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:`bg-amber-500/10 text-amber-800 dark:text-amber-200`),children:Er(a,t)}):null]}),(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center justify-between gap-2`,children:[(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,onClick:()=>void c(e.key),children:[(0,Z.jsx)(b,{className:`size-3.5`,"aria-hidden":!0}),a.view]}),e.removable?(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs text-red-600`,disabled:o,onClick:()=>void l(e),children:[(0,Z.jsx)(G,{className:`size-3.5`,"aria-hidden":!0}),a.remove]}):null]})]},e.key)},t[14]=s,t[15]=o,t[16]=a,t[17]=c,t[18]=l,t[19]=e):e=t[19],p=i.map(e),t[7]=s,t[8]=o,t[9]=a,t[10]=i,t[11]=c,t[12]=l,t[13]=p}else p=t[13];let m;t[20]===p?m=t[21]:(m=(0,Z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:p}),t[20]=p,t[21]=m);let h;return t[22]!==f||t[23]!==m?(h=(0,Z.jsxs)(`section`,{className:`grid gap-3`,children:[f,m]}),t[22]=f,t[23]=m,t[24]=h):h=t[24],h}function Tr(e,t){switch(t){case`xopc-workspace`:return e.xopcSource;case`agents-workspace`:return e.agentsSource;case`xopc-global`:case`custom-global`:return e.globalXopcSource;case`agents-global`:return e.globalAgentsSource;case`bundled`:return e.bundledSource;case`extra`:return e.extraSource}}function Er(e,t){if(t.availableForCurrentAgent)return e.sessionAvailable;switch(t.unavailableReason){case`agent-denied`:return e.sessionUnavailableAgent;case`disabled`:return e.sessionUnavailableDisabled;case`requirements-unmet`:return e.sessionUnavailableRequirements;case`model-invocation-disabled`:return e.sessionUnavailableModel;case`tool-gated`:return e.sessionUnavailableTools;default:return e.sessionUnavailableAgent}}function Dr(e){let t=(0,Bn.c)(13),{icon:n,title:r,hint:i,onClick:a}=e,o;t[0]===n?o=t[1]:(o=(0,Z.jsx)(n,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:r}),t[2]=r,t[3]=s);let c;t[4]===i?c=t[5]:(c=(0,Z.jsx)(`span`,{className:`mt-0.5 block text-xs leading-5 text-fg-muted`,children:i}),t[4]=i,t[5]=c);let l;t[6]!==s||t[7]!==c?(l=(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[s,c]}),t[6]=s,t[7]=c,t[8]=l):l=t[8];let u;return t[9]!==a||t[10]!==o||t[11]!==l?(u=(0,Z.jsx)(d,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`flex w-full items-start gap-3 rounded-md px-3 py-2.5 text-left hover:bg-surface-hover`,onClick:a,children:[o,l]})}),t[9]=a,t[10]=o,t[11]=l,t[12]=u):u=t[12],u}var Or={active:0,review:1,ready:2,backlog:3,closed:4},kr={blocked:0,waiting:1,verifying:2,running:3,queued:4,idle:5},Ar={critical:0,high:1,normal:2,low:3};function jr(e,t=4){return e.filter(e=>e.phase!==`closed`&&!(e.operationalState===`waiting`&&e.attention.length===0)).sort((e,t)=>{let n=Number(t.attention.length>0)-Number(e.attention.length>0);if(n!==0)return n;let r=kr[e.operationalState]-kr[t.operationalState];if(r!==0)return r;let i=Or[e.phase]-Or[t.phase];if(i!==0)return i;let a=Ar[e.priority]-Ar[t.priority];return a===0?t.updatedAt-e.updatedAt:a}).slice(0,t)}var Mr=[`backlog`,`ready`,`active`,`review`,`closed`];function Nr(e){return{backlog:e.filter(e=>e.phase===`backlog`),ready:e.filter(e=>e.phase===`ready`),active:e.filter(e=>e.phase===`active`),review:e.filter(e=>e.phase===`review`),closed:e.filter(e=>e.phase===`closed`)}}function Pr(e,t){if(e.phase!==t){if(e.phase===`closed`&&t!==`closed`&&e.allowedCommands.includes(`reopen`))return`reopen_${t}`;if(t===`closed`&&e.phase===`review`&&e.allowedCommands.includes(`close`))return`complete`;if(t!==`closed`&&e.allowedCommands.includes(`move`))return`move_${t}`}}function Fr(e){if(e.allowedCommands.includes(`resolve_wait`))return`resume`;if(e.allowedCommands.includes(`mark_ready`))return`ready`;if(e.allowedCommands.includes(`start`))return`run`;if(e.allowedCommands.includes(`request_review`))return`review`;if(e.phase===`review`&&e.allowedCommands.includes(`close`))return`complete`;if(e.allowedCommands.includes(`reopen`))return`reopen`;if(e.allowedCommands.includes(`add_wait`))return`pause`}function Ir(e){let t=new Map,n=new Map;for(let r of e)t.set(r.dependencyTaskId,[...t.get(r.dependencyTaskId)??[],r.dependentTaskId]),n.set(r.dependentTaskId,[...n.get(r.dependentTaskId)??[],r.dependencyTaskId]);return{outgoing:t,incoming:n}}function Lr(e,t){let n=new Set(e.map(e=>e.id)),{outgoing:r,incoming:i}=Ir(t.filter(e=>n.has(e.dependencyTaskId)&&n.has(e.dependentTaskId))),a=new Map(e.map(e=>[e.id,i.get(e.id)?.length??0])),o=new Map(e.map(e=>[e.id,0])),s=e.filter(e=>a.get(e.id)===0).sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id);for(let e=0;e<s.length;e+=1){let t=s[e];for(let e of r.get(t)??[]){o.set(e,Math.max(o.get(e)??0,(o.get(t)??0)+1));let n=(a.get(e)??1)-1;a.set(e,n),n===0&&s.push(e)}}let c=new Map;for(let t of e){let e=o.get(t.id)??0;c.set(e,[...c.get(e)??[],t.id])}let l=new Map;for(let[e,t]of c)t.forEach((t,n)=>l.set(t,{x:e*300,y:n*136}));return l}function Rr(e,t){let{incoming:n}=Ir(t),r=new Set(e.filter(e=>e.operationalState===`blocked`).map(e=>e.id)),i=[...r];for(let e=0;e<i.length;e+=1)for(let t of n.get(i[e])??[])r.has(t)||(r.add(t),i.push(t));return r}function zr(e,t){let{incoming:n,outgoing:r}=Ir(t),i=new Set([e]);for(let t of[n,r]){let n=[e],r=new Set(n);for(let e=0;e<n.length;e+=1)for(let a of t.get(n[e])??[])r.has(a)||(r.add(a),i.add(a),n.push(a))}return i}var Br={backlog:`border-edge`,ready:`border-edge`,active:`border-accent ring-2 ring-accent/15`,review:`border-amber-400/80`,closed:`border-emerald-400/60`};function Vr(e){let t=(0,Bn.c)(25),{data:n,selected:r}=e,i=n.task,a=i.operationalState===`waiting`||i.operationalState===`blocked`,o=Br[i.phase],s=r&&`ring-2 ring-accent/30`,c=n.dimmed&&`opacity-30`,l;t[0]!==o||t[1]!==s||t[2]!==c?(l=O(`group w-56 rounded-xl border bg-surface-panel p-3 shadow-surface transition-opacity`,o,s,c),t[0]=o,t[1]=s,t[2]=c,t[3]=l):l=t[3];let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Z.jsx)(Rn,{type:`target`,position:Fn.Left,className:`!size-3 !border-2 !border-surface-panel !bg-accent opacity-60 transition-opacity group-hover:opacity-100`}),t[4]=u):u=t[4];let d;t[5]===i.title?d=t[6]:(d=(0,Z.jsx)(`strong`,{className:`line-clamp-2 min-w-0 text-sm font-medium leading-5 text-fg`,children:i.title}),t[5]=i.title,t[6]=d);let f;t[7]===a?f=t[8]:(f=a?(0,Z.jsx)(ie,{className:`mt-0.5 size-3.5 shrink-0 text-violet-600 dark:text-violet-300`,"aria-hidden":!0}):null,t[7]=a,t[8]=f);let p;t[9]!==d||t[10]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[d,f]}),t[9]=d,t[10]=f,t[11]=p):p=t[11];let m;t[12]===n.phaseLabel?m=t[13]:(m=(0,Z.jsx)(`span`,{children:n.phaseLabel}),t[12]=n.phaseLabel,t[13]=m);let h;t[14]!==a||t[15]!==i.blockedBy?(h=a&&i.blockedBy.length>0?(0,Z.jsx)(`span`,{children:i.blockedBy.length}):null,t[14]=a,t[15]=i.blockedBy,t[16]=h):h=t[16];let g;t[17]!==h||t[18]!==m?(g=(0,Z.jsxs)(`div`,{className:`mt-2 flex items-center justify-between gap-2 text-[11px] text-fg-subtle`,children:[m,h]}),t[17]=h,t[18]=m,t[19]=g):g=t[19];let _;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsx)(Rn,{type:`source`,position:Fn.Right,className:`!size-3 !border-2 !border-surface-panel !bg-accent opacity-60 transition-opacity group-hover:opacity-100`}),t[20]=_):_=t[20];let v;return t[21]!==g||t[22]!==l||t[23]!==p?(v=(0,Z.jsxs)(`div`,{className:l,children:[u,p,g,_]}),t[21]=g,t[22]=l,t[23]=p,t[24]=v):v=t[24],v}var Hr={taskNode:Vr};function Ur(e){let t=(0,Bn.c)(90),{tasks:n,dependencyEdges:r,returnTo:i,copy:a,onDependenciesChange:o}=e,[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(),[m,h]=(0,X.useState)(),g=(0,X.useRef)(null),_;t[0]!==r||t[1]!==n?(_=Rr(n,r),t[0]=r,t[1]=n,t[2]=_):_=t[2];let v=_,y;t[3]!==v||t[4]!==u||t[5]!==c||t[6]!==n?(y=u?n.filter(e=>v.has(e.id)):c?n:n.filter(Zr),t[3]=v,t[4]=u,t[5]=c,t[6]=n,t[7]=y):y=t[7];let x=y,S;t[8]===x?S=t[9]:(S=new Set(x.map(Xr)),t[8]=x,t[9]=S);let C=S,w;if(t[10]!==r||t[11]!==C){let e;t[13]===C?e=t[14]:(e=e=>C.has(e.dependencyTaskId)&&C.has(e.dependentTaskId),t[13]=C,t[14]=e),w=r.filter(e),t[10]=r,t[11]=C,t[12]=w}else w=t[12];let T=w,E;t[15]!==T||t[16]!==x?(E=Lr(x,T),t[15]=T,t[16]=x,t[17]=E):E=t[17];let D=E,k;t[18]!==f||t[19]!==T?(k=f?zr(f,T):void 0,t[18]=f,t[19]=T,t[20]=k):k=t[20];let A=k,j;t[21]===f?j=t[22]:(j=e=>e.id===f,t[21]=f,t[22]=j);let M=x.find(j),N;t[23]===x?N=t[24]:(N=new Map(x.map(Yr)),t[23]=x,t[24]=N);let P=N,F;if(t[25]!==a.phases||t[26]!==D||t[27]!==A||t[28]!==x){let e;t[30]!==a.phases||t[31]!==D||t[32]!==A?(e=e=>({id:e.id,type:`taskNode`,position:D.get(e.id)??{x:0,y:0},data:{task:e,phaseLabel:a.phases[e.phase],dimmed:!!(A&&!A.has(e.id))}}),t[30]=a.phases,t[31]=D,t[32]=A,t[33]=e):e=t[33],F=x.map(e),t[25]=a.phases,t[26]=D,t[27]=A,t[28]=x,t[29]=F}else F=t[29];let I=F,L;if(t[34]!==A||t[35]!==P||t[36]!==T){let e;t[38]!==A||t[39]!==P?(e=e=>{let t=P.get(e.dependencyTaskId),n=t?.phase===`closed`&&t.resolution===`done`,r=!!(A&&(!A.has(e.dependencyTaskId)||!A.has(e.dependentTaskId)));return{id:`${e.dependencyTaskId}:${e.dependentTaskId}`,source:e.dependencyTaskId,target:e.dependentTaskId,markerEnd:{type:Pn.ArrowClosed},style:{stroke:n?`var(--color-edge-strong)`:`var(--color-accent)`,strokeWidth:n?1.25:1.75,opacity:r?.18:1,strokeDasharray:n?`5 5`:void 0}}},t[38]=A,t[39]=P,t[40]=e):e=t[40],L=T.map(e),t[34]=A,t[35]=P,t[36]=T,t[37]=L}else L=t[37];let R=L,z,ee;t[41]!==f||t[42]!==C?(z=()=>{f&&!C.has(f)&&p(void 0)},ee=[f,C],t[41]=f,t[42]=C,t[43]=z,t[44]=ee):(z=t[43],ee=t[44]),(0,X.useEffect)(z,ee);let te,ne;t[45]!==R||t[46]!==m?(te=()=>{m&&!R.some(e=>e.id===m)&&h(void 0)},ne=[R,m],t[45]=R,t[46]=m,t[47]=te,t[48]=ne):(te=t[47],ne=t[48]),(0,X.useEffect)(te,ne);let B;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(B=()=>{let e=window.requestAnimationFrame(()=>{g.current?.fitView({padding:.2,minZoom:.35,maxZoom:1,duration:250})});return()=>window.cancelAnimationFrame(e)},t[49]=B):B=t[49];let V;t[50]!==u||t[51]!==c||t[52]!==x.length?(V=[u,c,x.length],t[50]=u,t[51]=c,t[52]=x.length,t[53]=V):V=t[53],(0,X.useEffect)(B,V);let U;t[54]===f?U=t[55]:(U=()=>{f&&g.current?.fitView({nodes:[{id:f}],padding:1.5,minZoom:.7,maxZoom:1,duration:250})},t[54]=f,t[55]=U);let re=U,W;t[56]!==r||t[57]!==o?(W=e=>{if(!e.source||!e.target||e.source===e.target)return;let t=r.filter(t=>t.dependentTaskId===e.target).map(Jr);t.includes(e.source)||o(e.target,[...t,e.source])},t[56]=r,t[57]=o,t[58]=W):W=t[58];let G=W,K;t[59]!==r||t[60]!==o||t[61]!==m?(K=()=>{if(!m)return;let e=r.find(e=>`${e.dependencyTaskId}:${e.dependentTaskId}`===m);e&&(h(void 0),o(e.dependentTaskId,r.filter(t=>t.dependentTaskId===e.dependentTaskId&&t.dependencyTaskId!==e.dependencyTaskId).map(qr)))},t[59]=r,t[60]=o,t[61]=m,t[62]=K):K=t[62];let ie=K,q;t[63]===a.connectHint?q=t[64]:(q=(0,Z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:a.connectHint}),t[63]=a.connectHint,t[64]=q);let ae=u?`secondary`:`ghost`,oe;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>d(Kr),t[65]=oe):oe=t[65];let se=u?a.allTasks:a.blockedChains,ce;t[66]!==u||t[67]!==ae||t[68]!==se?(ce=(0,Z.jsx)(H,{type:`button`,variant:ae,className:`h-8 rounded-lg px-2.5 text-xs`,"aria-pressed":u,onClick:oe,children:se}),t[66]=u,t[67]=ae,t[68]=se,t[69]=ce):ce=t[69];let J;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>l(Gr),t[70]=J):J=t[70];let le=c?a.hideCompleted:a.showCompleted,Y;t[71]!==u||t[72]!==c||t[73]!==le?(Y=(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs`,"aria-pressed":c,onClick:J,disabled:u,children:le}),t[71]=u,t[72]=c,t[73]=le,t[74]=Y):Y=t[74];let ue=M?(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs`,onClick:re,children:[(0,Z.jsx)(it,{className:`size-3.5`,"aria-hidden":!0}),a.locateTask]}):null,de;t[75]!==a.removeDependency||t[76]!==ie||t[77]!==m?(de=m?(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs text-danger`,onClick:ie,children:a.removeDependency}):null,t[75]=a.removeDependency,t[76]=ie,t[77]=m,t[78]=de):de=t[78];let fe;t[79]!==ce||t[80]!==Y||t[81]!==ue||t[82]!==de?(fe=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[ce,Y,ue,de]}),t[79]=ce,t[80]=Y,t[81]=ue,t[82]=de,t[83]=fe):fe=t[83];let pe;t[84]!==q||t[85]!==fe?(pe=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-b border-edge bg-surface-panel px-3 py-2.5`,children:[q,fe]}),t[84]=q,t[85]=fe,t[86]=pe):pe=t[86];let me=x.length>0?(0,Z.jsxs)(`div`,{className:O(`grid h-[min(42rem,calc(100vh-14rem))] min-h-[28rem]`,M&&`lg:grid-cols-[minmax(0,1fr)_18rem]`),children:[(0,Z.jsxs)(Ln,{nodes:I,edges:R,nodeTypes:Hr,nodesDraggable:!1,nodesConnectable:!0,elementsSelectable:!0,onNodeClick:(e,t)=>p(t.id),onEdgeClick:(e,t)=>h(t.id),onConnect:G,onPaneClick:()=>{p(void 0),h(void 0)},onInit:e=>{g.current=e},fitView:!0,minZoom:.25,maxZoom:1.25,panOnScroll:!0,zoomOnDoubleClick:!1,proOptions:{hideAttribution:!0},children:[(0,Z.jsx)(zn,{color:`var(--color-edge)`,gap:22,size:1}),(0,Z.jsx)(In,{showInteractive:!1,className:`!border-edge !bg-surface-panel !shadow-surface`})]}),M?(0,Z.jsxs)(`aside`,{className:`overflow-y-auto border-t border-edge bg-surface-panel p-4 lg:border-l lg:border-t-0`,children:[(0,Z.jsx)(`p`,{className:`text-xs font-medium text-accent-fg`,children:a.phases[M.phase]}),(0,Z.jsx)(`h3`,{className:`mt-2 text-sm font-semibold leading-6 text-fg`,children:M.title}),M.operationalState===`blocked`&&M.blockedBy.length>0?(0,Z.jsxs)(`div`,{className:`mt-4 rounded-lg bg-violet-500/8 p-3`,children:[(0,Z.jsx)(`p`,{className:`text-xs font-medium text-violet-700 dark:text-violet-300`,children:a.blockedBy.replace(`{{count}}`,String(M.blockedBy.length))}),(0,Z.jsx)(`ul`,{className:`mt-2 space-y-1 text-xs leading-5 text-fg-muted`,children:M.blockedBy.map(Wr)})]}):null,(0,Z.jsxs)(s,{to:De(i,M.id),className:`mt-4 inline-flex items-center gap-1.5 text-xs font-medium text-accent-fg hover:underline`,children:[(0,Z.jsx)(b,{className:`size-3.5`,"aria-hidden":!0}),a.openTask]})]}):null]}):(0,Z.jsx)(`div`,{className:`flex min-h-72 items-center justify-center px-6 text-center text-sm text-fg-muted`,children:a.empty}),he;return t[87]!==pe||t[88]!==me?(he=(0,Z.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-edge bg-surface-base/40`,children:[pe,me]}),t[87]=pe,t[88]=me,t[89]=he):he=t[89],he}function Wr(e){return(0,Z.jsx)(`li`,{children:e.title},e.id)}function Gr(e){return!e}function Kr(e){return!e}function qr(e){return e.dependencyTaskId}function Jr(e){return e.dependencyTaskId}function Yr(e){return[e.id,e]}function Xr(e){return e.id}function Zr(e){return e.phase!==`closed`}function Qr({policy:e,copy:t,onSave:n}){let[r,i]=(0,X.useState)(!1),[a,o]=(0,X.useState)(e.mode),[s,c]=(0,X.useState)(Math.round(e.confidenceThreshold*100)),[l,u]=(0,X.useState)(!!e.quietHours),[d,p]=(0,X.useState)(e.quietHours?.startHour??22),[h,g]=(0,X.useState)(e.quietHours?.endHour??8),[_,v]=(0,X.useState)(e.quietHours?.timezone??Intl.DateTimeFormat().resolvedOptions().timeZone),[y,b]=(0,X.useState)(e.allowedActions.includes(`create_project_task`)),[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)();(0,X.useEffect)(()=>{o(e.mode),c(Math.round(e.confidenceThreshold*100)),u(!!e.quietHours),p(e.quietHours?.startHour??22),g(e.quietHours?.endHour??8),v(e.quietHours?.timezone??Intl.DateTimeFormat().resolvedOptions().timeZone),b(e.allowedActions.includes(`create_project_task`))},[e]);let T=async()=>{S(!0),w(void 0);try{await n({mode:a,confidenceThreshold:s/100,quietHours:l?{startHour:d,endHour:h,timezone:_}:null,allowedActions:y?[`create_project_task`]:[]}),i(!1)}catch(e){w(e instanceof Error?e.message:t.saveFailed)}finally{S(!1)}};return(0,Z.jsxs)(ne,{open:r,onOpenChange:e=>{x||i(e)},children:[(0,Z.jsx)(I,{asChild:!0,children:(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-9 gap-2 px-2.5 text-xs`,children:[(0,Z.jsx)(fn,{className:`size-3.5`,"aria-hidden":!0}),t.modes[e.mode]]})}),(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(36rem,calc(100vh-2rem))] w-[min(34rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge px-5 py-4`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:t.title}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:t.description})]}),(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`size-9 p-0`,disabled:x,children:(0,Z.jsx)(D,{className:`size-4`,"aria-hidden":!0})})})]}),(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-4`,children:[(0,Z.jsxs)(`label`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:t.mode}),(0,Z.jsx)(f,{value:a,onChange:e=>o(e.target.value),children:Object.entries(t.modes).map(([e,t])=>(0,Z.jsx)(m,{value:e,children:t},e))})]}),(0,Z.jsxs)(`label`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsxs)(`span`,{className:`font-medium text-fg-muted`,children:[t.confidence,` · `,s,`%`]}),(0,Z.jsx)(`input`,{type:`range`,min:`50`,max:`100`,step:`5`,value:s,onChange:e=>c(Number(e.target.value)),className:`accent-accent`})]}),(0,Z.jsxs)(`div`,{className:`rounded-lg border border-edge p-3`,children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),t.quietHours]}),l?(0,Z.jsxs)(`div`,{className:`mt-3 grid grid-cols-2 gap-3`,children:[(0,Z.jsxs)(`label`,{className:`grid gap-1 text-xs text-fg-muted`,children:[t.quietStart,(0,Z.jsx)(`input`,{type:`number`,min:`0`,max:`23`,value:d,onChange:e=>p(Number(e.target.value)),className:`rounded-lg border border-edge bg-surface-base px-3 py-2 text-fg`})]}),(0,Z.jsxs)(`label`,{className:`grid gap-1 text-xs text-fg-muted`,children:[t.quietEnd,(0,Z.jsx)(`input`,{type:`number`,min:`0`,max:`23`,value:h,onChange:e=>g(Number(e.target.value)),className:`rounded-lg border border-edge bg-surface-base px-3 py-2 text-fg`})]}),(0,Z.jsxs)(`label`,{className:`col-span-2 grid gap-1 text-xs text-fg-muted`,children:[t.timezone,(0,Z.jsx)(`input`,{value:_,onChange:e=>v(e.target.value),className:`rounded-lg border border-edge bg-surface-base px-3 py-2 text-fg`})]})]}):null]}),(0,Z.jsxs)(`label`,{className:`flex items-start gap-3 rounded-lg border border-edge p-3`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:y,onChange:e=>b(e.target.checked)}),(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:t.allowTaskCreation}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:t.allowTaskCreationDescription})]})]})]}),(0,Z.jsxs)(`div`,{className:`shrink-0 border-t border-edge px-5 py-3`,children:[C?(0,Z.jsx)(`p`,{className:`mb-2 text-xs text-danger`,children:C}):null,(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,disabled:x,children:t.cancel})}),(0,Z.jsx)(H,{type:`button`,variant:`primary`,disabled:x||!_.trim()||d<0||d>23||h<0||h>23,onClick:()=>void T(),children:x?t.saving:t.save})]})]})]})]})]})}function $r(e){return e instanceof Element?!!e.closest(`a,button,input,select,textarea,[contenteditable="true"],[draggable="true"],[data-board-pan-skip="true"]`):!0}var ei={backlog:yt,ready:yt,active:Zt,review:nn,closed:_},ti={backlog:`bg-surface-hover text-fg-muted`,ready:`bg-surface-panel text-fg-muted`,active:`bg-accent-soft text-accent-fg`,review:`bg-amber-500/10 text-amber-700 dark:text-amber-300`,closed:`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`};function ni(e){return e===`running`||e===`queued`?`border-accent/20 bg-accent-soft text-accent-fg`:e===`verifying`?`border-emerald-500/20 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`waiting`?`border-amber-500/20 bg-amber-500/10 text-amber-700 dark:text-amber-300`:e===`blocked`?`border-violet-500/20 bg-violet-500/10 text-violet-700 dark:text-violet-300`:`border-edge-subtle bg-surface-hover text-fg-muted`}function ri(e){return e===`passed`?`border-emerald-500/20 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`failed`?`border-red-500/20 bg-red-500/10 text-red-700 dark:text-red-300`:`border-edge-subtle bg-surface-hover text-fg-muted`}function ii(e){let t=(0,Bn.c)(83),{task:n,returnTo:r,copy:i,busy:a,onAction:o,onDragStart:c,onDropBefore:l}=e,u,d,f,p,m,h,g,v,y,b,x,S,C,w,T,E;t[0]!==c||t[1]!==l||t[2]!==r||t[3]!==n?(m=Fr(n),h=m!==`review`&&n.allowedCommands.includes(`request_review`)?`review`:void 0,f=n.phase===`closed`,p=!!(n.dueAt&&n.dueAt<Date.now()&&!f),d=f?_:jt,v=n.priority!==`normal`,g=v||n.operationalState!==`idle`||!!n.latestVerification||n.acceptanceCriteriaCount>0||!!n.dueAt||!!n.nextCheckAt,x=!0,t[20]!==c||t[21]!==n.id?(S=e=>{e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,n.id),c(n.id)},t[20]=c,t[21]=n.id,t[22]=S):S=t[22],t[23]===c?C=t[24]:(C=()=>c(``),t[23]=c,t[24]=C),w=oi,t[25]!==l||t[26]!==n.id?(T=e=>{e.preventDefault(),e.stopPropagation(),l(n.id)},t[25]=l,t[26]=n.id,t[27]=T):T=t[27],E=`group relative min-h-max min-w-0 shrink-0 overflow-hidden rounded-xl border border-edge-subtle bg-surface-base shadow-surface transition-[border-color,box-shadow] hover:border-edge focus-within:border-accent/40`,u=s,t[28]!==r||t[29]!==n.id?(y=De(r,n.id),t[28]=r,t[29]=n.id,t[30]=y):y=t[30],b=O(`block min-w-0 p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,h?`pr-19`:m&&`pr-11`),t[0]=c,t[1]=l,t[2]=r,t[3]=n,t[4]=u,t[5]=d,t[6]=f,t[7]=p,t[8]=m,t[9]=h,t[10]=g,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E):(u=t[4],d=t[5],f=t[6],p=t[7],m=t[8],h=t[9],g=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19]);let D=f?`text-emerald-600 dark:text-emerald-400`:`text-fg-subtle`,k;t[31]===D?k=t[32]:(k=O(`mt-0.5 size-4 shrink-0`,D),t[31]=D,t[32]=k);let A;t[33]!==d||t[34]!==k?(A=(0,Z.jsx)(d,{className:k,"aria-hidden":!0}),t[33]=d,t[34]=k,t[35]=A):A=t[35];let j=f?`text-fg-subtle`:`text-fg`,M;t[36]===j?M=t[37]:(M=O(`min-w-0 break-words text-sm font-semibold leading-5`,j),t[36]=j,t[37]=M);let N;t[38]!==M||t[39]!==n.title?(N=(0,Z.jsx)(`h3`,{className:M,children:n.title}),t[38]=M,t[39]=n.title,t[40]=N):N=t[40];let P;t[41]!==A||t[42]!==N?(P=(0,Z.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[A,N]}),t[41]=A,t[42]=N,t[43]=P):P=t[43];let F;t[44]!==i||t[45]!==n.attention||t[46]!==n.blockedBy||t[47]!==n.operationalState?(F=n.operationalState===`blocked`&&n.blockedBy.length>0?(0,Z.jsxs)(`div`,{className:`ml-6.5 mt-2.5 rounded-lg bg-violet-500/8 px-2.5 py-2 text-xs text-violet-700 dark:text-violet-300`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-medium`,children:[(0,Z.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0}),i.blockedBy.replace(`{{count}}`,String(n.blockedBy.length))]}),(0,Z.jsx)(`p`,{className:`mt-1 line-clamp-2 leading-5 text-fg-muted`,children:n.blockedBy.map(ai).join(`、`)})]}):n.attention[0]?(0,Z.jsxs)(`p`,{className:`ml-6.5 mt-2.5 flex items-start gap-1.5 text-xs leading-5 text-fg-muted`,children:[(0,Z.jsx)(hn,{className:`mt-0.5 size-3.5 shrink-0 text-amber-600 dark:text-amber-400`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`line-clamp-2`,children:n.attention[0].summary})]}):null,t[44]=i,t[45]=n.attention,t[46]=n.blockedBy,t[47]=n.operationalState,t[48]=F):F=t[48];let I;t[49]!==i||t[50]!==p||t[51]!==g||t[52]!==v||t[53]!==n.acceptanceCriteriaCount||t[54]!==n.dueAt||t[55]!==n.latestVerification||t[56]!==n.nextCheckAt||t[57]!==n.operationalState||t[58]!==n.priority?(I=g?(0,Z.jsxs)(`div`,{className:`ml-6.5 mt-2.5 flex flex-wrap items-center gap-1.5 text-[11px]`,children:[v?(0,Z.jsx)(`span`,{className:O(`inline-flex min-h-6 items-center rounded-md border px-2 font-medium`,n.priority===`critical`?`border-red-500/20 bg-red-500/10 text-red-700 dark:text-red-300`:n.priority===`high`?`border-amber-500/20 bg-amber-500/10 text-amber-700 dark:text-amber-300`:`border-edge-subtle bg-surface-hover text-fg-muted`),children:i.priorityOptions[n.priority]}):null,n.operationalState===`idle`?null:(0,Z.jsx)(`span`,{className:O(`inline-flex min-h-6 items-center rounded-md border px-2 font-medium`,ni(n.operationalState)),children:i.operationalStates[n.operationalState]}),n.latestVerification?(0,Z.jsx)(`span`,{className:O(`inline-flex min-h-6 items-center rounded-md border px-2 font-medium`,ri(n.latestVerification)),children:i.verification[n.latestVerification]}):null,n.acceptanceCriteriaCount>0?(0,Z.jsxs)(`span`,{className:`inline-flex min-h-6 items-center gap-1 rounded-md border border-edge-subtle bg-surface-hover px-2 text-fg-muted`,children:[(0,Z.jsx)(Zt,{className:`size-3`,"aria-hidden":!0}),i.acceptanceCriteria.replace(`{{count}}`,String(n.acceptanceCriteriaCount))]}):null,n.dueAt?(0,Z.jsxs)(`span`,{className:O(`inline-flex min-h-6 items-center gap-1 rounded-md border px-2`,p?`border-red-500/20 bg-red-500/10 text-red-700 dark:text-red-300`:`border-edge-subtle bg-surface-hover text-fg-muted`),children:[(0,Z.jsx)(dn,{className:`size-3`,"aria-hidden":!0}),Ce(new Date(n.dueAt))]}):null,n.nextCheckAt?(0,Z.jsxs)(`span`,{className:`inline-flex min-h-6 items-center gap-1 rounded-md border border-accent/20 bg-accent-soft px-2 text-accent-fg`,children:[(0,Z.jsx)(dn,{className:`size-3`,"aria-hidden":!0}),Ce(new Date(n.nextCheckAt))]}):null]}):null,t[49]=i,t[50]=p,t[51]=g,t[52]=v,t[53]=n.acceptanceCriteriaCount,t[54]=n.dueAt,t[55]=n.latestVerification,t[56]=n.nextCheckAt,t[57]=n.operationalState,t[58]=n.priority,t[59]=I):I=t[59];let L;t[60]!==u||t[61]!==y||t[62]!==P||t[63]!==F||t[64]!==I||t[65]!==b?(L=(0,Z.jsxs)(u,{to:y,className:b,children:[P,F,I]}),t[60]=u,t[61]=y,t[62]=P,t[63]=F,t[64]=I,t[65]=b,t[66]=L):L=t[66];let R;t[67]!==a||t[68]!==i||t[69]!==o||t[70]!==m||t[71]!==h||t[72]!==n?(R=m?(0,Z.jsxs)(`div`,{className:`absolute right-2.5 top-2.5 z-10 flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100`,children:[h?(0,Z.jsx)(`button`,{type:`button`,disabled:a,onClick:()=>o(n,h),className:`inline-flex size-7 items-center justify-center rounded-md bg-surface-hover text-fg-muted hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-wait disabled:opacity-50`,"aria-label":i.actions[h],title:i.actions[h],children:(0,Z.jsx)(nn,{className:`size-3.5`,"aria-hidden":!0})}):null,(0,Z.jsx)(`button`,{type:`button`,disabled:a,onClick:()=>o(n,m),className:`inline-flex size-7 items-center justify-center rounded-md bg-accent-soft text-accent-fg hover:bg-accent-soft/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-wait disabled:opacity-50`,"aria-label":i.actions[m],title:i.actions[m],children:(0,Z.jsx)(bn,{className:`size-3.5`,"aria-hidden":!0})})]}):null,t[67]=a,t[68]=i,t[69]=o,t[70]=m,t[71]=h,t[72]=n,t[73]=R):R=t[73];let z;return t[74]!==L||t[75]!==R||t[76]!==x||t[77]!==S||t[78]!==C||t[79]!==w||t[80]!==T||t[81]!==E?(z=(0,Z.jsxs)(`article`,{draggable:x,onDragStart:S,onDragEnd:C,onDragOver:w,onDrop:T,className:E,children:[L,R]}),t[74]=L,t[75]=R,t[76]=x,t[77]=S,t[78]=C,t[79]=w,t[80]=T,t[81]=E,t[82]=z):z=t[82],z}function ai(e){return e.title}function oi(e){e.preventDefault(),e.stopPropagation()}function si({tasks:e,dependencyEdges:t,monitoring:n,returnTo:r,copy:i,onAction:a,onReorder:o,onUndoMove:s,onDependenciesChange:c,onMonitoringChange:l,onCreate:u,actionBusyId:d,ref:p}){let h=(0,X.useRef)(null),g=(0,X.useRef)(null),[_,v]=(0,X.useState)(null),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(null),[C,T]=(0,X.useState)(`board`),[E,D]=(0,X.useState)(!1),[k,A]=(0,X.useState)(()=>crypto.randomUUID()),[j,N]=(0,X.useState)(``),[I,B]=(0,X.useState)(`normal`),[V,U]=(0,X.useState)(``),[re,W]=(0,X.useState)([]),[G,K]=(0,X.useState)(!1),[ie,q]=(0,X.useState)(null),ae=M(e=>e.language),oe=Wt({chat:P(ae).chat}),se=Nr(e),ce=e.filter(e=>e.phase!==`closed`),J=(e,t)=>void a(e,t),le=async(t,n)=>{let r=e.find(e=>e.id===_);if(v(null),!r||r.id===n)return;let i=se[r.phase],s=i.findIndex(e=>e.id===r.id),c=s>=0?i[s+1]?.id??null:null;if(r.phase===t&&c===n)return;let l=Pr(r,t);r.phase!==t&&!l||l&&!await a(r,l)||await o(r.id,n)&&S({taskId:r.id,phase:r.phase,beforeTaskId:c})},Y=async e=>{e.preventDefault();let t=j.trim();if(!(!t||G)){K(!0),q(null);try{let e=V?new Date(`${V}T23:59:59.999`).getTime():void 0;await u({requestId:k,objective:t,priority:I,dependsOnTaskIds:re,attachments:oe.wireAttachmentsPayload(),...e===void 0?{}:{dueAt:e}}),N(``),B(`normal`),U(``),W([]),oe.clearAttachments(),A(crypto.randomUUID()),D(!1)}catch(e){q(e instanceof Error?e.message:i.createFailed)}finally{K(!1)}}},ue=()=>{A(crypto.randomUUID()),N(``),B(`normal`),U(``),W([]),oe.clearAttachments(),q(null),D(!0)};(0,X.useImperativeHandle)(p,()=>({openCreate:ue})),(0,X.useEffect)(()=>{if(!x)return;let e=window.setTimeout(()=>S(null),6e3);return()=>window.clearTimeout(e)},[x]);let de=(0,X.useCallback)(e=>{let t=g.current;!t||t.pointerId!==e.pointerId||(g.current=null,b(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),fe=(0,X.useCallback)(e=>{if(e.button!==0||$r(e.target))return;let t=h.current;t&&(g.current={pointerId:e.pointerId,startX:e.clientX,scrollLeft:t.scrollLeft,active:!1},e.currentTarget.setPointerCapture(e.pointerId))},[]),pe=(0,X.useCallback)(e=>{let t=g.current,n=h.current;if(!t||!n||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX;!t.active&&Math.abs(r)<5||(t.active||(t.active=!0,b(!0)),e.preventDefault(),n.scrollLeft=t.scrollLeft-r)},[]);return(0,Z.jsxs)(`section`,{id:`project-panel-board`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-board`,className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,Z.jsxs)(`div`,{className:`mb-4 flex shrink-0 flex-wrap items-start justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:i.title}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:i.description})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Z.jsx)(Qr,{policy:n,copy:i.monitoring,onSave:l}),(0,Z.jsxs)(`div`,{className:`flex rounded-lg border border-edge bg-surface-panel p-0.5`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":C===`board`,onClick:()=>T(`board`),className:O(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium`,C===`board`?`bg-surface-hover text-fg`:`text-fg-muted hover:text-fg`),children:[(0,Z.jsx)(sn,{className:`size-3.5`,"aria-hidden":!0}),i.views.board]}),(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":C===`graph`,onClick:()=>T(`graph`),className:O(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium`,C===`graph`?`bg-surface-hover text-fg`:`text-fg-muted hover:text-fg`),children:[(0,Z.jsx)(w,{className:`size-3.5`,"aria-hidden":!0}),i.views.graph]})]})]})]}),C===`board`?(0,Z.jsx)(`div`,{ref:h,className:O(`min-h-0 w-full min-w-0 flex-1 overflow-x-auto overflow-y-hidden overscroll-x-contain pb-2 [scrollbar-width:thin]`,y?`cursor-grabbing select-none`:`cursor-grab`),onPointerDown:fe,onPointerMove:pe,onPointerUp:de,onPointerCancel:de,onLostPointerCapture:e=>{g.current?.pointerId===e.pointerId&&(g.current=null,b(!1))},children:(0,Z.jsx)(`div`,{className:`grid h-full min-h-0 min-w-[103rem] grid-cols-5 gap-3`,children:Mr.map(t=>{let n=ei[t],a=se[t];return(0,Z.jsxs)(`section`,{onDragOver:n=>{let r=e.find(e=>e.id===_);r&&(r.phase===t||Pr(r,t))&&n.preventDefault()},onDrop:e=>{e.preventDefault(),le(t,null)},className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border border-edge-subtle bg-surface-muted/70 p-2.5`,children:[(0,Z.jsxs)(`header`,{className:`mb-2.5 flex shrink-0 items-center gap-2 px-0.5`,children:[(0,Z.jsxs)(`div`,{className:O(`flex items-center gap-1.5 rounded-md px-2 py-1`,ti[t]),children:[(0,Z.jsx)(n,{className:`size-3.5`,"aria-hidden":!0}),(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:i.phases[t]})]}),(0,Z.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:a.length})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-y-contain pr-1 [scrollbar-gutter:stable] [scrollbar-width:thin]`,children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-2`,children:a.map(e=>(0,Z.jsx)(ii,{task:e,returnTo:r,copy:i,busy:d===e.id,onAction:J,onDragStart:v,onDropBefore:e=>void le(t,e)},e.id))})})]},t)})})}):(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Z.jsx)(Ur,{tasks:e,dependencyEdges:t,returnTo:r,copy:{...i.graph,phases:i.phases},onDependenciesChange:c})}),(0,Z.jsx)(ne,{open:E,onOpenChange:e=>{G||D(e)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(40rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:i.createTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:i.createDescription})]}),(0,Z.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>void Y(e),children:[(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsx)(`label`,{htmlFor:`project-task-objective`,className:`font-medium text-fg-muted`,children:i.objective}),(0,Z.jsxs)(`div`,{className:O(`overflow-hidden rounded-lg border border-edge bg-surface-base transition-colors focus-within:border-accent`,oe.isDragging&&`border-accent bg-accent-soft/30`),onDragOver:e=>{e.preventDefault(),G||oe.setIsDragging(!0)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||oe.setIsDragging(!1)},onDrop:e=>{e.preventDefault(),oe.setIsDragging(!1),G||oe.processFiles(Array.from(e.dataTransfer.files))},children:[(0,Z.jsx)(`textarea`,{id:`project-task-objective`,autoFocus:!0,className:`min-h-28 w-full resize-y bg-transparent px-3 py-3 text-sm leading-6 text-fg outline-none placeholder:text-fg-subtle`,value:j,onChange:e=>{N(e.target.value),q(null)},placeholder:i.objectivePlaceholder,maxLength:12e3,disabled:G}),(0,Z.jsx)(Xt,{attachments:oe.attachments,topPadded:!1,onRemove:e=>{G||oe.removeAttachment(e)}}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-t border-edge-subtle px-2.5 py-2`,children:[(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:G,onClick:()=>oe.fileInputRef.current?.click(),children:[(0,Z.jsx)(lt,{className:`size-3.5`,"aria-hidden":!0}),i.addFiles]}),(0,Z.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:i.attachmentsDescription}),(0,Z.jsx)(`input`,{ref:oe.fileInputRef,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{oe.processFiles(Array.from(e.target.files??[])),e.currentTarget.value=``}})]})]})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`label`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:i.priority}),(0,Z.jsx)(f,{value:I,onChange:e=>B(e.target.value),disabled:G,children:[`low`,`normal`,`high`,`critical`].map(e=>(0,Z.jsx)(m,{value:e,children:i.priorityOptions[e]},e))})]}),(0,Z.jsxs)(`label`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsxs)(`span`,{className:`font-medium text-fg-muted`,children:[i.dueDate,` `,(0,Z.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:i.optional})]}),(0,Z.jsx)(On,{className:`min-h-10 bg-surface-base`,value:V,onChange:U,disabled:G,ariaLabel:i.dueDate})]})]}),(0,Z.jsxs)(`fieldset`,{className:`grid gap-2`,children:[(0,Z.jsxs)(`legend`,{className:`text-sm font-medium text-fg-muted`,children:[i.dependencies,` `,(0,Z.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:i.optional})]}),(0,Z.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:i.dependenciesDescription}),(0,Z.jsx)(Nn,{candidates:ce,selectedIds:re,disabled:G,onChange:W,labels:{link:i.linkDependencies,linked:i.linkedDependencies,searchPlaceholder:i.dependencySearchPlaceholder,noMatches:i.noDependencyMatches,noCandidates:i.noDependencyCandidates,remove:i.removeDependency}})]}),ie?(0,Z.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:ie}):null]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:G,children:i.cancel})}),(0,Z.jsx)(H,{type:`submit`,variant:`primary`,className:`rounded-lg`,disabled:G||!j.trim(),children:G?i.creating:ae===`zh`?`保存待安排任务`:`Save for later`})]})]})]})]})}),x?(0,Z.jsxs)(`div`,{role:`status`,className:`fixed bottom-5 left-1/2 z-50 flex -translate-x-1/2 items-center gap-4 rounded-lg border border-edge bg-surface-panel px-4 py-3 text-sm text-fg shadow-float`,children:[(0,Z.jsx)(`span`,{children:i.moved}),(0,Z.jsx)(`button`,{type:`button`,className:`font-medium text-accent-fg hover:underline`,onClick:()=>{let e=x;S(null),s(e.taskId,e.phase,e.beforeTaskId).then(t=>{t||S(e)})},children:i.undo})]}):null]})}var ci=new Set([{id:`overview`,icon:mn},{id:`tasks`,icon:Ft},{id:`automations`,icon:we},{id:`files`,icon:Ze},{id:`notes`,icon:dt},{id:`skills`,icon:Yt},{id:`sessions`,icon:Dt},{id:`progress`,icon:Lt},{id:`settings`,icon:St}].map(e=>e.id)),li=`xopc.projectFiles.panelWidthPx`,ui=320,di=220,fi=560;function pi(e,t){return e.name!==t.name||e.description!==(t.description??``)||e.status!==t.status||e.defaultAgentId!==(t.defaultAgentId??``)||e.executionMode!==t.executionMode||e.brief!==(t.brief??``)||e.instructions!==(t.instructions??``)}function mi(e){return Math.min(fi,Math.max(di,Math.round(e)))}function hi(){try{let e=window.localStorage.getItem(li);if(e==null)return ui;let t=Number.parseInt(e,10);return Number.isFinite(t)?mi(t):ui}catch{return ui}}function gi(e){try{window.localStorage.setItem(li,String(mi(e)))}catch{}}function _i(e){return!!(e&&ci.has(e))}function vi(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function yi(e,t=``){if(!e)return t;let n=new Date(e);return Number.isNaN(n.getTime())?String(e):Ce(n)}function bi(e){return e===`active`?`bg-accent-soft text-accent-fg`:e===`done`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`paused`?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:e===`archived`?`bg-surface-muted text-fg-subtle`:`bg-surface-hover text-fg-muted`}function xi(e){let t=(0,Bn.c)(8),{label:n,hint:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=r?(0,Z.jsx)(`span`,{className:`text-xs leading-5 text-fg-subtle`,children:r}):null,t[2]=r,t[3]=o);let s;return t[4]!==i||t[5]!==a||t[6]!==o?(s=(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[a,i,o]}),t[4]=i,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Si(e=!1){return O(`w-full rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,e?`min-h-24 py-2 leading-5`:`min-h-10`)}function Ci(e){let t=(0,Bn.c)(10),{label:n,value:r,mono:i}=e,a=i===void 0?!1:i,o;t[0]===n?o=t[1]:(o=(0,Z.jsx)(`div`,{className:`text-xs font-medium text-fg-subtle`,children:n}),t[0]=n,t[1]=o);let s=a&&`font-mono text-xs`,c;t[2]===s?c=t[3]:(c=O(`mt-1 min-w-0 truncate text-sm text-fg`,s),t[2]=s,t[3]=c);let l;t[4]!==c||t[5]!==r?(l=(0,Z.jsx)(`div`,{className:c,title:r,children:r}),t[4]=c,t[5]=r,t[6]=l):l=t[6];let u;return t[7]!==o||t[8]!==l?(u=(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-md bg-surface-base px-3 py-2`,children:[o,l]}),t[7]=o,t[8]=l,t[9]=u):u=t[9],u}function wi(e){return[e.name,e.slug,e.workspaceRoot,e.description,e.brief].filter(Boolean).join(` `).toLowerCase()}function Ti(e){let t=e.lastActiveAt??e.updatedAt??e.createdAt,n=t?new Date(t).getTime():0;return Number.isFinite(n)?n:0}function Ei(e){return e.trim().replace(/[\\/]+$/,``).split(/[\\/]/).filter(Boolean).pop()??``}function Di(e){let t=e?.body;return t?.code===`workspace_root_missing`&&t.workspaceRoot?t.workspaceRoot:null}function Oi(e){let t=e.actor;return t.name?t.name:t.agentId?t.agentId:t.id?t.id:t.sessionKey?t.sessionKey:t.kind}function ki(e){return e.primaryObject.title?.trim()||e.primaryObject.id}function Ai(e){let t=e.source;return t.toolCallId?`${t.kind} · ${t.toolCallId}`:t.runId?`${t.kind} · ${t.runId}`:t.requestId?`${t.kind} · ${t.requestId}`:t.kind}function ji(e){let t=e.sourceChannel?.trim();if(t)return Mi(t);let n=e.key.split(`:`).filter(Boolean),r=(n[0]?.toLowerCase()===`agent`?n.slice(2).join(`:`):e.key).split(`:`)[0]?.split(/[-_]/)[0]?.trim();return Mi(r||``)}function Mi(e){let t=e.trim().toLowerCase();return t?t===`tui`?`TUI`:t===`acp`?`ACP`:t===`webchat`?`Webchat`:t:``}function Ni(e){let t=e.payload.changes;if(Array.isArray(t)&&t.length)return t.filter(e=>typeof e==`string`).join(`, `);let n=e.payload.contentPreview;if(typeof n==`string`&&n.trim())return n.trim();let r=e.payload.title??e.payload.name;return typeof r==`string`&&r.trim()?r.trim():``}function Pi(e){return e.map(e=>({fileId:e.fileId,name:e.name,path:e.path,isDirectory:e.type===`directory`,children:e.type===`directory`?[]:void 0}))}function Fi(e,t,n){return e.map(e=>e.path===t?{...e,children:n}:e.isDirectory&&e.children?.length?{...e,children:Fi(e.children,t,n)}:e)}function Ii({currentProject:e,pm:t,projectsText:n,wd:r}){let a=i(),[o,s]=(0,X.useState)(!1),[d,f]=(0,X.useState)([e]),[m,h]=(0,X.useState)(``),[_,v]=(0,X.useState)(!1),[y,b]=(0,X.useState)(null),[x,S]=(0,X.useState)(!1),[C,w]=(0,X.useState)(`new`),[T,D]=(0,X.useState)(``),[k,A]=(0,X.useState)(``),[j,M]=(0,X.useState)(!1),[N,P]=(0,X.useState)(!0),[I,B]=(0,X.useState)(null),[V,U]=(0,X.useState)(null),re=(0,X.useCallback)(async()=>{v(!0),b(null);try{let t=await Fe({limit:100});f(n=>{let r=new Map;r.set(e.id,e);for(let e of n)r.set(e.id,e);for(let e of t.items)r.set(e.id,e);return Array.from(r.values())})}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}},[e]);(0,X.useEffect)(()=>{f(t=>[e,...t.filter(t=>t.id!==e.id)])},[e]),(0,X.useEffect)(()=>{o&&re()},[re,o]);let W=(0,X.useMemo)(()=>{let t=m.trim().toLowerCase().split(/\s+/).filter(Boolean);return d.filter(t=>t.id!==e.id).filter(e=>{if(t.length===0)return!0;let n=wi(e);return t.every(e=>n.includes(e))}).sort((e,t)=>Ti(t)-Ti(e))},[e.id,d,m]),G=e=>t.statuses[e.status]??e.status,K=e=>e.description||e.brief||t.common.defaultWorkspace,ie=e=>{w(e),D(``),A(``),B(null),S(!0),s(!1)},q=(0,X.useCallback)(async(e={})=>{let t=k.trim(),n=T.trim()||(C===`directory`?Ei(t):``);if(n){M(!0),B(null),U(null);try{let r=await fe({autoUnderstand:N,name:n,...t?{workspaceRoot:t}:{},...e.createWorkspaceRoot?{createWorkspaceRoot:!0}:{}});S(!1),D(``),A(``),P(!0),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:r.id}})),f(e=>[r,...e.filter(e=>e.id!==r.id)]),a(`/projects/${encodeURIComponent(r.id)}`)}catch(e){let t=Di(e);t?(U(t),S(!1)):B(e instanceof Error?e.message:String(e))}finally{M(!1)}}},[C,T,a,k,N]),ae=(0,X.useCallback)(e=>{e.preventDefault(),q()},[q]),oe=(0,X.useCallback)(()=>{q({createWorkspaceRoot:!0})},[q]),se=(0,X.useCallback)(()=>{U(null),S(!0)},[]),ce=e=>{A(e),C===`directory`&&!T.trim()&&D(Ei(e))},J=(e,t)=>(0,Z.jsxs)(`button`,{type:`button`,className:O(`grid w-full grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2 rounded-md p-2 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,t&&`bg-accent-soft/55 hover:bg-accent-soft/70`),onClick:()=>{s(!1),t||a(`/projects/${encodeURIComponent(e.id)}`)},children:[(0,Z.jsx)(c,{className:O(`size-4 text-accent-fg`,!t&&`invisible`),"aria-hidden":!0}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:e.name}),(0,Z.jsx)(`span`,{className:`block truncate text-xs text-fg-muted`,children:K(e)})]}),(0,Z.jsx)(`span`,{className:O(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,bi(e.status)),children:G(e)})]},e.id);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(u,{open:o,onOpenChange:s,children:[(0,Z.jsx)(p,{asChild:!0,children:(0,Z.jsxs)(`button`,{type:`button`,className:`group flex max-w-full min-w-0 items-center gap-2 rounded-lg px-2 py-1 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":t.projectSwitcher.switchProject,title:t.projectSwitcher.switchProject,children:[(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:e.name}),(0,Z.jsx)(`span`,{className:O(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,bi(e.status)),children:G(e)})]}),(0,Z.jsx)(`span`,{className:`block truncate text-xs text-fg-muted`,children:K(e)})]}),(0,Z.jsx)($e,{className:`size-4 shrink-0 text-fg-subtle transition-transform group-data-[state=open]:rotate-180`,"aria-hidden":!0})]})}),(0,Z.jsx)(l,{children:(0,Z.jsxs)(g,{side:`bottom`,align:`start`,sideOffset:6,className:`z-[70] w-[min(26rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-edge bg-surface-panel p-1.5 shadow-popover outline-none`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsxs)(`label`,{className:`relative block`,children:[(0,Z.jsx)(un,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`input`,{type:`search`,className:`h-9 w-full rounded-lg border border-edge bg-surface-base pl-9 pr-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:m,onChange:e=>h(e.target.value),placeholder:t.projectSwitcher.searchPlaceholder,"aria-label":t.projectSwitcher.searchPlaceholder})]}),(0,Z.jsxs)(`div`,{className:`mt-1 max-h-[min(54vh,24rem)] overflow-y-auto pr-0.5 [scrollbar-gutter:stable]`,children:[(0,Z.jsx)(`div`,{className:`px-2 pb-1 pt-2 text-[11px] font-semibold uppercase tracking-wide text-fg-subtle`,children:t.projectSwitcher.current}),J(e,!0),(0,Z.jsx)(`div`,{className:`px-2 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-wide text-fg-subtle`,children:t.projectSwitcher.recent}),y?(0,Z.jsx)(`div`,{className:`p-2 text-xs text-red-600 dark:text-red-400`,children:y}):null,_&&W.length===0?(0,Z.jsx)(`div`,{className:`px-2 py-3 text-center text-xs text-fg-muted`,children:t.projectSwitcher.loading}):null,!_&&W.length===0?(0,Z.jsx)(`div`,{className:`px-2 py-3 text-center text-xs text-fg-muted`,children:t.projectSwitcher.noMatches}):null,W.map(e=>J(e,!1))]}),(0,Z.jsxs)(`div`,{className:`mt-1 border-t border-edge-subtle pt-1`,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>ie(`new`),children:[(0,Z.jsx)(E,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.newProject})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>ie(`directory`),children:[(0,Z.jsx)(Ze,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.openDirectory})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm text-fg hover:bg-surface-hover`,onClick:()=>{s(!1),a(`/projects`)},children:[(0,Z.jsx)(St,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:t.projectSwitcher.manageProjects})]})]})]})})]}),(0,Z.jsx)(ne,{open:x,onOpenChange:e=>!j&&S(e),children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(32rem,calc(100vh-2rem))] w-[min(40rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:C===`directory`?t.projectSwitcher.createFromDirectoryTitle:n.createTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm text-fg-muted`,children:C===`directory`?t.projectSwitcher.createFromDirectoryDescription:n.createDescription})]}),(0,Z.jsxs)(`form`,{onSubmit:ae,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[I?(0,Z.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:I}):null,(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n.projectName}),(0,Z.jsx)(`input`,{className:`min-h-10 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:T,onChange:e=>D(e.target.value),placeholder:`xopc`})]}),(0,Z.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:n.workspaceRoot}),(0,Z.jsx)(Hn,{value:k,onChange:ce,disabled:j,wd:r,placeholder:n.workspacePlaceholder,inputClassName:`min-h-10 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`}),(0,Z.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.workspaceHint})]}),(0,Z.jsx)(Et,{checked:N,onChange:P,disabled:j})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:j,children:n.cancel})}),(0,Z.jsxs)(H,{type:`submit`,variant:`primary`,className:`rounded-lg`,disabled:j||!(T.trim()||C===`directory`&&Ei(k)),children:[(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0}),n.create]})]})]})]})]})}),(0,Z.jsx)(ne,{open:!!V,onOpenChange:e=>{e||U(null)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[100] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[110] flex w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:n.workspaceMissingTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:V?vi(n.workspaceMissingDescription,{workspace:V}):null})]}),V?(0,Z.jsx)(`div`,{className:`px-5 py-4`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-surface-muted px-3 py-2 text-sm text-fg-muted`,children:[(0,Z.jsx)(Ze,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:V})]})}):null,(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:se,disabled:j,children:n.workspaceMissingBack}),(0,Z.jsxs)(H,{type:`button`,variant:`primary`,className:`rounded-lg`,onClick:oe,disabled:j,children:[(0,Z.jsx)(vn,{className:`size-4`,"aria-hidden":!0}),n.workspaceMissingCreate]})]})]})]})})]})}function Li(){let{projectId:e=``,tabId:t,noteId:n}=o(),r=i(),[c]=a(),l=M(e=>e.language),u=P(l),d=u.chat.workingDirectory,p=u.projectDetailPage,h=u.projectsPage,g=Nt(e=>e.setPageHeader),_=Nt(e=>e.clearPageHeader),[y,b]=(0,X.useState)(null),[T,k]=(0,X.useState)(null),[A,j]=(0,X.useState)([]),[N,I]=(0,X.useState)(``),[re,W]=(0,X.useState)([]),[ie,q]=(0,X.useState)(0),[ae,ue]=(0,X.useState)(!1),[fe,pe]=(0,X.useState)(!1),[me,ye]=(0,X.useState)(!1),[Se,Ce]=(0,X.useState)([]),[Oe,Ae]=(0,X.useState)(null),Me=(0,X.useRef)(new Set),[Pe,Fe]=(0,X.useState)(null),[Ie,Le]=(0,X.useState)(null),[ze,Ve]=(0,X.useState)(null),[Ge,Ye]=(0,X.useState)(hi),[$e,nt]=(0,X.useState)(!1),[it,lt]=(0,X.useState)(!1),[pt,ht]=(0,X.useState)(``),[gt,yt]=(0,X.useState)([]),[bt,xt]=(0,X.useState)(!1),[wt,Et]=(0,X.useState)(null),[kt,At]=(0,X.useState)(!1),[jt,Pt]=(0,X.useState)(null),[Rt,zt]=(0,X.useState)([]),[Bt,Ht]=(0,X.useState)(``),[Ut,Wt]=(0,X.useState)(!0),[Gt,qt]=(0,X.useState)(!1),[Jt,Xt]=(0,X.useState)(!1),[Zt,$t]=(0,X.useState)(null),[en,nn]=(0,X.useState)(!1),[rn,an]=(0,X.useState)(`fixed`),[sn,cn]=(0,X.useState)(``),[ln,dn]=(0,X.useState)(null),[fn,pn]=(0,X.useState)(!1),[bn,xn]=(0,X.useState)(!1),[Sn,Cn]=(0,X.useState)(!1),[wn,On]=(0,X.useState)(``),[An,jn]=(0,X.useState)(!1),[Mn,Nn]=(0,X.useState)(``),Pn=V(`/api/proactive/overview`,je),[Fn,In]=(0,X.useState)(!1),[Ln,Rn]=(0,X.useState)(null),zn=(0,X.useRef)(null),Bn=(0,X.useRef)(!1),[Vn,Q]=(0,X.useState)(null),[Un,Wn]=(0,X.useState)({title:``,reason:``}),[Gn,Kn]=(0,X.useState)({name:``,description:``,status:`active`,defaultAgentId:``,executionMode:`local_checkout`,workspaceRoot:``,brief:``,instructions:``}),qn=(0,X.useRef)(Gn),Jn=`overview`,$=n?`notes`:_i(t)?t:Jn,Yn=(0,X.useMemo)(()=>x(c.get(`returnTo`),`/projects`,[`/chat`]),[c]),Xn=(0,X.useCallback)(t=>{if(!e)return`/projects`;let n=`/projects/${encodeURIComponent(e)}/${t}`;return Yn===`/projects`?n:S(n,Yn)},[Yn,e]),Zn=(0,X.useCallback)(t=>{e&&r(Xn(t))},[r,e,Xn]),Qn=(0,X.useCallback)(()=>{if($===`tasks`&&zn.current){zn.current.openCreate();return}Bn.current=!0,Zn(`tasks`)},[Zn,$]);(0,X.useEffect)(()=>{$!==`tasks`||!Bn.current||(Bn.current=!1,zn.current?.openCreate())},[$]);let $n=(0,X.useCallback)(t=>{e&&r(Xn(t),{replace:!0})},[r,e,Xn]),er=(0,X.useCallback)(e=>t=>{t.defaultPrevented||t.button!==0||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||$n(e)},[$n]),tr=(0,X.useCallback)(e=>e.startsWith(`/chat/`)?`sessions`:e.startsWith(`/notes`)?`notes`:$,[$]);(0,X.useEffect)(()=>{!e||!t||_i(t)||r(Xn(Jn),{replace:!0})},[Jn,r,e,Xn,t]),(0,X.useEffect)(()=>{if(!e)return;let t=!1;return Wt(!0),Q(null),Promise.all([It(e),Ke(e),Ee(e),Mt().catch(()=>null),ve(e).catch(()=>null)]).then(([e,n,r,i,a])=>{if(t)return;b(e),k(n),j(r),Ae(a),zt(i?.agents??[]),Ht(e.defaultAgentId??``);let o={name:e.name,description:e.description??``,status:e.status,defaultAgentId:e.defaultAgentId??``,executionMode:e.executionMode,workspaceRoot:e.workspaceRoot??``,brief:e.brief??``,instructions:e.instructions??``};qn.current=o,Kn(o)}).catch(e=>{t||(Ae(null),Q(e instanceof Error?e.message:String(e)))}).finally(()=>{t||Wt(!1)}),()=>{t=!0}},[e]);let nr=(0,X.useCallback)(async()=>{e&&k(await Ke(e))},[e]);(0,X.useEffect)(()=>{let t,n=n=>{let r=yn.safeParse(n.detail);!r.success||r.data.projectId!==e||(window.clearTimeout(t),t=window.setTimeout(()=>void nr(),120))},r=n=>{let r=le.safeParse(n.detail);!r.success||r.data.projectId!==e||(window.clearTimeout(t),t=window.setTimeout(()=>void nr(),120))};return window.addEventListener(`task-changed-v2`,n),window.addEventListener(`task-deleted-v1`,r),()=>{window.clearTimeout(t),window.removeEventListener(`task-changed-v2`,n),window.removeEventListener(`task-deleted-v1`,r)}},[e,nr]);let rr=(0,X.useCallback)(async(e,t)=>{Rn(e.id),Q(null);try{let n=await he(e.id),r=t.startsWith(`move_`)?{type:`move`,phase:t.slice(5)}:t.startsWith(`reopen_`)?{type:`reopen`,phase:t.slice(7)}:t===`ready`?{type:`mark_ready`}:t===`run`?{type:`start`,executor:{kind:`agent`,agentId:n.task.delegateAgentId??(await et(e.id)).agentId}}:t===`pause`?{type:`add_wait`,wait:{kind:`paused`,reason:`Paused by user`,condition:{}}}:t===`review`?{type:`request_review`}:t===`complete`?{type:`close`,resolution:`done`}:t===`reopen`?{type:`reopen`,phase:`ready`}:{type:`resolve_wait`,waitId:n.waits[0]?.id??``};if(r.type===`resolve_wait`&&!r.waitId)throw Error(`No active wait to resolve`);return await Qe(e.id,r,n.task.version),await nr(),!0}catch(e){return await nr().catch(()=>void 0),Q(e instanceof Error?e.message:p.board.actionFailed),!1}finally{Rn(null)}},[T,p.board.actionFailed,nr]),ir=(0,X.useCallback)(async t=>{e&&(Q(null),await de({idempotencyKey:t.requestId,title:t.objective,projectId:e,priority:t.priority,dueAt:t.dueAt,locale:l,contract:{objective:t.objective,expectedOutputs:[],acceptanceCriteria:[],constraints:[],approvalRequired:[],assumptions:[],risks:[],acceptancePolicy:`manual`,outputDestinations:[]},dependencies:t.dependsOnTaskIds,context:t.attachments.map((e,t)=>({targetKind:`file`,targetId:e.uri??e.name??`attachment-${t+1}`,role:`input`,title:e.name,pinned:!0,retrievalPolicy:{},metadata:{mimeType:e.mimeType,size:e.size,data:e.data}})),authorityGrants:[],activation:{mode:`capture`,phase:`backlog`}}),await nr())},[l,e,nr]),ar=(0,X.useCallback)(async(e,t)=>{Rn(e),Q(null);try{return await He(e,t,(await he(e)).task.version),await nr(),!0}catch(e){return await nr().catch(()=>void 0),Q(e instanceof Error?e.message:p.board.actionFailed),!1}finally{Rn(null)}},[p.board.actionFailed,nr]),or=(0,X.useCallback)(async(e,t,n)=>{Rn(e),Q(null);try{let r=await he(e);return r.task.phase!==t&&(r=await Qe(e,r.task.phase===`closed`?{type:`reopen`,phase:t===`closed`?`ready`:t}:t===`closed`?{type:`close`,resolution:`done`}:{type:`move`,phase:t},r.task.version)),await He(e,n,r.task.version),await nr(),!0}catch(e){return await nr().catch(()=>void 0),Q(e instanceof Error?e.message:p.board.actionFailed),!1}finally{Rn(null)}},[p.board.actionFailed,nr]),sr=(0,X.useCallback)(async(e,t)=>{Rn(e),Q(null);try{await qe(e,t,(await he(e)).task.version),await nr()}catch(e){await nr().catch(()=>void 0),Q(e instanceof Error?e.message:p.board.actionFailed)}finally{Rn(null)}},[p.board.actionFailed,nr]),cr=(0,X.useCallback)(async t=>{if(e){Q(null);try{await ct(e,t),await nr()}catch(e){throw Q(e instanceof Error?e.message:p.board.actionFailed),e}}},[p.board.actionFailed,e,nr]),lr=(0,X.useCallback)(async()=>{if(y){ue(!0),Q(null);try{let e=await Re(y.id,{includeRelated:fe,limit:100});W(e.items),q(e.total)}catch(e){Q(e instanceof Error?e.message:String(e))}finally{ue(!1)}}},[y,fe]);(0,X.useEffect)(()=>{$===`progress`&&lr()},[lr,$]);let ur=(0,X.useCallback)(async()=>{if(!y?.effectiveWorkspaceRoot?.trim()){Ce([]),Me.current.clear(),Pt(null);return}At(!0),Pt(null),Me.current.clear();try{Ce(Pi((await Be(y.id,``)).entries)),Me.current.add(``)}catch(e){Ce([]),Me.current.clear(),Pt(e instanceof Error?e.message:String(e))}finally{At(!1)}},[y]),dr=(0,X.useCallback)(async e=>{if(!(!y?.effectiveWorkspaceRoot?.trim()||Me.current.has(e))){Me.current.add(e),Pt(null);try{let t=await Be(y.id,e);Ce(n=>Fi(n,e,Pi(t.entries)))}catch(t){Me.current.delete(e),Pt(t instanceof Error?t.message:String(t))}}},[y]),fr=(0,X.useCallback)(async e=>{if(!y?.effectiveWorkspaceRoot?.trim())return;let t=Pi((await Be(y.id,e)).entries);Ce(e?n=>Fi(n,e,t):t),Me.current.add(e)},[y]);(0,X.useEffect)(()=>{$===`files`&&ur()},[ur,$]);let pr=pt.trim();(0,X.useEffect)(()=>{if($!==`files`||!y||!it||!pr){yt([]),xt(!1),Et(null);return}let e=!1;xt(!0),Et(null),yt([]);let t=window.setTimeout(()=>{at(y.id,pr,50).then(t=>{e||yt(t)}).catch(t=>{e||Et(t instanceof Error?t.message:String(t))}).finally(()=>{e||xt(!1)})},180);return()=>{e=!0,window.clearTimeout(t)}},[pr,y,it,$]);let mr=(0,X.useCallback)(async()=>{if(!y)return;let[e,t]=await Promise.all([It(y.id),Ke(y.id)]);k(t),b(e)},[y]),gr=(0,X.useCallback)(async e=>{if(e.preventDefault(),!(!y||!Un.title.trim())){xn(!0),Q(null);try{await Ue(y.id,{title:Un.title.trim(),reason:Un.reason.trim()||void 0}),Wn({title:``,reason:``}),In(!1),await mr()}catch(e){Q(e instanceof Error?e.message:String(e))}finally{xn(!1)}}},[Un.reason,Un.title,y,mr]),_r=(0,X.useMemo)(()=>(0,Z.jsx)(s,{to:Yn,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":Yn===`/projects`?p.backToProjects:u.sidebar.back,children:(0,Z.jsx)(Y,{className:`size-4`,"aria-hidden":!0})}),[Yn,u.sidebar.back,p.backToProjects]),vr=(0,X.useMemo)(()=>y?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(H,{asChild:!0,variant:`secondary`,className:`h-9 rounded-lg`,children:(0,Z.jsxs)(s,{to:`/workflows?tab=library&projectId=${encodeURIComponent(y.id)}`,children:[(0,Z.jsx)(w,{className:`size-4`,"aria-hidden":!0}),p.common.runWorkflow]})}),(0,Z.jsxs)(H,{variant:`secondary`,className:`h-9 rounded-lg`,onClick:Qn,children:[(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0}),p.board.create]}),(0,Z.jsx)(H,{asChild:!0,variant:`primary`,className:`h-9 rounded-lg`,children:(0,Z.jsxs)(s,{to:Vt(y.id),state:{forceNewChat:!0,agentId:y.defaultAgentId},onClick:er(`sessions`),children:[(0,Z.jsx)(Dt,{className:`size-4`,"aria-hidden":!0}),p.common.newChat]})})]}):null,[Qn,er,p.board.create,p.common.newChat,p.common.runWorkflow,y]);(0,X.useLayoutEffect)(()=>(g({startExtra:_r,main:y?(0,Z.jsx)(Ii,{currentProject:y,pm:p,projectsText:h,wd:d}):(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:p.fallbackTitle}),(0,Z.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:p.fallbackContext})]}),end:vr}),()=>_()),[_,vr,_r,p,y,h,g,d]);function yr(e){b(t=>t?{...t,...e}:null),Ht(e.defaultAgentId??``),ve(e.id).then(Ae).catch(()=>Ae(null)),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}async function br(e=qn.current){if(!(!y||!pi(e,y))){Q(null),$t(null);try{let t=await tt(y.id,{name:e.name.trim(),status:e.status,description:e.description,defaultAgentId:e.defaultAgentId,executionMode:e.executionMode,brief:e.brief,instructions:e.instructions});yr(t);let n=qn.current,r={...n,name:n.name===e.name?t.name:n.name,description:n.description===e.description?t.description??``:n.description,status:n.status===e.status?t.status:n.status,defaultAgentId:n.defaultAgentId===e.defaultAgentId?t.defaultAgentId??``:n.defaultAgentId,executionMode:n.executionMode===e.executionMode?t.executionMode:n.executionMode,brief:n.brief===e.brief?t.brief??``:n.brief,instructions:n.instructions===e.instructions?t.instructions??``:n.instructions};qn.current=r,Kn(r)}catch(e){let t=Di(e);throw t?$t(t):Q(e instanceof Error?e.message:String(e)),e}}}function xr(e){e.preventDefault(),zr.flush()}function Sr(e,t=!1){let n={...qn.current,...e};qn.current=n,Kn(n),t&&zr.saveNow(n)}let wr=(0,X.useCallback)(()=>{if(!y)return;let e=y.workspaceRoot?.trim()??``;an(e?`fixed`:`follow`),cn(e||y.effectiveWorkspaceRoot||``),nn(!0)},[y]);async function Tr(e={}){if(!y)return;let t=rn===`fixed`?sn.trim():``;if(!(rn===`fixed`&&!t)){qt(!0),Q(null),$t(null);try{let n=await tt(y.id,{workspaceRoot:t,...e.createWorkspaceRoot?{createWorkspaceRoot:!0}:{}});yr(n),Sr({workspaceRoot:n.workspaceRoot??``}),nn(!1),$t(null)}catch(e){let t=Di(e);t?($t(t),nn(!1)):Q(e instanceof Error?e.message:String(e))}finally{qt(!1)}}}async function Er(){if(!(!y||ln)){dn(`pin`),Q(null);try{yr(y.pinnedAt?await xe(y.id):await Xe(y.id))}catch(e){Q(e instanceof Error?e.message:String(e))}finally{dn(null)}}}async function Dr(){if(!(!y||ln)){dn(`archive`),Q(null);try{let e=y.status===`archived`?await gn(y.id):await ge(y.id);yr(e),Sr({status:e.status})}catch(e){Q(e instanceof Error?e.message:String(e))}finally{dn(null)}}}async function Or(){if(y){pn(!0),Q(null);try{await K(y.id),Xt(!1),r(`/projects`)}catch(e){Q(e instanceof Error?e.message:String(e))}finally{pn(!1)}}}async function kr(){if(!(!y||me)){ye(!0),Q(null);try{await oe(y.id)}catch(e){Q(e instanceof Error?e.message:String(e))}finally{ye(!1)}}}let Ar=(0,X.useCallback)(e=>{Fe(e)},[]),Mr=(0,X.useCallback)((e,t)=>{t||Fe(e)},[]),Nr=(0,X.useCallback)(async(e,t,n)=>{let r=y?.id;if(r)switch(e){case`preview`:t.isDirectory||Fe(t.path);break;case`download`:if(t.isDirectory)return;try{let e=ot(t.path);if(rt(ce(e))!==`text`){let n=await tn(t.path,{projectId:r}),i=Kt(e)??`application/octet-stream`;be(e,await n.arrayBuffer(),i)}else{let{content:n}=await ke(t.path,{projectId:r});Ne(e,n)}}catch(e){J(`warning`,e instanceof Error?e.message:String(e),void 0,{duration:4e3})}break;case`copyPath`:try{await B(t.path)&&J(`success`,u.workspace.pathCopied,void 0,{duration:2500})}catch{J(`warning`,u.clipboard.copyFailed,void 0,{duration:4e3})}break;case`openDefault`:await Ct(()=>window.electronAPI?.shell?.openFileResource?.(t.fileId),u.workspace.openFileFailed);break;case`openWith`:await Ct(()=>window.electronAPI?.shell?.chooseAppAndOpenFileResource?.(t.fileId),u.workspace.openFileFailed);break;case`openWithApp`:if(!n)return;await Ct(()=>window.electronAPI?.shell?.openFileResourceWithApp?.(t.fileId,n),u.workspace.openFileFailed);break;case`revealInFolder`:await Ct(()=>window.electronAPI?.shell?.showFileResourceInFolder?.(t.fileId),u.workspace.revealFileFailed);break;case`trash`:Le(t);break;case`delete`:t.isDirectory||Ve(t);break;default:break}},[u.clipboard.copyFailed,u.workspace.openFileFailed,u.workspace.pathCopied,u.workspace.revealFileFailed,y?.id]),Pr=(0,X.useCallback)(async()=>{let e=Ie;if(!e)return;let t=await window.electronAPI?.shell?.trashFileResource?.(e.fileId);if(!t?.ok){J(`warning`,t?.error??u.workspace.trashFailed,void 0,{duration:4e3});return}Pe===e.path&&Fe(null),Le(null),await ur(),J(`success`,u.workspace.trashSuccess,void 0,{duration:2500})},[u.workspace.trashFailed,u.workspace.trashSuccess,Ie,Pe,ur]),Fr=(0,X.useCallback)(async(e,t)=>{let n=y?.id;if(n)try{await Promise.all(e.map(e=>mt(e,t,{projectId:n}))),await fr(t).catch(()=>void 0),J(`success`,u.workspace.uploadSuccess.replace(`{{count}}`,String(e.length)),void 0,{duration:2500})}catch(e){await fr(t).catch(()=>void 0),J(`warning`,`${u.workspace.uploadFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[u.workspace.uploadFailed,u.workspace.uploadSuccess,y?.id,fr]),Ir=(0,X.useCallback)(async()=>{let e=ze;if(e)try{await ut(e.fileId),Pe===e.path&&Fe(null),Ve(null);let t=e.path.lastIndexOf(`/`);await fr(t<0?``:e.path.slice(0,t)).catch(()=>void 0),J(`success`,u.workspace.deleteSuccess,void 0,{duration:2500})}catch(e){J(`warning`,`${u.workspace.deleteFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[u.workspace.deleteFailed,u.workspace.deleteSuccess,ze,Pe,fr]),Lr=(0,X.useCallback)(e=>{if(!window.matchMedia(`(min-width: 1024px)`).matches)return;e.preventDefault();let t=e.currentTarget,n=t.closest(`[data-project-files-grid]`);if(!n)return;t.setPointerCapture(e.pointerId),nt(!0);let r=e.clientX,i=Ge,a=e.pointerId,o=0,s=i,c=i,l=()=>{o=0,c=s,n.style.setProperty(`--project-files-panel-width`,`${c}px`)},u=e=>{s=mi(i+(e.clientX-r)),o===0&&(o=window.requestAnimationFrame(l))},d=()=>{o!==0&&(window.cancelAnimationFrame(o),l());try{t.releasePointerCapture(a)}catch{}nt(!1),Ye(c),gi(c),window.removeEventListener(`pointermove`,u),window.removeEventListener(`pointerup`,d),window.removeEventListener(`pointercancel`,d)};window.addEventListener(`pointermove`,u),window.addEventListener(`pointerup`,d),window.addEventListener(`pointercancel`,d)},[Ge]);(0,X.useEffect)(()=>{$!==`files`&&Fe(null)},[e,$]);let Rr=!!(y&&pi(Gn,y)),zr=En({value:y?Gn:null,dirty:Rr,onSave:br,validate:e=>e.name.trim()?null:p.settings.nameRequired});if(Ut)return(0,Z.jsx)(`main`,{className:`w-full flex-1 p-3 text-sm text-fg-muted sm:px-5 sm:py-4 xl:px-6`,children:p.loading});if(!y)return(0,Z.jsxs)(`main`,{className:`w-full flex-1 p-3 sm:px-5 sm:py-4 xl:px-6`,children:[(0,Z.jsxs)(s,{to:Yn,className:`inline-flex items-center gap-2 text-sm text-accent-fg hover:underline`,children:[(0,Z.jsx)(Y,{className:`size-4`,"aria-hidden":!0}),Yn===`/projects`?p.backToProjects:u.sidebar.back]}),(0,Z.jsx)(`p`,{className:`mt-6 rounded-lg bg-surface-panel p-4 shadow-surface text-sm text-fg-muted`,children:Vn||p.notFound})]});let Br=A.slice(0,3),Vr=T?.blockers??[],Hr=jr(T?.tasks??[]),Ur=T?.tasks.filter(e=>[`queued`,`running`,`waiting`,`verifying`].includes(e.operationalState)).length??0,Wr=e=>p.statuses[e]??e,Gr=e=>vi(p.common.messages,{count:e}),Kr=N.trim().toLowerCase(),qr=Kr?A.filter(e=>{let t=yi(e.updatedAt),n=e.routing?.agentId||e.agentId||p.common.agent,r=e.name?.trim()||p.sessions.fallbackTitle,i=Gr(e.messageCount??0),a=ji(e);return[r,e.key,n,a,t,i].filter(Boolean).join(` `).toLowerCase().includes(Kr)}):A,Jr=A.length>0&&qr.length===0,Yr=Rt.find(e=>e.id===y.defaultAgentId)?.name||y.defaultAgentId||p.settings.globalDefaultAgent,Xr=Rt.find(e=>e.id===Gn.defaultAgentId),Zr=y.workspaceRoot?.trim()||``,Qr=y.status===`archived`,$r=!!y.pinnedAt,ei=!Zr,ti=Zr||Xr?.workspace||y.effectiveWorkspaceRoot||p.common.defaultWorkspace,ni=rn===`fixed`?sn.trim()||p.settings.workspacePlaceholder:Xr?.workspace||y.effectiveWorkspaceRoot||p.common.defaultWorkspace,ri=(rn===`fixed`?sn.trim():``)!==Zr&&(rn===`follow`||!!sn.trim()),ii=y.name,ai=Pn.data?.delegations.find(t=>t.scenarioKey===`project_delivery_risk`&&t.scopeId===e&&!t.completedAt),oi=[{id:`overview`,icon:mn,label:p.tabs.overview},{id:`tasks`,icon:Ft,label:p.tabs.tasks},{id:`automations`,icon:we,label:p.tabs.automations},{id:`files`,icon:Ze,label:p.tabs.files},{id:`notes`,icon:dt,label:p.tabs.notes},{id:`skills`,icon:Yt,label:p.tabs.skills},{id:`sessions`,icon:Dt,label:p.tabs.sessions},{id:`progress`,icon:Lt,label:p.tabs.progress}];async function ci(){if(!ti)return;let e=await B(ti);J(e?`success`:`warning`,e?u.workspace.pathCopied:u.clipboard.copyFailed,void 0,{duration:e?2500:4e3})}function li(){On(l===`zh`?`帮我守住「${ii}」的目标和关键承诺。出现可能影响交付的变化时告诉我,并先准备好建议。`:`Protect the goal and key commitments for “${ii}”. Tell me when a change may affect delivery, and prepare a recommendation first.`),Nn(``),Cn(!0)}async function ui(){if(!(!wn.trim()||An)){jn(!0),Nn(``);try{await _t(`/api/proactive/delegations`,`POST`,{scenarioKey:`project_delivery_risk`,projectId:e,instructions:wn.trim()}),await Pn.mutate(),Cn(!1),J(`success`,l===`zh`?`助理已经记住这个项目`:`Your assistant is now following this project`)}catch(e){Nn(String(e))}finally{jn(!1)}}}function di(){$t(null),nn(!0)}return(0,Z.jsxs)(`main`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden p-3 sm:px-5 sm:py-4 xl:px-6`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3`,children:[(0,Z.jsx)(Dn,{items:oi,activeTab:$,onChange:Zn,ariaLabel:p.navAria,tabIdPrefix:`project-primary-tab`,className:`min-w-0 flex-1`}),(0,Z.jsxs)(H,{id:`project-primary-tab-settings`,type:`button`,variant:$===`settings`?`secondary`:`ghost`,className:`h-9 shrink-0 rounded-lg px-3`,"aria-current":$===`settings`?`page`:void 0,onClick:()=>Zn(`settings`),children:[(0,Z.jsx)(St,{className:`size-4`,"aria-hidden":!0}),p.tabs.settings,Rr?(0,Z.jsx)(`span`,{className:`size-1.5 rounded-full bg-amber-500`,"aria-label":p.settings.unsavedChanges}):null]})]}),(0,Z.jsx)(`div`,{className:`mt-2 shrink-0`,children:(0,Z.jsx)(H,{variant:`ghost`,onClick:()=>ai?r(`/assistant-work?delegation=${encodeURIComponent(ai.id)}`):li(),children:ai?l===`zh`?`调整助理跟进`:`Adjust assistant follow-up`:l===`zh`?`让助理守住这个项目`:`Ask the assistant to protect this project`})}),(0,Z.jsx)(ne,{open:Sn,onOpenChange:Cn,children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(30rem,calc(100dvh-1.5rem))] w-[min(34rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(te,{className:`font-semibold text-fg`,children:l===`zh`?`让助理守住这个项目`:`Ask the assistant to protect this project`}),(0,Z.jsx)(L,{className:`mt-1 text-sm text-fg-muted`,children:l===`zh`?`助理会理解项目变化,只在需要你知道或决定时回来。`:`Your assistant will understand project changes and return only when you should know or decide.`})]}),(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{variant:`ghost`,className:`size-9 p-0`,"aria-label":l===`zh`?`关闭`:`Close`,children:(0,Z.jsx)(D,{className:`size-4`})})})]}),(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-5`,children:[(0,Z.jsxs)(`label`,{className:`text-sm font-medium text-fg`,children:[l===`zh`?`你希望助理帮你守住什么?`:`What should the assistant protect?`,(0,Z.jsx)(`textarea`,{rows:6,maxLength:12e3,className:`mt-2 w-full rounded-lg border border-edge bg-surface-base p-3 text-sm text-fg`,value:wn,onChange:e=>On(e.target.value)})]}),(0,Z.jsxs)(`div`,{className:`mt-5 rounded-xl bg-surface-hover p-4 text-sm`,children:[(0,Z.jsx)(`p`,{className:`font-medium text-fg`,children:l===`zh`?`它会这样工作`:`How it will work`}),(0,Z.jsx)(`p`,{className:`mt-2 text-fg-muted`,children:l===`zh`?`当目标、承诺或交付风险出现有意义的变化时,助理会先判断影响、准备建议,再把完整结果放到工作台。`:`When the goal, commitments, or delivery risk meaningfully changes, the assistant will assess the impact, prepare a recommendation, and bring the complete result to the Workbench.`})]}),Mn&&(0,Z.jsx)(`p`,{role:`alert`,className:`mt-4 text-sm text-danger`,children:Mn})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{variant:`ghost`,children:l===`zh`?`取消`:`Cancel`})}),(0,Z.jsx)(H,{variant:`primary`,disabled:An||!wn.trim(),onClick:()=>void ui(),children:An?l===`zh`?`正在记住…`:`Remembering…`:l===`zh`?`开始守住`:`Start protecting`})]})]})]})}),Vn?(0,Z.jsx)(`p`,{className:`mt-3 shrink-0 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:Vn}):null,(0,Z.jsxs)(`div`,{className:O(`mt-3 min-h-0 flex-1`,$===`overview`?`overflow-y-auto pr-1 [scrollbar-gutter:stable] xl:overflow-hidden xl:pr-0`:$===`tasks`?`overflow-hidden`:`overflow-y-auto pr-1 [scrollbar-gutter:stable]`),children:[$===`overview`?(0,Z.jsxs)(`section`,{id:`project-panel-overview`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-overview`,className:`grid min-h-full gap-4 xl:h-full xl:min-h-0 xl:grid-cols-[minmax(0,1fr)_20rem] xl:overflow-hidden`,children:[(0,Z.jsxs)(`div`,{className:`grid min-w-0 content-start gap-4 xl:min-h-0 xl:overflow-y-auto xl:pr-1 xl:[scrollbar-gutter:stable]`,children:[(0,Z.jsx)(Ot,{projectId:y.id},y.id),(0,Z.jsxs)(`div`,{className:`min-w-0 overflow-hidden rounded-xl bg-surface-panel shadow-surface`,children:[(0,Z.jsx)(`div`,{className:`p-5`,children:(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.directionTitle}),(0,Z.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:vi(p.overview.activitySummary,{moving:Ur,attention:Vr.length})})]}),(0,Z.jsx)(`p`,{className:`mt-2 max-w-3xl text-base font-medium leading-7 text-fg`,children:y.outcome||y.description||y.brief||p.overview.directionFallback}),T?.digest.recommendedAction?(0,Z.jsx)(`p`,{className:`mt-3 max-w-3xl rounded-lg bg-surface-hover px-3 py-2.5 text-sm font-medium leading-6 text-fg`,children:vi(p.overview.recommendedNext,{action:T.digest.recommendedAction})}):null]}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 rounded-lg px-2 text-xs`,onClick:()=>void kr(),disabled:me,children:[(0,Z.jsx)(_e,{className:`size-3.5`,"aria-hidden":!0}),me?p.overview.savingDigest:p.overview.saveDigest]})]})}),(0,Z.jsxs)(`div`,{className:`border-t border-edge-subtle`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-5 py-3.5`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.nextActions}),(0,Z.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-fg-muted transition-colors hover:text-fg`,onClick:()=>Zn(`tasks`),children:p.common.viewAll})]}),(0,Z.jsx)(`div`,{className:`divide-y divide-edge-subtle border-t border-edge-subtle`,children:Hr.length?Hr.map(e=>(0,Z.jsxs)(s,{to:De(Xn(`overview`),e.id),className:`block px-5 py-3 transition-colors hover:bg-surface-hover`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.title}),(0,Z.jsxs)(`span`,{className:O(`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium`,e.attention.length?`bg-warning/10 text-warning`:`bg-surface-hover text-fg-muted`),children:[p.board.phases[e.phase],e.operationalState===`idle`?``:` · ${p.board.operationalStates[e.operationalState]}`]})]}),e.attention[0]?(0,Z.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm leading-5 text-fg-muted`,children:e.attention[0].summary}):null]},e.id)):(0,Z.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:p.overview.noNextActions})})]})]}),T?.recentResults.length?(0,Z.jsxs)(`div`,{className:`min-w-0 overflow-hidden rounded-xl bg-surface-panel`,children:[(0,Z.jsx)(`div`,{className:`border-b border-edge-subtle px-5 py-3.5`,children:(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.recentResults})}),(0,Z.jsx)(`div`,{className:`divide-y divide-edge-subtle`,children:T.recentResults.slice(0,3).map(({taskId:e,taskTitle:t,receipt:n})=>(0,Z.jsxs)(s,{to:De(Xn(`overview`),e),className:`block px-5 py-3 transition-colors hover:bg-surface-hover`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:t}),(0,Z.jsxs)(`span`,{className:`shrink-0 rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:[p.overview.resultStatuses[n.status],` · `,p.board.verification[n.verification.status]]})]}),(0,Z.jsx)(`div`,{className:`mt-1 line-clamp-3 text-sm leading-5 text-fg-muted`,children:(0,Z.jsx)(C,{content:n.summary,compact:!0})})]},n.runId))})]}):null,y.milestones.length||y.recentUpdates.length?(0,Z.jsxs)(`div`,{className:`grid min-w-0 gap-4 md:grid-cols-2`,children:[y.milestones.length?(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-surface-panel`,children:[(0,Z.jsx)(`div`,{className:`border-b border-edge-subtle px-5 py-3.5`,children:(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.milestones})}),(0,Z.jsx)(`div`,{className:`divide-y divide-edge-subtle`,children:y.milestones.map(e=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-5 py-3`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.title}),(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:p.statuses[e.status]})]},e.id))})]}):null,y.recentUpdates.length?(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-surface-panel`,children:[(0,Z.jsx)(`div`,{className:`border-b border-edge-subtle px-5 py-3.5`,children:(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.projectUpdates})}),(0,Z.jsx)(`div`,{className:`divide-y divide-edge-subtle`,children:y.recentUpdates.slice(0,3).map(e=>(0,Z.jsxs)(`div`,{className:`px-5 py-3`,children:[(0,Z.jsx)(`p`,{className:`text-sm leading-5 text-fg`,children:e.summary}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:p.overview.healthLabels[e.health]})]},e.id))})]}):null]}):null]}),(0,Z.jsxs)(`aside`,{className:`grid min-w-0 content-start gap-4 xl:min-h-0 xl:overflow-y-auto xl:pr-1 xl:[scrollbar-gutter:stable]`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-xl bg-surface-panel p-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.overview.attention}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 rounded-lg px-2 text-xs`,"aria-expanded":Fn,onClick:()=>In(e=>!e),children:[(0,Z.jsx)(E,{className:O(`size-3.5 transition-transform`,Fn&&`rotate-45`),"aria-hidden":!0}),p.overview.addBlocker]})]}),Vr.length?(0,Z.jsx)(`div`,{className:`mt-3 grid gap-3`,children:Vr.map(e=>{let t=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(hn,{className:`size-4 text-amber-600 dark:text-amber-300`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.title})]}),(0,Z.jsxs)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:[p.overview.attentionKinds[e.kind]??e.kind,e.detail?` · ${e.detail}`:e.status?` · ${Wr(e.status)}`:``]})]});return e.href?(0,Z.jsx)(s,{to:e.href,onClick:er(tr(e.href)),className:`min-w-0 rounded-md bg-surface-base p-3 hover:bg-surface-hover`,children:t},e.id):(0,Z.jsx)(`div`,{className:`min-w-0 rounded-md bg-surface-base p-3`,children:t},e.id)})}):(0,Z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:p.overview.noBlockedTasks}),Fn?(0,Z.jsxs)(`form`,{onSubmit:gr,className:`mt-4 flex gap-2 border-t border-edge-subtle pt-4`,children:[(0,Z.jsx)(`input`,{className:`min-h-9 min-w-0 flex-1 rounded-md border border-edge bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`,value:Un.title,onChange:e=>Wn(t=>({...t,title:e.target.value})),placeholder:p.overview.blockerTitlePlaceholder}),(0,Z.jsx)(H,{type:`submit`,variant:`secondary`,className:`shrink-0 rounded-lg px-3`,disabled:bn||!Un.title.trim(),"aria-label":bn?p.overview.addingBlocker:p.overview.addBlocker,title:bn?p.overview.addingBlocker:p.overview.addBlocker,children:(0,Z.jsx)(E,{className:`size-4`,"aria-hidden":!0})})]}):null]}),(0,Z.jsxs)(`div`,{className:`min-w-0 overflow-hidden rounded-xl bg-surface-panel`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge-subtle px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(Tt,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsx)(`h2`,{className:`min-w-0 truncate text-sm font-semibold text-fg`,children:p.overview.recentSessions})]}),(0,Z.jsx)(`button`,{type:`button`,className:`shrink-0 text-xs font-medium text-accent-fg hover:underline`,onClick:()=>Zn(`sessions`),children:p.common.viewAll})]}),(0,Z.jsx)(`div`,{className:`divide-y divide-edge-subtle`,children:Br.length?Br.map(e=>(0,Z.jsxs)(s,{to:`/chat/${encodeURIComponent(e.key)}`,onClick:er(`sessions`),className:`block px-4 py-3 hover:bg-surface-hover`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:e.name||e.key}),(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:yi(e.updatedAt)})]}),(e.routing?.agentId||e.agentId)&&(e.routing?.agentId||e.agentId)!==y.defaultAgentId?(0,Z.jsx)(`p`,{className:`mt-1 truncate text-xs text-fg-muted`,children:e.routing?.agentId||e.agentId}):null]},e.key)):(0,Z.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:p.overview.noSessions})})]})]})]}):null,$===`tasks`?(0,Z.jsx)(si,{ref:zn,tasks:T?.tasks??[],dependencyEdges:T?.dependencyEdges??[],monitoring:T?.monitoring??{projectId:e??``,mode:`observe`,allowedActions:[],confidenceThreshold:.75,scenarios:[],configured:!1},returnTo:Xn(`tasks`),copy:p.board,onAction:rr,onReorder:ar,onUndoMove:or,onDependenciesChange:sr,onMonitoringChange:cr,onCreate:ir,actionBusyId:Ln}):null,$===`automations`?(0,Z.jsx)(`section`,{id:`project-panel-automations`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-automations`,className:`grid min-h-full content-start gap-4`,children:(0,Z.jsx)(kn,{projectId:y.id,embedded:!0,title:p.automations.title,subtitle:p.automations.hint})}):null,$===`notes`?(0,Z.jsx)(`section`,{id:`project-panel-notes`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-notes`,className:`flex h-full min-h-[28rem] overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:(0,Z.jsx)(hr,{selectedNoteId:n,basePath:`/projects/${encodeURIComponent(y.id)}/notes`,showLibrary:!1,allowMediaCapture:!1,projectId:y.id,listTitle:p.notes.title,listDescription:p.notes.hint,emptyText:p.notes.emptyTitle,emptyDescription:p.notes.emptyDescription,listWidthStorageKey:`xopc.projectNotes.listWidth.${y.id}`})}):null,$===`skills`?(0,Z.jsx)(Cr,{projectId:y.id,copy:p.skills}):null,$===`files`?(0,Z.jsx)(`section`,{id:`project-panel-files`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-files`,className:`flex h-full min-h-[28rem] flex-col`,children:(0,Z.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:y.effectiveWorkspaceRoot?(0,Z.jsxs)(`div`,{"data-project-files-grid":!0,className:O(`grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[var(--project-files-panel-width)_6px_minmax(0,1fr)]`,$e&&`cursor-col-resize select-none`),style:{"--project-files-panel-width":`${Ge}px`},children:[(0,Z.jsxs)(`aside`,{className:`flex min-h-0 flex-col border-b border-edge lg:border-b-0 lg:border-r`,children:[(0,Z.jsxs)(`div`,{className:`flex h-11 items-center gap-1 border-b border-edge bg-surface-muted/50 px-3 text-sm`,children:[Oe?(0,Z.jsx)(on,{resourceId:Oe.fileId,displayName:Oe.name}):null,(0,Z.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[(0,Z.jsx)(`button`,{type:`button`,className:O(`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,it&&`bg-surface-hover text-fg`),onClick:()=>lt(!0),"aria-label":p.files.search,title:p.files.search,"aria-pressed":it,children:(0,Z.jsx)(un,{className:`size-3.5`,"aria-hidden":!0})}),(0,Z.jsx)(vt,{className:`size-7 shrink-0 rounded-md p-0`,loading:kt,label:u.cron.refresh,onClick:()=>void ur()})]})]}),it?(0,Z.jsx)(`div`,{className:`shrink-0 border-b border-edge bg-surface-muted/40 px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-md border border-edge bg-surface-panel px-2 focus-within:border-accent focus-within:ring-2 focus-within:ring-accent/20`,children:[(0,Z.jsx)(un,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`input`,{type:`text`,role:`searchbox`,value:pt,onChange:e=>ht(e.target.value),placeholder:p.files.searchPlaceholder,"aria-label":p.files.searchPlaceholder,className:`min-w-0 flex-1 bg-transparent text-xs text-fg outline-none placeholder:text-fg-subtle`}),(0,Z.jsx)(`button`,{type:`button`,className:`flex size-6 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":p.files.clearSearch,title:p.files.clearSearch,onClick:()=>{ht(``),lt(!1)},children:(0,Z.jsx)(D,{className:`size-3.5`,"aria-hidden":!0})})]})}):null,jt?(0,Z.jsx)(`div`,{className:`border-b border-edge bg-red-500/10 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:jt}):null,pr?(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-2`,children:bt?(0,Z.jsxs)(`div`,{className:`space-y-2 px-3 py-1`,children:[(0,Z.jsx)(U,{className:`h-11 w-full`}),(0,Z.jsx)(U,{className:`h-11 w-full`}),(0,Z.jsx)(U,{className:`h-11 w-full`})]}):wt?(0,Z.jsxs)(`p`,{className:`px-3 py-2 text-xs text-red-600 dark:text-red-400`,children:[u.workspace.loadError,`: `,wt]}):gt.length===0?(0,Z.jsx)(`p`,{className:`px-3 py-2 text-xs text-fg-muted`,children:p.files.noSearchResults}):gt.map(e=>(0,Z.jsxs)(`button`,{type:`button`,className:O(`flex w-full min-w-0 items-center gap-2 px-3 py-2 text-left hover:bg-surface-hover`,Pe===e.path&&`bg-accent-soft text-accent-fg`),onClick:()=>Fe(e.path),title:e.path,children:[(0,Z.jsx)(dt,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block truncate text-sm text-fg`,children:e.name}),(0,Z.jsx)(`span`,{className:`block truncate text-xs text-fg-subtle`,children:e.path})]})]},e.path))}):kt&&Se.length===0?(0,Z.jsx)(`div`,{className:`px-4 py-6 text-sm text-fg-muted`,children:p.files.loading}):(0,Z.jsx)(ft,{tree:Se,selectedPath:Pe,onSelectFile:Ar,onSelectEntry:Mr,onExpandDir:e=>void dr(e),onAction:Nr,onUploadFiles:(e,t)=>void Fr(e,t),uploadDropHint:u.workspace.dropToUpload,actionLabels:{preview:u.workspace.preview,download:u.workspace.download,copyPath:u.workspace.copyPath,openDefault:u.workspace.openSystemApp,openDirectory:u.workspace.openInFileManager,openWith:u.workspace.openWith,revealInFolder:u.workspace.revealInFolder,trash:u.workspace.moveToTrash,delete:u.workspace.deleteFile,recommendedApps:u.workspace.recommendedApps,desktopUpdateRequired:u.workspace.desktopUpdateRequired},emptyHint:p.files.emptyDirectory})]}),(0,Z.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":p.files.resizeHandle,className:O(`hidden cursor-col-resize touch-none items-stretch justify-center bg-surface-panel transition-colors hover:bg-surface-hover lg:flex`,$e&&`bg-surface-hover`),onPointerDown:Lr,children:(0,Z.jsx)(`div`,{className:`my-3 w-px rounded-full bg-edge-strong/70`})}),(0,Z.jsx)(`div`,{className:`min-h-0 min-w-0 overflow-hidden bg-surface-base`,children:Pe?(0,Z.jsx)(st,{filePath:Pe,projectId:y.id,agentId:y.defaultAgentId||Bt||void 0,onClose:()=>Fe(null)}):(0,Z.jsx)(`div`,{className:`flex h-full min-h-[18rem] items-center justify-center px-6 text-center`,children:(0,Z.jsxs)(`div`,{className:`max-w-sm`,children:[(0,Z.jsx)(Ze,{className:`mx-auto size-8 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`p`,{className:`mt-3 text-sm font-medium text-fg`,children:p.files.previewEmptyTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.files.previewEmptyDescription})]})})})]}):(0,Z.jsxs)(`div`,{className:`grid gap-3 px-4 py-8 text-sm text-fg-muted`,children:[(0,Z.jsx)(`p`,{children:p.files.needWorkspace}),(0,Z.jsx)(`div`,{children:(0,Z.jsx)(H,{type:`button`,variant:`secondary`,className:`rounded-lg`,onClick:()=>Zn(`settings`),children:p.files.openSettings})})]})})}):null,$===`sessions`?(0,Z.jsxs)(`section`,{id:`project-panel-sessions`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-sessions`,className:`grid min-h-full content-start gap-3`,children:[A.length?(0,Z.jsxs)(`label`,{className:`relative flex min-h-9 w-full max-w-lg cursor-text items-center rounded-lg bg-surface-panel py-1.5 pl-9 pr-9 shadow-surface`,children:[(0,Z.jsx)(un,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,"aria-hidden":!0}),(0,Z.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:N,onChange:e=>I(e.currentTarget.value),placeholder:p.sessions.searchPlaceholder,"aria-label":p.sessions.searchPlaceholder,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`}),N?(0,Z.jsx)(`button`,{type:`button`,className:`absolute right-2 top-1/2 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":p.sessions.clearSearch,onClick:()=>I(``),children:(0,Z.jsx)(D,{className:`size-3.5`,"aria-hidden":!0})}):null]}):null,qr.length?(0,Z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:qr.map(e=>{let t=yi(e.updatedAt),n=e.routing?.agentId||e.agentId||p.common.agent,r=ji(e),i=e.name?.trim()||p.sessions.fallbackTitle,a=Gr(e.messageCount??0);return(0,Z.jsxs)(s,{to:`/chat/${encodeURIComponent(e.key)}`,onClick:er(`sessions`),className:`group flex min-h-[8.75rem] min-w-0 flex-col rounded-lg bg-surface-panel p-4 shadow-surface transition-colors hover:bg-surface-hover/45 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-base text-fg-muted`,children:(0,Z.jsx)(Dt,{className:`size-4`,"aria-hidden":!0})}),(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(`h3`,{className:`min-w-0 flex-1 truncate text-sm font-semibold text-fg`,children:i}),r?(0,Z.jsx)(`span`,{className:`shrink-0 rounded-md bg-surface-base px-2 py-0.5 text-[11px] font-medium leading-5 text-fg-muted`,children:r}):null]})})]}),(0,Z.jsxs)(`div`,{className:`mt-auto grid gap-2 pt-4 text-xs text-fg-muted`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(`span`,{className:`min-w-0 max-w-full truncate rounded-md bg-surface-base px-2 py-1`,children:[p.sessions.agent,`: `,n]}),(0,Z.jsx)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:a})]}),t?(0,Z.jsxs)(`span`,{className:`truncate rounded-md bg-surface-base px-2 py-1`,children:[p.sessions.updated,`: `,t]}):null]})]},e.key)})}):Jr?(0,Z.jsx)(`div`,{className:`grid gap-1 rounded-lg bg-surface-panel px-4 py-8 text-center shadow-surface`,children:(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:p.sessions.noMatches})}):(0,Z.jsx)(`div`,{className:`grid gap-1 rounded-lg bg-surface-panel px-4 py-8 text-center shadow-surface`,children:(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:p.sessions.emptyTitle}),(0,Z.jsx)(`p`,{className:`mx-auto mt-1 max-w-md text-sm leading-6 text-fg-muted`,children:p.sessions.emptyDescription})]})})]}):null,$===`progress`?(0,Z.jsxs)(`section`,{id:`project-panel-progress`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-progress`,className:`grid min-h-full content-start gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.progress.title}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:vi(p.progress.count,{count:ie})})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(`label`,{className:`inline-flex min-h-9 items-center gap-2 rounded-lg bg-surface-panel px-3 text-sm text-fg-muted shadow-surface`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:fe,onChange:e=>pe(e.currentTarget.checked),className:`size-4 rounded border-edge text-accent focus:ring-accent/30`}),p.progress.includeRelated]}),(0,Z.jsxs)(H,{type:`button`,variant:`secondary`,className:`h-9 rounded-lg px-3`,onClick:()=>void lr(),disabled:ae,children:[(0,Z.jsx)(We,{className:O(`size-4`,ae&&`animate-spin`),"aria-hidden":!0}),p.common.refresh]})]})]}),(0,Z.jsx)(`div`,{className:`overflow-hidden rounded-lg bg-surface-panel shadow-surface`,children:ae&&re.length===0?(0,Z.jsx)(`div`,{className:`px-4 py-8 text-sm text-fg-muted`,children:p.progress.loading}):re.length?(0,Z.jsx)(`div`,{className:`divide-y divide-edge`,children:re.map(e=>{let t=p.progress.types[e.type]??e.type,n=p.progress.objectKinds[e.primaryObject.kind]??e.primaryObject.kind,r=Ni(e),i=e.relatedProjects.length>0&&!e.scopes.some(e=>e.scopeKind===`project`&&e.scopeId===y.id);return(0,Z.jsxs)(`article`,{className:`grid gap-2 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-start justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-fg`,children:t}),i?(0,Z.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-xs font-medium text-fg-muted`,children:p.progress.related}):null]}),(0,Z.jsxs)(`p`,{className:`mt-1 min-w-0 truncate text-sm text-fg-muted`,children:[n,`: `,ki(e)]})]}),(0,Z.jsx)(`time`,{className:`shrink-0 text-xs text-fg-subtle`,dateTime:new Date(e.createdAt).toISOString(),children:yi(e.createdAt)})]}),r?(0,Z.jsx)(`p`,{className:`line-clamp-2 text-sm leading-5 text-fg-muted`,children:r}):null,(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 text-xs text-fg-subtle`,children:[(0,Z.jsxs)(`span`,{className:`rounded-md bg-surface-base px-2 py-1`,children:[p.progress.actor,`: `,Oi(e)]}),(0,Z.jsxs)(`span`,{className:`max-w-full truncate rounded-md bg-surface-base px-2 py-1`,children:[p.progress.source,`: `,Ai(e)]})]})]},e.id)})}):(0,Z.jsx)(`div`,{className:`px-4 py-8 text-sm text-fg-muted`,children:p.progress.empty})})]}):null,$===`settings`?(0,Z.jsxs)(`form`,{id:`project-panel-settings`,role:`tabpanel`,"aria-labelledby":`project-primary-tab-settings`,onSubmit:xr,onBlurCapture:zr.onBlurCapture,className:`grid min-h-full content-start gap-4 pb-1`,children:[(0,Z.jsxs)(`section`,{className:`flex min-w-0 items-start justify-between gap-3 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.summaryTitle}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-3xl text-sm leading-6 text-fg-muted`,children:p.settings.summaryHint})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-2`,children:[(0,Z.jsx)(`span`,{className:O(`rounded-full px-2 py-0.5 text-xs font-medium`,bi(Gn.status)),children:p.settings.statuses[Gn.status]}),(0,Z.jsx)(Tn,{status:zr.status,error:zr.error})]})]}),(0,Z.jsxs)(`div`,{className:`grid items-start gap-4 xl:grid-cols-[minmax(0,1fr)_22rem]`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-4`,children:[(0,Z.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.detailsTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.settings.detailsHint})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,Z.jsx)(xi,{label:p.settings.name,children:(0,Z.jsx)(`input`,{className:Si(),value:Gn.name,onChange:e=>Sr({name:e.target.value})})}),(0,Z.jsx)(xi,{label:p.settings.defaultAgent,children:(0,Z.jsxs)(f,{className:Si(),value:Gn.defaultAgentId,onChange:e=>Sr({defaultAgentId:e.target.value},!0),children:[(0,Z.jsx)(m,{value:``,children:p.settings.globalDefaultAgent}),Rt.map(e=>(0,Z.jsx)(m,{value:e.id,children:Qt(e,u.agentsSettings)},e.id))]})}),(0,Z.jsx)(xi,{label:p.settings.status,children:Qr?(0,Z.jsx)(`div`,{className:`grid min-h-10 content-center rounded-md border border-edge bg-surface-muted px-3 text-sm text-fg-muted`,children:p.settings.statuses.archived}):(0,Z.jsxs)(f,{className:Si(),value:Gn.status===`archived`?`active`:Gn.status,onChange:e=>Sr({status:e.target.value},!0),children:[(0,Z.jsx)(m,{value:`active`,children:p.settings.statuses.active}),(0,Z.jsx)(m,{value:`paused`,children:p.settings.statuses.paused})]})}),(0,Z.jsx)(xi,{label:p.settings.executionMode,hint:p.settings.executionModeHint,children:(0,Z.jsxs)(f,{className:Si(),value:Gn.executionMode,onChange:e=>Sr({executionMode:e.target.value},!0),children:[(0,Z.jsx)(m,{value:`managed_worktree`,children:p.settings.executionModeWorktree}),(0,Z.jsx)(m,{value:`local_checkout`,children:p.settings.executionModeLocal})]})}),(0,Z.jsx)(xi,{label:p.settings.description,hint:p.settings.descriptionHint,children:(0,Z.jsx)(`textarea`,{className:Si(!0),value:Gn.description,onChange:e=>Sr({description:e.target.value})})})]})]}),(0,Z.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.projectGuidanceTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.settings.projectGuidanceHint})]}),(0,Z.jsx)(xi,{label:p.settings.brief,hint:p.settings.briefHint,children:(0,Z.jsx)(`textarea`,{className:Si(!0),value:Gn.brief,onChange:e=>Sr({brief:e.target.value})})}),(0,Z.jsx)(xi,{label:p.settings.instructions,hint:p.settings.instructionsHint,children:(0,Z.jsx)(`textarea`,{className:Si(!0),value:Gn.instructions,onChange:e=>Sr({instructions:e.target.value})})})]})]}),(0,Z.jsxs)(`aside`,{className:`grid gap-4 xl:sticky xl:top-0`,children:[(0,Z.jsxs)(`section`,{className:`grid gap-3 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.workspaceRoot}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:p.settings.workspaceIndependentHint})]}),(0,Z.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Z.jsx)(`span`,{className:`w-fit rounded-md bg-surface-muted px-2 py-0.5 text-xs font-medium text-fg-muted`,children:ei?p.settings.workspaceModeFollow:p.settings.workspaceModeFixed}),(0,Z.jsx)(`div`,{className:`break-all font-mono text-xs leading-5 text-fg`,title:ti,children:ti}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:()=>void ci(),children:[(0,Z.jsx)(v,{className:`size-4`,"aria-hidden":!0}),p.settings.copyWorkspacePath]}),Oe?(0,Z.jsx)(on,{resourceId:Oe.fileId,displayName:Oe.name}):null,(0,Z.jsxs)(H,{type:`button`,variant:`secondary`,className:`rounded-lg`,onClick:wr,children:[(0,Z.jsx)(vn,{className:`size-4`,"aria-hidden":!0}),p.settings.migrateWorkspace]})]})]})]}),(0,Z.jsxs)(`section`,{className:`grid gap-3 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.currentProjectTitle}),(0,Z.jsxs)(`div`,{className:`grid gap-2`,children:[(0,Z.jsx)(Ci,{label:p.settings.defaultAgent,value:Yr}),(0,Z.jsx)(Ci,{label:p.settings.pinState,value:$r?p.settings.pinned:p.settings.notPinned}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsx)(Ci,{label:p.settings.createdAt,value:yi(y.createdAt)||p.common.never}),(0,Z.jsx)(Ci,{label:p.settings.updatedAt,value:yi(y.updatedAt)||p.common.never})]})]})]}),(0,Z.jsxs)(`section`,{className:`grid gap-4 rounded-lg bg-surface-panel p-4 shadow-surface`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:p.settings.managementTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:p.settings.managementHint})]}),(0,Z.jsxs)(`div`,{className:`grid gap-3`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:$r?p.settings.pinnedTitle:p.settings.pinTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:p.settings.pinHint})]}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`w-fit rounded-lg`,disabled:ln===`pin`,onClick:()=>void Er(),children:[$r?(0,Z.jsx)(_n,{className:`size-4`,"aria-hidden":!0}):(0,Z.jsx)(se,{className:`size-4`,"aria-hidden":!0}),$r?p.settings.unpinProject:p.settings.pinProject]})]}),(0,Z.jsxs)(`div`,{className:`grid gap-3 rounded-md border border-edge bg-surface-base p-3`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:Qr?p.settings.restoreTitle:p.settings.archiveTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:Qr?p.settings.restoreHint:p.settings.archiveHint})]}),(0,Z.jsxs)(H,{type:`button`,variant:Qr?`primary`:`ghost`,className:`w-fit rounded-lg`,disabled:ln===`archive`,onClick:()=>void Dr(),children:[Qr?(0,Z.jsx)(We,{className:`size-4`,"aria-hidden":!0}):(0,Z.jsx)(Te,{className:`size-4`,"aria-hidden":!0}),Qr?p.settings.restoreProject:p.settings.archiveProject]})]})]})]}),(0,Z.jsxs)(`section`,{className:`grid gap-3 rounded-lg border border-red-500/20 bg-red-500/5 p-4`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-red-700 dark:text-red-300`,children:p.settings.dangerTitle}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-red-700/80 dark:text-red-200/80`,children:p.settings.dangerHint})]}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`w-fit text-red-600 hover:bg-red-500/10 hover:text-red-700 focus-visible:ring-red-500 dark:text-red-400 dark:hover:text-red-300`,onClick:()=>Xt(!0),children:[(0,Z.jsx)(G,{className:`size-4`,"aria-hidden":!0}),p.settings.deleteConfirmAction]})]})]})]})]}):null]}),(0,Z.jsx)(ne,{open:Jt,onOpenChange:e=>{fn||Xt(e)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-5 shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400`,children:(0,Z.jsx)(hn,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:p.settings.deleteConfirmTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:y?vi(p.settings.deleteConfirm,{name:y.name}):p.settings.deleteConfirmFallback})]})]}),(0,Z.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:fn,children:p.common.cancel})}),(0,Z.jsxs)(H,{type:`button`,variant:`ghost`,className:`rounded-lg text-red-600 hover:bg-red-500/10 hover:text-red-700 focus-visible:ring-red-500 dark:text-red-400 dark:hover:text-red-300`,disabled:fn||!y,onClick:()=>void Or(),children:[(0,Z.jsx)(G,{className:`size-4`,"aria-hidden":!0}),p.settings.deleteConfirmAction]})]})]})]})}),(0,Z.jsx)(Je,{open:!!Ie,title:u.workspace.trashConfirmTitle,description:u.workspace.trashConfirmDescription.replace(`{{name}}`,Ie?.name??``),confirmLabel:u.workspace.moveToTrash,cancelLabel:u.workspace.cancel,destructive:!0,onConfirm:()=>void Pr(),onCancel:()=>Le(null)}),(0,Z.jsx)(Je,{open:!!ze,title:u.workspace.deleteConfirmTitle,description:u.workspace.deleteConfirmDescription.replace(`{{name}}`,ze?.name??``),confirmLabel:u.workspace.deleteFile,cancelLabel:u.workspace.cancel,destructive:!0,onConfirm:()=>void Ir(),onCancel:()=>Ve(null)}),(0,Z.jsx)(ne,{open:en,onOpenChange:e=>{Gt||nn(e)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:p.settings.workspaceMigrationTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.settings.workspaceMigrationDescription})]}),(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg-muted`,children:p.settings.workspaceMode}),(0,Z.jsxs)(`div`,{className:`grid gap-2 md:grid-cols-2`,children:[(0,Z.jsxs)(`label`,{className:O(`flex min-h-10 items-start gap-2 rounded-md border px-3 py-2`,rn===`fixed`?`border-accent bg-accent-soft/40 text-fg`:`border-edge bg-surface-base text-fg-muted`),children:[(0,Z.jsx)(`input`,{type:`radio`,className:`mt-0.5 size-4`,checked:rn===`fixed`,onChange:()=>an(`fixed`),disabled:Gt}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`block font-medium`,children:p.settings.workspaceModeFixed}),(0,Z.jsx)(`span`,{className:`block text-xs leading-5 text-fg-subtle`,children:p.settings.workspaceMigrationFixedHint})]})]}),(0,Z.jsxs)(`label`,{className:O(`flex min-h-10 items-start gap-2 rounded-md border px-3 py-2`,rn===`follow`?`border-accent bg-accent-soft/40 text-fg`:`border-edge bg-surface-base text-fg-muted`),children:[(0,Z.jsx)(`input`,{type:`radio`,className:`mt-0.5 size-4`,checked:rn===`follow`,onChange:()=>an(`follow`),disabled:Gt}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`block font-medium`,children:p.settings.workspaceModeFollow}),(0,Z.jsx)(`span`,{className:`block text-xs leading-5 text-fg-subtle`,children:p.settings.workspaceHint})]})]})]})]}),rn===`fixed`?(0,Z.jsx)(Hn,{value:sn,onChange:cn,disabled:Gt,wd:d,placeholder:p.settings.workspacePlaceholder,inputClassName:Si(),autoFocus:!0}):null,(0,Z.jsx)(`div`,{className:`rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm leading-6 text-amber-800 dark:text-amber-200`,children:p.settings.workspaceMigrationImpact}),(0,Z.jsx)(`div`,{className:`rounded-lg bg-surface-muted px-3 py-2 text-xs leading-5 text-fg-subtle`,children:vi(p.settings.workspaceCurrent,{workspace:ni})})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(R,{asChild:!0,children:(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,disabled:Gt,children:p.common.cancel})}),(0,Z.jsxs)(H,{type:`button`,variant:`primary`,className:`rounded-lg`,disabled:Gt||!ri,onClick:()=>void Tr(),children:[(0,Z.jsx)(vn,{className:`size-4`,"aria-hidden":!0}),p.settings.workspaceMigrationConfirm]})]})]})]})}),(0,Z.jsx)(ne,{open:!!Zt,onOpenChange:e=>{e||$t(null)},children:(0,Z.jsxs)(z,{children:[(0,Z.jsx)(F,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsxs)(ee,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,Z.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(te,{className:`text-base font-semibold text-fg`,children:p.settings.workspaceMissingTitle}),(0,Z.jsx)(L,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:Zt?vi(p.settings.workspaceMissingDescription,{workspace:Zt}):null})]}),Zt?(0,Z.jsx)(`div`,{className:`px-5 py-4`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-surface-muted px-3 py-2 text-sm text-fg-muted`,children:[(0,Z.jsx)(Ze,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:Zt})]})}):null,(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,Z.jsx)(H,{type:`button`,variant:`ghost`,className:`rounded-lg`,onClick:di,disabled:Gt,children:p.settings.workspaceMissingBack}),(0,Z.jsxs)(H,{type:`button`,variant:`primary`,className:`rounded-lg`,onClick:()=>void Tr({createWorkspaceRoot:!0}),disabled:Gt,children:[(0,Z.jsx)(vn,{className:`size-4`,"aria-hidden":!0}),p.settings.workspaceMissingCreate]})]})]})]})})]})}export{Li as ProjectDetailPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-Cq1tE_3b.js";import{n as a,r as o}from"./popover-select-DGmMQt4t.js";import{t as s}from"./loader-circle-CifKLtgG.js";import{t as c}from"./plus-Q2yW6OE7.js";import{t as l}from"./x-B_N4OPjy.js";import{t as u}from"./cn-JdwAhgNB.js";import{n as d}from"./locale-store-DO6JJ1l2.js";import{t as ee}from"./messages-BgZRsCkG.js";import{a as f,i as p,n as m,o as h,r as g,s as _,t as v}from"./dist-BGTk37IG.js";import{t as y}from"./button-BA45yciM.js";import{t as b}from"./skeleton-BwbyijEw.js";import{$i as x,Bc as S,Bl as C,Da as w,Ea as T,Ha as E,Hu as D,La as O,Oc as k,Ra as A,Vl as j,Vr as M,da as N,go as P,ra as te,wc as ne,za as re,zc as F,zu as I}from"./index-C9aQA4Dr.js";var L=n(),R=e(t(),1),z=r();function B(e,t){if(e==null)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:M(n)}function ie(e){return[...e].sort((e,t)=>{let n=Number(!!t.pinnedAt)-Number(!!e.pinnedAt);return n===0?new Date(t.lastActiveAt??t.updatedAt).getTime()-new Date(e.lastActiveAt??e.updatedAt).getTime():n})}function ae(){let e=(0,L.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,z.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,"aria-busy":!0,children:Array.from({length:6},V)}),e[0]=t):t=e[0],t}function V(e,t){return(0,z.jsx)(b,{className:`h-40 rounded-xl`},t)}function oe(e){let t=(0,L.c)(59),{project:n,busy:r,onTogglePin:a,onToggleArchive:o}=e,s=d(H),c,l,u,f,p,m,h,g;if(t[0]!==s||t[1]!==n.brief||t[2]!==n.description||t[3]!==n.id||t[4]!==n.lastActiveAt||t[5]!==n.name||t[6]!==n.status||t[7]!==n.updatedAt||t[8]!==n.workspaceRoot){let e=ee(s).projectsPage;c=e.management,h=`flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`;let r;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,z.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent`,children:(0,z.jsx)(j,{className:`size-4`,"aria-hidden":!0})}),t[17]=r):r=t[17];let a;t[18]===n.name?a=t[19]:(a=(0,z.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:n.name}),t[18]=n.name,t[19]=a);let o=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[a,(0,z.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.statuses[n.status]})]}),d;t[20]===o?d=t[21]:(d=(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[r,o]}),t[20]=o,t[21]=d);let _;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,z.jsx)(I,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0}),t[22]=_):_=t[22];let v;t[23]===d?v=t[24]:(v=(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[d,_]}),t[23]=d,t[24]=v),g=(0,z.jsxs)(i,{to:`/projects/${encodeURIComponent(n.id)}`,className:`group flex min-w-0 flex-1 flex-col rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[v,(0,z.jsx)(`p`,{className:`mt-3 line-clamp-2 min-h-10 text-xs leading-5 text-fg-muted`,children:n.description||n.brief||e.noDescription})]}),m=`mt-3 flex shrink-0 items-end justify-between gap-3 border-t border-edge-subtle pt-3`,f=`min-w-0 text-[11px] text-fg-subtle`,p=(0,z.jsx)(`p`,{className:`truncate`,children:n.workspaceRoot||e.agentDefault}),l=`mt-1`,u=B(n.lastActiveAt??n.updatedAt,e.never),t[0]=s,t[1]=n.brief,t[2]=n.description,t[3]=n.id,t[4]=n.lastActiveAt,t[5]=n.name,t[6]=n.status,t[7]=n.updatedAt,t[8]=n.workspaceRoot,t[9]=c,t[10]=l,t[11]=u,t[12]=f,t[13]=p,t[14]=m,t[15]=h,t[16]=g}else c=t[9],l=t[10],u=t[11],f=t[12],p=t[13],m=t[14],h=t[15],g=t[16];let _;t[25]!==l||t[26]!==u?(_=(0,z.jsx)(`p`,{className:l,children:u}),t[25]=l,t[26]=u,t[27]=_):_=t[27];let v;t[28]!==f||t[29]!==p||t[30]!==_?(v=(0,z.jsxs)(`div`,{className:f,children:[p,_]}),t[28]=f,t[29]=p,t[30]=_,t[31]=v):v=t[31];let b=n.pinnedAt?c.unpin:c.pin,x=n.pinnedAt?c.unpin:c.pin,C;t[32]===n.pinnedAt?C=t[33]:(C=n.pinnedAt?(0,z.jsx)(F,{className:`size-4`,"aria-hidden":!0}):(0,z.jsx)(S,{className:`size-4`,"aria-hidden":!0}),t[32]=n.pinnedAt,t[33]=C);let w;t[34]!==r||t[35]!==a||t[36]!==b||t[37]!==x||t[38]!==C?(w=(0,z.jsx)(y,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:a,"aria-label":b,title:x,children:C}),t[34]=r,t[35]=a,t[36]=b,t[37]=x,t[38]=C,t[39]=w):w=t[39];let T=n.status===`archived`?c.restore:c.archive,E=n.status===`archived`?c.restore:c.archive,O;t[40]===n.status?O=t[41]:(O=n.status===`archived`?(0,z.jsx)(k,{className:`size-4`,"aria-hidden":!0}):(0,z.jsx)(D,{className:`size-4`,"aria-hidden":!0}),t[40]=n.status,t[41]=O);let A;t[42]!==r||t[43]!==o||t[44]!==T||t[45]!==E||t[46]!==O?(A=(0,z.jsx)(y,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:o,"aria-label":T,title:E,children:O}),t[42]=r,t[43]=o,t[44]=T,t[45]=E,t[46]=O,t[47]=A):A=t[47];let M;t[48]!==w||t[49]!==A?(M=(0,z.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[w,A]}),t[48]=w,t[49]=A,t[50]=M):M=t[50];let N;t[51]!==M||t[52]!==m||t[53]!==v?(N=(0,z.jsxs)(`div`,{className:m,children:[v,M]}),t[51]=M,t[52]=m,t[53]=v,t[54]=N):N=t[54];let P;return t[55]!==N||t[56]!==h||t[57]!==g?(P=(0,z.jsxs)(`article`,{className:h,children:[g,N]}),t[55]=N,t[56]=h,t[57]=g,t[58]=P):P=t[58],P}function H(e){return e.language}function U(){let e=ee(d(e=>e.language)),t=e.projectsPage,n=t.management,r=e.chat.workingDirectory,i=P(e=>e.setPageHeader),b=P(e=>e.clearPageHeader),[S,D]=(0,R.useState)([]),[k,M]=(0,R.useState)(!0),[F,I]=(0,R.useState)(null),[L,B]=(0,R.useState)(``),[V,H]=(0,R.useState)(!1),[U,se]=(0,R.useState)(`active`),[ce,le]=(0,R.useState)(null),[ue,W]=(0,R.useState)(!1),[de,G]=(0,R.useState)(null),[K,fe]=(0,R.useState)(!1),[q,pe]=(0,R.useState)(!0),[J,me]=(0,R.useState)(``),[Y,he]=(0,R.useState)(``),[X,ge]=(0,R.useState)(``),Z=te({initialPath:X,onPicked:ge}),Q=(0,R.useCallback)(async()=>{M(!0),I(null);try{D(ie((await O({limit:100,sortBy:`updatedAt`,sortOrder:`desc`})).items))}catch(e){I(e instanceof Error?e.message:String(e))}finally{M(!1)}},[]);(0,R.useEffect)(()=>{Q()},[Q]);let $=(0,R.useMemo)(()=>{let e=L.trim().toLocaleLowerCase();return S.filter(e=>U===`all`||e.status===U).filter(t=>!e||[t.name,t.description,t.brief,t.workspaceRoot].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e)))},[U,S,L]),_e=(0,R.useMemo)(()=>(0,z.jsxs)(y,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>W(!0),children:[(0,z.jsx)(c,{className:`size-4`,"aria-hidden":!0}),t.create]}),[t.create]);(0,R.useLayoutEffect)(()=>(i({startExtra:null,main:(0,z.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:n.title}),end:_e}),()=>b()),[b,_e,n.title,i]);let ve=(0,R.useCallback)(async e=>{e.preventDefault();let t=J.trim(),n=X.trim();if(!(!t||!n||K)){fe(!0),G(null);try{let e=await w({autoUnderstand:q,name:t,...Y.trim()?{description:Y.trim()}:{},workspaceRoot:n});D(t=>[e,...t.filter(t=>t.id!==e.id)]),me(``),he(``),ge(``),pe(!0),W(!1),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){G(e instanceof Error?e.message:String(e))}finally{fe(!1)}}},[K,Y,J,X,q]),ye=(0,R.useCallback)(async(e,t)=>{le(e.id),I(null);try{let n;n=t===`pin`?e.pinnedAt?await E(e.id):await A(e.id):e.status===`archived`?await re(e.id):await T(e.id),D(e=>e.map(e=>e.id===n.id?n:e)),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){I(e instanceof Error?e.message:String(e))}finally{le(null)}},[]),be=[{id:`active`,label:t.statuses.active},{id:`paused`,label:t.statuses.paused},{id:`archived`,label:t.statuses.archived},{id:`all`,label:t.all}],xe=be.find(e=>e.id===U)?.label??t.all,Se=n.resultCount.replace(`{{status}}`,xe).replace(`{{count}}`,String($.length));return(0,z.jsxs)(`main`,{className:`mx-auto flex w-full max-w-6xl flex-1 flex-col gap-5 px-4 py-7 sm:px-6 lg:px-8 lg:py-9`,children:[(0,z.jsx)(v,{open:ue,onOpenChange:e=>{W(e),e||G(null)},children:(0,z.jsxs)(h,{children:[(0,z.jsx)(f,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,z.jsxs)(g,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-float focus:outline-none`,children:[(0,z.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,z.jsx)(_,{className:`text-base font-semibold text-fg`,children:t.createTitle}),(0,z.jsx)(p,{className:`mt-1 text-sm text-fg-muted`,children:t.createDescription})]}),(0,z.jsxs)(`form`,{onSubmit:ve,className:`flex min-h-0 flex-1 flex-col`,children:[(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,z.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[t.projectName,(0,z.jsx)(`input`,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:J,onChange:e=>me(e.target.value),maxLength:160})]}),(0,z.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[n.descriptionLabel,(0,z.jsx)(`textarea`,{className:`min-h-28 resize-none rounded-lg border border-edge bg-surface-base px-3 py-2 font-normal leading-6 outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:Y,onChange:e=>he(e.target.value),maxLength:2e3,placeholder:n.descriptionPlaceholder})]}),(0,z.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,z.jsx)(`span`,{className:`font-medium text-fg`,children:t.workspaceRoot}),(0,z.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Z.pick,disabled:K||Z.picking,children:[Z.picking?(0,z.jsx)(s,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,z.jsx)(C,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:X?r.chooseFolder:r.selectWorkingDirectory}),(0,z.jsx)(`span`,{className:u(`mt-0.5 block truncate font-mono text-xs font-normal`,X?`text-fg-muted`:`text-fg-subtle`),title:X||void 0,children:X||t.workspaceSelectionPlaceholder})]})]}),(0,z.jsx)(`p`,{className:`text-xs font-normal text-fg-subtle`,children:t.workspaceSelectionHint})]}),(0,z.jsx)(N,{checked:q,onChange:pe,disabled:K}),de?(0,z.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:de}):null]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,z.jsx)(m,{asChild:!0,children:(0,z.jsx)(y,{type:`button`,variant:`ghost`,children:t.cancel})}),(0,z.jsx)(y,{type:`submit`,variant:`primary`,disabled:K||!J.trim()||!X.trim(),children:K?t.home.creating:t.create})]})]})]})]})}),Z.hasNativePicker?null:(0,z.jsx)(x,{open:Z.modalOpen,onOpenChange:Z.setModalOpen,initialAbsolutePath:X||void 0,onConfirm:Z.confirmPick,wd:r}),(0,z.jsxs)(`section`,{className:`flex min-h-10 flex-wrap items-center justify-between gap-3`,"aria-label":n.filterLabel,children:[(0,z.jsx)(`p`,{className:`text-sm font-medium text-fg-muted`,"aria-live":`polite`,children:Se}),(0,z.jsxs)(`div`,{className:u(`ml-auto flex min-w-0 items-center justify-end gap-2`,V&&`w-full sm:w-auto`),children:[V?(0,z.jsxs)(`div`,{className:`relative min-w-0 flex-1 sm:w-64 sm:flex-none`,children:[(0,z.jsx)(ne,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{autoFocus:!0,className:`h-9 w-full rounded-lg border border-edge bg-surface-panel pl-9 pr-9 text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:L,onChange:e=>B(e.target.value),placeholder:t.searchPlaceholder,"aria-label":t.searchPlaceholder}),(0,z.jsx)(`button`,{type:`button`,className:`absolute right-1.5 top-1/2 flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg`,onClick:()=>{B(``),H(!1)},"aria-label":n.clearSearch,title:n.clearSearch,children:(0,z.jsx)(l,{className:`size-3.5`,"aria-hidden":!0})})]}):(0,z.jsx)(y,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,onClick:()=>H(!0),"aria-label":t.searchPlaceholder,title:t.searchPlaceholder,children:(0,z.jsx)(ne,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(a,{className:`w-28 sm:w-32`,triggerClassName:`h-9 border-edge bg-surface-panel px-2.5 text-xs font-medium`,contentClassName:`min-w-36`,align:`end`,value:U,"aria-label":n.filterLabel,onChange:e=>se(e.target.value),children:be.map(e=>(0,z.jsx)(o,{value:e.id,children:e.label},e.id))})]})]}),F?(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,role:`alert`,children:[(0,z.jsx)(`span`,{children:F}),(0,z.jsx)(y,{type:`button`,variant:`ghost`,className:`h-8 px-2`,onClick:()=>void Q(),children:t.home.retry})]}):null,k?(0,z.jsx)(ae,{}):$.length?(0,z.jsx)(`section`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:$.map(e=>(0,z.jsx)(oe,{project:e,busy:ce===e.id,onTogglePin:()=>void ye(e,`pin`),onToggleArchive:()=>void ye(e,`archive`)},e.id))}):(0,z.jsxs)(`section`,{className:`py-16 text-center`,children:[(0,z.jsx)(j,{className:`mx-auto size-7 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`h2`,{className:`mt-3 text-sm font-semibold text-fg`,children:n.emptyTitle}),(0,z.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:n.emptyHint})]})]})}export{U as ProjectsPage};
|