pythinker-code 0.11.0__tar.gz → 0.13.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.
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/PKG-INFO +117 -28
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/README.md +116 -27
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/pyproject.toml +1 -1
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/CHANGELOG.md +24 -0
- pythinker_code-0.13.0/src/pythinker_code/native.py +38 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/design_system.py +2 -2
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/echo.py +3 -3
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/motion.py +18 -7
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/update.py +151 -1
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/theme.py +7 -7
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/_baseUniq-C8Vm-s5G.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/_baseUniq-GA9iHBCA.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/arc-Bl8TmgUm.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/arc-gZsnPwO2.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/architectureDiagram-VXUJARFQ-BVGBY1Zr.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/architectureDiagram-VXUJARFQ-De9R8C4O.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/blockDiagram-VD42YOAC-B_v49l_U.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/blockDiagram-VD42YOAC-Ba1pNYg1.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/c4Diagram-YG6GDRKO-DXl05v-V.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/c4Diagram-YG6GDRKO-CfDxaCio.js +1 -1
- pythinker_code-0.13.0/src/pythinker_code/web/static/assets/channel-DqUWNFW2.js +1 -0
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-DpqTdhHZ.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-BiC5GeSy.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-55IACEB6-BfJzLxfB.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-55IACEB6-D6KcpRaK.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-B4BG7PRW-C9tHMiZl.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-B4BG7PRW-DQT-M2Ri.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-DI55MBZ5-DEGEEj0Z.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-DI55MBZ5-lBjGLMy9.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-CQ1KKOHk.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-CUCm6jYE.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-QN33PNHL-B4mTpmM0.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-QN33PNHL-CpsKX8Gv.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-CDOrj-r7.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-CtBe7xAX.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/chunk-TZMSLE5B-QhgZOUxZ.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/chunk-TZMSLE5B-B1HdUVbC.js +1 -1
- pythinker_code-0.13.0/src/pythinker_code/web/static/assets/classDiagram-2ON5EDUG-XRBRYS_C.js +1 -0
- pythinker_code-0.13.0/src/pythinker_code/web/static/assets/classDiagram-v2-WZHVMYZB-XRBRYS_C.js +1 -0
- pythinker_code-0.13.0/src/pythinker_code/web/static/assets/clone-CWCNc-WR.js +1 -0
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-B_uMiJXe.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-Nauf-Dns.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-BY9LVGid.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-BzwfIOkj.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/cytoscape.esm-BGbOmFRB.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/cytoscape.esm-DgYGkf8s.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/dagre-6UL2VRFP-sur5p5NW.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/dagre-6UL2VRFP-CcObcdCu.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/diagram-PSM6KHXK-CrF8_xNX.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/diagram-PSM6KHXK-CnkBDMfa.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/diagram-QEK2KX5R-CsFFEfnc.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/diagram-QEK2KX5R-BytO-i_3.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/diagram-S2PKOQOG-DoC68K_b.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/diagram-S2PKOQOG-bjqHpsrQ.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/erDiagram-Q2GNP2WA-Di7dyqAd.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/erDiagram-Q2GNP2WA-CJQQtgOx.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/flowDiagram-NV44I4VS-CycbaIsk.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/flowDiagram-NV44I4VS-CH8l9Ex2.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/ganttDiagram-JELNMOA3-CQi9ssAv.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/ganttDiagram-JELNMOA3-yzCc3Zgk.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/gitGraphDiagram-NY62KEGX-DN5v_FG9.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/gitGraphDiagram-NY62KEGX-CLpNg80l.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/graph-C2ZsTy1B.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/graph-BKnezX3S.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/index-C36KD0lP.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/index-BWNhTxyw.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/index-C1bFMExm.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/index-B_Fm5OEh.js +2 -2
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/index-Dtq-M8w-.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/index-CaRChC6H.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/infoDiagram-WHAUD3N6-BsSIH3Qo.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/infoDiagram-WHAUD3N6-FyO5FoYg.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/journeyDiagram-XKPGCS4Q-CRuVO9aw.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/journeyDiagram-XKPGCS4Q-D7Jn9SfT.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/kanban-definition-3W4ZIXB7-R4QyOuvf.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/kanban-definition-3W4ZIXB7-wL8zlaLe.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/layout-CpWvp0O7.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/layout-CCwuOGWj.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/linear-DUulTEqk.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/linear-DgSlbeag.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-DDAXDNOk.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-DsnP_6Ye.js +7 -7
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/mermaid.core-Do7HhOuC.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/mermaid.core-CXHCA8HV.js +5 -5
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/min-BiFWtQ8R.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/min-BRsY-oqe.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/mindmap-definition-VGOIOE7T-CYFQjmK7.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/mindmap-definition-VGOIOE7T-B64Ljx8w.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/pieDiagram-ADFJNKIX-Dwg66_J9.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/pieDiagram-ADFJNKIX-C3ejBxx6.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/quadrantDiagram-AYHSOK5B-Dx_gyC0O.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/quadrantDiagram-AYHSOK5B-DRf2jFv5.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/requirementDiagram-UZGBJVZJ-yKyOcalB.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/requirementDiagram-UZGBJVZJ-CSCNoh6-.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/sankeyDiagram-TZEHDZUN-D68f_psT.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/sankeyDiagram-TZEHDZUN-ichGSxO0.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/sequenceDiagram-WL72ISMW-C1hB4zgM.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/sequenceDiagram-WL72ISMW-bIWhFPmb.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/stateDiagram-FKZM4ZOC-6XdAmwqs.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/stateDiagram-FKZM4ZOC-WxQjAvgp.js +1 -1
- pythinker_code-0.13.0/src/pythinker_code/web/static/assets/stateDiagram-v2-4FDKWEC3-CuAJMEkh.js +1 -0
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/timeline-definition-IT6M3QCI-CJG-qhm_.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/timeline-definition-IT6M3QCI-CrlTiAiF.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/treemap-KMMF4GRG-YaGyt4VQ.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/treemap-KMMF4GRG-CWWhPD7D.js +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/xychartDiagram-PRI3JC2R-Zr6-qP0W.js → pythinker_code-0.13.0/src/pythinker_code/web/static/assets/xychartDiagram-PRI3JC2R-Bqs5RaDP.js +1 -1
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/index.html +1 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/channel-BYPABu6z.js +0 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/classDiagram-2ON5EDUG-Cp1WyJdn.js +0 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/classDiagram-v2-WZHVMYZB-Cp1WyJdn.js +0 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/clone-gYdnM1ik.js +0 -1
- pythinker_code-0.11.0/src/pythinker_code/web/static/assets/stateDiagram-v2-4FDKWEC3-DFQqtI5_.js +0 -1
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/LICENSE +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/NOTICE +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/__main__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/AGENTS.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/convert.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/host.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/mcp.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/server.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/session.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/tools.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/types.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/acp/version.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/agent.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/code_reviewer.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/coder.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/debugger.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/explore.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/implementer.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/plan.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/review.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/security_reviewer.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/system.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/default/verifier.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agents/okabe/agent.yaml +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/agentspec.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/app.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/approval_runtime/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/approval_runtime/models.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/approval_runtime/runtime.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/anthropic_direct.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/deepseek.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/github_feedback.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/lm_studio.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/minimax.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/oauth.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/ollama.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/openai.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/opencode_go.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/openrouter.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/auth/platforms.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/agent_runner.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/ids.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/manager.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/models.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/store.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/summary.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/background/worker.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/__main__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/_lazy_group.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/debug.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/export.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/info.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/mcp.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/plugin.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/review.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/secscan.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/security_scan.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/toad.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/update.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/vis.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/cli/web.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/config.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/constant.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/events.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/exception.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/extensions.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/file_restore.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/hooks/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/hooks/config.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/hooks/engine.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/hooks/events.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/hooks/runner.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/llm.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/metadata.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/llm.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/manager.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/models.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/notifier.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/store.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/notifications/wire.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/plugin/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/plugin/manager.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/plugin/tool.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/prompt_templates.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/prompts/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/prompts/compact.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/prompts/init.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/py.typed +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/session.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/session_fork.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/session_state.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/share.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skill/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skill/flow/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skill/flow/d2.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skill/flow/mermaid.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skills/pythinker-code-help/SKILL.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/skills/skill-creator/SKILL.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/agent.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/approval.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/btw.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/compaction.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/context.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/denwarenji.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/dynamic_injection.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/dynamic_injections/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/dynamic_injections/auto_mode.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/dynamic_injections/plan_mode.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/message.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/permission.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/pythinkersoul.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/slash.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/soul/toolset.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/builder.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/core.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/discovery.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/git_context.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/models.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/output.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/registry.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/runner.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/subagents/store.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/config.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/crash.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/errors.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/metrics.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/otel.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/sentry.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/telemetry/sink.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/AGENTS.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/agent/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/agent/description.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/ask_user/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/ask_user/description.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/background/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/background/list.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/background/output.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/background/stop.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/display.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/dmail/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/dmail/dmail.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/glob.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/glob.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/grep.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/grep_local.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/plan_mode.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/read.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/read.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/read_media.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/read_media.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/replace.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/replace.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/utils.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/write.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/file/write.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/description.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/enter.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/enter_description.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/handoff.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/plan/heroes.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/shell/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/shell/bash.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/shell/powershell.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/test.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/think/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/think/think.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/todo/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/todo/set_todo_list.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/utils.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/web/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/web/fetch.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/web/fetch.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/web/search.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/tools/web/search.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/acp/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/print/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/print/visualize.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/base.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/bash_execution.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/bordered_loader.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/diff.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/footer.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/key_hints.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/markdown.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/messages.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/render_utils.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/settings_list.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/special_messages.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/components/tool_execution.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/console.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/debug.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/export_import.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/keyboard.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/keymap.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/mcp_status.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/model_picker.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/oauth.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/placeholders.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/prompt.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/replay.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selector.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/extension.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/oauth.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/settings.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/show_images.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/theme.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/selectors/thinking.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/session_picker.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/setup.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/slash.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/spinner_words.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/startup.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/task_browser.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/_render_utils.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/agent.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/ask_user.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/background.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/bash.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/edit.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/find.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/generic.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/grep.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/plan.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/read.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/think.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/todo.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/web.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/tool_renderers/write.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/anthropic_admin.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/base.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/deepseek.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/minimax.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/openai_admin.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/openai_chatgpt.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/opencode_go.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/openrouter.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker_ai.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/usage_render.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_activity_tree.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_approval_panel.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_blocks.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_btw_panel.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_dialog_shell.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_input_router.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_interactive.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_live_view.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_question_panel.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_transcript.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/visualize/_worklog.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/tui_config.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/usage_ratelimit_cache.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/aiohttp.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/aioqueue.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/broadcast.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/changelog.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/clipboard.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/datetime.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/diff.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/editor.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/environment.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/envvar.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/export.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/file_filter.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/frontmatter.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/io.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/logging.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/media_tags.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/message.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/path.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/proctitle.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/proxy.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/pyinstaller.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/columns.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/diff_render.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/markdown.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/markdown_sample.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/markdown_sample_short.md +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/rich/syntax.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/sensitive.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/server.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/signals.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/slashcmd.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/string.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/subprocess_env.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/term.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/utils/typing.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/api/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/api/sessions.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/api/statistics.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/api/system.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/app.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/highlighted-body-B3W2YXNL-CY1rtwrX.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/index-DSRInNnm.css +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/index-DgmTI2M_.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/vis/static/index.html +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/api/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/api/config.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/api/open_in.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/api/sessions.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/app.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/auth.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/models.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/runner/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/runner/messages.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/runner/process.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/runner/worker.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/abap-BdImnpbu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/actionscript-3-CfeIJUat.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ada-bCR0ucgS.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/andromeeda-C-Jbm3Hp.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/angular-html-CU67Zn6k.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/angular-ts-BwZT4LLn.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/apache-Pmp26Uib.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/apex-D8_7TLub.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/apl-dKokRX4l.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/applescript-Co6uUVPk.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ara-BRHolxvo.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/asciidoc-Dv7Oe6Be.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/asm-D_Q5rh1f.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/astro-CbQHKStN.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/aurora-x-D-2ljcwZ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/awk-DMzUqQB5.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ayu-dark-CmMr59Fi.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ballerina-BFfxhgS-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/bat-BkioyH1T.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/beancount-k_qm7-4y.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/berry-uYugtg8r.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/bibtex-CHM0blh-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/bicep-Bmn6On1c.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/blade-D4QpJJKB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/bsl-BO_Y6i37.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/c-BIGW1oBm.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/c3-VCDPK7BO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cadence-Bv_4Rxtq.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cairo-KRGpt6FW.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/clarity-D53aC0YG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/clojure-P80f7IUj.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cmake-D1j8_8rp.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cobol-nwyudZeR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/codeowners-Bp6g37R7.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/codeql-DsOJ9woJ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/coffee-Ch7k5sss.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/common-lisp-Cg-RD9OK.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/coq-DkFqJrB1.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cpp-CofmeUqb.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/crystal-tKQVLTB8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/csharp-K5feNrxe.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/css-DPfMkruS.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/csv-fuZLfV_i.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cue-D82EKSYY.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/cypher-COkxafJQ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/d-85-TOEBH.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dark-plus-C3mMm8J8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dart-CF10PKvl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dax-CEL-wOlO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/defaultLocale-DX6XiGOO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/desktop-BmXAJ9_W.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/diff-D97Zzqfu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/docker-BcOcwvcX.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dotenv-Da5cRb03.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dracula-BzJJZx-M.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dracula-soft-BXkSAIEj.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/dream-maker-BtqSS_iP.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/edge-BkV0erSs.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/elixir-CDX3lj18.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/elm-DbKCFpqz.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/emacs-lisp-C9XAeP06.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/erb-BOJIQeun.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/erlang-DsQrWhSR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/everforest-dark-BgDCqdQA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/everforest-light-C8M2exoo.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fennel-BYunw83y.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fish-BvzEVeQv.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fluent-C4IJs8-o.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fortran-free-form-BxgE0vQu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/fsharp-CXgrBDvD.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gdresource-B7Tvp0Sc.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gdscript-DTMYz4Jt.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gdshader-DkwncUOv.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/genie-D0YGMca9.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gherkin-DyxjwDmM.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/git-commit-F4YmCXRG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/git-rebase-r7XF79zn.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-dark-DHJKELXO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-dark-default-Cuk6v7N8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-light-DAi9KRSo.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-light-default-D7oLnXFd.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gleam-BspZqrRM.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/glimmer-js-Rg0-pVw9.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/glimmer-ts-U6CK756n.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/glsl-DplSGwfg.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gn-n2N0HUVH.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gnuplot-DdkO51Og.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/go-Dn2_MT6a.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/graphql-ChdNCCLP.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/groovy-gcz8RCvz.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hack-CaT9iCJl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/haml-B8DHNrY2.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/handlebars-BL8al0AC.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/haskell-Df6bDoY_.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/haxe-CzTSHFRz.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hcl-BWvSN4gD.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hjson-D5-asLiD.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hlsl-D3lLCCz7.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/houston-DnULxvSX.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/html-GMplVEZG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/html-derivative-BFtXZ54Q.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/http-jrhK8wxY.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hurl-irOxFIW8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hxml-Bvhsp5Yf.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/hy-DFXneXwc.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/imba-DGztddWO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/index-BpoLgcEt.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/index-CzV_vCfu.css +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/index-DI2oedCt.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ini-BEwlwnbL.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/init-Gi6I4Gst.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/java-CylS5w8V.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/javascript-wDzz0qaB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jinja-4LBKfQ-Z.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jison-wvAkD_A8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/json-Cp-IABpG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/json5-C9tS-k6U.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jsonc-Des-eS-w.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jsonl-DcaNXYhu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jsonnet-DFQXde-d.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jssm-C2t-YnRu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/jsx-g9-lgVsj.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/julia-CxzCAyBv.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kanagawa-wave-DWedfzmr.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/katex-D2lIc1rk.css +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kdl-DV7GczEv.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kotlin-BdnUsdx6.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/kusto-DZf3V79B.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/laserwave-DUszq2jm.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/latex-B4uzh10-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/lean-BZvkOJ9d.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/less-B1dDrJ26.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/light-plus-B7mTdjB0.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/liquid-DYVedYrR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/llvm-BtvRca6l.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/log-2UxHyX5q.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/logo-BtOb2qkB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/lua-BbnMAYS6.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/luau-C-HG3fhB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/make-CHLpvVh8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/markdown-Cvjx9yec.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/marko-DZsq8hO1.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/material-theme-D5KoaKCx.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/material-theme-darker-BfHTSMKl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/material-theme-ocean-CyktbL80.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/matlab-D7o27uSR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mdc-DUICxH0z.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mdx-Cmh6b_Ma.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-B2P5VJ9v.css +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mermaid-mWjccvbQ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/min-dark-CafNBF8u.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/min-light-CTRr51gU.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mipsasm-CKIfxQSi.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/mojo-B93PlW-d.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/monokai-D4h5O-jR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/moonbit-Ba13S78F.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/move-Bu9oaDYs.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/narrat-DRg8JJMk.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nextflow-BrzmwbiE.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nginx-DknmC5AR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/night-owl-C39BiMTA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nim-CVrawwO9.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nix-CwoSXNpI.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nord-Ddv68eIx.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/nushell-C-sUppwS.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/objective-c-DXmwc3jG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/objective-cpp-CLxacb5B.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ocaml-C0hk2d4L.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/one-light-PoHY5YXO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/openscad-C4EeE6gA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ordinal-Cboi1Yqb.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/pascal-D93ZcfNL.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/perl-C0TMdlhV.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/php-CDn_0X-4.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/pkl-u5AG7uiY.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/plastic-3e1v2bzS.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/plsql-ChMvpjG-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/po-BTJTHyun.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/poimandres-CS3Unz2-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/polar-C0HS_06l.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/postcss-CXtECtnM.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/powerquery-CEu0bR-o.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/powershell-Dpen1YoG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/prisma-Dd19v3D-.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/prolog-CbFg5uaA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/proto-C7zT0LnQ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/pug-CGlum2m_.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/puppet-BMWR74SV.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/purescript-CklMAg4u.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/python-B6aJPvgy.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/qml-3beO22l8.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/qmldir-C8lEn-DE.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/qss-IeuSbFQv.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/r-Dspwwk_N.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/racket-BqYA7rlc.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/raku-DXvB9xmW.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/razor-C1TweQQi.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/red-bN70gL4F.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/reg-C-SQnVFl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/regexp-CDVJQ6XC.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rel-C3B-1QV4.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/riscv-BM1_JUlF.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rose-pine-moon-D4_iv3hh.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rose-pine-qdsjHGoJ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rosmsg-BJDFO7_C.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rst-B0xPkSld.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ruby-BvKwtOVI.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/rust-B1yitclQ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/sas-cz2c8ADy.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/sass-Cj5Yp3dK.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/scala-C151Ov-r.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/scheme-C98Dy4si.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/scss-OYdSNvt2.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/sdbl-DVxCFoDh.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/shaderlab-Dg9Lc6iA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/shellscript-Yzrsuije.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/shellsession-BADoaaVG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/slack-dark-BthQWCQV.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/slack-ochin-DqwNpetd.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/smalltalk-BERRCDM3.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/snazzy-light-Bw305WKR.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/solarized-dark-DXbdFlpD.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/solarized-light-L9t79GZl.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/solidity-rGO070M0.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/soy-Brmx7dQM.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/sparql-rVzFXLq3.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/splunk-BtCnVYZw.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/sql-BLtJtn59.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ssh-config-_ykCGR6B.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/stata-BH5u7GGu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/stylus-BEDo0Tqx.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/svelte-zxCyuUbr.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/swift-Dg5xB15N.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/synthwave-84-CbfX1IO0.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/system-verilog-CnnmHF94.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/systemd-4A_iFExJ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/talonscript-CkByrt1z.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tasl-QIJgUcNo.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tcl-dwOrl1Do.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/templ-W15q3VgB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/terraform-BETggiCN.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tex-CvyZ59Mk.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tokyo-night-hegEt444.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/toml-vGWfd6FD.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/ts-tags-zn1MmPIZ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tsv-B_m7g4N7.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/tsx-COt5Ahok.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/turtle-BsS91CYL.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/twig-CO9l9SDP.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/typescript-BPQ3VLAy.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/typespec-BGHnOYBU.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/typst-DHCkPAjA.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/v-BcVCzyr7.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vala-CsfeWuGM.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vb-D17OF-Vu.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/verilog-BQ8w6xss.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vesper-DU1UobuO.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vhdl-CeAyd5Ju.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/viml-CJc9bBzg.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vitesse-black-Bkuqu6BP.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vitesse-dark-D0r3Knsf.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vitesse-light-CVO1_9PV.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vue-DN_0RTcg.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vue-html-AaS7Mt5G.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vue-vine-CQOfvN7w.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/vyper-CDx5xZoG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wasm-CG6Dc4jp.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wasm-MzD3tlZU.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wenyan-BV7otONQ.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wgsl-Dx-B1_4e.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wikitext-BhOHFoWU.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wit-5i3qLPDT.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/wolfram-lXgVvXCa.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/xml-sdJ4AIDG.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/xsl-CtQFsRM5.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/yaml-Buea-lGh.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/zenscript-DVFEvuxE.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/assets/zig-VOosw3JB.js +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/apple-touch-icon.png +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/arctecture.webp +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/bimi-logo.svg +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/favicon.ico +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin-ext.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin.woff2 +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/icon-192.png +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/icon-512.png +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/icon.svg +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/logo.png +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/pythinker_animated.svg +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/brand/robots.txt +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/static/logo.png +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/store/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/web/store/sessions.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/__init__.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/file.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/jsonrpc.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/protocol.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/root_hub.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/serde.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/wire/server.py +0 -0
- {pythinker_code-0.11.0 → pythinker_code-0.13.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.
|
|
3
|
+
Version: 0.13.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
|
|
@@ -115,22 +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.
|
|
118
|
+
## 🆕 What's New in 0.13.0
|
|
119
119
|
|
|
120
|
-
- **
|
|
121
|
-
- **
|
|
122
|
-
- **
|
|
123
|
-
- **
|
|
124
|
-
- **
|
|
125
|
-
- **Tool failure recovery improvements.** The agent loop now handles malformed or empty tool-call responses more gracefully and can continue the session instead of leaving the UI stuck after a bad provider turn.
|
|
126
|
-
- **Safer file edits.** File write and replace tools now create restore points before mutating files, giving sessions a clearer recovery path after risky changes.
|
|
127
|
-
- **Session UX state tracking.** Runtime session state now records additional UX metadata so shell surfaces can provide better continuity across long-running work.
|
|
128
|
-
- **Shell command enhancements.** New shell slash-command plumbing improves discoverability and keeps interactive workflows smoother.
|
|
129
|
-
- **TUI renderer polish.** Tool cards now share more consistent status glyphs, truncation behavior, and result summaries across bash, read, write, edit, grep, find, web, subagent, background, ask-user, and think renderers.
|
|
130
|
-
- **Clipboard handling hardening.** Clipboard helpers now degrade more cleanly when platform clipboard access is unavailable.
|
|
131
|
-
- **Release and TUI specs.** The repository now includes the blackbox TUI port design and a visual smoke-test criterion for future terminal UI work.
|
|
120
|
+
- **Native installers for macOS and Linux.** `brew install mohamed-elkholy95/pythinker/pythinker-code` works on both macOS (Intel + Apple Silicon) and Linux brew installs. Debian/Ubuntu users get `pythinker-code_0.13.0_<arch>.deb`, Fedora/RHEL/openSUSE users get `pythinker-code-0.13.0.<arch>.rpm`, both built for `x86_64` and `aarch64`. Together with the Windows `PythinkerSetup-0.13.0.exe` shipped in 0.12.0, Pythinker now has a real native installer on every supported platform.
|
|
121
|
+
- **Cross-OS `install-native.sh`.** `curl -fsSL .../install-native.sh | bash` auto-detects your OS + arch, verifies SHA-256, and lands `pythinker` at `~/.local/bin/`. The script is the no-package-manager fallback for containers and fresh VMs.
|
|
122
|
+
- **Homebrew tap auto-publishes on every release.** A new tag-triggered workflow regenerates `Formula/pythinker-code.rb` (132 transitive deps enumerated automatically) and pushes it to [mohamed-elkholy95/homebrew-pythinker](https://github.com/mohamed-elkholy95/homebrew-pythinker). `brew upgrade pythinker-code` picks up new versions; no hand-curation per release.
|
|
123
|
+
- **Frozen-binary fix for 0.12.0's installer.** The PyInstaller specs now bundle every `.md` / `.yaml` package data file (`prompts/`, `agents/`, `tools/*/description.md`, `skills/*/SKILL.md`). 0.12.0's Windows installer crashed on first prompt load — **upgrade to 0.13.0** to fix it.
|
|
124
|
+
- **Legacy install paths deprecated.** The helper shell scripts (`install.sh`, `install.ps1`), `uvx`, `uv tool install`, `pipx install`, and bare `pip install` keep working but are now flagged as legacy. README Quick Start leads with the per-OS native installer table. Set `PYTHINKER_INSTALL_QUIET_DEPRECATION=1` to silence the deprecation banner in the helper scripts.
|
|
132
125
|
|
|
133
|
-
Upgrade with `pythinker update
|
|
126
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.13.0`, or use the native installer for your platform from the [Releases page](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest).
|
|
134
127
|
|
|
135
128
|
|
|
136
129
|
---
|
|
@@ -215,36 +208,132 @@ Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinke
|
|
|
215
208
|
|
|
216
209
|
## ⚡ Quick Start
|
|
217
210
|
|
|
218
|
-
|
|
211
|
+
Pythinker ships **native installers for every platform**. Pick the row that
|
|
212
|
+
matches your OS — no Python, Node, or `uv` prerequisite.
|
|
213
|
+
|
|
214
|
+
| Platform | One-line install | Artifact |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| **🪟 Windows** | Download + double-click `PythinkerSetup-x.y.z.exe` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
217
|
+
| **🍎 macOS (Apple Silicon + Intel)** | `brew install mohamed-elkholy95/pythinker/pythinker-code` | Homebrew tap |
|
|
218
|
+
| **🐧 Linux (Debian / Ubuntu)** | `sudo dpkg -i pythinker-code_x.y.z_amd64.deb` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
219
|
+
| **🐧 Linux (Fedora / RHEL / openSUSE)** | `sudo rpm -i pythinker-code-x.y.z.x86_64.rpm` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
220
|
+
| **🌐 macOS / Linux — curl-bash** | `curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install-native.sh \| bash` | tarball |
|
|
221
|
+
|
|
222
|
+
> **Updates** — Once installed, `pythinker update` checks the GitHub Releases
|
|
223
|
+
> API, verifies the new artifact's SHA-256, and re-runs the installer for you.
|
|
224
|
+
> Set `PYTHINKER_CLI_NO_AUTO_UPDATE=1` to disable the startup update check.
|
|
225
|
+
|
|
226
|
+
> **Verifying downloads** — Every artifact ships with a matching `.sha256`
|
|
227
|
+
> file. Verify before installing with `sha256sum`, `shasum -a 256`, or
|
|
228
|
+
> PowerShell's `Get-FileHash` (see platform sections below).
|
|
229
|
+
|
|
230
|
+
### 🪟 Windows native installer — details
|
|
231
|
+
|
|
232
|
+
`PythinkerSetup-x.y.z.exe` installs per-user to `%LOCALAPPDATA%\Programs\Pythinker`
|
|
233
|
+
and adds `pythinker` to your user PATH (`HKCU\Environment`). No UAC prompt.
|
|
234
|
+
|
|
235
|
+
```powershell
|
|
236
|
+
# 1. Verify the download
|
|
237
|
+
Get-FileHash .\PythinkerSetup-x.y.z.exe -Algorithm SHA256
|
|
238
|
+
Get-Content .\PythinkerSetup-x.y.z.exe.sha256
|
|
239
|
+
|
|
240
|
+
# 2. Run the installer (double-click also works)
|
|
241
|
+
.\PythinkerSetup-x.y.z.exe
|
|
242
|
+
|
|
243
|
+
# 3. Open a fresh PowerShell
|
|
244
|
+
pythinker --version
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-x.y.z.exe /ALLUSERS`
|
|
248
|
+
installs to `%ProgramFiles%\Pythinker` and writes to HKLM.
|
|
249
|
+
|
|
250
|
+
**Uninstall:** Apps & Features → *Pythinker Code* → Uninstall reverts both the
|
|
251
|
+
files and the PATH edit.
|
|
252
|
+
|
|
253
|
+
> 🛡 **First-launch SmartScreen warning** — until the Authenticode cert is in
|
|
254
|
+
> CI, the installer ships unsigned and SmartScreen shows *"Windows protected
|
|
255
|
+
> your PC."* Click **More info → Run anyway**. Use the published SHA-256 as
|
|
256
|
+
> your integrity check.
|
|
257
|
+
|
|
258
|
+
### 🍎 macOS — Homebrew
|
|
219
259
|
|
|
220
260
|
```sh
|
|
221
|
-
|
|
261
|
+
brew install mohamed-elkholy95/pythinker/pythinker-code
|
|
262
|
+
brew upgrade pythinker-code # manual updates; brew packages don't auto-update
|
|
222
263
|
```
|
|
223
264
|
|
|
224
|
-
|
|
265
|
+
Drops `pythinker` at `$(brew --prefix)/bin/pythinker`. Works on Apple Silicon
|
|
266
|
+
and Intel; brew picks the right Python build for you.
|
|
225
267
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
268
|
+
### 🐧 Linux — system packages
|
|
269
|
+
|
|
270
|
+
Native packages are attached to every GitHub Release. Both `.deb` and `.rpm`
|
|
271
|
+
are built for `x86_64` and `aarch64`:
|
|
272
|
+
|
|
273
|
+
```sh
|
|
274
|
+
# Debian / Ubuntu
|
|
275
|
+
sudo dpkg -i pythinker-code_x.y.z_amd64.deb
|
|
276
|
+
# If apt complains about missing deps:
|
|
277
|
+
sudo apt-get install -f
|
|
278
|
+
|
|
279
|
+
# Fedora / RHEL / openSUSE
|
|
280
|
+
sudo rpm -i pythinker-code-x.y.z.x86_64.rpm
|
|
281
|
+
# or:
|
|
282
|
+
sudo dnf install ./pythinker-code-x.y.z.x86_64.rpm
|
|
231
283
|
```
|
|
232
284
|
|
|
233
|
-
|
|
285
|
+
Both packages drop `/usr/bin/pythinker` (a small launcher that execs the real
|
|
286
|
+
binary under `/usr/lib/pythinker/`).
|
|
287
|
+
|
|
288
|
+
### 🌐 macOS / Linux — curl-bash native installer
|
|
234
289
|
|
|
235
|
-
|
|
290
|
+
For machines without a package manager (containers, fresh VMs), the
|
|
291
|
+
[install-native.sh](./scripts/install-native.sh) helper downloads the right
|
|
292
|
+
tarball for your OS + arch, verifies SHA-256, and installs to `~/.local/`.
|
|
236
293
|
|
|
237
294
|
```sh
|
|
238
|
-
|
|
295
|
+
curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install-native.sh | bash
|
|
296
|
+
|
|
297
|
+
# Pin a specific version:
|
|
298
|
+
curl -fsSL ...install-native.sh | bash -s -- --version 0.13.0
|
|
239
299
|
```
|
|
240
300
|
|
|
241
|
-
|
|
301
|
+
The script lands the binary at `~/.local/share/pythinker/` and symlinks
|
|
302
|
+
`~/.local/bin/pythinker`. It prints PATH guidance if `~/.local/bin` isn't on
|
|
303
|
+
your `$PATH`.
|
|
304
|
+
|
|
305
|
+
### 🛠 Power-user / legacy install paths
|
|
306
|
+
|
|
307
|
+
> 🚧 **Deprecated.** These paths still work, but the per-OS native installers
|
|
308
|
+
> above are the canonical install method for **all new releases**. The legacy
|
|
309
|
+
> options below remain for existing automation; new tooling, examples, and
|
|
310
|
+
> support docs target the native installers exclusively.
|
|
311
|
+
|
|
312
|
+
<details>
|
|
313
|
+
<summary>Legacy shell-script wrappers + uv / pipx</summary>
|
|
242
314
|
|
|
243
315
|
```sh
|
|
316
|
+
# Legacy: uv-based shell-script wrappers (prints a deprecation banner on run)
|
|
317
|
+
curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install.sh | bash
|
|
318
|
+
# Windows PowerShell wrapper:
|
|
319
|
+
$installer = Join-Path $env:TEMP "pythinker-install.ps1"
|
|
320
|
+
iwr -UseBasicParsing https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install.ps1 -OutFile $installer
|
|
321
|
+
& $installer
|
|
322
|
+
Remove-Item $installer
|
|
323
|
+
|
|
324
|
+
# Legacy: one-off run via uvx
|
|
325
|
+
uvx pythinker-code
|
|
326
|
+
|
|
327
|
+
# Legacy: install as a uv tool
|
|
244
328
|
uv tool install pythinker-code
|
|
245
|
-
|
|
329
|
+
|
|
330
|
+
# Legacy: PyPI directly (universal fallback)
|
|
331
|
+
pip install pythinker-code
|
|
332
|
+
pipx install pythinker-code
|
|
246
333
|
```
|
|
247
334
|
|
|
335
|
+
</details>
|
|
336
|
+
|
|
248
337
|
### 🔐 Authenticate (optional)
|
|
249
338
|
|
|
250
339
|
For hosted Pythinker models or ACP terminal auth:
|
|
@@ -50,22 +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.
|
|
53
|
+
## 🆕 What's New in 0.13.0
|
|
54
54
|
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **Tool failure recovery improvements.** The agent loop now handles malformed or empty tool-call responses more gracefully and can continue the session instead of leaving the UI stuck after a bad provider turn.
|
|
61
|
-
- **Safer file edits.** File write and replace tools now create restore points before mutating files, giving sessions a clearer recovery path after risky changes.
|
|
62
|
-
- **Session UX state tracking.** Runtime session state now records additional UX metadata so shell surfaces can provide better continuity across long-running work.
|
|
63
|
-
- **Shell command enhancements.** New shell slash-command plumbing improves discoverability and keeps interactive workflows smoother.
|
|
64
|
-
- **TUI renderer polish.** Tool cards now share more consistent status glyphs, truncation behavior, and result summaries across bash, read, write, edit, grep, find, web, subagent, background, ask-user, and think renderers.
|
|
65
|
-
- **Clipboard handling hardening.** Clipboard helpers now degrade more cleanly when platform clipboard access is unavailable.
|
|
66
|
-
- **Release and TUI specs.** The repository now includes the blackbox TUI port design and a visual smoke-test criterion for future terminal UI work.
|
|
55
|
+
- **Native installers for macOS and Linux.** `brew install mohamed-elkholy95/pythinker/pythinker-code` works on both macOS (Intel + Apple Silicon) and Linux brew installs. Debian/Ubuntu users get `pythinker-code_0.13.0_<arch>.deb`, Fedora/RHEL/openSUSE users get `pythinker-code-0.13.0.<arch>.rpm`, both built for `x86_64` and `aarch64`. Together with the Windows `PythinkerSetup-0.13.0.exe` shipped in 0.12.0, Pythinker now has a real native installer on every supported platform.
|
|
56
|
+
- **Cross-OS `install-native.sh`.** `curl -fsSL .../install-native.sh | bash` auto-detects your OS + arch, verifies SHA-256, and lands `pythinker` at `~/.local/bin/`. The script is the no-package-manager fallback for containers and fresh VMs.
|
|
57
|
+
- **Homebrew tap auto-publishes on every release.** A new tag-triggered workflow regenerates `Formula/pythinker-code.rb` (132 transitive deps enumerated automatically) and pushes it to [mohamed-elkholy95/homebrew-pythinker](https://github.com/mohamed-elkholy95/homebrew-pythinker). `brew upgrade pythinker-code` picks up new versions; no hand-curation per release.
|
|
58
|
+
- **Frozen-binary fix for 0.12.0's installer.** The PyInstaller specs now bundle every `.md` / `.yaml` package data file (`prompts/`, `agents/`, `tools/*/description.md`, `skills/*/SKILL.md`). 0.12.0's Windows installer crashed on first prompt load — **upgrade to 0.13.0** to fix it.
|
|
59
|
+
- **Legacy install paths deprecated.** The helper shell scripts (`install.sh`, `install.ps1`), `uvx`, `uv tool install`, `pipx install`, and bare `pip install` keep working but are now flagged as legacy. README Quick Start leads with the per-OS native installer table. Set `PYTHINKER_INSTALL_QUIET_DEPRECATION=1` to silence the deprecation banner in the helper scripts.
|
|
67
60
|
|
|
68
|
-
Upgrade with `pythinker update
|
|
61
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.13.0`, or use the native installer for your platform from the [Releases page](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest).
|
|
69
62
|
|
|
70
63
|
|
|
71
64
|
---
|
|
@@ -150,36 +143,132 @@ Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinke
|
|
|
150
143
|
|
|
151
144
|
## ⚡ Quick Start
|
|
152
145
|
|
|
153
|
-
|
|
146
|
+
Pythinker ships **native installers for every platform**. Pick the row that
|
|
147
|
+
matches your OS — no Python, Node, or `uv` prerequisite.
|
|
148
|
+
|
|
149
|
+
| Platform | One-line install | Artifact |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| **🪟 Windows** | Download + double-click `PythinkerSetup-x.y.z.exe` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
152
|
+
| **🍎 macOS (Apple Silicon + Intel)** | `brew install mohamed-elkholy95/pythinker/pythinker-code` | Homebrew tap |
|
|
153
|
+
| **🐧 Linux (Debian / Ubuntu)** | `sudo dpkg -i pythinker-code_x.y.z_amd64.deb` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
154
|
+
| **🐧 Linux (Fedora / RHEL / openSUSE)** | `sudo rpm -i pythinker-code-x.y.z.x86_64.rpm` | [Releases](https://github.com/mohamed-elkholy95/Pythinker-Code/releases/latest) |
|
|
155
|
+
| **🌐 macOS / Linux — curl-bash** | `curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install-native.sh \| bash` | tarball |
|
|
156
|
+
|
|
157
|
+
> **Updates** — Once installed, `pythinker update` checks the GitHub Releases
|
|
158
|
+
> API, verifies the new artifact's SHA-256, and re-runs the installer for you.
|
|
159
|
+
> Set `PYTHINKER_CLI_NO_AUTO_UPDATE=1` to disable the startup update check.
|
|
160
|
+
|
|
161
|
+
> **Verifying downloads** — Every artifact ships with a matching `.sha256`
|
|
162
|
+
> file. Verify before installing with `sha256sum`, `shasum -a 256`, or
|
|
163
|
+
> PowerShell's `Get-FileHash` (see platform sections below).
|
|
164
|
+
|
|
165
|
+
### 🪟 Windows native installer — details
|
|
166
|
+
|
|
167
|
+
`PythinkerSetup-x.y.z.exe` installs per-user to `%LOCALAPPDATA%\Programs\Pythinker`
|
|
168
|
+
and adds `pythinker` to your user PATH (`HKCU\Environment`). No UAC prompt.
|
|
169
|
+
|
|
170
|
+
```powershell
|
|
171
|
+
# 1. Verify the download
|
|
172
|
+
Get-FileHash .\PythinkerSetup-x.y.z.exe -Algorithm SHA256
|
|
173
|
+
Get-Content .\PythinkerSetup-x.y.z.exe.sha256
|
|
174
|
+
|
|
175
|
+
# 2. Run the installer (double-click also works)
|
|
176
|
+
.\PythinkerSetup-x.y.z.exe
|
|
177
|
+
|
|
178
|
+
# 3. Open a fresh PowerShell
|
|
179
|
+
pythinker --version
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-x.y.z.exe /ALLUSERS`
|
|
183
|
+
installs to `%ProgramFiles%\Pythinker` and writes to HKLM.
|
|
184
|
+
|
|
185
|
+
**Uninstall:** Apps & Features → *Pythinker Code* → Uninstall reverts both the
|
|
186
|
+
files and the PATH edit.
|
|
187
|
+
|
|
188
|
+
> 🛡 **First-launch SmartScreen warning** — until the Authenticode cert is in
|
|
189
|
+
> CI, the installer ships unsigned and SmartScreen shows *"Windows protected
|
|
190
|
+
> your PC."* Click **More info → Run anyway**. Use the published SHA-256 as
|
|
191
|
+
> your integrity check.
|
|
192
|
+
|
|
193
|
+
### 🍎 macOS — Homebrew
|
|
154
194
|
|
|
155
195
|
```sh
|
|
156
|
-
|
|
196
|
+
brew install mohamed-elkholy95/pythinker/pythinker-code
|
|
197
|
+
brew upgrade pythinker-code # manual updates; brew packages don't auto-update
|
|
157
198
|
```
|
|
158
199
|
|
|
159
|
-
|
|
200
|
+
Drops `pythinker` at `$(brew --prefix)/bin/pythinker`. Works on Apple Silicon
|
|
201
|
+
and Intel; brew picks the right Python build for you.
|
|
160
202
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
203
|
+
### 🐧 Linux — system packages
|
|
204
|
+
|
|
205
|
+
Native packages are attached to every GitHub Release. Both `.deb` and `.rpm`
|
|
206
|
+
are built for `x86_64` and `aarch64`:
|
|
207
|
+
|
|
208
|
+
```sh
|
|
209
|
+
# Debian / Ubuntu
|
|
210
|
+
sudo dpkg -i pythinker-code_x.y.z_amd64.deb
|
|
211
|
+
# If apt complains about missing deps:
|
|
212
|
+
sudo apt-get install -f
|
|
213
|
+
|
|
214
|
+
# Fedora / RHEL / openSUSE
|
|
215
|
+
sudo rpm -i pythinker-code-x.y.z.x86_64.rpm
|
|
216
|
+
# or:
|
|
217
|
+
sudo dnf install ./pythinker-code-x.y.z.x86_64.rpm
|
|
166
218
|
```
|
|
167
219
|
|
|
168
|
-
|
|
220
|
+
Both packages drop `/usr/bin/pythinker` (a small launcher that execs the real
|
|
221
|
+
binary under `/usr/lib/pythinker/`).
|
|
222
|
+
|
|
223
|
+
### 🌐 macOS / Linux — curl-bash native installer
|
|
169
224
|
|
|
170
|
-
|
|
225
|
+
For machines without a package manager (containers, fresh VMs), the
|
|
226
|
+
[install-native.sh](./scripts/install-native.sh) helper downloads the right
|
|
227
|
+
tarball for your OS + arch, verifies SHA-256, and installs to `~/.local/`.
|
|
171
228
|
|
|
172
229
|
```sh
|
|
173
|
-
|
|
230
|
+
curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install-native.sh | bash
|
|
231
|
+
|
|
232
|
+
# Pin a specific version:
|
|
233
|
+
curl -fsSL ...install-native.sh | bash -s -- --version 0.13.0
|
|
174
234
|
```
|
|
175
235
|
|
|
176
|
-
|
|
236
|
+
The script lands the binary at `~/.local/share/pythinker/` and symlinks
|
|
237
|
+
`~/.local/bin/pythinker`. It prints PATH guidance if `~/.local/bin` isn't on
|
|
238
|
+
your `$PATH`.
|
|
239
|
+
|
|
240
|
+
### 🛠 Power-user / legacy install paths
|
|
241
|
+
|
|
242
|
+
> 🚧 **Deprecated.** These paths still work, but the per-OS native installers
|
|
243
|
+
> above are the canonical install method for **all new releases**. The legacy
|
|
244
|
+
> options below remain for existing automation; new tooling, examples, and
|
|
245
|
+
> support docs target the native installers exclusively.
|
|
246
|
+
|
|
247
|
+
<details>
|
|
248
|
+
<summary>Legacy shell-script wrappers + uv / pipx</summary>
|
|
177
249
|
|
|
178
250
|
```sh
|
|
251
|
+
# Legacy: uv-based shell-script wrappers (prints a deprecation banner on run)
|
|
252
|
+
curl -fsSL https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install.sh | bash
|
|
253
|
+
# Windows PowerShell wrapper:
|
|
254
|
+
$installer = Join-Path $env:TEMP "pythinker-install.ps1"
|
|
255
|
+
iwr -UseBasicParsing https://raw.githubusercontent.com/mohamed-elkholy95/Pythinker-Code/main/scripts/install.ps1 -OutFile $installer
|
|
256
|
+
& $installer
|
|
257
|
+
Remove-Item $installer
|
|
258
|
+
|
|
259
|
+
# Legacy: one-off run via uvx
|
|
260
|
+
uvx pythinker-code
|
|
261
|
+
|
|
262
|
+
# Legacy: install as a uv tool
|
|
179
263
|
uv tool install pythinker-code
|
|
180
|
-
|
|
264
|
+
|
|
265
|
+
# Legacy: PyPI directly (universal fallback)
|
|
266
|
+
pip install pythinker-code
|
|
267
|
+
pipx install pythinker-code
|
|
181
268
|
```
|
|
182
269
|
|
|
270
|
+
</details>
|
|
271
|
+
|
|
183
272
|
### 🔐 Authenticate (optional)
|
|
184
273
|
|
|
185
274
|
For hosted Pythinker models or ACP terminal auth:
|
|
@@ -15,6 +15,30 @@ GitHub Releases page; `0.8.0` is the new starting line.
|
|
|
15
15
|
|
|
16
16
|
## Unreleased
|
|
17
17
|
|
|
18
|
+
## 0.13.0 (2026-05-22)
|
|
19
|
+
|
|
20
|
+
### What changed in this release
|
|
21
|
+
|
|
22
|
+
- **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.
|
|
23
|
+
- **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`.
|
|
24
|
+
- **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.
|
|
25
|
+
- **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`.
|
|
26
|
+
- **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.
|
|
27
|
+
- **Legacy install paths deprecated.** `scripts/install.sh`, `scripts/install.ps1`, `uvx pythinker-code`, `uv tool install pythinker-code`, `pipx install pythinker-code`, and bare `pip install pythinker-code` continue to work for existing automation. The two helper scripts now print a `[DEPRECATED]` banner at startup, pause 3 s, and point at the OS-specific native installer; set `PYTHINKER_INSTALL_QUIET_DEPRECATION=1` to suppress the banner. README Quick Start now leads with the per-OS install table.
|
|
28
|
+
|
|
29
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.13.0`, or use the native installer for your OS (see the README install table).
|
|
30
|
+
|
|
31
|
+
## 0.12.0 (2026-05-22)
|
|
32
|
+
|
|
33
|
+
### What changed in this release
|
|
34
|
+
|
|
35
|
+
- **Native Windows installer.** A signed `PythinkerSetup-x.y.z.exe` is now attached to every GitHub Release — install Pythinker on Windows with one download, no Python / Node / uv prerequisite. The wizard installs per-user (no UAC) into `%LOCALAPPDATA%\Programs\Pythinker`, registers `pythinker` on the user PATH, and broadcasts `WM_SETTINGCHANGE` so new shells pick the change up immediately. Uninstall reverses the PATH edit. Code-signing is wired through `signtool` and ships unsigned until the Authenticode cert lands; from that point forward the same CI job produces signed installers with no code change required.
|
|
36
|
+
- **In-app updates for the native build.** `pythinker update` from a native install detects the build (via a `.pythinker-native` sentinel next to `pythinker.exe`), fetches the latest GitHub Release asset, verifies its SHA-256, and re-runs the installer silently (`/VERYSILENT /SUPPRESSMSGBOXES /NORESTART`). The `PYTHINKER_CLI_NO_AUTO_UPDATE` opt-out env var that the PyPI path already honors now also gates the native auto-update path — one knob, both flows. The update banner shows a human-readable `PythinkerSetup-x.y.z.exe` line instead of leaking internal markers.
|
|
37
|
+
- **Tag-triggered Windows build pipeline.** A new `.github/workflows/windows-installer.yml` runs on every `pythinker-code-v*` tag, freezes `pythinker` via PyInstaller (`--onedir` for faster startup and fewer AV false positives), compiles the Inno Setup script, signs the result if `WINDOWS_CERT_PFX_BASE64` / `WINDOWS_CERT_PASSWORD` secrets are populated, and uploads the `.exe` plus its `.sha256` to the corresponding Release.
|
|
38
|
+
- **Shell terminal rhythm refinements.** Tone tokens, motion timing, and theme palette were retuned (sky-blue `#7dd3fc` / `#93c5fd` accents) so transcript rows, motion status, and dialog surfaces breathe consistently. UI snapshot tests updated to lock the new rhythm in place.
|
|
39
|
+
|
|
40
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.12.0`, or — on Windows — download `PythinkerSetup-0.12.0.exe` from the Releases page.
|
|
41
|
+
|
|
18
42
|
## 0.11.0 (2026-05-22)
|
|
19
43
|
|
|
20
44
|
### What changed in this release
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Native-build detection + GitHub Releases lookup helpers.
|
|
2
|
+
|
|
3
|
+
The Windows native installer drops a sentinel file ``.pythinker-native`` next
|
|
4
|
+
to the PyInstaller-frozen ``pythinker.exe``. The runtime probes for that file
|
|
5
|
+
to decide whether ``pythinker update`` should re-run the native installer
|
|
6
|
+
instead of shelling out to ``uv tool upgrade``.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import sys
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
|
|
14
|
+
GITHUB_REPO = "mohamed-elkholy95/Pythinker-Code"
|
|
15
|
+
SENTINEL_FILENAME = ".pythinker-native"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def is_native_build() -> bool:
|
|
19
|
+
"""True iff this process is a Pythinker native (Inno Setup) install."""
|
|
20
|
+
if not getattr(sys, "frozen", False):
|
|
21
|
+
return False
|
|
22
|
+
try:
|
|
23
|
+
exe_dir = Path(sys.executable).resolve().parent
|
|
24
|
+
except OSError:
|
|
25
|
+
return False
|
|
26
|
+
return (exe_dir / SENTINEL_FILENAME).is_file()
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def native_installer_release_url(channel: str = "latest") -> str:
|
|
30
|
+
"""Return the GitHub API URL for the requested release channel."""
|
|
31
|
+
if channel == "latest":
|
|
32
|
+
return f"https://api.github.com/repos/{GITHUB_REPO}/releases/latest"
|
|
33
|
+
return f"https://api.github.com/repos/{GITHUB_REPO}/releases/tags/{channel}"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def native_installer_asset_name(version: str) -> str:
|
|
37
|
+
"""Filename of the installer asset attached to a Release."""
|
|
38
|
+
return f"PythinkerSetup-{version}.exe"
|
{pythinker_code-0.11.0 → pythinker_code-0.13.0}/src/pythinker_code/ui/shell/design_system.py
RENAMED
|
@@ -37,11 +37,11 @@ StatusName = Literal[
|
|
|
37
37
|
_TONE_STYLES: dict[ShellTone, Style] = {
|
|
38
38
|
ShellTone.NORMAL: Style(color="default"),
|
|
39
39
|
ShellTone.MUTED: Style(color="grey50"),
|
|
40
|
-
ShellTone.ACCENT: Style(color="
|
|
40
|
+
ShellTone.ACCENT: Style(color="#7dd3fc"),
|
|
41
41
|
ShellTone.SUCCESS: Style(color="green"),
|
|
42
42
|
ShellTone.WARNING: Style(color="yellow"),
|
|
43
43
|
ShellTone.ERROR: Style(color="red"),
|
|
44
|
-
ShellTone.INFO: Style(color="
|
|
44
|
+
ShellTone.INFO: Style(color="#93c5fd"),
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
_STATUS: dict[StatusName, tuple[str, ShellTone]] = {
|
|
@@ -5,7 +5,7 @@ from rich.console import RenderableType
|
|
|
5
5
|
from rich.text import Text
|
|
6
6
|
|
|
7
7
|
from pythinker_code.ui.shell.components import render_user_message
|
|
8
|
-
from pythinker_code.ui.shell.prompt import
|
|
8
|
+
from pythinker_code.ui.shell.prompt import PROMPT_SYMBOL_AGENT_INPUT
|
|
9
9
|
from pythinker_code.ui.tui_config import is_card_style
|
|
10
10
|
from pythinker_code.utils.message import message_stringify
|
|
11
11
|
|
|
@@ -20,11 +20,11 @@ def render_user_echo(message: Message) -> RenderableType:
|
|
|
20
20
|
text = message_stringify(message)
|
|
21
21
|
if is_card_style():
|
|
22
22
|
return render_user_message(text)
|
|
23
|
-
return Text(f"{
|
|
23
|
+
return Text(f"{PROMPT_SYMBOL_AGENT_INPUT} {text}")
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def render_user_echo_text(text: str) -> RenderableType:
|
|
27
27
|
"""Render the local prompt text exactly as the user saw it in the buffer."""
|
|
28
28
|
if is_card_style():
|
|
29
29
|
return render_user_message(text)
|
|
30
|
-
return Text(f"{
|
|
30
|
+
return Text(f"{PROMPT_SYMBOL_AGENT_INPUT} {text}")
|
|
@@ -23,7 +23,7 @@ class ActivitySnapshot:
|
|
|
23
23
|
tokens: int = 0
|
|
24
24
|
token_rate: int | None = None
|
|
25
25
|
stalled: bool = False
|
|
26
|
-
interrupt_hint: str = "
|
|
26
|
+
interrupt_hint: str = ""
|
|
27
27
|
reduced_motion: bool = False
|
|
28
28
|
|
|
29
29
|
|
|
@@ -46,14 +46,22 @@ def spinner_frame_at(elapsed_s: float, *, reduced_motion: bool = False) -> str:
|
|
|
46
46
|
def _candidate_parts(snapshot: ActivitySnapshot) -> list[str]:
|
|
47
47
|
parts = [format_elapsed(snapshot.elapsed_s)]
|
|
48
48
|
if snapshot.tokens:
|
|
49
|
-
parts.append(f"{format_token_count(snapshot.tokens)} tokens")
|
|
49
|
+
parts.append(f"↓ {format_token_count(snapshot.tokens)} tokens")
|
|
50
50
|
if snapshot.token_rate:
|
|
51
|
-
parts.append(f"{snapshot.token_rate}
|
|
51
|
+
parts.append(f"{snapshot.token_rate} t/s")
|
|
52
52
|
if snapshot.interrupt_hint:
|
|
53
|
-
|
|
53
|
+
hint = "esc" if snapshot.interrupt_hint == "esc to interrupt" else snapshot.interrupt_hint
|
|
54
|
+
parts.append(hint)
|
|
54
55
|
return parts
|
|
55
56
|
|
|
56
57
|
|
|
58
|
+
def _activity_label(label: str) -> str:
|
|
59
|
+
stripped = label.rstrip()
|
|
60
|
+
if stripped.endswith(("…", "...")):
|
|
61
|
+
return stripped
|
|
62
|
+
return f"{stripped}…"
|
|
63
|
+
|
|
64
|
+
|
|
57
65
|
def activity_status_line(snapshot: ActivitySnapshot, *, width: int | None = None) -> Text:
|
|
58
66
|
reduced = snapshot.reduced_motion or reduced_motion_enabled()
|
|
59
67
|
glyph_style = ShellTone.WARNING if snapshot.stalled else ShellTone.ACCENT
|
|
@@ -62,7 +70,10 @@ def activity_status_line(snapshot: ActivitySnapshot, *, width: int | None = None
|
|
|
62
70
|
style=shell_style(glyph_style),
|
|
63
71
|
)
|
|
64
72
|
text.append(" ")
|
|
65
|
-
text.append(
|
|
73
|
+
text.append(
|
|
74
|
+
_activity_label(snapshot.label),
|
|
75
|
+
style="italic" if snapshot.label.lower() == "thinking" else "",
|
|
76
|
+
)
|
|
66
77
|
|
|
67
78
|
parts = _candidate_parts(snapshot)
|
|
68
79
|
if width is not None:
|
|
@@ -70,10 +81,10 @@ def activity_status_line(snapshot: ActivitySnapshot, *, width: int | None = None
|
|
|
70
81
|
kept: list[str] = []
|
|
71
82
|
for part in parts:
|
|
72
83
|
candidate = " · ".join([*kept, part])
|
|
73
|
-
if base_width +
|
|
84
|
+
if base_width + 3 + cell_width(candidate) <= width:
|
|
74
85
|
kept.append(part)
|
|
75
86
|
parts = kept
|
|
76
87
|
if parts:
|
|
77
88
|
text.append(" ")
|
|
78
|
-
text.append(" ·
|
|
89
|
+
text.append(f"({' · '.join(parts)})", style=shell_style(ShellTone.MUTED))
|
|
79
90
|
return text
|