cx-viewer 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -20
- package/build.js +15 -0
- package/cli.js +102 -18
- package/concepts/ar/BodyDiffJSON.md +1 -1
- package/concepts/ar/BodyFields.md +30 -33
- package/concepts/ar/GlobalSettings.md +165 -167
- package/concepts/ar/MainAgent.md +3 -4
- package/concepts/ar/ProxySwitch.md +3 -3
- package/concepts/ar/QRCode.md +1 -1
- package/concepts/ar/ResponseFields.md +29 -41
- package/concepts/ar/SubAgent-Search.md +12 -12
- package/concepts/ar/Teammate.md +16 -16
- package/concepts/ar/ToolsFirst.md +42 -48
- package/concepts/ar/TranslateContextPollution.md +9 -9
- package/concepts/ar/UltraPlan.md +38 -38
- package/concepts/da/BodyDiffJSON.md +2 -2
- package/concepts/da/BodyFields.md +30 -33
- package/concepts/da/GlobalSettings.md +165 -167
- package/concepts/da/MainAgent.md +3 -4
- package/concepts/da/ProxySwitch.md +3 -3
- package/concepts/da/QRCode.md +1 -1
- package/concepts/da/ResponseFields.md +29 -41
- package/concepts/da/SubAgent-Search.md +11 -11
- package/concepts/da/Teammate.md +16 -16
- package/concepts/da/ToolsFirst.md +42 -48
- package/concepts/da/TranslateContextPollution.md +9 -9
- package/concepts/da/UltraPlan.md +38 -38
- package/concepts/de/BodyDiffJSON.md +2 -2
- package/concepts/de/BodyFields.md +30 -33
- package/concepts/de/GlobalSettings.md +165 -167
- package/concepts/de/MainAgent.md +3 -4
- package/concepts/de/ProxySwitch.md +3 -3
- package/concepts/de/QRCode.md +1 -1
- package/concepts/de/ResponseFields.md +29 -41
- package/concepts/de/SubAgent-Search.md +11 -11
- package/concepts/de/Teammate.md +15 -15
- package/concepts/de/ToolsFirst.md +41 -47
- package/concepts/de/TranslateContextPollution.md +9 -9
- package/concepts/de/UltraPlan.md +38 -38
- package/concepts/en/BodyDiffJSON.md +5 -5
- package/concepts/en/BodyFields.md +17 -20
- package/concepts/en/GlobalSettings.md +49 -51
- package/concepts/en/MainAgent.md +8 -8
- package/concepts/en/ProxySwitch.md +3 -3
- package/concepts/en/QRCode.md +6 -6
- package/concepts/en/ResponseFields.md +7 -19
- package/concepts/en/SubAgent-Search.md +2 -2
- package/concepts/en/Teammate.md +4 -4
- package/concepts/en/Tool-apply_patch.md +11 -0
- package/concepts/en/Tool-create_goal.md +8 -0
- package/concepts/en/Tool-exec.md +88 -0
- package/concepts/en/Tool-followup_task.md +10 -0
- package/concepts/en/Tool-get_goal.md +5 -0
- package/concepts/en/Tool-image_generation.md +5 -0
- package/concepts/en/Tool-interrupt_agent.md +9 -0
- package/concepts/en/Tool-list_agents.md +9 -0
- package/concepts/en/Tool-list_mcp_resource_templates.md +8 -0
- package/concepts/en/Tool-list_mcp_resources.md +8 -0
- package/concepts/en/Tool-read_mcp_resource.md +10 -0
- package/concepts/en/Tool-request_user_input.md +9 -0
- package/concepts/en/Tool-send_message.md +10 -0
- package/concepts/en/Tool-shell_command.md +12 -0
- package/concepts/en/Tool-spawn_agent.md +11 -0
- package/concepts/en/Tool-tool_search.md +12 -0
- package/concepts/en/Tool-update_goal.md +9 -0
- package/concepts/en/Tool-update_plan.md +9 -0
- package/concepts/en/Tool-view_image.md +10 -0
- package/concepts/en/Tool-wait.md +12 -0
- package/concepts/en/Tool-wait_agent.md +9 -0
- package/concepts/en/Tool-web_search.md +11 -0
- package/concepts/en/Tools.md +29 -58
- package/concepts/en/ToolsFirst.md +24 -30
- package/concepts/en/TranslateContextPollution.md +10 -38
- package/concepts/en/UltraPlan.md +7 -7
- package/concepts/es/BodyDiffJSON.md +1 -1
- package/concepts/es/BodyFields.md +35 -38
- package/concepts/es/GlobalSettings.md +165 -167
- package/concepts/es/MainAgent.md +3 -4
- package/concepts/es/ProxySwitch.md +3 -3
- package/concepts/es/QRCode.md +1 -1
- package/concepts/es/ResponseFields.md +28 -40
- package/concepts/es/SubAgent-Search.md +12 -12
- package/concepts/es/Teammate.md +17 -17
- package/concepts/es/ToolsFirst.md +41 -47
- package/concepts/es/TranslateContextPollution.md +9 -9
- package/concepts/es/UltraPlan.md +38 -38
- package/concepts/fr/BodyDiffJSON.md +2 -2
- package/concepts/fr/BodyFields.md +35 -38
- package/concepts/fr/GlobalSettings.md +165 -167
- package/concepts/fr/MainAgent.md +3 -4
- package/concepts/fr/ProxySwitch.md +3 -3
- package/concepts/fr/QRCode.md +1 -1
- package/concepts/fr/ResponseFields.md +25 -37
- package/concepts/fr/SubAgent-Search.md +12 -12
- package/concepts/fr/Teammate.md +16 -16
- package/concepts/fr/ToolsFirst.md +40 -46
- package/concepts/fr/TranslateContextPollution.md +9 -9
- package/concepts/fr/UltraPlan.md +38 -38
- package/concepts/it/BodyDiffJSON.md +2 -2
- package/concepts/it/BodyFields.md +35 -38
- package/concepts/it/GlobalSettings.md +165 -167
- package/concepts/it/MainAgent.md +3 -4
- package/concepts/it/ProxySwitch.md +3 -3
- package/concepts/it/QRCode.md +1 -1
- package/concepts/it/ResponseFields.md +28 -40
- package/concepts/it/SubAgent-Search.md +12 -12
- package/concepts/it/Teammate.md +17 -17
- package/concepts/it/ToolsFirst.md +41 -47
- package/concepts/it/TranslateContextPollution.md +9 -9
- package/concepts/it/UltraPlan.md +38 -38
- package/concepts/ja/BodyDiffJSON.md +1 -1
- package/concepts/ja/BodyFields.md +30 -33
- package/concepts/ja/GlobalSettings.md +165 -167
- package/concepts/ja/MainAgent.md +3 -4
- package/concepts/ja/ProxySwitch.md +3 -3
- package/concepts/ja/QRCode.md +1 -1
- package/concepts/ja/ResponseFields.md +29 -41
- package/concepts/ja/SubAgent-Search.md +12 -12
- package/concepts/ja/Teammate.md +17 -17
- package/concepts/ja/ToolsFirst.md +41 -47
- package/concepts/ja/TranslateContextPollution.md +9 -9
- package/concepts/ja/UltraPlan.md +38 -38
- package/concepts/ko/BodyDiffJSON.md +1 -1
- package/concepts/ko/BodyFields.md +30 -33
- package/concepts/ko/GlobalSettings.md +165 -167
- package/concepts/ko/MainAgent.md +3 -4
- package/concepts/ko/ProxySwitch.md +3 -3
- package/concepts/ko/QRCode.md +1 -1
- package/concepts/ko/ResponseFields.md +29 -41
- package/concepts/ko/SubAgent-Search.md +12 -12
- package/concepts/ko/Teammate.md +17 -17
- package/concepts/ko/ToolsFirst.md +41 -47
- package/concepts/ko/TranslateContextPollution.md +9 -9
- package/concepts/ko/UltraPlan.md +38 -38
- package/concepts/no/BodyDiffJSON.md +2 -2
- package/concepts/no/BodyFields.md +30 -33
- package/concepts/no/GlobalSettings.md +165 -167
- package/concepts/no/MainAgent.md +3 -4
- package/concepts/no/ProxySwitch.md +3 -3
- package/concepts/no/QRCode.md +1 -1
- package/concepts/no/ResponseFields.md +29 -41
- package/concepts/no/SubAgent-Search.md +12 -12
- package/concepts/no/Teammate.md +17 -17
- package/concepts/no/ToolsFirst.md +42 -48
- package/concepts/no/TranslateContextPollution.md +9 -9
- package/concepts/no/UltraPlan.md +38 -38
- package/concepts/pl/BodyDiffJSON.md +2 -2
- package/concepts/pl/BodyFields.md +30 -33
- package/concepts/pl/GlobalSettings.md +165 -167
- package/concepts/pl/MainAgent.md +3 -4
- package/concepts/pl/ProxySwitch.md +3 -3
- package/concepts/pl/QRCode.md +1 -1
- package/concepts/pl/ResponseFields.md +29 -41
- package/concepts/pl/SubAgent-Search.md +12 -12
- package/concepts/pl/Teammate.md +17 -17
- package/concepts/pl/ToolsFirst.md +42 -48
- package/concepts/pl/TranslateContextPollution.md +9 -9
- package/concepts/pl/UltraPlan.md +38 -38
- package/concepts/pt-BR/BodyDiffJSON.md +2 -2
- package/concepts/pt-BR/BodyFields.md +30 -33
- package/concepts/pt-BR/GlobalSettings.md +165 -167
- package/concepts/pt-BR/MainAgent.md +3 -4
- package/concepts/pt-BR/ProxySwitch.md +3 -3
- package/concepts/pt-BR/QRCode.md +1 -1
- package/concepts/pt-BR/ResponseFields.md +29 -41
- package/concepts/pt-BR/SubAgent-Search.md +12 -12
- package/concepts/pt-BR/Teammate.md +17 -17
- package/concepts/pt-BR/ToolsFirst.md +41 -47
- package/concepts/pt-BR/TranslateContextPollution.md +9 -9
- package/concepts/pt-BR/UltraPlan.md +38 -38
- package/concepts/ru/BodyDiffJSON.md +1 -1
- package/concepts/ru/BodyFields.md +30 -33
- package/concepts/ru/GlobalSettings.md +165 -167
- package/concepts/ru/MainAgent.md +3 -4
- package/concepts/ru/ProxySwitch.md +3 -3
- package/concepts/ru/QRCode.md +1 -1
- package/concepts/ru/ResponseFields.md +29 -41
- package/concepts/ru/SubAgent-Search.md +12 -12
- package/concepts/ru/Teammate.md +17 -17
- package/concepts/ru/ToolsFirst.md +41 -47
- package/concepts/ru/TranslateContextPollution.md +9 -9
- package/concepts/ru/UltraPlan.md +38 -38
- package/concepts/th/BodyDiffJSON.md +1 -1
- package/concepts/th/BodyFields.md +30 -33
- package/concepts/th/GlobalSettings.md +165 -167
- package/concepts/th/MainAgent.md +3 -4
- package/concepts/th/ProxySwitch.md +3 -3
- package/concepts/th/QRCode.md +1 -1
- package/concepts/th/ResponseFields.md +29 -41
- package/concepts/th/SubAgent-Search.md +12 -12
- package/concepts/th/Teammate.md +17 -17
- package/concepts/th/ToolsFirst.md +42 -48
- package/concepts/th/TranslateContextPollution.md +9 -9
- package/concepts/th/UltraPlan.md +38 -38
- package/concepts/tr/BodyDiffJSON.md +1 -1
- package/concepts/tr/BodyFields.md +30 -33
- package/concepts/tr/GlobalSettings.md +165 -167
- package/concepts/tr/MainAgent.md +3 -4
- package/concepts/tr/ProxySwitch.md +3 -3
- package/concepts/tr/QRCode.md +1 -1
- package/concepts/tr/ResponseFields.md +29 -41
- package/concepts/tr/SubAgent-Search.md +12 -12
- package/concepts/tr/Teammate.md +16 -16
- package/concepts/tr/ToolsFirst.md +42 -48
- package/concepts/tr/TranslateContextPollution.md +9 -9
- package/concepts/tr/UltraPlan.md +38 -38
- package/concepts/uk/BodyDiffJSON.md +1 -1
- package/concepts/uk/BodyFields.md +30 -33
- package/concepts/uk/GlobalSettings.md +165 -167
- package/concepts/uk/MainAgent.md +3 -4
- package/concepts/uk/ProxySwitch.md +3 -3
- package/concepts/uk/QRCode.md +1 -1
- package/concepts/uk/ResponseFields.md +29 -41
- package/concepts/uk/SubAgent-Search.md +12 -12
- package/concepts/uk/Teammate.md +17 -17
- package/concepts/uk/ToolsFirst.md +42 -48
- package/concepts/uk/TranslateContextPollution.md +9 -9
- package/concepts/uk/UltraPlan.md +38 -38
- package/concepts/zh/BodyDiffJSON.md +4 -4
- package/concepts/zh/BodyFields.md +17 -20
- package/concepts/zh/GlobalSettings.md +26 -28
- package/concepts/zh/MainAgent.md +6 -6
- package/concepts/zh/ProxySwitch.md +1 -1
- package/concepts/zh/ResponseFields.md +7 -18
- package/concepts/zh/SubAgent-Search.md +2 -2
- package/concepts/zh/Teammate.md +4 -4
- package/concepts/zh/Tool-apply_patch.md +11 -0
- package/concepts/zh/Tool-create_goal.md +8 -0
- package/concepts/zh/Tool-exec.md +88 -0
- package/concepts/zh/Tool-followup_task.md +10 -0
- package/concepts/zh/Tool-get_goal.md +5 -0
- package/concepts/zh/Tool-image_generation.md +5 -0
- package/concepts/zh/Tool-interrupt_agent.md +9 -0
- package/concepts/zh/Tool-list_agents.md +9 -0
- package/concepts/zh/Tool-list_mcp_resource_templates.md +8 -0
- package/concepts/zh/Tool-list_mcp_resources.md +8 -0
- package/concepts/zh/Tool-read_mcp_resource.md +10 -0
- package/concepts/zh/Tool-request_user_input.md +9 -0
- package/concepts/zh/Tool-send_message.md +10 -0
- package/concepts/zh/Tool-shell_command.md +12 -0
- package/concepts/zh/Tool-spawn_agent.md +11 -0
- package/concepts/zh/Tool-tool_search.md +12 -0
- package/concepts/zh/Tool-update_goal.md +9 -0
- package/concepts/zh/Tool-update_plan.md +9 -0
- package/concepts/zh/Tool-view_image.md +10 -0
- package/concepts/zh/Tool-wait.md +12 -0
- package/concepts/zh/Tool-wait_agent.md +9 -0
- package/concepts/zh/Tool-web_search.md +11 -0
- package/concepts/zh/Tools.md +29 -58
- package/concepts/zh/ToolsFirst.md +21 -27
- package/concepts/zh/TranslateContextPollution.md +10 -38
- package/concepts/zh/UltraPlan.md +7 -7
- package/concepts/zh-TW/BodyFields.md +27 -30
- package/concepts/zh-TW/GlobalSettings.md +26 -28
- package/concepts/zh-TW/MainAgent.md +0 -1
- package/concepts/zh-TW/ProxySwitch.md +22 -22
- package/concepts/zh-TW/ResponseFields.md +29 -40
- package/concepts/zh-TW/SubAgent-Search.md +12 -12
- package/concepts/zh-TW/Teammate.md +16 -16
- package/concepts/zh-TW/ToolsFirst.md +41 -47
- package/concepts/zh-TW/UltraPlan.md +38 -38
- package/dist/assets/App-BZ9oclBj.js +2 -0
- package/dist/assets/App-rWON7PuS.css +1 -0
- package/dist/assets/MdxEditorPanel-B4lZ7Z_A.js +1 -0
- package/dist/assets/MdxEditorPanel-Da_ceLFo.css +1 -0
- package/dist/assets/Mobile-B5V_-6Hc.css +1 -0
- package/dist/assets/Mobile-C7Hy-TIM.js +1 -0
- package/dist/assets/abnfDiagram-VRR7QNED-DYYppIQV.js +1 -0
- package/dist/assets/apl-B8ZmNFqK.js +1 -0
- package/dist/assets/arc-BT3um7r4.js +1 -0
- package/dist/assets/architectureDiagram-ZJ3FMSHR-uweBqnh-.js +1 -0
- package/dist/assets/asciiarmor-CIte6N-S.js +1 -0
- package/dist/assets/asn1-Ax1-z1nk.js +1 -0
- package/dist/assets/asterisk-CLHf-iRz.js +1 -0
- package/dist/assets/blockDiagram-677ZJIJ3-DzeI4GyV.js +1 -0
- package/dist/assets/brainfuck-CdLnmYpe.js +1 -0
- package/dist/assets/c4Diagram-LMCZKHZV-DBI0K7wS.js +1 -0
- package/dist/assets/channel-BrN6yx0e.js +1 -0
- package/dist/assets/chunk-2Q5K7J3B-DK9JA8Ct.js +1 -0
- package/dist/assets/chunk-32BRIVSS-VNg3Ylzs.js +1 -0
- package/dist/assets/chunk-5VM5RSS4-DFhufY9o.js +1 -0
- package/dist/assets/chunk-EX3LRPZG-B93MHNBT.js +1 -0
- package/dist/assets/chunk-JWPE2WC7-C54OW1iN.js +1 -0
- package/dist/assets/chunk-MOJQB5TN-lKhWWIDe.js +1 -0
- package/dist/assets/chunk-RYQCIY6F-BK2jDXwB.js +1 -0
- package/dist/assets/chunk-V7JOEXUC-aLHBmfOc.js +1 -0
- package/dist/assets/chunk-VR4S4FIN-Bomuor1h.js +1 -0
- package/dist/assets/chunk-XXDRQBXY-BPj05P7g.js +1 -0
- package/dist/assets/classDiagram-OUVF2IWQ-COm0X4uJ.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-COm0X4uJ.js +1 -0
- package/dist/assets/clike-BDgEuk0n.js +1 -0
- package/dist/assets/clojure-CrPxgQZl.js +1 -0
- package/dist/assets/cmake-BknZiLBu.js +1 -0
- package/dist/assets/cobol-DN1mHbgw.js +1 -0
- package/dist/assets/coffeescript-DTAwRC7M.js +1 -0
- package/dist/assets/commonlisp-B4DJ--Bo.js +1 -0
- package/dist/assets/cose-bilkent-JH36ORCC-DU44QHSb.js +1 -0
- package/dist/assets/crystal-DoipYOOv.js +1 -0
- package/dist/assets/css-BeQRP3p5.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-C0dowxsF.js +15 -0
- package/dist/assets/cynefinDiagram-TSTJHNR4-C6vNWPUV.js +1 -0
- package/dist/assets/cypher-BzELKutH.js +1 -0
- package/dist/assets/cytoscape.esm-D0POlJZ1.js +9 -0
- package/dist/assets/d-Mh2Rawoc.js +1 -0
- package/dist/assets/dagre-VKFMJZFB-aLG4uEb-.js +1 -0
- package/dist/assets/defaultLocale-DZ7E7S9R.js +1 -0
- package/dist/assets/diagram-FQU43EPY-D5C8GfdU.js +1 -0
- package/dist/assets/diagram-G47NLZAW-C9tRw_xi.js +1 -0
- package/dist/assets/diagram-NH7WQ7WH-AYxTxwJ2.js +1 -0
- package/dist/assets/diagram-OA4YK3LP-BuBE5n9n.js +1 -0
- package/dist/assets/diagram-WEI45ONY-Cda7zYeO.js +1 -0
- package/dist/assets/diff-B1OtBbfz.js +1 -0
- package/dist/assets/dockerfile-Du7niAGi.js +1 -0
- package/dist/assets/dtd-So5hjSa8.js +1 -0
- package/dist/assets/dylan-Co15g-RX.js +1 -0
- package/dist/assets/ebnf-DWrAnno4.js +1 -0
- package/dist/assets/ebnfDiagram-CCIWWBDH-DC_OGyoh.js +1 -0
- package/dist/assets/ecl-8tbf0rUT.js +1 -0
- package/dist/assets/eiffel-BXtlUtEg.js +1 -0
- package/dist/assets/elm-BwiUluiH.js +1 -0
- package/dist/assets/erDiagram-Q63AITRT-D2G21PVY.js +1 -0
- package/dist/assets/erlang-CrHBLi-m.js +1 -0
- package/dist/assets/factor-C7nC06Ta.js +1 -0
- package/dist/assets/fcl-DKWfryFT.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-CEQPYHrk.js +1 -0
- package/dist/assets/forth-Cg8ASoTj.js +1 -0
- package/dist/assets/fortran-BHf_qfFx.js +1 -0
- package/dist/assets/ganttDiagram-NO4QXBWP-JStxUtFR.js +1 -0
- package/dist/assets/gas-cj_2N_z1.js +1 -0
- package/dist/assets/gherkin-BiuTaH40.js +1 -0
- package/dist/assets/gitGraphDiagram-IHSO6WYX-BiojPH-V.js +1 -0
- package/dist/assets/graph-CnJdn47S.js +1 -0
- package/dist/assets/groovy-Bq8cXYUU.js +1 -0
- package/dist/assets/haskell-1ANuaeie.js +1 -0
- package/dist/assets/haxe-BUNSvWf_.js +1 -0
- package/dist/assets/html2canvas.esm-HFdlUwfn.js +20 -0
- package/dist/assets/http-DPC2IRQA.js +1 -0
- package/dist/assets/idl-DDbIciu_.js +1 -0
- package/dist/assets/index-BEyKG3O5.css +1 -0
- package/dist/assets/index-BduJoLQ5.js +1 -0
- package/dist/assets/index-BqwR8F0v.js +1 -0
- package/dist/assets/index-BsycQyrv.js +1 -0
- package/dist/assets/index-CFSDxZyA.js +1 -0
- package/dist/assets/index-CunNLTHc.js +1 -0
- package/dist/assets/index-OGkDFNTK.js +1 -0
- package/dist/assets/index-oxOyrL07.js +2 -0
- package/dist/assets/index-wvaycTGT.js +1 -0
- package/dist/assets/infoDiagram-FWYZ7A6U-Csl_aBIC.js +1 -0
- package/dist/assets/init-DMZMl1PR.js +1 -0
- package/dist/assets/ishikawaDiagram-FXEZZL3T-CjgGuMwr.js +1 -0
- package/dist/assets/javascript-Cet1BUca.js +1 -0
- package/dist/assets/journeyDiagram-5HDEW3XC-DUOy1PCq.js +1 -0
- package/dist/assets/jszip.min-BxIXdRg4.js +12 -0
- package/dist/assets/julia-CdxLCr68.js +1 -0
- package/dist/assets/kanban-definition-HUTT4EX6-Cx7GSrSj.js +1 -0
- package/dist/assets/katex-CfXf84Fz.js +1 -0
- package/dist/assets/layout-CCUE9ZRw.js +1 -0
- package/dist/assets/linear-GeBi6jJp.js +1 -0
- package/dist/assets/livescript-Bw1Vw7Ae.js +1 -0
- package/dist/assets/lua-DM1wbcnc.js +1 -0
- package/dist/assets/map-DQeg2hXV.js +1 -0
- package/dist/assets/mathematica-BXSv1_O1.js +1 -0
- package/dist/assets/mbox-CWY0keg3.js +1 -0
- package/dist/assets/mermaid.core-Cy9iVxov.js +7 -0
- package/dist/assets/mindmap-definition-LN4V7U3C-CUVxVkK5.js +1 -0
- package/dist/assets/mirc-CMLrLVMT.js +1 -0
- package/dist/assets/mllike-naqhAFf1.js +1 -0
- package/dist/assets/modelica-BvadsaHY.js +1 -0
- package/dist/assets/mscgen-DOr-Q10p.js +1 -0
- package/dist/assets/mumps-DKTl5Nyj.js +1 -0
- package/dist/assets/nginx-DWR90-d1.js +1 -0
- package/dist/assets/nsis-ooFGduGn.js +1 -0
- package/dist/assets/ntriples-q5jkU4X1.js +1 -0
- package/dist/assets/octave-Deu9Ci7_.js +1 -0
- package/dist/assets/orbiting-BCD4Vuij.svg +7 -0
- package/dist/assets/ordinal-DA-_8pMy.js +1 -0
- package/dist/assets/oz-cTQm1aoB.js +1 -0
- package/dist/assets/pascal-Oh3VmczP.js +1 -0
- package/dist/assets/pegDiagram-2B236MQR-BCF1byLY.js +1 -0
- package/dist/assets/perl-BddWF1HQ.js +1 -0
- package/dist/assets/pieDiagram-ENE6RG2P-D2cZTo8-.js +1 -0
- package/dist/assets/pig-g5ZQNIDr.js +1 -0
- package/dist/assets/powershell-CNmQNFVJ.js +1 -0
- package/dist/assets/properties-B41DXfv6.js +1 -0
- package/dist/assets/protobuf-eEBl31OJ.js +1 -0
- package/dist/assets/pug-DRSo4eCK.js +1 -0
- package/dist/assets/puppet-ClfRubAD.js +1 -0
- package/dist/assets/python-BSflc812.js +1 -0
- package/dist/assets/q-BBDx3N9Y.js +1 -0
- package/dist/assets/quadrantDiagram-ABIIQ3AL-Bwsn2--F.js +1 -0
- package/dist/assets/r-CByC1eO8.js +1 -0
- package/dist/assets/railroadDiagram-RFXS5EU6-CLGLpWHs.js +1 -0
- package/dist/assets/requirementDiagram-TGXJPOKE-BfmBYwZl.js +1 -0
- package/dist/assets/rpm-8t935XkD.js +1 -0
- package/dist/assets/ruby-CAgbkLZh.js +1 -0
- package/dist/assets/sankeyDiagram-HTMAVEWB-CqZhbyFn.js +1 -0
- package/dist/assets/sas-C-JWcRvo.js +1 -0
- package/dist/assets/scheme-D7o9RjUX.js +1 -0
- package/dist/assets/seqResourceLoaders-Bkh2Rb9i.js +2 -0
- package/dist/assets/seqResourceLoaders-Do7Kqg3B.css +41 -0
- package/dist/assets/sequenceDiagram-DBY2YBRQ-CcOdXkN2.js +1 -0
- package/dist/assets/shell-BXA79DV6.js +1 -0
- package/dist/assets/shimmer-BBDejmDf.svg +7 -0
- package/dist/assets/sieve-DNwyl0rd.js +1 -0
- package/dist/assets/simple-mode-CoQRusFX.js +1 -0
- package/dist/assets/sizeCapture-X5ZJPWSS-B4OVmPqu.js +1 -0
- package/dist/assets/smalltalk-DggktV6S.js +1 -0
- package/dist/assets/solr-D7NRuIPM.js +1 -0
- package/dist/assets/sparql-Cr71deJQ.js +1 -0
- package/dist/assets/spreadsheet-BMD3tYqw.js +1 -0
- package/dist/assets/sql-CbOjXfBR.js +1 -0
- package/dist/assets/stateDiagram-2N3HPSRC-Dysun0oO.js +1 -0
- package/dist/assets/stateDiagram-v2-6OUMAXLB-BFet8xAz.js +1 -0
- package/dist/assets/stex-iDPIkRmr.js +1 -0
- package/dist/assets/stylus-nWZizI-c.js +1 -0
- package/dist/assets/swift-DOhLK5SG.js +1 -0
- package/dist/assets/swimlanes-5IMT3BWC-_30OXwXy.js +2 -0
- package/dist/assets/swimlanesDiagram-G3AALYLV-C19viY0G.js +1 -0
- package/dist/assets/tcl-CQhJd1WY.js +1 -0
- package/dist/assets/textile-D9XqfVtL.js +1 -0
- package/dist/assets/tiddlywiki-DfOYgVky.js +1 -0
- package/dist/assets/tiki-a0_YLWvV.js +1 -0
- package/dist/assets/timeline-definition-FHXFAJF6-X1Xk3onD.js +1 -0
- package/dist/assets/toml-ekl3F1YB.js +1 -0
- package/dist/assets/troff-Bh_pcXF1.js +1 -0
- package/dist/assets/ttcn-M6363IRW.js +1 -0
- package/dist/assets/ttcn-cfg-7I2DgJEN.js +1 -0
- package/dist/assets/turtle-B5jdxH6D.js +1 -0
- package/dist/assets/vb-DM-xPmVv.js +1 -0
- package/dist/assets/vbscript-B0qu41Yc.js +1 -0
- package/dist/assets/velocity-FCgsuVHf.js +1 -0
- package/dist/assets/vendor-antd-Bzi1WuBb.js +17 -0
- package/dist/assets/vendor-codemirror-CKTrJd47.js +1 -0
- package/dist/assets/vendor-highlight-IFTJ9nxW.js +1 -0
- package/dist/assets/vendor-markdown-BN3QLsBu.js +3 -0
- package/dist/assets/vendor-mdxeditor-4PbKH6K7.js +2 -0
- package/dist/assets/vendor-qrcode-Bnjm0rcu.js +6 -0
- package/dist/assets/vendor-react-l0sNRNKZ.js +1 -0
- package/dist/assets/vendor-virtuoso-2P4SowHC.js +1 -0
- package/dist/assets/vendor-xterm-DckPrCx1.js +37 -0
- package/dist/assets/vennDiagram-L72KCM5P-D3fQnGq7.js +1 -0
- package/dist/assets/verilog-nrfFvR12.js +1 -0
- package/dist/assets/vhdl-WlDXtV-W.js +1 -0
- package/dist/assets/wardleyDiagram-EHGQE667-CRhqI6-g.js +1 -0
- package/dist/assets/webidl-RIQoSXDx.js +1 -0
- package/dist/assets/xquery-BN45G3lJ.js +1 -0
- package/dist/assets/xychartDiagram-FW5EYKEG-Cmtgmmtg.js +1 -0
- package/dist/assets/yacas-U6gaIVhD.js +1 -0
- package/dist/assets/z80-CFe5BHbK.js +1 -0
- package/dist/index.html +25 -6
- package/dist/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
- package/dist/voice-packs/default/It_is_done_sir.MP3 +0 -0
- package/dist/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
- package/dist/voice-packs/default/pack.json +24 -0
- package/dist/voice-packs/sanguo/ask.MP3 +0 -0
- package/dist/voice-packs/sanguo/end.MP3 +0 -0
- package/dist/voice-packs/sanguo/pack.json +24 -0
- package/dist/voice-packs/sanguo/plan.MP3 +0 -0
- package/electron/diag.js +110 -0
- package/electron/main.js +1432 -0
- package/electron/menu-model.js +107 -0
- package/electron/tab-bar.html +575 -0
- package/electron/tab-content-preload.js +66 -0
- package/electron/tab-preload.js +24 -0
- package/electron/tab-worker.js +142 -0
- package/electron/window-state.js +60 -0
- package/electron/workspace-preload.js +19 -0
- package/findcx.js +4 -0
- package/i18n.js +3 -423
- package/index.html +30 -0
- package/interceptor.js +144 -70
- package/jsconfig.json +25 -0
- package/lib/approval-reviewer.js +23 -0
- package/lib/appserver-bridge.js +1753 -237
- package/lib/ask-bridge.js +5 -5
- package/lib/cli-args.js +1 -0
- package/lib/codex-config.js +157 -18
- package/lib/context-watcher.js +6 -65
- package/lib/delta-reconstructor.js +74 -52
- package/lib/ensure-hooks.js +37 -30
- package/lib/interceptor-core.js +490 -43
- package/lib/log-watcher.js +3 -8
- package/lib/main-agent-entry.js +68 -0
- package/lib/openai-body.js +95 -0
- package/lib/otel-adapter.js +3 -2
- package/lib/otel-receiver.js +1 -2
- package/lib/perm-bridge.js +84 -44
- package/lib/proxy-env.js +45 -1
- package/lib/sdk-adapter.js +241 -51
- package/lib/sdk-manager.js +523 -370
- package/lib/skills-api.js +364 -0
- package/lib/stats-worker.js +21 -21
- package/lib/token-usage.js +29 -0
- package/lib/updater.js +3 -7
- package/package.json +27 -6
- package/plugins/.gitkeep +0 -0
- package/plugins/README.md +8 -0
- package/proxy.js +187 -241
- package/pty-manager.js +17 -1
- package/public/favicon.ico +0 -0
- package/public/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
- package/public/voice-packs/default/It_is_done_sir.MP3 +0 -0
- package/public/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
- package/public/voice-packs/default/pack.json +24 -0
- package/public/voice-packs/sanguo/ask.MP3 +0 -0
- package/public/voice-packs/sanguo/end.MP3 +0 -0
- package/public/voice-packs/sanguo/pack.json +24 -0
- package/public/voice-packs/sanguo/plan.MP3 +0 -0
- package/scripts/check-no-control-bytes.js +130 -0
- package/scripts/check-sign-config.sh +85 -0
- package/scripts/gen-default-voicepack.js +176 -0
- package/scripts/mac-sign.sh +47 -0
- package/scripts/npm-pack-dry-run.mjs +20 -0
- package/server/lib/approval-modal-prefs.js +72 -0
- package/server/lib/context-rules.js +70 -0
- package/server/lib/delta-reconstructor.js +403 -0
- package/server/lib/tools-xml-formatter.js +91 -0
- package/server/lib/voice-pack-events.js +79 -0
- package/server.js +420 -86
- package/src/App.jsx +638 -0
- package/src/App.module.css +1088 -0
- package/src/AppBase.jsx +2803 -0
- package/src/Mobile.jsx +1348 -0
- package/src/components/approval/ApprovalModal.jsx +319 -0
- package/src/components/approval/ApprovalModal.module.css +160 -0
- package/src/components/approval/ToolApprovalPanel.jsx +111 -0
- package/src/components/approval/ToolApprovalPanel.module.css +250 -0
- package/src/components/chat/ApprovalPortalContext.js +26 -0
- package/src/components/chat/AskQuestionForm.jsx +279 -0
- package/src/components/chat/AskTimeoutCountdown.jsx +113 -0
- package/src/components/chat/ChatInputBar.jsx +584 -0
- package/src/components/chat/ChatInputBar.module.css +656 -0
- package/src/components/chat/ChatMessage.jsx +1587 -0
- package/src/components/chat/ChatMessage.module.css +1560 -0
- package/src/components/chat/ChatView.jsx +3533 -0
- package/src/components/chat/ChatView.module.css +418 -0
- package/src/components/chat/DiffView.jsx +111 -0
- package/src/components/chat/DiffView.module.css +141 -0
- package/src/components/chat/RoleFilterBar.jsx +35 -0
- package/src/components/chat/RoleFilterBar.module.css +62 -0
- package/src/components/chat/controllers/askFlowController.js +789 -0
- package/src/components/chat/controllers/permissionController.js +84 -0
- package/src/components/chat/controllers/ptyPromptController.js +166 -0
- package/src/components/chat/controllers/scrollHighlightController.js +50 -0
- package/src/components/chat/controllers/splitDragController.js +135 -0
- package/src/components/chat/controllers/toolFileChangeController.js +216 -0
- package/src/components/chat/interactionOwnership.js +106 -0
- package/src/components/chat/uploadDeferLogic.js +46 -0
- package/src/components/common/ConceptHelp.jsx +97 -0
- package/src/components/common/ConceptHelp.module.css +151 -0
- package/src/components/common/ConfirmRemoveButton.jsx +78 -0
- package/src/components/common/CountryFlag.jsx +105 -0
- package/src/components/common/CountryFlag.module.css +36 -0
- package/src/components/common/DingTalkIcon.jsx +20 -0
- package/src/components/common/DiscordIcon.jsx +21 -0
- package/src/components/common/FeishuIcon.jsx +23 -0
- package/src/components/common/HoverPreviewTip.jsx +62 -0
- package/src/components/common/HoverPreviewTip.module.css +21 -0
- package/src/components/common/ImageLightbox.jsx +244 -0
- package/src/components/common/ImageLightbox.module.css +120 -0
- package/src/components/common/MemoryDetailModal.jsx +75 -0
- package/src/components/common/OpenFolderIcon.jsx +53 -0
- package/src/components/common/OpenFolderIcon.module.css +7 -0
- package/src/components/common/PanelResizer.jsx +48 -0
- package/src/components/common/PanelResizer.module.css +11 -0
- package/src/components/common/QuickAutoApproveRows.jsx +66 -0
- package/src/components/common/RefreshIcon.jsx +50 -0
- package/src/components/common/RefreshIcon.module.css +26 -0
- package/src/components/common/SnapLineOverlay.jsx +47 -0
- package/src/components/common/SnapLineOverlay.module.css +31 -0
- package/src/components/common/ToolsHelp.jsx +113 -0
- package/src/components/common/ToolsHelp.module.css +85 -0
- package/src/components/common/WeComIcon.jsx +22 -0
- package/src/components/common/quickMenuIcons.jsx +99 -0
- package/src/components/common/sharedChrome.module.css +274 -0
- package/src/components/dashboard/AppHeader.jsx +2085 -0
- package/src/components/dashboard/AppHeader.module.css +676 -0
- package/src/components/dashboard/CachePopoverContent.jsx +538 -0
- package/src/components/dashboard/CachePopoverContent.module.css +191 -0
- package/src/components/dashboard/ContextTab.jsx +769 -0
- package/src/components/dashboard/ContextTab.module.css +565 -0
- package/src/components/dashboard/DetailPanel.jsx +813 -0
- package/src/components/dashboard/DetailPanel.module.css +513 -0
- package/src/components/dashboard/LiveTagPopover.jsx +89 -0
- package/src/components/dashboard/LiveTagPopover.module.css +67 -0
- package/src/components/dashboard/RequestList.jsx +146 -0
- package/src/components/dashboard/RequestList.module.css +146 -0
- package/src/components/dashboard/TeamSessionPanel.jsx +584 -0
- package/src/components/dashboard/TeamSessionPanel.module.css +457 -0
- package/src/components/dashboard/UsageWindowPill.jsx +166 -0
- package/src/components/dashboard/UsageWindowPill.module.css +140 -0
- package/src/components/dashboard/WorkflowRunsPanel.jsx +108 -0
- package/src/components/dashboard/WorkflowRunsPanel.module.css +72 -0
- package/src/components/dashboard/WorkspaceList.jsx +410 -0
- package/src/components/dashboard/WorkspaceList.module.css +254 -0
- package/src/components/files/FileContentView.jsx +1013 -0
- package/src/components/files/FileContentView.module.css +418 -0
- package/src/components/files/FileExplorer.jsx +937 -0
- package/src/components/files/FileExplorer.module.css +173 -0
- package/src/components/files/MdxEditorPanel.base.css +9 -0
- package/src/components/files/MdxEditorPanel.jsx +181 -0
- package/src/components/files/MdxEditorPanel.module.css +917 -0
- package/src/components/git/DiffMiniMap.jsx +98 -0
- package/src/components/git/DiffMiniMap.module.css +17 -0
- package/src/components/git/FullFileDiffView.jsx +265 -0
- package/src/components/git/FullFileDiffView.module.css +176 -0
- package/src/components/git/GitChanges.jsx +461 -0
- package/src/components/git/GitChanges.module.css +337 -0
- package/src/components/git/GitDiffView.jsx +161 -0
- package/src/components/git/GitDiffView.module.css +205 -0
- package/src/components/mobile/MobileDrawerCloseButton.jsx +18 -0
- package/src/components/mobile/MobileFileExplorer.jsx +231 -0
- package/src/components/mobile/MobileFileExplorer.module.css +171 -0
- package/src/components/mobile/MobileGitDiff.jsx +293 -0
- package/src/components/mobile/MobileGitDiff.module.css +317 -0
- package/src/components/mobile/MobileStats.jsx +211 -0
- package/src/components/mobile/MobileStats.module.css +75 -0
- package/src/components/settings/ImAppendSystemModal.jsx +104 -0
- package/src/components/settings/ImConversationModal.jsx +328 -0
- package/src/components/settings/ImConversationModal.module.css +49 -0
- package/src/components/settings/ImPlatformSettings.jsx +453 -0
- package/src/components/settings/ImPlatformSettings.module.css +110 -0
- package/src/components/settings/ImSkillsModal.jsx +94 -0
- package/src/components/settings/ImStatusChip.jsx +80 -0
- package/src/components/settings/ImStatusChip.module.css +36 -0
- package/src/components/settings/MessagingModal.jsx +65 -0
- package/src/components/settings/MessagingModal.module.css +95 -0
- package/src/components/settings/ModelPromptTabs.jsx +118 -0
- package/src/components/settings/PluginModal.jsx +423 -0
- package/src/components/settings/PluginModal.module.css +136 -0
- package/src/components/settings/PreferencesForm.jsx +104 -0
- package/src/components/settings/PreferencesForm.module.css +27 -0
- package/src/components/settings/ProcessModal.jsx +175 -0
- package/src/components/settings/ProcessModal.module.css +21 -0
- package/src/components/settings/ProjectAliasEditor.jsx +138 -0
- package/src/components/settings/ProjectAliasEditor.module.css +87 -0
- package/src/components/settings/ProjectPrefsManagerModal.jsx +123 -0
- package/src/components/settings/ProjectPrefsManagerModal.module.css +52 -0
- package/src/components/settings/ProxyModal.jsx +286 -0
- package/src/components/settings/ProxyModal.module.css +141 -0
- package/src/components/settings/SkillsManagerModal.jsx +143 -0
- package/src/components/settings/SkillsManagerModal.module.css +143 -0
- package/src/components/settings/SystemTextModal.jsx +312 -0
- package/src/components/settings/SystemTextModal.module.css +331 -0
- package/src/components/settings/VoicePackSettings.jsx +319 -0
- package/src/components/settings/VoicePackSettings.module.css +151 -0
- package/src/components/settings/imPlatforms.js +177 -0
- package/src/components/terminal/CustomUltraplanEditModal.jsx +227 -0
- package/src/components/terminal/CustomUltraplanEditModal.module.css +189 -0
- package/src/components/terminal/PresetExpertPickerModal.jsx +116 -0
- package/src/components/terminal/PresetExpertPickerModal.module.css +90 -0
- package/src/components/terminal/PresetModal.jsx +118 -0
- package/src/components/terminal/ScratchTerminal.jsx +359 -0
- package/src/components/terminal/TerminalPanel.jsx +2021 -0
- package/src/components/terminal/TerminalPanel.module.css +872 -0
- package/src/components/terminal/TerminalWsContext.jsx +226 -0
- package/src/components/terminal/UltraPlanModal.jsx +328 -0
- package/src/components/terminal/UltraPlanModal.module.css +527 -0
- package/src/components/terminal/UltraplanExpertManagerModal.jsx +114 -0
- package/src/components/terminal/UltraplanExpertManagerModal.module.css +91 -0
- package/src/components/terminal/UltraplanPanel.jsx +307 -0
- package/src/components/terminal/UltraplanPanel.module.css +540 -0
- package/src/components/terminal/terminalThemes.js +33 -0
- package/src/components/viewers/ImageViewer.jsx +288 -0
- package/src/components/viewers/ImageViewer.module.css +203 -0
- package/src/components/viewers/JsonViewer.jsx +40 -0
- package/src/components/viewers/JsonViewer.module.css +9 -0
- package/src/components/viewers/LogTable.jsx +131 -0
- package/src/components/viewers/MarkdownBlock.jsx +112 -0
- package/src/components/viewers/MarkdownBlock.module.css +157 -0
- package/src/components/viewers/ToolResultView.jsx +389 -0
- package/src/components/viewers/ToolResultView.module.css +108 -0
- package/src/components/viewers/WebResultsView.jsx +74 -0
- package/src/components/viewers/WebResultsView.module.css +85 -0
- package/src/components/viewers/WorkflowLiveHud.jsx +153 -0
- package/src/components/viewers/WorkflowLiveHud.module.css +256 -0
- package/src/components/viewers/WorkflowPanel.jsx +243 -0
- package/src/components/viewers/WorkflowPanel.module.css +265 -0
- package/src/components/viewers/WorkflowTimeline.jsx +83 -0
- package/src/components/viewers/WorkflowTimeline.module.css +116 -0
- package/src/contexts/SettingsContext.jsx +140 -0
- package/src/env.js +54 -0
- package/src/global.css +607 -0
- package/src/hooks/useMarkdownExport.js +146 -0
- package/src/hooks/useMermaidRender.js +193 -0
- package/src/hooks/useProjectAlias.js +29 -0
- package/src/hooks/useSessionStoragePersistedSet.js +41 -0
- package/src/i18n/mdxTranslations.js +472 -0
- package/src/i18n.js +12409 -0
- package/src/img/ccv-logo.png +0 -0
- package/src/img/codex/entrance.svg +7 -0
- package/src/img/codex/exit.svg +7 -0
- package/src/img/codex/orbiting.svg +7 -0
- package/src/img/codex/shimmer.svg +7 -0
- package/src/img/codex/thinking.svg +7 -0
- package/src/img/codex/tickle.svg +7 -0
- package/src/img/codex/waiting.svg +7 -0
- package/src/img/codex/writing.svg +7 -0
- package/src/img/default-avatar.svg +1 -0
- package/src/img/default-model-avatar.svg +1 -0
- package/src/img/loading-pet.gif +0 -0
- package/src/img/model-codex.svg +2 -0
- package/src/img/model-deepseek.svg +2 -0
- package/src/img/model-gemini.svg +2 -0
- package/src/img/model-glm.svg +2 -0
- package/src/img/model-kimi.svg +2 -0
- package/src/img/model-minimax.svg +2 -0
- package/src/img/model-openai.svg +2 -0
- package/src/img/model-qwen.svg +2 -0
- package/src/img/teammates/DESIGN.md +165 -0
- package/src/img/teammates/analyst.svg +32 -0
- package/src/img/teammates/auditor.svg +28 -0
- package/src/img/teammates/builder.svg +33 -0
- package/src/img/teammates/default.svg +25 -0
- package/src/img/teammates/designer.svg +25 -0
- package/src/img/teammates/executor.svg +31 -0
- package/src/img/teammates/expert.svg +30 -0
- package/src/img/teammates/explorer.svg +30 -0
- package/src/img/teammates/implementer.svg +34 -0
- package/src/img/teammates/investigator.svg +29 -0
- package/src/img/teammates/marvel/analyst.svg +26 -0
- package/src/img/teammates/marvel/auditor.svg +28 -0
- package/src/img/teammates/marvel/builder.svg +15 -0
- package/src/img/teammates/marvel/default.svg +25 -0
- package/src/img/teammates/marvel/designer.svg +21 -0
- package/src/img/teammates/marvel/executor.svg +25 -0
- package/src/img/teammates/marvel/expert.svg +31 -0
- package/src/img/teammates/marvel/explorer.svg +22 -0
- package/src/img/teammates/marvel/implementer.svg +30 -0
- package/src/img/teammates/marvel/investigator.svg +21 -0
- package/src/img/teammates/marvel/researcher.svg +30 -0
- package/src/img/teammates/marvel/reviewer.svg +21 -0
- package/src/img/teammates/marvel/scanner.svg +23 -0
- package/src/img/teammates/marvel/security.svg +30 -0
- package/src/img/teammates/marvel/tracer.svg +19 -0
- package/src/img/teammates/marvel/translator.svg +24 -0
- package/src/img/teammates/marvel/worker.svg +16 -0
- package/src/img/teammates/researcher.svg +35 -0
- package/src/img/teammates/reviewer.svg +23 -0
- package/src/img/teammates/scanner.svg +31 -0
- package/src/img/teammates/security.svg +31 -0
- package/src/img/teammates/tracer.svg +30 -0
- package/src/img/teammates/translator.svg +32 -0
- package/src/img/teammates/worker.svg +29 -0
- package/src/main.jsx +30 -0
- package/src/tokenInterceptor.js +60 -0
- package/src/utils/apiUrl.js +26 -0
- package/src/utils/approvalReviewerOptions.js +27 -0
- package/src/utils/askFallback.js +21 -0
- package/src/utils/askOptionDesc.js +55 -0
- package/src/utils/askPortalMatcher.js +54 -0
- package/src/utils/autoApproveOptions.js +23 -0
- package/src/utils/avatarAnimationPostPass.js +46 -0
- package/src/utils/builtinPresets.js +18 -0
- package/src/utils/clearCheckpoint.js +154 -0
- package/src/utils/commandValidator.js +45 -0
- package/src/utils/contentFilter.js +675 -0
- package/src/utils/contextRaw.js +17 -0
- package/src/utils/contextSidebarNavigation.js +16 -0
- package/src/utils/conversationEntryNormalize.js +497 -0
- package/src/utils/displayScaleHelper.js +47 -0
- package/src/utils/entry-slim.js +594 -0
- package/src/utils/entryCache.js +179 -0
- package/src/utils/errorReport.js +40 -0
- package/src/utils/fileExpandedPathsStorage.js +70 -0
- package/src/utils/fileIcons.jsx +36 -0
- package/src/utils/fileOpen.js +37 -0
- package/src/utils/formatters.js +48 -0
- package/src/utils/gitApi.js +50 -0
- package/src/utils/gitTreeBuilder.js +19 -0
- package/src/utils/helpers.js +462 -0
- package/src/utils/identityHeal.js +83 -0
- package/src/utils/imOrigin.js +24 -0
- package/src/utils/imTr.js +7 -0
- package/src/utils/imageCompress.js +83 -0
- package/src/utils/imageDownscale.js +28 -0
- package/src/utils/imageResize.js +112 -0
- package/src/utils/ingestPipeline.js +47 -0
- package/src/utils/lazyWithReload.js +53 -0
- package/src/utils/markdown.js +30 -0
- package/src/utils/markdownIncremental.js +39 -0
- package/src/utils/markdownProfiler.js +113 -0
- package/src/utils/mdExtensionDetect.js +64 -0
- package/src/utils/memoryLinkParser.js +44 -0
- package/src/utils/modalMask.js +15 -0
- package/src/utils/monotime.js +6 -0
- package/src/utils/pinnedMenu.js +55 -0
- package/src/utils/presetShortcuts.js +14 -0
- package/src/utils/projectAlias.js +135 -0
- package/src/utils/promptClassifier.js +111 -0
- package/src/utils/promptDetect.js +196 -0
- package/src/utils/promptNav.js +60 -0
- package/src/utils/ptyChunkBuilder.js +251 -0
- package/src/utils/quickMenuHoverIntent.js +35 -0
- package/src/utils/rateLimitParser.js +249 -0
- package/src/utils/readResultPool.js +106 -0
- package/src/utils/refreshCachedItemProp.js +32 -0
- package/src/utils/requestTools.js +19 -0
- package/src/utils/requestType.js +284 -0
- package/src/utils/resizeCalc.js +21 -0
- package/src/utils/resolveLocalized.js +17 -0
- package/src/utils/seqResourceLoaders.js +79 -0
- package/src/utils/sessionManager.js +694 -0
- package/src/utils/sessionMerge.js +290 -0
- package/src/utils/skillModalController.js +111 -0
- package/src/utils/skillsParser.js +116 -0
- package/src/utils/slashCommandLabels.js +80 -0
- package/src/utils/splitDragCalc.js +73 -0
- package/src/utils/stickyBottomController.js +643 -0
- package/src/utils/svgSanitize.js +48 -0
- package/src/utils/systemTags.js +47 -0
- package/src/utils/tCodex.js +20 -0
- package/src/utils/teamModalBuilder.js +347 -0
- package/src/utils/teamSessionParser.js +186 -0
- package/src/utils/teammateAvatars.js +194 -0
- package/src/utils/teammateDetector.js +106 -0
- package/src/utils/termDiag.js +114 -0
- package/src/utils/terminalClipboard.js +117 -0
- package/src/utils/terminalWriteQueue.js +398 -0
- package/src/utils/thinkingMerge.js +49 -0
- package/src/utils/tokenUsage.js +1 -0
- package/src/utils/toolCatalog.js +31 -0
- package/src/utils/toolNameAliases.js +13 -0
- package/src/utils/toolResultBuilder.js +312 -0
- package/src/utils/toolResultClassifier.js +16 -0
- package/src/utils/toolResultCore.js +161 -0
- package/src/utils/toolsDiff.js +44 -0
- package/src/utils/toolsXmlFormatter.js +3 -0
- package/src/utils/ultraplanController.js +109 -0
- package/src/utils/ultraplanExperts.js +86 -0
- package/src/utils/ultraplanTemplates.js +152 -0
- package/src/utils/userImageRefs.js +49 -0
- package/src/utils/voicePackPlayer.js +233 -0
- package/src/utils/webResultGrouping.js +111 -0
- package/src/utils/workflowFormat.js +52 -0
- package/src/utils/workflowRuns.js +118 -0
- package/src/utils/workflowStore.js +94 -0
- package/vite.config.js +106 -0
- package/concepts/ar/CacheRebuild.md +0 -36
- package/concepts/ar/KVCacheContent.md +0 -49
- package/concepts/ar/Tool-Agent.md +0 -125
- package/concepts/ar/Tool-AskUserQuestion.md +0 -75
- package/concepts/ar/Tool-Bash.md +0 -167
- package/concepts/ar/Tool-Edit.md +0 -46
- package/concepts/ar/Tool-EnterPlanMode.md +0 -128
- package/concepts/ar/Tool-EnterWorktree.md +0 -56
- package/concepts/ar/Tool-ExitPlanMode.md +0 -62
- package/concepts/ar/Tool-Glob.md +0 -39
- package/concepts/ar/Tool-Grep.md +0 -57
- package/concepts/ar/Tool-NotebookEdit.md +0 -33
- package/concepts/ar/Tool-Read.md +0 -56
- package/concepts/ar/Tool-SendMessage.md +0 -41
- package/concepts/ar/Tool-Skill.md +0 -56
- package/concepts/ar/Tool-Task.md +0 -51
- package/concepts/ar/Tool-TaskCreate.md +0 -78
- package/concepts/ar/Tool-TaskGet.md +0 -56
- package/concepts/ar/Tool-TaskList.md +0 -56
- package/concepts/ar/Tool-TaskOutput.md +0 -40
- package/concepts/ar/Tool-TaskStop.md +0 -32
- package/concepts/ar/Tool-TaskUpdate.md +0 -123
- package/concepts/ar/Tool-TeamCreate.md +0 -38
- package/concepts/ar/Tool-TeamDelete.md +0 -30
- package/concepts/ar/Tool-WebFetch.md +0 -55
- package/concepts/ar/Tool-WebSearch.md +0 -58
- package/concepts/ar/Tool-Write.md +0 -39
- package/concepts/ar/Tool-executeCode.md +0 -41
- package/concepts/ar/Tool-getDiagnostics.md +0 -32
- package/concepts/ar/Tools.md +0 -67
- package/concepts/da/CacheRebuild.md +0 -36
- package/concepts/da/KVCacheContent.md +0 -49
- package/concepts/da/Tool-Agent.md +0 -125
- package/concepts/da/Tool-AskUserQuestion.md +0 -75
- package/concepts/da/Tool-Bash.md +0 -167
- package/concepts/da/Tool-Edit.md +0 -46
- package/concepts/da/Tool-EnterPlanMode.md +0 -128
- package/concepts/da/Tool-EnterWorktree.md +0 -56
- package/concepts/da/Tool-ExitPlanMode.md +0 -62
- package/concepts/da/Tool-Glob.md +0 -39
- package/concepts/da/Tool-Grep.md +0 -57
- package/concepts/da/Tool-NotebookEdit.md +0 -33
- package/concepts/da/Tool-Read.md +0 -56
- package/concepts/da/Tool-SendMessage.md +0 -41
- package/concepts/da/Tool-Skill.md +0 -56
- package/concepts/da/Tool-Task.md +0 -51
- package/concepts/da/Tool-TaskCreate.md +0 -78
- package/concepts/da/Tool-TaskGet.md +0 -56
- package/concepts/da/Tool-TaskList.md +0 -56
- package/concepts/da/Tool-TaskOutput.md +0 -40
- package/concepts/da/Tool-TaskStop.md +0 -32
- package/concepts/da/Tool-TaskUpdate.md +0 -123
- package/concepts/da/Tool-TeamCreate.md +0 -38
- package/concepts/da/Tool-TeamDelete.md +0 -30
- package/concepts/da/Tool-WebFetch.md +0 -55
- package/concepts/da/Tool-WebSearch.md +0 -58
- package/concepts/da/Tool-Write.md +0 -39
- package/concepts/da/Tool-executeCode.md +0 -41
- package/concepts/da/Tool-getDiagnostics.md +0 -32
- package/concepts/da/Tools.md +0 -67
- package/concepts/de/CacheRebuild.md +0 -36
- package/concepts/de/KVCacheContent.md +0 -49
- package/concepts/de/Tool-Agent.md +0 -125
- package/concepts/de/Tool-AskUserQuestion.md +0 -75
- package/concepts/de/Tool-Bash.md +0 -167
- package/concepts/de/Tool-Edit.md +0 -46
- package/concepts/de/Tool-EnterPlanMode.md +0 -128
- package/concepts/de/Tool-EnterWorktree.md +0 -56
- package/concepts/de/Tool-ExitPlanMode.md +0 -62
- package/concepts/de/Tool-Glob.md +0 -39
- package/concepts/de/Tool-Grep.md +0 -57
- package/concepts/de/Tool-NotebookEdit.md +0 -33
- package/concepts/de/Tool-Read.md +0 -56
- package/concepts/de/Tool-SendMessage.md +0 -41
- package/concepts/de/Tool-Skill.md +0 -56
- package/concepts/de/Tool-Task.md +0 -51
- package/concepts/de/Tool-TaskCreate.md +0 -78
- package/concepts/de/Tool-TaskGet.md +0 -56
- package/concepts/de/Tool-TaskList.md +0 -56
- package/concepts/de/Tool-TaskOutput.md +0 -40
- package/concepts/de/Tool-TaskStop.md +0 -32
- package/concepts/de/Tool-TaskUpdate.md +0 -123
- package/concepts/de/Tool-TeamCreate.md +0 -38
- package/concepts/de/Tool-TeamDelete.md +0 -30
- package/concepts/de/Tool-WebFetch.md +0 -55
- package/concepts/de/Tool-WebSearch.md +0 -58
- package/concepts/de/Tool-Write.md +0 -39
- package/concepts/de/Tool-executeCode.md +0 -41
- package/concepts/de/Tool-getDiagnostics.md +0 -32
- package/concepts/de/Tools.md +0 -67
- package/concepts/en/CacheRebuild.md +0 -36
- package/concepts/en/KVCacheContent.md +0 -49
- package/concepts/en/Tool-Agent.md +0 -125
- package/concepts/en/Tool-AskUserQuestion.md +0 -75
- package/concepts/en/Tool-Bash.md +0 -167
- package/concepts/en/Tool-Edit.md +0 -46
- package/concepts/en/Tool-EnterPlanMode.md +0 -128
- package/concepts/en/Tool-EnterWorktree.md +0 -56
- package/concepts/en/Tool-ExitPlanMode.md +0 -62
- package/concepts/en/Tool-Glob.md +0 -39
- package/concepts/en/Tool-Grep.md +0 -57
- package/concepts/en/Tool-NotebookEdit.md +0 -33
- package/concepts/en/Tool-Read.md +0 -56
- package/concepts/en/Tool-SendMessage.md +0 -41
- package/concepts/en/Tool-Skill.md +0 -56
- package/concepts/en/Tool-Task.md +0 -51
- package/concepts/en/Tool-TaskCreate.md +0 -78
- package/concepts/en/Tool-TaskGet.md +0 -56
- package/concepts/en/Tool-TaskList.md +0 -56
- package/concepts/en/Tool-TaskOutput.md +0 -40
- package/concepts/en/Tool-TaskStop.md +0 -32
- package/concepts/en/Tool-TaskUpdate.md +0 -123
- package/concepts/en/Tool-TeamCreate.md +0 -38
- package/concepts/en/Tool-TeamDelete.md +0 -30
- package/concepts/en/Tool-WebFetch.md +0 -55
- package/concepts/en/Tool-WebSearch.md +0 -58
- package/concepts/en/Tool-Write.md +0 -39
- package/concepts/en/Tool-executeCode.md +0 -41
- package/concepts/en/Tool-getDiagnostics.md +0 -32
- package/concepts/es/CacheRebuild.md +0 -36
- package/concepts/es/KVCacheContent.md +0 -49
- package/concepts/es/Tool-Agent.md +0 -125
- package/concepts/es/Tool-AskUserQuestion.md +0 -75
- package/concepts/es/Tool-Bash.md +0 -167
- package/concepts/es/Tool-Edit.md +0 -46
- package/concepts/es/Tool-EnterPlanMode.md +0 -128
- package/concepts/es/Tool-EnterWorktree.md +0 -56
- package/concepts/es/Tool-ExitPlanMode.md +0 -62
- package/concepts/es/Tool-Glob.md +0 -39
- package/concepts/es/Tool-Grep.md +0 -57
- package/concepts/es/Tool-NotebookEdit.md +0 -33
- package/concepts/es/Tool-Read.md +0 -56
- package/concepts/es/Tool-SendMessage.md +0 -41
- package/concepts/es/Tool-Skill.md +0 -56
- package/concepts/es/Tool-Task.md +0 -51
- package/concepts/es/Tool-TaskCreate.md +0 -78
- package/concepts/es/Tool-TaskGet.md +0 -56
- package/concepts/es/Tool-TaskList.md +0 -56
- package/concepts/es/Tool-TaskOutput.md +0 -40
- package/concepts/es/Tool-TaskStop.md +0 -32
- package/concepts/es/Tool-TaskUpdate.md +0 -123
- package/concepts/es/Tool-TeamCreate.md +0 -38
- package/concepts/es/Tool-TeamDelete.md +0 -30
- package/concepts/es/Tool-WebFetch.md +0 -55
- package/concepts/es/Tool-WebSearch.md +0 -58
- package/concepts/es/Tool-Write.md +0 -39
- package/concepts/es/Tool-executeCode.md +0 -41
- package/concepts/es/Tool-getDiagnostics.md +0 -32
- package/concepts/es/Tools.md +0 -67
- package/concepts/fr/CacheRebuild.md +0 -36
- package/concepts/fr/KVCacheContent.md +0 -49
- package/concepts/fr/Tool-Agent.md +0 -125
- package/concepts/fr/Tool-AskUserQuestion.md +0 -75
- package/concepts/fr/Tool-Bash.md +0 -167
- package/concepts/fr/Tool-Edit.md +0 -46
- package/concepts/fr/Tool-EnterPlanMode.md +0 -128
- package/concepts/fr/Tool-EnterWorktree.md +0 -56
- package/concepts/fr/Tool-ExitPlanMode.md +0 -62
- package/concepts/fr/Tool-Glob.md +0 -39
- package/concepts/fr/Tool-Grep.md +0 -57
- package/concepts/fr/Tool-NotebookEdit.md +0 -33
- package/concepts/fr/Tool-Read.md +0 -56
- package/concepts/fr/Tool-SendMessage.md +0 -41
- package/concepts/fr/Tool-Skill.md +0 -56
- package/concepts/fr/Tool-Task.md +0 -51
- package/concepts/fr/Tool-TaskCreate.md +0 -78
- package/concepts/fr/Tool-TaskGet.md +0 -56
- package/concepts/fr/Tool-TaskList.md +0 -56
- package/concepts/fr/Tool-TaskOutput.md +0 -40
- package/concepts/fr/Tool-TaskStop.md +0 -32
- package/concepts/fr/Tool-TaskUpdate.md +0 -123
- package/concepts/fr/Tool-TeamCreate.md +0 -38
- package/concepts/fr/Tool-TeamDelete.md +0 -30
- package/concepts/fr/Tool-WebFetch.md +0 -55
- package/concepts/fr/Tool-WebSearch.md +0 -58
- package/concepts/fr/Tool-Write.md +0 -39
- package/concepts/fr/Tool-executeCode.md +0 -41
- package/concepts/fr/Tool-getDiagnostics.md +0 -32
- package/concepts/fr/Tools.md +0 -67
- package/concepts/it/CacheRebuild.md +0 -36
- package/concepts/it/KVCacheContent.md +0 -49
- package/concepts/it/Tool-Agent.md +0 -125
- package/concepts/it/Tool-AskUserQuestion.md +0 -75
- package/concepts/it/Tool-Bash.md +0 -167
- package/concepts/it/Tool-Edit.md +0 -46
- package/concepts/it/Tool-EnterPlanMode.md +0 -128
- package/concepts/it/Tool-EnterWorktree.md +0 -56
- package/concepts/it/Tool-ExitPlanMode.md +0 -62
- package/concepts/it/Tool-Glob.md +0 -39
- package/concepts/it/Tool-Grep.md +0 -57
- package/concepts/it/Tool-NotebookEdit.md +0 -33
- package/concepts/it/Tool-Read.md +0 -56
- package/concepts/it/Tool-SendMessage.md +0 -41
- package/concepts/it/Tool-Skill.md +0 -56
- package/concepts/it/Tool-Task.md +0 -51
- package/concepts/it/Tool-TaskCreate.md +0 -78
- package/concepts/it/Tool-TaskGet.md +0 -56
- package/concepts/it/Tool-TaskList.md +0 -56
- package/concepts/it/Tool-TaskOutput.md +0 -40
- package/concepts/it/Tool-TaskStop.md +0 -32
- package/concepts/it/Tool-TaskUpdate.md +0 -123
- package/concepts/it/Tool-TeamCreate.md +0 -38
- package/concepts/it/Tool-TeamDelete.md +0 -30
- package/concepts/it/Tool-WebFetch.md +0 -55
- package/concepts/it/Tool-WebSearch.md +0 -58
- package/concepts/it/Tool-Write.md +0 -39
- package/concepts/it/Tool-executeCode.md +0 -41
- package/concepts/it/Tool-getDiagnostics.md +0 -32
- package/concepts/it/Tools.md +0 -67
- package/concepts/ja/CacheRebuild.md +0 -36
- package/concepts/ja/KVCacheContent.md +0 -49
- package/concepts/ja/Tool-Agent.md +0 -125
- package/concepts/ja/Tool-AskUserQuestion.md +0 -75
- package/concepts/ja/Tool-Bash.md +0 -167
- package/concepts/ja/Tool-Edit.md +0 -46
- package/concepts/ja/Tool-EnterPlanMode.md +0 -128
- package/concepts/ja/Tool-EnterWorktree.md +0 -56
- package/concepts/ja/Tool-ExitPlanMode.md +0 -62
- package/concepts/ja/Tool-Glob.md +0 -39
- package/concepts/ja/Tool-Grep.md +0 -57
- package/concepts/ja/Tool-NotebookEdit.md +0 -33
- package/concepts/ja/Tool-Read.md +0 -56
- package/concepts/ja/Tool-SendMessage.md +0 -41
- package/concepts/ja/Tool-Skill.md +0 -56
- package/concepts/ja/Tool-Task.md +0 -51
- package/concepts/ja/Tool-TaskCreate.md +0 -78
- package/concepts/ja/Tool-TaskGet.md +0 -56
- package/concepts/ja/Tool-TaskList.md +0 -56
- package/concepts/ja/Tool-TaskOutput.md +0 -40
- package/concepts/ja/Tool-TaskStop.md +0 -32
- package/concepts/ja/Tool-TaskUpdate.md +0 -123
- package/concepts/ja/Tool-TeamCreate.md +0 -38
- package/concepts/ja/Tool-TeamDelete.md +0 -30
- package/concepts/ja/Tool-WebFetch.md +0 -55
- package/concepts/ja/Tool-WebSearch.md +0 -58
- package/concepts/ja/Tool-Write.md +0 -39
- package/concepts/ja/Tool-executeCode.md +0 -41
- package/concepts/ja/Tool-getDiagnostics.md +0 -32
- package/concepts/ja/Tools.md +0 -67
- package/concepts/ko/CacheRebuild.md +0 -36
- package/concepts/ko/KVCacheContent.md +0 -49
- package/concepts/ko/Tool-Agent.md +0 -125
- package/concepts/ko/Tool-AskUserQuestion.md +0 -75
- package/concepts/ko/Tool-Bash.md +0 -167
- package/concepts/ko/Tool-Edit.md +0 -46
- package/concepts/ko/Tool-EnterPlanMode.md +0 -128
- package/concepts/ko/Tool-EnterWorktree.md +0 -56
- package/concepts/ko/Tool-ExitPlanMode.md +0 -62
- package/concepts/ko/Tool-Glob.md +0 -39
- package/concepts/ko/Tool-Grep.md +0 -57
- package/concepts/ko/Tool-NotebookEdit.md +0 -33
- package/concepts/ko/Tool-Read.md +0 -56
- package/concepts/ko/Tool-SendMessage.md +0 -41
- package/concepts/ko/Tool-Skill.md +0 -56
- package/concepts/ko/Tool-Task.md +0 -51
- package/concepts/ko/Tool-TaskCreate.md +0 -78
- package/concepts/ko/Tool-TaskGet.md +0 -56
- package/concepts/ko/Tool-TaskList.md +0 -56
- package/concepts/ko/Tool-TaskOutput.md +0 -40
- package/concepts/ko/Tool-TaskStop.md +0 -32
- package/concepts/ko/Tool-TaskUpdate.md +0 -123
- package/concepts/ko/Tool-TeamCreate.md +0 -38
- package/concepts/ko/Tool-TeamDelete.md +0 -30
- package/concepts/ko/Tool-WebFetch.md +0 -55
- package/concepts/ko/Tool-WebSearch.md +0 -58
- package/concepts/ko/Tool-Write.md +0 -39
- package/concepts/ko/Tool-executeCode.md +0 -41
- package/concepts/ko/Tool-getDiagnostics.md +0 -32
- package/concepts/ko/Tools.md +0 -67
- package/concepts/no/CacheRebuild.md +0 -36
- package/concepts/no/KVCacheContent.md +0 -49
- package/concepts/no/Tool-Agent.md +0 -125
- package/concepts/no/Tool-AskUserQuestion.md +0 -75
- package/concepts/no/Tool-Bash.md +0 -167
- package/concepts/no/Tool-Edit.md +0 -46
- package/concepts/no/Tool-EnterPlanMode.md +0 -128
- package/concepts/no/Tool-EnterWorktree.md +0 -56
- package/concepts/no/Tool-ExitPlanMode.md +0 -62
- package/concepts/no/Tool-Glob.md +0 -39
- package/concepts/no/Tool-Grep.md +0 -57
- package/concepts/no/Tool-NotebookEdit.md +0 -33
- package/concepts/no/Tool-Read.md +0 -56
- package/concepts/no/Tool-SendMessage.md +0 -41
- package/concepts/no/Tool-Skill.md +0 -56
- package/concepts/no/Tool-Task.md +0 -51
- package/concepts/no/Tool-TaskCreate.md +0 -78
- package/concepts/no/Tool-TaskGet.md +0 -56
- package/concepts/no/Tool-TaskList.md +0 -56
- package/concepts/no/Tool-TaskOutput.md +0 -40
- package/concepts/no/Tool-TaskStop.md +0 -32
- package/concepts/no/Tool-TaskUpdate.md +0 -123
- package/concepts/no/Tool-TeamCreate.md +0 -38
- package/concepts/no/Tool-TeamDelete.md +0 -30
- package/concepts/no/Tool-WebFetch.md +0 -55
- package/concepts/no/Tool-WebSearch.md +0 -58
- package/concepts/no/Tool-Write.md +0 -39
- package/concepts/no/Tool-executeCode.md +0 -41
- package/concepts/no/Tool-getDiagnostics.md +0 -32
- package/concepts/no/Tools.md +0 -67
- package/concepts/pl/CacheRebuild.md +0 -36
- package/concepts/pl/KVCacheContent.md +0 -49
- package/concepts/pl/Tool-Agent.md +0 -125
- package/concepts/pl/Tool-AskUserQuestion.md +0 -75
- package/concepts/pl/Tool-Bash.md +0 -167
- package/concepts/pl/Tool-Edit.md +0 -46
- package/concepts/pl/Tool-EnterPlanMode.md +0 -128
- package/concepts/pl/Tool-EnterWorktree.md +0 -56
- package/concepts/pl/Tool-ExitPlanMode.md +0 -62
- package/concepts/pl/Tool-Glob.md +0 -39
- package/concepts/pl/Tool-Grep.md +0 -57
- package/concepts/pl/Tool-NotebookEdit.md +0 -33
- package/concepts/pl/Tool-Read.md +0 -56
- package/concepts/pl/Tool-SendMessage.md +0 -41
- package/concepts/pl/Tool-Skill.md +0 -56
- package/concepts/pl/Tool-Task.md +0 -51
- package/concepts/pl/Tool-TaskCreate.md +0 -78
- package/concepts/pl/Tool-TaskGet.md +0 -56
- package/concepts/pl/Tool-TaskList.md +0 -56
- package/concepts/pl/Tool-TaskOutput.md +0 -40
- package/concepts/pl/Tool-TaskStop.md +0 -32
- package/concepts/pl/Tool-TaskUpdate.md +0 -123
- package/concepts/pl/Tool-TeamCreate.md +0 -38
- package/concepts/pl/Tool-TeamDelete.md +0 -30
- package/concepts/pl/Tool-WebFetch.md +0 -55
- package/concepts/pl/Tool-WebSearch.md +0 -58
- package/concepts/pl/Tool-Write.md +0 -39
- package/concepts/pl/Tool-executeCode.md +0 -41
- package/concepts/pl/Tool-getDiagnostics.md +0 -32
- package/concepts/pl/Tools.md +0 -67
- package/concepts/pt-BR/CacheRebuild.md +0 -36
- package/concepts/pt-BR/KVCacheContent.md +0 -49
- package/concepts/pt-BR/Tool-Agent.md +0 -125
- package/concepts/pt-BR/Tool-AskUserQuestion.md +0 -75
- package/concepts/pt-BR/Tool-Bash.md +0 -167
- package/concepts/pt-BR/Tool-Edit.md +0 -46
- package/concepts/pt-BR/Tool-EnterPlanMode.md +0 -128
- package/concepts/pt-BR/Tool-EnterWorktree.md +0 -56
- package/concepts/pt-BR/Tool-ExitPlanMode.md +0 -62
- package/concepts/pt-BR/Tool-Glob.md +0 -39
- package/concepts/pt-BR/Tool-Grep.md +0 -57
- package/concepts/pt-BR/Tool-NotebookEdit.md +0 -33
- package/concepts/pt-BR/Tool-Read.md +0 -56
- package/concepts/pt-BR/Tool-SendMessage.md +0 -41
- package/concepts/pt-BR/Tool-Skill.md +0 -56
- package/concepts/pt-BR/Tool-Task.md +0 -51
- package/concepts/pt-BR/Tool-TaskCreate.md +0 -78
- package/concepts/pt-BR/Tool-TaskGet.md +0 -56
- package/concepts/pt-BR/Tool-TaskList.md +0 -56
- package/concepts/pt-BR/Tool-TaskOutput.md +0 -40
- package/concepts/pt-BR/Tool-TaskStop.md +0 -32
- package/concepts/pt-BR/Tool-TaskUpdate.md +0 -123
- package/concepts/pt-BR/Tool-TeamCreate.md +0 -38
- package/concepts/pt-BR/Tool-TeamDelete.md +0 -30
- package/concepts/pt-BR/Tool-WebFetch.md +0 -55
- package/concepts/pt-BR/Tool-WebSearch.md +0 -58
- package/concepts/pt-BR/Tool-Write.md +0 -39
- package/concepts/pt-BR/Tool-executeCode.md +0 -41
- package/concepts/pt-BR/Tool-getDiagnostics.md +0 -32
- package/concepts/pt-BR/Tools.md +0 -67
- package/concepts/ru/CacheRebuild.md +0 -36
- package/concepts/ru/KVCacheContent.md +0 -49
- package/concepts/ru/Tool-Agent.md +0 -125
- package/concepts/ru/Tool-AskUserQuestion.md +0 -75
- package/concepts/ru/Tool-Bash.md +0 -167
- package/concepts/ru/Tool-Edit.md +0 -46
- package/concepts/ru/Tool-EnterPlanMode.md +0 -128
- package/concepts/ru/Tool-EnterWorktree.md +0 -56
- package/concepts/ru/Tool-ExitPlanMode.md +0 -62
- package/concepts/ru/Tool-Glob.md +0 -39
- package/concepts/ru/Tool-Grep.md +0 -57
- package/concepts/ru/Tool-NotebookEdit.md +0 -33
- package/concepts/ru/Tool-Read.md +0 -56
- package/concepts/ru/Tool-SendMessage.md +0 -41
- package/concepts/ru/Tool-Skill.md +0 -56
- package/concepts/ru/Tool-Task.md +0 -51
- package/concepts/ru/Tool-TaskCreate.md +0 -78
- package/concepts/ru/Tool-TaskGet.md +0 -56
- package/concepts/ru/Tool-TaskList.md +0 -56
- package/concepts/ru/Tool-TaskOutput.md +0 -40
- package/concepts/ru/Tool-TaskStop.md +0 -32
- package/concepts/ru/Tool-TaskUpdate.md +0 -123
- package/concepts/ru/Tool-TeamCreate.md +0 -38
- package/concepts/ru/Tool-TeamDelete.md +0 -30
- package/concepts/ru/Tool-WebFetch.md +0 -55
- package/concepts/ru/Tool-WebSearch.md +0 -58
- package/concepts/ru/Tool-Write.md +0 -39
- package/concepts/ru/Tool-executeCode.md +0 -41
- package/concepts/ru/Tool-getDiagnostics.md +0 -32
- package/concepts/ru/Tools.md +0 -67
- package/concepts/th/CacheRebuild.md +0 -36
- package/concepts/th/KVCacheContent.md +0 -49
- package/concepts/th/Tool-Agent.md +0 -125
- package/concepts/th/Tool-AskUserQuestion.md +0 -75
- package/concepts/th/Tool-Bash.md +0 -167
- package/concepts/th/Tool-Edit.md +0 -46
- package/concepts/th/Tool-EnterPlanMode.md +0 -128
- package/concepts/th/Tool-EnterWorktree.md +0 -56
- package/concepts/th/Tool-ExitPlanMode.md +0 -62
- package/concepts/th/Tool-Glob.md +0 -39
- package/concepts/th/Tool-Grep.md +0 -57
- package/concepts/th/Tool-NotebookEdit.md +0 -33
- package/concepts/th/Tool-Read.md +0 -56
- package/concepts/th/Tool-SendMessage.md +0 -41
- package/concepts/th/Tool-Skill.md +0 -56
- package/concepts/th/Tool-Task.md +0 -51
- package/concepts/th/Tool-TaskCreate.md +0 -78
- package/concepts/th/Tool-TaskGet.md +0 -56
- package/concepts/th/Tool-TaskList.md +0 -56
- package/concepts/th/Tool-TaskOutput.md +0 -40
- package/concepts/th/Tool-TaskStop.md +0 -32
- package/concepts/th/Tool-TaskUpdate.md +0 -123
- package/concepts/th/Tool-TeamCreate.md +0 -38
- package/concepts/th/Tool-TeamDelete.md +0 -30
- package/concepts/th/Tool-WebFetch.md +0 -55
- package/concepts/th/Tool-WebSearch.md +0 -58
- package/concepts/th/Tool-Write.md +0 -39
- package/concepts/th/Tool-executeCode.md +0 -41
- package/concepts/th/Tool-getDiagnostics.md +0 -32
- package/concepts/th/Tools.md +0 -67
- package/concepts/tr/CacheRebuild.md +0 -36
- package/concepts/tr/KVCacheContent.md +0 -49
- package/concepts/tr/Tool-Agent.md +0 -125
- package/concepts/tr/Tool-AskUserQuestion.md +0 -75
- package/concepts/tr/Tool-Bash.md +0 -167
- package/concepts/tr/Tool-Edit.md +0 -46
- package/concepts/tr/Tool-EnterPlanMode.md +0 -128
- package/concepts/tr/Tool-EnterWorktree.md +0 -56
- package/concepts/tr/Tool-ExitPlanMode.md +0 -62
- package/concepts/tr/Tool-Glob.md +0 -39
- package/concepts/tr/Tool-Grep.md +0 -57
- package/concepts/tr/Tool-NotebookEdit.md +0 -33
- package/concepts/tr/Tool-Read.md +0 -56
- package/concepts/tr/Tool-SendMessage.md +0 -41
- package/concepts/tr/Tool-Skill.md +0 -56
- package/concepts/tr/Tool-Task.md +0 -51
- package/concepts/tr/Tool-TaskCreate.md +0 -78
- package/concepts/tr/Tool-TaskGet.md +0 -56
- package/concepts/tr/Tool-TaskList.md +0 -56
- package/concepts/tr/Tool-TaskOutput.md +0 -40
- package/concepts/tr/Tool-TaskStop.md +0 -32
- package/concepts/tr/Tool-TaskUpdate.md +0 -123
- package/concepts/tr/Tool-TeamCreate.md +0 -38
- package/concepts/tr/Tool-TeamDelete.md +0 -30
- package/concepts/tr/Tool-WebFetch.md +0 -55
- package/concepts/tr/Tool-WebSearch.md +0 -58
- package/concepts/tr/Tool-Write.md +0 -39
- package/concepts/tr/Tool-executeCode.md +0 -41
- package/concepts/tr/Tool-getDiagnostics.md +0 -32
- package/concepts/tr/Tools.md +0 -67
- package/concepts/uk/CacheRebuild.md +0 -36
- package/concepts/uk/KVCacheContent.md +0 -49
- package/concepts/uk/Tool-Agent.md +0 -125
- package/concepts/uk/Tool-AskUserQuestion.md +0 -75
- package/concepts/uk/Tool-Bash.md +0 -167
- package/concepts/uk/Tool-Edit.md +0 -46
- package/concepts/uk/Tool-EnterPlanMode.md +0 -128
- package/concepts/uk/Tool-EnterWorktree.md +0 -56
- package/concepts/uk/Tool-ExitPlanMode.md +0 -62
- package/concepts/uk/Tool-Glob.md +0 -39
- package/concepts/uk/Tool-Grep.md +0 -57
- package/concepts/uk/Tool-NotebookEdit.md +0 -33
- package/concepts/uk/Tool-Read.md +0 -56
- package/concepts/uk/Tool-SendMessage.md +0 -41
- package/concepts/uk/Tool-Skill.md +0 -56
- package/concepts/uk/Tool-Task.md +0 -51
- package/concepts/uk/Tool-TaskCreate.md +0 -78
- package/concepts/uk/Tool-TaskGet.md +0 -56
- package/concepts/uk/Tool-TaskList.md +0 -56
- package/concepts/uk/Tool-TaskOutput.md +0 -40
- package/concepts/uk/Tool-TaskStop.md +0 -32
- package/concepts/uk/Tool-TaskUpdate.md +0 -123
- package/concepts/uk/Tool-TeamCreate.md +0 -38
- package/concepts/uk/Tool-TeamDelete.md +0 -30
- package/concepts/uk/Tool-WebFetch.md +0 -55
- package/concepts/uk/Tool-WebSearch.md +0 -58
- package/concepts/uk/Tool-Write.md +0 -39
- package/concepts/uk/Tool-executeCode.md +0 -41
- package/concepts/uk/Tool-getDiagnostics.md +0 -32
- package/concepts/uk/Tools.md +0 -67
- package/concepts/zh/CacheRebuild.md +0 -36
- package/concepts/zh/KVCacheContent.md +0 -49
- package/concepts/zh/Tool-Agent.md +0 -125
- package/concepts/zh/Tool-AskUserQuestion.md +0 -75
- package/concepts/zh/Tool-Bash.md +0 -167
- package/concepts/zh/Tool-Edit.md +0 -46
- package/concepts/zh/Tool-EnterPlanMode.md +0 -128
- package/concepts/zh/Tool-EnterWorktree.md +0 -56
- package/concepts/zh/Tool-ExitPlanMode.md +0 -62
- package/concepts/zh/Tool-Glob.md +0 -39
- package/concepts/zh/Tool-Grep.md +0 -57
- package/concepts/zh/Tool-NotebookEdit.md +0 -33
- package/concepts/zh/Tool-Read.md +0 -56
- package/concepts/zh/Tool-SendMessage.md +0 -41
- package/concepts/zh/Tool-Skill.md +0 -56
- package/concepts/zh/Tool-Task.md +0 -51
- package/concepts/zh/Tool-TaskCreate.md +0 -78
- package/concepts/zh/Tool-TaskGet.md +0 -56
- package/concepts/zh/Tool-TaskList.md +0 -56
- package/concepts/zh/Tool-TaskOutput.md +0 -40
- package/concepts/zh/Tool-TaskStop.md +0 -32
- package/concepts/zh/Tool-TaskUpdate.md +0 -123
- package/concepts/zh/Tool-TeamCreate.md +0 -38
- package/concepts/zh/Tool-TeamDelete.md +0 -30
- package/concepts/zh/Tool-WebFetch.md +0 -55
- package/concepts/zh/Tool-WebSearch.md +0 -58
- package/concepts/zh/Tool-Write.md +0 -39
- package/concepts/zh/Tool-executeCode.md +0 -41
- package/concepts/zh/Tool-getDiagnostics.md +0 -32
- package/concepts/zh-TW/CacheRebuild.md +0 -36
- package/concepts/zh-TW/KVCacheContent.md +0 -49
- package/concepts/zh-TW/Tool-Agent.md +0 -125
- package/concepts/zh-TW/Tool-AskUserQuestion.md +0 -75
- package/concepts/zh-TW/Tool-Bash.md +0 -167
- package/concepts/zh-TW/Tool-Edit.md +0 -46
- package/concepts/zh-TW/Tool-EnterPlanMode.md +0 -128
- package/concepts/zh-TW/Tool-EnterWorktree.md +0 -56
- package/concepts/zh-TW/Tool-ExitPlanMode.md +0 -62
- package/concepts/zh-TW/Tool-Glob.md +0 -39
- package/concepts/zh-TW/Tool-Grep.md +0 -57
- package/concepts/zh-TW/Tool-NotebookEdit.md +0 -33
- package/concepts/zh-TW/Tool-Read.md +0 -56
- package/concepts/zh-TW/Tool-SendMessage.md +0 -41
- package/concepts/zh-TW/Tool-Skill.md +0 -56
- package/concepts/zh-TW/Tool-Task.md +0 -51
- package/concepts/zh-TW/Tool-TaskCreate.md +0 -78
- package/concepts/zh-TW/Tool-TaskGet.md +0 -56
- package/concepts/zh-TW/Tool-TaskList.md +0 -56
- package/concepts/zh-TW/Tool-TaskOutput.md +0 -40
- package/concepts/zh-TW/Tool-TaskStop.md +0 -32
- package/concepts/zh-TW/Tool-TaskUpdate.md +0 -123
- package/concepts/zh-TW/Tool-TeamCreate.md +0 -38
- package/concepts/zh-TW/Tool-TeamDelete.md +0 -30
- package/concepts/zh-TW/Tool-WebFetch.md +0 -55
- package/concepts/zh-TW/Tool-WebSearch.md +0 -58
- package/concepts/zh-TW/Tool-Write.md +0 -39
- package/concepts/zh-TW/Tool-executeCode.md +0 -41
- package/concepts/zh-TW/Tool-getDiagnostics.md +0 -32
- package/concepts/zh-TW/Tools.md +0 -67
- package/dist/assets/App-BN2YmKSu.js +0 -41
- package/dist/assets/App-fG2r3jFq.css +0 -1
- package/dist/assets/AppHeader-BqUGBbBx.css +0 -41
- package/dist/assets/AppHeader.module-CvH9GQQ2.js +0 -1250
- package/dist/assets/Mobile-BnDkLcBv.css +0 -1
- package/dist/assets/Mobile-CbC8YD3O.js +0 -10
- package/dist/assets/_baseUniq-B2ddYY2A.js +0 -1
- package/dist/assets/arc-DFPOHgcd.js +0 -1
- package/dist/assets/architectureDiagram-Q4EWVU46-1tuXixQv.js +0 -36
- package/dist/assets/blockDiagram-DXYQGD6D-BfVKQPAV.js +0 -132
- package/dist/assets/c4Diagram-AHTNJAMY-Bua8O4-1.js +0 -10
- package/dist/assets/channel-Cf9uPxYW.js +0 -1
- package/dist/assets/chunk-4BX2VUAB-YOIkSNn_.js +0 -1
- package/dist/assets/chunk-4TB4RGXK-CjZt-To5.js +0 -206
- package/dist/assets/chunk-55IACEB6-BAEfMF5S.js +0 -1
- package/dist/assets/chunk-EDXVE4YY-BUYDmLXU.js +0 -1
- package/dist/assets/chunk-FMBD7UC4-Cw_LDap-.js +0 -15
- package/dist/assets/chunk-OYMX7WX6-PlfZFFxd.js +0 -231
- package/dist/assets/chunk-QZHKN3VN-C2ReFZl_.js +0 -1
- package/dist/assets/chunk-YZCP3GAM-B7IVGkPB.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DdwVeNLZ.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DdwVeNLZ.js +0 -1
- package/dist/assets/clone-C8Lz0121.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-M6rBKf0y.js +0 -1
- package/dist/assets/cytoscape.esm-DxGcaOPV.js +0 -331
- package/dist/assets/dagre-KV5264BT-UPacTWnL.js +0 -4
- package/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/dist/assets/diagram-5BDNPKRD-Cjjtnh0e.js +0 -10
- package/dist/assets/diagram-G4DWMVQ6-CjXILMP0.js +0 -24
- package/dist/assets/diagram-MMDJMWI5-C_-XZ9gc.js +0 -43
- package/dist/assets/diagram-TYMM5635-Dxe2GxUR.js +0 -24
- package/dist/assets/erDiagram-SMLLAGMA-1w-wtgMd.js +0 -85
- package/dist/assets/flowDiagram-DWJPFMVM-B9naMGCj.js +0 -162
- package/dist/assets/ganttDiagram-T4ZO3ILL-BPZBdhPv.js +0 -292
- package/dist/assets/gitGraphDiagram-UUTBAWPF-_P9PdiGG.js +0 -106
- package/dist/assets/graph-CjOY8lRz.js +0 -1
- package/dist/assets/html2canvas.esm-QH1iLAAe.js +0 -22
- package/dist/assets/index-BcCW9op4.js +0 -41
- package/dist/assets/index-DCtZ2KSX.css +0 -1
- package/dist/assets/infoDiagram-42DDH7IO-Ch8SOTtq.js +0 -2
- package/dist/assets/init-Gi6I4Gst.js +0 -1
- package/dist/assets/ishikawaDiagram-UXIWVN3A-XLscQrJT.js +0 -70
- package/dist/assets/journeyDiagram-VCZTEJTY-C3FQ_QPk.js +0 -139
- package/dist/assets/kanban-definition-6JOO6SKY-DIQDTOi3.js +0 -89
- package/dist/assets/katex-DkKDou_j.js +0 -257
- package/dist/assets/layout-DO9W0X_b.js +0 -1
- package/dist/assets/linear-ClCJqwn1.js +0 -1
- package/dist/assets/mermaid.core-BW02B1TS.js +0 -308
- package/dist/assets/min-BuzClhio.js +0 -1
- package/dist/assets/mindmap-definition-QFDTVHPH-DuCaTeZu.js +0 -96
- package/dist/assets/ordinal-Cboi1Yqb.js +0 -1
- package/dist/assets/pieDiagram-DEJITSTG-BZoZ6CI1.js +0 -30
- package/dist/assets/quadrantDiagram-34T5L4WZ-DFNwvtmc.js +0 -7
- package/dist/assets/requirementDiagram-MS252O5E-DPG-7raV.js +0 -84
- package/dist/assets/sankeyDiagram-XADWPNL6-Bp92e1ie.js +0 -10
- package/dist/assets/sequenceDiagram-FGHM5R23-C6ADwqJY.js +0 -157
- package/dist/assets/stateDiagram-FHFEXIEX-BfrwZGmF.js +0 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-4gBW7EPI.js +0 -1
- package/dist/assets/timeline-definition-GMOUNBTQ-Bb-TxYx2.js +0 -120
- package/dist/assets/vennDiagram-DHZGUBPP-DTRiNXJu.js +0 -34
- package/dist/assets/wardley-RL74JXVD-C8j_kjXS.js +0 -162
- package/dist/assets/wardleyDiagram-NUSXRM2D-CvICMc3N.js +0 -20
- package/dist/assets/xychartDiagram-5P7HB3ND-DI0bBGwq.js +0 -7
- package/lib/kv-cache-analyzer.js +0 -164
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" aria-hidden="true" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<path d="M38.5 69.5C33 71 27.5 74.5 24.5 79C22.6 82 22.2 84.5 22.2 86.5C28.5 91.5 38 93.6 47.5 93.6C57 93.6 66 91.5 72.8 86.5C72.8 84.5 72.4 82 70.5 79C67.5 74.5 62 71 56.5 69.5C51.5 72.8 43.5 72.8 38.5 69.5Z" fill="#3b6ea5"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.674;1" dur="0.86s" begin="0s" fill="freeze"/></path>
|
|
3
|
+
<path d="M43 54.5L43 64C45.5 66 49.5 66 52 64L52 54.5C49.5 57.5 45.5 57.5 43 54.5Z" fill="#eec49c"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.633;1" dur="0.6s" begin="0s" fill="freeze"/></path>
|
|
4
|
+
<path d="M43 55C45.5 57.8 49.5 57.8 52 55L52 58.5C49.5 60.8 45.5 60.8 43 58.5Z" fill="#dfa878"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.714;1" dur="0.7s" begin="0s" fill="freeze"/></path>
|
|
5
|
+
<path d="M43 62.5L47.5 66.5L43 73L38 70C39 67 41 64.5 43 62.5ZM52 62.5L47.5 66.5L52 73L57 70C56 67 54 64.5 52 62.5Z" fill="#4a7cb0"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.694;1" dur="0.72s" begin="0s" fill="freeze"/></path>
|
|
6
|
+
<path d="M35.2 34C35.2 26.8 40.6 23.6 47.5 23.6C54.4 23.6 60 27 60 34.2C60 43.5 58 50.8 54.2 54.8C50.4 58.8 44.6 58.7 40.9 54.6C37.2 50.4 35.2 43 35.2 34Z" fill="#eec49c"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.548;1" dur="0.62s" begin="0s" fill="freeze"/></path>
|
|
7
|
+
<path d="M38.7 47.2a2.3 1.9 0 1 0 4.6 0a2.3 1.9 0 1 0-4.6 0ZM51.7 47.2a2.3 1.9 0 1 0 4.6 0a2.3 1.9 0 1 0-4.6 0Z" fill="rgba(201,64,58,0.3)"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.733;1" dur="0.75s" begin="0s" fill="freeze"/></path>
|
|
8
|
+
<path d="M43.9 52.1C45.3 51.2 46.9 51.4 47.6 52C48.3 51.4 49.9 51.2 51.3 52.1C50 53.7 45.3 53.7 43.9 52.1Z" fill="#b56a68"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.652;1" dur="0.46s" begin="0s" fill="freeze"/></path>
|
|
9
|
+
<path d="M40.9 42.6a1.8 1.5 0 1 0 3.6 0a1.8 1.5 0 1 0-3.6 0ZM51.1 42.6a1.8 1.5 0 1 0 3.6 0a1.8 1.5 0 1 0-3.6 0Z" fill="#2b2233"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.571;1" dur="0.42s" begin="0s" fill="freeze"/></path>
|
|
10
|
+
<path d="M35.5 40C32.5 35 32.5 25 35 19C38 13 44 11.5 49.5 11.5C55 11.5 61 13 64 19C66.5 25 66.5 35 63.5 40C61 35.5 60 30 58 27C54.5 22.5 44.5 22.5 41 27C39 30 38 35.5 35.5 40Z" fill="#c9403a"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.517;1" dur="0.58s" begin="0s" fill="freeze"/></path>
|
|
11
|
+
<path d="M45 13C46 8.5 53 8.5 54 13C55 11 57.5 10.5 59.5 12C58 14.5 54.5 14.5 54 13C52.5 15 46.5 15 45 13C44.5 14.5 41 14.5 39.5 12C41.5 10.5 44 11 45 13Z" fill="#c9403a"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.6;1" dur="0.6s" begin="0s" fill="freeze"/></path>
|
|
12
|
+
<path d="M35.5 32a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0ZM42.5 18a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0ZM53.5 18a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0ZM61 32a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0ZM33 24a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0ZM63 24a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0Z" fill="#f4e9d8"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.72;1" dur="0.72s" begin="0s" fill="freeze"/></path>
|
|
13
|
+
<path d="M40.5 27.5C41 31 42.5 32.5 44 32.5C43.3 30.5 42.5 28.5 42 27ZM46.5 27C46.7 30 47.8 31.5 49.3 31.5C48.8 29.5 48.3 28 48 26.5ZM52.5 27C52.5 30 53.5 31.5 55 32C54.5 29.5 54 28 53.5 27Z" fill="#5a3d28"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.66;1" dur="0.64s" begin="0s" fill="freeze"/></path>
|
|
14
|
+
<path d="M68.1 59.8L71.9 62.2L82.9 45.2L86 42L80.5 38.8L85.5 35.5L82 34C80 33.8 78.5 35.5 79.1 42.8Z" fill="#9aa0a8"><animate attributeName="opacity" values="0;0;1" keyTimes="0;0.787;1" dur="0.94s" begin="0s" fill="freeze"/></path>
|
|
15
|
+
<path d="M35.4 33C34.8 40.5 36.2 48.8 40.9 54.6C44.4 58.6 50.4 58.7 54.2 54.8C58.4 50 59.8 41 59.6 33.5" fill="none" stroke="#2b2233" stroke-width="3.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;0" keyTimes="0;1" calcMode="spline" keySplines=".4 0 .2 1" dur="0.24s" begin="0s" fill="freeze"/></path>
|
|
16
|
+
<path d="M40.4 39.2C41.6 38.2 43.6 38.1 44.8 38.9" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.467;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.3s" begin="0s" fill="freeze"/></path>
|
|
17
|
+
<path d="M51 38.9C52.2 38.1 54.2 38.2 55.4 39.2" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.5;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.32s" begin="0s" fill="freeze"/></path>
|
|
18
|
+
<path d="M47.4 43C47.2 45.4 46.9 47.2 46.3 48.4C47 49.1 48.2 49.1 48.9 48.5" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.529;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.34s" begin="0s" fill="freeze"/></path>
|
|
19
|
+
<path d="M35.5 40C32.5 35 32.5 25 35 19C38 13 44 11.5 49.5 11.5C55 11.5 61 13 64 19C66.5 25 66.5 35 63.5 40" fill="none" stroke="#2b2233" stroke-width="3.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.238;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.42s" begin="0s" fill="freeze"/></path>
|
|
20
|
+
<path d="M35.5 40C38 35.5 39 30 41 27C44.5 22.5 54.5 22.5 58 27C60 30 61 35.5 63.5 40M45 13C46 8.5 53 8.5 54 13M54 13C55 11 57.5 10.5 59.5 12M45 13C44 11 41.5 10.5 39.5 12" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.667;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.48s" begin="0s" fill="freeze"/></path>
|
|
21
|
+
<path d="M43 56L43 63.2M52 56L52 63.2" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.769;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.52s" begin="0s" fill="freeze"/></path>
|
|
22
|
+
<path d="M40 62C43.5 65.5 51.5 65.5 55 62" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.759;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.58s" begin="0s" fill="freeze"/></path>
|
|
23
|
+
<path d="M43 62.5L47.5 67M52 62.5L47.5 67" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.774;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.62s" begin="0s" fill="freeze"/></path>
|
|
24
|
+
<path d="M38.5 69.5C33 71 27.5 74.5 24.5 79C22.6 82 22.2 84.5 22.2 86.5" fill="none" stroke="#2b2233" stroke-width="3.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.714;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.7s" begin="0s" fill="freeze"/></path>
|
|
25
|
+
<path d="M56.5 69.5C62 71 67.5 74.5 70.5 79C72.4 82 72.8 84.5 72.8 86.5" fill="none" stroke="#2b2233" stroke-width="3.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.73;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.74s" begin="0s" fill="freeze"/></path>
|
|
26
|
+
<path d="M47.5 74L47.5 91" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.795;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="0.82s" begin="0s" fill="freeze"/></path>
|
|
27
|
+
<path d="M68.1 59.8L71.9 62.2L82.9 45.2L86 42L80.5 38.8L85.5 35.5L82 34C80 33.8 78.5 35.5 79.1 42.8Z" fill="none" stroke="#2b2233" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.78;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="1s" begin="0s" fill="freeze"/></path>
|
|
28
|
+
<path d="M74.5 55L79 48" fill="none" stroke="#f4e9d8" stroke-width="2.5" pathLength="1" stroke-dasharray="1"><animate attributeName="stroke-dashoffset" values="1.01;1.01;0" keyTimes="0;0.85;1" calcMode="spline" keySplines="0 0 1 1;.4 0 .2 1" dur="1.05s" begin="0s" fill="freeze"/></path>
|
|
29
|
+
</svg>
|
package/src/main.jsx
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import './tokenInterceptor';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import ReactDOM from 'react-dom/client';
|
|
4
|
+
import './global.css';
|
|
5
|
+
import { isMobile } from './env';
|
|
6
|
+
import { reloadOnStaleChunk } from './utils/lazyWithReload';
|
|
7
|
+
import { SettingsProvider } from './contexts/SettingsContext';
|
|
8
|
+
|
|
9
|
+
const root = ReactDOM.createRoot(document.getElementById('root'));
|
|
10
|
+
|
|
11
|
+
// 入口 chunk 加载失败:部署后陈旧 entry(index-*.js 缓存住了,App-*.js 哈希已变)触发整页 reload,
|
|
12
|
+
// 5 分钟时间窗内不重复。这里没法 toast、没法 i18n —— antd 和 i18n 模块都在没加载下来的 App chunk 里;
|
|
13
|
+
// reload 失败次数超限时退回英文静态文案让用户手动刷。
|
|
14
|
+
const onLoadError = (err) => {
|
|
15
|
+
console.error('Failed to load app module:', err);
|
|
16
|
+
if (reloadOnStaleChunk(isMobile ? 'Mobile' : 'App')) return;
|
|
17
|
+
document.getElementById('root').textContent = 'Loading failed. Please refresh the page.';
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// SettingsProvider 必须在 App/Mobile 之外:AppBase 通过 contextType 消费,要求它本身在 Provider 子树里。
|
|
21
|
+
// constructor 内 fire fetch 让 AppBase.componentDidMount 时 _prefsReady Promise 已可用。
|
|
22
|
+
if (isMobile) {
|
|
23
|
+
import('./Mobile').then(({ default: Mobile }) => {
|
|
24
|
+
root.render(<SettingsProvider><Mobile /></SettingsProvider>);
|
|
25
|
+
}).catch(onLoadError);
|
|
26
|
+
} else {
|
|
27
|
+
import('./App').then(({ default: App }) => {
|
|
28
|
+
root.render(<SettingsProvider><App /></SettingsProvider>);
|
|
29
|
+
}).catch(onLoadError);
|
|
30
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Token 拦截器:自动为所有 API 请求附加 token
|
|
2
|
+
(function() {
|
|
3
|
+
let token = null;
|
|
4
|
+
|
|
5
|
+
// 从 URL 提取 token
|
|
6
|
+
function extractToken() {
|
|
7
|
+
if (token) return token;
|
|
8
|
+
const params = new URLSearchParams(window.location.search);
|
|
9
|
+
token = params.get('token') || '';
|
|
10
|
+
return token;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// 为 URL 添加 token 参数
|
|
14
|
+
function addToken(url) {
|
|
15
|
+
const t = extractToken();
|
|
16
|
+
if (!t) return url;
|
|
17
|
+
|
|
18
|
+
// 处理相对路径
|
|
19
|
+
if (url.startsWith('/')) {
|
|
20
|
+
const separator = url.includes('?') ? '&' : '?';
|
|
21
|
+
return `${url}${separator}token=${encodeURIComponent(t)}`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// 处理完整 URL
|
|
25
|
+
try {
|
|
26
|
+
const urlObj = new URL(url);
|
|
27
|
+
// 只为同源请求添加 token
|
|
28
|
+
if (urlObj.origin === window.location.origin) {
|
|
29
|
+
urlObj.searchParams.set('token', t);
|
|
30
|
+
return urlObj.toString();
|
|
31
|
+
}
|
|
32
|
+
} catch {}
|
|
33
|
+
|
|
34
|
+
return url;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 拦截 fetch
|
|
38
|
+
const originalFetch = window.fetch;
|
|
39
|
+
window.fetch = function(url, options) {
|
|
40
|
+
return originalFetch(addToken(url), options);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// 拦截 EventSource
|
|
44
|
+
const OriginalEventSource = window.EventSource;
|
|
45
|
+
window.EventSource = function(url, config) {
|
|
46
|
+
return new OriginalEventSource(addToken(url), config);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// 拦截 WebSocket
|
|
50
|
+
const OriginalWebSocket = window.WebSocket;
|
|
51
|
+
window.WebSocket = function(url, protocols) {
|
|
52
|
+
return new OriginalWebSocket(addToken(url), protocols);
|
|
53
|
+
};
|
|
54
|
+
// 保留静态常量(CONNECTING=0, OPEN=1, CLOSING=2, CLOSED=3)和原型链
|
|
55
|
+
window.WebSocket.prototype = OriginalWebSocket.prototype;
|
|
56
|
+
window.WebSocket.CONNECTING = OriginalWebSocket.CONNECTING;
|
|
57
|
+
window.WebSocket.OPEN = OriginalWebSocket.OPEN;
|
|
58
|
+
window.WebSocket.CLOSING = OriginalWebSocket.CLOSING;
|
|
59
|
+
window.WebSocket.CLOSED = OriginalWebSocket.CLOSED;
|
|
60
|
+
})();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// 从 URL 中提取 LAN 访问 token,附加到所有 API 请求 / WebSocket 握手
|
|
2
|
+
const _urlToken = new URLSearchParams(window.location.search).get('token');
|
|
3
|
+
|
|
4
|
+
// 反向代理子路径部署: 从 <base> 标签或 SSR 注入的全局变量读取 base path,
|
|
5
|
+
// 使 API/WebSocket 等动态请求也能正确路由到代理后端。
|
|
6
|
+
export function getBasePath() {
|
|
7
|
+
if (typeof window !== 'undefined' && window.__CXV_BASE_PATH__) return window.__CXV_BASE_PATH__;
|
|
8
|
+
if (typeof document === 'undefined' || !document.querySelector) return '';
|
|
9
|
+
const base = document.querySelector('base');
|
|
10
|
+
if (base && base.href) return base.getAttribute('href');
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// 把 token 追加到任意 URL(HTTP path 或 ws:// 完整 URL 皆可)。无 token 时原样返回。
|
|
15
|
+
// WS 握手必须也带 token —— 否则启用鉴权后远程「?token=」终端会被 socket.destroy()。
|
|
16
|
+
export function appendToken(url) {
|
|
17
|
+
if (!_urlToken) return url;
|
|
18
|
+
const sep = url.includes('?') ? '&' : '?';
|
|
19
|
+
return `${url}${sep}token=${_urlToken}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function apiUrl(path) {
|
|
23
|
+
const base = getBasePath();
|
|
24
|
+
const fullPath = base ? base.replace(/\/$/, '') + path : path;
|
|
25
|
+
return appendToken(fullPath);
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
APPROVALS_REVIEWER_AUTO,
|
|
3
|
+
APPROVALS_REVIEWER_OPTIONS,
|
|
4
|
+
APPROVALS_REVIEWER_USER,
|
|
5
|
+
normalizeApprovalsReviewer,
|
|
6
|
+
} from '../../lib/approval-reviewer.js';
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
APPROVALS_REVIEWER_AUTO,
|
|
10
|
+
APPROVALS_REVIEWER_OPTIONS,
|
|
11
|
+
APPROVALS_REVIEWER_USER,
|
|
12
|
+
normalizeApprovalsReviewer,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export function approvalReviewerValueLabel(value, t) {
|
|
16
|
+
const reviewer = normalizeApprovalsReviewer(value);
|
|
17
|
+
return reviewer === APPROVALS_REVIEWER_AUTO
|
|
18
|
+
? t('ui.permission.reviewer.auto')
|
|
19
|
+
: t('ui.permission.reviewer.user');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function approvalReviewerSelectOptions(t) {
|
|
23
|
+
return APPROVALS_REVIEWER_OPTIONS.map(value => ({
|
|
24
|
+
value,
|
|
25
|
+
label: approvalReviewerValueLabel(value, t),
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Decision helper for ApprovalModal's fallback AskQuestionForm.
|
|
2
|
+
//
|
|
3
|
+
// The Question modal body is normally filled by the transcript tool_use block
|
|
4
|
+
// portaling an AskQuestionForm into the modal's ask slot (see askPortalMatcher.js).
|
|
5
|
+
// When no block portals in — a stale replayed ask whose block is old history, or a
|
|
6
|
+
// fresh ask arriving before transcript ingest — the modal would show an empty body.
|
|
7
|
+
// The fallback renders a form directly from the authoritative pending-ask broadcast.
|
|
8
|
+
//
|
|
9
|
+
// Contract: `slotOccupied` is DOM occupancy of the ask slot (MutationObserver on
|
|
10
|
+
// childList + sync initial read); `graceElapsed` flips true ASK_FALLBACK_GRACE_MS
|
|
11
|
+
// after the ask becomes visible, giving the real portal one commit cycle so fresh
|
|
12
|
+
// asks never flash the fallback before the portaled form mounts.
|
|
13
|
+
|
|
14
|
+
export const ASK_FALLBACK_GRACE_MS = 120;
|
|
15
|
+
|
|
16
|
+
export function shouldRenderAskFallback({ isAskActive, slotOccupied, graceElapsed, questions, submitHandler }) {
|
|
17
|
+
if (!isAskActive || slotOccupied || !graceElapsed) return false;
|
|
18
|
+
if (!Array.isArray(questions) || questions.length === 0) return false;
|
|
19
|
+
if (typeof submitHandler !== 'function') return false;
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { isPlaceholderAskId } from './askPortalMatcher.js';
|
|
2
|
+
|
|
3
|
+
// request_user_input options[].description is schema-optional; centralize fallback
|
|
4
|
+
// so AskQuestionForm and ChatMessage recap stay aligned.
|
|
5
|
+
|
|
6
|
+
export function optionAriaLabel(opt) {
|
|
7
|
+
if (!opt || opt.label == null) return '';
|
|
8
|
+
return opt.description
|
|
9
|
+
? `${opt.label}: ${opt.description}`
|
|
10
|
+
: String(opt.label);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function hasOptionDescription(opt) {
|
|
14
|
+
return Boolean(opt && opt.description);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Pick the questions the interactive request_user_input card actually renders.
|
|
18
|
+
//
|
|
19
|
+
// The modal body is filled by the inline tool_use block (reconstructed from the log
|
|
20
|
+
// stream) portaling into the modal's askSlot — it does not read pendingAsk.questions
|
|
21
|
+
// (the authoritative copy broadcast over WS ask-hook-pending / sdk-ask-pending, fully
|
|
22
|
+
// parsed server-side before the hook fires) directly. During streaming of a large
|
|
23
|
+
// payload there is a window where the modal is already open but the reconstructed
|
|
24
|
+
// block's input is still partial JSON. Crucially, partial-JSON parsing materializes
|
|
25
|
+
// the outer questions[] array shape before the element content arrives, so the
|
|
26
|
+
// streamed copy can be HOLLOW AT EQUAL LENGTH (e.g. two question objects with empty
|
|
27
|
+
// text/options while big options[].preview strings are still streaming — the
|
|
28
|
+
// 2026-07-04 blank-popup regression; a strictly-longer length heuristic missed it).
|
|
29
|
+
//
|
|
30
|
+
// So: for the currently pending ask (toolId === lastPendingAskId, id-matched), always
|
|
31
|
+
// prefer the authoritative copy. It is complete by construction, and the submit path
|
|
32
|
+
// (handleAskQuestionSubmit in askFlowController) maps answer indices through the same
|
|
33
|
+
// authoritative _askHookQuestions copy — rendering it keeps rendered indices aligned
|
|
34
|
+
// with the mapping array. Historical blocks never match lastPendingAskId and always
|
|
35
|
+
// keep their own streamed questions (history view unchanged).
|
|
36
|
+
//
|
|
37
|
+
// Legacy/no-id servers use placeholder pendingAsk ids ('__ask__', 'ask_<ts>_<rnd>')
|
|
38
|
+
// that can never equal the real tool_use id. There the authoritative copy is only
|
|
39
|
+
// borrowed when the streamed render would otherwise be completely empty — it can fill
|
|
40
|
+
// a blank popup but never override visible content (a stale legacy pendingAsk must
|
|
41
|
+
// not inject a previous ask's questions over a rendered one).
|
|
42
|
+
export function resolveAskQuestions(streamedQuestions, toolId, lastPendingAskId, pendingAsk) {
|
|
43
|
+
const streamed = Array.isArray(streamedQuestions) ? streamedQuestions : [];
|
|
44
|
+
if (!pendingAsk || toolId == null || toolId !== lastPendingAskId) {
|
|
45
|
+
return streamed;
|
|
46
|
+
}
|
|
47
|
+
const idMatches = pendingAsk.id === toolId;
|
|
48
|
+
if (!idMatches && !(isPlaceholderAskId(pendingAsk.id) && streamed.length === 0)) {
|
|
49
|
+
return streamed;
|
|
50
|
+
}
|
|
51
|
+
const authoritative = Array.isArray(pendingAsk.questions) ? pendingAsk.questions : [];
|
|
52
|
+
if (authoritative.length === 0) return streamed; // defensive: WS handlers guarantee non-empty
|
|
53
|
+
if (streamed.length > authoritative.length) return streamed; // never shrink (belt-and-braces)
|
|
54
|
+
return authoritative;
|
|
55
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal 决策:判断 inline AskQuestionForm(在 ChatMessage 里渲染的某条 tool_use)
|
|
3
|
+
* 是否应该 createPortal 到 ApprovalModal 的 askSlot。
|
|
4
|
+
*
|
|
5
|
+
* activeAskId 三种合法形态(与 server 端协议绑定,改一边必须改另一边):
|
|
6
|
+
*
|
|
7
|
+
* 1. `toolu_xxx` — SDK 模式 / 新版 Codex 透传的真实 tool_use_id
|
|
8
|
+
* → 走 strict 匹配:activeAskId === toolId
|
|
9
|
+
*
|
|
10
|
+
* 2. `__ask__` — LEGACY 老 server(pre-Map 协议)的单槽占位
|
|
11
|
+
* → 走 owner 通配:仅 owner-idx 锁定的那条 ChatMessage(lastPendingAskId === toolId)命中
|
|
12
|
+
*
|
|
13
|
+
* 3. `ask_${ts}_${rnd}` — 老 Codex PreToolUse hook payload 不带 tool_use_id 时
|
|
14
|
+
* server.js 自生成的 fallback id(修复 modal 标题在但内容空白的根因)
|
|
15
|
+
* → 走 owner 通配:与 __ask__ 同语义
|
|
16
|
+
*
|
|
17
|
+
* 协议锚点:
|
|
18
|
+
* - server 端 fallback id 生成:server.js(搜索 `ask_${Date.now()}` 定位)
|
|
19
|
+
* - server 端 LEGACY 占位推送:server.js 推送 ask-hook-pending 事件时 id 为 '__ask__'
|
|
20
|
+
* - 前端 setState pendingAsk:src/components/chat/ChatView.jsx
|
|
21
|
+
*
|
|
22
|
+
* 改 server 端 fallback id 格式时,必须同步更新此文件的 isFallbackId 检测。
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const FALLBACK_ID_PREFIX = 'ask_';
|
|
26
|
+
const LEGACY_PLACEHOLDER_ID = '__ask__';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* True when the given pending-ask id is a placeholder that can never equal a real
|
|
30
|
+
* tool_use id: the LEGACY single-slot '__ask__' or a server-generated 'ask_<ts>_<rnd>'
|
|
31
|
+
* fallback id. Consumers (e.g. resolveAskQuestions) use this to apply the same
|
|
32
|
+
* owner-wildcard semantics as shouldPortalAskForm on the legacy paths.
|
|
33
|
+
*/
|
|
34
|
+
export function isPlaceholderAskId(id) {
|
|
35
|
+
return id === LEGACY_PLACEHOLDER_ID
|
|
36
|
+
|| (typeof id === 'string' && id.startsWith(FALLBACK_ID_PREFIX));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param {*} activeAskId ApprovalPortalContext.Consumer 提供的 activeAskId(modal 当前 active ask 的 id)
|
|
41
|
+
* @param {*} toolId 当前 ChatMessage 里 tool_use 块的 id(toolu_xxx)
|
|
42
|
+
* @param {*} lastPendingAskId ChatMessage 收到的 owner-idx 派生信号;非 owner 永远为 null
|
|
43
|
+
* @returns {boolean} true 表示当前 ChatMessage 应该 portal 到 askSlot
|
|
44
|
+
*/
|
|
45
|
+
export function shouldPortalAskForm(activeAskId, toolId, lastPendingAskId) {
|
|
46
|
+
if (activeAskId == null) return false;
|
|
47
|
+
// strict:SDK / 新 Codex 真实 tool_use_id
|
|
48
|
+
if (String(activeAskId) === String(toolId)) return true;
|
|
49
|
+
// owner 通配:__ask__(LEGACY 老 server)∪ ask_*(server fallback)
|
|
50
|
+
// 必须同时满足 owner-idx 锁定(lastPendingAskId === toolId),否则会让历史所有真实 toolId
|
|
51
|
+
// 都被通配命中,重现旧的双份 portal bug
|
|
52
|
+
if (isPlaceholderAskId(activeAskId) && lastPendingAskId === toolId) return true;
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Plan 自动审批档位唯一事实源。权限审批使用 Codex 原生
|
|
2
|
+
// approvalsReviewer(见 approvalReviewerOptions.js),不再按时间放行。
|
|
3
|
+
// 三态语义(持久化于 approvalModal.planAutoApproveSeconds):
|
|
4
|
+
// 0 = 关闭(手动审批 Plan)
|
|
5
|
+
// > 0 = 倒计时该秒数后自动批准
|
|
6
|
+
// -1 = 立即批准 Plan
|
|
7
|
+
// 本模块不依赖 helpers.js(它带 .svg?raw 等 Vite 专属 import),保持 node --test 可直接引用。
|
|
8
|
+
export const AUTO_APPROVE_INSTANT = -1;
|
|
9
|
+
|
|
10
|
+
export const PLAN_AUTO_APPROVE_OPTIONS = [0, 10, 30, 60, AUTO_APPROVE_INSTANT];
|
|
11
|
+
|
|
12
|
+
// 单个档位值 -> 显示文案;t 由调用方注入,避免本模块依赖前端 i18n。
|
|
13
|
+
// 档位之外的历史值(如 Plan 旧 3/5)同样落在 `${v}s` 分支正常显示。
|
|
14
|
+
export function autoApproveValueLabel(v, t) {
|
|
15
|
+
if (v === AUTO_APPROVE_INSTANT) return t('ui.permission.autoApprove.instant');
|
|
16
|
+
if (!v) return t('ui.permission.autoApprove.off');
|
|
17
|
+
return `${v}s`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// 档位数组 -> antd Select options
|
|
21
|
+
export function autoApproveSelectOptions(values, t) {
|
|
22
|
+
return values.map(v => ({ value: v, label: autoApproveValueLabel(v, t) }));
|
|
23
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { shouldAnimateTeammateAvatar, pickAvatarAnimationTargets } from './teammateAvatars';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Avatar animation loading strategy — post-pass applied at the end of
|
|
6
|
+
* ChatView.buildAllItems, once every item is known. Teammate rows animate
|
|
7
|
+
* their one-shot draw-in only when within the 60s window of the newest item's
|
|
8
|
+
* timestamp; the single newest teammate row always animates ("welcome flourish"
|
|
9
|
+
* on historic logs). Losers get cloneElement({ animateAvatar: false }) —
|
|
10
|
+
* winners keep their original element reference so cached elements skip
|
|
11
|
+
* reconciliation entirely.
|
|
12
|
+
*
|
|
13
|
+
* The flags are frozen per build: the window is measured against the newest
|
|
14
|
+
* item's timestamp, NOT wall clock (do not "fix" with Date.now()); they
|
|
15
|
+
* refresh whenever new data rebuilds the list.
|
|
16
|
+
*
|
|
17
|
+
* @param {Array} items - freshly built ChatMessage element array; mutated in place
|
|
18
|
+
* @returns {Array} the same array, with stale teammate rows cloned to static
|
|
19
|
+
*/
|
|
20
|
+
export function applyAvatarAnimationTargets(items) {
|
|
21
|
+
const scanEntries = items.map((item) => ({
|
|
22
|
+
ts: item?.props?.timestamp,
|
|
23
|
+
isTeammateAvatar: isTeammateAvatarItem(item?.props),
|
|
24
|
+
}));
|
|
25
|
+
const { latestMs, newestTeammateIdx } = pickAvatarAnimationTargets(scanEntries);
|
|
26
|
+
if (newestTeammateIdx === -1) return items;
|
|
27
|
+
for (let i = 0; i < items.length; i++) {
|
|
28
|
+
if (!scanEntries[i].isTeammateAvatar) continue;
|
|
29
|
+
const animate = i === newestTeammateIdx ||
|
|
30
|
+
shouldAnimateTeammateAvatar(items[i].props.timestamp, latestMs);
|
|
31
|
+
if (!animate) items[i] = React.cloneElement(items[i], { animateAvatar: false });
|
|
32
|
+
}
|
|
33
|
+
return items;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Mirrors ChatMessage.render()'s THREE teammate-avatar branches:
|
|
37
|
+
// renderSubAgentChatMessage (role 'sub-agent-chat'), renderSubAgentMessage
|
|
38
|
+
// (role 'sub-agent' — currently never constructed, covered defensively), and
|
|
39
|
+
// renderTeammateMessage (role 'teammate-message'). If ChatMessage gains a new
|
|
40
|
+
// teammate-avatar branch, add it here — rows missed by this predicate default
|
|
41
|
+
// to animated forever.
|
|
42
|
+
export function isTeammateAvatarItem(props) {
|
|
43
|
+
if (!props) return false;
|
|
44
|
+
return ((props.role === 'sub-agent-chat' || props.role === 'sub-agent') && props.isTeammate)
|
|
45
|
+
|| props.role === 'teammate-message';
|
|
46
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 内置预置快捷方式。
|
|
3
|
+
*
|
|
4
|
+
* builtinId 跨版本不变,用于追踪用户的删除/编辑。
|
|
5
|
+
* teamName / description 是 i18n key,渲染时通过 t() 解析。
|
|
6
|
+
*/
|
|
7
|
+
export const BUILTIN_PRESETS = [
|
|
8
|
+
{
|
|
9
|
+
builtinId: 'codereview-5',
|
|
10
|
+
teamName: 'ui.preset.codeReview5.name',
|
|
11
|
+
description: 'ui.preset.codeReview5.desc',
|
|
12
|
+
},
|
|
13
|
+
// 历史遗留 builtinId 已连同 i18n key 一并删除(用户反馈不常用):
|
|
14
|
+
// - 'scout-regiment' / ui.preset.scoutRegiment.*
|
|
15
|
+
// - 'codereview-2' / ui.preset.codeReview2.*
|
|
16
|
+
// 若老用户的 preset 列表里已保存这些条目,i18n key 缺失时 t() 会回显原始 key,
|
|
17
|
+
// 视觉上难看但不崩;用户可在管理弹窗里手动删除。
|
|
18
|
+
];
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 检测一个 mainAgent entry 是否是 /clear 之后的首个 checkpoint。
|
|
3
|
+
*
|
|
4
|
+
* 单独抽成无依赖的模块(不引 contentFilter,避免 node --test 走 bare import 失败)。
|
|
5
|
+
*
|
|
6
|
+
* 必要条件三选三:
|
|
7
|
+
* 1. entry._isCheckpoint === true(delta 重建器认为这是一个完整快照)
|
|
8
|
+
* 2. body.input.length 比 prevMessageCount 小(真正"缩短",排除增量再快照)
|
|
9
|
+
* 3. input[0] 是 user 消息且含 `<command-name>/clear</command-name>` 标记
|
|
10
|
+
*
|
|
11
|
+
* 用于 _processEntries / sessionMerge 区分真实 /clear 起点 vs 普通 /compact 缩短。
|
|
12
|
+
* /compact 的 input[0] 是 summary,没有 /clear 标记,自然返回 false。
|
|
13
|
+
*
|
|
14
|
+
* @param {object} entry
|
|
15
|
+
* @param {number} [prevMessageCount=0]
|
|
16
|
+
* @returns {boolean}
|
|
17
|
+
*/
|
|
18
|
+
export function isPostClearCheckpoint(entry, prevMessageCount = 0) {
|
|
19
|
+
if (!entry || entry._isCheckpoint !== true) return false;
|
|
20
|
+
const msgs = entry.body && entry.body.input;
|
|
21
|
+
if (!Array.isArray(msgs) || msgs.length === 0) return false;
|
|
22
|
+
if (prevMessageCount > 0 && msgs.length >= prevMessageCount) return false;
|
|
23
|
+
const m0 = msgs[0];
|
|
24
|
+
if (!m0 || m0.role !== 'user' || !Array.isArray(m0.content)) return false;
|
|
25
|
+
for (let i = 0; i < m0.content.length; i++) {
|
|
26
|
+
const block = m0.content[i];
|
|
27
|
+
if (block && block.type === 'text' && typeof block.text === 'string' &&
|
|
28
|
+
block.text.indexOf('<command-name>/clear</command-name>') !== -1) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// /compact 摘要续写检测:CLI 在 /compact(手动或自动 auto-compact)后,把整段历史压成一条
|
|
36
|
+
// summary 作为新 input[0] 重新起流。其 input[0] 是 CLI 合成的 summary/continuation prompt,
|
|
37
|
+
// 匹配下面两种固定开头之一(与 contentFilter.js 的 Compact 合成 prompt 判据同源,此处内联
|
|
38
|
+
// 一份纯正则以保持本模块零依赖,可被 node --test 直接 bare import)。
|
|
39
|
+
//
|
|
40
|
+
// 用途:区分「大幅缩短的 mainAgent checkpoint」到底是——
|
|
41
|
+
// (a) /compact 续写:input[0] 命中本判据 → 属【同一会话延续】,不应触发新会话切换;
|
|
42
|
+
// (b) 全新终端会话:input[0] 是用户真实首个输入 → 不命中 → 属【新会话起点】。
|
|
43
|
+
// 在同机器多终端场景下 user_id(device_id+account_uuid)完全相同,无法据此区分会话,
|
|
44
|
+
// 故本判据是「大幅缩短」信号下把 /compact 和真·新会话拆开的唯一可靠依据。
|
|
45
|
+
const COMPACT_SUMMARY_RE = /^(Your task is to create a detailed summary of the conversation|This session is being continued from a previous conversation)/i;
|
|
46
|
+
export function isCompactContinuation(entry) {
|
|
47
|
+
const msgs = entry && entry.body && entry.body.input;
|
|
48
|
+
if (!Array.isArray(msgs) || msgs.length === 0) return false;
|
|
49
|
+
const m0 = msgs[0];
|
|
50
|
+
if (!m0 || m0.role !== 'user') return false;
|
|
51
|
+
let text = '';
|
|
52
|
+
if (typeof m0.content === 'string') {
|
|
53
|
+
text = m0.content;
|
|
54
|
+
} else if (Array.isArray(m0.content)) {
|
|
55
|
+
for (let i = 0; i < m0.content.length; i++) {
|
|
56
|
+
const block = m0.content[i];
|
|
57
|
+
if (block && block.type === 'text' && typeof block.text === 'string') {
|
|
58
|
+
text += block.text;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return COMPACT_SUMMARY_RE.test(text.trimStart());
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function getEntryUpstreamLane(entry) {
|
|
66
|
+
const explicit = entry?.authMode || entry?._authMode || entry?.upstreamAuthMode || null;
|
|
67
|
+
if (explicit && typeof explicit === 'string') {
|
|
68
|
+
return `auth:${explicit.toLowerCase()}`;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const url = entry?.upstreamUrl || entry?.proxyUrl || entry?.url || '';
|
|
72
|
+
if (!url || typeof url !== 'string') return null;
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
const u = new URL(url);
|
|
76
|
+
const pathname = u.pathname || '';
|
|
77
|
+
if (u.hostname === 'chatgpt.com' && /^\/backend-api\/codex\/responses(?:\/|$)/.test(pathname)) {
|
|
78
|
+
return 'chatgpt-codex';
|
|
79
|
+
}
|
|
80
|
+
const match = pathname.match(/^(.*\/responses)(?:\/.*)?$/);
|
|
81
|
+
if (match && /\/responses(?:\/|$)/.test(pathname)) {
|
|
82
|
+
return `responses:${u.origin}${match[1]}`;
|
|
83
|
+
}
|
|
84
|
+
} catch {
|
|
85
|
+
if (url.includes('chatgpt.com/backend-api/codex/responses')) return 'chatgpt-codex';
|
|
86
|
+
const idx = url.indexOf('/v1/responses');
|
|
87
|
+
if (idx >= 0) return `responses:${url.slice(0, idx + '/v1/responses'.length)}`;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function getMainAgentSessionKey(entry) {
|
|
94
|
+
const body = entry?.body || {};
|
|
95
|
+
const metadata = { ...(body.metadata || {}), ...(body.client_metadata || {}) };
|
|
96
|
+
const threadId = metadata.thread_id || metadata.threadId || metadata.conversation_id || metadata.conversationId
|
|
97
|
+
|| entry?._threadId || entry?._agentThreadId || null;
|
|
98
|
+
const promptCacheKey = body.prompt_cache_key || body.promptCacheKey
|
|
99
|
+
|| metadata.prompt_cache_key || metadata.promptCacheKey || null;
|
|
100
|
+
const upstreamLane = getEntryUpstreamLane(entry);
|
|
101
|
+
const parts = [];
|
|
102
|
+
if (threadId) parts.push(`thread:${threadId}`);
|
|
103
|
+
else if (promptCacheKey) parts.push(`prompt-cache:${promptCacheKey}`);
|
|
104
|
+
if (upstreamLane) parts.push(`lane:${upstreamLane}`);
|
|
105
|
+
return parts.length > 0 ? parts.join('|') : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Shared session-boundary predicate — the single source of truth for "does this
|
|
110
|
+
* mainAgent entry start a NEW logical session?", used by BOTH the batch path
|
|
111
|
+
* (applyBatchEntryTimestamps → _processOneEntry) and the live SSE path
|
|
112
|
+
* (_flushPendingEntries). Keeping the two paths on one predicate guarantees the
|
|
113
|
+
* session segmentation (and thus each session's stable id = messages[0]._timestamp)
|
|
114
|
+
* is identical live and after a reload, which the "only show current session"
|
|
115
|
+
* pin depends on.
|
|
116
|
+
*
|
|
117
|
+
* Rules:
|
|
118
|
+
* 1. Post-/clear checkpoint → always a boundary (bypasses everything else).
|
|
119
|
+
* 2. Big message-count drop (count < 50% of prev AND drop > 4) → boundary,
|
|
120
|
+
* UNLESS the entry is a /compact continuation. Slimmed entries have
|
|
121
|
+
* body.input emptied, so isCompactContinuation() can no longer see the
|
|
122
|
+
* summary — the slimmer stamps `entry._compactContinuation` beforehand
|
|
123
|
+
* (entry-slim.js) and we trust that flag here.
|
|
124
|
+
* 3. user_id change with an established previous session (prevCount > 0) →
|
|
125
|
+
* boundary (different device/account writing into the same log).
|
|
126
|
+
* 4. Codex thread/upstream lane change with an established previous session →
|
|
127
|
+
* boundary. Codex's durable conversation id is the app-server Thread; the
|
|
128
|
+
* same local log can contain both ChatGPT-backed and API-key-backed
|
|
129
|
+
* Responses traffic, and those lanes must not share one MainAgent chain.
|
|
130
|
+
*
|
|
131
|
+
* KEEP IN SYNC: the bigDrop formula (rule 2, minus the compact exclusion) is
|
|
132
|
+
* mirrored in entry-slim.js's three slimmer predicates (process/finalize/
|
|
133
|
+
* incremental), which stay intentionally divergent for restore-guard reasons —
|
|
134
|
+
* tune the 0.5 ratio or the >4 drop threshold in all four places together.
|
|
135
|
+
*
|
|
136
|
+
* @param {object} entry - mainAgent entry (may be _slimmed)
|
|
137
|
+
* @param {object} ctx
|
|
138
|
+
* @param {number} ctx.prevCount - message count accumulated before this entry
|
|
139
|
+
* @param {number} ctx.count - this entry's message count
|
|
140
|
+
* @param {string|null} ctx.prevUserId - user_id of the previous entry/session
|
|
141
|
+
* @param {string|null} ctx.userId - this entry's user_id
|
|
142
|
+
* @param {string|null} [ctx.prevSessionKey] - previous Codex thread/upstream lane key
|
|
143
|
+
* @param {string|null} [ctx.sessionKey] - current Codex thread/upstream lane key
|
|
144
|
+
* @returns {boolean}
|
|
145
|
+
*/
|
|
146
|
+
export function isSessionBoundary(entry, { prevCount, count, prevUserId, userId, prevSessionKey = null, sessionKey = null }) {
|
|
147
|
+
if (isPostClearCheckpoint(entry, prevCount)) return true;
|
|
148
|
+
if (prevCount > 0 && prevSessionKey && sessionKey && sessionKey !== prevSessionKey) return true;
|
|
149
|
+
const bigDrop = prevCount > 0 && count < prevCount * 0.5 && (prevCount - count) > 4;
|
|
150
|
+
const compactLike = (entry && entry._compactContinuation === true) || isCompactContinuation(entry);
|
|
151
|
+
if (bigDrop && !compactLike) return true;
|
|
152
|
+
if (prevCount > 0 && prevUserId && userId && userId !== prevUserId) return true;
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File and command validation utilities.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
const IMAGE_EXTS = new Set(['png', 'jpg', 'jpeg', 'gif', 'svg', 'bmp', 'ico', 'icns', 'webp', 'avif']);
|
|
6
|
+
|
|
7
|
+
export function isImageFile(path) {
|
|
8
|
+
const ext = (path || '').split('.').pop().toLowerCase();
|
|
9
|
+
return IMAGE_EXTS.has(ext);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Regex matching shell commands that may mutate filesystem or git state.
|
|
14
|
+
* 命中任一即触发文件浏览器与 git 面板自动刷新(ToolFileChangeController 的 shell_command 路径依赖)。
|
|
15
|
+
*
|
|
16
|
+
* 覆盖类别:
|
|
17
|
+
* - delete:rm(含 rm -rf)、rmdir(删空目录)、unlink(POSIX 单文件删除)、find ... -delete
|
|
18
|
+
* - create/move:mkdir、mv、cp、touch、ln
|
|
19
|
+
* - metadata:chmod、chown
|
|
20
|
+
* - package/archive:npm/yarn/pnpm install/uninstall、pip install、tar、unzip、curl -o、wget
|
|
21
|
+
* - redirect write:> 与 >>(排除 2>、>= 等由 [^>]>(?!>)/>> 处理)
|
|
22
|
+
* - git mutating:checkout/reset/stash/merge/rebase/cherry-pick/restore/clean/rm
|
|
23
|
+
*
|
|
24
|
+
* 设计取舍(trade-off):
|
|
25
|
+
* \b 单词边界不能区分"作为命令"还是"作为参数/字面量",因此 `echo unlink` 之类
|
|
26
|
+
* 会被命中。文件浏览器额外刷新成本极低(一次 GET),宁可多刷不漏刷。
|
|
27
|
+
*
|
|
28
|
+
* find -delete 子表达式 `\bfind\b[^|;&\n]*-delete\b` 限定单条命令内,
|
|
29
|
+
* 避免 `grep find . | echo "-delete"` 之类的跨管道/分号误匹配。
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* isMutatingCommand('rm -rf node_modules') // true
|
|
33
|
+
* isMutatingCommand('find . -name "*.log" -delete') // true
|
|
34
|
+
* isMutatingCommand('git status') // false
|
|
35
|
+
* isMutatingCommand('echo hello') // false
|
|
36
|
+
*/
|
|
37
|
+
const MUTATING_CMD_RE = /\b(rm|rmdir|unlink|mkdir|mv|cp|touch|chmod|chown|ln|git\s+(checkout|reset|stash|merge|rebase|cherry-pick|restore|clean|rm)|npm\s+(install|uninstall|ci)|yarn\s+(add|remove)|pnpm\s+(add|remove|install)|pip\s+install|tar|unzip|curl\s+-[^\s]*o|wget)\b|\bfind\b[^|;&\n]*-delete\b|[^>]>(?!>)|>>/;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param {string} cmd shell 命令字符串
|
|
41
|
+
* @returns {boolean} true 表示命令可能修改文件树或 git 状态
|
|
42
|
+
*/
|
|
43
|
+
export function isMutatingCommand(cmd) {
|
|
44
|
+
return MUTATING_CMD_RE.test(cmd);
|
|
45
|
+
}
|