@xopcai/xopc 0.0.424 → 0.0.425
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-AI081rxe.js → activity-store-CMw8qBuC.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DupnTbL7.js → agent-avatar-dicebear-JI0YWOIm.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-CmEj6Uqy.js → agent-avatar-display-YqmwzOSa.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-IEV5yKuu.js → agent-defaults-settings-panel-DlvjxWg6.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-D_njOuFA.js → agent-plugin-dialog-OBueuQSc.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-B_yg9nA3.js → agents-Cp6_5OOQ.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-CUZUolwG.js → agents-admin-api-DLnmdC1h.js} +1 -1
- package/dist/gateway/static/root/assets/{api-bpQ7yR10.js → api-Boc-CVh7.js} +1 -1
- package/dist/gateway/static/root/assets/{api-CWWEVThO.js → api-bL7sxjAF.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-C0_hxwgg.js → app-management-settings-panel-jIG5i7KE.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CLh-qnCC.js → appearance-settings-BnaQW9Xd.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-Bjtm3Rgi.js → apps-page-C2WKUwtN.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-dGnstkhB.js → archive-plugin-DjboG3kA.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-MB2xCoFF.js → automation-api-CZqL9l_d.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-DJQflY78.js → automation-result-state-DRd-X_Ai.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-task-card-DXgBxVE2.js → automation-task-card-wbnR5i6N.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D3O7M2FH.js → automations-page-HyBQIfmn.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-Dk3FVWoX.js → automations-workspace-D6cTOKr7.js} +2 -2
- package/dist/gateway/static/root/assets/{binary-plugins-BrVJXmYf.js → binary-plugins-Bg8ARZUH.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Dok4sfT3.js → block-editor-DKohqFAW.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-PJbT3CxW.js → browser-automation-inputs-YeibTzw4.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-kkpX1Q7K.js → browser-automations-page-BWNcbuz2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-Bg4wnkeA.js → browser-control-api-CDeuxy2x.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-BrgX_Yb2.js → browser-settings-page-L0nBjfhG.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-Cs6Jt5Gl.js → capabilities-BcQa8c9n.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BMaJizw4.js → capabilities-aT-QjNTl.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-D5hvAG6D.js → capabilities-page-DlpuHdHi.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-BrEvm4IH.js → capabilities-settings-panel-pvqkN2-2.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-1jQgGVc9.js → channels-BUPtawh6.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-BAOWaUJf.js → chat-agents-api-B8JO6Tcj.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-DeWrb9XR.js → chat-chart-block-DRtuFfF1.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-page-CafkCKOj.js → chat-page-BP0huA-W.js} +31 -31
- package/dist/gateway/static/root/assets/{chat-terminal-dock-C544n0-R.js → chat-terminal-dock-Dkqq5FSL.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-D9PXzY8b.js → command-palette-api-qujvNqkK.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-CYXfjpem.js → composer-payload-handoff-CYIhcczq.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-DJmod8-w.js → computer-settings-page-8q4hRmoo.js} +1 -1
- package/dist/gateway/static/root/assets/{connected-providers-grid-b46VH4uy.js → connected-providers-grid-CKZfhHSD.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-BqDbTOTp.js → connector-service-page-DQaTI21R.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-CwRuUnH4.js → connectors-api-BjypBp2g.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-Mq9Bvoax.js → connectors-page-Lf1ZzaVn.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-DWaT0IC0.js → date-picker-D_PSHGpe.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-DV9XAt6F.js → dependency-picker-UqKVJ9dv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-Dffq2NxL.js → desktop-pet-1Et9VqkM.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-rADKU0FX.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-CrB1ICax.js → desktop-pet-settings-0fCGgaG7.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-liRgSkcT.js → dev-view-store-TTj_djD8.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-ByEL5lvM.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-EKqQLQrE.js → directory-picker-path-field-C07a7wYX.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-D-b1X6ro.js → discussion-annotation-sync-BFqKm9ky.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-wD97GeG0.js → extension-debug-page-DFaVlqas.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-B4Q1CjvW.js → extension-iframe-host-BfzPfXBq.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-ak1_K3u8.js → extension-marketplace-api-ow0K1Y4_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DWFI4iIh.js → extension-page-CrDADV5W.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BZwcaU5Y.js → extension-provider-mnRoa63o.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-cn4KS42C.js → extension-settings-page-BLl02GFY.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-c3gDD9sM.js → file-preview-surface-TGdKqhCf.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-Dmt5JhZU.js → gateway-config-swr-DfPQIHOL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-CJtDXQCt.js → gateway-realtime-67vWg_M2.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bkt1z-xo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-DInvvT5u.js → gateway-restart-CLtR2wkL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-BZXdv2FE.js → gateway-settings-COvC3r-l.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-s2KcWekp.js → gateway-startup-retry-9YQllbw2.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-DtnmDd87.js → global-defaults-api-DYMRjGvd.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CAVjA5rO.js → home-page-k9LFXcVa.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-RQQokgE9.js → image-generation-api-Dzydfvy8.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-BP_4TubV.js → imports-page-Csd_YZXZ.js} +1 -1
- package/dist/gateway/static/root/assets/index-CpwPxKQ8.css +1 -0
- package/dist/gateway/static/root/assets/index-DKW7BeT_.js +11 -0
- package/dist/gateway/static/root/assets/{install-connector-dialog-BNzNuXJ8.js → install-connector-dialog-CTQAKTPv.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DNRQFepg.js → keyboard-shortcuts-settings-B201bMIa.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-CvY5XxbX.js → local-app-workbench-page-CD_8_gd_.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-DfwEvd8G.js → local-apps-page-BOwqNH0L.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-CuDdIyxR.js → local-session-drafts-DjmK-SM9.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-TQcz_Vjt.js → locale-store-Bg_XR36n.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-eq49F1Rt.js → logs-page-gw3E9CMQ.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-BaYXDMOJ.js → management-settings-t_Z2mCyw.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-D4nII6Zv.js → markdown-view-BUpXJUPv.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-MvlAY405.js → media-plugins-_shnaEMY.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DG4HLOER.js +3 -0
- package/dist/gateway/static/root/assets/{model-selector-nsoNHqif.js → model-selector-a7PIT1Lk.js} +1 -1
- package/dist/gateway/static/root/assets/{models-hub-cache-CFIazNIF.js → models-hub-cache-KOJC3z6Q.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-KPzbHiEW.js → note-detail-panel-BsHYUFgk.js} +3 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-B-bEtjhj.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-HVxR5bRD.js → notes-api-BSmikUKI.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-yShJeR3i.js → notes-page-CA0NRL8O.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-CfKjRVnb.js → oauth-api-D2t9HXoC.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-D4uqONWr.js → oauth-provider-connect-DGGGGtcB.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-B98nlKTc.js → page-context-capture-button-BH54VO0V.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-HcuK45iu.js → page-context-draft-BS5y8Cx9.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-BdZnUh-D.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-_d72UP_d.js → personal-avatar-D8DtpDTa.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-B19h_3WQ.js → personal-page-KJezmTKP.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-CfwtGyue.js → personal-settings-panel-9uDaNJy5.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-D8bqsDk_.js → phone-dependencies-card-DLYrI0C4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-model-picker-CL_Zn6Xd.js → phone-model-picker-BbA2iI-3.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-settings-page-C5Jia8eQ.js → phone-settings-page-Cg_BPss4.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-workspace-store-FBfrfkYq.js → phone-workspace-store-CVDk80Bf.js} +1 -1
- package/dist/gateway/static/root/assets/{plugin-details-dialog-gAq2KPzK.js → plugin-details-dialog-DgibLkc3.js} +1 -1
- package/dist/gateway/static/root/assets/{preference-select-fields-Ck8GAX_y.js → preference-select-fields-BVoN-lAv.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-BJ9oTnNs.js → product-automation-feedback-DCo90zGh.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-Dw9hUdxP.js → product-open-page-OWl8IAoY.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-C0iPzmSm.js → product-preview-content-Cjas7UNe.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-COFtHoh6.js → product-preview-modal-CPWRvBI9.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-C5Amjah-.js → project-detail-page-B_HlZux_.js} +1 -1
- package/dist/gateway/static/root/assets/{project-understanding-DpL9ADQU.js → project-understanding-Ba02SFzB.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-gGg9nM2t.js → projects-page-CdfKjp95.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-D6JJRlJb.js → providers-api-rwQ4LWzr.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-DxX1xKyt.js → recording-upload-BSmvRrZQ.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-BfXzBR1D.js → registry-api-Vy7LfH6E.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BZA4StwC.js → remote-access-hub-UXrnpGev.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-X-SIrZYI.js → resource-unavailable-f9OzSi4W.js} +1 -1
- package/dist/gateway/static/root/assets/{route-preload-CWRb0UCt.js → route-preload-BtObM-co.js} +2 -2
- package/dist/gateway/static/root/assets/{runtime-tools-api-1DjsPyQ5.js → runtime-tools-api-Bt8t37z5.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BnCtyORj.js → runtime-tools-settings-panel-DU4UXnBm.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-ChSOfHHh.js → service-recommendation-list-CuYsRcBB.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-rvY5aWw8.js → session-api-DJI9eSgw.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-CtKgACGl.js +23 -0
- package/dist/gateway/static/root/assets/{sessions-page-DAS2IUGT.js → sessions-page-BAsKzRHt.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CjAFqg2U.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-ZKRIuk7h.js → settings-advanced-section-BxUuF_yi.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-CtJ8pEfm.js → settings-mode-store-CaoRh2gt.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-DuNCn8i-.js → settings-page-header-CyUHrn7c.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-DeNC8YHJ.js → settings-page-layout-DGVqXrlp.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-B3pUce-_.js → settings-page-qQ8-6dJ_.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-Fc3vuz_h.js → setup-status-panel-BpaPb625.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-B3hwjVAx.js → share-link-dialog-CQJ6Ykm2.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-D_9oFzGS.js → share-preview-page-Cem96FbB.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-BoUpXmxq.js → shares-api-Dowes16l.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-Drfuvepz.js → shares-settings-DZEkZDR0.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-By2HhJ9O.js → skill-api-D8ZwFEVe.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-TaUCzS8Y.js → skill-list-api-B4gp00-f.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-CN2fpS1n.js → skill-reload-api-ClmaaDXo.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-LzGLique.js → skills-page-CV0X9rvG.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-Cuyg8Ml3.js → system-settings-panel-D095uacX.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-CY2C4AM2.js +2 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-DDubAU_5.js → task-result-evidence-LUrJlUhb.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BNs75Wdr.js → terminal-panel-store-BqEDB1Vl.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-DB1ZfBUm.js → theme-store-gAcojLgP.js} +1 -1
- package/dist/gateway/static/root/assets/tool-friendly-title-o6sxGVUu.js +1 -0
- package/dist/gateway/static/root/assets/{tracing-settings-page-TvtX4Goh.js → tracing-settings-page-B1ZRh-Is.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-COoVEdV9.js → tunnel-api-C9u9E3UQ.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-Dr_MLgYe.js → understanding-activity-store-BTrzsR6_.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-DGmLGEqw.js → understanding-refresh-store-5Qava3jh.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-DP6eb6ed.js → usage-page-DFMLYKAc.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-itwjDYUb.js → use-autosave-3O-X7x15.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-hjIGlI_2.js → use-composer-attachments-BLc4dBfe.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-ClLa0g8D.js → use-file-preview-expanded-BaOmTXsT.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-vhWk6tTU.js → use-personal-profile-MusPgljM.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-dfXXjA2-.js → use-workspace-tree-Ck_U2yTw.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-D8dswPWd.js → user-model-page-Den5Lg-k.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BIfBySnN.js → voice-api-key-field-C5zJApoa.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-J4o59ICE.js → voice-config-api-DC1bYDt1.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B1mlpUdC.js → voice-input-shortcut-events-0SZjJdVV.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-xxaSOOmq.js → voice-transcribe-api-CxVeANPX.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DqwT1E5u.js → work-discovery-overlay-DAQ8McVe.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-BzYQmPLT.js → work-discovery-page-DUQysEyb.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-D2Zf3GOG.js → working-directory-picker-modal-BO9qdJyZ.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Bnx3eS2M.js → workspace-api-ZrN6yUER.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bo5dwoWP.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-D13qHzVr.js → workspace-file-preview-dialog-Yj_kBWSb.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-Cou-ig1H.js → workspace-open-location-menu-yxT7wajO.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DQGPKxHA.js → xopc-cloud-account-card-IcH9KDzx.js} +1 -1
- package/dist/gateway/static/root/index.html +81 -81
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +33 -3
- package/dist/src/agent/embedded/run-turn.js +64 -4
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +6 -0
- package/dist/src/agent/tools/computer-use-tool.js +18 -5
- package/dist/src/agent/tools/phone-use-tool.js +12 -2
- package/dist/src/cli/commands/backup.js +1 -1
- package/dist/src/computer/agent-context.d.ts +21 -0
- package/dist/src/computer/agent-context.js +107 -0
- package/dist/src/computer/broker.d.ts +4 -2
- package/dist/src/computer/broker.js +26 -11
- package/dist/src/computer/diagnostics.d.ts +60 -6
- package/dist/src/computer/diagnostics.js +45 -4
- package/dist/src/computer/errors.d.ts +1 -1
- package/dist/src/computer/errors.js +4 -0
- package/dist/src/computer/evaluation.d.ts +2 -2
- package/dist/src/computer/native-timing.d.ts +15 -0
- package/dist/src/computer/native-timing.js +49 -0
- package/dist/src/computer/program-runtime.d.ts +22 -0
- package/dist/src/computer/program-runtime.js +105 -0
- package/dist/src/computer/runtime.d.ts +36 -2
- package/dist/src/computer/runtime.js +269 -58
- package/dist/src/config/schema.d.ts +18 -0
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- package/dist/src/phone/adb-driver.d.ts +15 -1
- package/dist/src/phone/adb-driver.js +104 -41
- package/dist/src/phone/autoglm-protocol.d.ts +36 -0
- package/dist/src/phone/autoglm-protocol.js +88 -0
- package/dist/src/phone/autoglm-upstream-prompt.d.ts +2 -0
- package/dist/src/phone/autoglm-upstream-prompt.js +5 -0
- package/dist/src/phone/autoglm-upstream.LICENSE +201 -0
- package/dist/src/phone/cloud-adb-connection.d.ts +3 -0
- package/dist/src/phone/cloud-adb-connection.js +102 -31
- package/dist/src/phone/cloud-adb.js +18 -6
- package/dist/src/phone/completion-recovery.d.ts +6 -0
- package/dist/src/phone/completion-recovery.js +30 -0
- package/dist/src/phone/contracts.d.ts +20 -0
- package/dist/src/phone/contracts.js +6 -0
- package/dist/src/phone/execution-trace.d.ts +51 -0
- package/dist/src/phone/execution-trace.js +78 -0
- package/dist/src/phone/model-adapter.d.ts +9 -1
- package/dist/src/phone/model-adapter.js +132 -61
- package/dist/src/phone/model-response.d.ts +5 -0
- package/dist/src/phone/model-response.js +118 -0
- package/dist/src/phone/runtime.d.ts +4 -0
- package/dist/src/phone/runtime.js +146 -16
- package/dist/src/phone/text-session.d.ts +14 -0
- package/dist/src/phone/text-session.js +39 -0
- package/dist/src/phone/ui-dump-binary.d.ts +1 -1
- package/dist/src/phone/ui-dump-binary.js +1 -1
- package/dist/src/phone/ui-session.d.ts +22 -0
- package/dist/src/phone/ui-session.js +191 -0
- package/dist/src/process/phone-process.d.ts +1 -0
- package/dist/src/process/phone-process.js +11 -1
- package/package.json +2 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-1du1hfi5.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DcsZyYEa.js +0 -1
- package/dist/gateway/static/root/assets/index-BS9mjvSL.js +0 -11
- package/dist/gateway/static/root/assets/index-pT-m6l6b.css +0 -1
- package/dist/gateway/static/root/assets/messages-DaLmc4W1.js +0 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-DticJxxh.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-D6SzJ9Ch.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-D2rbRfX3.js +0 -23
- package/dist/gateway/static/root/assets/settings-advanced-gate-CYDQybNF.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-6A9337pK.js +0 -2
- package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +0 -1
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-COUVwj-p.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./notes-api-HVxR5bRD.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e}from"./locale-store-TQcz_Vjt.js";var t={startExtra:null,main:null,end:null},n=e(e=>({...t,setPageHeader:t=>e(t),clearPageHeader:()=>e(t)}));export{n as t};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,i as n,l as r,n as i,p as a,u as o}from"./locale-store-TQcz_Vjt.js";import{t as s}from"./messages-DaLmc4W1.js";import{_ as c,c as l,d as u,f as d,g as f,i as p,m,n as h,u as g}from"./schemas-CCWMleym.js";import{a as _}from"./gateway-realtime-CJtDXQCt.js";import{i as v,n as ee}from"./constants-DBtMsXdW.js";import{_ as y,b,g as x,h as S,m as C,s as te,v as w,y as T}from"./session-api-rvY5aWw8.js";import{_ as ne,a as E,b as re,c as ie,d as ae,f as oe,i as se,l as D,o as ce,p as le,r as ue,s as de,t as fe,u as pe,v as me,y as he}from"./local-session-drafts-CuDdIyxR.js";import{t as O}from"./tool-activity-BtJkgjFf.js";import{r as ge}from"./personal-proactivity-DaRnbB1f.js";import{a as _e}from"./attachment-utils-core-BIOUBrpT.js";import{t as ve}from"./gateway-startup-retry-s2KcWekp.js";import{n as ye}from"./registry-api-BfXzBR1D.js";import{a as be}from"./agents-admin-api-CUZUolwG.js";var xe=1e4,k,Se=new Set;function Ce(e,t){k={type:`endpoint`,endpointId:e,token:t};for(let e of Se)e(k);Se.clear()}function we(e){!k||e&&k.token!==e||(k=void 0)}function Te(e){return k?Promise.resolve(k):e?.aborted?Promise.reject(e.reason):new Promise((t,n)=>{let r=e=>{o(),t(e)},i=()=>{o(),n(e?.reason??new DOMException(`Aborted`,`AbortError`))},a=globalThis.setTimeout(()=>{o(),n(Error(`Endpoint connection is not ready`))},xe),o=()=>{globalThis.clearTimeout(a),Se.delete(r),e?.removeEventListener(`abort`,i)};Se.add(r),e?.addEventListener(`abort`,i,{once:!0})})}var Ee=[0,500,1500],De=1e4;function Oe(e){let t=[e.content,e.thinking??null,e.attachments??null,e.contextRefs??null,e.browserContexts??null];e.appContext!==void 0&&t.push(e.appContext);let n=JSON.stringify(t),r=2166136261,i=5381;for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);r^=t,r=Math.imul(r,16777619),i=Math.imul(i,33)^t}return`${n.length.toString(36)}:${(r>>>0).toString(36)}:${(i>>>0).toString(36)}`}function ke(e){return e===408||e===429||e>=500}var Ae=/^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}[^\]]*\]\s*/u,je=[`user-profile`,`active-focuses`,`collaboration-contract`,`user-context`];function Me(e,t){let n=`<${t}>`;if(!e.startsWith(n))return null;let r=`</${t}>`,i=e.indexOf(r,n.length);return i<0?null:e.slice(i+r.length).trimStart()}function Ne(e){return Ae.test(e)||e.startsWith(`<source_contexts>`)||je.some(t=>e.startsWith(`<${t}>`))}function Pe(e){if(!e.includes(`<source_contexts>`))return e;let t=e.replace(/^\s*<source_contexts>[\s\S]*?<\/source_contexts>\s*/u,``).trimStart();return t.match(/^<user_message>\r?\n([\s\S]*)\r?\n<\/user_message>\s*$/u)?.[1]??t}function Fe(e){let t=e,n=Me(t.trimStart(),`xopc_task_execution`);n!==null&&Ne(n)&&(t=n),t=Pe(t);let r=t,i=!1;for(t=t.trimStart();;){let e=je.find(e=>t.startsWith(`<${e}>`));if(!e)break;let n=Me(t,e);if(n===null){t=r,i=!1;break}t=n,i=!0}return i&&!Ae.test(t)&&(t=r),t.replace(Ae,``)}function Ie(e){return!e.includes(`[media attached:`)&&!e.includes(`xopc-media-uri:`)?e:e.replace(/\s*\[media attached:[^\]]+\]\s*\r?\nxopc-media-uri:[^\r\n]+\r?\n\s*xopc-media-path:[^\r\n]+(?:\r?\n\s*Use the read_media tool[^\r\n]*)?/g,``).replace(/\s*\[media attached:[^\]]+\]\s*/g,` `).replace(/\s*xopc-media-uri:[^\r\n]+/g,``).replace(/\s*xopc-media-path:[^\r\n]+/g,``).replace(/\s*Use the read_media tool[^\r\n]*/g,``).replace(/\n{3,}/g,`
|
|
2
|
-
|
|
3
|
-
`).trim()}var Le=`@xopc-ref:`,Re=`[A-Za-z0-9_-]{1,64}`,ze=RegExp(`${Le}(${Re})`,`g`);function Be(e){if(!RegExp(`^${Re}$`).test(e))throw Error(`Invalid context reference id`);return`${Le}${e}`}function Ve(){return new RegExp(ze.source,`g`)}function He(e){let t=[],n=Ve(),r=0,i;for(;(i=n.exec(e))!==null;)i.index>r&&t.push({type:`text`,text:e.slice(r,i.index)}),t.push({type:`context_ref`,refId:i[1]??``}),r=i.index+i[0].length;return t.length===0?null:(r<e.length&&t.push({type:`text`,text:e.slice(r)}),{version:1,parts:t})}function Ue(e){return e.parts.flatMap(e=>e.type===`context_ref`?[e.refId]:[])}function We(e,t){return e.parts.map(e=>{if(e.type===`text`)return e.text;let n=t(e.refId)?.trim();return n?`@${n}`:``}).join(``)}function Ge(e){return e.parts.map(e=>e.type===`text`?e.text:Be(e.refId)).join(``)}function Ke(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return t.version!==1||!Array.isArray(t.parts)?!1:t.parts.every(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return t.type===`text`?typeof t.text==`string`:t.type===`context_ref`&&typeof t.refId==`string`&&RegExp(`^${Re}$`).test(t.refId)})}var qe=8e3,Je=u({schemaVersion:f([l(1),l(2)]).optional(),questions:he.optional(),interactionMode:h([`quick`,`compose`]).optional(),choiceDetails:p(u({id:m().min(1).max(160),label:m().trim().min(1).max(1e3),description:m().max(2e3).optional()}).strict()).min(2).max(10).optional(),recommendedChoiceId:m().min(1).max(160).optional(),approval:u({operation:m().min(1).max(1e3),target:m().max(2e3).optional(),impact:m().max(4e3).optional(),argumentsPreview:d(m(),c()).optional()}).strict().optional()}),Ye=u({schemaVersion:f([l(1),l(2)]).optional(),answers:me.optional(),response:u({choiceId:m().min(1).max(160).optional(),text:m().trim().max(qe).optional()}).strict().optional(),decision:h([`approve`,`deny`]).optional()}).strict();Ye.extend({action:h([`answer`,`agent_decide`,`cancel`]),expectedVersion:g().int().positive(),idempotencyKey:m().trim().min(1).max(256)}).strict();function Xe(e){let t=Je.safeParse(e);return t.success?t.data:{}}function Ze(e,t){let n=Ye.parse(t);if(e.schemaVersion===2){if(e.kind===`approval`||n.schemaVersion!==2||n.response||n.decision||!e.questions)throw Error(`Multi-question response requires schemaVersion 2`);return{schemaVersion:2,...re(e.questions,n.answers)}}if(n.schemaVersion===2||n.answers!==void 0)throw Error(`Unexpected multi-question response`);if(e.kind===`approval`){if(n.response||!n.decision)throw Error(`An explicit approval decision is required`);return{answer:n.decision,decision:n.decision}}if(n.decision||!n.response)throw Error(`A structured response is required`);let r=n.response.choiceId?e.choiceDetails?.find(e=>e.id===n.response.choiceId):void 0;if(n.response.choiceId&&!r)throw Error(`Unknown clarification choice`);let i=n.response.text?.trim()??``;if(!r&&!i)throw Error(`Answer is required`);return{answer:r&&i?`Choice: ${r.label}\nAdditional information: ${i}`:r?.label??i,response:{...r?{choiceId:r.id}:{},...i?{text:i}:{}}}}var Qe=u({version:l(1),deliveryId:m().min(1),taskId:m().min(1),taskRunId:m().min(1),taskTitle:m().min(1).max(500),conversationId:m().min(1),originTranscriptId:m().min(1),requestInputId:m().optional(),assignmentEpoch:g().int().nonnegative(),resultRevision:g().int().positive().optional(),previousResultId:m().optional(),contractVersion:g().int().positive().optional(),instructionSequence:g().int().nonnegative().optional(),adoption:p(u({entryId:m(),sequence:g().int(),status:h([`applied`,`partially_applied`,`not_applied`,`superseded`]),verification:h([`passed`,`failed`,`unverified`]),claimIds:p(m()),note:m()})).optional(),outcome:ee,text:m().optional(),createdAt:g()});function $e(e){let t=Qe.safeParse(e);return t.success?t.data:void 0}var et=[`## Result for the originating conversation`,`For ordinary Tasks when publish_task_result is available, use it before completion to review the actual result. Connected Requests use their own structured result tool instead. When files were published, finalArtifactIds must select the exact final artifact IDs from publication receipts, including [] for a text-only result. Exclude intermediate, obsolete and failed files; publication history is not the final delivery manifest.`,`Provide a complete, evidence-grounded result for the originating conversation. The personal assistant may synthesize its final reply from your report. Match the user’s language and requested depth; preserve requested content, relevant sources, verified data cutoffs, uncertainty, and partial failures. Distinguish reported findings from verified facts. Do not invent a friendly opening or assume a new user request.`,`Keep internal planning, Agent names, tool logs, and task progress links out of the result unless the user specifically requested them or they are necessary to explain a blocker. Never substitute a progress page, a plan, or a promise for the requested result. Publish required files through the available artifact tools; do not repeat the same attachments or send the user to a Task page to collect them.`].join(`
|
|
4
|
-
`),tt=`Before finishing, call personal_request_result with the verified summary and, for mail, message items and coverage. The host composes the final explanation and preserves structured items in the main chat.`;function nt(e){let t=e.replace(/\r\n/g,`
|
|
5
|
-
`);return t.includes(et)?t.replace(et,``).replace(tt,``).replace(/<task_brief>\n([\s\S]*?)\n<\/task_brief>/g,`$1`).replace(/\n{3,}/g,`
|
|
6
|
-
|
|
7
|
-
`).trim():e}function rt(e,t){let n=e.replace(/\r\n/g,`
|
|
8
|
-
`);return n.includes(et)?[t.trim(),et,...n.includes(tt)?[tt]:[]].filter(Boolean).join(`
|
|
9
|
-
|
|
10
|
-
`):t}function it(e){return typeof e==`object`&&!!e&&`role`in e}function at(e){if(!e||typeof e!=`object`)return!1;let t=e.type;return t===`tool_use`||t===`tool_call`||t===`toolCall`}function ot(e){return typeof e==`object`&&!!e}function st(e){return typeof e.id==`string`&&e.id.length>0?e.id:crypto.randomUUID()}function ct(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function lt(e){return ct(e.args??e.arguments??e.input??e.function?.arguments)??{}}function ut(e){if(typeof e==`string`){let t=Date.parse(e);return Number.isNaN(t)?Date.now():t}return Date.now()}function dt(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isNaN(t)?void 0:t}function ft(e){if(Array.isArray(e))return e.map(e=>pt(e))}function pt(e){if(!e||typeof e!=`object`)return{name:`file`,mimeType:`application/octet-stream`};let t=e,n=mt(t.uri),r=ht(t.name),i=gt(t.mimeType,r),a=typeof t.type==`string`?t.type:void 0,o=a===`photo`||a===`image`||i.startsWith(`image/`)?`image`:a===`voice`||a===`audio`||i.startsWith(`audio/`)?`voice`:a;return{id:typeof t.id==`string`?t.id:void 0,name:r,mimeType:i,type:o,size:typeof t.size==`number`?t.size:void 0,uri:n,bucket:typeof t.bucket==`string`?t.bucket:void 0,path:typeof t.path==`string`?t.path:void 0}}function mt(e){return typeof e==`string`&&e.trim().startsWith(`media://`)?e.trim():void 0}function ht(e){return typeof e==`string`&&e.trim().length>0?e.trim():`file`}function gt(e,t){if(typeof e==`string`&&e.trim().length>0){let t=e.trim();if(t.toLowerCase().split(`;`)[0]?.trim()!==`application/octet-stream`)return t}return _e(t)??`application/octet-stream`}function _t(e){let t=e.uri?.trim();return t?`uri:${t}`:e.id?`id:${e.id}`:`name:${e.name??`file`}|${e.mimeType??``}`}function vt(e){if(!e?.length)return;let t=[],n=new Set;for(let r of e){let e=_t(r);n.has(e)||(n.add(e),t.push(r))}return t.length?t:void 0}var yt=`[Startup context loaded by runtime]`,bt=`...[additional startup memory truncated]...`,xt=`END_QUOTED_NOTES`;function St(...e){return e.filter(e=>e.length>0).join(`
|
|
11
|
-
|
|
12
|
-
`)}function Ct(e){if(!e.includes(yt))return e;let t=e.replace(/^\uFEFF/,``);if(!t.startsWith(yt))return e;let n=-1,r=t.lastIndexOf(xt);if(r>=0)n=r+16;else{let e=t.indexOf(bt);e>=0&&(n=e+43)}if(n<0){let n=t.slice(35),r=n.indexOf(`
|
|
13
|
-
|
|
14
|
-
`);return r>=0?n.slice(r+2).replace(/^\s+/,``):e}return t.slice(n).replace(/^\s+/,``)}function wt(e){if(typeof e!=`string`||!e.includes(`## Skill:`))return e;let t=e.indexOf(`## Skill:`),n=e.slice(0,t).replace(/\s+$/,``),r=e.slice(t),i=r.match(/## Skill:\s*([^\s\r\n]+)/);if(!i)return e;let a=i[1]??``;if(!a)return e;let o=[...r.matchAll(/\*\*Arguments\*\*:\s*([^\r\n]+)/g)],s=o.length>0?(o[o.length-1]?.[1]??``).trim():``,c=s?`/skill:${a} ${s}`:`/skill:${a}`,l=r.length;if(o.length>0){let e=o[o.length-1];l=(e.index??0)+e[0].length}return St(n,c,r.slice(l).replace(/^\s+/,``))}function Tt(e){return e.includes(`<file path=`)?e.replace(/<file\s+path="[^"]*">\r?\n[\s\S]*?<\/file>(?:\r?\n)*/g,``).replace(/\n{3,}/g,`
|
|
15
|
-
|
|
16
|
-
`).trim():e}function A(e){let t=nt(Ct(e));return t=Fe(t),t=Tt(t),t=Ie(t),t=Dt(t),wt(t)}var Et=/(?:\n{2,})?\[(?:Image description:|\d+ image\(s\) attached(?:; no image-capable model is available to describe them\.| but could not be described:))[\s\S]*\]\s*$/;function Dt(e){return e.replace(Et,``).trimEnd()}function Ot(e){let t=new Map;return e.forEach((e,n)=>{e.role===`task`&&e.taskTrigger&&t.set(e.taskTrigger.entryId,n)}),e.filter((e,n)=>e.role!==`task`||!e.taskTrigger||t.get(e.taskTrigger.entryId)===n)}function kt(e){return Lt(e)}function At(e){if(e.type!==`thinking`)return``;let t=e;return typeof t.text==`string`?t.text:typeof t.thinking==`string`?t.thinking:``}function jt(e,t){let n=[...e],r=new Map;for(let e=0;e<n.length;e++){let t=n[e];t.type===`tool_use`&&r.set(t.id,e)}for(let e of t){if(e.type===`tool_use`&&r.has(e.id)){let t=r.get(e.id);n[t]=e;continue}if(e.type===`thinking`&&n.length>0){let t=n[n.length-1];if(t.type===`thinking`&&At(t)===At(e))continue}e.type===`tool_use`&&r.set(e.id,n.length),n.push(e)}return n}function j(e){if(e.length<2)return e;let t=[];for(let n of e){if(n.role!==`assistant`){t.push(n);continue}let e=t[t.length-1];if(e?.role===`assistant`&&!e.taskResultDelivery&&!n.taskResultDelivery&&!e.personalProvenance&&!n.personalProvenance&&!(n.startsNewBubble&&e.turnId!==n.turnId)){let r={...e,content:jt(e.content,n.content)};t[t.length-1]=r,n.timestamp!=null&&(r.timestamp=n.timestamp),n.completedAt!=null&&(r.completedAt=n.completedAt),n.renderKey&&(r.renderKey=n.renderKey),!r.turnId&&n.turnId&&(r.turnId=n.turnId),n.progressiveRender&&(r.progressiveRender=!0),n.usage&&(r.usage=n.usage),n.outcome&&(r.outcome=n.outcome),n.attachments?.length&&(r.attachments=vt([...r.attachments??[],...n.attachments]))}else t.push(n)}return t}function Mt(e){return e.filter(e=>e.type===`text`).map(e=>e.text.trim()).filter(Boolean).join(`
|
|
17
|
-
`)}function Nt(e){return e.filter(e=>e.type===`thinking`).map(e=>(e.text??``).trim()).filter(Boolean).join(`
|
|
18
|
-
`)}function Pt(e){return e.filter(e=>e.type===`tool_use`).map(e=>{let t=typeof e.result==`string`?e.result.trim():JSON.stringify(e.result??``);return`${e.name}|${e.status}|${t}`}).join(`
|
|
19
|
-
`)}function Ft(e){return e.filter(e=>e.type===`review`).map(e=>JSON.stringify(e)).join(`
|
|
20
|
-
`)}function It(e,t){return e.role!==`assistant`||t.role!==`assistant`?!1:Mt(e.content)===Mt(t.content)&&Nt(e.content)===Nt(t.content)&&Pt(e.content)===Pt(t.content)&&Ft(e.content)===Ft(t.content)&&JSON.stringify(e.outcome??null)===JSON.stringify(t.outcome??null)}function Lt(e){let t=[];for(let n of e){if(!it(n))continue;let e=n,r=String(e.role??``);if(r!==`system`){if(r===`task`){let n=Rt(e.taskTrigger);n&&t.push({role:`task`,content:[],taskTrigger:n,...e.turnId?{turnId:e.turnId}:{},timestamp:typeof e.timestamp==`number`?e.timestamp:ut(e.timestamp)});continue}if(r===`toolResult`||r===`tool`){Yt(t,e);continue}if(r===`user`){t.push(Vt(e));continue}if(r===`assistant`){t.push(Gt(e));continue}}}return j(Ot(t))}function Rt(e){let t=M(e);return!t||typeof t.entryId!=`string`||typeof t.taskId!=`string`||typeof t.taskTitle!=`string`||!t.taskTitle.trim()||![`progress`,`question`,`result`,`failure`].includes(String(t.kind))?null:{entryId:t.entryId,taskId:t.taskId,taskTitle:t.taskTitle,kind:t.kind}}function zt(e){return e.filter(e=>e.type===`text`).map(e=>({...e,text:A(e.text)})).filter(e=>!!e.text?.trim())}function Bt(e){return vt([...ft(e.media)??[],...ft(e.attachments)??[]])}function Vt(e){let t=e.content,n=typeof t==`string`?(()=>{let e=A(t);return e.trim()?[{type:`text`,text:e}]:[]})():zt($t(t));return{role:`user`,...e.turnId?{turnId:e.turnId}:{},content:n,attachments:Bt(e),contextRefs:Ut(e.metadata),sourceDevice:Ht(e.metadata),userTurnDocument:Wt(e.metadata),timestamp:typeof e.timestamp==`number`?e.timestamp:ut(e.timestamp),usage:e.usage}}function Ht(e){let t=M(e)?.sourceContexts;if(!Array.isArray(t))return;let n=t.map(M).find(e=>e?.kind===`device_context`);return n&&typeof n.sourceId==`string`&&typeof n.title==`string`?{endpointId:n.sourceId,name:n.title}:void 0}function Ut(e){let t=M(e)?.sourceContexts;if(!Array.isArray(t))return;let n=t.flatMap(e=>{let t=M(e);return!t||t.kind!==`note`&&t.kind!==`file`&&t.kind!==`session`&&t.kind!==`browser_tab`&&t.kind!==`mcp_resource`||typeof t.sourceId!=`string`||typeof t.version!=`string`||typeof t.title!=`string`?[]:[{...typeof t.refId==`string`?{refId:t.refId}:{},kind:t.kind,sourceId:t.sourceId,version:t.version,title:t.title,...typeof t.tokenEstimate==`number`?{tokenEstimate:t.tokenEstimate}:{},...t.truncated===!0?{truncated:!0}:{},...t.kind===`file`&&(t.fileKind===`file`||t.fileKind===`directory`)?{fileKind:t.fileKind}:{}}]});return n.length>0?n:void 0}function Wt(e){let t=M(e)?.userTurnDocument;if(!Ke(t))return;let n=!1;return{...t,parts:t.parts.map(e=>n||e.type!==`text`?{...e}:(n=!0,{...e,text:A(e.text)}))}}function Gt(e){let t=Jt(e);qt(t,e.metadata);let n=v(M(e.metadata)?.turnOutcome),r=ge.safeParse(M(e.metadata)?.personalProvenance),i=$e(M(e.metadata)?.taskResultDelivery);return{role:`assistant`,...e.turnId?{turnId:e.turnId}:{},...e.startsNewBubble?{startsNewBubble:!0}:{},content:t,attachments:Bt(e),...n?{outcome:n}:{},...i?{taskResultDelivery:i}:{},...r.success?{personalProvenance:r.data,startsNewBubble:!0}:{},timestamp:typeof e.timestamp==`number`?e.timestamp:ut(e.timestamp),usage:e.usage}}function M(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function Kt(e){let t=M(e);if(!t||t.type!==`review`)return null;let n=Array.isArray(t.findings)?t.findings:[],r={type:`review`,target:typeof t.target==`string`?t.target:`working tree changes`,summary:typeof t.summary==`string`?t.summary:``,findings:n.map(e=>{let t=M(e);if(!t)return null;let n=t.priority===0||t.priority===1||t.priority===2||t.priority===3?t.priority:2,r=typeof t.title==`string`?t.title:``,i=typeof t.body==`string`?t.body:``;if(!r&&!i)return null;let a={title:r,body:i,priority:n};return typeof t.confidenceScore==`number`&&(a.confidenceScore=t.confidenceScore),typeof t.filePath==`string`&&(a.filePath=t.filePath),typeof t.lineStart==`number`&&(a.lineStart=t.lineStart),typeof t.lineEnd==`number`&&(a.lineEnd=t.lineEnd),a}).filter(e=>e!=null),overallCorrectness:t.overallCorrectness===`patch is correct`||t.overallCorrectness===`patch is incorrect`?t.overallCorrectness:`unknown`,overallExplanation:typeof t.overallExplanation==`string`?t.overallExplanation:``};return typeof t.overallConfidenceScore==`number`&&(r.overallConfidenceScore=t.overallConfidenceScore),typeof t.generatedAt==`number`&&(r.generatedAt=t.generatedAt),(t.source===`model`||t.source===`local`)&&(r.source=t.source),r}function qt(e,t){let n=Kt(M(t)?.review);n&&(e.some(e=>e.type===`review`&&e.target===n.target)||e.push(n))}function Jt(e){let t=dt(e.timestamp),n=$t(e.rawContent,t),r=n.length>0?n:$t(e.content,t),i=e.tool_calls;if(Array.isArray(i))for(let e of i){if(!e?.id||r.some(t=>t.type===`tool_use`&&t.id===e.id))continue;let n=e.function?.arguments;if(typeof n==`string`)try{n=JSON.parse(n)}catch{}r.push({type:`tool_use`,id:e.id,name:e.function?.name||`tool`,input:n,status:`running`,startedAt:t})}let a=e.toolCalls;if(Array.isArray(a))for(let e=0;e<a.length;e+=1){let n=a[e],i=typeof n.id==`string`&&n.id?n.id:`tool-call-${e}-${n.name||`tool`}`,o=typeof n.result==`string`,s=r.find(e=>e.type===`tool_use`&&e.id===i);if(s){s.status=o?n.isError?`error`:`done`:s.status,s.result=o?n.result:s.result,s.details=n.details??s.details,o&&(s.completedAt=t,s.durationMs=s.startedAt!=null&&t!=null?Math.max(0,t-s.startedAt):s.durationMs);continue}r.push({type:`tool_use`,id:i,name:n.name||`tool`,input:n.args,status:o?n.isError?`error`:`done`:`running`,result:o?n.result:void 0,details:n.details,startedAt:t,completedAt:o?t:void 0,durationMs:o&&t!=null?0:void 0})}for(let e of r){if(e.type!==`tool_use`)continue;let t=e.details===void 0?e.result:{details:e.details,result:e.result};e.activity=O(e.name,e.status===`running`?`running`:e.status===`error`?`failed`:`completed`,t)}let o=r.some(e=>e.type===`tool_use`)?`narration`:`answer`;for(let e of r)e.type===`text`&&!e.presentation&&(e.presentation=o);return r}function Yt(e,t){let n=Xt(e);if(!n)return;let r=String(t.tool_call_id??t.toolCallId??``),i=Zt(t.content),a=!!t.isError,o=dt(t.timestamp),s=t.nestedCalls;for(let e of s?.calls??[]){if(!e||typeof e!=`object`)continue;let t=e;typeof t.id!=`string`||typeof t.name!=`string`||n.content.some(e=>e.type===`tool_use`&&e.toolCallId===t.id)||n.content.push({type:`tool_use`,id:t.id,toolCallId:t.id,parentToolCallId:r,name:t.name,input:t.arguments,status:t.status===`ok`?`done`:`error`,...typeof t.durationMs==`number`?{durationMs:t.durationMs}:{},...typeof t.error==`string`?{result:t.error}:{},completedAt:o})}let c=r?n.content.find(e=>e.type===`tool_use`&&e.id===r):void 0;if(c){c.status=a?`error`:`done`,c.result=i,c.details=t.details,c.activity=O(c.name,a?`failed`:`completed`,{details:t.details,result:i}),c.completedAt=o,c.startedAt!=null&&o!=null&&(c.durationMs=Math.max(0,o-c.startedAt)),typeof t.durationMs==`number`&&(c.durationMs=t.durationMs);return}let l=n.content.filter(e=>e.type===`tool_use`&&e.status===`running`);l.length===1&&(l[0].status=a?`error`:`done`,l[0].result=i,l[0].details=t.details,l[0].activity=O(l[0].name,a?`failed`:`completed`,{details:t.details,result:i}),l[0].completedAt=o,l[0].startedAt!=null&&o!=null&&(l[0].durationMs=Math.max(0,o-l[0].startedAt)))}function Xt(e){for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t];return null}function Zt(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>ot(e)&&e.type===`text`).map(e=>String(e.text??``)).join(`
|
|
21
|
-
`):String(e??``)}function Qt(e){let t=e.source?.data;if(typeof t==`string`&&t.length>0)return{type:`image`,source:{data:t}};let n=e.data;if(typeof n!=`string`||n.length===0)return null;let r=n.trim();return r.startsWith(`data:`)?{type:`image`,source:{data:r}}:{type:`image`,source:{data:`data:${typeof e.mimeType==`string`&&e.mimeType.includes(`/`)?e.mimeType:`image/png`};base64,${r.replace(/\s/g,``)}`}}}function $t(e,t){if(e==null)return[];if(typeof e==`string`)return e.trim()?[{type:`text`,text:e}]:[];if(!Array.isArray(e))return[{type:`text`,text:String(e)}];let n=[];for(let r of e){if(!ot(r))continue;let e=r.type;if(e===`text`&&typeof r.text==`string`){let e=r.presentation===`pending`||r.presentation===`narration`||r.presentation===`answer`?r.presentation:void 0;n.push({type:`text`,text:r.text,...e?{presentation:e}:{}})}else if(e===`thinking`){let e=typeof r.thinking==`string`?r.thinking:typeof r.text==`string`?r.text:``;n.push({type:`thinking`,text:e,streaming:!1})}else if(e===`image`){let e=Qt(r);e&&n.push(e)}else if(e===`review`){let e=Kt(r);e&&n.push(e)}else if(e===`tool_use`||e===`tool_call`){if(!at(r))continue;let e=st(r),i=String(r.name??r.function?.name??`tool`),a=r.input??r.function?.arguments;n.push({type:`tool_use`,id:e,toolCallId:e,name:i,input:a,status:r.status===`error`?`error`:`done`,startedAt:t,result:typeof r.result==`string`?r.result:void 0,details:r.details})}else if(e===`toolCall`){if(!at(r))continue;let e=st(r),i=String(r.name??r.function?.name??`tool`);n.push({type:`tool_use`,id:e,toolCallId:e,name:i,input:lt(r),status:`done`,startedAt:t,result:typeof r.result==`string`?r.result:void 0,details:r.details})}}return n}async function en(){try{let e=await fetch(n(`/api/health`),{credentials:`same-origin`,redirect:`error`,signal:AbortSignal.timeout(3e3)});if(!e.ok)return;let t=await e.json();return Array.isArray(t.clarificationVersions)&&t.clarificationVersions.includes(2)?{clarificationVersions:[1,2]}:void 0}catch{return}}var tn;function nn(e){tn=e?r.getState().conversationId:void 0}async function rn(){if(!tn||tn!==r.getState().conversationId)return;let e=oe.safeParse({version:1,capturedAt:Date.now(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,locale:navigator.language});return e.success?e.data:void 0}var an=Symbol.for(`immer-nothing`),on=Symbol.for(`immer-draftable`),N=Symbol.for(`immer-state`);function P(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var F=Object,I=F.getPrototypeOf,sn=`constructor`,cn=`prototype`,ln=`configurable`,un=`enumerable`,dn=`writable`,fn=`value`,L=e=>!!e&&!!e[N];function R(e){return e?hn(e)||xn(e)||!!e[on]||!!e[sn]?.[on]||Sn(e)||Cn(e):!1}var pn=F[cn][sn].toString(),mn=new WeakMap;function hn(e){if(!e||!wn(e))return!1;let t=I(e);if(t===null||t===F[cn])return!0;let n=F.hasOwnProperty.call(t,sn)&&t[sn];if(n===Object)return!0;if(!B(n))return!1;let r=mn.get(n);return r===void 0&&(r=Function.toString.call(n),mn.set(n,r)),r===pn}function gn(e,t,n=!0){z(e)===0?(n?Reflect.ownKeys(e):F.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function z(e){let t=e[N];return t?t.type_:xn(e)?1:Sn(e)?2:Cn(e)?3:0}var _n=(e,t,n=z(e))=>n===2?e.has(t):F[cn].hasOwnProperty.call(e,t),vn=(e,t,n=z(e))=>n===2?e.get(t):e[t],yn=(e,t,n,r=z(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function bn(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var xn=Array.isArray,Sn=e=>e instanceof Map,Cn=e=>e instanceof Set,wn=e=>typeof e==`object`,B=e=>typeof e==`function`,Tn=e=>typeof e==`boolean`;function En(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var V=e=>e.copy_||e.base_,Dn=e=>e.modified_?e.copy_:e.base_;function On(e,t){if(Sn(e))return new Map(e);if(Cn(e))return new Set(e);if(xn(e))return Array[cn].slice.call(e);let n=hn(e);if(t===!0||t===`class_only`&&!n){let t=F.getOwnPropertyDescriptors(e);delete t[N];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[dn]===!1&&(a[dn]=!0,a[ln]=!0),(a.get||a.set)&&(t[i]={[ln]:!0,[dn]:!0,[un]:a[un],[fn]:e[i]})}return F.create(I(e),t)}else{let t=I(e);if(t!==null&&n)return{...e};let r=F.create(t);return F.assign(r,e)}}function kn(e,t=!1){return Mn(e)||L(e)||!R(e)?e:(z(e)>1&&F.defineProperties(e,{set:jn,add:jn,clear:jn,delete:jn}),F.freeze(e),t&&gn(e,(e,t)=>{kn(t,!0)},!1),e)}function An(){P(2)}var jn={[fn]:An};function Mn(e){return e===null||!wn(e)||F.isFrozen(e)}var Nn=`MapSet`,Pn=`Patches`,Fn=`ArrayMethods`,In={};function H(e){let t=In[e];return t||P(0,e),t}var Ln=e=>!!In[e],U,Rn=()=>U,zn=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Ln(Nn)?H(Nn):void 0,arrayMethodsPlugin_:Ln(Fn)?H(Fn):void 0});function Bn(e,t){t&&(e.patchPlugin_=H(Pn),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Vn(e){Hn(e),e.drafts_.forEach(Wn),e.drafts_=null}function Hn(e){e===U&&(U=e.parent_)}var Un=e=>U=zn(U,e);function Wn(e){let t=e[N];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Gn(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[N].modified_&&(Vn(t),P(4)),R(e)&&(e=Kn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[N].base_,e,t)}else e=Kn(t,n);return qn(t,e,!0),Vn(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===an?void 0:e}function Kn(e,t){if(Mn(t))return t;let n=t[N];if(!n)return tr(t,e.handledSet_,e);if(!Yn(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);$n(n,e)}return n.copy_}function qn(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&kn(t,n)}function Jn(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Yn=(e,t)=>e.scope_===t,Xn=[];function Zn(e,t,n,r){let i=V(e),a=e.type_;if(r!==void 0&&vn(i,r,a)===t){yn(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;gn(i,(e,n)=>{if(L(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Xn;for(let e of o)yn(i,e,n,a)}function Qn(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Yn(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Dn(i);Zn(e,i.draft_??i,a,n),$n(i,r)})}function $n(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Jn(e)}}function er(e,t,n){let{scope_:r}=e;if(L(n)){let i=n[N];Yn(i,r)&&i.callbacks_.push(function(){lr(e),Zn(e,n,Dn(i),t)})}else R(n)&&e.callbacks_.push(function(){let i=V(e);e.type_===3?i.has(n)&&tr(n,r.handledSet_,r):vn(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&tr(vn(e.copy_,t,e.type_),r.handledSet_,r)})}function tr(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||L(e)||t.has(e)||!R(e)||Mn(e)?e:(t.add(e),gn(e,(r,i)=>{if(L(i)){let t=i[N];Yn(t,n)&&(yn(e,r,Dn(t),e.type_),Jn(t))}else R(i)&&tr(i,t,n)}),e)}function nr(e,t){let n=xn(e),r={type_:+!!n,scope_:t?t.scope_:Rn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=rr;n&&(i=[r],a=W);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var rr={get(e,t){if(t===N)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=V(e);if(!_n(i,t,e.type_))return or(e,i,t);let a=i[t];if(e.finalized_||!R(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&En(t))return a;if(a===ir(e.base_,t)||ar(e,t,a)){lr(e);let n=e.type_===1?+t:t,r=dr(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in V(e)},ownKeys(e){return Reflect.ownKeys(V(e))},set(e,t,n){let r=sr(V(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=ir(V(e),t),i=r?.[N];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.delete(t),!0;if(bn(n,r)&&(n!==void 0||_n(e.base_,t,e.type_)))return!0;lr(e),cr(e)}return e.copy_[t]===n&&(n!==void 0||_n(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),er(e,t,n),!0)},deleteProperty(e,t){return lr(e),ir(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),cr(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=V(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[dn]:!0,[ln]:e.type_!==1||t!==`length`,[un]:r[un],[fn]:n[t]}},defineProperty(){P(11)},getPrototypeOf(e){return I(e.base_)},setPrototypeOf(){P(12)}},W={};for(let e in rr){let t=rr[e];W[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}W.deleteProperty=function(e,t){return W.set.call(this,e,t,void 0)},W.set=function(e,t,n){return rr.set.call(this,e[0],t,n,e[0])};function ir(e,t){let n=e[N];return(n?V(n):e)[t]}function ar(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!R(n)||n[N]?!1:e.baseRefs_.has(n)}function or(e,t,n){let r=sr(t,n);return r?fn in r?r[fn]:r.get?.call(e.draft_):void 0}function sr(e,t){if(!(t in e))return;let n=I(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=I(n)}}function cr(e){e.modified_||(e.modified_=!0,e.parent_&&cr(e.parent_))}function lr(e){e.copy_||=(e.assigned_=new Map,On(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ur=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(B(e)&&!B(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}B(t)||P(6),n!==void 0&&!B(n)&&P(7);let r;if(R(e)){let i=Un(this),a=dr(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Vn(i):Hn(i)}return Bn(i,n),Gn(r,i)}else if(!e||!wn(e)){if(r=t(e),r===void 0&&(r=e),r===an&&(r=void 0),this.autoFreeze_&&kn(r,!0),n){let t=[],i=[];H(Pn).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else P(1,e)},this.produceWithPatches=(e,t)=>{if(B(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Tn(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Tn(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Tn(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){R(e)||P(8),L(e)&&(e=fr(e));let t=Un(this),n=dr(t,e,void 0);return n[N].isManual_=!0,Hn(t),n}finishDraft(e,t){let n=e&&e[N];(!n||!n.isManual_)&&P(9);let{scope_:r}=n;return Bn(r,t),Gn(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=H(Pn).applyPatches_;return L(e)?r(e,t):this.produce(e,e=>r(e,t))}};function dr(e,t,n,r){let[i,a]=Sn(t)?H(Nn).proxyMap_(t,n):Cn(t)?H(Nn).proxySet_(t,n):nr(t,n);return(n?.scope_??Rn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Qn(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function fr(e){return L(e)||P(10,e),pr(e)}function pr(e){if(!R(e)||Mn(e))return e;let t=e[N],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=On(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=On(e,!0);return gn(n,(e,t)=>{yn(n,e,pr(t))},r),t&&(t.finalized_=!1),n}globalThis.Iterator?.from;var mr=new ur().produce,hr=new WeakMap,gr=0;function _r(e){return hr.get(e)}function vr(e){let t=hr.get(e);if(t)return t;let n=`chat-part:${++gr}`;return hr.set(e,n),n}function yr(e,t){hr.set(t,vr(e))}function G(e){return e===`user`}function br(e,t){if(t<0||t>=e.length)return null;let n=e[t];if(!n||!G(n.role))return null;let r=0;for(let n=0;n<=t;n++){let t=e[n];t&&G(t.role)&&(r+=1)}return r-1}function xr(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t&&G(t.role))break;n+=1}return n}function Sr(e,t){return e.length===t.length&&e.every((e,n)=>{let r=t[n];return!r||e.role!==r.role?!1:!e.turnId||!r.turnId||e.turnId===r.turnId})}function Cr(e,t,n){let r=e=>G(e.role);if(n){let i=t.findIndex(e=>r(e)&&e.turnId===n);if(i>=0){let a=e.findLastIndex(e=>r(e)&&e.turnId===n);if(a>=0&&e.slice(a+1).some(r))return e;let o=t.slice(0,i+1);return o.length<e.length||Sr(e,o)?e:j(o)}}let i=e.filter(r).length;if(t.filter(r).length<=i)return e;let a=t.filter(r).slice(i);return a.length===0?e:j([...e,...a])}function wr(e){return e.replace(/^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}[^\]]*\]\s+/,``)}function Tr(e){return(e??[]).filter(e=>e.type===`text`&&!!e.text).map(e=>A(wr(e.text))).join(`
|
|
22
|
-
|
|
23
|
-
`).trim()}function Er(e){if(e?.length)return e.map(e=>{let t=e.data??e.content;return{id:e.id,type:e.type??(e.mimeType?.startsWith(`image/`)?`image`:`document`),mimeType:e.mimeType,...t?{data:t}:{},name:e.name,size:e.size,...e.uri?{uri:e.uri}:{},...e.bucket?{bucket:e.bucket}:{},...e.path?{path:e.path}:{},durationSeconds:e.durationSeconds}})}function Dr(e){let t=typeof e.timestamp==`number`&&Number.isFinite(e.timestamp)?e.timestamp:Date.now();if(Array.isArray(e.content)||typeof e.content==`string`){let[n]=Lt([{role:`user`,turnId:typeof e.turnId==`string`?e.turnId:void 0,content:e.content,media:e.media,attachments:e.attachments,metadata:e.metadata,timestamp:t}]);return n??null}let n=typeof e.text==`string`?A(e.text.trim()):``,r=ft(e.media);return!n&&!r?.length?null:{role:`user`,turnId:typeof e.turnId==`string`?e.turnId:void 0,content:n?[{type:`text`,text:n}]:[],attachments:r,timestamp:t}}var Or=12e4;function kr(e,t){return!!(e.userTurnDocument&&t.userTurnDocument&&Ge(e.userTurnDocument)===Ge(t.userTurnDocument))}function Ar(e,t){if(!G(e.role)||!G(t.role)||e.turnId&&t.turnId&&e.turnId!==t.turnId)return!1;let n=Tr(e.content).trim(),r=Tr(t.content).trim(),i=e.attachments?.length??0,a=t.attachments?.length??0,o=i===0||a>=i;return!!(o&&kr(e,t)||o&&n&&r&&(n===r||r.startsWith(n))||i>0&&o&&Math.abs((t.timestamp??0)-(e.timestamp??0))<=Or)}function jr(e,t){return!G(e.role)||!G(t.role)?!1:e.turnId&&t.turnId?e.turnId===t.turnId:e.timestamp===t.timestamp||kr(e,t)?!0:Tr(e.content)===Tr(t.content)}function Mr(e,t){let n=e.length-1,r=e[n];if(!r||!G(r.role)||r.turnId)return e;let i=[...e];return i[n]={...r,turnId:t},i}var Nr=`medium`;function Pr(){return{name:null,model:``,thinkingLevel:Nr,reasoningLevel:`on`,modelSupportsThinking:!1,effectiveWorkspacePath:``,workspaceSource:`agent_default_root`,userContextMode:`enabled`}}var Fr=class e{static instance;senders=new Map;resumeRunIds=new Map;userAbortedSessions=new Set;static get(){return e.instance||=new e,e.instance}senderFor(e){let t=this.senders.get(e);return t||(t=new aa,this.senders.set(e,t)),t}isStreamingFor(e){return this.senders.get(e)?.isStreamingFor(e)??!1}isTrackingRun(e,t){return this.senders.get(e)?.isTrackingRun(e,t)??!1}getResumeRunId(e){return this.resumeRunIds.get(e)??null}setResumeRunId(e,t){t?this.resumeRunIds.set(e,t):this.resumeRunIds.delete(e)}setUserAborted(e,t){t?this.userAbortedSessions.add(e):this.userAbortedSessions.delete(e)}takeUserAborted(e){return this.userAbortedSessions.delete(e)}resetRunTracking(e){this.resumeRunIds.delete(e),this.userAbortedSessions.delete(e)}abort(e){this.senders.get(e)?.abort(),this.senders.delete(e),this.resetRunTracking(e)}reconcileTerminal(e,t,n){let r=this.senders.get(e)?.reconcileTerminal(e,t,n)??!1;return this.resumeRunIds.get(e)===t&&this.resumeRunIds.delete(e),r}reconcileInactive(e,t){let n=this.senders.get(e)?.reconcileInactive(e,t)??!1;return this.resumeRunIds.get(e)===t&&this.resumeRunIds.delete(e),n}releaseIdleSender(e){let t=this.senders.get(e);t&&!t.isSending&&this.senders.delete(e)}}.get();function Ir(e){if(e.type!==`thinking`)return``;let t=e;return(typeof t.text==`string`&&t.text.length>0?t.text:typeof t.thinking==`string`?t.thinking:``).trim()}function Lr(e){if(e.role!==`assistant`)return!1;for(let t of e.content)if(t.type===`text`&&(t.text||``).trim().length>0||t.type===`thinking`&&Ir(t).length>0||t.type===`tool_use`||t.type===`review`)return!0;return!1}function Rr(e,t){return e&&e.role===`assistant`?{...e,content:[...e.content]}:{role:`assistant`,content:[],timestamp:t}}function zr(e){return{...e,content:e.content.map(e=>{let t={...e};return yr(e,t),t}),attachments:e.attachments?e.attachments.map(e=>({...e})):void 0,contextRefs:e.contextRefs?e.contextRefs.map(e=>({...e})):void 0,userTurnDocument:e.userTurnDocument?{...e.userTurnDocument,parts:e.userTurnDocument.parts.map(e=>({...e}))}:void 0}}function Br(e,t){return`${e??``}${t}`}function Vr(e,t){if(!t)return e;if(!e)return t;if(e.endsWith(t))return e;let n=Math.min(e.length,t.length,512);for(let r=n;r>0;r--)if(e.slice(-r)===t.slice(0,r))return e+t.slice(r);return e+t}function Hr(e,t,n){let r=e??``;return!Number.isInteger(n)||n==null||n<0?null:r.slice(n,n+t.length)===t?r:r.length===n?Br(r,t):null}function Ur(e){let t=e[e.length-1];t?.type===`thinking`&&t.streaming&&(t.streaming=!1)}function Wr(e){let t=e[e.length-1];t?.type===`thinking`&&t.streaming||e.push({type:`thinking`,text:``,streaming:!0})}function Gr(e,t,n){let r=e[e.length-1];if(r?.type===`thinking`){n?r.text=Vr(r.text||``,t):r.text=t,r.streaming=!0;return}e.push({type:`thinking`,text:t,streaming:!0})}function Kr(e){Ur(e);for(let t of e)t.type===`thinking`&&typeof t.text==`string`&&(t.text=t.text.trim())}function qr(e){for(let t of e)t.type===`tool_use`&&t.status===`running`&&(t.status=`done`)}function Jr(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}function Yr(e,t,n,r){Ur(e);let i=e[e.length-1];if(i?.type===`text`&&i.segmentId===n){i.text=Hr(i.text,t,r?.offset)??Br(i.text,t);return}if(r?.reconcileHydratedSegment&&n&&i?.type===`text`&&!i.segmentId){let e=Hr(i.text,t,r.offset);if(e!==null){i.text=e,i.segmentId=n,i.presentation=`pending`;return}}e.push({type:`text`,text:t,...n?{segmentId:n,presentation:`pending`}:{}})}function Xr(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.type===`text`&&i.segmentId===t){i.presentation=n;return}}}function Zr(e){let t=oi(e);if(!t||t.type!==`review`)return null;let n=Array.isArray(t.findings)?t.findings:[],r={type:`review`,target:typeof t.target==`string`?t.target:`working tree changes`,summary:typeof t.summary==`string`?t.summary:``,findings:n.map(e=>{let t=oi(e);if(!t)return null;let n=t.priority===0||t.priority===1||t.priority===2||t.priority===3?t.priority:2,r=typeof t.title==`string`?t.title:``,i=typeof t.body==`string`?t.body:``;if(!r&&!i)return null;let a={title:r,body:i,priority:n};return typeof t.confidenceScore==`number`&&(a.confidenceScore=t.confidenceScore),typeof t.filePath==`string`&&(a.filePath=t.filePath),typeof t.lineStart==`number`&&(a.lineStart=t.lineStart),typeof t.lineEnd==`number`&&(a.lineEnd=t.lineEnd),a}).filter(e=>e!=null),overallCorrectness:t.overallCorrectness===`patch is correct`||t.overallCorrectness===`patch is incorrect`?t.overallCorrectness:`unknown`,overallExplanation:typeof t.overallExplanation==`string`?t.overallExplanation:``};return typeof t.overallConfidenceScore==`number`&&(r.overallConfidenceScore=t.overallConfidenceScore),typeof t.generatedAt==`number`&&(r.generatedAt=t.generatedAt),(t.source===`model`||t.source===`local`)&&(r.source=t.source),r}function Qr(e,t){Ur(e);let n=Zr(t);if(!n)return;let r=e.findIndex(e=>e.type===`review`&&e.target===n.target);if(r>=0){let t=e[r];if(!t||t.type!==`review`)return;e[r]={...n,reviewId:t.reviewId,status:t.status===`error`?`error`:`complete`,analysisMarkdown:t.analysisMarkdown,errorMessage:t.errorMessage};return}e.push(n)}function $r(e){for(let t of e)t.type===`review`&&(t.status!==`preparing`&&t.status!==`reviewing`||(t.status=`error`,t.errorMessage??=`The review stream ended before a conclusion was returned.`))}function ei(e,t){Ur(e);let n=e.find(e=>e.type===`review`&&e.reviewId===t.reviewId);if(n){n.target=t.target||n.target,n.status=t.stage;return}e.push({type:`review`,reviewId:t.reviewId,target:t.target||`working tree changes`,summary:``,findings:[],overallCorrectness:`unknown`,overallExplanation:``,status:t.stage})}function ti(e,t,n){if(!n)return;let r=e.find(e=>e.type===`review`&&e.reviewId===t);r&&(r.status=`reviewing`,r.analysisMarkdown=Vr(r.analysisMarkdown??``,n))}function ni(e,t,n,r){let i=e.find(e=>e.type===`review`&&e.reviewId===t);i&&(i.status=n,i.errorMessage=n===`error`?r:void 0)}function ri(e,t,n,r,i,a,o){Ur(e);let s={type:`tool_use`,id:crypto.randomUUID(),toolCallId:r,...o,name:t,activity:a??O(t,`running`),input:n,status:`running`,startedAt:i};e.push(s)}function ii(e,t,n,r,i,a,o,s){for(let c=e.length-1;c>=0;c--){let l=e[c];if(!(l.type!==`tool_use`||l.status!==`running`)&&!(i&&l.toolCallId!==i&&l.id!==i)&&!(!i&&!Jr(l.name,t))){l.status=n?`error`:`done`,l.result=r,l.activity=o??O(t,n?`failed`:`completed`,r),l.completedAt=a,s?.parentToolCallId&&(l.parentToolCallId=s.parentToolCallId),l.startedAt!=null&&(l.durationMs=Math.max(0,a-l.startedAt)),s?.durationMs!=null&&(l.durationMs=s.durationMs);return}}}function ai(e,t,n,r){for(let i=e.length-1;i>=0;i--){let a=e[i];if(a.type===`tool_use`&&a.status===`running`){if(n&&a.toolCallId===n){a.details=si(a.details,r);return}if(!n&&Jr(a.name,t)){a.details=si(a.details,r);return}}}}function oi(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function si(e,t){let n=oi(t);if(typeof n?.textDelta==`string`){let t=oi(e)??{};return{...t,text:Vr(String(t.text??``),n.textDelta)}}if(n?.kind!==`command_output_delta`)return t;let r=oi(e)??{},i=n.stream===`stderr`?`stderr`:`stdout`,a=typeof n.delta==`string`?n.delta:``,o=i===`stdout`?`${String(r.stdout??``)}${a}`:String(r.stdout??``),s=i===`stderr`?`${String(r.stderr??``)}${a}`:String(r.stderr??``);return{...r,command:typeof n.command==`string`?n.command:r.command,cwd:typeof n.cwd==`string`?n.cwd:r.cwd,stdout:o,stderr:s,aggregatedOutput:`${String(r.aggregatedOutput??``)}${a}`}}function ci(e){return e!==`ready`}var K={streamingMsg:null,progress:null,taskPlan:null,sending:!1,streaming:!1};function li(e){return{...Pr(),historyStatus:e,messages:[],hasMore:!1,...K}}var ui=0;function di(e){let t=zr(e);return t.renderKey??=`chat-row:${++ui}`,t}function q(e){return e.map(di)}function fi(e,t){return e===t?!0:e.role!==t.role||e.timestamp!==t.timestamp||t.renderKey!==void 0&&e.renderKey!==t.renderKey?!1:JSON.stringify({...e,renderKey:void 0})===JSON.stringify({...t,renderKey:void 0})}function pi(e,t){if(e.turnId&&t.turnId&&e.turnId!==t.turnId||!jr(e,t)&&!Ar(e,t))return t;let n=t.attachments?.length?t.attachments:e.attachments,r=t.contextRefs?.length?t.contextRefs:e.contextRefs,i=t.userTurnDocument??e.userTurnDocument;return{...t,attachments:n,contextRefs:r,userTurnDocument:i,renderKey:e.renderKey,clientSubmissionId:e.clientSubmissionId}}function mi(e,t){return e.role===t.role?e.turnId&&t.turnId?e.turnId===t.turnId&&e.startsNewBubble===t.startsNewBubble:e.timestamp!==void 0&&e.timestamp===t.timestamp:!1}function hi(e,t){let n=e.length!==t.length,r=0,i=t.map((t,i)=>{let a=e.findIndex((e,n)=>n>=r&&mi(e,t)),o=i>=r?e[i]:void 0,s=o&&(Ar(o,t)||(!o.turnId||!t.turnId||o.turnId===t.turnId)&&It(o,t)),c=a>=0?a:s?i:-1,l=e[c];l&&(r=c+1);let u=l&&G(l.role)&&G(t.role)?pi(l,t):t;if(l&&fi(l,u))return c!==i&&(n=!0),l;n=!0;let d=di(u);return l?.renderKey&&l.role===u.role&&(mi(l,u)||u.role===`assistant`&&It(l,u))&&(d.renderKey=l.renderKey,d.content.forEach((e,t)=>{let n=l.content[t];!n||n.type!==e.type||e.type===`text`&&n.type===`text`&&n.segmentId&&e.segmentId&&n.segmentId!==e.segmentId||e.type===`tool_use`&&n.type===`tool_use`&&(n.toolCallId??n.id)!==(e.toolCallId??e.id)||(yr(n,e),JSON.stringify(n)===JSON.stringify(e)&&(d.content[t]=n))})),d});return n?i:e}function gi(e,t){let n=e.filter(e=>G(e.role)&&e.deliveryStatus);if(n.length===0)return t;let r=e.filter(e=>G(e.role)&&!e.deliveryStatus).length,i=t.filter(e=>G(e.role)).slice(r),a=n.filter(e=>{let t=i.findIndex(t=>Ar(e,t));return t<0?!0:(i.splice(t,1),!1)});return a.length>0?[...t,...a]:t}function _i(e,t){let n=t[0];return n?e.findIndex(e=>mi(e,n)):-1}function vi(e,t,n){let r=n?_i(e,t):-1;return r>0?[...e.slice(0,r),...t]:t}function yi(e,t){let n=zr(t),r=e[e.length-1];if(r?.role!==`assistant`)return[...e,di(n)];let i=j([r,n]);return[...e.slice(0,-1),...i]}function bi(e){let t=e.uri?.trim();return t?`uri:${t}`:e.id?`id:${e.id}`:`name:${e.name??`file`}|${e.mimeType??``}`}function xi(e,t){let n=[...e??[]],r=bi(t);return n.some(e=>bi(e)===r)||n.push({...t}),n}function Si(e){return{name:e.name,model:e.model,configVersion:e.configVersion,modelConfigSaving:e.modelConfigSaving,thinkingLevel:e.thinkingLevel,reasoningLevel:e.reasoningLevel,modelSupportsThinking:e.modelSupportsThinking,effectiveWorkspacePath:e.effectiveWorkspacePath,workspaceSource:e.workspaceSource,userContextMode:e.userContextMode,historyStatus:e.historyStatus,messages:q(e.messages),hasMore:e.hasMore,streamingMsg:e.streamingMsg?di(e.streamingMsg):null,progress:e.progress,taskPlan:e.taskPlan?{...e.taskPlan,items:e.taskPlan.items.map(e=>({...e}))}:null,sending:e.sending,streaming:e.streaming}}function J(e){return String(e??``).trim()}function Ci(e){return e?{name:e.name,model:e.model,configVersion:e.configVersion,modelConfigSaving:e.modelConfigSaving,thinkingLevel:e.thinkingLevel,reasoningLevel:e.reasoningLevel,modelSupportsThinking:e.modelSupportsThinking,effectiveWorkspacePath:e.effectiveWorkspacePath,workspaceSource:e.workspaceSource,userContextMode:e.userContextMode}:Pr()}var Y=a((e,t)=>({focusedConversationId:null,initLoading:!0,loadingMore:!1,shellError:null,sessions:{},setFocusedConversationId:t=>e({focusedConversationId:t}),setInitLoading:t=>e({initLoading:t}),setLoadingMore:t=>e({loadingMore:t}),setShellError:t=>e({shellError:t}),setSessionHistoryStatus:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];if(t?.historyStatus===n)return e;let i=t??li(`unknown`);return{sessions:{...e.sessions,[r]:{...i,historyStatus:n}}}})},patchSessionMeta:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];if(t&&Object.entries(n).every(([e,n])=>t[e]===n))return e;let i=t??li(`unknown`);return{sessions:{...e.sessions,[r]:{...i,...n}}}})},initSessionSnapshot:(t,n)=>{let r=J(t);r&&e(e=>({sessions:{...e.sessions,[r]:Si(n)}}))},setCommittedSnapshot:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r],i=n.hasMore,a=Ci(t);if(n.name!==void 0&&(a.name=n.name),!t){let t=q(n.messages);return{sessions:{...e.sessions,[r]:{...a,historyStatus:`ready`,messages:t,hasMore:i,...K}}}}if(wi(t)){let o=new Set(t.messages.map(e=>e.taskResultDelivery?.deliveryId)),s=n.messages.filter(e=>e.taskResultDelivery&&!o.has(e.taskResultDelivery.deliveryId));return{sessions:{...e.sessions,[r]:{...t,...a,messages:[...t.messages,...q(s)],historyStatus:`ready`,hasMore:i}}}}let o=hi(t.messages,n.messages);return{sessions:{...e.sessions,[r]:{...t,...a,historyStatus:`ready`,messages:o,hasMore:i,...K}}}})},updateSessionMessages:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return t?{sessions:{...e.sessions,[r]:{...t,messages:hi(t.messages,n(t.messages))}}}:e})},finalizeStreamingTurn:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r],i=Ci(t),a=t?.hasMore??!1;return{sessions:{...e.sessions,[r]:{...i,historyStatus:`ready`,messages:yi(t?.messages??[],n),hasMore:a,...K}}}})},completeProgressiveRender:(t,n)=>{let r=J(t);!r||!n||e(e=>{let t=e.sessions[r];if(!t)return e;let i=!1,a=e=>{if(e.renderKey!==n||!e.progressiveRender)return e;i=!0;let t=zr(e);return delete t.progressiveRender,t},o=t.messages.map(a),s=t.streamingMsg?a(t.streamingMsg):null;return i?{sessions:{...e.sessions,[r]:{...t,messages:o,streamingMsg:s}}}:e})},clearStreamingState:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return!t||n?.preservePendingResponse&&t.streamingMsg?.pendingResponseStatus?e:{sessions:{...e.sessions,[r]:{...t,...K}}}})},clearSession:t=>{let n=J(t);n&&e(e=>{if(!(n in e.sessions))return e;let{[n]:t,...r}=e.sessions;return{sessions:r}})},getSessionSnapshot:e=>{let n=J(e);if(!n)return;let r=t().sessions[n];return r?Si(r):void 0},seedSessionIfEmpty:(e,n,r,i,a=!1)=>{let o=J(e);!o||t().sessions[o]||t().initSessionSnapshot(o,{...Pr(),historyStatus:`ready`,messages:n,hasMore:a,streamingMsg:null,progress:null,taskPlan:null,sending:r,streaming:i})},setSessionFlags:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return!t||(n.sending===void 0||n.sending===t.sending)&&(n.streaming===void 0||n.streaming===t.streaming)?e:{sessions:{...e.sessions,[r]:{...t,...n.sending===void 0?{}:{sending:n.sending},...n.streaming===void 0?{}:{streaming:n.streaming}}}}})},setSessionProgress:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return t?{sessions:{...e.sessions,[r]:{...t,progress:n}}}:e})},setPendingResponseStatus:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return!t?.streamingMsg||t.streamingMsg.content.length>0||t.streaming?e:{sessions:{...e.sessions,[r]:{...t,streamingMsg:{...t.streamingMsg,pendingResponseStatus:n}}}}})},setSessionTaskPlan:(t,n)=>{let r=J(t);r&&e(e=>{let t=e.sessions[r];return!t||n.revision<=(t.taskPlan?.revision??0)?e:{sessions:{...e.sessions,[r]:{...t,taskPlan:{...n,items:n.items.map(e=>({...e}))}}}}})},mutateSessionStreaming:(t,n,r=Date.now())=>{let i=J(t);i&&e(e=>{let t=e.sessions[i];if(!t)return e;let a=t.streamingMsg??{role:`assistant`,content:[],timestamp:r},o=mr(a,e=>{e.renderKey??=`assistant-stream:${i}:${r}`,e.progressiveRender=!0,delete e.pendingResponseStatus,n(e)});return o===t.streamingMsg&&t.streaming?e:(o.content.forEach((e,t)=>{let n=a.content[t];n?.type===e.type?yr(n,e):vr(e)}),{sessions:{...e.sessions,[i]:{...t,streamingMsg:o,streaming:!0}}})})},appendAttachmentToCurrentAssistant:(t,n,r)=>{let i=J(t);i&&e(e=>{let t=e.sessions[i];if(!t)return e;if(t.streamingMsg?.role===`assistant`){let r={...t.streamingMsg,attachments:xi(t.streamingMsg.attachments,n)};return{sessions:{...e.sessions,[i]:{...t,streamingMsg:r}}}}let r=[...t.messages];for(let a=r.length-1;a>=0;a--){let o=r[a];if(o?.role===`assistant`)return r[a]={...o,attachments:xi(o.attachments,n)},{sessions:{...e.sessions,[i]:{...t,messages:r}}}}return e})},applyHydratedTail:(t,n,r)=>{let i=J(t);i&&e(e=>{let t=e.sessions[i];return t?{sessions:{...e.sessions,[i]:{...t,messages:q(n),streamingMsg:r?zr(r):null,streaming:!0,sending:!0}}}:e})},appendUserMessageIfMissing:(t,n)=>{let r=J(t);!r||!G(n.role)||e(e=>{let t=e.sessions[r],i=Ci(t);if(!t)return{sessions:{...e.sessions,[r]:{...i,historyStatus:`ready`,messages:q([n]),hasMore:!1,...K}}};let a=t.messages[t.messages.length-1];if(a&&Ar(a,n)){let i=pi(a,n);return{sessions:{...e.sessions,[r]:{...t,messages:q(j([...t.messages.slice(0,-1),i]))}}}}return t.messages.some(e=>jr(e,n))?e:{sessions:{...e.sessions,[r]:{...t,messages:q(j([...t.messages,n]))}}}})},mergeCommittedFromServer:(t,n,r)=>{let i=J(t);i&&e(e=>{let t=e.sessions[i],a=Ci(t),o=r??t?.hasMore??!1;if(!t)return{sessions:{...e.sessions,[i]:{...a,historyStatus:`ready`,messages:q(n),hasMore:o,...K}}};let s=vi(t.messages,n,o),c=s===n?o:t.hasMore;if(!wi(t)){let n=hi(t.messages,gi(t.messages,s));return{sessions:{...e.sessions,[i]:{...t,...a,historyStatus:`ready`,messages:n,hasMore:c,...K}}}}let l=Cr(t.messages,s,t.streamingMsg?.turnId);return l===t.messages&&c===t.hasMore&&t.historyStatus===`ready`?e:{sessions:{...e.sessions,[i]:{...t,historyStatus:`ready`,messages:hi(t.messages,l),hasMore:c}}}})},prependHistoryMessages:(t,n,r)=>{let i=J(t);i&&e(e=>{let t=e.sessions[i],a=Ci(t);if(!t)return{sessions:{...e.sessions,[i]:{...a,historyStatus:`ready`,messages:q(n),hasMore:r,...K}}};let o=new Set(t.messages.map(e=>e.timestamp)),s=j([...n.filter(e=>!o.has(e.timestamp)),...t.messages]);return{sessions:{...e.sessions,[i]:{...t,messages:hi(t.messages,s),hasMore:r}}}})}}));function wi(e){return e?e.streaming||e.sending||!!e.streamingMsg:!1}function Ti(e){return Y.getState().getSessionSnapshot(e)}function Ei(e){return Y.getState().sessions[J(e)]?.messages??[]}function Di(e){let t=J(e);if(!t)return!1;let n=Y.getState().sessions[t];return wi(n)||Fr.isStreamingFor(t)?!0:Qi(t)}var Oi=/^No API key found for (\S+)/i;function ki(e){try{let t=JSON.parse(e);return typeof t.kind!=`string`||typeof t.message!=`string`?null:{kind:t.kind,code:typeof t.code==`string`?t.code:t.kind,provider:typeof t.provider==`string`?t.provider:void 0,modelRef:typeof t.modelRef==`string`?t.modelRef:void 0,deepLink:typeof t.deepLink==`string`?t.deepLink:void 0,message:t.message}}catch{return null}}function Ai(){return{kind:`send_failed`,code:`send_failed`,message:`Send failed`}}function ji(e){return{kind:`session_not_found`,code:`session_not_found`,message:e}}function Mi(e){let t=e.trim();if(!t)return null;if(t.startsWith(`{`)){let e=ki(t);if(e)return e}let n=Oi.exec(t);return n?{kind:`provider_setup_required`,code:`provider_setup_required`,provider:n[1].replace(/[.,]$/,``),deepLink:`/settings/capabilities/models`,message:t}:t===`Assistant turn failed`||t.startsWith(`Error: `)?{kind:`unknown`,code:`unknown`,message:t.startsWith(`Error: `)?t.slice(7):t}:{kind:`unknown`,code:`unknown`,message:t}}function Ni(e){return e.kind!==`provider_setup_required`&&e.kind!==`provider_auth_invalid`||!e.provider?null:{kind:e.kind,provider:e.provider,deepLink:e.deepLink??`/settings/capabilities/models`,message:e.message}}var Pi=`xopc-pending-agent-run-changed`;function Fi(e){typeof window>`u`||window.dispatchEvent(new CustomEvent(Pi,{detail:{chatId:e}}))}function Ii(e){return`xopc:submission:${e}`}function Li(e,t){try{let n=sessionStorage.getItem(Ii(e));if(n){let e=JSON.parse(n);if(e.fingerprint===t&&typeof e.clientMessageId==`string`)return e.clientMessageId}}catch{}let n=crypto.randomUUID();try{sessionStorage.setItem(Ii(e),JSON.stringify({clientMessageId:n,fingerprint:t}))}catch{}return n}function Ri(e,t){try{let n=sessionStorage.getItem(Ii(e));if(!n)return;JSON.parse(n).clientMessageId===t&&sessionStorage.removeItem(Ii(e))}catch{}}function zi(e){return e===`on`||e===`stream`||e===`off`?e:`on`}function Bi(e,t){let n=String(e??``).trim();if(!n)return;let r=Y.getState(),i=r.sessions[n]?.configVersion;i!==void 0&&(t.configVersion===void 0||t.configVersion<i)||r.patchSessionMeta(n,{model:t.model,configVersion:t.configVersion,localDraft:t.localDraft===!0,thinkingLevel:t.thinkingLevel||`medium`,reasoningLevel:zi(t.activityDetail?.default??void 0),effectiveWorkspacePath:t.effectiveWorkspacePath??``,workspaceSource:t.workspaceSource??`agent_default_root`,userContextMode:t.userContextMode??`enabled`})}var Vi=40,X=new Map,Z=new Map;function Hi(e){e.size>Vi&&e.delete(e.keys().next().value)}function Ui(e){let t=performance.now();return X.set(e,t),Hi(X),t}function Wi(e,t){X.get(e)===t&&X.delete(e)}function Gi(e,t){if(Z.has(t))return;let n=X.get(e);n!==void 0&&(X.delete(e),Z.set(t,{runId:t,startedAt:n}),Hi(Z))}function Ki(e){let t=Z.get(e);!t||t.firstTextAt!==void 0||(t.firstTextAt=performance.now(),t.firstTextMs=t.firstTextAt-t.startedAt)}function qi(e,t=!1){let n=e.trimStart();return!n||/^(?:```|~~~|\||#{1,6}\s|[-*+]\s|\d+[.)]\s)/u.test(n)?!1:/[。!?]/u.test(n)||/[!?](?:[”’"'))\]]|\s|$)/u.test(n)||/(?<!\b(?:Mr|Mrs|Ms|Dr|Prof|vs|etc))\.[”’"')\]]*\s/u.test(n)||t&&/(?<!\b(?:Mr|Mrs|Ms|Dr|Prof|vs|etc))\.[”’"')\]]*$/u.test(n)}function Ji(e,t){let n=Z.get(e);if(!n||n.firstTextAt===void 0||!t.trim()||t.trim()===`NO_REPLY`)return;let r=performance.now();n.firstVisibleMs===void 0&&(n.firstVisibleMs=r-n.startedAt,n.firstRenderLagMs=r-n.firstTextAt),n.firstSentenceMs===void 0&&qi(t,n.status===`success`)&&(n.firstSentenceMs=r-n.startedAt)}function Yi(e,t){let n=Z.get(e);n&&(n.status=t)}async function Xi(e,t){if(t.aborted)throw new DOMException(`Aborted`,`AbortError`);e!==0&&await new Promise((n,r)=>{let i=()=>{clearTimeout(a),r(new DOMException(`Aborted`,`AbortError`))},a=setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Zi(e,n,r,i){let a;for(let o of Ee){await Xi(o,r);let s=new AbortController,c=setTimeout(()=>s.abort(),De),l=()=>s.abort();r.addEventListener(`abort`,l,{once:!0});try{let o=await t(e,{method:`POST`,headers:{"Content-Type":`application/json`,...i?{"X-Xopc-Expected-Session-Key":i}:{}},body:n,signal:s.signal});if(r.throwIfAborted(),!ke(o.status))return o;a=Error(`Session input temporarily unavailable (${o.status})`)}catch(e){if(r.aborted)throw e;a=e}finally{clearTimeout(c),r.removeEventListener(`abort`,l)}}throw a instanceof Error?a:Error(`Session input request failed`)}function Q(e){return`xopc:pendingRun:${e}`}function Qi(e){try{let t=globalThis.sessionStorage?.getItem(Q(e));if(!t)return!1;let n=JSON.parse(t);return typeof n.runId==`string`&&n.runId.trim().length>0}catch{return!1}}function $i(e){try{let t=globalThis.sessionStorage?.getItem(Q(e));if(!t)return null;let n=JSON.parse(t);return(typeof n.runId==`string`?n.runId.trim():``)||null}catch{return null}}function ea(e,t){let n=t.trim();if(n)try{let t=Q(e),r=JSON.parse(sessionStorage.getItem(t)??`{}`),i=r.runId===n&&typeof r.lastSeq==`number`?r.lastSeq:0;sessionStorage.setItem(t,JSON.stringify({runId:n,lastSeq:i})),Fi(e)}catch{}}function ta(e,t){try{let n=sessionStorage.getItem(Q(e));if(!n)return 0;let r=JSON.parse(n);return r.runId===t&&typeof r.lastSeq==`number`?r.lastSeq:0}catch{return 0}}function na(e,t,n){if(!(!Number.isInteger(n)||n<1))try{let r=Q(e),i=sessionStorage.getItem(r);if(!i)return;let a=JSON.parse(i);if(a.runId!==t||n<=(typeof a.lastSeq==`number`?a.lastSeq:0))return;sessionStorage.setItem(r,JSON.stringify({runId:t,lastSeq:n}))}catch{}}function ra(e,t){let n=String(e??``).trim(),r=String(t??``).trim();if(!n||!r)return!1;try{let e=Q(n),t=sessionStorage.getItem(e);return!t||JSON.parse(t).runId!==r?!1:(sessionStorage.removeItem(e),Fi(n),!0)}catch{return!1}}function ia(){let e=[];try{for(let t=0;t<sessionStorage.length;t+=1){let n=sessionStorage.key(t);if(!n?.startsWith(`xopc:pendingRun:`))continue;let r=n.slice(16).trim(),i=sessionStorage.getItem(n);if(!r||!i)continue;let a=JSON.parse(i),o=typeof a.runId==`string`?a.runId.trim():``;o&&e.push({conversationId:r,runId:o})}}catch{return e}return e}var aa=class{_abort;_chatId=``;_trackedRunId;_streamCleanup;_streamFinish;_terminalCallbacks;get isSending(){return!!this._abort}get activeChatId(){return this._chatId}isStreamingFor(e){return!!this._abort&&this._chatId===e}isTrackingRun(e,t){return this.isStreamingFor(e)&&this._trackedRunId===t}reconcileTerminal(e,t,n){return!this.isTrackingRun(e,t)||!this._streamFinish?!1:(this._terminalCallbacks?.onResult({runId:t,conversationId:e,status:n}),this._streamFinish(!0),!0)}reconcileInactive(e,t){return!this.isTrackingRun(e,t)||!this._streamFinish?!1:(this._streamFinish(!1),!0)}async send(e,i,a,s,c,l,u,d,f){if(this.isSending)throw Error(`A submission is already in progress`);if(u&&f)throw Error(`Application context requires a new input`);let p=f===void 0?void 0:ne(f);a=a===void 0?void 0:structuredClone(a),d=d?.map(({refId:e,kind:t,sourceId:n,expectedVersion:r})=>({refId:e,kind:t,sourceId:n,expectedVersion:r})),this._trackedRunId=void 0;let m=new AbortController;this._abort=m,this._chatId=i;let h=Ui(i);try{let f=a&&a.length>10?a.slice(0,10):a,h=Y.getState().sessions[i],g=r.getState().conversationId,_=()=>{if(g!==r.getState().conversationId)throw Error(`Active Gateway changed`)};if(h?.modelConfigSaving)throw Error(`Wait for model configuration to finish saving`);let v=h?.configVersion,ee=await Te(m.signal),y=Li(i,`${Oe({content:e,attachments:f,thinking:s,contextRefs:d,appContext:p})}:${v??``}${u?`:replace:${u}`:``}`),b={content:e,attachments:f,contextRefs:d,appContext:p,endpointContext:void 0,interactionCapabilities:void 0},x;if(l||u)u||(b.endpointContext=await rn()),x={clientMessageId:y,configVersion:v,delivery:`next`,...b,thinking:s,origin:ee};else{_();let e=await E(i);if(_(),e?.materialization){let t=new wa;await t.confirmPendingMaterialization(i,m.signal);let n=await t.loadSessionAgentConfig(i);m.signal.throwIfAborted(),_(),Bi(i,n),v=n.configVersion,e=await E(i)}let t=await ce(i);if(_(),!e&&!t&&v===void 0){let e=await new wa().loadSessionAgentConfig(i);m.signal.throwIfAborted(),_(),Bi(i,e),v=e.configVersion}if(b.interactionCapabilities=t?t.input.interactionCapabilities:e?.submission?e.submission.input.interactionCapabilities:await en(),t){if(b.endpointContext=t.input.endpointContext,ae(t.input)!==ae(b))throw Error(`The previous input is awaiting confirmation`);y=t.clientMessageId,x=le.parse({...t,origin:ee})}else if(e){b.endpointContext=e.submission?.input.endpointContext??await rn();let t={kind:`start`,clientMessageId:y,creation:e.creation,input:b};if(e.submission&&ae(e.submission.input)!==ae(b))throw Error(`The first input is awaiting confirmation. Retry it before sending different content.`);x=le.parse({...e.submission??t,origin:ee}),y=e.submission?.clientMessageId??y,e.submission??=t,await D(e)}else b.endpointContext=await rn(),x=le.parse({kind:`append`,clientMessageId:y,expectedTranscriptId:await de(i),configVersion:v,delivery:`next`,input:b,origin:ee});_();let{origin:n,...r}=le.parse(x);await pe(i,r)}_();let S=await Zi(n(l?`/api/tasks/${encodeURIComponent(l)}/inputs`:u?`/api/sessions/${encodeURIComponent(i)}/turns/${encodeURIComponent(u)}/replace`:`/api/sessions/${encodeURIComponent(i)}/inputs`),JSON.stringify(x),m.signal,l?i:void 0);if(!S.ok){_(),!l&&!u&&S.status>=400&&S.status<500&&![401,408,429].includes(S.status)&&await fe(i);let e=await S.json().catch(()=>({}));if(!l&&!u&&S.status===400&&e.error?.code===`BAD_REQUEST`){let e=await E(i);_(),e?.submission?.clientMessageId===y&&(delete e.submission,await D(e)),Ri(i,y)}throw e.error?.code===`CONFIG_CHANGED`&&window.dispatchEvent(new CustomEvent(`session-model-config-stale`,{detail:{conversationId:i}})),Error(o(S.status,S.statusText,e.error?.message))}let C=await S.json();if(m.signal.throwIfAborted(),_(),!l&&!u){let e=C.payload?.receipt;if(!e||e.conversationId!==i||e.clientMessageId!==y)throw Error(`Invalid input receipt`);if(C.payload?.session?.transcriptId!==e.transcriptId)throw Error(`Conversation was reset; reload before sending`);await ue(i,e.transcriptId),window.dispatchEvent(new CustomEvent(`session-input-state`,{detail:{...C.payload?.inputState,conversationId:i}})),C.payload?.agentConfig&&Bi(i,C.payload.agentConfig)}Ri(i,y),c?.onInputAccepted?.();let te=l||u?C.payload?.state:C.payload?.inputState,w=C.payload?.conversationId?.trim()||i,T=te?.inputs?.find(e=>e.clientMessageId===y);if(te?.activeRunId&&T?.id===te.activeInputId){await this.resume(te.activeRunId,w,c);return}if(!l&&!u){for(;T;){if(await Xi(400,m.signal),this._abort!==m)return;let e=await t(n(`/api/sessions/${encodeURIComponent(i)}/input-state`),{signal:m.signal});if(this._abort!==m)return;if(!e.ok)continue;let r=await e.json();m.signal.throwIfAborted(),_();let a=r.payload;if(a?.activeRunId&&a.activeInputId===T.id){await this.resume(a.activeRunId,w,c);return}if(a?.inputs&&!a.inputs.some(e=>e.id===T.id))break}if(await c?.onReplayGap?.(),c?.onClarifyRequest)try{let e=await t(n(`/api/sessions/${encodeURIComponent(w)}/clarification`),{signal:m.signal}),r=(e?.ok?await e.json():null)?.payload?.clarification;if(_(),r?.status===`open`&&typeof r.id==`string`){c?.onClarifyRequest?.({...Xe(r),requestId:r.id,question:r.question,kind:r.kind===`approval`?`approval`:`input`,version:r.version,createdAt:r.createdAt,expiresAt:r.expiresAt}),c?.onResult({runId:``,conversationId:w,status:`suspended`});return}}catch(e){if(m.signal.aborted)throw e}c?.onResult({runId:``,conversationId:w,status:`success`});return}this._abort=void 0}finally{Wi(i,h),this._abort===m&&(this._abort=void 0)}}abort(){this._trackedRunId&&Yi(this._trackedRunId,`cancelled`),this._notifyServerAbort(),this._abort?.abort(),this._streamCleanup?.(),this._streamCleanup=void 0,this._abort=void 0,this._clearPendingRun()}_notifyServerAbort(){if(this._chatId)try{let e=sessionStorage.getItem(Q(this._chatId));if(!e)return;let r=JSON.parse(e);if(typeof r.runId!=`string`||!r.runId)return;t(n(`/api/agent/abort`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:r.runId})}).catch(()=>{})}catch{}}async resume(e,t,n){Gi(t,e),this._trackedRunId=void 0,this._abort=new AbortController,this._chatId=t,this._trackedRunId=e,ea(t,e);let r=this._wrapTerminalCallbacks(n);this._terminalCallbacks=r.wrapped;let i=await new Promise(n=>{let i=!1,a=e=>{i||(i=!0,this._streamCleanup?.(),this._streamCleanup=void 0,n(e))};this._streamFinish=a;let o=ta(t,e);this._streamCleanup=_(`run:${e}`,{onEvent:n=>{let i=n.data&&typeof n.data==`object`?{...n.data,seq:n.seq}:{type:n.event,seq:n.seq,payload:n.data};this._dispatchStreamEvent(n.event,i,r.wrapped),na(t,e,n.seq),(n.event===`run_end`||n.event===`error`)&&a(!0)},onGap:e=>{if(e.recoverable)return r.wrapped?.onReplayGap?.();a(!1)}},o),this._abort?.signal.addEventListener(`abort`,()=>a(!1),{once:!0})});return this._abort=void 0,this._streamFinish=void 0,this._terminalCallbacks=void 0,this._clearPendingRun(),i}_wrapTerminalCallbacks(e){if(!e)return{wrapped:void 0,sawTerminal:!1,onMissingTerminal:()=>{}};let t=!1,n=()=>{t=!0};return{get sawTerminal(){return t},wrapped:{...e,onResult:r=>{t||(n(),e.onResult(r))},onError:r=>{t||(n(),e.onError(r))}},onMissingTerminal:()=>{t||(n(),e.onError(`Agent run ended without a terminal event`))}}}_clearPendingRun(){let e=this._chatId;if(e)try{let t=Q(e),n=sessionStorage.getItem(t);if(n){let e=JSON.parse(n),t=typeof e?.runId==`string`?e.runId:``;if(this._trackedRunId&&t&&t!==this._trackedRunId)return}sessionStorage.removeItem(t),Fi(e)}catch{}this._trackedRunId=void 0}_dispatchStreamEvent(e,t,n){let r=t.payload&&typeof t.payload==`object`?t.payload:{};switch((e===`run_start`||e===`assistant_message_start`||e===`assistant_delta`)&&r.textSurface===`conversation`&&n?.onTextSurface?.(`conversation`),e){case`run_start`:typeof t.runId==`string`&&this._chatId&&Gi(this._chatId,t.runId),typeof t.runId==`string`&&this._chatId&&(this._trackedRunId=t.runId,ea(this._chatId,t.runId)),typeof t.runId==`string`&&n?.onStreamStart(t.runId,r.startsNewBubble===!0,Rt(r.taskTrigger)??void 0);break;case`user_message`:{let e=r.message&&typeof r.message==`object`?r.message:{},i=Dr({...e,turnId:typeof e.turnId==`string`?e.turnId:t.runId});i&&n?.onUserMessage?.(i);break}case`user_transcript`:{let e=Dr({text:r.text,media:r.media,timestamp:t.timestamp,turnId:t.runId});e&&n?.onUserMessage?.(e);break}case`assistant_message_start`:typeof t.runId==`string`&&n?.onStreamStart(t.runId);break;case`assistant_delta`:typeof r.delta==`string`&&r.delta&&(typeof t.runId==`string`&&r.delta.trim()&&Ki(t.runId),n?.onToken(r.delta,typeof r.messageId==`string`?r.messageId:void 0,typeof r.offset==`number`?r.offset:void 0));break;case`thinking_delta`:typeof r.delta==`string`&&r.delta&&n?.onThinking(r.delta,!0);break;case`thinking_end`:n?.onThinkingEnd();break;case`assistant_message_end`:n?.onThinkingEnd(),typeof r.messageId==`string`&&(r.presentation===`narration`||r.presentation===`answer`)&&n?.onAssistantMessageEnd?.(r.messageId,r.presentation,r.usage);break;case`tool_start`:{let e=String(r.toolName||`unknown`),i=typeof r.toolCallId==`string`?r.toolCallId:void 0;if(e===`clarify`)break;n?.onToolStart(e,r.args,i,ca(t.timestamp),r.activity,sa(r));break}case`tool_update`:{let e=typeof r.toolName==`string`&&r.toolName?r.toolName:`unknown`,t=typeof r.toolCallId==`string`?r.toolCallId:void 0;r.details!==void 0&&n?.onToolUpdate?.(e,t,r.details),typeof r.textDelta==`string`&&r.textDelta&&n?.onToolUpdate?.(e,t,{textDelta:r.textDelta});break}case`tool_end`:n?.onToolEnd(typeof r.toolName==`string`&&r.toolName?r.toolName:`unknown`,r.status===`error`||r.status===`cancelled`,oa(r.result),typeof r.toolCallId==`string`?r.toolCallId:void 0,ca(t.timestamp),r.activity,sa(r));break;case`review_start`:typeof r.reviewId==`string`&&r.reviewId&&n?.onReviewStart?.({reviewId:r.reviewId,target:typeof r.target==`string`?r.target:`working tree changes`,stage:r.stage===`preparing`?`preparing`:`reviewing`});break;case`review_delta`:typeof r.reviewId==`string`&&typeof r.delta==`string`&&r.delta&&n?.onReviewDelta?.({reviewId:r.reviewId,delta:r.delta});break;case`review_end`:typeof r.reviewId==`string`&&r.reviewId&&n?.onReviewEnd?.({reviewId:r.reviewId,status:r.status===`error`?`error`:`complete`,...typeof r.message==`string`&&r.message?{message:r.message}:{}});break;case`progress`:n?.onProgress({stage:String(r.stage||`thinking`),message:String(r.message||``),detail:r.detail,toolName:r.toolName,completed:typeof r.completed==`number`?r.completed:void 0,total:typeof r.total==`number`?r.total:void 0,timestamp:Date.now()});break;case`compaction`:n?.onCompaction?.({status:r.status||`started`,tokensBefore:typeof r.tokensBefore==`number`?r.tokensBefore:void 0,tokensAfter:typeof r.tokensAfter==`number`?r.tokensAfter:void 0,summary:typeof r.summary==`string`?r.summary:void 0});break;case`turn_plan`:{let e=la(r.plan);e.length>0&&n?.onTurnPlanUpdated?.({explanation:typeof r.explanation==`string`&&r.explanation.trim()?r.explanation.trim():void 0,plan:e});break}case`task_plan_updated`:{let e=ua(r.items),t=r.source===`todo`?`todo`:`update_plan`,i=r.scope===`session`?`session`:`turn`,a=typeof r.planId==`string`?r.planId.trim():``,o=typeof r.revision==`number`&&Number.isInteger(r.revision)?r.revision:0;a&&o>0&&n?.onTaskPlanUpdated?.({planId:a,revision:o,source:t,scope:i,explanation:typeof r.explanation==`string`&&r.explanation.trim()?r.explanation.trim():void 0,items:e});break}case`turn_outcome`:{let e=v(r);e&&n?.onTurnOutcome?.(e);break}case`session_config_updated`:n?.onSessionConfigUpdated?.();break;case`tts_audio`:n?.onTtsAudio?.({uri:String(r.uri||``),mimeType:String(r.mimeType||`audio/mpeg`),name:String(r.name||`voice.mp3`),attachTo:r.attachTo===`last_assistant`?`last_assistant`:void 0,messageId:typeof r.messageId==`string`?r.messageId:void 0});break;case`clarify_request`:{let e=typeof r.requestId==`string`?r.requestId.trim():``,t=typeof r.question==`string`?r.question.trim():``;e&&t&&n?.onClarifyRequest&&n.onClarifyRequest({...Xe(r),requestId:e,kind:r.kind===`approval`?`approval`:`input`,question:t,version:typeof r.version==`number`?r.version:1,createdAt:typeof r.createdAt==`number`?r.createdAt:Date.now(),expiresAt:typeof r.expiresAt==`number`?r.expiresAt:void 0});break}case`run_end`:typeof t.runId==`string`&&typeof t.conversationId==`string`&&(r.status===`success`||r.status===`error`||r.status===`cancelled`||r.status===`suspended`)&&(Yi(t.runId,r.status),n?.onResult({runId:t.runId,conversationId:t.conversationId,status:r.status,...typeof r.summary==`string`&&r.summary?{summary:r.summary}:{}}));break;case`error`:typeof t.runId==`string`&&Yi(t.runId,`error`),n?.onError(String(r.message||JSON.stringify(Ai())));break}}};function oa(e){if(typeof e==`string`||e==null)return e;try{return JSON.stringify(e)}catch{return String(e)}}function sa(e){return{...typeof e.parentToolCallId==`string`?{parentToolCallId:e.parentToolCallId}:{},...typeof e.durationMs==`number`?{durationMs:e.durationMs}:{}}}function ca(e){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Chat stream event is missing a numeric timestamp`);return e}function la(e){return Array.isArray(e)?e.map(e=>{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,n=typeof t?.step==`string`?t.step.trim():``,r=t?.status;if(!(!n||r!==`pending`&&r!==`in_progress`&&r!==`completed`))return{step:n,status:r}}).filter(e=>!!e):[]}function ua(e){return Array.isArray(e)?e.flatMap(e=>{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,n=typeof t?.id==`string`?t.id.trim():``,r=typeof t?.title==`string`?t.title.trim():``,i=t?.status;return!n||!r||i!==`pending`&&i!==`in_progress`&&i!==`completed`&&i!==`cancelled`?[]:[{id:n,title:r,status:i}]}):[]}async function da(e){let r=String(e??``).trim();if(!r||await E(r))return{active:!1};let i=await t(n(x(r)));if(!i.ok)throw Error(`Active run lookup failed (${i.status})`);return y(await i.json())}async function fa(e){let t=String(e??``).trim();if(!t)return null;let n=$i(t);try{let e=await da(t);return e.active&&e.runId?(ea(t,e.runId),e.runId):(n&&ra(t,n),null)}catch{}return $i(t)}var pa=e({SessionManager:()=>wa,SessionModelRequiredError:()=>ha,WEB_UI_SESSION_SOURCE_CHANNELS:()=>ma}),ma=`webchat`,ha=class extends Error{constructor(){super(s(i.getState().language).chat.modelRequiredForResources),this.name=`SessionModelRequiredError`}};function ga(e){if(!e||typeof e!=`object`)throw Error(`Invalid session agent config response`);let t=e;if(t.ok!==!0||!t.payload||typeof t.payload!=`object`)throw Error(`Invalid session agent config response`);let n=t.payload,r=n.workspaceSource,i=n.activityDetail,a=i&&typeof i==`object`?i:null,o=e=>e===`off`||e===`on`||e===`stream`;if(typeof n.thinkingLevel!=`string`||typeof n.model!=`string`||!a||!o(a.default)||a.override!==null&&!o(a.override)||!o(a.effective)||a.source!==`session`&&a.source!=="default"||typeof n.effectiveWorkspacePath!=`string`||typeof n.workingDirectoryLocked!=`boolean`||n.userContextMode!==`enabled`&&n.userContextMode!==`off`&&n.userContextMode!==`temporary`||r!==`execution_environment`&&r!==`project`&&r!==`session_override`&&r!==`agent_default_root`&&r!==`agent_workspace`)throw Error(`Invalid session agent config response`);return{thinkingLevel:n.thinkingLevel,configVersion:typeof n.configVersion==`number`?n.configVersion:void 0,fixedModel:n.fixedModel===!0,model:n.model,activityDetail:{default:a.default,override:a.override,effective:a.effective,source:a.source},effectiveWorkspacePath:n.effectiveWorkspacePath,workingDirectoryLocked:n.workingDirectoryLocked,userContextMode:n.userContextMode,workspaceSource:r}}var _a=new Map,va=new Map;function $(){let e=r.getState().conversationId;return()=>{if(r.getState().conversationId!==e)throw Error(`Active Gateway identity changed`)}}var ya=new Map,ba=50,xa=500,Sa=new Map;async function Ca(e){let t=await e.json().catch(()=>({}));return typeof t.error==`string`?t.error:t.error?.message??`HTTP ${e.status}`}var wa=class{async forkSessionAtTurn(e,r){let i=await t(n(C(e)),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({lastTurnId:r})});if(!i.ok)throw Error(await Ca(i));return w(await i.json())}async loadSessions(){let e=[],t=0;for(let n=0;n<100;n++){let n=await te({channel:ma,limit:100,offset:t});for(let t of n.items)e.push({key:t.key,agentId:t.agentId,transcriptId:t.transcriptId,name:t.name,updatedAt:t.updatedAt,messageCount:t.messageCount,sourceChannel:t.sourceChannel,sourceChatId:t.sourceChatId,projectId:t.projectId,customData:t.customData,routing:t.routing});if(!n.hasMore)break;t+=100}return e.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())}async loadSessionAgentConfig(e){let r=$();await this.reconcileDraft(e),r();let i=await E(e);if(i){if(!i.creation.model&&!i.submission&&!i.materialization){let[t,n]=await Promise.all([ye(),be(i.creation.agentId)]);r();let a=n.config.models.chat.primary,o=t.filter(e=>e.id===a||e.id.endsWith(`/${a}`)),s=t.find(e=>e.id===a)??(o.length===1?o[0]:void 0),c=await E(e);if(r(),c&&!c.creation.model&&!c.submission&&!c.materialization&&s)return c.creation.model=s.id,c.creation.thinkingLevel=s.thinking?.initialValue??`off`,await D(c),se(c);if(c)return se(c)}return se(i)}let a=_a.get(e);if(a)return a;let o=(async()=>{let r=await t(n(`/api/sessions/${encodeURIComponent(e)}/agent-config`));if(!r.ok)throw Error(`HTTP ${r.status}`);return ga(await r.json())})().finally(()=>{_a.delete(e)});return _a.set(e,o),o}async patchSessionAgentConfig(e,r){let i=await E(e);if(i){if(i.submission||i.materialization)throw Error(`Resolve the pending creation command before changing its configuration`);return r.model!==void 0&&(i.creation.model=r.model??``),r.thinkingLevel!==void 0&&(i.creation.thinkingLevel=r.thinkingLevel),r.userContextMode!==void 0&&(i.creation.temporary=r.userContextMode===`temporary`),await D(i),se(i)}let a=await t(n(`/api/sessions/${encodeURIComponent(e)}/agent-config`),{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`HTTP ${a.status}`)}return ga(await a.json())}async patchTaskConversationModel(e,r,i,a){let o=await t(n(`/api/tasks/${encodeURIComponent(e)}/conversation/config`),{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:r,thinkingLevel:i,configVersion:a})});if(!o.ok){let e=await o.json().catch(()=>({}));throw Error(e.error??`HTTP ${o.status}`)}return ga(await o.json())}fetchSessionActiveRun(e){return da(e)}async loadSession(e,t=0,r,i,a){if(i||await this.reconcileDraft(e),!i&&await E(e))return{messages:[],hasMore:!1};let o=`${i??e}\0${t}\0${r??``}`,s=ya.get(o);if(s&&s.messagesAtRequest===a)return s.pending;let c=(async()=>{let a=async(t,r)=>{let a=await ve(n(i?`/api/tasks/${encodeURIComponent(i)}/conversation/history?${new URLSearchParams({limit:String(ba),...r?{before:r}:{offset:String(t)}}).toString()}`:S(e,{limit:ba,before:r,offset:r?void 0:t})));if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);return T(await a.json())},o=await a(t,r);o.session.transcriptId&&await ie(e,o.session.transcriptId);let s=o.session.messages,c=Lt(s),l=o.pagination.hasMore,u=o.pagination.nextBeforeCursor,d=typeof o.session.name==`string`&&o.session.name.trim()?o.session.name.trim():void 0;for(;t===0&&!r&&l&&u&&(s.length<xa||c.length<ba||!c.some(e=>e.role===`user`))&&(c[0]?.role===`assistant`||c.length<ba&&!c.some(e=>e.role===`assistant`));){let e=u;if(o=await a(0,e),o.pagination.hasMore&&(!o.pagination.nextBeforeCursor||Number(o.pagination.nextBeforeCursor)>=Number(e)))throw Error(`History pagination did not advance`);s=[...o.session.messages,...s],c=Lt(s),l=o.pagination.hasMore,u=o.pagination.nextBeforeCursor}return{messages:c,hasMore:l,name:d,nextBeforeCursor:u}})().finally(()=>{ya.get(o)?.pending===c&&ya.delete(o)});return ya.set(o,{pending:c,messagesAtRequest:a}),c}async loadTimeline(e,t){if(!t&&(await this.reconcileDraft(e),await E(e)))return[];let r=t??e,i=Sa.get(r);if(i)return i;let a=(async()=>{let r=await ve(n(t?`/api/tasks/${encodeURIComponent(t)}/conversation/timeline`:`/api/sessions/${encodeURIComponent(e)}/timeline`));if(!r.ok)throw Error(`HTTP ${r.status}: ${r.statusText}`);let i=await r.json();if(i.ok!==!0||!Array.isArray(i.items))throw Error(`Invalid session timeline response`);return i.items})().finally(()=>{Sa.delete(r)});return Sa.set(r,a),a}async createSession(e){let t=crypto.randomUUID(),n=new Date().toISOString(),r={agentId:e?.agentId?.trim().toLowerCase()||`main`,projectId:e?.projectId?.trim()||null,execution:e?.executionMode?{mode:e.executionMode}:null,temporary:e?.temporary===!0,model:e?.initialAgentConfig?.model??``,thinkingLevel:e?.initialAgentConfig?.thinkingLevel??`off`};return await D({conversationId:t,creation:r,createdAt:n}),{key:t,agentId:r.agentId,projectId:r.projectId??void 0,messageCount:0,updatedAt:n,sourceChannel:`webchat`}}async resetSession(e){let r=e.trim();if(!r)throw Error(`Session key is required`);let i=await t(n(`/api/sessions/${encodeURIComponent(r)}/reset`),{method:`POST`});if(!i.ok)throw Error(await Ca(i));let a=b(await i.json());if(!a.transcriptId)throw Error(`Reset response is missing transcript identity`);return await ie(e,a.transcriptId),a}async reconcileDraft(e){let r=$(),i=await E(e);r();let a=await ce(e);r();let o=a?.clientMessageId??i?.submission?.clientMessageId??i?.materialization?.commandId;if(!o)return;let s=await t(n(`/api/sessions/${encodeURIComponent(e)}/input-receipts/${encodeURIComponent(o)}`));if(s.status===404)return;if(!s.ok)throw Error(await Ca(s));let c=await s.json();if(r(),c.payload.receipt.conversationId!==e||c.payload.receipt.clientMessageId!==o||!c.payload.session.transcriptId)throw Error(`Invalid input receipt`);if(i?.materialization){let t=await E(e);if(r(),t?.materialization?.commandId!==o)return}await ue(e,c.payload.session.transcriptId)}async confirmPendingMaterialization(e,t){let n=$();await this.reconcileDraft(e),t?.throwIfAborted(),n();let r=await E(e);n(),r?.materialization&&await this.submitMaterialization(r,t)}materialize(e,t){let n=JSON.stringify([r.getState().conversationId,e]),i=va.get(n);if(i)return i;let a=this.materializeDraft(e,t).finally(()=>{va.get(n)===a&&va.delete(n)});return va.set(n,a),a}async materializeDraft(e,t){let n=$();if(!await E(e))return;n(),await this.loadSessionAgentConfig(e),n();let r=await E(e);if(n(),r){if(r.submission)throw Error(`The first input is awaiting confirmation`);if(!r.creation.model.trim())throw new ha;if(r.materialization??={commandId:crypto.randomUUID(),purpose:t},await D(r),n(),await this.submitMaterialization(r)!==`ready`)throw Error(`Conversation environment is not ready yet`)}}async submitMaterialization(e,r){let i=$(),a=e.conversationId;if(!e.materialization)throw Error(`Missing materialization command`);let o=await t(n(`/api/sessions/${encodeURIComponent(a)}/materialize`),{method:`POST`,body:JSON.stringify({...e.materialization,creation:e.creation}),signal:r});if(!o.ok)throw Error(await Ca(o));let s=await o.json();if(r?.throwIfAborted(),i(),s.payload.receipt.conversationId!==a||s.payload.receipt.clientMessageId!==e.materialization.commandId)throw Error(`Invalid materialization receipt`);let c=await E(a);return i(),c?.materialization?.commandId===e.materialization.commandId&&await ue(a,s.payload.receipt.transcriptId),s.payload.receipt.lifecycle}async fetchSessionName(e){let t=await ve(n(`/api/sessions/${encodeURIComponent(e)}?offset=0&limit=1`));if(!t.ok)return;let r=(await t.json()).session?.name;return typeof r==`string`&&r.trim()?r.trim():void 0}updateUrl(e){let t=`#/chat/${encodeURIComponent(e)}`;if(location.hash!==t){let e=window.history.state,n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:e;history.replaceState(n,``,t)}}parseSessionFromHash(){let e=location.hash.slice(1),t=e.match(/^\/chat\/(.+)$/)||e.match(/^chat\/(.+)$/),n=t?decodeURIComponent(t[1]):null;return n&&n!==`new`?n:null}async deleteMessages(e,r){let i=await t(n(`/api/sessions/${encodeURIComponent(e)}/messages`),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`HTTP ${i.status}`)}}};export{j as $,Rr as A,Fr as B,Qr as C,ri as D,Gr as E,Xr as F,Er as G,Pr as H,Lr as I,xr as J,wr as K,ei as L,qr as M,Kr as N,zr as O,ni as P,nn as Q,Wr as R,Y as S,Yr as T,Mr as U,Nr as V,Tr as W,yr as X,br as Y,_r as Z,Ti as _,ra as a,qe as at,wi as b,$i as c,Be as ct,Bi as d,We as dt,kt as et,Pi as f,Ge as ft,_i as g,Te as gt,Ni as h,Ce as ht,aa as i,nt as it,$r as j,ii as k,ea as l,Ve as lt,Mi as m,we as mt,pa as n,A as nt,Qi as o,Ze as ot,ji as p,Ue as pt,G as q,fa as r,rt,ia as s,Xe as st,wa as t,Ot as tt,Ji as u,He as ut,Ei as v,ti as w,ci as x,Di as y,ai as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./settings-mode-store-CtJ8pEfm.js";function t(t){let{children:n,fallback:r}=t,i=r===void 0?null:r;return e()?n:i}export{t};
|
|
@@ -1,2 +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{f as i,m as a,t as o,u as s}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as c,l,n as u,o as d}from"./locale-store-TQcz_Vjt.js";import{G as f,W as p,t as m,w as h}from"./chat-page-CafkCKOj.js";import{t as g}from"./arrow-left-D880xG-P.js";import{t as _}from"./calendar-clock-D-quYVPe.js";import{n as v,r as y}from"./popover-select-DD8fmrxH.js";import{t as b}from"./circle-check-C23XjkUj.js";import{t as x}from"./circle-x-DFsCKeya.js";import{t as S}from"./circle-BoO4YvTx.js";import{t as C}from"./ellipsis-0k4rZLoy.js";import{t as ee}from"./external-link-DjqjBmc3.js";import{t as te}from"./folder-kanban-CpLlFI1o.js";import{t as w}from"./folder-open-CyzJ19I9.js";import{F as T,N as E,V as D,z as O}from"./markdown-view-D4nII6Zv.js";import{t as k}from"./message-square-fVE7Ghj1.js";import{t as ne}from"./pause-DuPxgSxk.js";import{t as re}from"./play-kxZvpBg8.js";import{t as ie}from"./x-B_N4OPjy.js";import{t as A}from"./cn-0WouolD0.js";import{t as j}from"./button-CnRSIP6m.js";import{t as M}from"./skeleton-BI5TyibZ.js";import{s as ae}from"./file-preview-surface-c3gDD9sM.js";import{i as oe,n as se,o as N,r as ce,s as P,t as le}from"./dist-DfWfZ9iu.js";import{i as ue}from"./vendor-swr-CdRzEUwF.js";import{it as de,rt as fe}from"./session-manager-D2rbRfX3.js";import{c as pe}from"./api-bpQ7yR10.js";import{d as me,f as he,h as ge,m as _e,p as ve,s as ye}from"./composer-payload-handoff-CYXfjpem.js";import{C as be,D as xe,T as Se,d as Ce,f as we,k as Te,m as Ee,y as De}from"./use-composer-attachments-hjIGlI_2.js";import{t as Oe}from"./page-header-store-D6SzJ9Ch.js";import{t as ke}from"./agent-avatar-display-CmEj6Uqy.js";import{t as Ae}from"./chat-agents-api-BAOWaUJf.js";import{t as je}from"./confirm-dialog-XGclfBqe.js";import{l as Me,m as Ne,o as Pe,r as Fe,t as Ie,u as Le}from"./dist-D3lWNSe7.js";import{t as Re}from"./date-picker-DWaT0IC0.js";import{t as ze}from"./automation-api-MB2xCoFF.js";import{n as Be}from"./date-formatters-DukWSVwc.js";import{n as Ve,r as F,t as He}from"./task-result-evidence-DDubAU_5.js";import{t as Ue}from"./page-context-capture-button-B98nlKTc.js";import{t as We}from"./dependency-picker-DV9XAt6F.js";var I=n(),L=r();function Ge(e){let t=(0,I.c)(33),{changes:n,language:r}=e,i=r===`zh`,a;t[0]===i?a=t[1]:(a=i?{backlog:`待办池`,ready:`就绪`,active:`进行中`,review:`待验收`,closed:`已关闭`}:{backlog:`Backlog`,ready:`Ready`,active:`Active`,review:`Review`,closed:`Closed`},t[0]=i,t[1]=a);let o=a,s;t[2]===i?s=t[3]:(s=i?{board:`看板`,mobile:`移动端`,api:`手动操作`,runtime:`自动流转`,undo:`撤销`}:{board:`Board`,mobile:`Mobile`,api:`Manual update`,runtime:`Automatic`,undo:`Undo`},t[2]=i,t[3]=s);let c=s,l;t[4]===i?l=t[5]:(l=i?{done:`完成`,cancelled:`取消`,duplicate:`重复`,wont_do:`不做`}:{done:`Done`,cancelled:`Cancelled`,duplicate:`Duplicate`,wont_do:`Won’t do`},t[4]=i,t[5]=l);let u=l,d;t[6]===i?d=t[7]:(d=i?{user:`用户`,agent:`Agent`,system:`系统`,integration:`外部服务`}:{user:`User`,agent:`Agent`,system:`System`,integration:`Integration`},t[6]=i,t[7]=d);let f=d,p=i?`变更记录`:`Change log`,m;t[8]!==n.length||t[9]!==p?(m=(0,L.jsxs)(`summary`,{className:`cursor-pointer text-sm font-semibold text-fg`,children:[p,` (`,n.length,`)`]}),t[8]=n.length,t[9]=p,t[10]=m):m=t[10];let h;if(t[11]!==f||t[12]!==n||t[13]!==r||t[14]!==o||t[15]!==u||t[16]!==c){let e;t[18]!==f||t[19]!==r||t[20]!==o||t[21]!==u||t[22]!==c?(e=e=>(0,L.jsxs)(`li`,{className:`text-sm text-fg`,children:[(0,L.jsxs)(`div`,{children:[o[e.fromPhase],e.fromResolution?` · ${u[e.fromResolution]}`:``,` → `,o[e.toPhase],e.toResolution?` · ${u[e.toResolution]}`:``]}),(0,L.jsxs)(`div`,{className:`mt-1 text-xs text-fg-muted`,children:[f[e.actor.kind],e.actor.id?` (${e.actor.id})`:``,` · `,c[e.source],` · `,(0,L.jsx)(`time`,{dateTime:new Date(e.createdAt).toISOString(),children:Be(e.createdAt,r)})]})]},e.id),t[18]=f,t[19]=r,t[20]=o,t[21]=u,t[22]=c,t[23]=e):e=t[23],h=[...n].reverse().map(e),t[11]=f,t[12]=n,t[13]=r,t[14]=o,t[15]=u,t[16]=c,t[17]=h}else h=t[17];let g;t[24]===h?g=t[25]:(g=(0,L.jsx)(`ol`,{className:`mt-3 max-h-80 space-y-3 overflow-y-auto`,children:h}),t[24]=h,t[25]=g);let _;t[26]!==n.length||t[27]!==i?(_=n.length?null:(0,L.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:i?`暂无阶段变更记录`:`No phase changes yet`}),t[26]=n.length,t[27]=i,t[28]=_):_=t[28];let v;return t[29]!==m||t[30]!==g||t[31]!==_?(v=(0,L.jsxs)(`details`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[m,g,_]}),t[29]=m,t[30]=g,t[31]=_,t[32]=v):v=t[32],v}var R=e(t(),1);function Ke(e){let t=(0,I.c)(17),{children:n,contentKey:r,language:i,className:o}=e,s=(0,R.useId)(),c=R.Children.toArray(n),[l,u]=a(),d;t[0]!==r||t[1]!==l?(d=l.getAll(`taskExpanded`).includes(r),t[0]=r,t[1]=l,t[2]=d):d=t[2];let f=d,p=f?c:c.slice(0,3),m;t[3]!==s||t[4]!==p?(m=(0,L.jsx)(`ul`,{id:s,className:`space-y-1.5`,children:p}),t[3]=s,t[4]=p,t[5]=m):m=t[5];let h;t[6]!==r||t[7]!==f||t[8]!==s||t[9]!==c.length||t[10]!==i||t[11]!==u?(h=c.length>3?(0,L.jsx)(`button`,{type:`button`,"aria-expanded":f,"aria-controls":s,className:`mt-2 min-h-9 rounded-sm text-xs font-medium text-accent hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,onClick:()=>u(e=>{let t=new URLSearchParams(e),n=t.getAll(`taskExpanded`).filter(e=>e!==r);return t.delete(`taskExpanded`),n.forEach(e=>t.append(`taskExpanded`,e)),f||t.append(`taskExpanded`,r),t},{preventScrollReset:!0}),children:i===`zh`?f?`收起`:`查看全部(${c.length})`:f?`Show less`:`Show all (${c.length})`}):null,t[6]=r,t[7]=f,t[8]=s,t[9]=c.length,t[10]=i,t[11]=u,t[12]=h):h=t[12];let g;return t[13]!==o||t[14]!==m||t[15]!==h?(g=(0,L.jsxs)(`div`,{className:o,children:[m,h]}),t[13]=o,t[14]=m,t[15]=h,t[16]=g):g=t[16],g}function qe({taskId:e}){let t=l(e=>e.conversationId),n=u(e=>e.language),[r,i]=(0,R.useState)(``),[a,o]=(0,R.useState)(null),[s,f]=(0,R.useState)(!1),[p,m]=(0,R.useState)(!1),[h,g]=(0,R.useState)([]),[_,v]=(0,R.useState)(null),y=c(`/api/tasks/${encodeURIComponent(e)}/collaboration`),{data:b,error:x,mutate:S}=ue([`task-collaboration`,e,t],()=>d(`${y}?recent=1`),{revalidateOnFocus:!0}),C=[...new Map([...h,...b?.items??[]].map(e=>[e.id,e])).values()].sort((e,t)=>e.sequence-t.sequence),ee=async()=>{let e=C[0];if(!(!e||p)){m(!0);try{let t=await d(`${y}?recent=1&beforeSequence=${e.sequence}`);g(e=>[...t.items,...e])}catch(e){v(e instanceof Error?e.message:String(e))}finally{m(!1)}}};(0,R.useEffect)(()=>{let t=t=>{let n=t.detail;(!n?.taskId||n.taskId===e)&&S()};return window.addEventListener(`task-collaboration-entry-added`,t),window.addEventListener(`gateway-realtime-connected`,t),()=>{window.removeEventListener(`task-collaboration-entry-added`,t),window.removeEventListener(`gateway-realtime-connected`,t)}},[S,e]);let te=async()=>{if(!(!r.trim()||s)){f(!0),v(null);try{await d(y,{method:`POST`,headers:{"idempotency-key":crypto.randomUUID()},body:JSON.stringify({kind:a?`answer`:`instruction`,body:r.trim(),...a?{causationId:a}:{}})}),i(``),o(null),await S()}catch(e){v(e instanceof Error?e.message:String(e))}finally{f(!1)}}};return(0,L.jsxs)(`section`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n===`zh`?`任务留言`:`Task updates`}),(0,L.jsxs)(`div`,{className:`mt-3 max-h-64 space-y-2 overflow-y-auto`,children:[!b&&!x?(0,L.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-2`,children:[(0,L.jsx)(M,{className:`h-14 w-full`}),(0,L.jsx)(M,{className:`h-14 w-4/5`})]}):null,x?(0,L.jsx)(`p`,{role:`status`,className:`text-xs text-fg-muted`,children:n===`zh`?`暂时无法读取留言`:`Updates unavailable`}):null,C[0]&&C[0].sequence>1?(0,L.jsx)(`button`,{type:`button`,disabled:p,onClick:()=>void ee(),className:`text-xs text-accent hover:underline disabled:opacity-50`,children:n===`zh`?`查看更早留言`:`Earlier updates`}):null,C.map(t=>(0,L.jsxs)(`div`,{className:`rounded-lg bg-surface-base px-3 py-2 text-sm`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-fg-subtle`,children:[(0,L.jsx)(`span`,{children:t.authorKind===`worker_agent`?n===`zh`?`执行 Agent`:`Worker`:t.authorKind===`main_agent`?n===`zh`?`主 Agent`:`Main Agent`:t.authorKind===`system`?n===`zh`?`系统`:`System`:n===`zh`?`用户`:`You`}),(0,L.jsxs)(`span`,{children:[`· `,t.kind]}),t.deliveryStatus?(0,L.jsxs)(`span`,{children:[`· `,t.deliveryStatus]}):null]}),(0,L.jsx)(`div`,{className:`mt-1 min-w-0 text-fg`,"data-task-collaboration-body":!0,children:(0,L.jsx)(F,{content:t.body,contentKey:`${e}:update:${t.id}`,language:n,breaks:!0,previewHeight:120})}),t.kind===`question`&&t.authorKind===`worker_agent`?(0,L.jsx)(`button`,{type:`button`,className:`mt-2 text-xs text-accent hover:underline`,onClick:()=>o(t.id),children:n===`zh`?`回复问题`:`Reply`}):null]},t.id)),b&&!C.length?(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n===`zh`?`暂无进展留言`:`No updates yet`}):null]}),a?(0,L.jsxs)(`p`,{className:`mt-3 text-xs text-accent`,children:[n===`zh`?`正在回复执行 Agent 的问题`:`Replying to the worker`,(0,L.jsx)(`button`,{type:`button`,className:`ml-2 underline`,onClick:()=>o(null),children:n===`zh`?`取消`:`Cancel`})]}):null,(0,L.jsx)(`textarea`,{value:r,onChange:e=>i(e.target.value),rows:2,"aria-label":n===`zh`?`任务留言`:`Task message`,placeholder:n===`zh`?`给执行 Agent 留言`:`Message the worker`,className:`mt-3 w-full resize-y rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`}),_?(0,L.jsx)(`p`,{role:`alert`,className:`mt-1 text-xs text-danger`,children:_}):null,(0,L.jsx)(`button`,{type:`button`,disabled:!r.trim()||s,onClick:()=>void te(),className:`mt-2 rounded-lg bg-accent px-3 py-2 text-xs font-medium text-white disabled:opacity-50`,children:s?n===`zh`?`发送中`:`Sending`:n===`zh`?`发送`:`Send`})]})}function Je(e,t,n,r){return!!(e&&t!==e.version&&n!==e.value&&r!==n)}function Ye(e,t){let n={...e.task};t.title!==void 0&&(n.title=t.title),t.priority!==void 0&&(n.priority=t.priority);for(let e of[`body`,`projectId`,`milestoneId`,`parentTaskId`,`dueAt`,`ownerId`]){let r=t[e];r!==void 0&&(r===null?delete n[e]:Object.assign(n,{[e]:r}))}return n.version+=1,n.updatedAt=Date.now(),{...e,task:n}}function z(e,t){return(t===`zh`?{backlog:`待规划`,ready:`就绪`,active:`进行中`,review:`待验收`,closed:`已关闭`}:{backlog:`Backlog`,ready:`Ready`,active:`Active`,review:`Review`,closed:`Closed`})[e]}function Xe(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,L.jsxs)(`div`,{className:`space-y-4`,"aria-busy":!0,children:[(0,L.jsx)(M,{className:`h-32 rounded-2xl`}),(0,L.jsx)(M,{className:`h-52 rounded-2xl`}),(0,L.jsx)(M,{className:`h-40 rounded-2xl`})]}),e[0]=t):t=e[0],t}function Ze(e){if(e===void 0)return``;let t=new Date(e);return new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)}function Qe(e){return e?new Date(`${e}T23:59:59.999`).getTime():null}var B=[`backlog`,`ready`,`active`,`review`,`closed`],$e=[`low`,`normal`,`high`,`critical`],et=(0,R.memo)(function(e){let t=(0,I.c)(20),{value:n,disabled:r,canMove:i,canApprove:a,canReopen:o,language:s,label:c,onChange:l}=e,u;t[0]!==a||t[1]!==i||t[2]!==o||t[3]!==n?(u=e=>e!==n&&!i&&!(e===`closed`?a:n===`closed`&&o),t[0]=a,t[1]=i,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d=u,f;t[5]===c?f=t[6]:(f=(0,L.jsx)(`span`,{children:c}),t[5]=c,t[6]=f);let p;t[7]===l?p=t[8]:(p=e=>l(e.target.value),t[7]=l,t[8]=p);let m;t[9]!==s||t[10]!==d?(m=B.map(e=>(0,L.jsx)(y,{value:e,disabled:d(e),children:z(e,s)},e)),t[9]=s,t[10]=d,t[11]=m):m=t[11];let h;t[12]!==r||t[13]!==p||t[14]!==m||t[15]!==n?(h=(0,L.jsx)(v,{triggerClassName:`border-0 bg-surface-hover shadow-none focus-visible:ring-2 focus-visible:ring-accent/30`,contentClassName:`border-0`,value:n,disabled:r,onChange:p,children:m}),t[12]=r,t[13]=p,t[14]=m,t[15]=n,t[16]=h):h=t[16];let g;return t[17]!==f||t[18]!==h?(g=(0,L.jsxs)(`label`,{className:`grid gap-1.5 text-xs text-fg-muted`,children:[f,h]}),t[17]=f,t[18]=h,t[19]=g):g=t[19],g}),tt=(0,R.memo)(function(e){let t=(0,I.c)(14),{value:n,disabled:r,label:i,labels:a,onChange:o}=e,s;t[0]===i?s=t[1]:(s=(0,L.jsx)(`span`,{children:i}),t[0]=i,t[1]=s);let c;t[2]===o?c=t[3]:(c=e=>o(e.target.value),t[2]=o,t[3]=c);let l;t[4]===a?l=t[5]:(l=$e.map(e=>(0,L.jsx)(y,{value:e,children:a[e]},e)),t[4]=a,t[5]=l);let u;t[6]!==r||t[7]!==c||t[8]!==l||t[9]!==n?(u=(0,L.jsx)(v,{triggerClassName:`border-0 bg-surface-hover shadow-none focus-visible:ring-2 focus-visible:ring-accent/30`,contentClassName:`border-0`,value:n,disabled:r,onChange:c,children:l}),t[6]=r,t[7]=c,t[8]=l,t[9]=n,t[10]=u):u=t[10];let d;return t[11]!==s||t[12]!==u?(d=(0,L.jsxs)(`label`,{className:`grid gap-1.5 text-xs text-fg-muted`,children:[s,u]}),t[11]=s,t[12]=u,t[13]=d):d=t[13],d}),nt=(0,R.memo)(function(e){let t=(0,I.c)(10),{value:n,disabled:r,label:i,onChange:a}=e,o;t[0]===i?o=t[1]:(o=(0,L.jsx)(`span`,{children:i}),t[0]=i,t[1]=o);let s;t[2]!==r||t[3]!==i||t[4]!==a||t[5]!==n?(s=(0,L.jsx)(Re,{disabled:r,value:n,onChange:a,ariaLabel:i}),t[2]=r,t[3]=i,t[4]=a,t[5]=n,t[6]=s):s=t[6];let c;return t[7]!==o||t[8]!==s?(c=(0,L.jsxs)(`label`,{className:`grid gap-1.5 text-xs text-fg-muted`,children:[o,s]}),t[7]=o,t[8]=s,t[9]=c):c=t[9],c}),rt=(0,R.memo)(function(e){let t=(0,I.c)(17),{value:n,disabled:r,label:i,unassignedLabel:a,agents:o,onChange:s}=e,c;t[0]===i?c=t[1]:(c=(0,L.jsx)(`span`,{children:i}),t[0]=i,t[1]=c);let l;t[2]===s?l=t[3]:(l=e=>s(e.target.value),t[2]=s,t[3]=l);let u;t[4]===a?u=t[5]:(u=(0,L.jsx)(y,{value:``,disabled:!0,children:a}),t[4]=a,t[5]=u);let d;t[6]===o?d=t[7]:(d=o.map(vt),t[6]=o,t[7]=d);let f;t[8]!==r||t[9]!==l||t[10]!==u||t[11]!==d||t[12]!==n?(f=(0,L.jsxs)(v,{triggerClassName:`border-0 bg-surface-hover shadow-none focus-visible:ring-2 focus-visible:ring-accent/30`,contentClassName:`border-0`,value:n,disabled:r,onChange:l,children:[u,d]}),t[8]=r,t[9]=l,t[10]=u,t[11]=d,t[12]=n,t[13]=f):f=t[13];let p;return t[14]!==c||t[15]!==f?(p=(0,L.jsxs)(`label`,{className:`grid gap-1.5 text-xs text-fg-muted`,children:[c,f]}),t[14]=c,t[15]=f,t[16]=p):p=t[16],p}),it=(0,R.memo)(function(e){let t=(0,I.c)(9),{candidates:n,selected:r,disabled:i,labels:a,getTaskHref:o,onChange:s}=e,c;t[0]===r?c=t[1]:(c=r.map(yt),t[0]=r,t[1]=c);let l;return t[2]!==n||t[3]!==i||t[4]!==o||t[5]!==a||t[6]!==s||t[7]!==c?(l=(0,L.jsx)(We,{borderless:!0,candidates:n,selectedIds:c,disabled:i,getTaskHref:o,onChange:s,labels:a}),t[2]=n,t[3]=i,t[4]=o,t[5]=a,t[6]=s,t[7]=c,t[8]=l):l=t[8],l},(e,t)=>e.disabled===t.disabled&&e.labels===t.labels&&e.getTaskHref===t.getTaskHref&&e.onChange===t.onChange&&e.candidates.length===t.candidates.length&&e.candidates.every((e,n)=>e.id===t.candidates[n]?.id&&e.title===t.candidates[n]?.title)&&e.selected.length===t.selected.length&&e.selected.every((e,n)=>e.id===t.selected[n]?.id&&e.title===t.selected[n]?.title)),at=`xopc.taskDetail.chatPanelPercent`,ot=42;function st(e,t){let n=Math.max(30,352/Math.max(t,1)*100),r=Math.min(60,(t-480)/Math.max(t,1)*100);return r<n?ot:Math.min(r,Math.max(n,e))}function ct(){try{let e=Number(window.localStorage.getItem(at));return Number.isFinite(e)&&e>=30&&e<=60?e:ot}catch{return ot}}function lt(e){let t=(0,I.c)(13),{items:n,empty:r,contentKey:i}=e,a=u(dt);if(n.length===0){let e;return t[0]===r?e=t[1]:(e=(0,L.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:r}),t[0]=r,t[1]=e),e}let o;t[2]===n?o=t[3]:(o=n.join(`
|
|
2
|
-
`),t[2]=n,t[3]=o);let s;t[4]===n?s=t[5]:(s=n.map(ut),t[4]=n,t[5]=s);let c;t[6]===s?c=t[7]:(c=(0,L.jsx)(`ul`,{className:`space-y-2`,children:s}),t[6]=s,t[7]=c);let l;return t[8]!==i||t[9]!==a||t[10]!==o||t[11]!==c?(l=(0,L.jsx)(F,{content:o,contentKey:i,language:a,previewHeight:144,children:c}),t[8]=i,t[9]=a,t[10]=o,t[11]=c,t[12]=l):l=t[12],l}function ut(e){return(0,L.jsxs)(`li`,{className:`flex gap-2 text-sm leading-6 text-fg`,children:[(0,L.jsx)(S,{className:`mt-1 size-4 shrink-0 text-fg-subtle`}),(0,L.jsx)(`span`,{className:`min-w-0 whitespace-pre-wrap break-words [overflow-wrap:anywhere]`,children:e})]},e)}function dt(e){return e.language}function V({taskId:e,presentation:t,backgroundPath:n,onDeleted:r}){let[i]=a(),c=s(),d=u(e=>e.language),v=l(e=>e.conversationId),y=(0,R.useMemo)(()=>me(d),[d]),ie=Oe(e=>e.setPageHeader),M=Oe(e=>e.clearPageHeader),oe=ae(e=>e.panes),se=h(e=>e.openForSession),{data:N,error:ce,mutate:P,lastChange:le,conversationLoading:ye,conversationError:Re}=p(e),{data:We}=ue(e?`task-detail-automations`:null,()=>ze.list()),[I,z]=(0,R.useState)(null),[B,$e]=(0,R.useState)(()=>new Set),[ut,dt]=(0,R.useState)([]),[V,ft]=(0,R.useState)(null),[pt,mt]=(0,R.useState)([]),[ht,gt]=(0,R.useState)(!1),[_t,vt]=(0,R.useState)(``),[yt,H]=(0,R.useState)(!1),[bt,xt]=(0,R.useState)(``),[St,Ct]=(0,R.useState)(ct),[wt,Tt]=(0,R.useState)(!1),Et=(0,R.useRef)(null),Dt=(0,R.useRef)(!1),Ot=(0,R.useRef)(!1),kt=(0,R.useRef)(``),At=(0,R.useRef)(null),jt=(0,R.useRef)(null),Mt=(0,R.useRef)(null),U=(0,R.useRef)(N),[Nt,W]=(0,R.useState)(null),[Pt,Ft]=(0,R.useState)(null),[It,Lt]=(0,R.useState)(!1),Rt=(0,R.useMemo)(()=>({link:y.linkDependencies,linked:y.linkedDependencies,searchPlaceholder:y.dependencySearchPlaceholder,noMatches:y.noDependencyMatches,noCandidates:y.noDependencyCandidates,remove:y.removeDependency}),[y.dependencySearchPlaceholder,y.linkDependencies,y.linkedDependencies,y.noDependencyCandidates,y.noDependencyMatches,y.removeDependency]),zt=N?.dependencies.map(e=>`${e.id}:${e.title}`).join(`\0`)??``,Bt=(0,R.useMemo)(()=>O(i.get(`returnTo`),`/`,[`/projects`,`/chat`,`/notes`,`/tasks`]),[i]),Vt=(0,R.useCallback)(e=>t===`modal`&&n?T(n,e):D(`/tasks/${encodeURIComponent(e)}`,Bt),[n,t,Bt]);U.current=N;let G=(0,R.useCallback)((e,t)=>{$e(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]);(0,R.useEffect)(()=>{z(null),W(null),gt(!1),At.current=null,H(!1),Ft(null),Lt(!1)},[e]),(0,R.useEffect)(()=>{let e=!0;return Ae().then(t=>{e&&mt(t.items)}).catch(()=>void 0),()=>{e=!1}},[v]),(0,R.useEffect)(()=>{if(!le||le.source===`user`)return;Ft(le);let e=window.setTimeout(()=>Ft(null),3500);return()=>window.clearTimeout(e)},[le]),(0,R.useEffect)(()=>{let t=N?.task.projectId,n=N?.dependencies??[];if(!t){Mt.current=null,ft(null),dt(n);return}Mt.current!==t&&(Mt.current=t,ft(null));let r=!0;return pe(t).then(t=>{if(!r)return;ft(t.project.name);let i=new Map;for(let r of[...t.tasks,...n])r.id!==e&&i.set(r.id,{id:r.id,title:r.title});dt([...i.values()])}).catch(()=>{r&&dt(n)}),()=>{r=!1}},[zt,N?.task.projectId,e]);let K=(0,R.useCallback)(async(t,n=`command`)=>{let r=U.current;if(r){G(n,!0),z(null);try{await P(await we(e,t,r.task.version),{revalidate:!1})}catch{z(y.actionFailed)}finally{G(n,!1)}}},[y.actionFailed,P,G,e]),q=(0,R.useCallback)(async(t,n)=>{let r=U.current;if(!r)return!1;n&&G(n,!0),z(null);try{let n=xe(e,t,r.task.version);return await P(n,{optimisticData:Ye(r,t),populateCache:!0,revalidate:!1,rollbackOnError:!0}),!0}catch{return z(y.actionFailed),!1}finally{n&&G(n,!1)}},[y.actionFailed,P,G,e]),Ht=()=>{N&&(At.current={value:N.task.title,version:N.task.version},W(null),vt(N.task.title),gt(!0))},Ut=()=>{Dt.current=!0,vt(U.current?.task.title??``),At.current=null,W(null),gt(!1),queueMicrotask(()=>{Dt.current=!1})},Wt=async(e=!1)=>{if(Dt.current){Dt.current=!1;return}let t=U.current;if(!t||B.has(`title`))return;let n=_t.trim();if(!n){Ut();return}let r=At.current;if(!e&&Je(r,t.task.version,t.task.title,n)){W(`title`);return}if(n===t.task.title){Ut();return}await q({title:n},`title`)&&(At.current=null,W(null),gt(!1))},Gt=async()=>{if(!N)return;if(Ot.current){Ot.current=!1;return}let e=bt.trim(),t=jt.current;if(Je(t,N.task.version,N.task.body??``,e)){W(`description`);return}if(bt===kt.current||e===(N.task.body??``).trim()){H(!1);return}await q({body:fe(N.task.body??``,e)||null})&&(W(null),H(!1))},Kt=(0,R.useCallback)(async e=>{let t=U.current;!t||e===t.task.phase||await K({type:`move`,phase:e},`phase`)},[K]),qt=(0,R.useCallback)(e=>{q({priority:e},`priority`)},[q]),Jt=(0,R.useCallback)(e=>{q({dueAt:Qe(e)},`dueAt`)},[q]),Yt=(0,R.useCallback)(e=>{Ct(e);try{window.localStorage.setItem(at,String(e))}catch{}},[]),Xt=(0,R.useCallback)(e=>{if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`&&e.key!==`Home`)return;e.preventDefault();let t=Et.current?.clientWidth??0,n=e.key===`Home`?ot:St+(e.key===`ArrowLeft`?2:-2);Yt(st(n,t))},[St,Yt]),Zt=(0,R.useCallback)(e=>{if(!window.matchMedia(`(min-width: 1024px)`).matches)return;let t=Et.current;if(!t)return;e.preventDefault();let n=e.currentTarget,r=e.pointerId;n.setPointerCapture(r),Tt(!0);let i=St,a=0,o=()=>{a=0,t.style.setProperty(`--task-chat-panel-width`,`${i}%`)},s=e=>{let n=t.getBoundingClientRect();i=st((n.right-e.clientX)/n.width*100,n.width),a===0&&(a=window.requestAnimationFrame(o))},c=()=>{a!==0&&(window.cancelAnimationFrame(a),o());try{n.releasePointerCapture(r)}catch{}Tt(!1),Yt(i),window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),window.addEventListener(`pointercancel`,c)},[St,Yt]),Qt=(0,R.useCallback)(async t=>{let n=U.current;if(n){G(`dependencies`,!0),z(null);try{await P(await Te(e,t,n.task.version),{revalidate:!1})}catch{z(y.dependencyUpdateFailed)}finally{G(`dependencies`,!1)}}},[y.dependencyUpdateFailed,P,G,e]),$t=(0,R.useCallback)(async t=>{let n=U.current;if(!(!n||!t||t===n.conversation.currentExecutorAgentId)){G(`delegateAgentId`,!0),z(null);try{await P(await De(e,t,n.task.version),{revalidate:!1})}catch{z(y.actionFailed)}finally{G(`delegateAgentId`,!1)}}},[y.actionFailed,P,G,e]),en=(0,R.useCallback)(async()=>{G(`delete`,!0),z(null);try{await Ee(e),r?r():c(Bt,{replace:!0})}catch(e){z(e instanceof Error?e.message:y.actionFailed)}finally{G(`delete`,!1)}},[y.actionFailed,c,r,Bt,G,e]),tn=(0,R.useCallback)(async(t,n)=>{let r=U.current;if(r){G(`acceptance`,!0),z(null);try{await P(await be(e,t,n,r.task.version,r.task.latestContractVersion),{revalidate:!1})}catch{z(y.actionFailed),await P()}finally{G(`acceptance`,!1)}}},[y.actionFailed,P,G,e]);if((0,R.useLayoutEffect)(()=>{if(t!==`modal`)return ie({startExtra:(0,L.jsx)(o,{to:Bt,className:`flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover`,"aria-label":y.backToWork,children:(0,L.jsx)(g,{className:`size-4`})}),main:N?(0,L.jsx)(`p`,{className:`truncate text-sm font-semibold text-fg`,children:V?`${V} / ${y.taskLabel}`:y.taskLabel}):null,end:null}),M},[M,y.backToWork,y.taskLabel,N,t,V,Bt,ie]),ce&&!N)return(0,L.jsx)(`div`,{className:t===`modal`?`p-5 text-sm text-danger`:`mx-auto max-w-3xl p-6 text-sm text-danger`,children:y.taskNotFound});if(!N)return(0,L.jsx)(`div`,{className:t===`modal`?`p-5`:`mx-auto max-w-4xl p-4 sm:p-6`,children:(0,L.jsx)(Xe,{})});let nn=N.waits[0],J=ge(N),rn=J.length>0&&J.every(e=>e.status===`passed`),an=N.waits.find(e=>e.kind===`paused`),Y=he(N),on=ve(N),sn=y.detailStatuses[on],cn=de(N.task.body?.trim()||N.task.contract?.objective.trim()||``),ln=N.allowedCommands.includes(`mark_ready`),un=N.allowedCommands.includes(`start`),dn=N.allowedCommands.includes(`add_wait`),fn=!nn&&rn&&N.task.phase===`review`&&N.allowedCommands.includes(`close`),pn=N.allowedCommands.includes(`reopen`),X=N.conversation.activeConversationId,mn=N.conversation.currentExecutorAgentId??N.task.delegateAgentId??N.task.ownerId,hn=pt.find(e=>e.id===mn),gn=!!(X&&oe[X]?.open),_n=N.attention.some(e=>e.kind===`input_required`||e.kind===`approval_required`),vn=J.filter(e=>e.status===`passed`).length,yn=N.context.filter(e=>e.role===`deliverable`),bn=new Set(N.runs.filter(e=>e.contractVersion===N.task.latestContractVersion).map(e=>e.id)),xn=[...new Map(N.receipts.filter(e=>bn.has(e.runId)).flatMap(e=>e.evidence.filter(e=>e.kind===`artifact`)).map(e=>[e.uri??e.title,e])).values()],Sn=N.context.filter(e=>e.role!==`deliverable`),Cn=We?.automations.filter(t=>t.action.kind===`task_command`&&t.action.taskId===e)??[],Z=N.sessions.filter((e,t,n)=>n.findIndex(t=>t.conversationId===e.conversationId)===t),wn=N.task.contract?.expectedOutputs??[],Tn=N.task.contract?.constraints??[],En=N.task.contract?.approvalRequired??[],Dn=N.task.contract?.assumptions??[],On=N.task.contract?.risks??[],kn=Tn.length>0||En.length>0||Dn.length>0||On.length>0,Q=(...e)=>!!Pt?.changedFields.some(t=>e.includes(t)),An=N.allowedCommands.includes(`move`),$=B.has(`command`),jn=B.has(`delete`),Mn=N.runs.find(e=>!e.parentRunId&&[`queued`,`running`,`waiting`,`verifying`].includes(e.status)),Nn=Mn!==void 0,Pn=`/automations?action=create&taskId=${encodeURIComponent(N.task.id)}${N.task.projectId?`&projectId=${encodeURIComponent(N.task.projectId)}`:``}`,Fn=(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[ln?(0,L.jsxs)(j,{className:`min-h-9 px-3 py-1.5 text-xs`,variant:`primary`,disabled:$,onClick:()=>void K({type:`mark_ready`}),children:[(0,L.jsx)(re,{className:`size-4`}),y.scheduleTask]}):null,an&&N.allowedCommands.includes(`resolve_wait`)?(0,L.jsxs)(j,{className:`min-h-9 px-3 py-1.5 text-xs`,variant:`primary`,disabled:$,onClick:()=>void K({type:`resolve_wait`,waitId:an.id}),children:[(0,L.jsx)(re,{className:`size-4`}),y.resumeTask]}):null,!nn&&un&&mn?(0,L.jsxs)(j,{className:`min-h-9 px-3 py-1.5 text-xs`,variant:`primary`,disabled:$,onClick:()=>void K({type:`start`,executor:{kind:`agent`,agentId:mn}}),children:[(0,L.jsx)(re,{className:`size-4`}),y.runTask]}):null,fn?(0,L.jsxs)(j,{className:`min-h-9 px-3 py-1.5 text-xs`,variant:`primary`,disabled:$,onClick:()=>void K({type:`close`,resolution:`done`}),children:[(0,L.jsx)(b,{className:`size-4`}),y.approveTask]}):null,pn?(0,L.jsxs)(j,{className:`min-h-9 px-3 py-1.5 text-xs`,variant:`primary`,disabled:$,onClick:()=>void K({type:`reopen`,phase:`ready`}),children:[(0,L.jsx)(re,{className:`size-4`}),y.reopenTask]}):null,!an&&dn?(0,L.jsxs)(j,{variant:`ghost`,className:`min-h-9 px-3 py-1.5 text-xs`,disabled:$,onClick:()=>void K({type:`add_wait`,wait:{kind:`paused`,reason:`Paused by user`,condition:{}}}),children:[(0,L.jsx)(ne,{className:`size-4`}),y.pauseTask]}):null,N.task.phase===`closed`?null:(0,L.jsx)(j,{asChild:!0,variant:`ghost`,className:`min-h-9 px-3 py-1.5 text-xs`,children:(0,L.jsxs)(o,{to:Pn,children:[(0,L.jsx)(_,{className:`size-4`}),y.scheduleRecurringTask]})}),(0,L.jsxs)(Me,{children:[(0,L.jsx)(Ne,{asChild:!0,children:(0,L.jsx)(j,{type:`button`,variant:`ghost`,className:`size-9 p-0`,disabled:$||jn,"aria-label":y.moreActions,children:(0,L.jsx)(C,{className:`size-4`,"aria-hidden":!0})})}),(0,L.jsx)(Pe,{children:(0,L.jsxs)(Ie,{align:`end`,sideOffset:6,className:`z-[100] min-w-44 rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover`,children:[Mn?(0,L.jsx)(Fe,{className:`cursor-pointer rounded-md px-3 py-2 text-sm text-danger outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:()=>{G(`command`,!0),z(null),P(Ce(e,Mn.id,Mn.version),{revalidate:!1}).catch(()=>z(y.actionFailed)).finally(()=>G(`command`,!1))},children:y.cancelActiveRun}):null,Mn?(0,L.jsx)(Le,{className:`my-1 h-px bg-edge`}):null,N.task.phase===`closed`?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Fe,{className:`cursor-pointer rounded-md px-3 py-2 text-sm text-danger outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:()=>void K({type:`close`,resolution:`cancelled`}),children:y.cancelTask}),(0,L.jsx)(Le,{className:`my-1 h-px bg-edge`})]}),(0,L.jsx)(Fe,{className:`cursor-pointer rounded-md px-3 py-2 text-sm text-danger outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:()=>{if(Nn){z(y.deleteActiveTaskBlocked);return}Lt(!0)},children:y.deleteTask})]})})]})]});return(0,L.jsxs)(`div`,{ref:Et,className:`flex h-full min-h-0 flex-col overflow-hidden ${wt?`lg:cursor-col-resize lg:select-none`:``}`,style:{"--task-chat-panel-width":`${St}%`},children:[(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto lg:flex-row lg:overflow-hidden`,children:[(0,L.jsxs)(`div`,{className:`task-detail-scroll flex min-w-0 shrink-0 flex-col lg:min-h-0 lg:flex-1 lg:shrink lg:overflow-y-auto lg:overscroll-contain`,children:[(0,L.jsxs)(`header`,{className:A(`shrink-0 border-b border-edge-subtle bg-surface-panel px-5 py-4 sm:px-6`,Q(`title`)&&`task-detail-live-update`),children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-x-6 gap-y-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-fg-muted`,children:[V?(0,L.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,L.jsx)(te,{className:`size-3.5`,"aria-hidden":!0}),V]}):null,V?(0,L.jsx)(`span`,{"aria-hidden":`true`,children:`/`}):null,(0,L.jsx)(`span`,{children:y.taskLabel}),Pt?(0,L.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,role:`status`,children:Pt.source===`agent`?d===`zh`?`Agent 刚刚更新`:`Updated by Agent`:d===`zh`?`执行结果已同步`:`Execution result synced`}):null]}),ht?(0,L.jsx)(`textarea`,{autoFocus:!0,"data-task-inline-editor":!0,"aria-label":d===`zh`?`任务标题`:`Task title`,rows:2,value:_t,onFocus:e=>{At.current?.value===_t&&(e.currentTarget.setSelectionRange(0,0),e.currentTarget.scrollTop=0)},onChange:e=>vt(e.target.value),onBlur:()=>void Wt(),onKeyDown:e=>{e.nativeEvent.isComposing||(e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),Ut()):e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),e.currentTarget.blur()))},className:`mt-2 block max-h-56 min-h-14 w-full max-w-3xl resize-none overflow-y-auto bg-transparent p-0 text-xl font-semibold leading-7 text-fg outline-none [field-sizing:content]`}):(0,L.jsx)(F,{content:N.task.title,contentKey:`${e}:title`,language:d,previewHeight:56,className:`mt-2 max-w-3xl`,children:(0,L.jsx)(`h1`,{className:`break-words text-xl font-semibold leading-7 text-fg`,children:(0,L.jsx)(`button`,{type:`button`,className:`max-w-full whitespace-pre-wrap break-words [overflow-wrap:anywhere] rounded-sm text-left outline-none hover:bg-surface-hover/60 focus-visible:ring-2 focus-visible:ring-accent/40`,title:N.task.title,onClick:Ht,children:N.task.title})})}),Nt===`title`?(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs text-warning`,role:`alert`,children:[(0,L.jsx)(`span`,{children:d===`zh`?`Agent 在你编辑期间更新了标题。`:`The Agent updated the title while you were editing.`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded-md bg-surface-hover px-2 py-1 text-fg`,onClick:Ut,children:d===`zh`?`使用 Agent 版本`:`Use Agent version`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded-md bg-accent-soft px-2 py-1 text-accent-fg`,disabled:B.has(`title`),onClick:()=>void Wt(!0),children:d===`zh`?`保留我的修改`:`Keep my changes`})]}):null]}),(0,L.jsx)(`span`,{className:A(`shrink-0 rounded-full px-2.5 py-1 text-xs font-medium`,_e(on)),children:sn})]}),(0,L.jsx)(f,{detail:N,language:d}),(0,L.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-fg-muted`,children:[(0,L.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:[mn?(0,L.jsx)(ke,{agentId:mn,avatar:hn?.avatar,size:20,className:`shrink-0`}):null,(0,L.jsxs)(`span`,{className:`min-w-0 break-words [overflow-wrap:anywhere]`,children:[y.executorLabel,` · `,hn?.name??mn??y.unassigned]})]}),(0,L.jsx)(`span`,{className:`text-fg-subtle`,children:y.updatedAt.replace(`{{date}}`,Be(N.task.updatedAt,d))})]}),(0,L.jsx)(`div`,{className:`mt-4 border-t border-edge-subtle pt-3`,children:Fn}),I?(0,L.jsx)(`p`,{className:`mt-3 text-sm text-danger`,children:I}):null]}),(0,L.jsxs)(`section`,{className:`min-w-0 p-5 sm:p-6`,children:[(0,L.jsxs)(`section`,{className:`mb-4 overflow-hidden rounded-xl border border-edge-subtle bg-surface-panel shadow-surface`,children:[(0,L.jsxs)(`div`,{className:`border-b border-edge-subtle p-5`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:d===`zh`?`目标与验收`:`Goal and acceptance`}),J.length>0?(0,L.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs text-fg-muted`,children:y.criteriaProgress.replace(`{{verified}}`,String(vn)).replace(`{{total}}`,String(J.length))}):null]}),(0,L.jsx)(F,{content:N.task.contract?.objective||N.task.title,contentKey:`${e}:goal`,language:d,markdown:!1,previewHeight:72,className:`mt-3 text-sm leading-6 text-fg`})]}),(0,L.jsxs)(`div`,{className:`p-5`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:y.successDefinition}),J.length>0?(0,L.jsx)(`ul`,{className:`mt-3 space-y-3`,children:J.map((t,n)=>(0,L.jsxs)(`li`,{className:`flex items-start gap-2.5 text-sm leading-5 text-fg`,children:[(0,L.jsx)(t.status===`passed`?b:t.status===`failed`?x:S,{className:A(`mt-0.5 size-4 shrink-0`,t.status===`passed`?`text-success`:t.status===`failed`?`text-danger`:`text-fg-subtle`),"aria-hidden":!0}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(F,{content:t.text,contentKey:`${e}:criterion:${n}`,language:d,markdown:!1,previewHeight:60}),t.evidence.length>0?(0,L.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-x-2 text-xs leading-5 text-fg-muted`,children:[(0,L.jsx)(`span`,{children:d===`zh`?`依据:`:`Evidence:`}),t.evidence.map(e=>e.uri&&/^https?:\/\//.test(e.uri)?(0,L.jsx)(`a`,{className:`text-accent hover:underline`,href:e.uri,target:`_blank`,rel:`noreferrer`,children:e.title},e.title):(0,L.jsx)(`span`,{children:e.title},e.title))]}):null,t.review?(0,L.jsxs)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[d===`zh`?`人工判定`:`Reviewed by user`,` · `,Be(t.review.reviewedAt,d)]}):null,t.method===`model_reviewed`?(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:d===`zh`?`模型审阅:${t.verificationStatus===`passed`?`通过`:t.verificationStatus===`failed`?`未通过`:`未核验`}`:`Model review: ${t.verificationStatus===`passed`?`passed`:t.verificationStatus===`failed`?`failed`:`unverified`}`}):null,t.note?(0,L.jsx)(F,{content:t.note,contentKey:`${e}:criterion-note:${n}`,language:d,markdown:!1,previewHeight:60,className:`mt-1 text-xs text-fg-muted`}):null]}),N.task.phase!==`closed`&&N.task.contract?.acceptancePolicy!==`verified_auto`?(0,L.jsxs)(Me,{children:[(0,L.jsx)(Ne,{asChild:!0,children:(0,L.jsx)(j,{type:`button`,variant:`ghost`,className:`h-7 shrink-0 px-2 text-xs`,disabled:B.has(`acceptance`),children:d===`zh`?`判定`:`Review`})}),(0,L.jsx)(Pe,{children:(0,L.jsxs)(Ie,{align:`end`,sideOffset:4,className:`z-[100] min-w-32 rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover`,children:[(0,L.jsx)(Fe,{className:`cursor-pointer rounded-md px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:()=>void tn(n,`passed`),children:d===`zh`?`确认通过`:`Mark passed`}),(0,L.jsx)(Fe,{className:`cursor-pointer rounded-md px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,onSelect:()=>void tn(n,`failed`),children:d===`zh`?`标记未通过`:`Mark failed`})]})})]}):null]},`${n}-${t.text}`))}):(0,L.jsx)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:y.noDefinition})]})]}),N.attention.length>0?(0,L.jsxs)(`section`,{className:A(`mb-4 rounded-xl border border-warning/20 bg-warning/10 p-4`,Q(`attention`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:_n?y.needsAttention:y.waitingStatus}),(0,L.jsx)(`ul`,{className:`mt-2 space-y-1.5 text-sm leading-6 text-fg-muted`,children:N.attention.map((t,n)=>(0,L.jsxs)(`li`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,L.jsx)(F,{content:t.summary,contentKey:`${e}:attention:${t.kind}:${n}`,language:d,markdown:!1,previewHeight:72,className:`min-w-0 flex-1`}),t.kind===`input_required`||t.kind===`approval_required`?(0,L.jsx)(o,{className:`inline-flex min-h-11 items-center rounded-lg bg-surface-panel px-3 text-sm font-medium text-accent`,to:E(e),children:d===`zh`?t.kind===`approval_required`?`查看并决定`:`补充信息`:t.kind===`approval_required`?`Review decision`:`Provide information`}):null]},`${t.kind}-${n}`))})]}):null,N.allowedCommands.includes(`resolve_wait`)&&!an&&N.waits.filter(e=>(e.kind===`user_input`||e.kind===`approval`&&typeof e.condition.capability==`string`)&&e.condition.type!==`connection`).map(e=>(0,L.jsx)(Ve,{wait:e,detail:N,zh:d===`zh`,onUpdated:e=>{P(e,{revalidate:!1})}},e.id)),(0,L.jsx)(`div`,{className:`mb-4`,children:(0,L.jsx)(Ge,{changes:N.phaseChanges,language:d})}),(0,L.jsx)(`div`,{className:`mb-4`,children:(0,L.jsx)(qe,{taskId:e},e)}),yn.length>0||xn.length>0||wn.length>0?(0,L.jsxs)(`section`,{className:`mb-4 rounded-xl border border-edge-subtle bg-surface-panel p-5 shadow-surface`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:d===`zh`?`交付物`:`Deliverables`}),yn.length>0||xn.length>0?(0,L.jsxs)(`ul`,{className:`mt-3 space-y-2`,children:[yn.map(t=>(0,L.jsxs)(`li`,{className:`rounded-lg bg-surface-hover p-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`block text-xs text-fg-muted`,children:y.contextKindLabels[t.targetKind]}),t.targetKind===`url`&&/^https?:\/\//.test(t.targetId)?(0,L.jsx)(F,{content:t.title??t.targetId,contentKey:`${e}:deliverable:${t.id}`,language:d,previewHeight:60,className:`mt-1`,children:(0,L.jsx)(`a`,{className:`block break-all text-accent hover:underline`,href:t.targetId,target:`_blank`,rel:`noreferrer`,children:t.title??t.targetId})}):(0,L.jsx)(F,{content:t.title??t.targetId,contentKey:`${e}:deliverable:${t.id}`,language:d,markdown:!1,previewHeight:60,className:`mt-1 text-fg`})]},t.id)),xn.map(t=>(0,L.jsxs)(`li`,{className:`rounded-lg bg-surface-hover p-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`block text-xs text-fg-muted`,children:d===`zh`?`执行产物(待检查)`:`Run artifact (review needed)`}),t.uri&&/^https?:\/\//.test(t.uri)?(0,L.jsx)(F,{content:t.title,contentKey:`${e}:artifact:${t.uri??t.title}`,language:d,previewHeight:60,className:`mt-1`,children:(0,L.jsx)(`a`,{className:`block break-all text-accent hover:underline`,href:t.uri,target:`_blank`,rel:`noreferrer`,children:t.title})}):(0,L.jsx)(F,{content:t.title,contentKey:`${e}:artifact:${t.uri??t.title}`,language:d,markdown:!1,previewHeight:60,className:`mt-1 text-fg`})]},t.uri??t.title))]}):(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:d===`zh`?`尚未关联交付物`:`No deliverables linked yet`}),wn.length>0?(0,L.jsxs)(`div`,{className:`mt-4 border-t border-edge-subtle pt-3`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:y.expectedOutputs}),(0,L.jsx)(`div`,{className:`mt-2`,children:(0,L.jsx)(lt,{contentKey:`${e}:expectedOutputs`,items:wn,empty:y.noDefinition})})]}):null]}):null,(0,L.jsxs)(`section`,{className:`mb-4 rounded-xl border border-edge-subtle bg-surface-panel p-5 shadow-surface`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:d===`zh`?`关联内容`:`Related work`}),Z.length>0||N.runs.length>0||Cn.length>0||N.dependencies.length>0||N.dependents.length>0?(0,L.jsxs)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[Z.length>0?(0,L.jsxs)(`div`,{className:`rounded-lg bg-surface-hover p-3`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:d===`zh`?`对话 · ${Z.length}`:`Conversations · ${Z.length}`}),(0,L.jsx)(Ke,{contentKey:`${e}:sessions`,language:d,className:`mt-2`,children:Z.map(t=>(0,L.jsx)(`li`,{children:(0,L.jsx)(o,{className:`block break-words [overflow-wrap:anywhere] text-sm text-accent hover:underline`,to:t.conversationId===X?E(e):`/chat/${encodeURIComponent(t.conversationId)}`,children:t.conversationId===X?d===`zh`?`当前执行对话`:`Current execution chat`:t.role===`discussion`?d===`zh`?`关联讨论`:`Linked discussion`:d===`zh`?`历史执行对话`:`Earlier execution chat`})},t.id))})]}):null,Cn.length>0?(0,L.jsxs)(`div`,{className:`rounded-lg bg-surface-hover p-3`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:d===`zh`?`自动化 · ${Cn.length}`:`Automations · ${Cn.length}`}),(0,L.jsx)(Ke,{contentKey:`${e}:automations`,language:d,className:`mt-2`,children:Cn.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(o,{className:`block break-words [overflow-wrap:anywhere] text-sm text-accent hover:underline`,to:`/automations?automation=${encodeURIComponent(e.id)}`,children:e.name})},e.id))})]}):null,N.dependencies.length>0||N.dependents.length>0?(0,L.jsxs)(`div`,{className:`rounded-lg bg-surface-hover p-3`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:y.taskRelations}),(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg`,children:d===`zh`?`${N.dependencies.length} 个前置任务 · ${N.dependents.length} 个后续任务`:`${N.dependencies.length} prerequisites · ${N.dependents.length} dependents`})]}):null]}):(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:d===`zh`?`还没有关联内容`:`No related work yet`}),(0,L.jsx)(`div`,{className:`mt-4 border-t border-edge-subtle pt-3`,children:(0,L.jsx)(Ue,{resource:{kind:`task`,id:N.task.id,revision:String(N.task.version)},disabled:ht||yt||B.size>0})})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,L.jsxs)(`main`,{className:`min-w-0 overflow-hidden rounded-xl bg-surface-panel shadow-surface divide-y divide-edge-subtle`,children:[(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`body`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.taskDescription}),yt?(0,L.jsx)(`textarea`,{autoFocus:!0,"data-task-inline-editor":!0,rows:6,value:bt,onChange:e=>xt(e.target.value),onBlur:()=>void Gt(),onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Ot.current=!0,xt(de(N.task.body??N.task.contract?.objective??``)),H(!1),queueMicrotask(()=>{Ot.current=!1}))},className:`mt-3 w-full resize-y rounded-lg bg-surface-hover px-3 py-2 text-sm leading-6 text-fg outline-none ring-2 ring-accent/20 focus:ring-accent/50`}):(0,L.jsxs)(`div`,{className:`mt-2`,children:[cn&&cn!==N.task.title?(0,L.jsx)(F,{content:cn,contentKey:`${e}:description`,language:d}):(0,L.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:y.noTaskDescription}),(0,L.jsx)(`button`,{type:`button`,className:`mt-2 rounded-md px-2 py-1 text-xs text-accent hover:bg-surface-hover focus-visible:bg-surface-hover`,onClick:()=>{let e=de(N.task.body??N.task.contract?.objective??``);kt.current=e,jt.current={value:N.task.body??``,version:N.task.version},W(null),xt(e),H(!0)},children:d===`zh`?`编辑说明`:`Edit description`})]}),Nt===`description`?(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs text-warning`,role:`alert`,children:[(0,L.jsx)(`span`,{children:d===`zh`?`Agent 在你编辑期间更新了描述。`:`The Agent updated the description while you were editing.`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded-md bg-surface-hover px-2 py-1 text-fg`,onClick:()=>{xt(de(N.task.body??``)),W(null),H(!1)},children:d===`zh`?`使用 Agent 版本`:`Use Agent version`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded-md bg-accent-soft px-2 py-1 text-accent-fg`,onClick:()=>void q({body:fe(N.task.body??``,bt.trim())||null}).then(e=>{e&&(W(null),H(!1))}),children:d===`zh`?`保留我的修改`:`Keep my changes`})]}):null]}),kn?(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`contract`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.taskDefinition}),(0,L.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-muted`,children:d===`zh`?`执行边界及补充背景`:`Execution boundaries and supporting context`}),Tn.length>0?(0,L.jsxs)(`details`,{className:`mt-4 border-t border-edge-subtle pt-4`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg-muted hover:text-fg`,children:y.constraints}),(0,L.jsx)(`div`,{className:`mt-3`,children:(0,L.jsx)(lt,{contentKey:`${e}:constraints`,items:Tn,empty:y.noDefinition})})]}):null,En.length>0?(0,L.jsxs)(`details`,{className:`mt-4 border-t border-edge-subtle pt-4`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg-muted hover:text-fg`,children:y.approvalRequired}),(0,L.jsx)(`div`,{className:`mt-3`,children:(0,L.jsx)(lt,{contentKey:`${e}:approvalRequired`,items:En,empty:y.noDefinition})})]}):null,Dn.length>0?(0,L.jsxs)(`details`,{className:`mt-4 border-t border-edge-subtle pt-4`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg-muted hover:text-fg`,children:y.contextAssumptions}),(0,L.jsx)(`div`,{className:`mt-3`,children:(0,L.jsx)(lt,{contentKey:`${e}:assumptions`,items:Dn,empty:y.noDefinition})})]}):null,On.length>0?(0,L.jsxs)(`details`,{className:`mt-4 border-t border-edge-subtle pt-4`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg-muted hover:text-fg`,children:y.contextRisks}),(0,L.jsx)(`div`,{className:`mt-3`,children:(0,L.jsx)(lt,{contentKey:`${e}:risks`,items:On,empty:y.noDefinition})})]}):null]}):null,Y?(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`runs`,`receipts`)&&`task-detail-live-update`),children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.latestResult}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:d===`zh`?Y.completionVerdict===`achieved`?`本次执行报告目标已达成,请结合下方验证依据验收。`:`这是阶段性结果,尚不能代表任务全部完成。`:Y.completionVerdict===`achieved`?`The run reports the goal achieved. Review the evidence below.`:`This is a partial result; the task is not yet fully complete.`})]}),(0,L.jsxs)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs text-fg-muted`,children:[y.receiptStatuses[Y.status],` · `,y.verificationStatuses[Y.verification.status]]})]}),(0,L.jsx)(F,{content:Y.summary,contentKey:`${e}:result:${Y.runId}`,language:d,className:`mt-3`}),Y.remainingWork.length>0?(0,L.jsxs)(`div`,{className:`mt-4`,children:[(0,L.jsx)(`h3`,{className:`text-xs font-medium text-fg-muted`,children:y.remainingWork}),(0,L.jsx)(`div`,{className:`mt-2`,children:(0,L.jsx)(lt,{contentKey:`${e}:remaining:${Y.runId}`,items:Y.remainingWork,empty:y.noRemainingWork})})]}):null,Y.nextAction?(0,L.jsxs)(`div`,{className:`mt-4 rounded-lg bg-surface-hover p-3`,children:[(0,L.jsx)(`p`,{className:`text-xs font-medium text-fg-muted`,children:y.nextAction}),(0,L.jsx)(F,{content:Y.nextAction,contentKey:`${e}:next:${Y.runId}`,language:d,markdown:!1,previewHeight:72,className:`mt-1 text-sm text-fg`})]}):null,(0,L.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(j,{className:`border-0 bg-surface-hover px-2 py-1 text-xs shadow-none`,variant:`secondary`,onClick:()=>void Se(Y.runId,`helpful`),children:y.doneWell}),(0,L.jsx)(j,{className:`px-2 py-1 text-xs`,variant:`ghost`,onClick:()=>void Se(Y.runId,`not_helpful`),children:y.needsFix})]}),(0,L.jsx)(He,{evidence:Y.evidence,projectId:N.task.projectId,conversationId:X??void 0,language:d}),N.receipts.length>1?(0,L.jsxs)(`details`,{className:`mt-4 border-t border-edge-subtle pt-4`,children:[(0,L.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg-muted hover:text-fg`,children:y.executionHistory.replace(`{{count}}`,String(N.receipts.length-1))}),(0,L.jsx)(`div`,{className:`mt-3 space-y-3`,children:N.receipts.slice(1).map(t=>(0,L.jsx)(`article`,{className:`rounded-lg bg-surface-hover p-3`,children:(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,L.jsx)(F,{content:t.summary,contentKey:`${e}:result:${t.runId}`,language:d,className:`min-w-0 flex-1`}),(0,L.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:y.receiptStatuses[t.status]})]})},t.runId))})]}):null]}):null,Sn.length>0?(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`context`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.contextUsed}),(0,L.jsx)(`ul`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:Sn.map(e=>(0,L.jsxs)(`li`,{className:`min-w-0 rounded-lg bg-surface-hover p-2.5`,children:[(0,L.jsxs)(`span`,{className:`text-[11px] text-fg-subtle`,children:[y.contextRoleLabels[e.role],` · `,y.contextKindLabels[e.targetKind]]}),e.targetKind===`url`&&/^https?:\/\//.test(e.targetId)?(0,L.jsx)(`a`,{className:`mt-1 block break-all text-sm text-accent hover:underline`,href:e.targetId,target:`_blank`,rel:`noreferrer`,children:e.title??e.targetId}):(0,L.jsx)(`p`,{className:`mt-1 break-words text-sm text-fg`,children:e.title??e.targetId})]},e.id))})]}):null]}),(0,L.jsxs)(`aside`,{className:`min-w-0 overflow-hidden rounded-xl bg-surface-panel shadow-surface divide-y divide-edge-subtle`,children:[(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`phase`,`resolution`,`priority`,`dueAt`,`delegateAgentId`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.taskProperties}),(0,L.jsxs)(`div`,{className:`mt-4 grid gap-3 sm:grid-cols-2`,children:[(0,L.jsx)(et,{value:N.task.phase,disabled:B.has(`phase`),canMove:An,canApprove:fn,canReopen:pn,language:d,label:y.taskPhase,onChange:Kt}),(0,L.jsx)(tt,{value:N.task.priority,disabled:B.has(`priority`),label:y.priority,labels:y.priorityLabels,onChange:qt}),(0,L.jsx)(nt,{value:Ze(N.task.dueAt),disabled:B.has(`dueAt`),label:y.dueDate,onChange:Jt}),(0,L.jsx)(rt,{value:N.conversation.currentExecutorAgentId??``,disabled:B.has(`delegateAgentId`),label:y.executorLabel,unassignedLabel:y.unassigned,agents:pt,onChange:$t})]})]}),(0,L.jsxs)(`section`,{className:A(`p-5`,Q(`dependencies`)&&`task-detail-live-update`),children:[(0,L.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:y.taskRelations}),(0,L.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:y.dependencies}),(0,L.jsx)(it,{candidates:ut,selected:N.dependencies,disabled:B.has(`dependencies`),labels:Rt,getTaskHref:Vt,onChange:Qt})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:y.dependents}),N.dependents.length>0?(0,L.jsx)(`div`,{className:`space-y-1.5`,children:N.dependents.map(t=>(0,L.jsx)(F,{content:t.title,contentKey:`${e}:dependent:${t.id}`,language:d,previewHeight:72,className:`rounded-lg bg-surface-hover p-2.5`,children:(0,L.jsx)(o,{to:Vt(t.id),className:`block break-words [overflow-wrap:anywhere] text-sm text-fg-muted transition-colors hover:text-fg`,children:t.title})},t.id))}):(0,L.jsx)(`p`,{className:`text-sm text-fg-subtle`,children:y.noDependents})]})]})]})]})]})]})]}),(0,L.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":d===`zh`?`调整任务信息和 Agent 对话的宽度`:`Resize task details and Agent chat`,"aria-valuemin":30,"aria-valuemax":60,"aria-valuenow":Math.round(St),tabIndex:0,onPointerDown:Zt,onKeyDown:Xt,onDoubleClick:()=>Yt(ot),className:`group hidden w-2 shrink-0 cursor-col-resize touch-none items-stretch justify-center bg-surface-panel outline-none transition-colors hover:bg-surface-hover focus-visible:bg-surface-hover lg:flex ${wt?`bg-surface-hover`:``}`,children:(0,L.jsx)(`div`,{className:`w-px bg-edge-strong/70 transition-colors group-hover:bg-accent group-focus-visible:bg-accent`})}),(0,L.jsxs)(`aside`,{className:`flex min-h-[34rem] min-w-0 shrink-0 flex-col border-t border-edge-subtle bg-surface-panel lg:min-h-0 lg:w-[var(--task-chat-panel-width)] lg:border-t-0`,children:[(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge-subtle px-4 py-3`,children:[(0,L.jsx)(`h2`,{className:`text-sm font-medium text-fg-muted`,children:d===`zh`?`执行对话`:`Execution chat`}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[Z.length>1?(0,L.jsxs)(Me,{children:[(0,L.jsx)(Ne,{asChild:!0,children:(0,L.jsx)(j,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,children:d===`zh`?`${Z.length} 段对话`:`${Z.length} conversations`})}),(0,L.jsx)(Pe,{children:(0,L.jsx)(Ie,{align:`end`,sideOffset:6,className:`z-[100] min-w-52 rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover`,children:Z.map(t=>(0,L.jsx)(Fe,{asChild:!0,children:(0,L.jsx)(o,{className:`block rounded-md px-3 py-2 text-sm text-fg outline-none hover:bg-surface-hover focus:bg-surface-hover`,to:t.conversationId===X?E(e):`/chat/${encodeURIComponent(t.conversationId)}`,children:t.conversationId===X?d===`zh`?`当前执行对话`:`Current execution chat`:t.role===`discussion`?d===`zh`?`关联讨论`:`Linked discussion`:d===`zh`?`历史执行对话`:`Earlier execution chat`})},t.id))})})]}):null,X?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(j,{type:`button`,variant:`ghost`,className:A(`size-8 p-0`,gn&&`bg-surface-hover text-fg`),"aria-label":d===`zh`?`项目文件`:`Project files`,"aria-pressed":gn,onClick:()=>{ae.getState().openFiles(X),se(X)},children:(0,L.jsx)(w,{className:`size-4`,"aria-hidden":!0})}),(0,L.jsx)(j,{asChild:!0,variant:`ghost`,className:`size-8 p-0`,children:(0,L.jsx)(o,{to:E(e),"aria-label":d===`zh`?`全屏打开对话`:`Open chat full screen`,children:(0,L.jsx)(ee,{className:`size-4`,"aria-hidden":!0})})})]}):null]})]}),X?(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,L.jsx)(m,{embedded:!0,conversationId:X,taskId:e})}):ye?(0,L.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-8 text-center`,children:(0,L.jsxs)(`div`,{className:`max-w-xs`,children:[(0,L.jsx)(k,{className:`mx-auto size-8 animate-pulse text-fg-subtle`}),(0,L.jsx)(`p`,{className:`mt-3 text-sm font-medium text-fg`,children:d===`zh`?`正在创建任务会话`:`Creating task conversation`})]})}):Re?(0,L.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-8 text-center`,children:(0,L.jsxs)(`div`,{className:`max-w-xs`,children:[(0,L.jsx)(k,{className:`mx-auto size-8 text-danger`}),(0,L.jsx)(`p`,{className:`mt-3 text-sm font-medium text-fg`,children:d===`zh`?`任务会话创建失败`:`Could not create task conversation`}),(0,L.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-muted`,children:Re instanceof Error?Re.message:String(Re)})]})}):(0,L.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-8 text-center`,children:(0,L.jsxs)(`div`,{className:`max-w-xs`,children:[(0,L.jsx)(k,{className:`mx-auto size-8 text-fg-subtle`}),(0,L.jsx)(`p`,{className:`mt-3 text-sm font-medium text-fg`,children:d===`zh`?`等待任务会话`:`Waiting for a task conversation`}),(0,L.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-muted`,children:d===`zh`?`安排或开始任务后,Agent 的执行过程和持续对话会显示在这里。`:`Schedule or start the task to see the agent run and continue the conversation here.`})]})})]})]}),(0,L.jsx)(je,{open:It,title:y.deleteTaskTitle,description:y.deleteTaskDescription.replace(`{{title}}`,N.task.title),confirmLabel:y.confirmDeleteTask,cancelLabel:y.keepTask,destructive:!0,onConfirm:()=>{Lt(!1),en()},onCancel:()=>Lt(!1)})]})}function ft(){let e=(0,I.c)(2),{taskId:t}=i(),n=t===void 0?``:t,r;return e[0]===n?r=e[1]:(r=(0,L.jsx)(V,{taskId:n,presentation:`page`}),e[0]=n,e[1]=r),r}function pt(e){let t=(0,I.c)(41),{taskId:n,backgroundPath:r,workspacePanelWidth:i,onClose:a}=e,o=i===void 0?0:i,s=u(_t),c=ye(gt),l=o>0,d;t[0]!==a||t[1]!==c?(d=e=>{e||(c(null),a())},t[0]=a,t[1]=c,t[2]=d):d=t[2];let f=s===`zh`?`关闭任务详情`:`Close task details`,p;t[3]!==a||t[4]!==c?(p=()=>{c(null),a()},t[3]=a,t[4]=c,t[5]=p):p=t[5];let m;t[6]!==f||t[7]!==p?(m=(0,L.jsx)(`button`,{type:`button`,tabIndex:-1,"data-task-modal-backdrop":!0,className:`fixed inset-0 z-[80] bg-black/45`,"aria-label":f,onClick:p}),t[6]=f,t[7]=p,t[8]=m):m=t[8];let h=l?`true`:`false`,g=`${o/2}px`,_=`${o}px`,v;t[9]!==g||t[10]!==_?(v={"--task-detail-workspace-offset":g,"--task-detail-workspace-width":_},t[9]=g,t[10]=_,t[11]=v):v=t[11];let y=v,b=s===`zh`?`任务详情`:`Task details`,x;t[12]===b?x=t[13]:(x=(0,L.jsx)(P,{className:`font-medium text-fg`,children:b}),t[12]=b,t[13]=x);let S=s===`zh`?`查看并操作任务详情`:`View and manage task details`,C;t[14]===S?C=t[15]:(C=(0,L.jsx)(oe,{className:`sr-only`,children:S}),t[14]=S,t[15]=C);let ee=s===`zh`?`关闭任务详情`:`Close task details`,te;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,L.jsx)(ie,{className:`size-4`,"aria-hidden":!0}),t[16]=te):te=t[16];let w;t[17]===ee?w=t[18]:(w=(0,L.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:(0,L.jsx)(se,{className:`flex size-8 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":ee,children:te})}),t[17]=ee,t[18]=w);let T;t[19]!==x||t[20]!==C||t[21]!==w?(T=(0,L.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-3 bg-surface-panel px-5 py-3.5`,children:[x,C,w]}),t[19]=x,t[20]=C,t[21]=w,t[22]=T):T=t[22];let E;t[23]!==a||t[24]!==c?(E=()=>{c(null),a()},t[23]=a,t[24]=c,t[25]=E):E=t[25];let D;t[26]!==r||t[27]!==E||t[28]!==n?(D=(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,L.jsx)(V,{taskId:n,presentation:`modal`,backgroundPath:r,onDeleted:E})}),t[26]=r,t[27]=E,t[28]=n,t[29]=D):D=t[29];let O;t[30]!==y||t[31]!==T||t[32]!==D||t[33]!==h?(O=(0,L.jsxs)(ce,{className:`xopc-dialog-content task-detail-modal-content fixed top-1/2 z-[90] flex h-[min(54rem,calc(100dvh-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,"data-workspace-panel-open":h,style:y,onEscapeKeyDown:ht,onInteractOutside:mt,children:[T,D]}),t[30]=y,t[31]=T,t[32]=D,t[33]=h,t[34]=O):O=t[34];let k;t[35]!==O||t[36]!==m?(k=(0,L.jsxs)(N,{children:[m,O]}),t[35]=O,t[36]=m,t[37]=k):k=t[37];let ne;return t[38]!==d||t[39]!==k?(ne=(0,L.jsx)(le,{modal:!1,open:!0,onOpenChange:d,children:k}),t[38]=d,t[39]=k,t[40]=ne):ne=t[40],ne}function mt(e){let t=e.detail.originalEvent.target;t instanceof Element&&t.closest(`#app-workspace-panel, [data-task-modal-backdrop]`)&&e.preventDefault()}function ht(e){let t=e.target;t instanceof HTMLElement&&t.closest(`[data-task-inline-editor]`)&&e.preventDefault()}function gt(e){return e.setPath}function _t(e){return e.language}function vt(e){return(0,L.jsx)(y,{value:e.id,children:e.name||e.id},e.id)}function yt(e){return e.id}export{pt as TaskDetailModal,ft as TaskDetailPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./tool-activity-BtJkgjFf.js";function t(e){if(typeof e==`string`)try{return t(JSON.parse(e))}catch{return null}return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function n(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>t[n]??``)}function r(e){return e.trim().toLowerCase().replace(/-/g,`_`).split(`__`).at(-1)?.split(`.`).at(-1)??``}var i={automation:`automation`,browser_automation:`browser`,browser_use:`browser`,clarify:`clarification`,computer_use:`computer`,create_desktop_pet:`desktopPet`,create_share:`share`,delegate_task:`delegation`,image_generate:`imageGeneration`,image:`imageInspection`,language_diagnostics:`diagnostics`,managed_job:`job`,memory_maintenance:`memoryMaintenance`,knowledge_get:`memoryRead`,knowledge_write:`memoryUpdate`,user_context_get:`memoryRead`,user_context_update:`memoryUpdate`,publish_artifacts:`publish`,update_plan:`planning`,read_media:`mediaRead`,review_workspace:`review`,send_media:`mediaSend`,send_message:`message`,session_recall:`sessionRecall`,session_search:`sessionSearch`,session_status:`sessionStatus`,skill_install:`skillInstall`,skill_manage:`skillManage`,skills_marketplace_search:`skillSearch`,skills_list:`skillSearch`,skill_view:`skillView`,text_to_speech:`speech`,structured_output:`structuredOutput`,todo:`todo`,tool_manual:`manual`,web_extract:`webExtract`,xopc_require_connection:`connection`};function a(e){let t=r(e);return t===`xopc_use`||t in i}function o(e,t,n,i,o){if(a(e.name))return x(e.name,r(e.name)===`xopc_use`?e.input:void 0,t,n,i,e.activity);let s=S(e.name,e.activity);return t===`running`?o[s]:s===`other`?n.fallback.completed.replace(/\{\{name\}\}/g,``).trim():C(e.name,i,e.activity)}var s=new Set([`list`,`get`,`get_card`,`history`,`list_milestones`,`list_updates`,`mail_sources`,`preview_edit`,`resolve_workspace`]),c=new Set([`create`,`create_milestone`,`create_update`,`follow_up`,`start`]),l=new Set([`add_context`,`append`,`command`,`remove_context`,`update`,`update_dependencies`,`update_follow_up`,`update_milestone`]),u=new Set([`delete`]),d=new Set([`run`,`resume`]),f=new Set([`cancel`,`pause`]),p=new Set([`check`,`validate`]),m=new Set([`open`]),h=new Set([`continue_card`]);function g(e){return s.has(e)?`inspect`:c.has(e)?`create`:l.has(e)?`update`:u.has(e)?`remove`:d.has(e)?`run`:f.has(e)?`stop`:p.has(e)?`validate`:m.has(e)?`open`:h.has(e)?`continue`:`use`}function _(e,t){return e===`project`&&t.includes(`milestone`)?`milestone`:e===`project`&&t.includes(`update`)?`projectUpdate`:e===`project`?`project`:e===`automation`?`automation`:e===`note`?`note`:e===`task`?`task`:e===`task_run`?`taskRun`:e===`local_app`?`localApp`:e===`settings`?`settings`:e===`context`?`context`:e===`chat_preview`?`chatPreview`:`productItem`}function v(e){return(e.trim().split(`__`).at(-1)?.split(`.`).at(-1)??e.trim()).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim()||`tool`}var y={list:`inspect`,get:`inspect`,read:`inspect`,fetch:`inspect`,find:`inspect`,search:`inspect`,query:`inspect`,create:`create`,add:`create`,generate:`create`,install:`create`,update:`update`,edit:`update`,write:`update`,append:`update`,set:`update`,delete:`remove`,remove:`remove`,uninstall:`remove`,run:`run`,execute:`run`,start:`run`,trigger:`run`,stop:`stop`,cancel:`stop`,pause:`stop`,validate:`validate`,check:`validate`,test:`validate`,verify:`validate`,analyze:`validate`,review:`validate`,open:`open`,navigate:`open`,continue:`continue`,resume:`continue`};function b(e,t,r){let[i,...a]=v(e).split(` `),o=y[i.toLowerCase()],s=a.join(` `).trim();return!o||!s?null:n(r.actions[o][t],{object:s})}function x(a,o,s,c,l,u){let d=r(a);if(d===`xopc_use`){let e=t(o),r=typeof e?.mode==`string`?e.mode.trim().toLowerCase():``,i=typeof e?.command==`string`?e.command.trim().toLowerCase():``,a=g(i),l=_(r,i);return n(c.actions[a][s],{object:c.objects[l]})}let f=i[d];if(f){let e=c.builtins[f][s],n=t(o),r=f===`skillView`?n?.name:void 0;return typeof r==`string`&&r.trim()?`${e} · ${r.trim().replace(/\s+/g,` `).slice(0,100)}`:e}let p=u??e(a,s===`running`?`running`:`completed`);return p.category!==`other`||p.action!==`use`?C(a,l,p):b(a,s,c)??n(c.fallback[s],{name:v(a)})}function S(t,n){if(t===`user_context_search`||t===`knowledge_search`)return`memorySearch`;let r=n??e(t,`running`);return r.category===`memory`&&r.action===`search`?`memorySearch`:r.category===`web`&&r.action===`search`?`webSearch`:r.category===`code`&&r.action===`search`?`codeSearch`:r.category===`other`&&r.action===`search`?`search`:r.category===`file`&&r.action===`read`?`readFile`:r.category===`file`&&r.action===`list`?`listDir`:r.category===`file`&&r.action===`write`?`writeFile`:r.category===`file`&&r.action===`edit`?`editFile`:r.category===`command`&&r.action===`execute`?`runCommand`:r.category===`navigation`&&r.action===`open`?`openUrl`:r.category===`web`&&r.action===`read`?`fetchUrl`:`other`}function C(t,n,r){let i=r??e(t,`running`);if(i.category===`planning`)return n.updatePlan??n.unknownTool.replace(`{{name}}`,t);let a=S(t,i);return a===`webSearch`?n.searchedWeb:a===`memorySearch`?n.searchedMemory??n.searched??n.searchedWeb:a===`codeSearch`?n.searchedCode??n.searched??n.searchedWeb:a===`search`?n.searched??n.searchedWeb:a===`readFile`?n.readFile:a===`runCommand`?n.runCommand:a===`listDir`?n.listDirectory:a===`writeFile`?n.writeFile:a===`editFile`?n.editFile:a===`openUrl`?n.openUrl:a===`fetchUrl`?n.fetchUrl:n.unknownTool.replace(`{{name}}`,t.trim()||`tool`)}export{C as n,o as r,S as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e}from"./locale-store-TQcz_Vjt.js";var t=e(e=>({agentId:``,setAgentId:t=>e({agentId:t})}));export{t};
|