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