wind-agent-cli 1.37.3 → 1.38.0
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/README.md +16 -1
- package/dist/api-docs.html +2 -2
- package/dist/assets/{CodeEditor-BqmxpZ_D.js → CodeEditor-FvgsnJ7J.js} +6 -6
- package/dist/assets/FileTree-NLULrBDi.js +1 -0
- package/dist/assets/GitPanel-51KUBbEW.js +4 -0
- package/dist/assets/{MarkdownPreview-93h_1tJa.js → MarkdownPreview-PEEWVWeS.js} +17 -27
- package/dist/assets/Shell-BEx66cW_.js +76 -0
- package/dist/assets/Shell-DrlLKa8f.css +1 -0
- package/dist/assets/StandaloneShell-BkuUCPZP.js +1 -0
- package/dist/assets/TaskMasterPanel-DfQG80SF.js +2 -0
- package/dist/assets/abnfDiagram-N423BO3Z-Cc0ul87U.js +1 -0
- package/dist/assets/arc-BAuugHw_.js +1 -0
- package/dist/assets/architectureDiagram-T3A2C74G-DA3G7QZD.js +36 -0
- package/dist/assets/{blockDiagram-VBNYF7ZC-oSjQ1SgE.js → blockDiagram-VBNYF7ZC-tJ12IJs3.js} +4 -4
- package/dist/assets/c4Diagram-5PPSVZJV-5BTMCXL4.js +10 -0
- package/dist/assets/channel-BGDgNNQz.js +1 -0
- package/dist/assets/{chunk-2GRJ4B5K-B07uZ07O.js → chunk-2GRJ4B5K-BPaI06Ou.js} +1 -1
- package/dist/assets/{chunk-2Q5K7J3B-DNSfO7xS.js → chunk-2Q5K7J3B-HV4zmsEe.js} +1 -1
- package/dist/assets/chunk-5RXB4S5H-BAwutJoU.js +231 -0
- package/dist/assets/{chunk-5VM5RSS4-B7vZV0zC.js → chunk-5VM5RSS4-B9QAJPrv.js} +1 -1
- package/dist/assets/{chunk-6Q2QTUOP-DuS_xUGG.js → chunk-6Q2QTUOP-BOIW8bzI.js} +1 -1
- package/dist/assets/chunk-GF5L2VYU-DD13o00-.js +206 -0
- package/dist/assets/{chunk-JWPE2WC7-DD2hcXvs.js → chunk-JWPE2WC7-CFBm23VK.js} +1 -1
- package/dist/assets/{chunk-KBJHAD2P-Cz-l38qp.js → chunk-KBJHAD2P-C0i0v8Op.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-DGFIU1YM.js → chunk-RYQCIY6F-DfeK0taV.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-CmfzoYFl.js → chunk-XXDRQBXY-BKWvf-QE.js} +1 -1
- package/dist/assets/classDiagram-JCYQIIEL-C2SNM4oy.js +1 -0
- package/dist/assets/classDiagram-v2-OCEON4UE-C2SNM4oy.js +1 -0
- package/dist/assets/cose-bilkent-JH36ORCC-CBE8oM7L.js +1 -0
- package/dist/assets/{cynefin-VYW2F7L2-P1HecReO.js → cynefin-VYW2F7L2-DziGp35A.js} +11 -23
- package/dist/assets/cynefinDiagram-MW4NZA55-CNvtHl39.js +62 -0
- package/dist/assets/cytoscape.esm-yzknjiTM.js +321 -0
- package/dist/assets/dagre-VZM6K2ZE-Bz9lsU7m.js +4 -0
- package/dist/assets/{diagram-7IWD3JNH-9CWGFMYR.js → diagram-7IWD3JNH-CV7D3VSd.js} +5 -5
- package/dist/assets/{diagram-B4RE2ZJO-TWK59T6V.js → diagram-B4RE2ZJO-Dj4EjDNC.js} +2 -2
- package/dist/assets/diagram-LBJQPF4R-wJ6FHvf-.js +24 -0
- package/dist/assets/diagram-Q27KOJAE-DMFYMhOB.js +24 -0
- package/dist/assets/diagram-UB23O5K3-DeBSbWAI.js +41 -0
- package/dist/assets/ebnfDiagram-BXEA7PRR-2NnJSGhT.js +1 -0
- package/dist/assets/erDiagram-JOGREHBK-DrSlg8hr.js +85 -0
- package/dist/assets/feature-chat-CvOCyaLe.js +88 -0
- package/dist/assets/feature-workspace-CAB6bgPy.js +39 -0
- package/dist/assets/{flowDiagram-UKHOOZJN-DEr2II5V.js → flowDiagram-UKHOOZJN-C0pejU6W.js} +4 -4
- package/dist/assets/ganttDiagram-PKOTCBZU-BM0VCUUz.js +292 -0
- package/dist/assets/gitGraphDiagram-DS77QQ5N-SbLG0c5_.js +106 -0
- package/dist/assets/graph-DOmOIIwC.js +1 -0
- package/dist/assets/{index-BSe3UiFA.js → index-BflGfU1C.js} +3 -3
- package/dist/assets/index-Btkf0_rU.js +1 -0
- package/dist/assets/index-Cr5MbHuj.css +1 -0
- package/dist/assets/index-Gqazqfs3.js +1 -0
- package/dist/assets/index-nyrkoQK6.js +35 -0
- package/dist/assets/infoDiagram-6WML65LV-Cf5DSa66.js +2 -0
- package/dist/assets/ishikawaDiagram-WSZJBQD7-DwyFutKy.js +70 -0
- package/dist/assets/journeyDiagram-NVQOT4AX-Df0FRhLo.js +139 -0
- package/dist/assets/{kanban-definition-27J2QSJJ-DmlgiV7K.js → kanban-definition-27J2QSJJ-HmpbjrZz.js} +6 -6
- package/dist/assets/{layout-D6BstSzF.js → layout-D-LzfAck.js} +1 -1
- package/dist/assets/{linear-Ct_eoJQk.js → linear-DOM01LBe.js} +1 -1
- package/dist/assets/map-DxJ2ADlA.js +1 -0
- package/dist/assets/mermaid.core-C2Ma-_S6.js +306 -0
- package/dist/assets/{mindmap-definition-FAOFIHXS-DGtMgQhf.js → mindmap-definition-FAOFIHXS-B4GOIn76.js} +4 -4
- package/dist/assets/pegDiagram-VL7TDLO6-BHur7aH2.js +1 -0
- package/dist/assets/{pieDiagram-7S7Q4E2Y-DMkt_Zfr.js → pieDiagram-7S7Q4E2Y-Cw0UELLV.js} +2 -2
- package/dist/assets/quadrantDiagram-CIZ2JOQS-CB2BrX3g.js +7 -0
- package/dist/assets/railroadDiagram-AXF67PYL-DPYZYmLX.js +1 -0
- package/dist/assets/requirementDiagram-LRYGKXZP-DSX4IJ1n.js +84 -0
- package/dist/assets/sankeyDiagram-W5VNT64P-TenC3ZQo.js +40 -0
- package/dist/assets/sequenceDiagram-SI44F4Z6-DltGsf3F.js +162 -0
- package/dist/assets/sizeCapture-X5ZJPWSS-D7llwbJZ.js +1 -0
- package/dist/assets/stateDiagram-OKZ733FA-C-hAvbnY.js +1 -0
- package/dist/assets/stateDiagram-v2-UEYNNEHI-DaYSFcRQ.js +1 -0
- package/dist/assets/swimlanes-SLNWSIFB-DWD30fv6.js +2 -0
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-LTkF2T6t.js +8 -0
- package/dist/assets/timeline-definition-Z64GVDOM-quWmimSE.js +120 -0
- package/dist/assets/vendor-data-DsEZeNPr.js +4 -0
- package/dist/assets/vendor-i18n-B6HjLCnN.js +1 -0
- package/dist/assets/vendor-markdown-DkITEES2.js +298 -0
- package/dist/assets/vendor-react-C2GTiUCy.js +10 -0
- package/dist/assets/vendor-ui-CAUHSABu.js +49 -0
- package/dist/assets/vennDiagram-T6HMQDX7-aUQcm8h5.js +34 -0
- package/dist/assets/{wardleyDiagram-T6FBY63Y-Db9dsaXv.js → wardleyDiagram-T6FBY63Y-BZ0bwsFQ.js} +2 -2
- package/dist/assets/workbox-window.prod.es5-BBnX5xw4.js +2 -0
- package/dist/assets/xychartDiagram-ELKLHX3M-DOVzAq63.js +7 -0
- package/dist/favicon.png +0 -0
- package/dist/icons/icon-128x128.png +0 -0
- package/dist/icons/icon-144x144.png +0 -0
- package/dist/icons/icon-152x152.png +0 -0
- package/dist/icons/icon-180x180.png +0 -0
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-384x384.png +0 -0
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-72x72.png +0 -0
- package/dist/icons/icon-96x96.png +0 -0
- package/dist/icons/icon-maskable-192x192.png +0 -0
- package/dist/icons/icon-maskable-512x512.png +0 -0
- package/dist/icons/new-icon.png +0 -0
- package/dist/index.html +17 -27
- package/dist/logo-128.png +0 -0
- package/dist/logo-256.png +0 -0
- package/dist/manifest.webmanifest +1 -0
- package/dist/push-sw.js +48 -0
- package/dist/screenshots/setup-screen-mobile.png +0 -0
- package/dist/screenshots/setup-screen.png +0 -0
- package/dist/sw.js +1 -124
- package/dist/workbox-ae5c0bb2.js +1 -0
- package/dist-server/server/index.js +1 -1
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/load-env.js +4 -2
- package/dist-server/server/load-env.js.map +1 -1
- package/dist-server/server/modules/agent/agent.routes.js +1 -1
- package/dist-server/server/modules/agent/agent.routes.js.map +1 -1
- package/dist-server/server/modules/browser-use/browser-use.service.js +1 -1
- package/dist-server/server/modules/browser-use/browser-use.service.js.map +1 -1
- package/dist-server/server/modules/cli/cli.service.js +5 -5
- package/dist-server/server/modules/cli/cli.service.js.map +1 -1
- package/dist-server/server/modules/cli/sandbox.service.js +7 -7
- package/dist-server/server/modules/cli/sandbox.service.js.map +1 -1
- package/dist-server/server/modules/commands/commands.routes.js +1 -1
- package/dist-server/server/modules/commands/commands.routes.js.map +1 -1
- package/dist-server/server/modules/commands/tests/commands.test.js +1 -1
- package/dist-server/server/modules/commands/tests/commands.test.js.map +1 -1
- package/dist-server/server/modules/database/connection.js +1 -1
- package/dist-server/server/modules/database/connection.js.map +1 -1
- package/dist-server/server/modules/database/repositories/sessions.db.js +1 -1
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js +3 -2
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js +4 -3
- package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +2 -1
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js +1 -1
- package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js.map +1 -1
- package/dist-server/server/modules/notifications/vapid-keys.service.js +1 -1
- package/dist-server/server/modules/notifications/vapid-keys.service.js.map +1 -1
- package/dist-server/server/modules/projects/tests/project-management.service.test.js +2 -1
- package/dist-server/server/modules/projects/tests/project-management.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +2 -2
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +1 -1
- package/dist-server/server/modules/providers/services/sessions.service.js +1 -1
- package/dist-server/server/modules/providers/tests/claude-auth.test.js +8 -0
- package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js +1 -1
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +2 -2
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js +1 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -1
- package/dist-server/server/modules/system/system.service.js +1 -1
- package/dist-server/server/modules/system/system.service.js.map +1 -1
- package/dist-server/server/modules/system/tests/system.service.test.js +1 -1
- package/dist-server/server/modules/system/tests/system.service.test.js.map +1 -1
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js +4 -3
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -1
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +1 -1
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-list.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-open.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-remove.service.js +1 -1
- package/electron/cloud.js +3 -3
- package/electron/desktopNotifications.js +1 -1
- package/electron/desktopWindow.js +12 -12
- package/electron/launcher/index.html +1 -1
- package/electron/launcher/launcher.js +14 -14
- package/electron/localServer.js +5 -5
- package/electron/main.js +19 -19
- package/electron/serverInstaller.js +2 -2
- package/electron/viewHost.js +1 -1
- package/package.json +49 -37
- package/public/api-docs.html +2 -2
- package/scripts/build-client.mjs +30 -0
- package/scripts/generate-pwa-icons.ps1 +33 -0
- package/scripts/verify-pwa-build.mjs +37 -0
- package/server/index.ts +1 -1
- package/server/load-env.ts +4 -2
- package/server/modules/agent/agent.routes.ts +1 -1
- package/server/modules/browser-use/browser-use.service.ts +1 -1
- package/server/modules/cli/cli.service.ts +5 -5
- package/server/modules/cli/sandbox.service.ts +7 -7
- package/server/modules/commands/commands.routes.ts +1 -1
- package/server/modules/commands/tests/commands.test.ts +1 -1
- package/server/modules/database/connection.ts +2 -1
- package/server/modules/database/repositories/sessions.db.ts +1 -1
- package/server/modules/database/tests/projects.db.integration.test.ts +3 -2
- package/server/modules/database/tests/sessions-provider-mapping.test.ts +4 -3
- package/server/modules/database/tests/sessions.db.integration.test.ts +2 -1
- package/server/modules/notifications/services/notification-orchestrator.service.js +1 -1
- package/server/modules/notifications/vapid-keys.service.ts +1 -1
- package/server/modules/projects/tests/project-management.service.test.ts +2 -1
- package/server/modules/providers/list/codex/codex-app-server.client.ts +2 -2
- package/server/modules/providers/list/codex/codex-models.provider.ts +1 -1
- package/server/modules/providers/list/cursor/cursor-models.provider.ts +1 -1
- package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +0 -1
- package/server/modules/providers/list/opencode/opencode-models.provider.ts +1 -1
- package/server/modules/providers/services/sessions.service.ts +1 -1
- package/server/modules/providers/tests/claude-auth.test.ts +7 -0
- package/server/modules/providers/tests/codex-sessions.test.ts +1 -1
- package/server/modules/providers/tests/opencode-sessions.test.ts +2 -2
- package/server/modules/providers/tests/provider.routes.test.ts +1 -1
- package/server/modules/system/system.service.ts +1 -1
- package/server/modules/system/tests/system.service.test.ts +1 -1
- package/server/modules/taskmaster/taskmaster.routes.ts +4 -3
- package/server/modules/websocket/services/shell-websocket.service.ts +1 -1
- package/server/modules/worktrees/services/worktree-list.service.ts +1 -1
- package/server/modules/worktrees/services/worktree-open.service.ts +1 -1
- package/server/modules/worktrees/services/worktree-remove.service.ts +1 -1
- package/server/shared/interfaces.ts +1 -1
- package/server/shared/types.ts +6 -6
- package/dist/assets/FileTree-DLE7Ioai.js +0 -127
- package/dist/assets/GitPanel-f8RMRa8D.js +0 -29
- package/dist/assets/PluginTabContent-DU1jjkXP.js +0 -1
- package/dist/assets/Shell-CN_2MRIM.js +0 -81
- package/dist/assets/Shell-qxJ8_QYu.css +0 -32
- package/dist/assets/StandaloneShell-D0avS8UE.js +0 -1
- package/dist/assets/TaskMasterPanel-Cpf1Q5Ph.js +0 -32
- package/dist/assets/abnfDiagram-N423BO3Z-p3aJIm4T.js +0 -1
- package/dist/assets/arc-CTeud6Fl.js +0 -1
- package/dist/assets/architectureDiagram-T3A2C74G-CG7kRCJU.js +0 -36
- package/dist/assets/c4Diagram-5PPSVZJV-RkzF0DJV.js +0 -10
- package/dist/assets/channel-BfQbarn9.js +0 -1
- package/dist/assets/chunk-5RXB4S5H-BTeYcgyb.js +0 -231
- package/dist/assets/chunk-GF5L2VYU-CKLZ3iVD.js +0 -206
- package/dist/assets/classDiagram-JCYQIIEL-Bpfe3kq7.js +0 -1
- package/dist/assets/classDiagram-v2-OCEON4UE-Bpfe3kq7.js +0 -1
- package/dist/assets/code-xml-CLpHzEOP.js +0 -6
- package/dist/assets/cose-bilkent-JH36ORCC-DlFcLXCB.js +0 -1
- package/dist/assets/cynefinDiagram-MW4NZA55-COgduz5P.js +0 -62
- package/dist/assets/cytoscape.esm-C10L9Icf.js +0 -331
- package/dist/assets/dagre-VZM6K2ZE-Bbb-siGp.js +0 -4
- package/dist/assets/diagram-LBJQPF4R-ErMC9yaa.js +0 -24
- package/dist/assets/diagram-Q27KOJAE-Dt_-C7hV.js +0 -24
- package/dist/assets/diagram-UB23O5K3-BJ1DnRAF.js +0 -41
- package/dist/assets/ebnfDiagram-BXEA7PRR-CE1YaQ9s.js +0 -1
- package/dist/assets/erDiagram-JOGREHBK-Bqk7N9aY.js +0 -85
- package/dist/assets/ganttDiagram-PKOTCBZU-CWYAUeYN.js +0 -292
- package/dist/assets/gitGraphDiagram-DS77QQ5N-tdEcEIM6.js +0 -106
- package/dist/assets/graph-Cx-EqisW.js +0 -1
- package/dist/assets/index-B-sTfSZq.js +0 -1
- package/dist/assets/index-B_FDMWar.js +0 -1174
- package/dist/assets/index-CWJtg2pR.js +0 -11
- package/dist/assets/index-t1w8KNxn.css +0 -1
- package/dist/assets/infoDiagram-6WML65LV-A3IqRUnO.js +0 -2
- package/dist/assets/ishikawaDiagram-WSZJBQD7-B2uL6bkK.js +0 -70
- package/dist/assets/journeyDiagram-NVQOT4AX-D9JB-hRW.js +0 -139
- package/dist/assets/map-CV9uif0g.js +0 -1
- package/dist/assets/mermaid.core-CQ698HNn.js +0 -312
- package/dist/assets/pegDiagram-VL7TDLO6-CO6vP4n9.js +0 -1
- package/dist/assets/quadrantDiagram-CIZ2JOQS-DgNxRz6t.js +0 -7
- package/dist/assets/railroadDiagram-AXF67PYL-DKz9UqA9.js +0 -1
- package/dist/assets/requirementDiagram-LRYGKXZP-L84XyGgV.js +0 -84
- package/dist/assets/sankeyDiagram-W5VNT64P-CQqWbJ3j.js +0 -40
- package/dist/assets/sequenceDiagram-SI44F4Z6--tnzS2tb.js +0 -162
- package/dist/assets/sizeCapture-X5ZJPWSS-DujwEOtm.js +0 -1
- package/dist/assets/stateDiagram-OKZ733FA-BK3TcZY2.js +0 -1
- package/dist/assets/stateDiagram-v2-UEYNNEHI-_medyomK.js +0 -1
- package/dist/assets/swimlanes-SLNWSIFB-naX-Uv1B.js +0 -2
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-DstIv3TC.js +0 -8
- package/dist/assets/timeline-definition-Z64GVDOM-C-vP_ddU.js +0 -120
- package/dist/assets/vendor-react-whEHfigN.js +0 -59
- package/dist/assets/vennDiagram-T6HMQDX7-DN-I7o-7.js +0 -34
- package/dist/assets/xychartDiagram-ELKLHX3M-DE6OxW_p.js +0 -7
- package/dist/manifest.json +0 -61
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Ze=typeof global=="object"&&global&&global.Object===Object&&global,pt=typeof self=="object"&&self&&self.Object===Object&&self,w=Ze||pt||Function("return this")(),y=w.Symbol,We=Object.prototype,_t=We.hasOwnProperty,bt=We.toString,D=y?y.toStringTag:void 0;function yt(e){var t=_t.call(e,D),r=e[D];try{e[D]=void 0;var n=!0}catch{}var i=bt.call(e);return n&&(t?e[D]=r:delete e[D]),i}var vt=Object.prototype,Ot=vt.toString;function mt(e){return Ot.call(e)}var wt="[object Null]",Tt="[object Undefined]",Oe=y?y.toStringTag:void 0;function M(e){return e==null?e===void 0?Tt:wt:Oe&&Oe in Object(e)?yt(e):mt(e)}function j(e){return e!=null&&typeof e=="object"}var At="[object Symbol]";function he(e){return typeof e=="symbol"||j(e)&&M(e)==At}function Je(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}var g=Array.isArray,me=y?y.prototype:void 0,we=me?me.toString:void 0;function Qe(e){if(typeof e=="string")return e;if(g(e))return Je(e,Qe)+"";if(he(e))return we?we.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function ce(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function J(e){return e}var Pt="[object AsyncFunction]",Et="[object Function]",$t="[object GeneratorFunction]",St="[object Proxy]";function Z(e){if(!ce(e))return!1;var t=M(e);return t==Et||t==$t||t==Pt||t==St}var re=w["__core-js_shared__"],Te=(function(){var e=/[^.]+$/.exec(re&&re.keys&&re.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Ct(e){return!!Te&&Te in e}var jt=Function.prototype,xt=jt.toString;function I(e){if(e!=null){try{return xt.call(e)}catch{}try{return e+""}catch{}}return""}var It=/[\\^$.*+?()[\]{}|]/g,Lt=/^\[object .+?Constructor\]$/,Rt=Function.prototype,Nt=Object.prototype,Mt=Rt.toString,Dt=Nt.hasOwnProperty,Ft=RegExp("^"+Mt.call(Dt).replace(It,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Gt(e){if(!ce(e)||Ct(e))return!1;var t=Z(e)?Ft:Lt;return t.test(I(e))}function Ut(e,t){return e?.[t]}function L(e,t){var r=Ut(e,t);return Gt(r)?r:void 0}var oe=L(w,"WeakMap");function zt(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function Ht(){}var Bt=800,Kt=16,qt=Date.now;function Xt(e){var t=0,r=0;return function(){var n=qt(),i=Kt-(n-r);if(r=n,i>0){if(++t>=Bt)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function F(e){return function(){return e}}var Ae=(function(){try{var e=L(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Yt=Ae?function(e,t){return Ae(e,"toString",{configurable:!0,enumerable:!1,value:F(t),writable:!0})}:J,Zt=Xt(Yt);function Wt(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}function Jt(e,t,r,n){for(var i=e.length,s=r+-1;++s<i;)if(t(e[s],s,e))return s;return-1}function Qt(e){return e!==e}function Vt(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}function kt(e,t,r){return t===t?Vt(e,t,r):Jt(e,Qt,r)}function er(e,t){var r=e==null?0:e.length;return!!r&&kt(e,t,0)>-1}var tr=9007199254740991,rr=/^(?:0|[1-9]\d*)$/;function Ve(e,t){var r=typeof e;return t=t??tr,!!t&&(r=="number"||r!="symbol"&&rr.test(e))&&e>-1&&e%1==0&&e<t}function ke(e,t){return e===t||e!==e&&t!==t}var Pe=Math.max;function nr(e,t,r){return t=Pe(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=Pe(n.length-t,0),a=Array(s);++i<s;)a[i]=n[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=n[i];return o[t]=r(a),zt(e,this,o)}}function ir(e,t){return Zt(nr(e,t,J),e+"")}var sr=9007199254740991;function le(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=sr}function Q(e){return e!=null&&le(e.length)&&!Z(e)}var ar=Object.prototype;function et(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ar;return e===r}function or(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}var ur="[object Arguments]";function Ee(e){return j(e)&&M(e)==ur}var tt=Object.prototype,fr=tt.hasOwnProperty,hr=tt.propertyIsEnumerable,V=Ee((function(){return arguments})())?Ee:function(e){return j(e)&&fr.call(e,"callee")&&!hr.call(e,"callee")};function cr(){return!1}var rt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$e=rt&&typeof module=="object"&&module&&!module.nodeType&&module,lr=$e&&$e.exports===rt,Se=lr?w.Buffer:void 0,dr=Se?Se.isBuffer:void 0,W=dr||cr,gr="[object Arguments]",pr="[object Array]",_r="[object Boolean]",br="[object Date]",yr="[object Error]",vr="[object Function]",Or="[object Map]",mr="[object Number]",wr="[object Object]",Tr="[object RegExp]",Ar="[object Set]",Pr="[object String]",Er="[object WeakMap]",$r="[object ArrayBuffer]",Sr="[object DataView]",Cr="[object Float32Array]",jr="[object Float64Array]",xr="[object Int8Array]",Ir="[object Int16Array]",Lr="[object Int32Array]",Rr="[object Uint8Array]",Nr="[object Uint8ClampedArray]",Mr="[object Uint16Array]",Dr="[object Uint32Array]",h={};h[Cr]=h[jr]=h[xr]=h[Ir]=h[Lr]=h[Rr]=h[Nr]=h[Mr]=h[Dr]=!0;h[gr]=h[pr]=h[$r]=h[_r]=h[Sr]=h[br]=h[yr]=h[vr]=h[Or]=h[mr]=h[wr]=h[Tr]=h[Ar]=h[Pr]=h[Er]=!1;function Fr(e){return j(e)&&le(e.length)&&!!h[M(e)]}function Gr(e){return function(t){return e(t)}}var nt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,U=nt&&typeof module=="object"&&module&&!module.nodeType&&module,Ur=U&&U.exports===nt,ne=Ur&&Ze.process,Ce=(function(){try{var e=U&&U.require&&U.require("util").types;return e||ne&&ne.binding&&ne.binding("util")}catch{}})(),je=Ce&&Ce.isTypedArray,de=je?Gr(je):Fr,zr=Object.prototype,Hr=zr.hasOwnProperty;function Br(e,t){var r=g(e),n=!r&&V(e),i=!r&&!n&&W(e),s=!r&&!n&&!i&&de(e),a=r||n||i||s,o=a?or(e.length,String):[],u=o.length;for(var f in e)(t||Hr.call(e,f))&&!(a&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Ve(f,u)))&&o.push(f);return o}function Kr(e,t){return function(r){return e(t(r))}}var qr=Kr(Object.keys,Object),Xr=Object.prototype,Yr=Xr.hasOwnProperty;function it(e){if(!et(e))return qr(e);var t=[];for(var r in Object(e))Yr.call(e,r)&&r!="constructor"&&t.push(r);return t}function b(e){return Q(e)?Br(e):it(e)}var Zr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wr=/^\w*$/;function ge(e,t){if(g(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||he(e)?!0:Wr.test(e)||!Zr.test(e)||t!=null&&e in Object(t)}var z=L(Object,"create");function Jr(){this.__data__=z?z(null):{},this.size=0}function Qr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Vr="__lodash_hash_undefined__",kr=Object.prototype,en=kr.hasOwnProperty;function tn(e){var t=this.__data__;if(z){var r=t[e];return r===Vr?void 0:r}return en.call(t,e)?t[e]:void 0}var rn=Object.prototype,nn=rn.hasOwnProperty;function sn(e){var t=this.__data__;return z?t[e]!==void 0:nn.call(t,e)}var an="__lodash_hash_undefined__";function on(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=z&&t===void 0?an:t,this}function x(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}x.prototype.clear=Jr;x.prototype.delete=Qr;x.prototype.get=tn;x.prototype.has=sn;x.prototype.set=on;function un(){this.__data__=[],this.size=0}function k(e,t){for(var r=e.length;r--;)if(ke(e[r][0],t))return r;return-1}var fn=Array.prototype,hn=fn.splice;function cn(e){var t=this.__data__,r=k(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():hn.call(t,r,1),--this.size,!0}function ln(e){var t=this.__data__,r=k(t,e);return r<0?void 0:t[r][1]}function dn(e){return k(this.__data__,e)>-1}function gn(e,t){var r=this.__data__,n=k(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function T(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}T.prototype.clear=un;T.prototype.delete=cn;T.prototype.get=ln;T.prototype.has=dn;T.prototype.set=gn;var H=L(w,"Map");function pn(){this.size=0,this.__data__={hash:new x,map:new(H||T),string:new x}}function _n(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function ee(e,t){var r=e.__data__;return _n(t)?r[typeof t=="string"?"string":"hash"]:r.map}function bn(e){var t=ee(this,e).delete(e);return this.size-=t?1:0,t}function yn(e){return ee(this,e).get(e)}function vn(e){return ee(this,e).has(e)}function On(e,t){var r=ee(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}function A(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}A.prototype.clear=pn;A.prototype.delete=bn;A.prototype.get=yn;A.prototype.has=vn;A.prototype.set=On;var mn="Expected a function";function pe(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(mn);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(pe.Cache||A),r}pe.Cache=A;var wn=500;function Tn(e){var t=pe(e,function(n){return r.size===wn&&r.clear(),n}),r=t.cache;return t}var An=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pn=/\\(\\)?/g,En=Tn(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(An,function(r,n,i,s){t.push(i?s.replace(Pn,"$1"):n||r)}),t});function $n(e){return e==null?"":Qe(e)}function st(e,t){return g(e)?e:ge(e,t)?[e]:En($n(e))}function te(e){if(typeof e=="string"||he(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function at(e,t){t=st(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[te(t[r++])];return r&&r==n?e:void 0}function Sn(e,t,r){var n=e==null?void 0:at(e,t);return n===void 0?r:n}function ot(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}var xe=y?y.isConcatSpreadable:void 0;function Cn(e){return g(e)||V(e)||!!(xe&&e&&e[xe])}function jn(e,t,r,n,i){var s=-1,a=e.length;for(r||(r=Cn),i||(i=[]);++s<a;){var o=e[s];r(o)?ot(i,o):n||(i[i.length]=o)}return i}function xn(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}function In(){this.__data__=new T,this.size=0}function Ln(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function Rn(e){return this.__data__.get(e)}function Nn(e){return this.__data__.has(e)}var Mn=200;function Dn(e,t){var r=this.__data__;if(r instanceof T){var n=r.__data__;if(!H||n.length<Mn-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new A(n)}return r.set(e,t),this.size=r.size,this}function m(e){var t=this.__data__=new T(e);this.size=t.size}m.prototype.clear=In;m.prototype.delete=Ln;m.prototype.get=Rn;m.prototype.has=Nn;m.prototype.set=Dn;function ut(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}function Fn(){return[]}var Gn=Object.prototype,Un=Gn.propertyIsEnumerable,Ie=Object.getOwnPropertySymbols,zn=Ie?function(e){return e==null?[]:(e=Object(e),ut(Ie(e),function(t){return Un.call(e,t)}))}:Fn;function Hn(e,t,r){var n=t(e);return g(e)?n:ot(n,r(e))}function Le(e){return Hn(e,b,zn)}var ue=L(w,"DataView"),fe=L(w,"Promise"),N=L(w,"Set"),Re="[object Map]",Bn="[object Object]",Ne="[object Promise]",Me="[object Set]",De="[object WeakMap]",Fe="[object DataView]",Kn=I(ue),qn=I(H),Xn=I(fe),Yn=I(N),Zn=I(oe),O=M;(ue&&O(new ue(new ArrayBuffer(1)))!=Fe||H&&O(new H)!=Re||fe&&O(fe.resolve())!=Ne||N&&O(new N)!=Me||oe&&O(new oe)!=De)&&(O=function(e){var t=M(e),r=t==Bn?e.constructor:void 0,n=r?I(r):"";if(n)switch(n){case Kn:return Fe;case qn:return Re;case Xn:return Ne;case Yn:return Me;case Zn:return De}return t});var Ge=w.Uint8Array,Wn="__lodash_hash_undefined__";function Jn(e){return this.__data__.set(e,Wn),this}function Qn(e){return this.__data__.has(e)}function B(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new A;++t<r;)this.add(e[t])}B.prototype.add=B.prototype.push=Jn;B.prototype.has=Qn;function Vn(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function ft(e,t){return e.has(t)}var kn=1,ei=2;function ht(e,t,r,n,i,s){var a=r&kn,o=e.length,u=t.length;if(o!=u&&!(a&&u>o))return!1;var f=s.get(e),d=s.get(t);if(f&&d)return f==t&&d==e;var c=-1,l=!0,v=r&ei?new B:void 0;for(s.set(e,t),s.set(t,e);++c<o;){var p=e[c],_=t[c];if(n)var P=a?n(_,p,c,t,e,s):n(p,_,c,e,t,s);if(P!==void 0){if(P)continue;l=!1;break}if(v){if(!Vn(t,function(E,$){if(!ft(v,$)&&(p===E||i(p,E,r,n,s)))return v.push($)})){l=!1;break}}else if(!(p===_||i(p,_,r,n,s))){l=!1;break}}return s.delete(e),s.delete(t),l}function ti(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}function _e(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}var ri=1,ni=2,ii="[object Boolean]",si="[object Date]",ai="[object Error]",oi="[object Map]",ui="[object Number]",fi="[object RegExp]",hi="[object Set]",ci="[object String]",li="[object Symbol]",di="[object ArrayBuffer]",gi="[object DataView]",Ue=y?y.prototype:void 0,ie=Ue?Ue.valueOf:void 0;function pi(e,t,r,n,i,s,a){switch(r){case gi:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case di:return!(e.byteLength!=t.byteLength||!s(new Ge(e),new Ge(t)));case ii:case si:case ui:return ke(+e,+t);case ai:return e.name==t.name&&e.message==t.message;case fi:case ci:return e==t+"";case oi:var o=ti;case hi:var u=n&ri;if(o||(o=_e),e.size!=t.size&&!u)return!1;var f=a.get(e);if(f)return f==t;n|=ni,a.set(e,t);var d=ht(o(e),o(t),n,i,s,a);return a.delete(e),d;case li:if(ie)return ie.call(e)==ie.call(t)}return!1}var _i=1,bi=Object.prototype,yi=bi.hasOwnProperty;function vi(e,t,r,n,i,s){var a=r&_i,o=Le(e),u=o.length,f=Le(t),d=f.length;if(u!=d&&!a)return!1;for(var c=u;c--;){var l=o[c];if(!(a?l in t:yi.call(t,l)))return!1}var v=s.get(e),p=s.get(t);if(v&&p)return v==t&&p==e;var _=!0;s.set(e,t),s.set(t,e);for(var P=a;++c<u;){l=o[c];var E=e[l],$=t[l];if(n)var ve=a?n($,E,l,t,e,s):n(E,$,l,e,t,s);if(!(ve===void 0?E===$||i(E,$,r,n,s):ve)){_=!1;break}P||(P=l=="constructor")}if(_&&!P){var K=e.constructor,q=t.constructor;K!=q&&"constructor"in e&&"constructor"in t&&!(typeof K=="function"&&K instanceof K&&typeof q=="function"&&q instanceof q)&&(_=!1)}return s.delete(e),s.delete(t),_}var Oi=1,ze="[object Arguments]",He="[object Array]",X="[object Object]",mi=Object.prototype,Be=mi.hasOwnProperty;function wi(e,t,r,n,i,s){var a=g(e),o=g(t),u=a?He:O(e),f=o?He:O(t);u=u==ze?X:u,f=f==ze?X:f;var d=u==X,c=f==X,l=u==f;if(l&&W(e)){if(!W(t))return!1;a=!0,d=!1}if(l&&!d)return s||(s=new m),a||de(e)?ht(e,t,r,n,i,s):pi(e,t,u,r,n,i,s);if(!(r&Oi)){var v=d&&Be.call(e,"__wrapped__"),p=c&&Be.call(t,"__wrapped__");if(v||p){var _=v?e.value():e,P=p?t.value():t;return s||(s=new m),i(_,P,r,n,s)}}return l?(s||(s=new m),vi(e,t,r,n,i,s)):!1}function be(e,t,r,n,i){return e===t?!0:e==null||t==null||!j(e)&&!j(t)?e!==e&&t!==t:wi(e,t,r,n,be,i)}var Ti=1,Ai=2;function Pi(e,t,r,n){var i=r.length,s=i;if(e==null)return!s;for(e=Object(e);i--;){var a=r[i];if(a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<s;){a=r[i];var o=a[0],u=e[o],f=a[1];if(a[2]){if(u===void 0&&!(o in e))return!1}else{var d=new m,c;if(!(c===void 0?be(f,u,Ti|Ai,n,d):c))return!1}}return!0}function ct(e){return e===e&&!ce(e)}function Ei(e){for(var t=b(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,ct(i)]}return t}function lt(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}function $i(e){var t=Ei(e);return t.length==1&&t[0][2]?lt(t[0][0],t[0][1]):function(r){return r===e||Pi(r,e,t)}}function Si(e,t){return e!=null&&t in Object(e)}function Ci(e,t,r){t=st(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var a=te(t[n]);if(!(s=e!=null&&r(e,a)))break;e=e[a]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&le(i)&&Ve(a,i)&&(g(e)||V(e)))}function ji(e,t){return e!=null&&Ci(e,t,Si)}var xi=1,Ii=2;function Li(e,t){return ge(e)&&ct(t)?lt(te(e),t):function(r){var n=Sn(r,e);return n===void 0&&n===t?ji(r,e):be(t,n,xi|Ii)}}function Ri(e){return function(t){return t?.[e]}}function Ni(e){return function(t){return at(t,e)}}function Mi(e){return ge(e)?Ri(te(e)):Ni(e)}function dt(e){return typeof e=="function"?e:e==null?J:typeof e=="object"?g(e)?Li(e[0],e[1]):$i(e):Mi(e)}function Di(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[++i];if(r(s[u],u,s)===!1)break}return t}}var Fi=Di();function Gi(e,t){return e&&Fi(e,t,b)}function Ui(e,t){return function(r,n){if(r==null)return r;if(!Q(r))return e(r,n);for(var i=r.length,s=-1,a=Object(r);++s<i&&n(a[s],s,a)!==!1;);return r}}var ye=Ui(Gi);function zi(e){return j(e)&&Q(e)}function Hi(e){return typeof e=="function"?e:J}function S(e,t){var r=g(e)?Wt:ye;return r(e,Hi(t))}function Bi(e,t){var r=[];return ye(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}function Y(e,t){var r=g(e)?ut:Bi;return r(e,dt(t))}function Ki(e,t){return Je(t,function(r){return e[r]})}function se(e){return e==null?[]:Ki(e,b(e))}var qi="[object Map]",Xi="[object Set]",Yi=Object.prototype,Zi=Yi.hasOwnProperty;function Ke(e){if(e==null)return!0;if(Q(e)&&(g(e)||typeof e=="string"||typeof e.splice=="function"||W(e)||de(e)||V(e)))return!e.length;var t=O(e);if(t==qi||t==Xi)return!e.size;if(et(e))return!it(e).length;for(var r in e)if(Zi.call(e,r))return!1;return!0}function R(e){return e===void 0}function Wi(e,t,r,n,i){return i(e,function(s,a,o){r=n?(n=!1,s):t(r,s,a,o)}),r}function Ji(e,t,r){var n=g(e)?xn:Wi,i=arguments.length<3;return n(e,dt(t),r,i,ye)}var Qi=1/0,Vi=N&&1/_e(new N([,-0]))[1]==Qi?function(e){return new N(e)}:Ht,ki=200;function es(e,t,r){var n=-1,i=er,s=e.length,a=!0,o=[],u=o;if(s>=ki){var f=Vi(e);if(f)return _e(f);a=!1,i=ft,u=new B}else u=o;e:for(;++n<s;){var d=e[n],c=d;if(d=d!==0?d:0,a&&c===c){for(var l=u.length;l--;)if(u[l]===c)continue e;o.push(d)}else i(u,c,r)||(u!==o&&u.push(c),o.push(d))}return o}var ts=ir(function(e){return es(jn(e,1,zi,!0))}),rs="\0",C="\0",qe="";class gt{constructor(t={}){this._isDirected=Object.prototype.hasOwnProperty.call(t,"directed")?t.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(t,"multigraph")?t.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(t,"compound")?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=F(void 0),this._defaultEdgeLabelFn=F(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[C]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return Z(t)||(t=F(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return b(this._nodes)}sources(){var t=this;return Y(this.nodes(),function(r){return Ke(t._in[r])})}sinks(){var t=this;return Y(this.nodes(),function(r){return Ke(t._out[r])})}setNodes(t,r){var n=arguments,i=this;return S(t,function(s){n.length>1?i.setNode(s,r):i.setNode(s)}),this}setNode(t,r){return Object.prototype.hasOwnProperty.call(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=r),this):(this._nodes[t]=arguments.length>1?r:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=C,this._children[t]={},this._children[C][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var r=n=>this.removeEdge(this._edgeObjs[n]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],S(this.children(t),n=>{this.setParent(n)}),delete this._children[t]),S(b(this._in[t]),r),delete this._in[t],delete this._preds[t],S(b(this._out[t]),r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(R(r))r=C;else{r+="";for(var n=r;!R(n);n=this.parent(n))if(n===t)throw new Error("Setting "+r+" as parent of "+t+" would create a cycle");this.setNode(r)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=r,this._children[r][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var r=this._parent[t];if(r!==C)return r}}children(t){if(R(t)&&(t=C),this._isCompound){var r=this._children[t];if(r)return b(r)}else{if(t===C)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var r=this._preds[t];if(r)return b(r)}successors(t){var r=this._sucs[t];if(r)return b(r)}neighbors(t){var r=this.predecessors(t);if(r)return ts(r,this.successors(t))}isLeaf(t){var r;return this.isDirected()?r=this.successors(t):r=this.neighbors(t),r.length===0}filterNodes(t){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;S(this._nodes,function(a,o){t(o)&&r.setNode(o,a)}),S(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,n.edge(a))});var i={};function s(a){var o=n.parent(a);return o===void 0||r.hasNode(o)?(i[a]=o,o):o in i?i[o]:s(o)}return this._isCompound&&S(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(t){return Z(t)||(t=F(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return se(this._edgeObjs)}setPath(t,r){var n=this,i=arguments;return Ji(t,function(s,a){return i.length>1?n.setEdge(s,a,r):n.setEdge(s,a),a}),this}setEdge(){var t,r,n,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(t=a.v,r=a.w,n=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(t=a,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),t=""+t,r=""+r,R(n)||(n=""+n);var o=G(this._isDirected,t,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,o))return s&&(this._edgeLabels[o]=i),this;if(!R(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(r),this._edgeLabels[o]=s?i:this._defaultEdgeLabelFn(t,r,n);var u=ns(this._isDirected,t,r,n);return t=u.v,r=u.w,Object.freeze(u),this._edgeObjs[o]=u,Xe(this._preds[r],t),Xe(this._sucs[t],r),this._in[r][o]=u,this._out[t][o]=u,this._edgeCount++,this}edge(t,r,n){var i=arguments.length===1?ae(this._isDirected,arguments[0]):G(this._isDirected,t,r,n);return this._edgeLabels[i]}hasEdge(t,r,n){var i=arguments.length===1?ae(this._isDirected,arguments[0]):G(this._isDirected,t,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(t,r,n){var i=arguments.length===1?ae(this._isDirected,arguments[0]):G(this._isDirected,t,r,n),s=this._edgeObjs[i];return s&&(t=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Ye(this._preds[r],t),Ye(this._sucs[t],r),delete this._in[r][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,r){var n=this._in[t];if(n){var i=se(n);return r?Y(i,function(s){return s.v===r}):i}}outEdges(t,r){var n=this._out[t];if(n){var i=se(n);return r?Y(i,function(s){return s.w===r}):i}}nodeEdges(t,r){var n=this.inEdges(t,r);if(n)return n.concat(this.outEdges(t,r))}}gt.prototype._nodeCount=0;gt.prototype._edgeCount=0;function Xe(e,t){e[t]?e[t]++:e[t]=1}function Ye(e,t){--e[t]||delete e[t]}function G(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+qe+s+qe+(R(n)?rs:n)}function ns(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var o={v:i,w:s};return n&&(o.name=n),o}function ae(e,t){return G(e,t.v,t.w,t.name)}export{Y as $,he as A,Ve as B,ir as C,jn as D,Zt as E,nr as F,gt as G,M as H,de as I,zi as J,V as K,Z as L,Fi as M,Jt as N,Hi as O,Gi as P,Ci as Q,J as R,y as S,st as T,Ge as U,te as V,at as W,ji as X,$n as Y,S as Z,F as _,ce as a,se as a0,Ji as a1,et as b,Q as c,Ae as d,ke as e,Br as f,zn as g,ot as h,R as i,Hn as j,b as k,j as l,O as m,Gr as n,Kr as o,Ce as p,W as q,w as r,Fn as s,m as t,Wt as u,g as v,Le as w,ye as x,dt as y,Je as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as n,j as e}from"./vendor-react-C2GTiUCy.js";import{c as L,a as $,f as E}from"./feature-workspace-CAB6bgPy.js";import{T as B,at as F,a as O,X as I,$ as W,a9 as _,c as q,M as K,aa as H,b2 as V,b3 as Q}from"./vendor-ui-CAUHSABu.js";import{E as X,m as J,M as Y,R as Z,o as ee}from"./MarkdownPreview-PEEWVWeS.js";import"./vendor-i18n-B6HjLCnN.js";import"./vendor-data-DsEZeNPr.js";import"./vendor-markdown-DkITEES2.js";import"./feature-chat-CvOCyaLe.js";const D=`# Product Requirements Document
|
|
2
2
|
|
|
3
3
|
## 1. Overview
|
|
4
4
|
- Product Name:
|
|
@@ -58,5 +58,5 @@ Describe what problem this product solves and who it serves.
|
|
|
58
58
|
## 10. Open Questions
|
|
59
59
|
- Question 1
|
|
60
60
|
- Question 2
|
|
61
|
-
`,te="https://github.com/eyaltoledano/claude-task-master/blob/main/docs/examples.md",re=/[<>:"/\\|?*]/g,A=/\.(txt|md)$/i;function se(t){return t.replace(re,"")}function ae(t){return t.replace(A,"")}function M(t){return A.test(t)?t:`${t}.txt`}function ne(t){return`prd-${t.toISOString().split("T")[0]}`}function ie({file:t,isNewFile:s,initialContent:r,projectPath:a}){const[l,o]=n.useState(r||""),[f,h]=n.useState(""),[u,x]=n.useState(!s),[p,d]=n.useState(null),b=n.useCallback(i=>{h(se(i))},[]);return n.useEffect(()=>{let i=!0;return(async()=>{const c=t?.name?ae(t.name):ne(new Date);if(i&&h(c),s){if(!i)return;o(r||D),d(null),x(!1);return}if(t?.content){if(!i)return;o(t.content),d(null),x(!1);return}if(!t?.projectId||!t?.path){if(!i)return;o(r||D),d(null),x(!1);return}try{x(!0);const m=await
|
|
62
|
-
`).length,characters:t.length,words:t.split(/\s+/).filter(Boolean).length}}function ge({content:t}){const s=n.useMemo(()=>pe(t),[t]);return e.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-t border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-600 dark:text-gray-400",children:[e.jsxs("span",{children:["Lines: ",s.lines]}),e.jsxs("span",{children:["Characters: ",s.characters]}),e.jsxs("span",{children:["Words: ",s.words]}),e.jsx("span",{children:"Format: Markdown"})]}),e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Press Ctrl+S to save and Esc to close"})]})}function S({title:t,onClick:s,icon:r,active:a=!1}){return e.jsx("button",{onClick:s,title:t,className:E("p-2 rounded-md min-w-[44px] min-h-[44px] md:min-w-0 md:min-h-0 flex items-center justify-center transition-colors",a?"text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/50":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800"),children:r})}function fe({fileName:t,onFileNameChange:s,isNewFile:r,previewMode:a,onTogglePreview:l,wordWrap:o,onToggleWordWrap:f,isDarkMode:h,onToggleTheme:u,onDownload:x,onOpenGenerateTasks:p,canGenerateTasks:d,onSave:b,saving:i,saveSuccess:y,isFullscreen:c,onToggleFullscreen:m,onClose:g}){const j=n.useRef(null);return e.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center justify-between border-b border-gray-200 p-4 dark:border-gray-700",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded bg-purple-600",children:e.jsx(W,{className:"h-4 w-4 text-white"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center rounded-md border border-gray-200 bg-gray-50 px-3 py-2 focus-within:border-purple-500 focus-within:ring-2 focus-within:ring-purple-500 dark:border-gray-600 dark:bg-gray-700 dark:focus-within:border-purple-400 dark:focus-within:ring-purple-400",children:[e.jsx("input",{ref:j,type:"text",value:t,onChange:v=>s(v.target.value),className:"min-w-0 flex-1 border-none bg-transparent text-base font-medium text-gray-900 placeholder-gray-400 outline-none dark:text-white dark:placeholder-gray-500 sm:text-sm",placeholder:"Enter PRD filename",maxLength:100}),e.jsx("span",{className:"ml-1 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400 sm:text-xs",children:".txt"})]}),e.jsx("button",{onClick:()=>j.current?.focus(),className:"p-1 text-gray-400 transition-colors hover:text-purple-600 dark:hover:text-purple-400",title:"Focus filename input",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})})})]}),e.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[e.jsx("span",{className:"whitespace-nowrap rounded bg-purple-100 px-2 py-1 text-xs text-purple-600 dark:bg-purple-900 dark:text-purple-300",children:"PRD"}),r&&e.jsx("span",{className:"whitespace-nowrap rounded bg-green-100 px-2 py-1 text-xs text-green-600 dark:bg-green-900 dark:text-green-300",children:"New"})]})]}),e.jsx("p",{className:"mt-1 truncate text-xs text-gray-500 dark:text-gray-400 sm:text-sm",children:"Product Requirements Document"})]})]}),e.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1 md:gap-2",children:[e.jsx(S,{title:a?"Switch to edit mode":"Preview markdown",onClick:l,icon:e.jsx(_,{className:"h-5 w-5 md:h-4 md:w-4"}),active:a}),e.jsx(S,{title:o?"Disable word wrap":"Enable word wrap",onClick:f,icon:e.jsx("span",{className:"font-mono text-sm font-bold md:text-xs",children:"WRAP"}),active:o}),e.jsx(S,{title:"Toggle theme",onClick:u,icon:h?e.jsx(q,{className:"h-5 w-5 md:h-4 md:w-4"}):e.jsx(K,{className:"h-5 w-5 md:h-4 md:w-4"})}),e.jsx(S,{title:"Download PRD",onClick:x,icon:e.jsx(H,{className:"h-5 w-5 md:h-4 md:w-4"})}),e.jsxs("button",{onClick:p,disabled:!d,className:E("px-3 py-2 rounded-md disabled:opacity-50 flex items-center gap-2 transition-colors text-sm font-medium text-white min-h-[44px] md:min-h-0","bg-purple-600 hover:bg-purple-700"),title:"Generate tasks from PRD content",children:[e.jsx(O,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline",children:"Generate Tasks"})]}),e.jsx("button",{onClick:b,disabled:i,className:E("px-3 py-2 text-white rounded-md disabled:opacity-50 flex items-center gap-2 transition-colors min-h-[44px] md:min-h-0",y?"bg-green-600 hover:bg-green-700":"bg-purple-600 hover:bg-purple-700"),children:y?e.jsxs(e.Fragment,{children:[e.jsx("svg",{className:"h-5 w-5 md:h-4 md:w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),e.jsx("span",{className:"hidden sm:inline",children:"Saved!"})]}):e.jsxs(e.Fragment,{children:[e.jsx(
|
|
61
|
+
`,te="https://github.com/eyaltoledano/claude-task-master/blob/main/docs/examples.md",re=/[<>:"/\\|?*]/g,A=/\.(txt|md)$/i;function se(t){return t.replace(re,"")}function ae(t){return t.replace(A,"")}function M(t){return A.test(t)?t:`${t}.txt`}function ne(t){return`prd-${t.toISOString().split("T")[0]}`}function ie({file:t,isNewFile:s,initialContent:r,projectPath:a}){const[l,o]=n.useState(r||""),[f,h]=n.useState(""),[u,x]=n.useState(!s),[p,d]=n.useState(null),b=n.useCallback(i=>{h(se(i))},[]);return n.useEffect(()=>{let i=!0;return(async()=>{const c=t?.name?ae(t.name):ne(new Date);if(i&&h(c),s){if(!i)return;o(r||D),d(null),x(!1);return}if(t?.content){if(!i)return;o(t.content),d(null),x(!1);return}if(!t?.projectId||!t?.path){if(!i)return;o(r||D),d(null),x(!1);return}try{x(!0);const m=await L.readFile(t.projectId,t.path);if(!m.ok)throw new Error(`Failed to load file: ${m.status} ${m.statusText}`);const g=await m.json();if(!i)return;o(g.content||D),d(null)}catch(m){const g=m instanceof Error?m.message:"Unknown error";if(!i)return;o(r||D),d(`Unable to load file content: ${g}`)}finally{i&&x(!1)}})(),()=>{i=!1}},[t,r,s,a]),{content:l,setContent:o,fileName:f,setFileName:b,loading:u,loadError:p}}function oe({onSave:t,onClose:s}){n.useEffect(()=>{const r=a=>{const l=a.key.toLowerCase();if((a.ctrlKey||a.metaKey)&&l==="s"){a.preventDefault(),t();return}a.key==="Escape"&&(a.preventDefault(),s())};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[s,t])}function le(t){return t.prdFiles||t.prds||[]}function de({projectId:t}){const[s,r]=n.useState([]),a=n.useCallback(async()=>{if(!t){r([]);return}try{const l=await L.get(`/taskmaster/prd/${encodeURIComponent(t)}`);if(!l.ok){r([]);return}const o=await l.json();r(le(o))}catch(l){console.error("Failed to fetch existing PRDs:",l),r([])}},[t]);return n.useEffect(()=>{a()},[a]),{existingPrds:s,refreshExistingPrds:a}}function ce({projectId:t,existingPrds:s,isExistingFile:r,onAfterSave:a}){const[l,o]=n.useState(!1),[f,h]=n.useState(!1),u=n.useRef(null);return n.useEffect(()=>()=>{u.current&&clearTimeout(u.current)},[]),{savePrd:n.useCallback(async({content:p,fileName:d,allowOverwrite:b=!1})=>{if(!p.trim())return{status:"failed",message:"Please add content before saving."};if(!d.trim())return{status:"failed",message:"Please provide a filename for the PRD."};if(!t)return{status:"failed",message:"No project selected. Please reopen the editor."};const i=M(d.trim());if(s.some(c=>c.name===i)&&!b&&!r)return{status:"needs-overwrite",fileName:i};o(!0);try{const c=await $(`/api/taskmaster/prd/${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({fileName:i,content:p})});if(!c.ok){const m=`Save failed: ${c.status}`;try{return{status:"failed",message:(await c.json()).message||m}}catch{return{status:"failed",message:m}}}return u.current&&clearTimeout(u.current),h(!0),u.current=setTimeout(()=>{h(!1),u.current=null},2e3),a&&await a(),{status:"saved",fileName:i}}catch(c){return{status:"failed",message:`Error saving PRD: ${c instanceof Error?c.message:"Unknown error"}`}}finally{o(!1)}},[s,r,a,t]),saving:l,saveSuccess:f}}function me({isOpen:t,fileName:s,saving:r,onCancel:a,onConfirm:l}){return t?e.jsxs("div",{className:"fixed inset-0 z-[300] flex items-center justify-center p-4",children:[e.jsx("div",{className:"fixed inset-0 bg-black/50",onClick:a}),e.jsx("div",{className:"relative w-full max-w-md rounded-lg border border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-800",children:e.jsxs("div",{className:"p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center",children:[e.jsx("div",{className:"mr-3 rounded-full bg-yellow-100 p-2 dark:bg-yellow-900",children:e.jsx(B,{className:"h-5 w-5 text-yellow-600 dark:text-yellow-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"File Already Exists"})]}),e.jsxs("p",{className:"mb-6 text-sm text-gray-600 dark:text-gray-400",children:['A PRD named "',s,'" already exists. Do you want to overwrite it?']}),e.jsxs("div",{className:"flex justify-end gap-3",children:[e.jsx("button",{onClick:a,disabled:r,className:"rounded-md border border-gray-300 bg-white px-4 py-2 text-sm text-gray-700 transition-colors hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600",children:"Cancel"}),e.jsxs("button",{onClick:l,disabled:r,className:"flex items-center gap-2 rounded-md bg-yellow-600 px-4 py-2 text-sm text-white transition-colors hover:bg-yellow-700 disabled:opacity-50",children:[e.jsx(F,{className:"h-4 w-4"}),e.jsx("span",{children:r?"Saving...":"Overwrite"})]})]})]})})]}):null}function ue(){return e.jsx("div",{className:"fixed inset-0 z-[200] md:flex md:items-center md:justify-center md:bg-black/50",children:e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-white p-8 dark:bg-gray-900 md:h-auto md:w-auto md:rounded-lg",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-b-2 border-blue-600"}),e.jsx("span",{className:"text-gray-900 dark:text-white",children:"Loading PRD..."})]})})})}function xe({isOpen:t,fileName:s,onClose:r}){return t?e.jsx("div",{className:"fixed inset-0 z-[300] flex items-center justify-center bg-black/50 p-4 backdrop-blur-sm",children:e.jsxs("div",{className:"w-full max-w-md rounded-lg border border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-800",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-gray-200 p-6 dark:border-gray-700",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-purple-100 dark:bg-purple-900/50",children:e.jsx(O,{className:"h-4 w-4 text-purple-600 dark:text-purple-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Generate Tasks from PRD"})]}),e.jsx("button",{onClick:r,className:"rounded-md p-2 text-gray-400 hover:bg-gray-100 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300",children:e.jsx(I,{className:"h-5 w-5"})})]}),e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsxs("div",{className:"rounded-lg border border-purple-200 bg-purple-50 p-4 dark:border-purple-800 dark:bg-purple-900/20",children:[e.jsx("h4",{className:"mb-2 font-semibold text-purple-900 dark:text-purple-100",children:"Ask Claude Code directly"}),e.jsx("p",{className:"mb-3 text-sm text-purple-800 dark:text-purple-200",children:"Save this PRD, then ask Claude Code in chat to parse the file and create your initial tasks."}),e.jsxs("div",{className:"rounded border border-purple-200 bg-white p-3 dark:border-purple-700 dark:bg-gray-800",children:[e.jsx("p",{className:"mb-1 text-xs font-medium text-gray-600 dark:text-gray-400",children:"Example prompt"}),e.jsxs("p",{className:"font-mono text-xs text-gray-900 dark:text-white",children:["I have a PRD at .taskmaster/docs/",s,". Parse it and create the initial tasks."]})]})]}),e.jsx("div",{className:"border-t border-gray-200 pt-4 text-center dark:border-gray-700",children:e.jsx("a",{href:te,target:"_blank",rel:"noopener noreferrer",className:"inline-block text-sm font-medium text-purple-600 underline hover:text-purple-700 dark:text-purple-400 dark:hover:text-purple-300",children:"View TaskMaster documentation"})}),e.jsx("button",{onClick:r,className:"w-full rounded-lg border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600",children:"Got it"})]})]})}):null}function he({content:t,onContentChange:s,previewMode:r,isDarkMode:a,wordWrap:l}){const o=n.useMemo(()=>[J(),...l?[X.lineWrapping]:[]],[l]);return r?e.jsx("div",{className:"prose prose-gray h-full max-w-none overflow-y-auto p-6 dark:prose-invert",children:e.jsx(Y,{content:t})}):e.jsx(Z,{value:t,onChange:s,extensions:o,theme:a?ee:void 0,height:"100%",style:{fontSize:"14px",height:"100%"},basicSetup:{lineNumbers:!0,foldGutter:!0,dropCursor:!1,allowMultipleSelections:!1,indentOnInput:!0,bracketMatching:!0,closeBrackets:!0,autocompletion:!0,highlightSelectionMatches:!0,searchKeymap:!0}})}function pe(t){return{lines:t.split(`
|
|
62
|
+
`).length,characters:t.length,words:t.split(/\s+/).filter(Boolean).length}}function ge({content:t}){const s=n.useMemo(()=>pe(t),[t]);return e.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between border-t border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-600 dark:text-gray-400",children:[e.jsxs("span",{children:["Lines: ",s.lines]}),e.jsxs("span",{children:["Characters: ",s.characters]}),e.jsxs("span",{children:["Words: ",s.words]}),e.jsx("span",{children:"Format: Markdown"})]}),e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Press Ctrl+S to save and Esc to close"})]})}function S({title:t,onClick:s,icon:r,active:a=!1}){return e.jsx("button",{onClick:s,title:t,className:E("p-2 rounded-md min-w-[44px] min-h-[44px] md:min-w-0 md:min-h-0 flex items-center justify-center transition-colors",a?"text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/50":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800"),children:r})}function fe({fileName:t,onFileNameChange:s,isNewFile:r,previewMode:a,onTogglePreview:l,wordWrap:o,onToggleWordWrap:f,isDarkMode:h,onToggleTheme:u,onDownload:x,onOpenGenerateTasks:p,canGenerateTasks:d,onSave:b,saving:i,saveSuccess:y,isFullscreen:c,onToggleFullscreen:m,onClose:g}){const j=n.useRef(null);return e.jsxs("div",{className:"flex min-w-0 flex-shrink-0 items-center justify-between border-b border-gray-200 p-4 dark:border-gray-700",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded bg-purple-600",children:e.jsx(W,{className:"h-4 w-4 text-white"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center rounded-md border border-gray-200 bg-gray-50 px-3 py-2 focus-within:border-purple-500 focus-within:ring-2 focus-within:ring-purple-500 dark:border-gray-600 dark:bg-gray-700 dark:focus-within:border-purple-400 dark:focus-within:ring-purple-400",children:[e.jsx("input",{ref:j,type:"text",value:t,onChange:v=>s(v.target.value),className:"min-w-0 flex-1 border-none bg-transparent text-base font-medium text-gray-900 placeholder-gray-400 outline-none dark:text-white dark:placeholder-gray-500 sm:text-sm",placeholder:"Enter PRD filename",maxLength:100}),e.jsx("span",{className:"ml-1 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400 sm:text-xs",children:".txt"})]}),e.jsx("button",{onClick:()=>j.current?.focus(),className:"p-1 text-gray-400 transition-colors hover:text-purple-600 dark:hover:text-purple-400",title:"Focus filename input",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})})})]}),e.jsxs("div",{className:"flex flex-shrink-0 items-center gap-2",children:[e.jsx("span",{className:"whitespace-nowrap rounded bg-purple-100 px-2 py-1 text-xs text-purple-600 dark:bg-purple-900 dark:text-purple-300",children:"PRD"}),r&&e.jsx("span",{className:"whitespace-nowrap rounded bg-green-100 px-2 py-1 text-xs text-green-600 dark:bg-green-900 dark:text-green-300",children:"New"})]})]}),e.jsx("p",{className:"mt-1 truncate text-xs text-gray-500 dark:text-gray-400 sm:text-sm",children:"Product Requirements Document"})]})]}),e.jsxs("div",{className:"flex flex-shrink-0 items-center gap-1 md:gap-2",children:[e.jsx(S,{title:a?"Switch to edit mode":"Preview markdown",onClick:l,icon:e.jsx(_,{className:"h-5 w-5 md:h-4 md:w-4"}),active:a}),e.jsx(S,{title:o?"Disable word wrap":"Enable word wrap",onClick:f,icon:e.jsx("span",{className:"font-mono text-sm font-bold md:text-xs",children:"WRAP"}),active:o}),e.jsx(S,{title:"Toggle theme",onClick:u,icon:h?e.jsx(q,{className:"h-5 w-5 md:h-4 md:w-4"}):e.jsx(K,{className:"h-5 w-5 md:h-4 md:w-4"})}),e.jsx(S,{title:"Download PRD",onClick:x,icon:e.jsx(H,{className:"h-5 w-5 md:h-4 md:w-4"})}),e.jsxs("button",{onClick:p,disabled:!d,className:E("px-3 py-2 rounded-md disabled:opacity-50 flex items-center gap-2 transition-colors text-sm font-medium text-white min-h-[44px] md:min-h-0","bg-purple-600 hover:bg-purple-700"),title:"Generate tasks from PRD content",children:[e.jsx(O,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden md:inline",children:"Generate Tasks"})]}),e.jsx("button",{onClick:b,disabled:i,className:E("px-3 py-2 text-white rounded-md disabled:opacity-50 flex items-center gap-2 transition-colors min-h-[44px] md:min-h-0",y?"bg-green-600 hover:bg-green-700":"bg-purple-600 hover:bg-purple-700"),children:y?e.jsxs(e.Fragment,{children:[e.jsx("svg",{className:"h-5 w-5 md:h-4 md:w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),e.jsx("span",{className:"hidden sm:inline",children:"Saved!"})]}):e.jsxs(e.Fragment,{children:[e.jsx(F,{className:"h-5 w-5 md:h-4 md:w-4"}),e.jsx("span",{className:"hidden sm:inline",children:i?"Saving...":"Save PRD"})]})}),e.jsx("button",{onClick:m,className:"hidden items-center justify-center rounded-md p-2 text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white md:flex",title:c?"Exit fullscreen":"Fullscreen",children:c?e.jsx(V,{className:"h-4 w-4"}):e.jsx(Q,{className:"h-4 w-4"})}),e.jsx(S,{title:"Close",onClick:g,icon:e.jsx(I,{className:"h-6 w-6 md:h-4 md:w-4"})})]})]})}function be({content:t,onContentChange:s,fileName:r,onFileNameChange:a,isNewFile:l,saving:o,saveSuccess:f,onSave:h,onDownload:u,onClose:x,loadError:p}){const[d,b]=n.useState(!1),[i,y]=n.useState(!0),[c,m]=n.useState(!1),[g,j]=n.useState(!0),[v,N]=n.useState(!1),C=()=>{if(!t.trim()){alert("Please add content to the PRD before generating tasks.");return}N(!0)};return e.jsxs("div",{className:E("fixed inset-0 z-[200] md:bg-black/50 md:flex md:items-center md:justify-center",d?"md:p-0":"md:p-4"),children:[e.jsxs("div",{className:E("bg-white dark:bg-gray-900 shadow-2xl flex flex-col","w-full h-full md:rounded-lg md:shadow-2xl",d?"md:w-full md:h-full md:rounded-none":"md:w-full md:max-w-6xl md:h-[85vh] md:max-h-[85vh]"),children:[p&&e.jsx("div",{className:"border-b border-yellow-200 bg-yellow-50 px-4 py-3 text-sm text-yellow-800 dark:border-yellow-800 dark:bg-yellow-900/20 dark:text-yellow-200",children:p}),e.jsx(fe,{fileName:r,onFileNameChange:a,isNewFile:l,previewMode:c,onTogglePreview:()=>m(w=>!w),wordWrap:g,onToggleWordWrap:()=>j(w=>!w),isDarkMode:i,onToggleTheme:()=>y(w=>!w),onDownload:u,onOpenGenerateTasks:C,canGenerateTasks:!!t.trim(),onSave:h,saving:o,saveSuccess:f,isFullscreen:d,onToggleFullscreen:()=>b(w=>!w),onClose:x}),e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(he,{content:t,onContentChange:s,previewMode:c,isDarkMode:i,wordWrap:g})}),e.jsx(ge,{content:t})]}),e.jsx(xe,{isOpen:v,fileName:M(r||"prd"),onClose:()=>N(!1)})]})}function Ee({file:t,onClose:s,projectPath:r,project:a,initialContent:l="",isNewFile:o=!1,onSave:f}){const[h,u]=n.useState(!1),[x,p]=n.useState(""),{content:d,setContent:b,fileName:i,setFileName:y,loading:c,loadError:m}=ie({file:t,isNewFile:o,initialContent:l,projectPath:r}),{existingPrds:g,refreshExistingPrds:j}=de({projectId:a?.projectId}),v=n.useMemo(()=>!o||!!t?.isExisting,[t?.isExisting,o]),{savePrd:N,saving:C,saveSuccess:w}=ce({projectId:a?.projectId,existingPrds:g,isExistingFile:v,onAfterSave:async()=>{await j(),await f?.()}}),U=n.useCallback(()=>{const T=new Blob([d],{type:"text/markdown"}),k=URL.createObjectURL(T),P=document.createElement("a"),G=M(i||"prd");P.href=k,P.download=G,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(k)},[d,i]),R=n.useCallback(async(T=!1)=>{const k=await N({content:d,fileName:i,allowOverwrite:T});if(k.status==="needs-overwrite"){p(k.fileName),u(!0);return}k.status==="failed"&&alert(k.message)},[d,i,N]),z=n.useCallback(async()=>{u(!1),await R(!0)},[R]);return oe({onSave:()=>{R()},onClose:s}),c?e.jsx(ue,{}):e.jsxs(e.Fragment,{children:[e.jsx(be,{content:d,onContentChange:b,fileName:i,onFileNameChange:y,isNewFile:o,saving:C,saveSuccess:w,onSave:()=>{R()},onDownload:U,onClose:s,loadError:m}),e.jsx(me,{isOpen:h,fileName:x||M(i||"prd"),saving:C,onCancel:()=>u(!1),onConfirm:()=>{z()}})]})}export{Ee as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,j as e}from"./vendor-react-C2GTiUCy.js";import{a as b,x as g,f as o,B as d}from"./feature-workspace-CAB6bgPy.js";import{z as S,S as Z,R as V,a6 as ee,aW as se,d as $,r as F,v as L,X as te,aX as re,L as ae,aa as ne}from"./vendor-ui-CAUHSABu.js";import"./vendor-i18n-B6HjLCnN.js";import"./vendor-data-DsEZeNPr.js";import"./vendor-markdown-DkITEES2.js";async function f(r){const i=await r.json();if(!r.ok||i.success===!1)throw new Error(i.error||i.details||`Request failed (${r.status})`);return i}function O(r){if(!r)return"Never";const i=Date.parse(r);if(!Number.isFinite(i))return"Unknown";const a=Math.max(0,Math.round((Date.now()-i)/1e3));if(a<10)return"Just now";if(a<60)return`${a}s ago`;const x=Math.round(a/60);if(x<60)return`${x}m ago`;const n=Math.round(x/60);return n<24?`${n}h ago`:`${Math.round(n/24)}d ago`}function j(r){if(!r)return"No page loaded";try{return new URL(r).hostname}catch{return r}}function B(r){return r?r.replace(/_/g," ").replace(/:/g,": "):"Waiting"}function ie(r){return r==="ready"?"border-primary/30 bg-primary/5 text-foreground":r==="stopped"?"border-border bg-muted text-muted-foreground":"border-border bg-background text-muted-foreground"}function le(r,i){return r?.enabled?r.available||r.installInProgress||i?"border-primary/30 bg-primary/5 text-foreground":"border-border bg-background text-muted-foreground":"border-border bg-muted text-muted-foreground"}function _(r){return r==="ready"?"bg-primary":r==="stopped"?"bg-muted-foreground/50":"bg-border"}const de=["Use Browser to inspect the checkout flow and report any broken UI states.","Open <url> with Browser, interact with the page, and summarize what changed after each step."];function fe({isVisible:r,onShowSettings:i}){const[a,x]=l.useState(null),[n,q]=l.useState([]),[I,w]=l.useState(null),[C,R]=l.useState(!1),[c,D]=l.useState(!1),[u,E]=l.useState(!1),[W,N]=l.useState(!1),[P,p]=l.useState(null),t=l.useMemo(()=>n.find(s=>s.id===I)||n[0]||null,[I,n]),z=n.filter(s=>s.status==="ready"),J=!!(a?.enabled&&(!a.playwrightInstalled||!a.chromiumInstalled)),X=a?.enabled?a.available?"Ready":a.installInProgress||u?"Installing":"Setup required":"Disabled",A=t?.cursor&&t.viewport?{left:`${t.cursor.x/t.viewport.width*100}%`,top:`${t.cursor.y/t.viewport.height*100}%`}:null,h=l.useCallback(async()=>{R(!0);try{const[s,m]=await Promise.all([b("/api/browser-use/status"),b("/api/browser-use/sessions")]),Q=await f(s),y=(await f(m)).data.sessions;x(Q.data),q(y),w(k=>k&&y.some(Y=>Y.id===k)?k:y[0]?.id||null),p(null)}catch(s){p(s instanceof Error?s.message:"Failed to load Browser")}finally{R(!1)}},[]);l.useEffect(()=>{r&&h()},[r,h]);const v=l.useCallback(async s=>{D(!0),p(null);try{await s(),await h()}catch(m){p(m instanceof Error?m.message:"Browser action failed")}finally{D(!1)}},[h]),M=()=>v(async()=>{if(!t)return;const s=await b(`/api/browser-use/sessions/${t.id}/stop`,{method:"POST"});await f(s)}),T=()=>v(async()=>{if(!t)return;const s=await b(`/api/browser-use/sessions/${t.id}`,{method:"DELETE"});await f(s),N(!1)}),H=()=>v(async()=>{E(!0);try{const s=await b("/api/browser-use/runtime/install",{method:"POST"});await f(s)}finally{E(!1)}}),G=s=>{const m=t?.id===s.id;return e.jsxs("button",{type:"button",onClick:()=>w(s.id),className:o("group w-full rounded-md border px-3 py-2.5 text-left transition-colors",m?"border-primary/50 bg-primary/10 text-foreground":"border-border/60 bg-card/30 text-muted-foreground hover:bg-muted/50"),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",_(s.status))}),e.jsx("div",{className:"truncate text-sm font-medium",children:s.title||j(s.url)})]}),e.jsx("div",{className:"mt-1 truncate pl-3.5 text-xs text-muted-foreground",children:j(s.url)})]}),e.jsx(g,{variant:"outline",className:"shrink-0 border-border bg-background text-[10px] text-muted-foreground",children:s.status})]}),e.jsxs("div",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[e.jsx(re,{className:"h-3 w-3"}),e.jsx("span",{children:O(s.updatedAt)}),e.jsxs("span",{className:"truncate",children:["- ",B(s.lastAction)]})]})]},s.id)},K=()=>e.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-6",children:e.jsxs("div",{className:"w-full max-w-2xl rounded-md border border-border bg-card/40 p-5 shadow-sm",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-md border border-border bg-background",children:e.jsx(S,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold text-foreground",children:a?.enabled?"No browser sessions yet":"Browser is disabled"}),e.jsx("p",{className:"mt-1 max-w-xl text-sm leading-6 text-muted-foreground",children:a?.enabled?"Agent browser sessions appear here while an AI task is using Browser.":"Enable Browser in settings to let agents open monitored browser sessions."})]})]}),J&&e.jsxs("div",{className:"mt-4 rounded-md border border-border bg-muted/30 p-3",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:"Runtime setup required"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:a?.message}),e.jsxs(d,{type:"button",size:"sm",className:"mt-3",onClick:H,disabled:c||u||a?.installInProgress,children:[u||a?.installInProgress?e.jsx(ae,{className:"h-4 w-4 animate-spin"}):e.jsx(ne,{className:"h-4 w-4"}),u||a?.installInProgress?"Installing...":"Install Runtime"]})]}),e.jsx("div",{className:"mt-5 grid gap-2 sm:grid-cols-2",children:de.map(s=>e.jsxs("div",{className:"rounded-md border border-border/70 bg-background/70 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[e.jsx(L,{className:"h-3.5 w-3.5"}),"Prompt"]}),e.jsx("p",{className:"text-sm leading-6 text-foreground",children:s})]},s))})]})}),U=(s=!1)=>e.jsx("div",{className:o("flex flex-1 items-center justify-center bg-neutral-950",s?"min-h-[80vh]":"min-h-[420px]"),children:t?.screenshotDataUrl?e.jsxs("div",{className:"relative inline-block max-h-full",children:[e.jsx("img",{src:t.screenshotDataUrl,alt:"Browser session screenshot",className:s?"block max-h-[80vh] w-auto max-w-full object-contain":"block max-h-[72vh] w-auto max-w-full object-contain"}),A&&e.jsx("div",{className:"pointer-events-none absolute h-5 w-5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white/90 bg-primary/80 shadow-[0_0_0_6px_hsl(var(--primary)/0.18)]",style:A,children:e.jsx("div",{className:"absolute left-1/2 top-1/2 h-2 w-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-white"})})]}):e.jsxs("div",{className:"px-6 text-center",children:[e.jsx(S,{className:"mx-auto h-9 w-9 text-neutral-500"}),e.jsx("div",{className:"mt-3 text-sm font-medium text-neutral-100",children:t?.message||"Waiting for screenshot"}),e.jsx("p",{className:"mt-1 text-xs text-neutral-400",children:"The next agent browser snapshot will render here."})]})});return e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{className:"h-4 w-4 text-primary"}),e.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Browser"}),e.jsx(g,{variant:"outline",className:o("text-[10px]",le(a,u)),children:X})]}),e.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"Monitor browser sessions opened by AI agents."})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[i&&e.jsx(d,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>i("browser"),title:"Open Browser settings","aria-label":"Open Browser settings",children:e.jsx(Z,{className:"h-3.5 w-3.5"})}),e.jsx(d,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>{h()},disabled:C||c,title:"Refresh browser sessions","aria-label":"Refresh browser sessions",children:e.jsx(V,{className:o("h-3.5 w-3.5",C&&"animate-spin")})})]})]}),P&&e.jsx("div",{className:"border-b border-destructive/20 bg-destructive/10 px-4 py-2 text-sm text-destructive",children:P}),n.length>0&&e.jsx("div",{className:"border-b border-border/60 bg-muted/20 px-3 py-2 lg:hidden",children:e.jsx("div",{className:"flex gap-2 overflow-x-auto",children:n.map(s=>e.jsxs("button",{type:"button",onClick:()=>w(s.id),className:o("flex min-w-[180px] items-center gap-2 rounded-md border px-2.5 py-2 text-left",t?.id===s.id?"border-primary/40 bg-primary/5":"border-border bg-background"),children:[e.jsx("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",_(s.status))}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium text-foreground",children:s.title||j(s.url)})]},s.id))})}),e.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-[minmax(0,1fr)_320px]",children:[e.jsxs("main",{className:"flex min-h-0 flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/60 bg-muted/20 px-4 py-2.5 text-xs text-muted-foreground",children:[e.jsxs("div",{className:"min-w-0 truncate",children:[z.length," active",e.jsx("span",{className:"px-1.5",children:"/"}),n.length," total"]}),e.jsxs("div",{className:"min-w-0 truncate",children:["Updated ",O(t?.updatedAt||null)]})]}),n.length===0?K():e.jsx("div",{className:"min-h-0 flex-1 overflow-auto bg-muted/20 p-4",children:e.jsxs("div",{className:"mx-auto flex min-h-[500px] max-w-7xl flex-col overflow-hidden rounded-md border border-border bg-background shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2",children:[e.jsx(g,{variant:"outline",className:t?o("text-[10px]",ie(t.status)):"text-[10px]",children:t?.status||"empty"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-sm font-medium text-foreground",children:t?.title||j(t?.url||null)}),e.jsxs("div",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(ee,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"truncate",children:t?.url||"No page loaded"})]})]}),e.jsx("div",{className:"hidden text-xs text-muted-foreground md:block",children:B(t?.lastAction||null)}),e.jsx(d,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>N(!0),disabled:!t?.screenshotDataUrl,title:"Full screen","aria-label":"Full screen",children:e.jsx(se,{className:"h-4 w-4"})}),e.jsx(d,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 lg:hidden",onClick:M,disabled:c||!t||t.status!=="ready",title:"Stop session","aria-label":"Stop session",children:e.jsx($,{className:"h-4 w-4"})}),e.jsx(d,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 lg:hidden",onClick:T,disabled:c||!t,title:"Delete session","aria-label":"Delete session",children:e.jsx(F,{className:"h-4 w-4"})})]}),U()]})})]}),e.jsxs("aside",{className:"hidden min-h-0 flex-col border-l border-border/60 bg-background lg:flex",children:[e.jsx("div",{className:"border-b border-border/60 px-4 py-3",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold text-foreground",children:"Sessions"}),e.jsxs("div",{className:"mt-0.5 text-xs text-muted-foreground",children:[n.length," total"]})]}),e.jsxs(g,{variant:"outline",className:"text-[10px]",children:[z.length," active"]})]})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-3",children:n.length>0?e.jsx("div",{className:"space-y-2",children:n.map(G)}):e.jsx("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-8 text-center text-xs text-muted-foreground",children:"No agent browser sessions."})}),e.jsx("div",{className:"border-t border-border/60 p-3",children:e.jsxs("div",{className:"rounded-md border border-border/70 bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[e.jsx(L,{className:"h-3.5 w-3.5"}),"Selected"]}),e.jsxs("div",{className:"mt-3 space-y-2 text-xs text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:"Status"}),e.jsx("span",{className:"font-medium text-foreground",children:t?.status||"None"})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:"Last action"}),e.jsx("span",{className:"truncate font-medium text-foreground",children:B(t?.lastAction||null)})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:"Profile"}),e.jsx("span",{className:"truncate font-medium text-foreground",children:t?.profileName||"Temporary"})]})]}),e.jsxs("div",{className:"mt-3 grid grid-cols-2 gap-2",children:[e.jsxs(d,{variant:"outline",size:"sm",onClick:M,disabled:c||!t||t.status!=="ready",children:[e.jsx($,{className:"h-4 w-4"}),"Stop"]}),e.jsxs(d,{variant:"outline",size:"sm",onClick:T,disabled:c||!t,children:[e.jsx(F,{className:"h-4 w-4"}),"Delete"]})]})]})})]})]}),W&&t&&e.jsx("div",{className:"fixed inset-0 z-50 bg-black/90 p-6",children:e.jsxs("div",{className:"flex h-full flex-col rounded-md border border-white/10 bg-black",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-white/10 px-4 py-3 text-sm text-white/80",children:[e.jsx("div",{className:"min-w-0 truncate",children:t.title||t.url||"Browser session"}),e.jsxs(d,{variant:"outline",size:"sm",onClick:()=>N(!1),children:[e.jsx(te,{className:"h-4 w-4"}),"Close"]})]}),U(!0)]})})]})}export{fe as BrowserUsePanel};
|