pythinker-code 0.44.0__tar.gz → 0.46.0__tar.gz

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.
Files changed (980) hide show
  1. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/PKG-INFO +26 -26
  2. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/README.md +25 -25
  3. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/pyproject.toml +1 -1
  4. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/CHANGELOG.md +97 -0
  5. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/system.md +1 -12
  6. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/__init__.py +2 -0
  7. pythinker_code-0.46.0/src/pythinker_code/auth/kimi.py +278 -0
  8. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/moonshot.py +2 -1
  9. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/platforms.py +17 -0
  10. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/z_ai.py +35 -1
  11. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/__init__.py +13 -13
  12. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/_lazy_group.py +12 -2
  13. pythinker_code-0.44.0/src/pythinker_code/cli/vis.py → pythinker_code-0.46.0/src/pythinker_code/cli/dashboard.py +4 -4
  14. pythinker_code-0.46.0/src/pythinker_code/cli/system_prompt.py +76 -0
  15. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/config.py +48 -15
  16. pythinker_code-0.46.0/src/pythinker_code/dashboard/api/__init__.py +5 -0
  17. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/api/sessions.py +4 -3
  18. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/api/statistics.py +11 -3
  19. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/api/system.py +2 -2
  20. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/app.py +28 -14
  21. pythinker_code-0.44.0/src/pythinker_code/vis/static/assets/highlighted-body-OFNGDK62-Bvu9aDxC.js → pythinker_code-0.46.0/src/pythinker_code/dashboard/static/assets/highlighted-body-OFNGDK62-BxVUIXn9.js +1 -1
  22. pythinker_code-0.44.0/src/pythinker_code/vis/static/assets/index-Cot2VCM1.css → pythinker_code-0.46.0/src/pythinker_code/dashboard/static/assets/index-DAN_VzOP.css +1 -1
  23. pythinker_code-0.44.0/src/pythinker_code/vis/static/assets/index-Bf7NpcRg.js → pythinker_code-0.46.0/src/pythinker_code/dashboard/static/assets/index-DYyxzHPY.js +6 -6
  24. pythinker_code-0.46.0/src/pythinker_code/dashboard/static/assets/mermaid-GHXKKRXX-BR6KjYwB.js +1 -0
  25. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/index.html +2 -2
  26. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/recall.py +5 -2
  27. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/agent.py +117 -2
  28. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/approval.py +89 -7
  29. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/flow_runner.py +3 -0
  30. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/pythinkersoul.py +177 -6
  31. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/slash.py +25 -0
  32. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/toolset.py +37 -13
  33. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/discovery.py +16 -0
  34. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/models.py +4 -0
  35. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/agent/__init__.py +52 -0
  36. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/__init__.py +14 -5
  37. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/read.py +8 -0
  38. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/replace.py +35 -0
  39. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/write.py +52 -3
  40. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/shell/__init__.py +5 -1
  41. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/shell/bash.md +2 -2
  42. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/shell/powershell.md +2 -2
  43. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/__init__.py +65 -9
  44. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/diff.py +6 -6
  45. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/oauth.py +20 -2
  46. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/prompt.py +21 -0
  47. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/slash.py +4 -4
  48. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/stats_pricing.py +5 -1
  49. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/agent.py +234 -10
  50. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/update.py +7 -1
  51. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/minimax.py +93 -50
  52. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_blocks.py +0 -13
  53. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_interactive.py +1 -1
  54. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_live_view.py +8 -23
  55. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/theme.py +9 -9
  56. pythinker_code-0.46.0/src/pythinker_code/utils/file_read_cache.py +65 -0
  57. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/path.py +48 -0
  58. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/pyinstaller.py +6 -6
  59. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/server.py +2 -2
  60. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/subprocess_env.py +1 -1
  61. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/architecture-7EHR7CIX-DuYWmQ8n.js +1 -0
  62. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/architectureDiagram-3BPJPVTR-BnkpaR5O.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/architectureDiagram-3BPJPVTR-UoU1nAk7.js +1 -1
  63. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/blockDiagram-GPEHLZMM-e_MhfITx.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/blockDiagram-GPEHLZMM-71KoIQeZ.js +1 -1
  64. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/bootstrap-CwMnV7Zd.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/bootstrap-B_vGg5Ny.js +5 -5
  65. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/c4Diagram-AAUBKEIU-BHeP9Afi.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/c4Diagram-AAUBKEIU-BuO74dDT.js +1 -1
  66. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/channel-6SKWVwR3.js +1 -0
  67. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-2J33WTMH-sjzfsYRI.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-2J33WTMH-B7JEo7lz.js +1 -1
  68. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-3OPIFGDE-Diy54J-m.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-3OPIFGDE-DmL9lwRX.js +1 -1
  69. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-5ZQYHXKU-Cha6K3fv.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-5ZQYHXKU-CBmTeQHC.js +1 -1
  70. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-727SXJPM-8maRYfGZ.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-727SXJPM-D62jKCyv.js +1 -1
  71. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-AQP2D5EJ-BugAJq9M.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-AQP2D5EJ-BynCmQVm.js +1 -1
  72. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-CSCIHK7Q-fNfOkomy.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-CSCIHK7Q-QrY277S-.js +1 -1
  73. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-JAPRZBRM-BqD8tL42.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-JAPRZBRM-DyAuAcwd.js +4 -4
  74. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-KSCS5N6A-DjE4cbB9.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-KSCS5N6A-B-L96nEP.js +1 -1
  75. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-L5ZTLDWV-BBuq_T7N.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-L5ZTLDWV-Dx2O-osv.js +1 -1
  76. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-LZXEDZCA-C9Ib4xBs.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-LZXEDZCA-Ud8JWymF.js +2 -2
  77. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-ND2GUHAM-Bm81WxoP.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-ND2GUHAM-D309EoC7.js +1 -1
  78. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-NZK2D7GU-BSRiYhUY.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-NZK2D7GU-CRryXTBY.js +1 -1
  79. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-O5CBEL6O-ikkVvriS.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-O5CBEL6O-CG1Ia2Dd.js +1 -1
  80. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/chunk-WU5MYG2G-B0dxIX1Z.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/chunk-WU5MYG2G-CufdHSG9.js +1 -1
  81. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/classDiagram-4FO5ZUOK-CLfRoPJH.js +1 -0
  82. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/classDiagram-v2-Q7XG4LA2-CLfRoPJH.js +1 -0
  83. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-ykYQSspy.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-DMzMTNsT.js +1 -1
  84. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/dagre-BM42HDAG-BVgOGrpH.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/dagre-BM42HDAG-DmUINU6q.js +1 -1
  85. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/diagram-2AECGRRQ-B_OMSNvN.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/diagram-2AECGRRQ-P5YMGdQ8.js +1 -1
  86. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/diagram-5GNKFQAL-DAi1-R2d.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/diagram-5GNKFQAL-BaimYqgQ.js +1 -1
  87. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/diagram-KO2AKTUF-CVPaBXbF.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/diagram-KO2AKTUF-DgpITRK9.js +1 -1
  88. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/diagram-LMA3HP47-DfPWmpwz.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/diagram-LMA3HP47-CMnhE9ZH.js +1 -1
  89. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/diagram-OG6HWLK6-CpV9uXPx.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/diagram-OG6HWLK6-BhLWHvOg.js +1 -1
  90. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/dist-h8mi_-6j.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/dist-DPNOCkje.js +1 -1
  91. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/erDiagram-TEJ5UH35-DDhG-euv.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/erDiagram-TEJ5UH35-CHSdb2VU.js +1 -1
  92. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/eventmodeling-FCH6USID-j7ey84Sq.js +1 -0
  93. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/flowDiagram-I6XJVG4X-CaS1OzXM.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/flowDiagram-I6XJVG4X-FNGh8ANR.js +1 -1
  94. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/ganttDiagram-6RSMTGT7-Bd7at8fB.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/ganttDiagram-6RSMTGT7-BLTimgS0.js +1 -1
  95. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/gitGraph-WXDBUCRP-BXZoPljO.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/gitGraph-WXDBUCRP-C3Dg6N-n.js +1 -1
  96. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/gitGraphDiagram-PVQCEYII-C6WKYJ1c.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/gitGraphDiagram-PVQCEYII-BbiwVf9S.js +1 -1
  97. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/index-BVLby4kT.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/index-uSUCKoSL.js +2 -2
  98. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/info-J43DQDTF-BSjXjPWD.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/info-J43DQDTF-BeSMeh6p.js +1 -1
  99. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/infoDiagram-5YYISTIA-BmRBSqys.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/infoDiagram-5YYISTIA-BQxCJcq4.js +1 -1
  100. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/ishikawaDiagram-YF4QCWOH-fgPipcob.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/ishikawaDiagram-YF4QCWOH-KaeLGrsH.js +1 -1
  101. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/journeyDiagram-JHISSGLW-DL8Jtwnh.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/journeyDiagram-JHISSGLW-Kk2DXiQI.js +1 -1
  102. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/kanban-definition-UN3LZRKU-D1Jts2BV.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/kanban-definition-UN3LZRKU-zn_6z8FY.js +1 -1
  103. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/line-BSuVwcdH.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/line-DCLS_X1f.js +1 -1
  104. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-BOvErqSv.js +1 -0
  105. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/mermaid-parser.core-D1JrN2zq.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/mermaid-parser.core-C_SVA4S7.js +2 -2
  106. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/mermaid.core-C3w1FMla.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/mermaid.core-ZgyZych2.js +3 -3
  107. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/mindmap-definition-RKZ34NQL-BnMo2qJe.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/mindmap-definition-RKZ34NQL-DoPx6yXo.js +1 -1
  108. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/packet-YPE3B663-CIXAH8ey.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/packet-YPE3B663-DsBVFF3b.js +1 -1
  109. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/pie-LRSECV5Y-BvQ_6Rhy.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/pie-LRSECV5Y-BqvyMS-y.js +1 -1
  110. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/pieDiagram-4H26LBE5-lDidBc5t.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/pieDiagram-4H26LBE5-C0o5b8QE.js +1 -1
  111. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/quadrantDiagram-W4KKPZXB-CqffYofN.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/quadrantDiagram-W4KKPZXB-BeArUQAv.js +1 -1
  112. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/radar-GUYGQ44K-BMqTdNUV.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/radar-GUYGQ44K-B2ISte2b.js +1 -1
  113. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/requirementDiagram-4Y6WPE33---Iqpcn8.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/requirementDiagram-4Y6WPE33-DZ5btT5r.js +1 -1
  114. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/sankeyDiagram-5OEKKPKP-jx06oDq6.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/sankeyDiagram-5OEKKPKP-DEe_JEz3.js +1 -1
  115. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/sequenceDiagram-3UESZ5HK-HaEvgD49.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/sequenceDiagram-3UESZ5HK-BVRh_UVj.js +1 -1
  116. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/stateDiagram-AJRCARHV-JLA-477t.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/stateDiagram-AJRCARHV-DAwizi72.js +1 -1
  117. pythinker_code-0.46.0/src/pythinker_code/web/static/assets/stateDiagram-v2-BHNVJYJU-BQ53hC4E.js +1 -0
  118. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/timeline-definition-PNZ67QCA-CCTBgJfg.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/timeline-definition-PNZ67QCA-CLIYK9Jz.js +1 -1
  119. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/treeView-BLDUP644-BygVvhlI.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/treeView-BLDUP644-DXcWQpz4.js +1 -1
  120. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/treemap-LRROVOQU-BuV3B2a0.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/treemap-LRROVOQU-D4DQ9pO_.js +1 -1
  121. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/vennDiagram-CIIHVFJN-Cl1lT_Ny.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/vennDiagram-CIIHVFJN-ChlhzFNb.js +1 -1
  122. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/wardley-L42UT6IY-K8n6TVEI.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/wardley-L42UT6IY-B0oYxi6O.js +1 -1
  123. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/wardleyDiagram-YWT4CUSO-D68VMB5e.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/wardleyDiagram-YWT4CUSO-Cr6wIf4f.js +1 -1
  124. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/xychartDiagram-2RQKCTM6-tTtP-k4s.js → pythinker_code-0.46.0/src/pythinker_code/web/static/assets/xychartDiagram-2RQKCTM6-VwJzwioB.js +1 -1
  125. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/index.html +1 -1
  126. pythinker_code-0.44.0/src/pythinker_code/vis/api/__init__.py +0 -5
  127. pythinker_code-0.44.0/src/pythinker_code/vis/static/assets/mermaid-GHXKKRXX-C-XxnFiA.js +0 -1
  128. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/architecture-7EHR7CIX-B9IRTQo7.js +0 -1
  129. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/channel-D6eTbsR5.js +0 -1
  130. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/classDiagram-4FO5ZUOK-D6Cn2t8q.js +0 -1
  131. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/classDiagram-v2-Q7XG4LA2-D6Cn2t8q.js +0 -1
  132. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/eventmodeling-FCH6USID-ChNU-x8b.js +0 -1
  133. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-B2gPIPJx.js +0 -1
  134. pythinker_code-0.44.0/src/pythinker_code/web/static/assets/stateDiagram-v2-BHNVJYJU-C_zjek2r.js +0 -1
  135. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/LICENSE +0 -0
  136. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/NOTICE +0 -0
  137. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/__init__.py +0 -0
  138. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/__main__.py +0 -0
  139. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/AGENTS.md +0 -0
  140. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/__init__.py +0 -0
  141. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/convert.py +0 -0
  142. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/host.py +0 -0
  143. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/mcp.py +0 -0
  144. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/server.py +0 -0
  145. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/session.py +0 -0
  146. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/tools.py +0 -0
  147. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/types.py +0 -0
  148. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/acp/version.py +0 -0
  149. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/agent.yaml +0 -0
  150. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/ask.yaml +0 -0
  151. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/code_reviewer.yaml +0 -0
  152. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/coder.yaml +0 -0
  153. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/debug.yaml +0 -0
  154. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/debugger.yaml +0 -0
  155. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/explore.yaml +0 -0
  156. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/implementer.yaml +0 -0
  157. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/judge.yaml +0 -0
  158. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/plan.yaml +0 -0
  159. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/planner.yaml +0 -0
  160. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/review.yaml +0 -0
  161. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/scout.yaml +0 -0
  162. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/security_reviewer.yaml +0 -0
  163. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/default/verifier.yaml +0 -0
  164. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agents/okabe/agent.yaml +0 -0
  165. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/agentspec.py +0 -0
  166. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/app.py +0 -0
  167. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/approval_runtime/__init__.py +0 -0
  168. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/approval_runtime/models.py +0 -0
  169. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/approval_runtime/runtime.py +0 -0
  170. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/alibaba.py +0 -0
  171. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/anthropic_direct.py +0 -0
  172. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/browser_login_page.py +0 -0
  173. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/deepseek.py +0 -0
  174. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/github_feedback.py +0 -0
  175. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/lm_studio.py +0 -0
  176. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/minimax.py +0 -0
  177. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/oauth.py +0 -0
  178. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/ollama.py +0 -0
  179. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/__init__.py +0 -0
  180. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/_shared.py +0 -0
  181. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/browser_flow.py +0 -0
  182. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/catalog.py +0 -0
  183. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/config_apply.py +0 -0
  184. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/constants.py +0 -0
  185. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/login.py +0 -0
  186. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/models.py +0 -0
  187. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openai/oauth_client.py +0 -0
  188. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/opencode_go.py +0 -0
  189. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/auth/openrouter.py +0 -0
  190. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/__init__.py +0 -0
  191. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/agent_runner.py +0 -0
  192. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/ids.py +0 -0
  193. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/manager.py +0 -0
  194. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/models.py +0 -0
  195. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/store.py +0 -0
  196. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/summary.py +0 -0
  197. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/background/worker.py +0 -0
  198. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/__main__.py +0 -0
  199. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/debug.py +0 -0
  200. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/export.py +0 -0
  201. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/info.py +0 -0
  202. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/mcp.py +0 -0
  203. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/plugin.py +0 -0
  204. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/review.py +0 -0
  205. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/secscan.py +0 -0
  206. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/security_scan.py +0 -0
  207. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/skill.py +0 -0
  208. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/toad.py +0 -0
  209. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/update.py +0 -0
  210. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/cli/web.py +0 -0
  211. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/constant.py +0 -0
  212. {pythinker_code-0.44.0/src/pythinker_code/soul/dynamic_injections → pythinker_code-0.46.0/src/pythinker_code/dashboard}/__init__.py +0 -0
  213. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  214. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  215. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  216. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  217. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  218. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  219. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/dashboard}/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  220. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/events.py +0 -0
  221. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/exception.py +0 -0
  222. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/execution_profiles.py +0 -0
  223. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/extensions.py +0 -0
  224. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/feedback.py +0 -0
  225. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/feedback_repo.py +0 -0
  226. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/file_restore.py +0 -0
  227. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/hooks/__init__.py +0 -0
  228. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/hooks/config.py +0 -0
  229. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/hooks/engine.py +0 -0
  230. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/hooks/events.py +0 -0
  231. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/hooks/runner.py +0 -0
  232. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/llm.py +0 -0
  233. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/__init__.py +0 -0
  234. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/consolidation.py +0 -0
  235. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/harvest.py +0 -0
  236. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/recap.py +0 -0
  237. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/retriever.py +0 -0
  238. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/memory/sanitize.py +0 -0
  239. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/metadata.py +0 -0
  240. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/models_dev.py +0 -0
  241. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/native.py +0 -0
  242. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/__init__.py +0 -0
  243. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/llm.py +0 -0
  244. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/manager.py +0 -0
  245. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/models.py +0 -0
  246. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/notifier.py +0 -0
  247. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/store.py +0 -0
  248. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/notifications/wire.py +0 -0
  249. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/plugin/__init__.py +0 -0
  250. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/plugin/manager.py +0 -0
  251. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/plugin/tool.py +0 -0
  252. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/project_memory.py +0 -0
  253. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/project_trust.py +0 -0
  254. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompt_templates.py +0 -0
  255. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/__init__.py +0 -0
  256. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/best_practices.md +0 -0
  257. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/compact.md +0 -0
  258. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/goal_continuation.md +0 -0
  259. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/goal_set.md +0 -0
  260. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/goal_wrap_up.md +0 -0
  261. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/init.md +0 -0
  262. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/prompts/learn.md +0 -0
  263. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/py.typed +0 -0
  264. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/scratchpad.py +0 -0
  265. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/session.py +0 -0
  266. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/session_cleanup.py +0 -0
  267. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/session_fork.py +0 -0
  268. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/session_recap.py +0 -0
  269. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/session_state.py +0 -0
  270. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/share.py +0 -0
  271. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skill/__init__.py +0 -0
  272. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skill/flow/__init__.py +0 -0
  273. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skill/flow/d2.py +0 -0
  274. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skill/flow/mermaid.py +0 -0
  275. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skill/lockfile.py +0 -0
  276. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/agent-creator/SKILL.md +0 -0
  277. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/check-impl-against-spec/SKILL.md +0 -0
  278. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/create-pr/SKILL.md +0 -0
  279. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/customize-pythinker/SKILL.md +0 -0
  280. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/designer-skill/SKILL.md +0 -0
  281. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/diagnose-ci-failures/SKILL.md +0 -0
  282. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/fix-errors/SKILL.md +0 -0
  283. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/implement-specs/SKILL.md +0 -0
  284. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/pr-walkthrough/SKILL.md +0 -0
  285. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/pythinker-code-help/SKILL.md +0 -0
  286. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/reproduce-bug-report/SKILL.md +0 -0
  287. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/resolve-merge-conflicts/SKILL.md +0 -0
  288. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/review-pr/SKILL.md +0 -0
  289. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/skill-creator/SKILL.md +0 -0
  290. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/spec-driven-implementation/SKILL.md +0 -0
  291. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/write-product-spec/SKILL.md +0 -0
  292. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/skills/write-tech-spec/SKILL.md +0 -0
  293. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/__init__.py +0 -0
  294. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/api_errors.py +0 -0
  295. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/btw.py +0 -0
  296. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/compaction.py +0 -0
  297. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/compaction_restore.py +0 -0
  298. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/context.py +0 -0
  299. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/deliberation.py +0 -0
  300. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/denwarenji.py +0 -0
  301. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injection.py +0 -0
  302. {pythinker_code-0.44.0/src/pythinker_code/ui → pythinker_code-0.46.0/src/pythinker_code/soul/dynamic_injections}/__init__.py +0 -0
  303. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/auto_mode.py +0 -0
  304. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/goal_mode.py +0 -0
  305. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/inline_commands.py +0 -0
  306. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/model_defense.py +0 -0
  307. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/orchestration.py +0 -0
  308. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/permissions_state.py +0 -0
  309. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/dynamic_injections/plan_mode.py +0 -0
  310. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/message.py +0 -0
  311. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/soul/permission.py +0 -0
  312. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/__init__.py +0 -0
  313. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/builder.py +0 -0
  314. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/codenames.py +0 -0
  315. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/core.py +0 -0
  316. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/git_context.py +0 -0
  317. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/output.py +0 -0
  318. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/registry.py +0 -0
  319. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/runner.py +0 -0
  320. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/store.py +0 -0
  321. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/usage.py +0 -0
  322. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/subagents/worktree.py +0 -0
  323. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/__init__.py +0 -0
  324. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/config.py +0 -0
  325. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/crash.py +0 -0
  326. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/errors.py +0 -0
  327. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/metrics.py +0 -0
  328. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/otel.py +0 -0
  329. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/sentry.py +0 -0
  330. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/telemetry/sink.py +0 -0
  331. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/thinking.py +0 -0
  332. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/AGENTS.md +0 -0
  333. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/__init__.py +0 -0
  334. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/agent/description.md +0 -0
  335. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/ask_user/__init__.py +0 -0
  336. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/ask_user/description.md +0 -0
  337. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/__init__.py +0 -0
  338. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/handoff.md +0 -0
  339. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/input.md +0 -0
  340. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/list.md +0 -0
  341. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/output.md +0 -0
  342. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/background/stop.md +0 -0
  343. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/display.py +0 -0
  344. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/dmail/__init__.py +0 -0
  345. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/dmail/dmail.md +0 -0
  346. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/glob.md +0 -0
  347. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/glob.py +0 -0
  348. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/grep.md +0 -0
  349. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/grep_local.py +0 -0
  350. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/plan_mode.py +0 -0
  351. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/read.md +0 -0
  352. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/read_media.md +0 -0
  353. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/read_media.py +0 -0
  354. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/replace.md +0 -0
  355. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/utils.py +0 -0
  356. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/file/write.md +0 -0
  357. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/goal/__init__.py +0 -0
  358. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/goal/update_goal.md +0 -0
  359. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/mcp_resource/__init__.py +0 -0
  360. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/mcp_resource/list_description.md +0 -0
  361. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/mcp_resource/read_description.md +0 -0
  362. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/memory/__init__.py +0 -0
  363. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/memory/memory.md +0 -0
  364. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/memory/routing_guard.py +0 -0
  365. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/__init__.py +0 -0
  366. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/description.md +0 -0
  367. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/enter.py +0 -0
  368. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/enter_description.md +0 -0
  369. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/handoff.py +0 -0
  370. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/plan/heroes.py +0 -0
  371. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/progress/__init__.py +0 -0
  372. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/progress/description.md +0 -0
  373. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/recall/__init__.py +0 -0
  374. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/recall/description.md +0 -0
  375. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/scratchpad/__init__.py +0 -0
  376. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/scratchpad/scratchpad_tool.md +0 -0
  377. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/skill/__init__.py +0 -0
  378. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/skill/_mcp_bridge.py +0 -0
  379. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/skill/description.md +0 -0
  380. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/suggest/__init__.py +0 -0
  381. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/suggest/description.md +0 -0
  382. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/test.py +0 -0
  383. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/think/__init__.py +0 -0
  384. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/think/think.md +0 -0
  385. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/todo/__init__.py +0 -0
  386. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/todo/set_todo_list.md +0 -0
  387. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/utils.py +0 -0
  388. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/__init__.py +0 -0
  389. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/_allowlist.py +0 -0
  390. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/fetch.md +0 -0
  391. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/fetch.py +0 -0
  392. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/search.md +0 -0
  393. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/tools/web/search.py +0 -0
  394. {pythinker_code-0.44.0/src/pythinker_code/utils → pythinker_code-0.46.0/src/pythinker_code/ui}/__init__.py +0 -0
  395. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/acp/__init__.py +0 -0
  396. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/color_utils.py +0 -0
  397. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/print/__init__.py +0 -0
  398. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/print/visualize.py +0 -0
  399. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/__init__.py +0 -0
  400. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/base.py +0 -0
  401. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/bash_execution.py +0 -0
  402. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/bordered_loader.py +0 -0
  403. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/dynamic_border.py +0 -0
  404. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/footer.py +0 -0
  405. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/key_hints.py +0 -0
  406. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/markdown.py +0 -0
  407. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/messages.py +0 -0
  408. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/panel.py +0 -0
  409. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/render_utils.py +0 -0
  410. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/report.py +0 -0
  411. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/settings_list.py +0 -0
  412. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/special_messages.py +0 -0
  413. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/components/tool_execution.py +0 -0
  414. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/console.py +0 -0
  415. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/debug.py +0 -0
  416. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/design_system.py +0 -0
  417. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/echo.py +0 -0
  418. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/export_import.py +0 -0
  419. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/glyphs.py +0 -0
  420. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/keyboard.py +0 -0
  421. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/keymap.py +0 -0
  422. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/mcp_status.py +0 -0
  423. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/model_picker.py +0 -0
  424. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/motion.py +0 -0
  425. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/placeholders.py +0 -0
  426. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/render_constants.py +0 -0
  427. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/replay.py +0 -0
  428. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selector.py +0 -0
  429. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/__init__.py +0 -0
  430. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/extension.py +0 -0
  431. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/oauth.py +0 -0
  432. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/settings.py +0 -0
  433. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/show_images.py +0 -0
  434. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/theme.py +0 -0
  435. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/selectors/thinking.py +0 -0
  436. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/session_picker.py +0 -0
  437. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/setup.py +0 -0
  438. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/spacing.py +0 -0
  439. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/spinner_words.py +0 -0
  440. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/startup.py +0 -0
  441. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/stats.py +0 -0
  442. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/stats_collector.py +0 -0
  443. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/statusline.py +0 -0
  444. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/sync_output.py +0 -0
  445. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/task_browser.py +0 -0
  446. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tips.py +0 -0
  447. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/__init__.py +0 -0
  448. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/_file_diff.py +0 -0
  449. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/_render_utils.py +0 -0
  450. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/ask_user.py +0 -0
  451. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/background.py +0 -0
  452. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/bash.py +0 -0
  453. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/edit.py +0 -0
  454. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/find.py +0 -0
  455. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/generic.py +0 -0
  456. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/grep.py +0 -0
  457. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/plan.py +0 -0
  458. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/read.py +0 -0
  459. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/skill.py +0 -0
  460. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/think.py +0 -0
  461. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/todo.py +0 -0
  462. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/web.py +0 -0
  463. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/tool_renderers/write.py +0 -0
  464. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/update_orchestrator.py +0 -0
  465. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage.py +0 -0
  466. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/__init__.py +0 -0
  467. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/alibaba.py +0 -0
  468. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/anthropic_admin.py +0 -0
  469. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/base.py +0 -0
  470. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/deepseek.py +0 -0
  471. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/openai_admin.py +0 -0
  472. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/openai_chatgpt.py +0 -0
  473. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/opencode_go.py +0 -0
  474. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/openrouter.py +0 -0
  475. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker.py +0 -0
  476. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker_ai.py +0 -0
  477. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/usage_render.py +0 -0
  478. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/__init__.py +0 -0
  479. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_activity_tree.py +0 -0
  480. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_approval_panel.py +0 -0
  481. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_btw_panel.py +0 -0
  482. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_dialog_shell.py +0 -0
  483. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_input_router.py +0 -0
  484. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_question_panel.py +0 -0
  485. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_transcript.py +0 -0
  486. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/shell/visualize/_worklog.py +0 -0
  487. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/terminal_background.py +0 -0
  488. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/terminal_capabilities.py +0 -0
  489. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/ui/tui_config.py +0 -0
  490. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/update_policy.py +0 -0
  491. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/usage_ratelimit_cache.py +0 -0
  492. {pythinker_code-0.44.0/src/pythinker_code/vis → pythinker_code-0.46.0/src/pythinker_code/utils}/__init__.py +0 -0
  493. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/aiohttp.py +0 -0
  494. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/aioqueue.py +0 -0
  495. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/artifacts.py +0 -0
  496. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/broadcast.py +0 -0
  497. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/changelog.py +0 -0
  498. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/clipboard.py +0 -0
  499. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/datetime.py +0 -0
  500. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/diff.py +0 -0
  501. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/editor.py +0 -0
  502. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/environment.py +0 -0
  503. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/envvar.py +0 -0
  504. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/export.py +0 -0
  505. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/file_filter.py +0 -0
  506. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/frontmatter.py +0 -0
  507. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/gitignore.py +0 -0
  508. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/io.py +0 -0
  509. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/logging.py +0 -0
  510. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/media_tags.py +0 -0
  511. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/message.py +0 -0
  512. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/proctitle.py +0 -0
  513. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/proxy.py +0 -0
  514. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/__init__.py +0 -0
  515. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/columns.py +0 -0
  516. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/diff_render.py +0 -0
  517. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/markdown.py +0 -0
  518. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/markdown_sample.md +0 -0
  519. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/markdown_sample_short.md +0 -0
  520. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/rich/syntax.py +0 -0
  521. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/sensitive.py +0 -0
  522. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/signals.py +0 -0
  523. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/slashcmd.py +0 -0
  524. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/sleep_inhibitor.py +0 -0
  525. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/string.py +0 -0
  526. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/term.py +0 -0
  527. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/trust.py +0 -0
  528. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/utils/typing.py +0 -0
  529. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/__init__.py +0 -0
  530. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/api/__init__.py +0 -0
  531. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/api/config.py +0 -0
  532. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/api/open_in.py +0 -0
  533. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/api/sessions.py +0 -0
  534. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/app.py +0 -0
  535. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/auth.py +0 -0
  536. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/models.py +0 -0
  537. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/runner/__init__.py +0 -0
  538. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/runner/messages.py +0 -0
  539. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/runner/process.py +0 -0
  540. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/runner/worker.py +0 -0
  541. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/_headers +0 -0
  542. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  543. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  544. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  545. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  546. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  547. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  548. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  549. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  550. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  551. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  552. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  553. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  554. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  555. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  556. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  557. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  558. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  559. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  560. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  561. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  562. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  563. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  564. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  565. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  566. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  567. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  568. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  569. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  570. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  571. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  572. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  573. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  574. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  575. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  576. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  577. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  578. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  579. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  580. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  581. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  582. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  583. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  584. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  585. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  586. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  587. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  588. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  589. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  590. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  591. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  592. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  593. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  594. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  595. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  596. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  597. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  598. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  599. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  600. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  601. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/abap-CLvhMVsD.js +0 -0
  602. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/actionscript-3--17pq3dv.js +0 -0
  603. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ada-C5qYipkI.js +0 -0
  604. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/andromeeda-vGVdxbeo.js +0 -0
  605. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/angular-html-BKhkKBsm.js +0 -0
  606. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/angular-ts-CYPbMJCA.js +0 -0
  607. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/apache-U0d_L8uA.js +0 -0
  608. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/apex-CGTLDQj6.js +0 -0
  609. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/apl-D7bENxmy.js +0 -0
  610. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/applescript-CCn79oCD.js +0 -0
  611. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ara-4CJ0cIlV.js +0 -0
  612. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/arc-8BWbC-0s.js +0 -0
  613. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/array-BifhSqXX.js +0 -0
  614. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/asciidoc-DE70LPWp.js +0 -0
  615. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/asm-Cmm7eHzH.js +0 -0
  616. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/astro-B1l9MDUT.js +0 -0
  617. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/aurora-x-CDeNXAV0.js +0 -0
  618. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/awk-BWXHIvNe.js +0 -0
  619. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ayu-dark-DluEY0Gj.js +0 -0
  620. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ayu-light-C3h-C4tm.js +0 -0
  621. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ayu-mirage-Bqwy1Gya.js +0 -0
  622. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ballerina-B7ZEbQpA.js +0 -0
  623. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bat-Bo4NYOV-.js +0 -0
  624. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/beancount-D-usSTwE.js +0 -0
  625. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/berry-DKpUyyne.js +0 -0
  626. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bibtex-Ci_nEsc7.js +0 -0
  627. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bicep-CUHmPFLl.js +0 -0
  628. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bird2-C2hNVINV.js +0 -0
  629. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/blade-BlkqRXu6.js +0 -0
  630. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bootstrap-BhLLvBaE.css +0 -0
  631. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/bsl-BkkzgIyY.js +0 -0
  632. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/c-PpPxyn8g.js +0 -0
  633. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/c3-CnJL0r0V.js +0 -0
  634. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cadence-CQ2zXKGN.js +0 -0
  635. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cairo-DLTphjLi.js +0 -0
  636. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/catppuccin-frappe-3VR1Za6u.js +0 -0
  637. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/catppuccin-latte-DwIHMF0Q.js +0 -0
  638. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/catppuccin-macchiato-DYnBP6_5.js +0 -0
  639. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/catppuccin-mocha-DYhrFGRu.js +0 -0
  640. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/character-entities-legacy-Wut6vMuj.js +0 -0
  641. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chevrons-up-down-Dwo0Il5v.js +0 -0
  642. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-C0kf5ycP.js +0 -0
  643. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-55IACEB6-QyFAFTWp.js +0 -0
  644. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-BSJP7CBP-DIpfLhEz.js +0 -0
  645. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-Cyuzqnbw.js +0 -0
  646. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-C9D6P7Uq.js +0 -0
  647. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-NNHCCRGN-DmZbXBJw.js +0 -0
  648. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-CyVdgm44.js +0 -0
  649. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/chunk-XPW4576I-ru3A962d.js +0 -0
  650. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/clarity-SemFz856.js +0 -0
  651. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/clojure-DqKBuwfJ.js +0 -0
  652. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cmake-Bj61d0ZC.js +0 -0
  653. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cobol-BoXxFQjh.js +0 -0
  654. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/codeowners-C8r90Shi.js +0 -0
  655. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/codeql-oeQT6MSM.js +0 -0
  656. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/coffee-B5TREocO.js +0 -0
  657. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/common-lisp-Cv5bFMCO.js +0 -0
  658. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/coq-BrsZFFmf.js +0 -0
  659. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-PjRvINHM.js +0 -0
  660. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cpp-CVIk4zoB.js +0 -0
  661. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/crystal-CvUuUt6_.js +0 -0
  662. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/csharp-Ct8U2NOr.js +0 -0
  663. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/css-D7o5g6xi.js +0 -0
  664. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/csv-Dx-8-gkx.js +0 -0
  665. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cue-CE9AQfxI.js +0 -0
  666. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cypher-ClKdZ_lG.js +0 -0
  667. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/cytoscape.esm-jXPf2pm4.js +0 -0
  668. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/d-qD-0Kul2.js +0 -0
  669. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dagre-Uyq5yTtG.js +0 -0
  670. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dark-plus-Cs2F2srj.js +0 -0
  671. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dart-DkHntEIa.js +0 -0
  672. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dax-BkyTk9wS.js +0 -0
  673. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/defaultLocale-C8Fc0cco.js +0 -0
  674. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/desktop-Dlh5hvp9.js +0 -0
  675. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/diff-BDNflWRl.js +0 -0
  676. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/diff-Dvab7kiv.css +0 -0
  677. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/diff-woXpYk--.js +0 -0
  678. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dist-B7jLwIkG.js +0 -0
  679. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dist-D4B_Bs5p.js +0 -0
  680. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dist-reBDvVlc.js +0 -0
  681. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/docker-IyjqRm3v.js +0 -0
  682. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dotenv-_5a1GRtc.js +0 -0
  683. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dracula-BHWKrbxM.js +0 -0
  684. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dracula-soft-5eyTD99u.js +0 -0
  685. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/dream-maker-DW3nJb8Q.js +0 -0
  686. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/edge-CmXZi-az.js +0 -0
  687. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/elixir-BoRIkjDi.js +0 -0
  688. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/elm-Cm7sFdI1.js +0 -0
  689. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/emacs-lisp-C9PiwqqW.js +0 -0
  690. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/erb-DuMAGb6i.js +0 -0
  691. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/erlang-Cphh6RMH.js +0 -0
  692. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/everforest-dark-sB-x3p7T.js +0 -0
  693. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/everforest-light-Df2xbC6M.js +0 -0
  694. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fennel-DQxkIbk2.js +0 -0
  695. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fish-BJitypiv.js +0 -0
  696. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fluent-C03EYrpw.js +0 -0
  697. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fortran-fixed-form-DEKoE2YW.js +0 -0
  698. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fortran-free-form-CYNrtFtB.js +0 -0
  699. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/fsharp-D13ZGOAj.js +0 -0
  700. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gdresource-C0sCabJj.js +0 -0
  701. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gdscript-Cp2uCuqX.js +0 -0
  702. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gdshader-CBce3t8t.js +0 -0
  703. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/genie-CV2tkWYe.js +0 -0
  704. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gherkin-DExj1W_8.js +0 -0
  705. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/git-commit-BSykSTBG.js +0 -0
  706. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/git-rebase-D2tSwjJb.js +0 -0
  707. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-dark-C-LZuMrd.js +0 -0
  708. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-dark-default-DXG-b-1a.js +0 -0
  709. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-dark-dimmed-Bx1FflLF.js +0 -0
  710. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-dark-high-contrast-B_tTalzw.js +0 -0
  711. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-light-EUqPIrTm.js +0 -0
  712. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-light-default-BXViO-2h.js +0 -0
  713. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/github-light-high-contrast-B68TUdTA.js +0 -0
  714. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gleam-CSRkHgEL.js +0 -0
  715. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/glimmer-js--VVKNatA.js +0 -0
  716. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/glimmer-ts-Bfa_wiNC.js +0 -0
  717. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/glsl-MPwHyiXQ.js +0 -0
  718. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gn-ilITqXS6.js +0 -0
  719. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gnuplot-7GGW24-e.js +0 -0
  720. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/go-BJwz_mda.js +0 -0
  721. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/graphlib-C22s9MDV.js +0 -0
  722. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/graphql-NW854Khs.js +0 -0
  723. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/groovy-CacY0gHj.js +0 -0
  724. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-dark-hard-C820rvS2.js +0 -0
  725. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-dark-medium-BPjhmG05.js +0 -0
  726. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-dark-soft-MrdJrrXF.js +0 -0
  727. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-light-hard-BC_s9l72.js +0 -0
  728. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-light-medium-BAWPOn9u.js +0 -0
  729. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/gruvbox-light-soft-BSMLrYjP.js +0 -0
  730. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hack-CSl79E5u.js +0 -0
  731. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/haml-Dmb1YmHj.js +0 -0
  732. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/handlebars-Du8DtnRB.js +0 -0
  733. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/haskell-D8IpX4py.js +0 -0
  734. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/haxe-OTjmBuCE.js +0 -0
  735. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hcl-Dh228itO.js +0 -0
  736. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hjson-CxZEssPk.js +0 -0
  737. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hlsl-Cvrh5tZx.js +0 -0
  738. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/horizon-CE9ld1lL.js +0 -0
  739. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/horizon-bright-Br1oVSNq.js +0 -0
  740. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/houston-CsvMBhTu.js +0 -0
  741. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/html-Kpl3bQKd.js +0 -0
  742. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/html-derivative-BEEWNZ8Y.js +0 -0
  743. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/http-HvMG3K54.js +0 -0
  744. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hurl-CLh1t2ES.js +0 -0
  745. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hxml-B0Qn7Nwc.js +0 -0
  746. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/hy-CZbG8q4J.js +0 -0
  747. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/imba-DsUTQ-LC.js +0 -0
  748. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ini-B5eOa1yu.js +0 -0
  749. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/init-D6jRqBbL.js +0 -0
  750. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  751. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  752. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  753. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  754. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  755. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  756. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  757. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/java-Cst_eZTE.js +0 -0
  758. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/javascript-i_rUTyCW.js +0 -0
  759. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jinja-CaXggA6f.js +0 -0
  760. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jison-D9Fg2JgN.js +0 -0
  761. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/json-DS5j4FfK.js +0 -0
  762. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/json5-BR5RXkoi.js +0 -0
  763. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jsonc-CYpm1nAK.js +0 -0
  764. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jsonl-CmCQp5Yx.js +0 -0
  765. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jsonnet-CJTPZ8u_.js +0 -0
  766. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jssm-DXw9l8Rf.js +0 -0
  767. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jsx-CFyhNHav.js +0 -0
  768. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/jsx-runtime-wSvXh6gi.js +0 -0
  769. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/julia-R8NNmfP1.js +0 -0
  770. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/just-BhhHYlS8.js +0 -0
  771. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kanagawa-dragon-CXtmUGW6.js +0 -0
  772. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kanagawa-lotus-BN08jTvb.js +0 -0
  773. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kanagawa-wave-CTweb8Dz.js +0 -0
  774. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/katex-BGaDVET_.js +0 -0
  775. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/katex-BorAY7qD.css +0 -0
  776. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kdl-CsD5j6eV.js +0 -0
  777. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kotlin-DhhofPvG.js +0 -0
  778. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/kusto-BUv0MjJC.js +0 -0
  779. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/laserwave-C_8bwKvT.js +0 -0
  780. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/latex-D5k_uhWv.js +0 -0
  781. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/lean-CewbzKMR.js +0 -0
  782. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/less-DVTAwKKz.js +0 -0
  783. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/lib-BLxG8W6T.js +0 -0
  784. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/libesm-8-2luV-1.js +0 -0
  785. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/light-plus-DVQuIRkW.js +0 -0
  786. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/linear-BktLjFGX.js +0 -0
  787. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/liquid-Q0_hzjly.js +0 -0
  788. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/llvm-Cm23YOpf.js +0 -0
  789. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/log-BNLmms1o.js +0 -0
  790. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/logo-Cluzi2Zq.js +0 -0
  791. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/lua-VoGSg0xb.js +0 -0
  792. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/luau-CNKltnaQ.js +0 -0
  793. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/make-Dixweg8N.js +0 -0
  794. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/markdown-BYOwaDjH.js +0 -0
  795. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/marked.esm-DLdcrU5H.js +0 -0
  796. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/marko-D_aeUD__.js +0 -0
  797. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/material-theme-Bm3Qr25_.js +0 -0
  798. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/material-theme-darker-2IIEA8gg.js +0 -0
  799. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/material-theme-lighter-uhdI0v04.js +0 -0
  800. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/material-theme-ocean-CHQ94UKr.js +0 -0
  801. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/material-theme-palenight-B5W6OYN7.js +0 -0
  802. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/matlab-D7qyCx1q.js +0 -0
  803. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/mdc-BSifqehP.js +0 -0
  804. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/mdx-DQZ5AkYe.js +0 -0
  805. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/mermaid-Bk4SNUv9.js +0 -0
  806. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/min-dark-BSWPekZh.js +0 -0
  807. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/min-light-DDpmG2fV.js +0 -0
  808. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/mipsasm-BMqwQI7S.js +0 -0
  809. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/mojo-BgCJLMeH.js +0 -0
  810. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/monokai-CdkpiU2Y.js +0 -0
  811. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/moonbit-CaWjb8XO.js +0 -0
  812. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/move-B1IS1UjX.js +0 -0
  813. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/narrat-_X_XdTYD.js +0 -0
  814. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nextflow-Bbiyy34d.js +0 -0
  815. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nextflow-groovy-Dc_ddanL.js +0 -0
  816. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nginx-CgHaWcsO.js +0 -0
  817. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/night-owl-DhmEMT88.js +0 -0
  818. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/night-owl-light-eJ-hLW7d.js +0 -0
  819. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nim-BuixXxPS.js +0 -0
  820. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nix-IvuFDN5E.js +0 -0
  821. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nord-Cb4Vim4T.js +0 -0
  822. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/nushell-DcLAeLz5.js +0 -0
  823. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/objective-c-D1A_Heim.js +0 -0
  824. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/objective-cpp-BsSzOQcm.js +0 -0
  825. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ocaml-O90oeIOV.js +0 -0
  826. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/odin-B1RWQWA5.js +0 -0
  827. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/one-dark-pro-CLwyXe_n.js +0 -0
  828. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/one-light-D7Lr4KcI.js +0 -0
  829. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/openscad-BUDT5pXO.js +0 -0
  830. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ordinal-hYBb2elL.js +0 -0
  831. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/pascal-4ZHwLPI5.js +0 -0
  832. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/path-BWPyau1x.js +0 -0
  833. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/perl-BLMySlFJ.js +0 -0
  834. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/php-Czf_fybR.js +0 -0
  835. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/pkl-ot-7Btpt.js +0 -0
  836. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/plastic-DQwYfKfQ.js +0 -0
  837. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/plsql-DGHpHOYJ.js +0 -0
  838. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/po-BiJDBrnU.js +0 -0
  839. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/poimandres-DRFjx7u4.js +0 -0
  840. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/polar-C7UOKdEL.js +0 -0
  841. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/postcss-BXeXVLqQ.js +0 -0
  842. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/powerquery-DNMTfnFr.js +0 -0
  843. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/powershell-DshXNtvi.js +0 -0
  844. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/prisma-BsRQq5mF.js +0 -0
  845. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/prolog-iXnhIJG7.js +0 -0
  846. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/proto-DB4EqR-F.js +0 -0
  847. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/pug-CsZglf8T.js +0 -0
  848. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/puppet-CDv2pdJW.js +0 -0
  849. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/purescript-9MfHhQsQ.js +0 -0
  850. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/python-gzcpVVnB.js +0 -0
  851. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/qml-DcW_sT3t.js +0 -0
  852. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/qmldir-DCQb3MpD.js +0 -0
  853. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/qss-Fe1Jh2GI.js +0 -0
  854. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/r-D2d3McyU.js +0 -0
  855. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/racket-DcIDlBhZ.js +0 -0
  856. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/raku-B3gFvitq.js +0 -0
  857. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/razor-oFpUW61Z.js +0 -0
  858. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/red-CJ3rzSJv.js +0 -0
  859. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/reg-CRGYupPL.js +0 -0
  860. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/regexp-Bu0flJgP.js +0 -0
  861. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rel-BtDbiS_P.js +0 -0
  862. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/riscv-Ckw8ddFX.js +0 -0
  863. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ron-VUp2lXgN.js +0 -0
  864. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rose-pine-BthvhNj6.js +0 -0
  865. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rose-pine-dawn-Dg85fqjY.js +0 -0
  866. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rose-pine-moon-hon4tzzS.js +0 -0
  867. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rosmsg-CAekHB0j.js +0 -0
  868. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rough.esm-CSKSodPl.js +0 -0
  869. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rst-U6Eu7ipE.js +0 -0
  870. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ruby-CUQsVT6d.js +0 -0
  871. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/rust-Cfkwpbl8.js +0 -0
  872. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/sas-CNBFrLhc.js +0 -0
  873. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/sass-DXrisJhu.js +0 -0
  874. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/scala-DKOlJaKm.js +0 -0
  875. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/scheme-DQCgrYNe.js +0 -0
  876. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/scss-CPnU-uuv.js +0 -0
  877. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/sdbl-bTVj8UrX.js +0 -0
  878. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/shaderlab-TOUzSsQk.js +0 -0
  879. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/shellscript-BbTp1yjG.js +0 -0
  880. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/shellsession-BmAC8SMF.js +0 -0
  881. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/slack-dark-DnToyrRv.js +0 -0
  882. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/slack-ochin-B2OO5cIa.js +0 -0
  883. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/smalltalk-B16xEiuN.js +0 -0
  884. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/snazzy-light-4G7pJPwS.js +0 -0
  885. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/solarized-dark-DV17i1UV.js +0 -0
  886. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/solarized-light-DSh2HLQt.js +0 -0
  887. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/solidity-CKzVLygQ.js +0 -0
  888. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/soy-CdbyEXp6.js +0 -0
  889. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/space-separated-tokens-DpjE5PGy.js +0 -0
  890. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/sparql-D_iOobhT.js +0 -0
  891. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/splunk-BC2Px7Mm.js +0 -0
  892. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/sql-hpBkusIy.js +0 -0
  893. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/src-D-NMWEou.js +0 -0
  894. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ssh-config-BgfXC-Er.js +0 -0
  895. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/stata-DVbvk3qH.js +0 -0
  896. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/stylus-B6D30XZt.js +0 -0
  897. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/surrealql-DxccxuMd.js +0 -0
  898. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/svelte-DzNm5V2w.js +0 -0
  899. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/swift-DonLKvLd.js +0 -0
  900. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/synthwave-84-nFMaYfgc.js +0 -0
  901. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/system-verilog-DJ5XKQeo.js +0 -0
  902. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/systemd-BxMlprV5.js +0 -0
  903. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/talonscript-CohzipZa.js +0 -0
  904. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tasl-DMoTqEGO.js +0 -0
  905. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tcl-CZd0xW_V.js +0 -0
  906. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/templ-CsM0tTsw.js +0 -0
  907. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/terraform-DswuEJGm.js +0 -0
  908. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tex-B0f_hYr8.js +0 -0
  909. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tokyo-night-oM2G3aXe.js +0 -0
  910. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/toml-CcmNWLt0.js +0 -0
  911. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/ts-tags-Bf-FGGvT.js +0 -0
  912. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tsv-sltzmVWM.js +0 -0
  913. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/tsx-DFvk7AwW.js +0 -0
  914. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/turtle-ByJddavk.js +0 -0
  915. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/twig-VJ4-Ntm0.js +0 -0
  916. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/typescript-DHTLvXzV.js +0 -0
  917. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/typespec-B88KGewJ.js +0 -0
  918. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/typst-DI99ib-x.js +0 -0
  919. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/v-DETTlOr0.js +0 -0
  920. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/v4-DqR3yzBO.js +0 -0
  921. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vala-zf12oZj6.js +0 -0
  922. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vb-Djn5o6TS.js +0 -0
  923. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/verilog-CiiDBU1e.js +0 -0
  924. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vesper-D5bVUKB1.js +0 -0
  925. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vhdl-BroJfC0k.js +0 -0
  926. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/viml-DvXPmvsu.js +0 -0
  927. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vitesse-black-fwtXNY1n.js +0 -0
  928. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vitesse-dark-BZCL-v6S.js +0 -0
  929. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vitesse-light-VbXTXTou.js +0 -0
  930. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vue-D3dSYZKz.js +0 -0
  931. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vue-html-DQch_7VQ.js +0 -0
  932. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vue-vine-B67Dz05t.js +0 -0
  933. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/vyper-CgoNMtux.js +0 -0
  934. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wasm-BnjxR4X6.js +0 -0
  935. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wasm-ByWQv1Qj.js +0 -0
  936. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wenyan-C8pVoKbM.js +0 -0
  937. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wgsl-BsKzXJz4.js +0 -0
  938. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wikitext-ClFFjSW2.js +0 -0
  939. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wit-DdvCle-K.js +0 -0
  940. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/wolfram-DLL8P-h_.js +0 -0
  941. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/xml-C33zriiW.js +0 -0
  942. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/xsl-BFS2wyMt.js +0 -0
  943. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/yaml-w0rMsuN4.js +0 -0
  944. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/zenscript-BnlCZFoB.js +0 -0
  945. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/assets/zig-CMLA9XwU.js +0 -0
  946. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/apple-touch-icon.png +0 -0
  947. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/arctecture.webp +0 -0
  948. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/bimi-logo.svg +0 -0
  949. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/favicon.ico +0 -0
  950. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin-ext.woff2 +0 -0
  951. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin.woff2 +0 -0
  952. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin-ext.woff2 +0 -0
  953. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin.woff2 +0 -0
  954. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin-ext.woff2 +0 -0
  955. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin.woff2 +0 -0
  956. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin-ext.woff2 +0 -0
  957. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin.woff2 +0 -0
  958. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin-ext.woff2 +0 -0
  959. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin.woff2 +0 -0
  960. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin-ext.woff2 +0 -0
  961. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin.woff2 +0 -0
  962. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/icon-192.png +0 -0
  963. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/icon-512.png +0 -0
  964. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/icon.svg +0 -0
  965. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/logo.png +0 -0
  966. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/pythinker_animated.svg +0 -0
  967. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/brand/robots.txt +0 -0
  968. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/install.ps1 +0 -0
  969. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/install.sh +0 -0
  970. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/static/logo.png +0 -0
  971. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/store/__init__.py +0 -0
  972. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/web/store/sessions.py +0 -0
  973. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/__init__.py +0 -0
  974. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/file.py +0 -0
  975. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/jsonrpc.py +0 -0
  976. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/protocol.py +0 -0
  977. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/root_hub.py +0 -0
  978. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/serde.py +0 -0
  979. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/server.py +0 -0
  980. {pythinker_code-0.44.0 → pythinker_code-0.46.0}/src/pythinker_code/wire/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythinker-code
3
- Version: 0.44.0
3
+ Version: 0.46.0
4
4
  Summary: Pythinker — an agentic CLI developed by Pythoughts-labs.
5
5
  Keywords: cli,agent,ai,coding-assistant,llm,claude,openai,terminal
6
6
  Author: Pythoughts-labs
@@ -115,13 +115,13 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
115
115
 
116
116
  ---
117
117
 
118
- ## 🆕 What's New in 0.44.0
118
+ ## 🆕 What's New in 0.46.0
119
119
 
120
- - **Toggle auto-update from the CLI.** `/update` now opens a menu *Check for updates now* (the default, so a bare `/update` still checks immediately) or *Auto-update on startup* with its current state. `/update auto on|off` sets it directly, the same toggle appears in `/settings`, and `pythinker info` reports the status. Every surface shows the *effective* state, so an external override (`PYTHINKER_CLI_NO_AUTO_UPDATE` or a source checkout) is surfaced as the reason instead of silently no-opping.
121
- - **No more spurious "could not close the program" error on Windows updates.** The native installer now waits for the launching `pythinker.exe` to fully exit (its PID is passed via `/PID`) before its Restart Manager scan runs, so the scan no longer races the launcher's teardown into a false "close the program and retry" dialog. The update already succeeded in that case; now it completes cleanly.
122
- - **Simpler Windows update path.** With every shipped Windows install updating through the native installer, the Windows-only detached-spawn upgrade helper is gone; the remaining pip/uv/pipx path runs the upgrade inline and surfaces real command output and errors instead of a fire-and-forget process.
120
+ - **Faster auto-update detection.** The background startup update check now runs every 30 minutes instead of once a day, so a freshly published release is picked up within the hour rather than after a full day. A transient network error at startup is retried on the next launch instead of suppressing updates for the whole window.
121
+ - **Persistent update notice under the prompt.** When a newer release is available, a yellow `↑ Update available vX · /update` line sits directly under the input; after a background install it switches to a restart-to-apply message, then clears once you restart onto the new version. It stays out of the way for dismissed versions, disabled auto-update, and source checkouts.
122
+ - **Welcome banner robot stays visible in narrow terminals.** Below ~68 columns the robot mark now stacks centered above the welcome copy instead of being dropped, so it stays on screen at any width that can render its Unicode glyphs.
123
123
 
124
- Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.44.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
124
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.46.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
125
125
 
126
126
 
127
127
  ---
@@ -211,7 +211,7 @@ matches your OS — no Python, Node, or `uv` prerequisite.
211
211
 
212
212
  | Platform | Recommended install | Artifact source |
213
213
  |---|---|---|
214
- | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.44.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
214
+ | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.46.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
215
215
  | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> / <img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux">** | `curl -fsSL https://pythinker.com/install.sh \| bash` | native tarball from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
216
216
  | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install Pythoughts-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
217
217
  | **🐳 Docker** | `docker run --rm -it ghcr.io/pythoughts-labs/pythinker-code` | GHCR multi-arch image |
@@ -239,7 +239,7 @@ pythinker # start the interactive TUI
239
239
 
240
240
  ### 🪟 Windows — native installer
241
241
 
242
- `PythinkerSetup-0.44.0.exe` is a signed* Inno Setup wizard. Installs per-user
242
+ `PythinkerSetup-0.46.0.exe` is a signed* Inno Setup wizard. Installs per-user
243
243
  into `%LOCALAPPDATA%\Programs\Pythinker`, registers `pythinker` on your user
244
244
  PATH (`HKCU\Environment`), broadcasts `WM_SETTINGCHANGE` so new shells see
245
245
  the change. **No UAC prompt.**
@@ -250,13 +250,13 @@ irm https://pythinker.com/install.ps1 | iex
250
250
 
251
251
  # Or manually download the installer + checksum from the Releases page,
252
252
  # verify with Get-FileHash, then run:
253
- .\PythinkerSetup-0.44.0.exe
253
+ .\PythinkerSetup-0.46.0.exe
254
254
 
255
255
  # Open a fresh PowerShell
256
256
  pythinker --version
257
257
  ```
258
258
 
259
- **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.44.0.exe /ALLUSERS`
259
+ **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.46.0.exe /ALLUSERS`
260
260
  installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
261
261
 
262
262
  **Upgrade:** `pythinker update` from inside the running app — it downloads
@@ -314,26 +314,26 @@ attached to every GitHub Release.
314
314
 
315
315
  ```sh
316
316
  # Debian / Ubuntu (x86_64)
317
- sudo dpkg -i pythinker-code_0.44.0_amd64.deb
317
+ sudo dpkg -i pythinker-code_0.46.0_amd64.deb
318
318
  sudo apt-get install -f # only if dpkg reports missing deps
319
319
 
320
320
  # Debian / Ubuntu (ARM64)
321
- sudo dpkg -i pythinker-code_0.44.0_arm64.deb
321
+ sudo dpkg -i pythinker-code_0.46.0_arm64.deb
322
322
 
323
323
  # Fedora / RHEL / openSUSE (x86_64)
324
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.x86_64.rpm
325
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.x86_64.rpm.sha256
326
- sha256sum -c pythinker-code-0.44.0.x86_64.rpm.sha256
324
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.x86_64.rpm
325
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.x86_64.rpm.sha256
326
+ sha256sum -c pythinker-code-0.46.0.x86_64.rpm.sha256
327
327
  # Fedora / RHEL:
328
- sudo dnf install ./pythinker-code-0.44.0.x86_64.rpm
328
+ sudo dnf install ./pythinker-code-0.46.0.x86_64.rpm
329
329
  # openSUSE:
330
- sudo zypper install ./pythinker-code-0.44.0.x86_64.rpm
330
+ sudo zypper install ./pythinker-code-0.46.0.x86_64.rpm
331
331
 
332
332
  # Fedora / RHEL (aarch64)
333
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.aarch64.rpm
334
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.aarch64.rpm.sha256
335
- sha256sum -c pythinker-code-0.44.0.aarch64.rpm.sha256
336
- sudo dnf install ./pythinker-code-0.44.0.aarch64.rpm
333
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.aarch64.rpm
334
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.aarch64.rpm.sha256
335
+ sha256sum -c pythinker-code-0.46.0.aarch64.rpm.sha256
336
+ sudo dnf install ./pythinker-code-0.46.0.aarch64.rpm
337
337
  ```
338
338
 
339
339
  Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
@@ -342,8 +342,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
342
342
  **Verify before install:**
343
343
 
344
344
  ```sh
345
- sha256sum -c pythinker-code_0.44.0_amd64.deb.sha256 # Debian/Ubuntu
346
- sha256sum -c pythinker-code-0.44.0.x86_64.rpm.sha256 # Fedora/RHEL
345
+ sha256sum -c pythinker-code_0.46.0_amd64.deb.sha256 # Debian/Ubuntu
346
+ sha256sum -c pythinker-code-0.46.0.x86_64.rpm.sha256 # Fedora/RHEL
347
347
  ```
348
348
 
349
349
  **Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
@@ -809,8 +809,8 @@ make test-pythinker-sdk # SDK only
809
809
  ```sh
810
810
  make web-back # web backend
811
811
  make web-front # web frontend
812
- make vis-back # vis backend
813
- make vis-front # vis frontend
812
+ make dashboard-back # dashboard backend
813
+ make dashboard-front # dashboard frontend
814
814
  ```
815
815
 
816
816
  </td>
@@ -835,7 +835,7 @@ make help # all targets
835
835
 
836
836
  ```
837
837
  pythinker-code/
838
- ├── 📦 src/pythinker_code/ CLI runtime · tools · UIs · ACP · MCP · hooks · plugins · skills · web · vis backends
838
+ ├── 📦 src/pythinker_code/ CLI runtime · tools · UIs · ACP · MCP · hooks · plugins · skills · web · dashboard backends
839
839
  ├── 🧱 packages/
840
840
  │ ├── pythinker-core/ Provider-agnostic message, tool, and chat-provider abstractions
841
841
  │ ├── pythinker-host/ Local/remote host filesystem and command execution
@@ -50,13 +50,13 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
50
50
 
51
51
  ---
52
52
 
53
- ## 🆕 What's New in 0.44.0
53
+ ## 🆕 What's New in 0.46.0
54
54
 
55
- - **Toggle auto-update from the CLI.** `/update` now opens a menu *Check for updates now* (the default, so a bare `/update` still checks immediately) or *Auto-update on startup* with its current state. `/update auto on|off` sets it directly, the same toggle appears in `/settings`, and `pythinker info` reports the status. Every surface shows the *effective* state, so an external override (`PYTHINKER_CLI_NO_AUTO_UPDATE` or a source checkout) is surfaced as the reason instead of silently no-opping.
56
- - **No more spurious "could not close the program" error on Windows updates.** The native installer now waits for the launching `pythinker.exe` to fully exit (its PID is passed via `/PID`) before its Restart Manager scan runs, so the scan no longer races the launcher's teardown into a false "close the program and retry" dialog. The update already succeeded in that case; now it completes cleanly.
57
- - **Simpler Windows update path.** With every shipped Windows install updating through the native installer, the Windows-only detached-spawn upgrade helper is gone; the remaining pip/uv/pipx path runs the upgrade inline and surfaces real command output and errors instead of a fire-and-forget process.
55
+ - **Faster auto-update detection.** The background startup update check now runs every 30 minutes instead of once a day, so a freshly published release is picked up within the hour rather than after a full day. A transient network error at startup is retried on the next launch instead of suppressing updates for the whole window.
56
+ - **Persistent update notice under the prompt.** When a newer release is available, a yellow `↑ Update available vX · /update` line sits directly under the input; after a background install it switches to a restart-to-apply message, then clears once you restart onto the new version. It stays out of the way for dismissed versions, disabled auto-update, and source checkouts.
57
+ - **Welcome banner robot stays visible in narrow terminals.** Below ~68 columns the robot mark now stacks centered above the welcome copy instead of being dropped, so it stays on screen at any width that can render its Unicode glyphs.
58
58
 
59
- Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.44.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
59
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.46.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
60
60
 
61
61
 
62
62
  ---
@@ -146,7 +146,7 @@ matches your OS — no Python, Node, or `uv` prerequisite.
146
146
 
147
147
  | Platform | Recommended install | Artifact source |
148
148
  |---|---|---|
149
- | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.44.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
149
+ | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.46.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
150
150
  | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> / <img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux">** | `curl -fsSL https://pythinker.com/install.sh \| bash` | native tarball from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
151
151
  | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install Pythoughts-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
152
152
  | **🐳 Docker** | `docker run --rm -it ghcr.io/pythoughts-labs/pythinker-code` | GHCR multi-arch image |
@@ -174,7 +174,7 @@ pythinker # start the interactive TUI
174
174
 
175
175
  ### 🪟 Windows — native installer
176
176
 
177
- `PythinkerSetup-0.44.0.exe` is a signed* Inno Setup wizard. Installs per-user
177
+ `PythinkerSetup-0.46.0.exe` is a signed* Inno Setup wizard. Installs per-user
178
178
  into `%LOCALAPPDATA%\Programs\Pythinker`, registers `pythinker` on your user
179
179
  PATH (`HKCU\Environment`), broadcasts `WM_SETTINGCHANGE` so new shells see
180
180
  the change. **No UAC prompt.**
@@ -185,13 +185,13 @@ irm https://pythinker.com/install.ps1 | iex
185
185
 
186
186
  # Or manually download the installer + checksum from the Releases page,
187
187
  # verify with Get-FileHash, then run:
188
- .\PythinkerSetup-0.44.0.exe
188
+ .\PythinkerSetup-0.46.0.exe
189
189
 
190
190
  # Open a fresh PowerShell
191
191
  pythinker --version
192
192
  ```
193
193
 
194
- **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.44.0.exe /ALLUSERS`
194
+ **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.46.0.exe /ALLUSERS`
195
195
  installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
196
196
 
197
197
  **Upgrade:** `pythinker update` from inside the running app — it downloads
@@ -249,26 +249,26 @@ attached to every GitHub Release.
249
249
 
250
250
  ```sh
251
251
  # Debian / Ubuntu (x86_64)
252
- sudo dpkg -i pythinker-code_0.44.0_amd64.deb
252
+ sudo dpkg -i pythinker-code_0.46.0_amd64.deb
253
253
  sudo apt-get install -f # only if dpkg reports missing deps
254
254
 
255
255
  # Debian / Ubuntu (ARM64)
256
- sudo dpkg -i pythinker-code_0.44.0_arm64.deb
256
+ sudo dpkg -i pythinker-code_0.46.0_arm64.deb
257
257
 
258
258
  # Fedora / RHEL / openSUSE (x86_64)
259
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.x86_64.rpm
260
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.x86_64.rpm.sha256
261
- sha256sum -c pythinker-code-0.44.0.x86_64.rpm.sha256
259
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.x86_64.rpm
260
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.x86_64.rpm.sha256
261
+ sha256sum -c pythinker-code-0.46.0.x86_64.rpm.sha256
262
262
  # Fedora / RHEL:
263
- sudo dnf install ./pythinker-code-0.44.0.x86_64.rpm
263
+ sudo dnf install ./pythinker-code-0.46.0.x86_64.rpm
264
264
  # openSUSE:
265
- sudo zypper install ./pythinker-code-0.44.0.x86_64.rpm
265
+ sudo zypper install ./pythinker-code-0.46.0.x86_64.rpm
266
266
 
267
267
  # Fedora / RHEL (aarch64)
268
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.aarch64.rpm
269
- curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.44.0/pythinker-code-0.44.0.aarch64.rpm.sha256
270
- sha256sum -c pythinker-code-0.44.0.aarch64.rpm.sha256
271
- sudo dnf install ./pythinker-code-0.44.0.aarch64.rpm
268
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.aarch64.rpm
269
+ curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.46.0/pythinker-code-0.46.0.aarch64.rpm.sha256
270
+ sha256sum -c pythinker-code-0.46.0.aarch64.rpm.sha256
271
+ sudo dnf install ./pythinker-code-0.46.0.aarch64.rpm
272
272
  ```
273
273
 
274
274
  Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
@@ -277,8 +277,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
277
277
  **Verify before install:**
278
278
 
279
279
  ```sh
280
- sha256sum -c pythinker-code_0.44.0_amd64.deb.sha256 # Debian/Ubuntu
281
- sha256sum -c pythinker-code-0.44.0.x86_64.rpm.sha256 # Fedora/RHEL
280
+ sha256sum -c pythinker-code_0.46.0_amd64.deb.sha256 # Debian/Ubuntu
281
+ sha256sum -c pythinker-code-0.46.0.x86_64.rpm.sha256 # Fedora/RHEL
282
282
  ```
283
283
 
284
284
  **Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
@@ -744,8 +744,8 @@ make test-pythinker-sdk # SDK only
744
744
  ```sh
745
745
  make web-back # web backend
746
746
  make web-front # web frontend
747
- make vis-back # vis backend
748
- make vis-front # vis frontend
747
+ make dashboard-back # dashboard backend
748
+ make dashboard-front # dashboard frontend
749
749
  ```
750
750
 
751
751
  </td>
@@ -770,7 +770,7 @@ make help # all targets
770
770
 
771
771
  ```
772
772
  pythinker-code/
773
- ├── 📦 src/pythinker_code/ CLI runtime · tools · UIs · ACP · MCP · hooks · plugins · skills · web · vis backends
773
+ ├── 📦 src/pythinker_code/ CLI runtime · tools · UIs · ACP · MCP · hooks · plugins · skills · web · dashboard backends
774
774
  ├── 🧱 packages/
775
775
  │ ├── pythinker-core/ Provider-agnostic message, tool, and chat-provider abstractions
776
776
  │ ├── pythinker-host/ Local/remote host filesystem and command execution
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pythinker-code"
3
- version = "0.44.0"
3
+ version = "0.46.0"
4
4
  description = "Pythinker — an agentic CLI developed by Pythoughts-labs."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -15,6 +15,103 @@ GitHub Releases page; `0.8.0` is the new starting line.
15
15
 
16
16
  ## Unreleased
17
17
 
18
+ ## 0.46.0 (2026-06-14)
19
+
20
+ - **Startup auto-update now picks up new releases within half an hour instead of up to a day.** The background update check was throttled to once every 24h, so a freshly published release could go unnoticed for a full day after the last check; the interval is now 30 minutes. The silent installer also no longer marks the throttle *before* the network call — a transient startup network error returns `FAILED` and is retried on the next launch instead of suppressing updates for the whole window.
21
+ - **The welcome banner now keeps the robot mark visible in compact terminals.** Below ~68 columns the robot was dropped (it could not sit beside the welcome copy); it now stacks centered above the copy instead, so the mark stays on screen at any width that can render its Unicode glyphs. ASCII-only terminals are unaffected.
22
+ - **A persistent update notice now sits directly under the prompt input.** When a newer release is available the footer shows a yellow `↑ Update available — vX · /update` line; once a release has been installed in the background it switches to a restart-to-apply message instead of pointing at `/update`, and it clears after you restart onto the new version. The line is suppressed for dismissed versions, disabled auto-update, and source checkouts.
23
+
24
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.46.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
25
+
26
+ ## 0.45.0 (2026-06-14)
27
+
28
+ - **Agent-tracing dashboard.** Added `pythinker dashboard` — a local web UI for inspecting sessions, wire events, context messages, tool statistics, and usage over time. It is also reachable from the interactive shell via the `/reports` slash command (aliased `/dashboard`).
29
+ - **Gemini finish_reason is now sticky once truncation is detected.** A second candidate with any non-`MAX_TOKENS` finish reason no longer overwrites a previously captured `"length"` signal at either the streaming or non-streaming path in the Google GenAI provider.
30
+ - **Budget-exhausted and stuck-loop messages are now visible in the shell.** Both handoff messages were appended to context but never sent to the wire, so the interactive shell showed no feedback when a spend ceiling or stuck-loop exit fired. Both now emit a `TextPart` wire event so the message appears in the shell.
31
+ - **Dark-theme prompt_toolkit border colors now match the TUI token constants.** Six stale slate hex values in `_PROMPT_STYLE_DARK` diverged from the current `border` and `border_muted` token values; they are now in sync and a parity test binds them going forward.
32
+ - **Non-review successful agents now show a summary preview in the agent tree.** Completed subagents with a `summary_preview` now display a dim preview line in the RunAgents tree renderer (review runs continue to use the findings table instead).
33
+ - **Non-string values in `required_mcp_servers` YAML are silently dropped.** Integers, booleans, and `null` entries were previously coerced to strings (`"1"`, `"False"`, `"None"`), creating permanently unsatisfiable MCP server names. Only actual string entries are now retained.
34
+ - **Fixed MiniMax token-plan `/usage` accuracy.** The token-plan response now meters by
35
+ percentage (the count fields are 0) and reports reset times in milliseconds; the adapter was
36
+ reading the zero counts (showing "0 requests used") and treating milliseconds as seconds
37
+ (showing resets like "171d" for a 5-hour window). It now reads `*_remaining_percent` and
38
+ converts reset times correctly, so e.g. a week at 82% remaining shows "18% used" resetting in
39
+ hours, not days.
40
+ - **GLM-5.2 (1M context) is now the default Z.AI model.** Logging in with Z.AI selects
41
+ `z-ai/glm-5.2` with its full 1,000,000-token context window. GLM-5.2 is absent from z.ai's
42
+ model-listing API, so it is pinned into the catalog and offered even when discovery omits it;
43
+ if z.ai later lists it, the API definition wins and it is shown once (no duplicate). Earlier
44
+ GLM models (5.1, 5, 5-turbo, 4.7, 4.5-air) remain available.
45
+ - **Kimi K2.7 Code added, and a new Kimi Coding Plan provider.** `kimi-k2.7-code` is now the
46
+ default model on the Moonshot plan, and a separate "Kimi Coding Plan" provider
47
+ (`/login kimi`) targets Moonshot's Anthropic-compatible coding endpoint with `kimi-k2.7-code`.
48
+ - **Verb spinner stays visible while a foreground tool or subagent runs.** The shimmering
49
+ "Working…/Thinking…" activity indicator now persists for the whole active turn — including
50
+ while a foreground tool (such as a shell-started server) or a subagent is executing — instead
51
+ of disappearing until the tool finished. This keeps long tool/subagent waits feeling alive
52
+ rather than frozen. An in-progress todo still swaps the verb for the todo title as before.
53
+ - **Project instructions delivered as a separate authoritative message.** The merged
54
+ `AGENTS.md` is no longer baked into the system prompt; it is delivered as a session-start,
55
+ user-role `<system-reminder>` preamble, assembled fresh on every request from session
56
+ state. This keeps the project rules immune to two regressions a system-prompt move would
57
+ otherwise risk — context compaction can no longer summarize them away (they never enter the
58
+ persisted history) and the dynamic-injection token budget can no longer truncate them —
59
+ while keeping the system prompt free of per-project content. `pythinker system-prompt` shows
60
+ the reminder below a labeled divider so the dump stays faithful.
61
+ - **Inspect the assembled system prompt.** New `pythinker system-prompt` command
62
+ renders and prints the fully-assembled system prompt for an agent
63
+ (`--agent <name>`, `--agent-file <path>`, `--work-dir <dir>`) — substituting the
64
+ live work directory, OS/shell, merged `AGENTS.md`, and discovered skills. It is
65
+ read-only: no session is created, no provider auth is required, and no MCP
66
+ servers are loaded.
67
+ - **Bound parallel tool fan-out.** Parallel-safe tool calls in one turn still
68
+ overlap, but now up to a fixed concurrency cap (10) instead of without bound, so
69
+ a turn that fans out many readers (e.g. dozens of web fetches) can no longer open
70
+ an unbounded number of sockets/file handles at once. Mutating-tool ordering and
71
+ writer exclusivity are unchanged.
72
+ - **Optional per-session spend ceiling.** New `loop_control.max_session_cost_usd`
73
+ config option (off by default). When set, a turn stops with a clear
74
+ budget-exhausted handoff message once the session's accumulated estimated cost
75
+ reaches the ceiling, instead of running to the step limit — and goal
76
+ auto-continuations and agent flows halt too. Best-effort: cost is `0` for models
77
+ with unknown pricing, so the ceiling never blocks when spend cannot be estimated.
78
+ - **Sensitive host files always re-confirm.** Writes to shell startup files
79
+ (`.zshrc`, `.bash_profile`, …), `.git` internals/hooks, the custom `.githooks`
80
+ hooks directory, `.ssh`, `.vscode`, and git
81
+ credentials (`.gitconfig`, `.netrc`, `.git-credentials`) are now classified as a
82
+ distinct edit action that re-confirms every time — even under yolo/auto — and is
83
+ never recorded as session-approved, exactly like edits to pythinker's own config.
84
+ This closes an auto-approve gap where a `.git/hooks` write inside the workspace was
85
+ treated as an ordinary edit.
86
+ - **Accept-edits mode.** New `/accept-edits` toggle auto-approves reversible
87
+ in-workspace ordinary file edits while still prompting for shell, destructive,
88
+ outside-workspace, config-surface, and sensitive host-file edits. It is
89
+ session-local (not persisted) and suppressed by safe mode. Pairs with the deny-set
90
+ above so a `.git/hooks` or shell-rc write is never swept into the auto-approve tier.
91
+ - **Agents can declare required MCP servers.** A markdown agent's frontmatter may set
92
+ `required_mcp_servers: [..]`; spawning that agent (via `Agent` or `RunAgents`) is
93
+ rejected with a clear message when those servers are configured-and-absent, instead of
94
+ wasting a turn on an agent that cannot reach its tools. While MCP is still loading the
95
+ spawn is allowed (the servers may yet connect).
96
+ - **UserPromptSubmit hooks can add context.** A non-blocking `UserPromptSubmit` hook's
97
+ `additionalContext` is now injected into the user turn as a system reminder, so the
98
+ model sees it as context for the prompt (previously only a hook *block* was honored).
99
+ Slash-command parsing still reads only the user's text, never the appended context.
100
+ - **Stale-overwrite guard for file edits.** If you read a file and it then changes on
101
+ disk (edited by you in another window or by another tool), overwriting it with WriteFile
102
+ or editing it with StrReplaceFile is now rejected with "File has been modified since you
103
+ last read it" so external changes are not silently clobbered — read it again first. This
104
+ catches external edits that StrReplaceFile's exact-string matching alone would miss.
105
+ First-contact writes (a file you never read) are unaffected, and a tool's own write
106
+ refreshes the read-state so consecutive edits are never falsely flagged.
107
+ - **Recover from output-token truncation.** When a response is cut off by the
108
+ output-token limit and makes no tool call, the turn no longer ends with a half-finished
109
+ answer treated as complete — the model is nudged to continue from where it stopped, up
110
+ to `loop_control.max_truncation_recoveries` times per turn (default 3; `0` disables).
111
+ pythinker-core now surfaces the provider's truncation signal so the loop can detect it.
112
+
113
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.45.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
114
+
18
115
  ## 0.44.0 (2026-06-13)
19
116
 
20
117
  - **Toggle auto-update from the CLI.** Running `/update` now opens a menu — *Check for updates now* (the default, so a bare `/update` + Enter still checks immediately) or *Auto-update on startup* with its current state — so the toggle is discoverable without knowing a subcommand. `/update auto on|off` still sets it directly, and `/update auto` with no value opens an interactive On/Off picker (cursor defaulted to the current setting). The same toggle appears in the interactive `/settings` panel, and `pythinker info` reports the auto-update status. All surfaces show the *effective* state — an external override (`PYTHINKER_CLI_NO_AUTO_UPDATE` or a source checkout) is surfaced as the reason, renders the `/settings` row read-only, and makes `/update auto` report the read-only state rather than popping a no-op picker, so the toggle is never a silent no-op.
@@ -242,19 +242,8 @@ ${PYTHINKER_ADDITIONAL_DIRS_INFO}
242
242
  ## 11. Project Instructions (AGENTS.md)
243
243
 
244
244
  `AGENTS.md` files carry the agent-facing context a README omits — build steps, test commands, conventions, structure, and user preferences — kept separate so agents have a predictable place for instructions while READMEs stay human-focused.
245
- {% if PYTHINKER_AGENTS_MD %}
246
245
 
247
- The block below is authoritative and already merged: every `AGENTS.md` from the project root down to the working directory, deeper (more specific) files overriding shallower ones, each governing its own directory and everything beneath it.
248
-
249
- ${PYTHINKER_AGENTS_MD_FENCE}
250
- ${PYTHINKER_AGENTS_MD}
251
- ${PYTHINKER_AGENTS_MD_FENCE}
252
-
253
- Treat the merged block as complete for the root-to-working-directory range; look for additional `AGENTS.md` only in directories **below** the working directory and apply them by the same precedence when editing there.
254
- {% else %}
255
-
256
- No `AGENTS.md` files were found between the project root and the working directory; look for them only in directories **below** the working directory and apply them when editing there.
257
- {% endif %}
246
+ When any `AGENTS.md` files apply between the project root and the working directory, their merged content is **delivered as a separate authoritative message at the start of this session** — every file from the project root down to the working directory, deeper (more specific) files overriding shallower ones, each governing its own directory and everything beneath it. Treat that merged message as complete for the root-to-working-directory range, with the same authority as these instructions; look for additional `AGENTS.md` only in directories **below the working directory** and apply them by the same precedence when editing there.
258
247
 
259
248
  Precedence per §2. `README`/`README.md` files are optional supplementary context, not instructions. If a change you make invalidates anything an `AGENTS.md` documents (build/test commands, conventions, structure, workflows), update that `AGENTS.md` in the same change so it stays trustworthy.
260
249
 
@@ -7,6 +7,7 @@ OPENAI_CHATGPT_PLATFORM_ID = "openai-chatgpt"
7
7
  OPENCODE_GO_PLATFORM_ID = "opencode-go"
8
8
  MINIMAX_PLATFORM_ID = "minimax"
9
9
  MOONSHOT_PLATFORM_ID = "moonshot"
10
+ KIMI_PLATFORM_ID = "kimi"
10
11
  DEEPSEEK_PLATFORM_ID = "deepseek"
11
12
  ANTHROPIC_PLATFORM_ID = "anthropic"
12
13
  OPENROUTER_PLATFORM_ID = "openrouter"
@@ -18,6 +19,7 @@ __all__ = [
18
19
  "ALIBABA_PLATFORM_ID",
19
20
  "ANTHROPIC_PLATFORM_ID",
20
21
  "DEEPSEEK_PLATFORM_ID",
22
+ "KIMI_PLATFORM_ID",
21
23
  "LM_STUDIO_PLATFORM_ID",
22
24
  "MINIMAX_PLATFORM_ID",
23
25
  "MOONSHOT_PLATFORM_ID",