pythinker-code 0.23.0__tar.gz → 0.24.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 (848) hide show
  1. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/PKG-INFO +52 -48
  2. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/README.md +46 -42
  3. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/pyproject.toml +6 -6
  4. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/CHANGELOG.md +14 -2
  5. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/__main__.py +2 -2
  6. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/__init__.py +2 -2
  7. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/config.py +1 -1
  8. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/native.py +1 -1
  9. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/pythinker-code-help/SKILL.md +4 -4
  10. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/__init__.py +10 -2
  11. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/prompt.py +11 -3
  12. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/slash.py +2 -2
  13. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/update.py +176 -20
  14. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/pyinstaller.py +5 -0
  15. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/_baseUniq-CG-d0Kun.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/_baseUniq-xke532Oy.js +1 -1
  16. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/arc-6nztrqhb.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/arc-CegJbAFP.js +1 -1
  17. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/architectureDiagram-VXUJARFQ-D6GMBTp6.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/architectureDiagram-VXUJARFQ-gRgnu-gr.js +1 -1
  18. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/blockDiagram-VD42YOAC-C0eQ56-p.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/blockDiagram-VD42YOAC-Dg5w_2Yh.js +1 -1
  19. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/c4Diagram-YG6GDRKO-BDu3aELO.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/c4Diagram-YG6GDRKO-CCef5OiF.js +1 -1
  20. pythinker_code-0.24.0/src/pythinker_code/web/static/assets/channel-D_mnrgqH.js +1 -0
  21. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-CQPpkqs9.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-EgaX5uMv.js +1 -1
  22. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-55IACEB6--AHhSyfH.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-55IACEB6-DxrhgIEt.js +1 -1
  23. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-B4BG7PRW-JVZnIQfT.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-B4BG7PRW-CQVqjkPw.js +1 -1
  24. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-DI55MBZ5-lQtFDMJF.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-DI55MBZ5-CB92ALDq.js +1 -1
  25. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-BVJYumGp.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-Dx0SG_k_.js +1 -1
  26. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-QN33PNHL-CUVBW5a0.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-QN33PNHL-CPf0eYoM.js +1 -1
  27. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-Bu5ExSjU.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-CCzKoWw1.js +1 -1
  28. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/chunk-TZMSLE5B-4r10hXAO.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/chunk-TZMSLE5B-DRcEkhpm.js +1 -1
  29. pythinker_code-0.24.0/src/pythinker_code/web/static/assets/classDiagram-2ON5EDUG-CitTAFHx.js +1 -0
  30. pythinker_code-0.24.0/src/pythinker_code/web/static/assets/classDiagram-v2-WZHVMYZB-CitTAFHx.js +1 -0
  31. pythinker_code-0.24.0/src/pythinker_code/web/static/assets/clone-Bz9PJd84.js +1 -0
  32. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-CV3faXgV.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-B9Gx7wfK.js +1 -1
  33. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-ioXENSyu.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-Bk_TZfTb.js +1 -1
  34. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/cytoscape.esm-BjUd1Gic.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/cytoscape.esm-BHcnjk-H.js +1 -1
  35. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/dagre-6UL2VRFP-DkgWdw3T.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/dagre-6UL2VRFP-Crkbecci.js +1 -1
  36. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/diagram-PSM6KHXK-BG4niaGI.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/diagram-PSM6KHXK-CZZA6AcG.js +1 -1
  37. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/diagram-QEK2KX5R-B48fQGCI.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/diagram-QEK2KX5R-Cl9Bn4z0.js +1 -1
  38. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/diagram-S2PKOQOG-Dg19pmdM.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/diagram-S2PKOQOG-Cfd515FT.js +1 -1
  39. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/erDiagram-Q2GNP2WA-CRMuHvQO.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/erDiagram-Q2GNP2WA-bKIec5rn.js +1 -1
  40. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/flowDiagram-NV44I4VS-3L1Qv-IM.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/flowDiagram-NV44I4VS-QpAOui2R.js +1 -1
  41. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/ganttDiagram-JELNMOA3-DvHUN8ok.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/ganttDiagram-JELNMOA3-9b-6k-Ce.js +1 -1
  42. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/gitGraphDiagram-NY62KEGX-CtCHoY1d.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/gitGraphDiagram-NY62KEGX-1jsNU7Xj.js +1 -1
  43. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/graph-CAG9sxT1.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/graph-BpD9mq1e.js +1 -1
  44. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/index-B6-xuSuR.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/index-CcDfQ78O.js +2 -2
  45. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/index-CJY-tnfO.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/index-DOqWBZxx.js +1 -1
  46. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/index-DZj1jSUt.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/index-JGsigFy8.js +1 -1
  47. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/infoDiagram-WHAUD3N6-D-hdeTEr.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/infoDiagram-WHAUD3N6-DDG7tF9O.js +1 -1
  48. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/journeyDiagram-XKPGCS4Q-DoPvEZ5s.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/journeyDiagram-XKPGCS4Q-CbGNODS3.js +1 -1
  49. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/kanban-definition-3W4ZIXB7-Cpj6DRXn.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/kanban-definition-3W4ZIXB7-C-9k-K2F.js +1 -1
  50. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/layout-DbPYs8Xx.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/layout-C_z0jB06.js +1 -1
  51. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/linear-BkI0xGLN.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/linear-BvpHbFJ9.js +1 -1
  52. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-BAlFmYHf.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-BQYgOUUq.js +7 -7
  53. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/mermaid.core-DestSaqQ.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/mermaid.core-BJL5GYve.js +5 -5
  54. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/min-BqooB1m4.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/min-BEcwyy0D.js +1 -1
  55. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/mindmap-definition-VGOIOE7T-SzdUV4zn.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/mindmap-definition-VGOIOE7T-DGJ3sluz.js +1 -1
  56. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/pieDiagram-ADFJNKIX-Dd-pNGK7.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/pieDiagram-ADFJNKIX-CopVB6-T.js +1 -1
  57. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/quadrantDiagram-AYHSOK5B-BEfJnJ2z.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/quadrantDiagram-AYHSOK5B-BdniBu5I.js +1 -1
  58. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/requirementDiagram-UZGBJVZJ-Cq1symL3.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/requirementDiagram-UZGBJVZJ-_-TE819T.js +1 -1
  59. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/sankeyDiagram-TZEHDZUN-CAn2ooHb.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/sankeyDiagram-TZEHDZUN-Q0nhrVAc.js +1 -1
  60. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/sequenceDiagram-WL72ISMW-BUiJHnqk.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/sequenceDiagram-WL72ISMW-CM9YS9lz.js +1 -1
  61. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/stateDiagram-FKZM4ZOC-OCEIxUtU.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/stateDiagram-FKZM4ZOC-CN07f0ow.js +1 -1
  62. pythinker_code-0.24.0/src/pythinker_code/web/static/assets/stateDiagram-v2-4FDKWEC3-Cdl7WqDO.js +1 -0
  63. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/timeline-definition-IT6M3QCI-whlV0zkz.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/timeline-definition-IT6M3QCI-BLVxjxj5.js +1 -1
  64. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/treemap-KMMF4GRG-C6c74EfG.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/treemap-KMMF4GRG-DkxAx6_v.js +1 -1
  65. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/xychartDiagram-PRI3JC2R-D-xhRKhb.js → pythinker_code-0.24.0/src/pythinker_code/web/static/assets/xychartDiagram-PRI3JC2R-r872XVoE.js +1 -1
  66. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/index.html +1 -1
  67. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/install.ps1 +3 -3
  68. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/install.sh +3 -3
  69. pythinker_code-0.24.0/src/pythinker_code/web/static/logo.png +0 -0
  70. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/channel-D2neBYWA.js +0 -1
  71. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/classDiagram-2ON5EDUG-DRmlzvxg.js +0 -1
  72. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/classDiagram-v2-WZHVMYZB-DRmlzvxg.js +0 -1
  73. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/clone-CokO937M.js +0 -1
  74. pythinker_code-0.23.0/src/pythinker_code/web/static/assets/stateDiagram-v2-4FDKWEC3-CI4PcjXd.js +0 -1
  75. pythinker_code-0.23.0/src/pythinker_code/web/static/logo.png +0 -0
  76. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/LICENSE +0 -0
  77. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/NOTICE +0 -0
  78. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/__init__.py +0 -0
  79. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/AGENTS.md +0 -0
  80. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/__init__.py +0 -0
  81. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/convert.py +0 -0
  82. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/host.py +0 -0
  83. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/mcp.py +0 -0
  84. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/server.py +0 -0
  85. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/session.py +0 -0
  86. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/tools.py +0 -0
  87. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/types.py +0 -0
  88. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/acp/version.py +0 -0
  89. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/agent.yaml +0 -0
  90. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/code_reviewer.yaml +0 -0
  91. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/coder.yaml +0 -0
  92. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/debugger.yaml +0 -0
  93. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/explore.yaml +0 -0
  94. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/implementer.yaml +0 -0
  95. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/plan.yaml +0 -0
  96. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/review.yaml +0 -0
  97. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/security_reviewer.yaml +0 -0
  98. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/system.md +0 -0
  99. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/default/verifier.yaml +0 -0
  100. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agents/okabe/agent.yaml +0 -0
  101. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/agentspec.py +0 -0
  102. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/app.py +0 -0
  103. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/approval_runtime/__init__.py +0 -0
  104. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/approval_runtime/models.py +0 -0
  105. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/approval_runtime/runtime.py +0 -0
  106. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/__init__.py +0 -0
  107. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/anthropic_direct.py +0 -0
  108. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/deepseek.py +0 -0
  109. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/github_feedback.py +0 -0
  110. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/lm_studio.py +0 -0
  111. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/minimax.py +0 -0
  112. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/oauth.py +0 -0
  113. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/ollama.py +0 -0
  114. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/openai.py +0 -0
  115. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/opencode_go.py +0 -0
  116. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/openrouter.py +0 -0
  117. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/auth/platforms.py +0 -0
  118. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/__init__.py +0 -0
  119. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/agent_runner.py +0 -0
  120. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/ids.py +0 -0
  121. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/manager.py +0 -0
  122. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/models.py +0 -0
  123. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/store.py +0 -0
  124. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/summary.py +0 -0
  125. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/background/worker.py +0 -0
  126. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/__main__.py +0 -0
  127. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/_lazy_group.py +0 -0
  128. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/debug.py +0 -0
  129. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/export.py +0 -0
  130. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/info.py +0 -0
  131. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/mcp.py +0 -0
  132. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/plugin.py +0 -0
  133. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/review.py +0 -0
  134. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/secscan.py +0 -0
  135. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/security_scan.py +0 -0
  136. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/skill.py +0 -0
  137. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/toad.py +0 -0
  138. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/update.py +0 -0
  139. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/vis.py +0 -0
  140. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/cli/web.py +0 -0
  141. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/constant.py +0 -0
  142. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/events.py +0 -0
  143. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/exception.py +0 -0
  144. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/execution_profiles.py +0 -0
  145. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/extensions.py +0 -0
  146. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/file_restore.py +0 -0
  147. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/hooks/__init__.py +0 -0
  148. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/hooks/config.py +0 -0
  149. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/hooks/engine.py +0 -0
  150. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/hooks/events.py +0 -0
  151. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/hooks/runner.py +0 -0
  152. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/llm.py +0 -0
  153. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/__init__.py +0 -0
  154. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/consolidation.py +0 -0
  155. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/harvest.py +0 -0
  156. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/recall.py +0 -0
  157. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/recap.py +0 -0
  158. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/retriever.py +0 -0
  159. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/retriever_sqlite.py +0 -0
  160. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/memory/sanitize.py +0 -0
  161. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/metadata.py +0 -0
  162. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/__init__.py +0 -0
  163. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/llm.py +0 -0
  164. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/manager.py +0 -0
  165. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/models.py +0 -0
  166. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/notifier.py +0 -0
  167. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/store.py +0 -0
  168. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/notifications/wire.py +0 -0
  169. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/plugin/__init__.py +0 -0
  170. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/plugin/manager.py +0 -0
  171. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/plugin/tool.py +0 -0
  172. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/project_memory.py +0 -0
  173. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/prompt_templates.py +0 -0
  174. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/prompts/__init__.py +0 -0
  175. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/prompts/compact.md +0 -0
  176. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/prompts/init.md +0 -0
  177. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/py.typed +0 -0
  178. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/scratchpad.py +0 -0
  179. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/session.py +0 -0
  180. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/session_fork.py +0 -0
  181. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/session_state.py +0 -0
  182. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/share.py +0 -0
  183. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skill/__init__.py +0 -0
  184. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skill/flow/__init__.py +0 -0
  185. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skill/flow/d2.py +0 -0
  186. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skill/flow/mermaid.py +0 -0
  187. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skill/lockfile.py +0 -0
  188. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/check-impl-against-spec/SKILL.md +0 -0
  189. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/create-pr/SKILL.md +0 -0
  190. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/diagnose-ci-failures/SKILL.md +0 -0
  191. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/fix-errors/SKILL.md +0 -0
  192. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/implement-specs/SKILL.md +0 -0
  193. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/pr-walkthrough/SKILL.md +0 -0
  194. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/reproduce-bug-report/SKILL.md +0 -0
  195. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/resolve-merge-conflicts/SKILL.md +0 -0
  196. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/review-pr/SKILL.md +0 -0
  197. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/skill-creator/SKILL.md +0 -0
  198. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/spec-driven-implementation/SKILL.md +0 -0
  199. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/write-product-spec/SKILL.md +0 -0
  200. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/skills/write-tech-spec/SKILL.md +0 -0
  201. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/__init__.py +0 -0
  202. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/agent.py +0 -0
  203. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/approval.py +0 -0
  204. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/btw.py +0 -0
  205. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/compaction.py +0 -0
  206. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/compaction_restore.py +0 -0
  207. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/context.py +0 -0
  208. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/denwarenji.py +0 -0
  209. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/dynamic_injection.py +0 -0
  210. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/dynamic_injections/__init__.py +0 -0
  211. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/dynamic_injections/auto_mode.py +0 -0
  212. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/dynamic_injections/plan_mode.py +0 -0
  213. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/message.py +0 -0
  214. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/permission.py +0 -0
  215. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/pythinkersoul.py +0 -0
  216. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/slash.py +0 -0
  217. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/soul/toolset.py +0 -0
  218. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/__init__.py +0 -0
  219. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/builder.py +0 -0
  220. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/core.py +0 -0
  221. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/discovery.py +0 -0
  222. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/git_context.py +0 -0
  223. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/models.py +0 -0
  224. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/output.py +0 -0
  225. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/registry.py +0 -0
  226. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/runner.py +0 -0
  227. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/subagents/store.py +0 -0
  228. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/__init__.py +0 -0
  229. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/config.py +0 -0
  230. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/crash.py +0 -0
  231. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/errors.py +0 -0
  232. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/metrics.py +0 -0
  233. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/otel.py +0 -0
  234. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/sentry.py +0 -0
  235. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/telemetry/sink.py +0 -0
  236. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/AGENTS.md +0 -0
  237. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/__init__.py +0 -0
  238. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/agent/__init__.py +0 -0
  239. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/agent/description.md +0 -0
  240. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/ask_user/__init__.py +0 -0
  241. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/ask_user/description.md +0 -0
  242. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/__init__.py +0 -0
  243. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/handoff.md +0 -0
  244. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/input.md +0 -0
  245. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/list.md +0 -0
  246. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/output.md +0 -0
  247. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/background/stop.md +0 -0
  248. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/display.py +0 -0
  249. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/dmail/__init__.py +0 -0
  250. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/dmail/dmail.md +0 -0
  251. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/__init__.py +0 -0
  252. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/glob.md +0 -0
  253. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/glob.py +0 -0
  254. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/grep.md +0 -0
  255. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/grep_local.py +0 -0
  256. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/plan_mode.py +0 -0
  257. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/read.md +0 -0
  258. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/read.py +0 -0
  259. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/read_media.md +0 -0
  260. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/read_media.py +0 -0
  261. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/replace.md +0 -0
  262. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/replace.py +0 -0
  263. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/utils.py +0 -0
  264. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/write.md +0 -0
  265. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/file/write.py +0 -0
  266. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/memory/__init__.py +0 -0
  267. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/memory/memory.md +0 -0
  268. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/__init__.py +0 -0
  269. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/description.md +0 -0
  270. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/enter.py +0 -0
  271. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/enter_description.md +0 -0
  272. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/handoff.py +0 -0
  273. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/plan/heroes.py +0 -0
  274. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/scratchpad/__init__.py +0 -0
  275. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/scratchpad/scratchpad_tool.md +0 -0
  276. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/shell/__init__.py +0 -0
  277. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/shell/bash.md +0 -0
  278. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/shell/powershell.md +0 -0
  279. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/skill/__init__.py +0 -0
  280. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/skill/description.md +0 -0
  281. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/test.py +0 -0
  282. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/think/__init__.py +0 -0
  283. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/think/think.md +0 -0
  284. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/todo/__init__.py +0 -0
  285. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/todo/set_todo_list.md +0 -0
  286. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/utils.py +0 -0
  287. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/web/__init__.py +0 -0
  288. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/web/fetch.md +0 -0
  289. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/web/fetch.py +0 -0
  290. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/web/search.md +0 -0
  291. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/tools/web/search.py +0 -0
  292. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/__init__.py +0 -0
  293. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/acp/__init__.py +0 -0
  294. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/print/__init__.py +0 -0
  295. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/print/visualize.py +0 -0
  296. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/__init__.py +0 -0
  297. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/base.py +0 -0
  298. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/bash_execution.py +0 -0
  299. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/bordered_loader.py +0 -0
  300. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/diff.py +0 -0
  301. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/dynamic_border.py +0 -0
  302. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/footer.py +0 -0
  303. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/key_hints.py +0 -0
  304. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/markdown.py +0 -0
  305. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/messages.py +0 -0
  306. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/panel.py +0 -0
  307. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/render_utils.py +0 -0
  308. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/settings_list.py +0 -0
  309. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/special_messages.py +0 -0
  310. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/components/tool_execution.py +0 -0
  311. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/console.py +0 -0
  312. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/debug.py +0 -0
  313. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/design_system.py +0 -0
  314. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/echo.py +0 -0
  315. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/export_import.py +0 -0
  316. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/glyphs.py +0 -0
  317. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/keyboard.py +0 -0
  318. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/keymap.py +0 -0
  319. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/mcp_status.py +0 -0
  320. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/model_picker.py +0 -0
  321. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/motion.py +0 -0
  322. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/oauth.py +0 -0
  323. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/placeholders.py +0 -0
  324. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/render_constants.py +0 -0
  325. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/replay.py +0 -0
  326. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selector.py +0 -0
  327. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/__init__.py +0 -0
  328. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/extension.py +0 -0
  329. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/oauth.py +0 -0
  330. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/settings.py +0 -0
  331. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/show_images.py +0 -0
  332. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/theme.py +0 -0
  333. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/selectors/thinking.py +0 -0
  334. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/session_picker.py +0 -0
  335. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/setup.py +0 -0
  336. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/spacing.py +0 -0
  337. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/spinner_words.py +0 -0
  338. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/startup.py +0 -0
  339. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/task_browser.py +0 -0
  340. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tips.py +0 -0
  341. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/__init__.py +0 -0
  342. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/_file_diff.py +0 -0
  343. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/_render_utils.py +0 -0
  344. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/agent.py +0 -0
  345. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/ask_user.py +0 -0
  346. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/background.py +0 -0
  347. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/bash.py +0 -0
  348. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/edit.py +0 -0
  349. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/find.py +0 -0
  350. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/generic.py +0 -0
  351. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/grep.py +0 -0
  352. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/plan.py +0 -0
  353. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/read.py +0 -0
  354. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/think.py +0 -0
  355. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/todo.py +0 -0
  356. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/web.py +0 -0
  357. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/tool_renderers/write.py +0 -0
  358. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage.py +0 -0
  359. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/__init__.py +0 -0
  360. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/anthropic_admin.py +0 -0
  361. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/base.py +0 -0
  362. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/deepseek.py +0 -0
  363. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/minimax.py +0 -0
  364. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/openai_admin.py +0 -0
  365. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/openai_chatgpt.py +0 -0
  366. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/opencode_go.py +0 -0
  367. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/openrouter.py +0 -0
  368. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker.py +0 -0
  369. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker_ai.py +0 -0
  370. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/usage_render.py +0 -0
  371. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/__init__.py +0 -0
  372. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_activity_tree.py +0 -0
  373. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_approval_panel.py +0 -0
  374. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_blocks.py +0 -0
  375. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_btw_panel.py +0 -0
  376. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_dialog_shell.py +0 -0
  377. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_input_router.py +0 -0
  378. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_interactive.py +0 -0
  379. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_live_view.py +0 -0
  380. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_question_panel.py +0 -0
  381. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_transcript.py +0 -0
  382. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/shell/visualize/_worklog.py +0 -0
  383. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/theme.py +0 -0
  384. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/ui/tui_config.py +0 -0
  385. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/usage_ratelimit_cache.py +0 -0
  386. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/__init__.py +0 -0
  387. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/aiohttp.py +0 -0
  388. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/aioqueue.py +0 -0
  389. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/broadcast.py +0 -0
  390. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/changelog.py +0 -0
  391. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/clipboard.py +0 -0
  392. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/datetime.py +0 -0
  393. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/diff.py +0 -0
  394. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/editor.py +0 -0
  395. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/environment.py +0 -0
  396. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/envvar.py +0 -0
  397. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/export.py +0 -0
  398. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/file_filter.py +0 -0
  399. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/frontmatter.py +0 -0
  400. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/io.py +0 -0
  401. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/logging.py +0 -0
  402. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/media_tags.py +0 -0
  403. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/message.py +0 -0
  404. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/path.py +0 -0
  405. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/proctitle.py +0 -0
  406. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/proxy.py +0 -0
  407. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/__init__.py +0 -0
  408. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/columns.py +0 -0
  409. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/diff_render.py +0 -0
  410. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/markdown.py +0 -0
  411. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/markdown_sample.md +0 -0
  412. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/markdown_sample_short.md +0 -0
  413. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/rich/syntax.py +0 -0
  414. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/sensitive.py +0 -0
  415. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/server.py +0 -0
  416. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/signals.py +0 -0
  417. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/slashcmd.py +0 -0
  418. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/sleep_inhibitor.py +0 -0
  419. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/string.py +0 -0
  420. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/subprocess_env.py +0 -0
  421. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/term.py +0 -0
  422. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/utils/typing.py +0 -0
  423. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/__init__.py +0 -0
  424. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/api/__init__.py +0 -0
  425. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/api/sessions.py +0 -0
  426. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/api/statistics.py +0 -0
  427. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/api/system.py +0 -0
  428. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/app.py +0 -0
  429. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/highlighted-body-B3W2YXNL-CY1rtwrX.js +0 -0
  430. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/index-DSRInNnm.css +0 -0
  431. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/index-DgmTI2M_.js +0 -0
  432. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  433. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  434. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  435. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  436. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  437. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  438. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  439. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/vis/static/index.html +0 -0
  440. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/__init__.py +0 -0
  441. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/api/__init__.py +0 -0
  442. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/api/config.py +0 -0
  443. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/api/open_in.py +0 -0
  444. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/api/sessions.py +0 -0
  445. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/app.py +0 -0
  446. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/auth.py +0 -0
  447. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/models.py +0 -0
  448. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/runner/__init__.py +0 -0
  449. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/runner/messages.py +0 -0
  450. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/runner/process.py +0 -0
  451. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/runner/worker.py +0 -0
  452. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/_headers +0 -0
  453. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  454. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  455. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  456. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  457. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  458. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  459. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  460. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  461. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  462. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  463. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  464. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  465. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  466. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  467. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  468. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  469. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  470. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  471. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  472. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  473. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  474. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  475. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  476. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  477. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  478. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  479. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  480. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  481. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  482. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  483. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  484. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  485. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  486. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  487. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  488. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  489. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  490. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  491. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  492. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  493. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  494. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  495. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  496. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  497. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  498. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  499. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  500. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  501. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  502. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  503. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  504. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  505. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  506. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  507. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  508. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  509. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  510. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  511. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  512. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/abap-BdImnpbu.js +0 -0
  513. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/actionscript-3-CfeIJUat.js +0 -0
  514. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ada-bCR0ucgS.js +0 -0
  515. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/andromeeda-C-Jbm3Hp.js +0 -0
  516. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/angular-html-CU67Zn6k.js +0 -0
  517. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/angular-ts-BwZT4LLn.js +0 -0
  518. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/apache-Pmp26Uib.js +0 -0
  519. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/apex-D8_7TLub.js +0 -0
  520. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/apl-dKokRX4l.js +0 -0
  521. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/applescript-Co6uUVPk.js +0 -0
  522. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ara-BRHolxvo.js +0 -0
  523. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/asciidoc-Dv7Oe6Be.js +0 -0
  524. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/asm-D_Q5rh1f.js +0 -0
  525. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/astro-CbQHKStN.js +0 -0
  526. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/aurora-x-D-2ljcwZ.js +0 -0
  527. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/awk-DMzUqQB5.js +0 -0
  528. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ayu-dark-CmMr59Fi.js +0 -0
  529. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ballerina-BFfxhgS-.js +0 -0
  530. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/bat-BkioyH1T.js +0 -0
  531. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/beancount-k_qm7-4y.js +0 -0
  532. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/berry-uYugtg8r.js +0 -0
  533. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/bibtex-CHM0blh-.js +0 -0
  534. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/bicep-Bmn6On1c.js +0 -0
  535. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/blade-D4QpJJKB.js +0 -0
  536. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/bsl-BO_Y6i37.js +0 -0
  537. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/c-BIGW1oBm.js +0 -0
  538. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/c3-VCDPK7BO.js +0 -0
  539. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cadence-Bv_4Rxtq.js +0 -0
  540. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cairo-KRGpt6FW.js +0 -0
  541. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/catppuccin-frappe-DFWUc33u.js +0 -0
  542. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
  543. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
  544. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
  545. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/clarity-D53aC0YG.js +0 -0
  546. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/clojure-P80f7IUj.js +0 -0
  547. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cmake-D1j8_8rp.js +0 -0
  548. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cobol-nwyudZeR.js +0 -0
  549. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/codeowners-Bp6g37R7.js +0 -0
  550. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/codeql-DsOJ9woJ.js +0 -0
  551. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/coffee-Ch7k5sss.js +0 -0
  552. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/common-lisp-Cg-RD9OK.js +0 -0
  553. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/coq-DkFqJrB1.js +0 -0
  554. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cpp-CofmeUqb.js +0 -0
  555. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/crystal-tKQVLTB8.js +0 -0
  556. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/csharp-K5feNrxe.js +0 -0
  557. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/css-DPfMkruS.js +0 -0
  558. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/csv-fuZLfV_i.js +0 -0
  559. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cue-D82EKSYY.js +0 -0
  560. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/cypher-COkxafJQ.js +0 -0
  561. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/d-85-TOEBH.js +0 -0
  562. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dark-plus-C3mMm8J8.js +0 -0
  563. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dart-CF10PKvl.js +0 -0
  564. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dax-CEL-wOlO.js +0 -0
  565. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/defaultLocale-DX6XiGOO.js +0 -0
  566. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/desktop-BmXAJ9_W.js +0 -0
  567. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/diff-D97Zzqfu.js +0 -0
  568. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/docker-BcOcwvcX.js +0 -0
  569. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dotenv-Da5cRb03.js +0 -0
  570. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dracula-BzJJZx-M.js +0 -0
  571. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dracula-soft-BXkSAIEj.js +0 -0
  572. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/dream-maker-BtqSS_iP.js +0 -0
  573. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/edge-BkV0erSs.js +0 -0
  574. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/elixir-CDX3lj18.js +0 -0
  575. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/elm-DbKCFpqz.js +0 -0
  576. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/emacs-lisp-C9XAeP06.js +0 -0
  577. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/erb-BOJIQeun.js +0 -0
  578. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/erlang-DsQrWhSR.js +0 -0
  579. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/everforest-dark-BgDCqdQA.js +0 -0
  580. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/everforest-light-C8M2exoo.js +0 -0
  581. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fennel-BYunw83y.js +0 -0
  582. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fish-BvzEVeQv.js +0 -0
  583. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fluent-C4IJs8-o.js +0 -0
  584. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
  585. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fortran-free-form-BxgE0vQu.js +0 -0
  586. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/fsharp-CXgrBDvD.js +0 -0
  587. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gdresource-B7Tvp0Sc.js +0 -0
  588. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gdscript-DTMYz4Jt.js +0 -0
  589. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gdshader-DkwncUOv.js +0 -0
  590. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/genie-D0YGMca9.js +0 -0
  591. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gherkin-DyxjwDmM.js +0 -0
  592. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/git-commit-F4YmCXRG.js +0 -0
  593. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/git-rebase-r7XF79zn.js +0 -0
  594. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-dark-DHJKELXO.js +0 -0
  595. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-dark-default-Cuk6v7N8.js +0 -0
  596. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
  597. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
  598. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-light-DAi9KRSo.js +0 -0
  599. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-light-default-D7oLnXFd.js +0 -0
  600. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
  601. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gleam-BspZqrRM.js +0 -0
  602. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/glimmer-js-Rg0-pVw9.js +0 -0
  603. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/glimmer-ts-U6CK756n.js +0 -0
  604. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/glsl-DplSGwfg.js +0 -0
  605. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gn-n2N0HUVH.js +0 -0
  606. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gnuplot-DdkO51Og.js +0 -0
  607. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/go-Dn2_MT6a.js +0 -0
  608. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/graphql-ChdNCCLP.js +0 -0
  609. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/groovy-gcz8RCvz.js +0 -0
  610. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
  611. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
  612. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
  613. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
  614. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
  615. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
  616. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hack-CaT9iCJl.js +0 -0
  617. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/haml-B8DHNrY2.js +0 -0
  618. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/handlebars-BL8al0AC.js +0 -0
  619. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/haskell-Df6bDoY_.js +0 -0
  620. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/haxe-CzTSHFRz.js +0 -0
  621. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hcl-BWvSN4gD.js +0 -0
  622. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hjson-D5-asLiD.js +0 -0
  623. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hlsl-D3lLCCz7.js +0 -0
  624. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/houston-DnULxvSX.js +0 -0
  625. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/html-GMplVEZG.js +0 -0
  626. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/html-derivative-BFtXZ54Q.js +0 -0
  627. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/http-jrhK8wxY.js +0 -0
  628. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hurl-irOxFIW8.js +0 -0
  629. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hxml-Bvhsp5Yf.js +0 -0
  630. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/hy-DFXneXwc.js +0 -0
  631. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/imba-DGztddWO.js +0 -0
  632. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/index-BpoLgcEt.js +0 -0
  633. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/index-CzV_vCfu.css +0 -0
  634. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/index-DI2oedCt.js +0 -0
  635. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ini-BEwlwnbL.js +0 -0
  636. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/init-Gi6I4Gst.js +0 -0
  637. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  638. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  639. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  640. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  641. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  642. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  643. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  644. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/java-CylS5w8V.js +0 -0
  645. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/javascript-wDzz0qaB.js +0 -0
  646. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jinja-4LBKfQ-Z.js +0 -0
  647. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jison-wvAkD_A8.js +0 -0
  648. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/json-Cp-IABpG.js +0 -0
  649. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/json5-C9tS-k6U.js +0 -0
  650. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jsonc-Des-eS-w.js +0 -0
  651. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jsonl-DcaNXYhu.js +0 -0
  652. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jsonnet-DFQXde-d.js +0 -0
  653. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jssm-C2t-YnRu.js +0 -0
  654. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/jsx-g9-lgVsj.js +0 -0
  655. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/julia-CxzCAyBv.js +0 -0
  656. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
  657. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
  658. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kanagawa-wave-DWedfzmr.js +0 -0
  659. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/katex-D2lIc1rk.css +0 -0
  660. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kdl-DV7GczEv.js +0 -0
  661. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kotlin-BdnUsdx6.js +0 -0
  662. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/kusto-DZf3V79B.js +0 -0
  663. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/laserwave-DUszq2jm.js +0 -0
  664. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/latex-B4uzh10-.js +0 -0
  665. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/lean-BZvkOJ9d.js +0 -0
  666. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/less-B1dDrJ26.js +0 -0
  667. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/light-plus-B7mTdjB0.js +0 -0
  668. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/liquid-DYVedYrR.js +0 -0
  669. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/llvm-BtvRca6l.js +0 -0
  670. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/log-2UxHyX5q.js +0 -0
  671. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/logo-BtOb2qkB.js +0 -0
  672. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/lua-BbnMAYS6.js +0 -0
  673. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/luau-C-HG3fhB.js +0 -0
  674. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/make-CHLpvVh8.js +0 -0
  675. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/markdown-Cvjx9yec.js +0 -0
  676. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/marko-DZsq8hO1.js +0 -0
  677. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/material-theme-D5KoaKCx.js +0 -0
  678. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/material-theme-darker-BfHTSMKl.js +0 -0
  679. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/material-theme-lighter-B0m2ddpp.js +0 -0
  680. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/material-theme-ocean-CyktbL80.js +0 -0
  681. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
  682. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/matlab-D7o27uSR.js +0 -0
  683. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mdc-DUICxH0z.js +0 -0
  684. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mdx-Cmh6b_Ma.js +0 -0
  685. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-B2P5VJ9v.css +0 -0
  686. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mermaid-mWjccvbQ.js +0 -0
  687. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/min-dark-CafNBF8u.js +0 -0
  688. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/min-light-CTRr51gU.js +0 -0
  689. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mipsasm-CKIfxQSi.js +0 -0
  690. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/mojo-B93PlW-d.js +0 -0
  691. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/monokai-D4h5O-jR.js +0 -0
  692. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/moonbit-Ba13S78F.js +0 -0
  693. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/move-Bu9oaDYs.js +0 -0
  694. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/narrat-DRg8JJMk.js +0 -0
  695. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nextflow-BrzmwbiE.js +0 -0
  696. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nginx-DknmC5AR.js +0 -0
  697. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/night-owl-C39BiMTA.js +0 -0
  698. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nim-CVrawwO9.js +0 -0
  699. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nix-CwoSXNpI.js +0 -0
  700. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nord-Ddv68eIx.js +0 -0
  701. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/nushell-C-sUppwS.js +0 -0
  702. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/objective-c-DXmwc3jG.js +0 -0
  703. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/objective-cpp-CLxacb5B.js +0 -0
  704. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ocaml-C0hk2d4L.js +0 -0
  705. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/one-dark-pro-DVMEJ2y_.js +0 -0
  706. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/one-light-PoHY5YXO.js +0 -0
  707. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/openscad-C4EeE6gA.js +0 -0
  708. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ordinal-Cboi1Yqb.js +0 -0
  709. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/pascal-D93ZcfNL.js +0 -0
  710. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/perl-C0TMdlhV.js +0 -0
  711. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/php-CDn_0X-4.js +0 -0
  712. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/pkl-u5AG7uiY.js +0 -0
  713. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/plastic-3e1v2bzS.js +0 -0
  714. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/plsql-ChMvpjG-.js +0 -0
  715. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/po-BTJTHyun.js +0 -0
  716. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/poimandres-CS3Unz2-.js +0 -0
  717. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/polar-C0HS_06l.js +0 -0
  718. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/postcss-CXtECtnM.js +0 -0
  719. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/powerquery-CEu0bR-o.js +0 -0
  720. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/powershell-Dpen1YoG.js +0 -0
  721. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/prisma-Dd19v3D-.js +0 -0
  722. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/prolog-CbFg5uaA.js +0 -0
  723. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/proto-C7zT0LnQ.js +0 -0
  724. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/pug-CGlum2m_.js +0 -0
  725. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/puppet-BMWR74SV.js +0 -0
  726. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/purescript-CklMAg4u.js +0 -0
  727. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/python-B6aJPvgy.js +0 -0
  728. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/qml-3beO22l8.js +0 -0
  729. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/qmldir-C8lEn-DE.js +0 -0
  730. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/qss-IeuSbFQv.js +0 -0
  731. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/r-Dspwwk_N.js +0 -0
  732. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/racket-BqYA7rlc.js +0 -0
  733. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/raku-DXvB9xmW.js +0 -0
  734. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/razor-C1TweQQi.js +0 -0
  735. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/red-bN70gL4F.js +0 -0
  736. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/reg-C-SQnVFl.js +0 -0
  737. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/regexp-CDVJQ6XC.js +0 -0
  738. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rel-C3B-1QV4.js +0 -0
  739. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/riscv-BM1_JUlF.js +0 -0
  740. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
  741. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rose-pine-moon-D4_iv3hh.js +0 -0
  742. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rose-pine-qdsjHGoJ.js +0 -0
  743. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rosmsg-BJDFO7_C.js +0 -0
  744. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rst-B0xPkSld.js +0 -0
  745. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ruby-BvKwtOVI.js +0 -0
  746. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/rust-B1yitclQ.js +0 -0
  747. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/sas-cz2c8ADy.js +0 -0
  748. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/sass-Cj5Yp3dK.js +0 -0
  749. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/scala-C151Ov-r.js +0 -0
  750. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/scheme-C98Dy4si.js +0 -0
  751. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/scss-OYdSNvt2.js +0 -0
  752. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/sdbl-DVxCFoDh.js +0 -0
  753. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/shaderlab-Dg9Lc6iA.js +0 -0
  754. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/shellscript-Yzrsuije.js +0 -0
  755. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/shellsession-BADoaaVG.js +0 -0
  756. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/slack-dark-BthQWCQV.js +0 -0
  757. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/slack-ochin-DqwNpetd.js +0 -0
  758. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/smalltalk-BERRCDM3.js +0 -0
  759. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/snazzy-light-Bw305WKR.js +0 -0
  760. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/solarized-dark-DXbdFlpD.js +0 -0
  761. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/solarized-light-L9t79GZl.js +0 -0
  762. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/solidity-rGO070M0.js +0 -0
  763. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/soy-Brmx7dQM.js +0 -0
  764. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/sparql-rVzFXLq3.js +0 -0
  765. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/splunk-BtCnVYZw.js +0 -0
  766. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/sql-BLtJtn59.js +0 -0
  767. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ssh-config-_ykCGR6B.js +0 -0
  768. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/stata-BH5u7GGu.js +0 -0
  769. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/stylus-BEDo0Tqx.js +0 -0
  770. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/svelte-zxCyuUbr.js +0 -0
  771. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/swift-Dg5xB15N.js +0 -0
  772. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/synthwave-84-CbfX1IO0.js +0 -0
  773. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/system-verilog-CnnmHF94.js +0 -0
  774. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/systemd-4A_iFExJ.js +0 -0
  775. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/talonscript-CkByrt1z.js +0 -0
  776. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tasl-QIJgUcNo.js +0 -0
  777. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tcl-dwOrl1Do.js +0 -0
  778. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/templ-W15q3VgB.js +0 -0
  779. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/terraform-BETggiCN.js +0 -0
  780. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tex-CvyZ59Mk.js +0 -0
  781. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tokyo-night-hegEt444.js +0 -0
  782. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/toml-vGWfd6FD.js +0 -0
  783. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/ts-tags-zn1MmPIZ.js +0 -0
  784. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tsv-B_m7g4N7.js +0 -0
  785. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/tsx-COt5Ahok.js +0 -0
  786. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/turtle-BsS91CYL.js +0 -0
  787. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/twig-CO9l9SDP.js +0 -0
  788. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/typescript-BPQ3VLAy.js +0 -0
  789. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/typespec-BGHnOYBU.js +0 -0
  790. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/typst-DHCkPAjA.js +0 -0
  791. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/v-BcVCzyr7.js +0 -0
  792. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vala-CsfeWuGM.js +0 -0
  793. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vb-D17OF-Vu.js +0 -0
  794. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/verilog-BQ8w6xss.js +0 -0
  795. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vesper-DU1UobuO.js +0 -0
  796. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vhdl-CeAyd5Ju.js +0 -0
  797. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/viml-CJc9bBzg.js +0 -0
  798. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vitesse-black-Bkuqu6BP.js +0 -0
  799. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vitesse-dark-D0r3Knsf.js +0 -0
  800. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vitesse-light-CVO1_9PV.js +0 -0
  801. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vue-DN_0RTcg.js +0 -0
  802. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vue-html-AaS7Mt5G.js +0 -0
  803. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vue-vine-CQOfvN7w.js +0 -0
  804. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/vyper-CDx5xZoG.js +0 -0
  805. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wasm-CG6Dc4jp.js +0 -0
  806. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wasm-MzD3tlZU.js +0 -0
  807. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wenyan-BV7otONQ.js +0 -0
  808. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wgsl-Dx-B1_4e.js +0 -0
  809. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wikitext-BhOHFoWU.js +0 -0
  810. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wit-5i3qLPDT.js +0 -0
  811. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/wolfram-lXgVvXCa.js +0 -0
  812. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/xml-sdJ4AIDG.js +0 -0
  813. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/xsl-CtQFsRM5.js +0 -0
  814. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/yaml-Buea-lGh.js +0 -0
  815. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/zenscript-DVFEvuxE.js +0 -0
  816. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/assets/zig-VOosw3JB.js +0 -0
  817. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/apple-touch-icon.png +0 -0
  818. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/arctecture.webp +0 -0
  819. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/bimi-logo.svg +0 -0
  820. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/favicon.ico +0 -0
  821. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin-ext.woff2 +0 -0
  822. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin.woff2 +0 -0
  823. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin-ext.woff2 +0 -0
  824. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin.woff2 +0 -0
  825. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin-ext.woff2 +0 -0
  826. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin.woff2 +0 -0
  827. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin-ext.woff2 +0 -0
  828. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin.woff2 +0 -0
  829. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin-ext.woff2 +0 -0
  830. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin.woff2 +0 -0
  831. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin-ext.woff2 +0 -0
  832. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin.woff2 +0 -0
  833. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/icon-192.png +0 -0
  834. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/icon-512.png +0 -0
  835. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/icon.svg +0 -0
  836. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/logo.png +0 -0
  837. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/pythinker_animated.svg +0 -0
  838. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/static/brand/robots.txt +0 -0
  839. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/store/__init__.py +0 -0
  840. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/web/store/sessions.py +0 -0
  841. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/__init__.py +0 -0
  842. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/file.py +0 -0
  843. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/jsonrpc.py +0 -0
  844. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/protocol.py +0 -0
  845. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/root_hub.py +0 -0
  846. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/serde.py +0 -0
  847. {pythinker_code-0.23.0 → pythinker_code-0.24.0}/src/pythinker_code/wire/server.py +0 -0
  848. {pythinker_code-0.23.0 → pythinker_code-0.24.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.23.0
3
+ Version: 0.24.0
4
4
  Summary: Pythinker Code is your next CLI agent.
5
5
  Keywords: cli,agent,ai,coding-assistant,llm,claude,openai,terminal
6
6
  Author: Mohamed Elkholy
@@ -56,16 +56,16 @@ Requires-Dist: opentelemetry-api>=1.30,<2
56
56
  Requires-Dist: opentelemetry-sdk>=1.30,<2
57
57
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.30,<2
58
58
  Requires-Python: >=3.12
59
- Project-URL: Changelog, https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/CHANGELOG.md
60
- Project-URL: Documentation, https://github.com/mohamed-elkholy95/Pythinker-Code#readme
61
- Project-URL: Homepage, https://github.com/mohamed-elkholy95/Pythinker-Code
62
- Project-URL: Issues, https://github.com/mohamed-elkholy95/Pythinker-Code/issues
63
- Project-URL: Repository, https://github.com/mohamed-elkholy95/Pythinker-Code
59
+ Project-URL: Changelog, https://github.com/TechMatrix-labs/pythinker-code/blob/main/CHANGELOG.md
60
+ Project-URL: Documentation, https://github.com/TechMatrix-labs/pythinker-code#readme
61
+ Project-URL: Homepage, https://github.com/TechMatrix-labs/pythinker-code
62
+ Project-URL: Issues, https://github.com/TechMatrix-labs/pythinker-code/issues
63
+ Project-URL: Repository, https://github.com/TechMatrix-labs/pythinker-code
64
64
  Description-Content-Type: text/markdown
65
65
 
66
66
  <div align="center">
67
67
 
68
- # <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/logo.png" alt="Pythinker logo" width="42" align="top"> Pythinker Code
68
+ # <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/logo.png" alt="Pythinker logo" width="42" align="top"> Pythinker Code
69
69
 
70
70
  ### *Think first, then code. Your terminal-native review-first AI engineering agent.*
71
71
 
@@ -75,9 +75,9 @@ Description-Content-Type: text/markdown
75
75
  <br />
76
76
 
77
77
  [![PyPI](https://img.shields.io/pypi/v/pythinker-code?style=for-the-badge&logo=pypi&logoColor=white&color=2563eb&label=pythinker-code&cacheSeconds=60)](https://pypi.org/project/pythinker-code/)
78
- [![Python](https://img.shields.io/badge/Python-3.12%2B-3776ab?style=for-the-badge&logo=python&logoColor=white)](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/pyproject.toml)
79
- [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-16a34a.svg?style=for-the-badge)](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/LICENSE)
80
- [![CI](https://img.shields.io/github/actions/workflow/status/mohamed-elkholy95/Pythinker-Code/ci-pythinker-cli.yml?branch=main&label=CI&style=for-the-badge&logo=githubactions&logoColor=white)](https://github.com/mohamed-elkholy95/Pythinker-Code/actions/workflows/ci-pythinker-cli.yml?query=branch%3Amain)
78
+ [![Python](https://img.shields.io/badge/Python-3.12%2B-3776ab?style=for-the-badge&logo=python&logoColor=white)](https://github.com/TechMatrix-labs/pythinker-code/blob/main/pyproject.toml)
79
+ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-16a34a.svg?style=for-the-badge)](https://github.com/TechMatrix-labs/pythinker-code/blob/main/LICENSE)
80
+ [![CI](https://img.shields.io/github/actions/workflow/status/TechMatrix-labs/pythinker-code/ci-pythinker-cli.yml?branch=main&label=CI&style=for-the-badge&logo=githubactions&logoColor=white)](https://github.com/TechMatrix-labs/pythinker-code/actions/workflows/ci-pythinker-cli.yml?query=branch%3Amain)
81
81
 
82
82
  [![PyPI downloads](https://assets.piptrends.com/get-last-month-downloads-badge/pythinker-code.svg)](https://piptrends.com/package/pythinker-code)
83
83
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-f59e0b.svg?style=flat-square&logo=ruff&logoColor=white)](https://docs.astral.sh/ruff/)
@@ -97,7 +97,7 @@ Description-Content-Type: text/markdown
97
97
 
98
98
  <br /><br />
99
99
 
100
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/pythinker-cli.gif" alt="Pythinker Code terminal demo" width="860">
100
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/pythinker-cli.gif" alt="Pythinker Code terminal demo" width="860">
101
101
 
102
102
  </div>
103
103
 
@@ -115,11 +115,15 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
115
115
 
116
116
  ---
117
117
 
118
- ## 🆕 What's New in 0.23.0
118
+ ## 🆕 What's New in 0.24.0
119
119
 
120
- - **Fetch works again in native installers.** Homebrew, `.deb`, `.rpm`, and `PythinkerSetup-*.exe` binaries shipped without `trafilatura/settings.cfg`, so the first `Fetch` call crashed with `No option 'min_extracted_size' in section: 'DEFAULT'`. The PyInstaller spec now bundles trafilatura's data files. PyPI / `pip install` was unaffected.
120
+ - **Update prompt is now wired and highlighted.** The blocking 4-choice update menu was defined but never invoked users only ever saw the passive toast. It now runs before the auto-update path in every interactive session, and the status-line notice renders in bold bright-yellow.
121
+ - **Complete native installer `Fetch` fix.** The `.exe`, `.deb`, and `.rpm` builds now bundle both `trafilatura` and `justext` data files so `Fetch` no longer crashes with `FileNotFoundError` on stoplists in native installs. PyPI / `pip install` was unaffected.
122
+ - **Atomic "latest" release gating.** `/releases/latest` is no longer flipped until every platform asset is attached, preventing the in-app updater from serving a partially-built release.
123
+ - **Smarter `/update` command.** Gets a fresh PyPI version and verifies the platform binary exists on the release before initiating a native upgrade.
124
+ - **Repository transferred to TechMatrix-labs.** All URLs now point to `github.com/TechMatrix-labs/pythinker-code`.
121
125
 
122
- Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.23.0`, or use the native installer for your platform from the [Releases page](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest).
126
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.24.0`, or use the native installer for your platform from the [Releases page](https://github.com/TechMatrix-labs/pythinker-code/releases/latest).
123
127
 
124
128
 
125
129
  ---
@@ -197,7 +201,7 @@ Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinke
197
201
  > Built-in shell commands such as `cd` are not yet supported in shell command mode.
198
202
 
199
203
  <div align="center">
200
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/shell-mode.gif" alt="Shell command mode demo" width="860">
204
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/shell-mode.gif" alt="Shell command mode demo" width="860">
201
205
  </div>
202
206
 
203
207
  ---
@@ -209,10 +213,10 @@ matches your OS — no Python, Node, or `uv` prerequisite.
209
213
 
210
214
  | Platform | Recommended install | Artifact source |
211
215
  |---|---|---|
212
- | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.23.0.exe` from [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
213
- | **<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/mohamed-elkholy95/Pythinker-Code/releases/latest) |
214
- | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install mohamed-elkholy95/pythinker/pythinker-code` | auto-published Homebrew tap |
215
- | **<img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux"> — system package** | Download the `.deb` or `.rpm` for your distro below | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
216
+ | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.24.0.exe` from [Releases](https://github.com/TechMatrix-labs/pythinker-code/releases/latest) |
217
+ | **<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/TechMatrix-labs/pythinker-code/releases/latest) |
218
+ | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install TechMatrix-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
219
+ | **<img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux"> — system package** | Download the `.deb` or `.rpm` for your distro below | [Releases](https://github.com/TechMatrix-labs/pythinker-code/releases/latest) |
216
220
  | **🐍 Python fallback** | `pip install pythinker-code` | PyPI |
217
221
 
218
222
  Every artifact ships with a matching `.sha256` file — verify before install on
@@ -234,7 +238,7 @@ pythinker # start the interactive TUI
234
238
 
235
239
  ### 🪟 Windows — native installer
236
240
 
237
- `PythinkerSetup-0.23.0.exe` is a signed* Inno Setup wizard. Installs per-user
241
+ `PythinkerSetup-0.24.0.exe` is a signed* Inno Setup wizard. Installs per-user
238
242
  into `%LOCALAPPDATA%\Programs\Pythinker`, registers `pythinker` on your user
239
243
  PATH (`HKCU\Environment`), broadcasts `WM_SETTINGCHANGE` so new shells see
240
244
  the change. **No UAC prompt.**
@@ -245,13 +249,13 @@ irm https://pythinker.com/install.ps1 | iex
245
249
 
246
250
  # Or manually download the installer + checksum from the Releases page,
247
251
  # verify with Get-FileHash, then run:
248
- .\PythinkerSetup-0.23.0.exe
252
+ .\PythinkerSetup-0.24.0.exe
249
253
 
250
254
  # Open a fresh PowerShell
251
255
  pythinker --version
252
256
  ```
253
257
 
254
- **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.23.0.exe /ALLUSERS`
258
+ **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.24.0.exe /ALLUSERS`
255
259
  installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
256
260
 
257
261
  **Upgrade:** `pythinker update` from inside the running app — it downloads
@@ -272,7 +276,7 @@ the files and the PATH edit.
272
276
 
273
277
  ```sh
274
278
  # 1. Install
275
- brew install mohamed-elkholy95/pythinker/pythinker-code
279
+ brew install TechMatrix-labs/pythinker/pythinker-code
276
280
 
277
281
  # 2. Verify
278
282
  pythinker --version
@@ -288,9 +292,9 @@ latest version.
288
292
  **Upgrade:** `brew upgrade pythinker-code` (Homebrew packages don't
289
293
  auto-update; run this whenever you want the latest).
290
294
 
291
- **Uninstall:** `brew uninstall pythinker-code && brew untap mohamed-elkholy95/pythinker`.
295
+ **Uninstall:** `brew uninstall pythinker-code && brew untap TechMatrix-labs/pythinker`.
292
296
 
293
- > The tap repo is [mohamed-elkholy95/homebrew-pythinker](https://github.com/mohamed-elkholy95/homebrew-pythinker)
297
+ > The tap repo is [TechMatrix-labs/homebrew-pythinker](https://github.com/TechMatrix-labs/homebrew-pythinker)
294
298
  > — auto-maintained, do not hand-edit.
295
299
 
296
300
  ---
@@ -302,26 +306,26 @@ attached to every GitHub Release.
302
306
 
303
307
  ```sh
304
308
  # Debian / Ubuntu (x86_64)
305
- sudo dpkg -i pythinker-code_0.23.0_amd64.deb
309
+ sudo dpkg -i pythinker-code_0.24.0_amd64.deb
306
310
  sudo apt-get install -f # only if dpkg reports missing deps
307
311
 
308
312
  # Debian / Ubuntu (ARM64)
309
- sudo dpkg -i pythinker-code_0.23.0_arm64.deb
313
+ sudo dpkg -i pythinker-code_0.24.0_arm64.deb
310
314
 
311
315
  # Fedora / RHEL / openSUSE (x86_64)
312
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.x86_64.rpm
313
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.x86_64.rpm.sha256
314
- sha256sum -c pythinker-code-0.23.0.x86_64.rpm.sha256
316
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.x86_64.rpm
317
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.x86_64.rpm.sha256
318
+ sha256sum -c pythinker-code-0.24.0.x86_64.rpm.sha256
315
319
  # Fedora / RHEL:
316
- sudo dnf install ./pythinker-code-0.23.0.x86_64.rpm
320
+ sudo dnf install ./pythinker-code-0.24.0.x86_64.rpm
317
321
  # openSUSE:
318
- sudo zypper install ./pythinker-code-0.23.0.x86_64.rpm
322
+ sudo zypper install ./pythinker-code-0.24.0.x86_64.rpm
319
323
 
320
324
  # Fedora / RHEL (aarch64)
321
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.aarch64.rpm
322
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.aarch64.rpm.sha256
323
- sha256sum -c pythinker-code-0.23.0.aarch64.rpm.sha256
324
- sudo dnf install ./pythinker-code-0.23.0.aarch64.rpm
325
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.aarch64.rpm
326
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.aarch64.rpm.sha256
327
+ sha256sum -c pythinker-code-0.24.0.aarch64.rpm.sha256
328
+ sudo dnf install ./pythinker-code-0.24.0.aarch64.rpm
325
329
  ```
326
330
 
327
331
  Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
@@ -330,8 +334,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
330
334
  **Verify before install:**
331
335
 
332
336
  ```sh
333
- sha256sum -c pythinker-code_0.23.0_amd64.deb.sha256 # Debian/Ubuntu
334
- sha256sum -c pythinker-code-0.23.0.x86_64.rpm.sha256 # Fedora/RHEL
337
+ sha256sum -c pythinker-code_0.24.0_amd64.deb.sha256 # Debian/Ubuntu
338
+ sha256sum -c pythinker-code-0.24.0.x86_64.rpm.sha256 # Fedora/RHEL
335
339
  ```
336
340
 
337
341
  **Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
@@ -361,7 +365,7 @@ at `~/.local/bin/pythinker`.
361
365
  curl -fsSL https://pythinker.com/install.sh | bash
362
366
 
363
367
  # Pin a specific version
364
- curl -fsSL https://pythinker.com/install.sh | bash -s -- --version 0.23.0
368
+ curl -fsSL https://pythinker.com/install.sh | bash -s -- --version 0.24.0
365
369
 
366
370
  # Custom prefix (defaults to $HOME/.local)
367
371
  curl -fsSL https://pythinker.com/install.sh | bash -s -- --prefix /opt/pythinker
@@ -602,7 +606,7 @@ The ACP server provides:
602
606
  | 🔄 **Hot model swap** | Change models for a running ACP session |
603
607
 
604
608
  <div align="center">
605
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/acp-integration.gif" alt="ACP IDE integration demo" width="860">
609
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/acp-integration.gif" alt="ACP IDE integration demo" width="860">
606
610
  </div>
607
611
 
608
612
  ---
@@ -677,7 +681,7 @@ Pythinker is a small, extensible runtime — not a monolith. Build on it.
677
681
  ## 🏗️ Architecture
678
682
 
679
683
  <div align="center">
680
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/Architecture.webp" alt="Pythinker Code architecture diagram" width="860">
684
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/Architecture.webp" alt="Pythinker Code architecture diagram" width="860">
681
685
  </div>
682
686
 
683
687
  ---
@@ -757,8 +761,8 @@ are used automatically unless you turn telemetry off.
757
761
  ### 🏁 Prepare the workspace
758
762
 
759
763
  ```sh
760
- git clone https://github.com/mohamed-elkholy95/Pythinker-Code.git
761
- cd Pythinker-Code
764
+ git clone https://github.com/TechMatrix-labs/pythinker-code.git
765
+ cd pythinker-code
762
766
  make prepare
763
767
  ```
764
768
 
@@ -838,9 +842,9 @@ pythinker-code/
838
842
 
839
843
  Contributions are warmly welcome — bug reports, PRs, plugins, skills, and docs all help.
840
844
 
841
- - 📖 Start with [`CONTRIBUTING.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/CONTRIBUTING.md)
842
- - 🔐 See [`SECURITY.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/SECURITY.md) for responsible disclosure
843
- - 📜 Skim [`AGENTS.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/AGENTS.md) for the agent design notes
845
+ - 📖 Start with [`CONTRIBUTING.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/CONTRIBUTING.md)
846
+ - 🔐 See [`SECURITY.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/SECURITY.md) for responsible disclosure
847
+ - 📜 Skim [`AGENTS.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/AGENTS.md) for the agent design notes
844
848
 
845
849
  If Pythinker helps you, **a ⭐ on GitHub goes a long way.**
846
850
 
@@ -848,7 +852,7 @@ If Pythinker helps you, **a ⭐ on GitHub goes a long way.**
848
852
 
849
853
  ## 📜 License
850
854
 
851
- Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/LICENSE) for the full text and [`NOTICE`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/NOTICE) for attributions.
855
+ Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/LICENSE) for the full text and [`NOTICE`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/NOTICE) for attributions.
852
856
 
853
857
  <br />
854
858
 
@@ -858,7 +862,7 @@ Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com
858
862
 
859
863
  [🌐 pythinker.com](https://pythinker.com) &nbsp;·&nbsp;
860
864
  [📦 PyPI](https://pypi.org/project/pythinker-code/) &nbsp;·&nbsp;
861
- [🐙 GitHub](https://github.com/mohamed-elkholy95/Pythinker-Code) &nbsp;·&nbsp;
865
+ [🐙 GitHub](https://github.com/TechMatrix-labs/pythinker-code) &nbsp;·&nbsp;
862
866
  [🧩 ACP](https://github.com/agentclientprotocol/agent-client-protocol) &nbsp;·&nbsp;
863
867
  [🔌 MCP](https://modelcontextprotocol.io/)
864
868
 
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- # <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/logo.png" alt="Pythinker logo" width="42" align="top"> Pythinker Code
3
+ # <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/logo.png" alt="Pythinker logo" width="42" align="top"> Pythinker Code
4
4
 
5
5
  ### *Think first, then code. Your terminal-native review-first AI engineering agent.*
6
6
 
@@ -10,9 +10,9 @@
10
10
  <br />
11
11
 
12
12
  [![PyPI](https://img.shields.io/pypi/v/pythinker-code?style=for-the-badge&logo=pypi&logoColor=white&color=2563eb&label=pythinker-code&cacheSeconds=60)](https://pypi.org/project/pythinker-code/)
13
- [![Python](https://img.shields.io/badge/Python-3.12%2B-3776ab?style=for-the-badge&logo=python&logoColor=white)](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/pyproject.toml)
14
- [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-16a34a.svg?style=for-the-badge)](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/LICENSE)
15
- [![CI](https://img.shields.io/github/actions/workflow/status/mohamed-elkholy95/Pythinker-Code/ci-pythinker-cli.yml?branch=main&label=CI&style=for-the-badge&logo=githubactions&logoColor=white)](https://github.com/mohamed-elkholy95/Pythinker-Code/actions/workflows/ci-pythinker-cli.yml?query=branch%3Amain)
13
+ [![Python](https://img.shields.io/badge/Python-3.12%2B-3776ab?style=for-the-badge&logo=python&logoColor=white)](https://github.com/TechMatrix-labs/pythinker-code/blob/main/pyproject.toml)
14
+ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-16a34a.svg?style=for-the-badge)](https://github.com/TechMatrix-labs/pythinker-code/blob/main/LICENSE)
15
+ [![CI](https://img.shields.io/github/actions/workflow/status/TechMatrix-labs/pythinker-code/ci-pythinker-cli.yml?branch=main&label=CI&style=for-the-badge&logo=githubactions&logoColor=white)](https://github.com/TechMatrix-labs/pythinker-code/actions/workflows/ci-pythinker-cli.yml?query=branch%3Amain)
16
16
 
17
17
  [![PyPI downloads](https://assets.piptrends.com/get-last-month-downloads-badge/pythinker-code.svg)](https://piptrends.com/package/pythinker-code)
18
18
  [![Code style: Ruff](https://img.shields.io/badge/code%20style-ruff-f59e0b.svg?style=flat-square&logo=ruff&logoColor=white)](https://docs.astral.sh/ruff/)
@@ -32,7 +32,7 @@
32
32
 
33
33
  <br /><br />
34
34
 
35
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/pythinker-cli.gif" alt="Pythinker Code terminal demo" width="860">
35
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/pythinker-cli.gif" alt="Pythinker Code terminal demo" width="860">
36
36
 
37
37
  </div>
38
38
 
@@ -50,11 +50,15 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
50
50
 
51
51
  ---
52
52
 
53
- ## 🆕 What's New in 0.23.0
53
+ ## 🆕 What's New in 0.24.0
54
54
 
55
- - **Fetch works again in native installers.** Homebrew, `.deb`, `.rpm`, and `PythinkerSetup-*.exe` binaries shipped without `trafilatura/settings.cfg`, so the first `Fetch` call crashed with `No option 'min_extracted_size' in section: 'DEFAULT'`. The PyInstaller spec now bundles trafilatura's data files. PyPI / `pip install` was unaffected.
55
+ - **Update prompt is now wired and highlighted.** The blocking 4-choice update menu was defined but never invoked users only ever saw the passive toast. It now runs before the auto-update path in every interactive session, and the status-line notice renders in bold bright-yellow.
56
+ - **Complete native installer `Fetch` fix.** The `.exe`, `.deb`, and `.rpm` builds now bundle both `trafilatura` and `justext` data files so `Fetch` no longer crashes with `FileNotFoundError` on stoplists in native installs. PyPI / `pip install` was unaffected.
57
+ - **Atomic "latest" release gating.** `/releases/latest` is no longer flipped until every platform asset is attached, preventing the in-app updater from serving a partially-built release.
58
+ - **Smarter `/update` command.** Gets a fresh PyPI version and verifies the platform binary exists on the release before initiating a native upgrade.
59
+ - **Repository transferred to TechMatrix-labs.** All URLs now point to `github.com/TechMatrix-labs/pythinker-code`.
56
60
 
57
- Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.23.0`, or use the native installer for your platform from the [Releases page](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest).
61
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.24.0`, or use the native installer for your platform from the [Releases page](https://github.com/TechMatrix-labs/pythinker-code/releases/latest).
58
62
 
59
63
 
60
64
  ---
@@ -132,7 +136,7 @@ Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinke
132
136
  > Built-in shell commands such as `cd` are not yet supported in shell command mode.
133
137
 
134
138
  <div align="center">
135
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/shell-mode.gif" alt="Shell command mode demo" width="860">
139
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/shell-mode.gif" alt="Shell command mode demo" width="860">
136
140
  </div>
137
141
 
138
142
  ---
@@ -144,10 +148,10 @@ matches your OS — no Python, Node, or `uv` prerequisite.
144
148
 
145
149
  | Platform | Recommended install | Artifact source |
146
150
  |---|---|---|
147
- | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.23.0.exe` from [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
148
- | **<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/mohamed-elkholy95/Pythinker-Code/releases/latest) |
149
- | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install mohamed-elkholy95/pythinker/pythinker-code` | auto-published Homebrew tap |
150
- | **<img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux"> — system package** | Download the `.deb` or `.rpm` for your distro below | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
151
+ | **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.24.0.exe` from [Releases](https://github.com/TechMatrix-labs/pythinker-code/releases/latest) |
152
+ | **<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/TechMatrix-labs/pythinker-code/releases/latest) |
153
+ | **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install TechMatrix-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
154
+ | **<img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux"> — system package** | Download the `.deb` or `.rpm` for your distro below | [Releases](https://github.com/TechMatrix-labs/pythinker-code/releases/latest) |
151
155
  | **🐍 Python fallback** | `pip install pythinker-code` | PyPI |
152
156
 
153
157
  Every artifact ships with a matching `.sha256` file — verify before install on
@@ -169,7 +173,7 @@ pythinker # start the interactive TUI
169
173
 
170
174
  ### 🪟 Windows — native installer
171
175
 
172
- `PythinkerSetup-0.23.0.exe` is a signed* Inno Setup wizard. Installs per-user
176
+ `PythinkerSetup-0.24.0.exe` is a signed* Inno Setup wizard. Installs per-user
173
177
  into `%LOCALAPPDATA%\Programs\Pythinker`, registers `pythinker` on your user
174
178
  PATH (`HKCU\Environment`), broadcasts `WM_SETTINGCHANGE` so new shells see
175
179
  the change. **No UAC prompt.**
@@ -180,13 +184,13 @@ irm https://pythinker.com/install.ps1 | iex
180
184
 
181
185
  # Or manually download the installer + checksum from the Releases page,
182
186
  # verify with Get-FileHash, then run:
183
- .\PythinkerSetup-0.23.0.exe
187
+ .\PythinkerSetup-0.24.0.exe
184
188
 
185
189
  # Open a fresh PowerShell
186
190
  pythinker --version
187
191
  ```
188
192
 
189
- **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.23.0.exe /ALLUSERS`
193
+ **Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.24.0.exe /ALLUSERS`
190
194
  installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
191
195
 
192
196
  **Upgrade:** `pythinker update` from inside the running app — it downloads
@@ -207,7 +211,7 @@ the files and the PATH edit.
207
211
 
208
212
  ```sh
209
213
  # 1. Install
210
- brew install mohamed-elkholy95/pythinker/pythinker-code
214
+ brew install TechMatrix-labs/pythinker/pythinker-code
211
215
 
212
216
  # 2. Verify
213
217
  pythinker --version
@@ -223,9 +227,9 @@ latest version.
223
227
  **Upgrade:** `brew upgrade pythinker-code` (Homebrew packages don't
224
228
  auto-update; run this whenever you want the latest).
225
229
 
226
- **Uninstall:** `brew uninstall pythinker-code && brew untap mohamed-elkholy95/pythinker`.
230
+ **Uninstall:** `brew uninstall pythinker-code && brew untap TechMatrix-labs/pythinker`.
227
231
 
228
- > The tap repo is [mohamed-elkholy95/homebrew-pythinker](https://github.com/mohamed-elkholy95/homebrew-pythinker)
232
+ > The tap repo is [TechMatrix-labs/homebrew-pythinker](https://github.com/TechMatrix-labs/homebrew-pythinker)
229
233
  > — auto-maintained, do not hand-edit.
230
234
 
231
235
  ---
@@ -237,26 +241,26 @@ attached to every GitHub Release.
237
241
 
238
242
  ```sh
239
243
  # Debian / Ubuntu (x86_64)
240
- sudo dpkg -i pythinker-code_0.23.0_amd64.deb
244
+ sudo dpkg -i pythinker-code_0.24.0_amd64.deb
241
245
  sudo apt-get install -f # only if dpkg reports missing deps
242
246
 
243
247
  # Debian / Ubuntu (ARM64)
244
- sudo dpkg -i pythinker-code_0.23.0_arm64.deb
248
+ sudo dpkg -i pythinker-code_0.24.0_arm64.deb
245
249
 
246
250
  # Fedora / RHEL / openSUSE (x86_64)
247
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.x86_64.rpm
248
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.x86_64.rpm.sha256
249
- sha256sum -c pythinker-code-0.23.0.x86_64.rpm.sha256
251
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.x86_64.rpm
252
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.x86_64.rpm.sha256
253
+ sha256sum -c pythinker-code-0.24.0.x86_64.rpm.sha256
250
254
  # Fedora / RHEL:
251
- sudo dnf install ./pythinker-code-0.23.0.x86_64.rpm
255
+ sudo dnf install ./pythinker-code-0.24.0.x86_64.rpm
252
256
  # openSUSE:
253
- sudo zypper install ./pythinker-code-0.23.0.x86_64.rpm
257
+ sudo zypper install ./pythinker-code-0.24.0.x86_64.rpm
254
258
 
255
259
  # Fedora / RHEL (aarch64)
256
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.aarch64.rpm
257
- curl -LO https://github.com/mohamed-elkholy95/Pythinker-Code/releases/download/v0.23.0/pythinker-code-0.23.0.aarch64.rpm.sha256
258
- sha256sum -c pythinker-code-0.23.0.aarch64.rpm.sha256
259
- sudo dnf install ./pythinker-code-0.23.0.aarch64.rpm
260
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.aarch64.rpm
261
+ curl -LO https://github.com/TechMatrix-labs/pythinker-code/releases/download/v0.24.0/pythinker-code-0.24.0.aarch64.rpm.sha256
262
+ sha256sum -c pythinker-code-0.24.0.aarch64.rpm.sha256
263
+ sudo dnf install ./pythinker-code-0.24.0.aarch64.rpm
260
264
  ```
261
265
 
262
266
  Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
@@ -265,8 +269,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
265
269
  **Verify before install:**
266
270
 
267
271
  ```sh
268
- sha256sum -c pythinker-code_0.23.0_amd64.deb.sha256 # Debian/Ubuntu
269
- sha256sum -c pythinker-code-0.23.0.x86_64.rpm.sha256 # Fedora/RHEL
272
+ sha256sum -c pythinker-code_0.24.0_amd64.deb.sha256 # Debian/Ubuntu
273
+ sha256sum -c pythinker-code-0.24.0.x86_64.rpm.sha256 # Fedora/RHEL
270
274
  ```
271
275
 
272
276
  **Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
@@ -296,7 +300,7 @@ at `~/.local/bin/pythinker`.
296
300
  curl -fsSL https://pythinker.com/install.sh | bash
297
301
 
298
302
  # Pin a specific version
299
- curl -fsSL https://pythinker.com/install.sh | bash -s -- --version 0.23.0
303
+ curl -fsSL https://pythinker.com/install.sh | bash -s -- --version 0.24.0
300
304
 
301
305
  # Custom prefix (defaults to $HOME/.local)
302
306
  curl -fsSL https://pythinker.com/install.sh | bash -s -- --prefix /opt/pythinker
@@ -537,7 +541,7 @@ The ACP server provides:
537
541
  | 🔄 **Hot model swap** | Change models for a running ACP session |
538
542
 
539
543
  <div align="center">
540
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/acp-integration.gif" alt="ACP IDE integration demo" width="860">
544
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/acp-integration.gif" alt="ACP IDE integration demo" width="860">
541
545
  </div>
542
546
 
543
547
  ---
@@ -612,7 +616,7 @@ Pythinker is a small, extensible runtime — not a monolith. Build on it.
612
616
  ## 🏗️ Architecture
613
617
 
614
618
  <div align="center">
615
- <img src="https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/docs/media/Architecture.webp" alt="Pythinker Code architecture diagram" width="860">
619
+ <img src="https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/docs/media/Architecture.webp" alt="Pythinker Code architecture diagram" width="860">
616
620
  </div>
617
621
 
618
622
  ---
@@ -692,8 +696,8 @@ are used automatically unless you turn telemetry off.
692
696
  ### 🏁 Prepare the workspace
693
697
 
694
698
  ```sh
695
- git clone https://github.com/mohamed-elkholy95/Pythinker-Code.git
696
- cd Pythinker-Code
699
+ git clone https://github.com/TechMatrix-labs/pythinker-code.git
700
+ cd pythinker-code
697
701
  make prepare
698
702
  ```
699
703
 
@@ -773,9 +777,9 @@ pythinker-code/
773
777
 
774
778
  Contributions are warmly welcome — bug reports, PRs, plugins, skills, and docs all help.
775
779
 
776
- - 📖 Start with [`CONTRIBUTING.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/CONTRIBUTING.md)
777
- - 🔐 See [`SECURITY.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/SECURITY.md) for responsible disclosure
778
- - 📜 Skim [`AGENTS.md`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/AGENTS.md) for the agent design notes
780
+ - 📖 Start with [`CONTRIBUTING.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/CONTRIBUTING.md)
781
+ - 🔐 See [`SECURITY.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/SECURITY.md) for responsible disclosure
782
+ - 📜 Skim [`AGENTS.md`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/AGENTS.md) for the agent design notes
779
783
 
780
784
  If Pythinker helps you, **a ⭐ on GitHub goes a long way.**
781
785
 
@@ -783,7 +787,7 @@ If Pythinker helps you, **a ⭐ on GitHub goes a long way.**
783
787
 
784
788
  ## 📜 License
785
789
 
786
- Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/LICENSE) for the full text and [`NOTICE`](https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/NOTICE) for attributions.
790
+ Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/LICENSE) for the full text and [`NOTICE`](https://github.com/TechMatrix-labs/pythinker-code/blob/main/NOTICE) for attributions.
787
791
 
788
792
  <br />
789
793
 
@@ -793,7 +797,7 @@ Distributed under the **Apache-2.0 License**. See [`LICENSE`](https://github.com
793
797
 
794
798
  [🌐 pythinker.com](https://pythinker.com) &nbsp;·&nbsp;
795
799
  [📦 PyPI](https://pypi.org/project/pythinker-code/) &nbsp;·&nbsp;
796
- [🐙 GitHub](https://github.com/mohamed-elkholy95/Pythinker-Code) &nbsp;·&nbsp;
800
+ [🐙 GitHub](https://github.com/TechMatrix-labs/pythinker-code) &nbsp;·&nbsp;
797
801
  [🧩 ACP](https://github.com/agentclientprotocol/agent-client-protocol) &nbsp;·&nbsp;
798
802
  [🔌 MCP](https://modelcontextprotocol.io/)
799
803
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pythinker-code"
3
- version = "0.23.0"
3
+ version = "0.24.0"
4
4
  description = "Pythinker Code is your next CLI agent."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -102,11 +102,11 @@ pythinker = "pythinker_code.__main__:main"
102
102
  pythinker-code = "pythinker_code.__main__:main"
103
103
 
104
104
  [project.urls]
105
- Homepage = "https://github.com/mohamed-elkholy95/Pythinker-Code"
106
- Repository = "https://github.com/mohamed-elkholy95/Pythinker-Code"
107
- Issues = "https://github.com/mohamed-elkholy95/Pythinker-Code/issues"
108
- Changelog = "https://github.com/mohamed-elkholy95/Pythinker-Code/blob/main/CHANGELOG.md"
109
- Documentation = "https://github.com/mohamed-elkholy95/Pythinker-Code#readme"
105
+ Homepage = "https://github.com/TechMatrix-labs/pythinker-code"
106
+ Repository = "https://github.com/TechMatrix-labs/pythinker-code"
107
+ Issues = "https://github.com/TechMatrix-labs/pythinker-code/issues"
108
+ Changelog = "https://github.com/TechMatrix-labs/pythinker-code/blob/main/CHANGELOG.md"
109
+ Documentation = "https://github.com/TechMatrix-labs/pythinker-code#readme"
110
110
 
111
111
  [tool.ruff]
112
112
  line-length = 100
@@ -15,6 +15,18 @@ GitHub Releases page; `0.8.0` is the new starting line.
15
15
 
16
16
  ## Unreleased
17
17
 
18
+ ## 0.24.0 (2026-05-28)
19
+
20
+ ### What changed in this release
21
+
22
+ - **Update prompt is now wired and highlighted.** The blocking 4-choice update menu (Update now / Skip / Dismiss / Exit) was defined but never invoked at shell startup — users only ever saw the passive bottom-bar toast. It now runs before the auto-update path in every interactive session. The persistent status-line update notice also renders in bold bright-yellow so it is harder to miss.
23
+ - **Complete native installer `Fetch` fix.** The 0.23.0 release bundled trafilatura's data files but missed `justext`'s stoplists directory, so the `Fetch` tool still crashed with `FileNotFoundError: ./_MEIxxxx/justext/stoplists` on `.exe`, `.deb`, and `.rpm` installs. All three installer specs now bundle both `trafilatura` and `justext` data files. PyPI / `pip install` was unaffected.
24
+ - **Atomic "latest" release gating.** The GitHub Release is no longer marked "latest" until every platform asset (4 archives, 1 `.exe`, 4 `.deb`/`.rpm`) is attached. A dispatch workflow polls for completeness before flipping the flag, so `/releases/latest` and the in-app updater no longer serve a partially-built release during the publish window.
25
+ - **Smarter `/update` command.** `run_update_prompt` now routes through `do_update(check_only=True)` to get a fresh PyPI version before showing the update modal, and verifies that the expected binary asset for your platform exists on the GitHub Release before initiating a native upgrade.
26
+ - **Repository transferred to TechMatrix-labs.** All GitHub URLs, install script references, and CI configuration now point to `github.com/TechMatrix-labs/pythinker-code`.
27
+
28
+ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.24.0`, or use the native installer for your OS (see the README install table).
29
+
18
30
  ## 0.23.0 (2026-05-28)
19
31
 
20
32
  ### What changed in this release
@@ -124,8 +136,8 @@ Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.14.0`,
124
136
 
125
137
  ### What changed in this release
126
138
 
127
- - **Native installers for macOS and Linux.** `brew install mohamed-elkholy95/pythinker/pythinker-code` (Homebrew tap) covers both macOS (Intel + Apple Silicon) and Linux brew installs from a single auto-generated formula. Debian/Ubuntu users get `pythinker-code_x.y.z_<arch>.deb` and Fedora/RHEL/openSUSE users get `pythinker-code-x.y.z.<arch>.rpm`, both attached to every GitHub Release for `x86_64` and `aarch64`. Together with the Windows `PythinkerSetup-x.y.z.exe` shipped in 0.12.0, Pythinker now ships native installers for every supported platform — no Python, Node, or `uv` prerequisite.
128
- - **Cross-OS curl-bash native installer.** `curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install-native.sh | bash` detects your OS + arch, downloads the matching PyInstaller-frozen tarball from the latest Release, verifies its SHA-256, and lands the binary at `~/.local/bin/pythinker`. Supports `linux-x86_64`, `linux-aarch64`, and `macos-arm64`. Honors `--version`, `--prefix`, and `NO_COLOR`.
139
+ - **Native installers for macOS and Linux.** `brew install TechMatrix-labs/pythinker/pythinker-code` (Homebrew tap) covers both macOS (Intel + Apple Silicon) and Linux brew installs from a single auto-generated formula. Debian/Ubuntu users get `pythinker-code_x.y.z_<arch>.deb` and Fedora/RHEL/openSUSE users get `pythinker-code-x.y.z.<arch>.rpm`, both attached to every GitHub Release for `x86_64` and `aarch64`. Together with the Windows `PythinkerSetup-x.y.z.exe` shipped in 0.12.0, Pythinker now ships native installers for every supported platform — no Python, Node, or `uv` prerequisite.
140
+ - **Cross-OS curl-bash native installer.** `curl -fsSL https://raw.githubusercontent.com/TechMatrix-labs/pythinker-code/main/scripts/install-native.sh | bash` detects your OS + arch, downloads the matching PyInstaller-frozen tarball from the latest Release, verifies its SHA-256, and lands the binary at `~/.local/bin/pythinker`. Supports `linux-x86_64`, `linux-aarch64`, and `macos-arm64`. Honors `--version`, `--prefix`, and `NO_COLOR`.
129
141
  - **Homebrew tap auto-published on every release.** A new `.github/workflows/homebrew-tap.yml` waits for the PyPI publish to land, runs an in-tree formula generator (replaces the unmaintained `homebrew-pypi-poet` — see release notes for the why), and pushes `Formula/pythinker-code.rb` to the `homebrew-pythinker` tap repo. 132 transitive deps are enumerated automatically — no hand-curation per release.
130
142
  - **Tag-triggered Linux package pipeline.** A new `.github/workflows/linux-installer.yml` matrix-builds `.deb` and `.rpm` for `x86_64` and `aarch64` (the latter via QEMU on `ubuntu-latest`), then uploads all six artifacts to the GitHub Release via `softprops/action-gh-release@v2`.
131
143
  - **Frozen-binary data-files fix.** The PyInstaller specs for both the Windows and Linux pipelines now call `collect_data_files(pkg, include_py_files=False)` per package, so `pythinker_code/prompts/*.md`, `agents/default/*.yaml`, `tools/*/description.md`, `skills/*/SKILL.md`, and similar package resources are bundled into `_internal/`. Without this fix the frozen binary crashed the first time it tried to load `init.md` or an agent yaml. The Windows installer that shipped in 0.12.0 is affected; users on that build should upgrade to 0.13.0.
@@ -54,8 +54,8 @@ Commands:
54
54
  vis Run Pythinker Agent Tracing Visualizer.
55
55
  web Run Pythinker CLI web interface.
56
56
 
57
- Documentation: https://mohamed-elkholy95.github.io/Pythinker-Code/
58
- LLM friendly version: https://mohamed-elkholy95.github.io/Pythinker-Code/llms.txt
57
+ Documentation: https://techmatrix-labs.github.io/pythinker-code/
58
+ LLM friendly version: https://techmatrix-labs.github.io/pythinker-code/llms.txt
59
59
  """
60
60
 
61
61
 
@@ -157,8 +157,8 @@ LazySubcommandGroup = import_module(f"{__name__}._lazy_group").LazySubcommandGro
157
157
  cli = typer.Typer(
158
158
  cls=LazySubcommandGroup,
159
159
  epilog="""\b\
160
- Documentation: https://mohamed-elkholy95.github.io/Pythinker-Code/\n
161
- LLM friendly version: https://mohamed-elkholy95.github.io/Pythinker-Code/llms.txt""",
160
+ Documentation: https://techmatrix-labs.github.io/pythinker-code/\n
161
+ LLM friendly version: https://techmatrix-labs.github.io/pythinker-code/llms.txt""",
162
162
  add_completion=False,
163
163
  context_settings={"help_option_names": ["-h", "--help"]},
164
164
  help="Pythinker, your next CLI agent.",
@@ -236,7 +236,7 @@ class FeedbackConfig(BaseModel):
236
236
  ),
237
237
  )
238
238
  github_repo: str = Field(
239
- default="mohamed-elkholy95/Pythinker-Code",
239
+ default="TechMatrix-labs/pythinker-code",
240
240
  description="GitHub owner/repo used by /feedback GitHub OAuth submissions.",
241
241
  )
242
242
 
@@ -13,7 +13,7 @@ import platform
13
13
  import sys
14
14
  from pathlib import Path
15
15
 
16
- GITHUB_REPO = "mohamed-elkholy95/Pythinker-Code"
16
+ GITHUB_REPO = "TechMatrix-labs/pythinker-code"
17
17
  SENTINEL_FILENAME = ".pythinker-native"
18
18
 
19
19