pythinker-code 0.56.0__tar.gz → 0.58.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.56.0 → pythinker_code-0.58.0}/PKG-INFO +47 -29
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/README.md +46 -28
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/pyproject.toml +5 -1
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/CHANGELOG.md +73 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/system.md +3 -3
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agentspec.py +171 -11
- pythinker_code-0.58.0/src/pythinker_code/benchmark/__init__.py +5 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/activity.py +88 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/__init__.py +1 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/suites/__init__.py +1 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/suites/pythinker-core.json +11 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/suites/pythinker-smoke.json +10 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/__init__.py +1 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/core-atomic-transfer.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/core-dedup-order.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/core-explicit-none-metadata.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/core-safe-path-join.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/smoke-add-small-function.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/smoke-edit-readme.json +20 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/bundled/tasks/smoke-fix-python-test.json +21 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/commands.py +633 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/compare.py +72 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/discovery.py +169 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/environment.py +74 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/errors.py +57 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/estimate.py +69 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/export.py +69 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/records.py +191 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/redact.py +46 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/report.py +143 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/runner.py +425 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/suites.py +82 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/swe.py +193 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/tasks.py +186 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/toolset_characterization.py +1118 -0
- pythinker_code-0.58.0/src/pythinker_code/benchmark/types.py +11 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/system_prompt.py +2 -1
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/config.py +15 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skill/__init__.py +139 -8
- pythinker_code-0.58.0/src/pythinker_code/skill/catalog.py +509 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/agent.py +168 -69
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/btw.py +35 -10
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/compaction_restore.py +3 -3
- pythinker_code-0.58.0/src/pythinker_code/soul/context.py +1087 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injection.py +120 -80
- pythinker_code-0.58.0/src/pythinker_code/soul/dynamic_injections/active_skills.py +131 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/agent_list.py +2 -1
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/model_defense.py +47 -12
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/permissions_state.py +60 -9
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/pythinkersoul.py +477 -188
- pythinker_code-0.58.0/src/pythinker_code/soul/request_assembly.py +770 -0
- pythinker_code-0.58.0/src/pythinker_code/soul/request_lifecycle.py +481 -0
- pythinker_code-0.58.0/src/pythinker_code/soul/request_primitives.py +34 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/slash.py +139 -2
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/toolset.py +14 -5
- pythinker_code-0.58.0/src/pythinker_code/subagents/catalogue.py +398 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/discovery.py +139 -22
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/runner.py +6 -2
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/metrics.py +47 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/agent/__init__.py +19 -14
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/skill/__init__.py +29 -10
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/__init__.py +26 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/focus_model.py +105 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/focus_surface.py +94 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/prompt.py +204 -5
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/slash.py +3 -2
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/__init__.py +17 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/components.py +94 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/diff.py +37 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/scene.py +20 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/scheduler.py +23 -0
- pythinker_code-0.58.0/src/pythinker_code/ui/shell/tui/width.py +16 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/__init__.py +8 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_activity_tree.py +2 -5
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_blocks.py +136 -4
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_interactive.py +83 -7
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_live_view.py +96 -6
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/frontmatter.py +14 -3
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/pyinstaller.py +1 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/slashcmd.py +2 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/architecture-7EHR7CIX-S-vCW5iB.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/architectureDiagram-3BPJPVTR-D-oTCQ9W.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/architectureDiagram-3BPJPVTR-DNjSUgP8.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/blockDiagram-GPEHLZMM-D34_j76S.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/blockDiagram-GPEHLZMM-Bj6WF362.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/bootstrap-CpUR7Koq.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/bootstrap-DPOVLodG.js +5 -5
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/c4Diagram-AAUBKEIU-C2mqoh1h.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/c4Diagram-AAUBKEIU-GGQSrWG4.js +1 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/channel-BF4DnhOY.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-2J33WTMH-ShdbwtE-.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-2J33WTMH-OsiI6Shl.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-3OPIFGDE-CJUUK0QK.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-3OPIFGDE-BT9LH4XF.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-5ZQYHXKU-xeGaUwvY.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-5ZQYHXKU-BKI-R690.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-727SXJPM-Cy_RD8yP.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-727SXJPM-zD8K6bZU.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-AQP2D5EJ-DMNmGzA_.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-AQP2D5EJ-C8-RqfOY.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-CSCIHK7Q-BkY8yJxw.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-CSCIHK7Q-DauLS_KO.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-JAPRZBRM-R_RAdw32.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-JAPRZBRM-B3vK8rJr.js +4 -4
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-KSCS5N6A-DOUIBKHM.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-KSCS5N6A-q_c8Otyz.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-L5ZTLDWV-D_5ebsa9.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-L5ZTLDWV-L38JietD.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-LZXEDZCA-CNIP5ZJc.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-LZXEDZCA-JUzQ08Fk.js +2 -2
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-ND2GUHAM-CJ5TG2Ro.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-ND2GUHAM-B7lN__eE.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-NZK2D7GU-COffKE0S.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-NZK2D7GU-MT98-VRd.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-O5CBEL6O-C5w7EJCo.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-O5CBEL6O-HS6UvO8l.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/chunk-WU5MYG2G-DWLWBJUd.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/chunk-WU5MYG2G-2FStZlKC.js +1 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/classDiagram-4FO5ZUOK-bQ8c0gns.js +1 -0
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/classDiagram-v2-Q7XG4LA2-bQ8c0gns.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-C0JwfXrb.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/code-block-IT6T5CEO-CSd98pzb.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/dagre-BM42HDAG-BS7OVne_.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/dagre-BM42HDAG-CRsWJlJl.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/diagram-2AECGRRQ-BTg3lFST.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/diagram-2AECGRRQ-x6OaKKPB.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/diagram-5GNKFQAL-BUAno9D9.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/diagram-5GNKFQAL-DC8c6FnZ.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/diagram-KO2AKTUF-CGpQcGTu.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/diagram-KO2AKTUF-B7qc5yfP.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/diagram-LMA3HP47-DdfoR8iH.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/diagram-LMA3HP47-BFPLlnJr.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/diagram-OG6HWLK6-B-2nIGQC.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/diagram-OG6HWLK6-B-WnMmPG.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/dist-v9L6Y4tR.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/dist-Co5o61Cn.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/erDiagram-TEJ5UH35-Dkn6nBXX.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/erDiagram-TEJ5UH35-Vt3XXS0U.js +1 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/eventmodeling-FCH6USID-BleAriwz.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/flowDiagram-I6XJVG4X-CqC1Lcvt.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/flowDiagram-I6XJVG4X-BIXHEjYH.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/ganttDiagram-6RSMTGT7-BAoDDdO1.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/ganttDiagram-6RSMTGT7--FC4MYE3.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/gitGraph-WXDBUCRP-B6BXhOMH.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/gitGraph-WXDBUCRP-IE4jYajm.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/gitGraphDiagram-PVQCEYII-DYk1hKu6.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/gitGraphDiagram-PVQCEYII-n6_B85cu.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/index-d4P4XfiK.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/index-Denir8Jc.js +2 -2
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/info-J43DQDTF-EId6Oz5v.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/info-J43DQDTF-BL7RBP_1.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/infoDiagram-5YYISTIA-CVSEC85r.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/infoDiagram-5YYISTIA-DyvqlJzB.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/ishikawaDiagram-YF4QCWOH-B8YI7s2L.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/ishikawaDiagram-YF4QCWOH--AK0oQMB.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/journeyDiagram-JHISSGLW-BfAOteUW.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/journeyDiagram-JHISSGLW-DPt6uw-j.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/kanban-definition-UN3LZRKU-DC0NPat0.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/kanban-definition-UN3LZRKU-CMP28iqQ.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/line-RPziCRsV.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/line-QV0kz4Kh.js +1 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-Cw_TmpwX.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/mermaid-parser.core-DJ-lswOc.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/mermaid-parser.core-5eX2XKzs.js +2 -2
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/mermaid.core-BlZ1iz7p.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/mermaid.core-xSjkHKy4.js +3 -3
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/mindmap-definition-RKZ34NQL-BmNncIUr.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/mindmap-definition-RKZ34NQL-SSQGdG4v.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/packet-YPE3B663-DNxSBx_x.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/packet-YPE3B663-DTfa3Ugh.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/pie-LRSECV5Y-4baAFGGq.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/pie-LRSECV5Y-D3jK8uBv.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/pieDiagram-4H26LBE5-D7VDURr8.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/pieDiagram-4H26LBE5--TRptUQU.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/quadrantDiagram-W4KKPZXB-5BNRSed4.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/quadrantDiagram-W4KKPZXB-Db9MtYHt.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/radar-GUYGQ44K-CJUK9U42.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/radar-GUYGQ44K-DFnRNCTk.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/requirementDiagram-4Y6WPE33-WrVH562b.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/requirementDiagram-4Y6WPE33-sTa-nhJU.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/sankeyDiagram-5OEKKPKP-bq7l110w.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/sankeyDiagram-5OEKKPKP-Bd2A0AYR.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/sequenceDiagram-3UESZ5HK-D7Co-TdH.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/sequenceDiagram-3UESZ5HK-gsJgyFMR.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/stateDiagram-AJRCARHV-BxWHnHG4.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/stateDiagram-AJRCARHV-D8aBQA8n.js +1 -1
- pythinker_code-0.58.0/src/pythinker_code/web/static/assets/stateDiagram-v2-BHNVJYJU-CcaDggV3.js +1 -0
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/timeline-definition-PNZ67QCA-BPV0Bq-Q.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/timeline-definition-PNZ67QCA-DOTZZxx_.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/treeView-BLDUP644-D2A9BwMa.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/treeView-BLDUP644-DeRg38Vr.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/treemap-LRROVOQU-CKI0YtvA.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/treemap-LRROVOQU-DWxQ3QgK.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/vennDiagram-CIIHVFJN-BxR_Flz7.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/vennDiagram-CIIHVFJN-CYSR8VxH.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/wardley-L42UT6IY-DoJhfL99.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/wardley-L42UT6IY-DwndHzRK.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/wardleyDiagram-YWT4CUSO-C2cPq0nQ.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/wardleyDiagram-YWT4CUSO-By2G9X0c.js +1 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/xychartDiagram-2RQKCTM6-DbBm2yQI.js → pythinker_code-0.58.0/src/pythinker_code/web/static/assets/xychartDiagram-2RQKCTM6-hEjj-Cb8.js +1 -1
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/index.html +1 -1
- pythinker_code-0.56.0/src/pythinker_code/soul/context.py +0 -436
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/architecture-7EHR7CIX-BYw92_V4.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/channel-BGX8hmrU.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/classDiagram-4FO5ZUOK-Dw4bWLQm.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/classDiagram-v2-Q7XG4LA2-Dw4bWLQm.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/eventmodeling-FCH6USID-solrKU8m.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/mermaid-VLURNSYL-DEMWXrjn.js +0 -1
- pythinker_code-0.56.0/src/pythinker_code/web/static/assets/stateDiagram-v2-BHNVJYJU-D6odN83X.js +0 -1
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/LICENSE +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/NOTICE +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/__main__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/AGENTS.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/convert.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/host.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/mcp.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/server.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/session.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/tools.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/types.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/acp/version.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/agent.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/ask.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/code_reviewer.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/coder.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/debug.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/debugger.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/explore.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/implementer.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/judge.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/plan.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/planner.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/review.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/scout.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/security_reviewer.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/default/verifier.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/agents/okabe/agent.yaml +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/app.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/approval_runtime/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/approval_runtime/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/approval_runtime/runtime.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/alibaba.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/anthropic_direct.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/browser_login_page.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/deepseek.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/github_feedback.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/kimi.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/lm_studio.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/minimax.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/moonshot.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/oauth.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/ollama.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/_shared.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/browser_flow.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/catalog.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/config_apply.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/constants.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/login.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openai/oauth_client.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/opencode_go.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/openrouter.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/platforms.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/auth/z_ai.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/agent_runner.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/ids.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/manager.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/store.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/summary.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/background/worker.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/__main__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/_lazy_group.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/dashboard.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/debug.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/export.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/info.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/mcp.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/plugin.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/review.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/secscan.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/security_scan.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/skill.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/toad.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/update.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/cli/web.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/constant.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/api/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/api/sessions.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/api/statistics.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/api/system.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/app.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/highlighted-body-OFNGDK62-BxVUIXn9.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/index-DAN_VzOP.css +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/index-DYyxzHPY.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/assets/mermaid-GHXKKRXX-BR6KjYwB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/dashboard/static/index.html +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/events.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/exception.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/execution_profiles.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/extensions.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/feedback.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/feedback_repo.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/file_restore.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/hooks/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/hooks/config.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/hooks/engine.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/hooks/events.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/hooks/runner.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/llm.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/client.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/diagnostics.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/framing.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/instance.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/manager.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/plugin_servers.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/protocol.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/recommend.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/lsp/service.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/consolidation.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/harvest.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/recall.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/recap.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/retriever.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/memory/sanitize.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/metadata.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/models_dev.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/native.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/llm.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/manager.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/notifier.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/store.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/notifications/wire.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/artifacts.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/dependency.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/directories.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/install.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/installed.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/integration.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/loader.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/manager.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/manifest.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/marketplace.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/options.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/policy.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/plugin/tool.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/project_memory.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/project_trust.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompt_templates.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/best_practices.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/compact.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/goal_continuation.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/goal_set.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/goal_wrap_up.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/init.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/prompts/learn.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/py.typed +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/scratchpad.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/session.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/session_cleanup.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/session_fork.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/session_recap.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/session_state.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/share.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skill/flow/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skill/flow/d2.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skill/flow/mermaid.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skill/lockfile.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/agent-creator/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/check-impl-against-spec/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/cleanup-audit/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/create-pr/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/customize-pythinker/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/designer-skill/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/diagnose-ci-failures/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/fix-errors/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/implement-specs/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/judge-minimum-diff/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/judge-overengineering-review/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/pr-walkthrough/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/pythinker-code-help/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/reproduce-bug-report/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/resolve-merge-conflicts/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/review-pr/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/skill-creator/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/spec-driven-implementation/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/write-product-spec/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/skills/write-tech-spec/SKILL.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/api_errors.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/approval.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/compaction.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/deliberation.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/denwarenji.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/auto_mode.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/git_status.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/goal_mode.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/inline_commands.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/lsp_diagnostics.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/orchestration.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/dynamic_injections/plan_mode.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/flow_runner.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/live_tokens.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/message.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/soul/permission.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/builder.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/codenames.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/core.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/git_context.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/output.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/registry.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/store.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/usage.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/subagents/worktree.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/config.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/crash.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/errors.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/names.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/otel.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/sentry.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/telemetry/sink.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/thinking.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/AGENTS.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/agent/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/ask_user/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/ask_user/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/handoff.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/input.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/list.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/output.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/background/stop.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/display.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/dmail/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/dmail/dmail.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/glob.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/glob.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/grep.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/grep_local.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/plan_mode.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/read.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/read.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/read_media.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/read_media.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/replace.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/replace.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/utils.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/write.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/file/write.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/goal/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/goal/update_goal.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/formatters.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/schemas.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/symbol_context.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/tool.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/lsp/tool.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/mcp_resource/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/mcp_resource/list_description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/mcp_resource/prompt_description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/mcp_resource/read_description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/memory/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/memory/memory.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/memory/routing_guard.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/enter.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/enter_description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/handoff.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/plan/heroes.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/progress/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/progress/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/recall/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/recall/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/scratchpad/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/scratchpad/scratchpad_tool.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/shell/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/shell/bash.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/shell/powershell.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/skill/_mcp_bridge.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/skill/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/suggest/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/suggest/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/test.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/think/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/think/think.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/todo/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/todo/set_todo_list.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/tool_search/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/tool_search/tool_search.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/utils.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/_allowlist.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/fetch.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/fetch.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/search.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/web/search.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/workflow/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/workflow/description.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/workflow/display.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/workflow/engine.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/worktree/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/worktree/enter_worktree.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/tools/worktree/exit_worktree.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/acp/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/color_utils.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/print/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/print/visualize.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/base.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/bash_execution.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/bordered_loader.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/diff.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/dynamic_border.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/footer.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/key_hints.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/markdown.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/messages.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/panel.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/render_utils.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/report.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/report_prose_blocks.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/report_update.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/settings_list.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/special_messages.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/components/tool_execution.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/console.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/debug.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/design_system.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/echo.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/export_import.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/glyphs.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/keyboard.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/keymap.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/audit.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/elements.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/fences.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/normalizers.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/renderer.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/markdown/streaming.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/mcp_status.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/model_picker.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/motion.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/oauth.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/placeholders.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/render_constants.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/replay.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selector.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/code_theme.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/extension.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/oauth.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/settings.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/show_images.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/theme.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/selectors/thinking.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/session_picker.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/setup.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/spacing.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/spinner_words.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/startup.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/stats.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/stats_collector.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/stats_pricing.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/statusline.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/sync_output.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/task_browser.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tips.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/_file_diff.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/_render_utils.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/agent.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/ask_user.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/background.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/bash.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/edit.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/find.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/generic.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/grep.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/implement_judge.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/lsp.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/mcp_resource.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/memory.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/plan.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/read.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/read_media.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/skill.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/smart_search.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/think.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/todo.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/tool_search.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/web.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/worktree.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/tool_renderers/write.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/update.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/update_orchestrator.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_activity.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/alibaba.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/anthropic_admin.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/base.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/deepseek.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/minimax.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/openai_admin.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/openai_chatgpt.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/opencode_go.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/openrouter.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_adapters/pythinker_ai.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/usage_render.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_approval_panel.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_btw_panel.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_dialog_shell.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_diff_live.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_input_router.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_question_panel.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_transcript.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/shell/visualize/_worklog.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/terminal_background.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/terminal_capabilities.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/adapters/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/adapters/markdown.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/adapters/task_browser.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/capabilities.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/palettes.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/pythinker_themes.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/registry.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/resolver.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/theme/spec.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/ui/tui_config.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/update_policy.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/usage_ratelimit_cache.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/aiohttp.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/aioqueue.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/artifacts.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/broadcast.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/changelog.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/clipboard.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/datetime.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/diff.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/editor.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/environment.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/envvar.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/export.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/file_filter.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/file_read_cache.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/gitignore.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/io.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/logging.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/mcp_names.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/media_limits.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/media_tags.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/message.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/path.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/proctitle.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/proxy.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/columns.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/diff_render.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/markdown.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/markdown_sample.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/markdown_sample_short.md +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/rich/syntax.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/sensitive.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/server.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/signals.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/sleep_inhibitor.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/string.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/subprocess_env.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/term.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/trust.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/utils/typing.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/api/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/api/config.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/api/open_in.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/api/sessions.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/app.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/auth.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/models.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/runner/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/runner/messages.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/runner/process.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/runner/worker.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/_headers +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/abap-CLvhMVsD.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/actionscript-3--17pq3dv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ada-C5qYipkI.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/andromeeda-vGVdxbeo.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/angular-html-BKhkKBsm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/angular-ts-CYPbMJCA.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/apache-U0d_L8uA.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/apex-CGTLDQj6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/apl-D7bENxmy.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/applescript-CCn79oCD.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ara-4CJ0cIlV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/arc-8BWbC-0s.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/array-BifhSqXX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/asciidoc-DE70LPWp.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/asm-Cmm7eHzH.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/astro-B1l9MDUT.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/aurora-x-CDeNXAV0.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/awk-BWXHIvNe.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ayu-dark-DluEY0Gj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ayu-light-C3h-C4tm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ayu-mirage-Bqwy1Gya.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ballerina-B7ZEbQpA.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bat-Bo4NYOV-.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/beancount-D-usSTwE.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/berry-DKpUyyne.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bibtex-Ci_nEsc7.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bicep-CUHmPFLl.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bird2-C2hNVINV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/blade-BlkqRXu6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bootstrap-BhLLvBaE.css +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/bsl-BkkzgIyY.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/c-PpPxyn8g.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/c3-CnJL0r0V.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cadence-CQ2zXKGN.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cairo-DLTphjLi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/catppuccin-frappe-3VR1Za6u.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/catppuccin-latte-DwIHMF0Q.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/catppuccin-macchiato-DYnBP6_5.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/catppuccin-mocha-DYhrFGRu.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/character-entities-legacy-Wut6vMuj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chevrons-up-down-Dwo0Il5v.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-4BX2VUAB-C0kf5ycP.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-55IACEB6-QyFAFTWp.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-BSJP7CBP-DIpfLhEz.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-Cyuzqnbw.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-FMBD7UC4-C9D6P7Uq.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-NNHCCRGN-DmZbXBJw.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-QZHKN3VN-CyVdgm44.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/chunk-XPW4576I-ru3A962d.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/clarity-SemFz856.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/clojure-DqKBuwfJ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cmake-Bj61d0ZC.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cobol-BoXxFQjh.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/codeowners-C8r90Shi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/codeql-oeQT6MSM.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/coffee-B5TREocO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/common-lisp-Cv5bFMCO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/coq-BrsZFFmf.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cose-bilkent-S5V4N54A-PjRvINHM.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cpp-CVIk4zoB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/crystal-CvUuUt6_.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/csharp-Ct8U2NOr.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/css-D7o5g6xi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/csv-Dx-8-gkx.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cue-CE9AQfxI.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cypher-ClKdZ_lG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/cytoscape.esm-jXPf2pm4.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/d-qD-0Kul2.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dagre-Uyq5yTtG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dark-plus-Cs2F2srj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dart-DkHntEIa.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dax-BkyTk9wS.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/defaultLocale-C8Fc0cco.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/desktop-Dlh5hvp9.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/diff-BDNflWRl.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/diff-Dvab7kiv.css +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/diff-woXpYk--.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dist-B7jLwIkG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dist-D4B_Bs5p.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dist-reBDvVlc.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/docker-IyjqRm3v.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dotenv-_5a1GRtc.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dracula-BHWKrbxM.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dracula-soft-5eyTD99u.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/dream-maker-DW3nJb8Q.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/edge-CmXZi-az.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/elixir-BoRIkjDi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/elm-Cm7sFdI1.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/emacs-lisp-C9PiwqqW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/erb-DuMAGb6i.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/erlang-Cphh6RMH.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/everforest-dark-sB-x3p7T.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/everforest-light-Df2xbC6M.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fennel-DQxkIbk2.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fish-BJitypiv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fluent-C03EYrpw.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fortran-fixed-form-DEKoE2YW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fortran-free-form-CYNrtFtB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/fsharp-D13ZGOAj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gdresource-C0sCabJj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gdscript-Cp2uCuqX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gdshader-CBce3t8t.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/genie-CV2tkWYe.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gherkin-DExj1W_8.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/git-commit-BSykSTBG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/git-rebase-D2tSwjJb.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-dark-C-LZuMrd.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-dark-default-DXG-b-1a.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-dark-dimmed-Bx1FflLF.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-dark-high-contrast-B_tTalzw.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-light-EUqPIrTm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-light-default-BXViO-2h.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/github-light-high-contrast-B68TUdTA.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gleam-CSRkHgEL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/glimmer-js--VVKNatA.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/glimmer-ts-Bfa_wiNC.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/glsl-MPwHyiXQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gn-ilITqXS6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gnuplot-7GGW24-e.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/go-BJwz_mda.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/graphlib-C22s9MDV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/graphql-NW854Khs.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/groovy-CacY0gHj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-dark-hard-C820rvS2.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-dark-medium-BPjhmG05.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-dark-soft-MrdJrrXF.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-light-hard-BC_s9l72.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-light-medium-BAWPOn9u.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/gruvbox-light-soft-BSMLrYjP.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hack-CSl79E5u.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/haml-Dmb1YmHj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/handlebars-Du8DtnRB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/haskell-D8IpX4py.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/haxe-OTjmBuCE.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hcl-Dh228itO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hjson-CxZEssPk.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hlsl-Cvrh5tZx.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/horizon-CE9ld1lL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/horizon-bright-Br1oVSNq.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/houston-CsvMBhTu.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/html-Kpl3bQKd.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/html-derivative-BEEWNZ8Y.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/http-HvMG3K54.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hurl-CLh1t2ES.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hxml-B0Qn7Nwc.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/hy-CZbG8q4J.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/imba-DsUTQ-LC.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ini-B5eOa1yu.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/init-D6jRqBbL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/java-Cst_eZTE.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/javascript-i_rUTyCW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jinja-CaXggA6f.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jison-D9Fg2JgN.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/json-DS5j4FfK.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/json5-BR5RXkoi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jsonc-CYpm1nAK.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jsonl-CmCQp5Yx.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jsonnet-CJTPZ8u_.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jssm-DXw9l8Rf.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jsx-CFyhNHav.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/jsx-runtime-wSvXh6gi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/julia-R8NNmfP1.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/just-BhhHYlS8.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kanagawa-dragon-CXtmUGW6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kanagawa-lotus-BN08jTvb.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kanagawa-wave-CTweb8Dz.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/katex-BGaDVET_.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/katex-BorAY7qD.css +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kdl-CsD5j6eV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kotlin-DhhofPvG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/kusto-BUv0MjJC.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/laserwave-C_8bwKvT.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/latex-D5k_uhWv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/lean-CewbzKMR.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/less-DVTAwKKz.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/lib-BLxG8W6T.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/libesm-8-2luV-1.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/light-plus-DVQuIRkW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/linear-BktLjFGX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/liquid-Q0_hzjly.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/llvm-Cm23YOpf.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/log-BNLmms1o.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/logo-Cluzi2Zq.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/lua-VoGSg0xb.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/luau-CNKltnaQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/make-Dixweg8N.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/markdown-BYOwaDjH.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/marked.esm-DLdcrU5H.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/marko-D_aeUD__.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/material-theme-Bm3Qr25_.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/material-theme-darker-2IIEA8gg.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/material-theme-lighter-uhdI0v04.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/material-theme-ocean-CHQ94UKr.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/material-theme-palenight-B5W6OYN7.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/matlab-D7qyCx1q.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/mdc-BSifqehP.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/mdx-DQZ5AkYe.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/mermaid-Bk4SNUv9.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/min-dark-BSWPekZh.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/min-light-DDpmG2fV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/mipsasm-BMqwQI7S.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/mojo-BgCJLMeH.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/monokai-CdkpiU2Y.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/moonbit-CaWjb8XO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/move-B1IS1UjX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/narrat-_X_XdTYD.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nextflow-Bbiyy34d.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nextflow-groovy-Dc_ddanL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nginx-CgHaWcsO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/night-owl-DhmEMT88.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/night-owl-light-eJ-hLW7d.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nim-BuixXxPS.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nix-IvuFDN5E.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nord-Cb4Vim4T.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/nushell-DcLAeLz5.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/objective-c-D1A_Heim.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/objective-cpp-BsSzOQcm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ocaml-O90oeIOV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/odin-B1RWQWA5.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/one-dark-pro-CLwyXe_n.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/one-light-D7Lr4KcI.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/openscad-BUDT5pXO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ordinal-hYBb2elL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/pascal-4ZHwLPI5.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/path-BWPyau1x.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/perl-BLMySlFJ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/php-Czf_fybR.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/pkl-ot-7Btpt.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/plastic-DQwYfKfQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/plsql-DGHpHOYJ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/po-BiJDBrnU.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/poimandres-DRFjx7u4.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/polar-C7UOKdEL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/postcss-BXeXVLqQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/powerquery-DNMTfnFr.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/powershell-DshXNtvi.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/prisma-BsRQq5mF.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/prolog-iXnhIJG7.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/proto-DB4EqR-F.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/pug-CsZglf8T.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/puppet-CDv2pdJW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/purescript-9MfHhQsQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/python-gzcpVVnB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/qml-DcW_sT3t.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/qmldir-DCQb3MpD.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/qss-Fe1Jh2GI.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/r-D2d3McyU.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/racket-DcIDlBhZ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/raku-B3gFvitq.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/razor-oFpUW61Z.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/red-CJ3rzSJv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/reg-CRGYupPL.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/regexp-Bu0flJgP.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rel-BtDbiS_P.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/riscv-Ckw8ddFX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ron-VUp2lXgN.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rose-pine-BthvhNj6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rose-pine-dawn-Dg85fqjY.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rose-pine-moon-hon4tzzS.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rosmsg-CAekHB0j.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rough.esm-CSKSodPl.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rst-U6Eu7ipE.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ruby-CUQsVT6d.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/rust-Cfkwpbl8.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/sas-CNBFrLhc.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/sass-DXrisJhu.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/scala-DKOlJaKm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/scheme-DQCgrYNe.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/scss-CPnU-uuv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/sdbl-bTVj8UrX.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/shaderlab-TOUzSsQk.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/shellscript-BbTp1yjG.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/shellsession-BmAC8SMF.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/slack-dark-DnToyrRv.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/slack-ochin-B2OO5cIa.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/smalltalk-B16xEiuN.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/snazzy-light-4G7pJPwS.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/solarized-dark-DV17i1UV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/solarized-light-DSh2HLQt.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/solidity-CKzVLygQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/soy-CdbyEXp6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/space-separated-tokens-DpjE5PGy.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/sparql-D_iOobhT.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/splunk-BC2Px7Mm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/sql-hpBkusIy.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/src-D-NMWEou.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ssh-config-BgfXC-Er.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/stata-DVbvk3qH.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/stylus-B6D30XZt.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/surrealql-DxccxuMd.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/svelte-DzNm5V2w.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/swift-DonLKvLd.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/synthwave-84-nFMaYfgc.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/system-verilog-DJ5XKQeo.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/systemd-BxMlprV5.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/talonscript-CohzipZa.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tasl-DMoTqEGO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tcl-CZd0xW_V.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/templ-CsM0tTsw.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/terraform-DswuEJGm.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tex-B0f_hYr8.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tokyo-night-oM2G3aXe.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/toml-CcmNWLt0.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/ts-tags-Bf-FGGvT.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tsv-sltzmVWM.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/tsx-DFvk7AwW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/turtle-ByJddavk.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/twig-VJ4-Ntm0.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/typescript-DHTLvXzV.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/typespec-B88KGewJ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/typst-DI99ib-x.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/v-DETTlOr0.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/v4-DqR3yzBO.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vala-zf12oZj6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vb-Djn5o6TS.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/verilog-CiiDBU1e.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vesper-D5bVUKB1.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vhdl-BroJfC0k.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/viml-DvXPmvsu.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vitesse-black-fwtXNY1n.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vitesse-dark-BZCL-v6S.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vitesse-light-VbXTXTou.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vue-D3dSYZKz.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vue-html-DQch_7VQ.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vue-vine-B67Dz05t.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/vyper-CgoNMtux.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wasm-BnjxR4X6.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wasm-ByWQv1Qj.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wenyan-C8pVoKbM.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wgsl-BsKzXJz4.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wikitext-ClFFjSW2.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wit-DdvCle-K.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/wolfram-DLL8P-h_.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/xml-C33zriiW.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/xsl-BFS2wyMt.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/yaml-w0rMsuN4.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/zenscript-BnlCZFoB.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/assets/zig-CMLA9XwU.js +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/apple-touch-icon.png +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/arctecture.webp +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/bimi-logo.svg +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/favicon.ico +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/dm-sans-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/instrument-sans-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/instrument-serif-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-italic-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/libre-baskerville-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin-ext.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/fonts/roboto-latin.woff2 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/icon-192.png +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/icon-512.png +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/icon.svg +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/logo.png +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/pythinker_animated.svg +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/brand/robots.txt +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/install.ps1 +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/install.sh +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/static/logo.png +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/store/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/web/store/sessions.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/__init__.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/file.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/jsonrpc.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/protocol.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/root_hub.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/serde.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.0}/src/pythinker_code/wire/server.py +0 -0
- {pythinker_code-0.56.0 → pythinker_code-0.58.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.58.0
|
|
4
4
|
Summary: Pythinker — an agentic CLI developed by Pythoughts-labs.
|
|
5
5
|
Keywords: cli,agent,ai,coding-assistant,llm,claude,openai,terminal
|
|
6
6
|
Author: Pythoughts-labs
|
|
@@ -115,13 +115,13 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
|
|
|
115
115
|
|
|
116
116
|
---
|
|
117
117
|
|
|
118
|
-
## 🆕 What's New in 0.
|
|
118
|
+
## 🆕 What's New in 0.58.0
|
|
119
119
|
|
|
120
|
-
- **
|
|
121
|
-
- **
|
|
122
|
-
- **
|
|
120
|
+
- **Agent core deepened with an observable request-assembly path.** Provider handoff, prompt ordering, and context persistence now run through explicit compatibility contracts, conversation history updates are transactional (atomic replacement with cancellation and rollback), and agent/skill definitions resolve through one source-aware catalogue instead of scattered lookups.
|
|
121
|
+
- **Agent-spec loading is more defensive and truthful.** Subagent `path`, `extend`, and `system_prompt_path` references that resolve outside their spec's directory are now rejected instead of loaded, and malformed frontmatter parsing errors are no longer misreported as harmless skips.
|
|
122
|
+
- **Thinking and subagent activity render cleanly in the terminal.** Live reasoning previews render complete Markdown without exposing stray HTML comments, and activity-tree rows stay visually stable during long-running turns.
|
|
123
123
|
|
|
124
|
-
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.
|
|
124
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.58.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
|
|
125
125
|
|
|
126
126
|
|
|
127
127
|
---
|
|
@@ -191,6 +191,22 @@ Optional web frontend and visualization frontend ship alongside the CLI for rich
|
|
|
191
191
|
|
|
192
192
|
Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinker models, or your own keys.
|
|
193
193
|
|
|
194
|
+
</td>
|
|
195
|
+
</tr>
|
|
196
|
+
<tr>
|
|
197
|
+
<td width="50%" valign="top">
|
|
198
|
+
|
|
199
|
+
### 📊 Local Benchmarks
|
|
200
|
+
|
|
201
|
+
Run `/benchmark` to execute deterministic local coding tasks through the active Pythinker session, with replayable artifacts and verification reports.
|
|
202
|
+
|
|
203
|
+
</td>
|
|
204
|
+
<td width="50%" valign="top">
|
|
205
|
+
|
|
206
|
+
### 🧪 SWE-Style Fixtures
|
|
207
|
+
|
|
208
|
+
Run trusted local JSONL fixtures with `/benchmark:swe --dataset <path> --trusted-dataset true` when you want SWE-style task inputs without a hosted evaluator.
|
|
209
|
+
|
|
194
210
|
</td>
|
|
195
211
|
</tr>
|
|
196
212
|
</table>
|
|
@@ -211,7 +227,7 @@ matches your OS — no Python, Node, or `uv` prerequisite.
|
|
|
211
227
|
|
|
212
228
|
| Platform | Recommended install | Artifact source |
|
|
213
229
|
|---|---|---|
|
|
214
|
-
| **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.
|
|
230
|
+
| **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.58.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
|
|
215
231
|
| **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> / <img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux">** | `curl -fsSL https://pythinker.com/install.sh \| bash` | native tarball from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
|
|
216
232
|
| **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install Pythoughts-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
|
|
217
233
|
| **🐳 Docker** | `docker run --rm -it ghcr.io/pythoughts-labs/pythinker-code` | GHCR multi-arch image |
|
|
@@ -239,10 +255,11 @@ pythinker # start the interactive TUI
|
|
|
239
255
|
|
|
240
256
|
### 🪟 Windows — native installer
|
|
241
257
|
|
|
242
|
-
`PythinkerSetup-0.
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
258
|
+
`PythinkerSetup-0.58.0.exe` is an Inno Setup wizard. Release builds are signed
|
|
259
|
+
when Authenticode secrets are configured in CI; otherwise the installer ships
|
|
260
|
+
unsigned. Installs per-user into `%LOCALAPPDATA%\Programs\Pythinker`, registers
|
|
261
|
+
`pythinker` on your user PATH (`HKCU\Environment`), broadcasts
|
|
262
|
+
`WM_SETTINGCHANGE` so new shells see the change. **No UAC prompt.**
|
|
246
263
|
|
|
247
264
|
```powershell
|
|
248
265
|
# One-line install (downloads the native .exe, verifies SHA-256, runs per-user)
|
|
@@ -250,24 +267,24 @@ irm https://pythinker.com/install.ps1 | iex
|
|
|
250
267
|
|
|
251
268
|
# Or manually download the installer + checksum from the Releases page,
|
|
252
269
|
# verify with Get-FileHash, then run:
|
|
253
|
-
.\PythinkerSetup-0.
|
|
270
|
+
.\PythinkerSetup-0.58.0.exe
|
|
254
271
|
|
|
255
272
|
# Open a fresh PowerShell
|
|
256
273
|
pythinker --version
|
|
257
274
|
```
|
|
258
275
|
|
|
259
|
-
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.
|
|
276
|
+
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.58.0.exe /ALLUSERS`
|
|
260
277
|
installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
|
|
261
278
|
|
|
262
279
|
**Upgrade:** `pythinker update` from inside the running app — it downloads
|
|
263
|
-
the newest installer, verifies SHA-256, and launches the
|
|
280
|
+
the newest installer, verifies SHA-256, and launches the Inno installer
|
|
264
281
|
with visible progress (`/SILENT /NORESTART /CURRENTUSER /CLOSEAPPLICATIONS /NORESTARTAPPLICATIONS`).
|
|
265
282
|
|
|
266
283
|
**Uninstall:** Apps & Features → *Pythinker Code* → Uninstall reverts both
|
|
267
284
|
the files and the PATH edit.
|
|
268
285
|
|
|
269
|
-
> 🛡 **First-launch SmartScreen warning** —
|
|
270
|
-
>
|
|
286
|
+
> 🛡 **First-launch SmartScreen warning** — Until Authenticode secrets are
|
|
287
|
+
> configured in CI for a release, the installer ships unsigned and Windows shows
|
|
271
288
|
> *"Windows protected your PC."* Click **More info → Run anyway**. Use the
|
|
272
289
|
> published `.sha256` as your integrity check until signing comes online.
|
|
273
290
|
|
|
@@ -314,26 +331,26 @@ attached to every GitHub Release.
|
|
|
314
331
|
|
|
315
332
|
```sh
|
|
316
333
|
# Debian / Ubuntu (x86_64)
|
|
317
|
-
sudo dpkg -i pythinker-code_0.
|
|
334
|
+
sudo dpkg -i pythinker-code_0.58.0_amd64.deb
|
|
318
335
|
sudo apt-get install -f # only if dpkg reports missing deps
|
|
319
336
|
|
|
320
337
|
# Debian / Ubuntu (ARM64)
|
|
321
|
-
sudo dpkg -i pythinker-code_0.
|
|
338
|
+
sudo dpkg -i pythinker-code_0.58.0_arm64.deb
|
|
322
339
|
|
|
323
340
|
# Fedora / RHEL / openSUSE (x86_64)
|
|
324
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
325
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
326
|
-
sha256sum -c pythinker-code-0.
|
|
341
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.x86_64.rpm
|
|
342
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.x86_64.rpm.sha256
|
|
343
|
+
sha256sum -c pythinker-code-0.58.0.x86_64.rpm.sha256
|
|
327
344
|
# Fedora / RHEL:
|
|
328
|
-
sudo dnf install ./pythinker-code-0.
|
|
345
|
+
sudo dnf install ./pythinker-code-0.58.0.x86_64.rpm
|
|
329
346
|
# openSUSE:
|
|
330
|
-
sudo zypper install ./pythinker-code-0.
|
|
347
|
+
sudo zypper install ./pythinker-code-0.58.0.x86_64.rpm
|
|
331
348
|
|
|
332
349
|
# Fedora / RHEL (aarch64)
|
|
333
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
334
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
335
|
-
sha256sum -c pythinker-code-0.
|
|
336
|
-
sudo dnf install ./pythinker-code-0.
|
|
350
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.aarch64.rpm
|
|
351
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.aarch64.rpm.sha256
|
|
352
|
+
sha256sum -c pythinker-code-0.58.0.aarch64.rpm.sha256
|
|
353
|
+
sudo dnf install ./pythinker-code-0.58.0.aarch64.rpm
|
|
337
354
|
```
|
|
338
355
|
|
|
339
356
|
Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
|
|
@@ -342,8 +359,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
|
|
|
342
359
|
**Verify before install:**
|
|
343
360
|
|
|
344
361
|
```sh
|
|
345
|
-
sha256sum -c pythinker-code_0.
|
|
346
|
-
sha256sum -c pythinker-code-0.
|
|
362
|
+
sha256sum -c pythinker-code_0.58.0_amd64.deb.sha256 # Debian/Ubuntu
|
|
363
|
+
sha256sum -c pythinker-code-0.58.0.x86_64.rpm.sha256 # Fedora/RHEL
|
|
347
364
|
```
|
|
348
365
|
|
|
349
366
|
**Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
|
|
@@ -683,6 +700,7 @@ Pythinker is a small, extensible runtime — not a monolith. Build on it.
|
|
|
683
700
|
| 🌊 **Flows** | `/flow:<name>` executes bundled prompt flows | bundled & user-defined |
|
|
684
701
|
| 🪝 **Hooks** | Observe or block tool execution; integrate policy or automation | hook events API |
|
|
685
702
|
| 🧩 **Plugins** | Installable extension packages | `pythinker plugin` |
|
|
703
|
+
| 📊 **Benchmarks** | Deterministic local coding tasks with verification reports | `/benchmark`, `src/pythinker_code/benchmark/` |
|
|
686
704
|
|
|
687
705
|
---
|
|
688
706
|
|
|
@@ -50,13 +50,13 @@ It speaks the [**Agent Client Protocol (ACP)**](https://github.com/agentclientpr
|
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
## 🆕 What's New in 0.
|
|
53
|
+
## 🆕 What's New in 0.58.0
|
|
54
54
|
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
55
|
+
- **Agent core deepened with an observable request-assembly path.** Provider handoff, prompt ordering, and context persistence now run through explicit compatibility contracts, conversation history updates are transactional (atomic replacement with cancellation and rollback), and agent/skill definitions resolve through one source-aware catalogue instead of scattered lookups.
|
|
56
|
+
- **Agent-spec loading is more defensive and truthful.** Subagent `path`, `extend`, and `system_prompt_path` references that resolve outside their spec's directory are now rejected instead of loaded, and malformed frontmatter parsing errors are no longer misreported as harmless skips.
|
|
57
|
+
- **Thinking and subagent activity render cleanly in the terminal.** Live reasoning previews render complete Markdown without exposing stray HTML comments, and activity-tree rows stay visually stable during long-running turns.
|
|
58
58
|
|
|
59
|
-
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.
|
|
59
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.58.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
---
|
|
@@ -126,6 +126,22 @@ Optional web frontend and visualization frontend ship alongside the CLI for rich
|
|
|
126
126
|
|
|
127
127
|
Swap providers and models per-session: `--model openai/gpt-5.5`, hosted Pythinker models, or your own keys.
|
|
128
128
|
|
|
129
|
+
</td>
|
|
130
|
+
</tr>
|
|
131
|
+
<tr>
|
|
132
|
+
<td width="50%" valign="top">
|
|
133
|
+
|
|
134
|
+
### 📊 Local Benchmarks
|
|
135
|
+
|
|
136
|
+
Run `/benchmark` to execute deterministic local coding tasks through the active Pythinker session, with replayable artifacts and verification reports.
|
|
137
|
+
|
|
138
|
+
</td>
|
|
139
|
+
<td width="50%" valign="top">
|
|
140
|
+
|
|
141
|
+
### 🧪 SWE-Style Fixtures
|
|
142
|
+
|
|
143
|
+
Run trusted local JSONL fixtures with `/benchmark:swe --dataset <path> --trusted-dataset true` when you want SWE-style task inputs without a hosted evaluator.
|
|
144
|
+
|
|
129
145
|
</td>
|
|
130
146
|
</tr>
|
|
131
147
|
</table>
|
|
@@ -146,7 +162,7 @@ matches your OS — no Python, Node, or `uv` prerequisite.
|
|
|
146
162
|
|
|
147
163
|
| Platform | Recommended install | Artifact source |
|
|
148
164
|
|---|---|---|
|
|
149
|
-
| **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.
|
|
165
|
+
| **🪟 Windows** | `irm https://pythinker.com/install.ps1 \| iex` | `PythinkerSetup-0.58.0.exe` from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
|
|
150
166
|
| **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> / <img src="https://img.shields.io/badge/-Linux-FCC624?style=flat-square&logo=linux&logoColor=black" alt="Linux">** | `curl -fsSL https://pythinker.com/install.sh \| bash` | native tarball from [Releases](https://github.com/Pythoughts-labs/pythinker-code/releases/latest) |
|
|
151
167
|
| **<img src="https://img.shields.io/badge/-macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS"> — Homebrew** | `brew install Pythoughts-labs/pythinker/pythinker-code` | auto-published Homebrew tap |
|
|
152
168
|
| **🐳 Docker** | `docker run --rm -it ghcr.io/pythoughts-labs/pythinker-code` | GHCR multi-arch image |
|
|
@@ -174,10 +190,11 @@ pythinker # start the interactive TUI
|
|
|
174
190
|
|
|
175
191
|
### 🪟 Windows — native installer
|
|
176
192
|
|
|
177
|
-
`PythinkerSetup-0.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
193
|
+
`PythinkerSetup-0.58.0.exe` is an Inno Setup wizard. Release builds are signed
|
|
194
|
+
when Authenticode secrets are configured in CI; otherwise the installer ships
|
|
195
|
+
unsigned. Installs per-user into `%LOCALAPPDATA%\Programs\Pythinker`, registers
|
|
196
|
+
`pythinker` on your user PATH (`HKCU\Environment`), broadcasts
|
|
197
|
+
`WM_SETTINGCHANGE` so new shells see the change. **No UAC prompt.**
|
|
181
198
|
|
|
182
199
|
```powershell
|
|
183
200
|
# One-line install (downloads the native .exe, verifies SHA-256, runs per-user)
|
|
@@ -185,24 +202,24 @@ irm https://pythinker.com/install.ps1 | iex
|
|
|
185
202
|
|
|
186
203
|
# Or manually download the installer + checksum from the Releases page,
|
|
187
204
|
# verify with Get-FileHash, then run:
|
|
188
|
-
.\PythinkerSetup-0.
|
|
205
|
+
.\PythinkerSetup-0.58.0.exe
|
|
189
206
|
|
|
190
207
|
# Open a fresh PowerShell
|
|
191
208
|
pythinker --version
|
|
192
209
|
```
|
|
193
210
|
|
|
194
|
-
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.
|
|
211
|
+
**Per-machine install** (IT-managed boxes): `.\PythinkerSetup-0.58.0.exe /ALLUSERS`
|
|
195
212
|
installs to `%ProgramFiles%\Pythinker` and writes PATH to HKLM (requires admin).
|
|
196
213
|
|
|
197
214
|
**Upgrade:** `pythinker update` from inside the running app — it downloads
|
|
198
|
-
the newest installer, verifies SHA-256, and launches the
|
|
215
|
+
the newest installer, verifies SHA-256, and launches the Inno installer
|
|
199
216
|
with visible progress (`/SILENT /NORESTART /CURRENTUSER /CLOSEAPPLICATIONS /NORESTARTAPPLICATIONS`).
|
|
200
217
|
|
|
201
218
|
**Uninstall:** Apps & Features → *Pythinker Code* → Uninstall reverts both
|
|
202
219
|
the files and the PATH edit.
|
|
203
220
|
|
|
204
|
-
> 🛡 **First-launch SmartScreen warning** —
|
|
205
|
-
>
|
|
221
|
+
> 🛡 **First-launch SmartScreen warning** — Until Authenticode secrets are
|
|
222
|
+
> configured in CI for a release, the installer ships unsigned and Windows shows
|
|
206
223
|
> *"Windows protected your PC."* Click **More info → Run anyway**. Use the
|
|
207
224
|
> published `.sha256` as your integrity check until signing comes online.
|
|
208
225
|
|
|
@@ -249,26 +266,26 @@ attached to every GitHub Release.
|
|
|
249
266
|
|
|
250
267
|
```sh
|
|
251
268
|
# Debian / Ubuntu (x86_64)
|
|
252
|
-
sudo dpkg -i pythinker-code_0.
|
|
269
|
+
sudo dpkg -i pythinker-code_0.58.0_amd64.deb
|
|
253
270
|
sudo apt-get install -f # only if dpkg reports missing deps
|
|
254
271
|
|
|
255
272
|
# Debian / Ubuntu (ARM64)
|
|
256
|
-
sudo dpkg -i pythinker-code_0.
|
|
273
|
+
sudo dpkg -i pythinker-code_0.58.0_arm64.deb
|
|
257
274
|
|
|
258
275
|
# Fedora / RHEL / openSUSE (x86_64)
|
|
259
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
260
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
261
|
-
sha256sum -c pythinker-code-0.
|
|
276
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.x86_64.rpm
|
|
277
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.x86_64.rpm.sha256
|
|
278
|
+
sha256sum -c pythinker-code-0.58.0.x86_64.rpm.sha256
|
|
262
279
|
# Fedora / RHEL:
|
|
263
|
-
sudo dnf install ./pythinker-code-0.
|
|
280
|
+
sudo dnf install ./pythinker-code-0.58.0.x86_64.rpm
|
|
264
281
|
# openSUSE:
|
|
265
|
-
sudo zypper install ./pythinker-code-0.
|
|
282
|
+
sudo zypper install ./pythinker-code-0.58.0.x86_64.rpm
|
|
266
283
|
|
|
267
284
|
# Fedora / RHEL (aarch64)
|
|
268
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
269
|
-
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.
|
|
270
|
-
sha256sum -c pythinker-code-0.
|
|
271
|
-
sudo dnf install ./pythinker-code-0.
|
|
285
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.aarch64.rpm
|
|
286
|
+
curl -LO https://github.com/Pythoughts-labs/pythinker-code/releases/download/v0.58.0/pythinker-code-0.58.0.aarch64.rpm.sha256
|
|
287
|
+
sha256sum -c pythinker-code-0.58.0.aarch64.rpm.sha256
|
|
288
|
+
sudo dnf install ./pythinker-code-0.58.0.aarch64.rpm
|
|
272
289
|
```
|
|
273
290
|
|
|
274
291
|
Both packages drop a small `/usr/bin/pythinker` launcher that execs the real
|
|
@@ -277,8 +294,8 @@ binary under `/usr/lib/pythinker/`, so your `$PATH` stays tidy.
|
|
|
277
294
|
**Verify before install:**
|
|
278
295
|
|
|
279
296
|
```sh
|
|
280
|
-
sha256sum -c pythinker-code_0.
|
|
281
|
-
sha256sum -c pythinker-code-0.
|
|
297
|
+
sha256sum -c pythinker-code_0.58.0_amd64.deb.sha256 # Debian/Ubuntu
|
|
298
|
+
sha256sum -c pythinker-code-0.58.0.x86_64.rpm.sha256 # Fedora/RHEL
|
|
282
299
|
```
|
|
283
300
|
|
|
284
301
|
**Upgrade:** download the new `.deb`/`.rpm` from Releases and `dpkg -i` /
|
|
@@ -618,6 +635,7 @@ Pythinker is a small, extensible runtime — not a monolith. Build on it.
|
|
|
618
635
|
| 🌊 **Flows** | `/flow:<name>` executes bundled prompt flows | bundled & user-defined |
|
|
619
636
|
| 🪝 **Hooks** | Observe or block tool execution; integrate policy or automation | hook events API |
|
|
620
637
|
| 🧩 **Plugins** | Installable extension packages | `pythinker plugin` |
|
|
638
|
+
| 📊 **Benchmarks** | Deterministic local coding tasks with verification reports | `/benchmark`, `src/pythinker_code/benchmark/` |
|
|
621
639
|
|
|
622
640
|
---
|
|
623
641
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pythinker-code"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.58.0"
|
|
4
4
|
description = "Pythinker — an agentic CLI developed by Pythoughts-labs."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -76,6 +76,10 @@ dev = [
|
|
|
76
76
|
"pytest>=9.0.3",
|
|
77
77
|
"pytest-asyncio>=1.3.0",
|
|
78
78
|
"pytest-cov>=6.0",
|
|
79
|
+
# Pure-Python VT100/xterm emulator: PTY UI tests feed raw terminal bytes to
|
|
80
|
+
# a virtual screen so they can assert on the *rendered* frame (catching
|
|
81
|
+
# incomplete-erase "ghost" rows), not just the byte stream.
|
|
82
|
+
"pyte>=0.8.2",
|
|
79
83
|
# Pinned: ruff 0.15's formatter reflow fails `make check`. Unpin once the
|
|
80
84
|
# formatting churn is resolved. Mirrored as a Dependabot ignore in
|
|
81
85
|
# .github/dependabot.yml.
|
|
@@ -15,6 +15,79 @@ GitHub Releases page; `0.8.0` is the new starting line.
|
|
|
15
15
|
|
|
16
16
|
## Unreleased
|
|
17
17
|
|
|
18
|
+
## 0.58.0 (2026-07-11)
|
|
19
|
+
|
|
20
|
+
- **Agent-spec loading is more defensive and truthful.** Subagent `path`, `extend`, and
|
|
21
|
+
`system_prompt_path` references that resolve outside their spec's directory (or the built-in
|
|
22
|
+
agents directory) are now rejected instead of loaded, and the markdown agent catalogue no longer
|
|
23
|
+
reclassifies an unexpected parser error as a harmless "invalid field" skip — only genuinely
|
|
24
|
+
malformed frontmatter is skipped.
|
|
25
|
+
- **Thinking and subagent activity now render cleanly in the terminal.** Live reasoning previews
|
|
26
|
+
render complete Markdown without exposing top-level HTML comments, activity-tree rows remain
|
|
27
|
+
visually stable, and the coral shimmer is reserved for the active verb spinner.
|
|
28
|
+
- **Agent request compatibility is now executable and reviewable.** Provider handoff,
|
|
29
|
+
prompt ordering, persisted-versus-effective history, context JSONL restoration,
|
|
30
|
+
agent projections, and Toolset lifecycle behavior now have explicit compatibility
|
|
31
|
+
contracts guarding future agent-core changes.
|
|
32
|
+
- **Skill discovery is bounded without making skills unreachable.** Pythinker now
|
|
33
|
+
searches one deterministic `SkillCatalog`, keeps exhaustive exact-name resolution,
|
|
34
|
+
and sends only task-relevant candidates to the model within an 8,000-character
|
|
35
|
+
request budget. The exhaustive `Runtime.skills` mapping remains available during
|
|
36
|
+
the compatibility window.
|
|
37
|
+
- **Agent requests now have one observable assembly path.** Required guidance fails
|
|
38
|
+
closed, optional guidance reports sanitized degradation outcomes, and the new
|
|
39
|
+
`/prompt-manifest` command explains the latest request composition without storing
|
|
40
|
+
raw prompts, user text, or provenance paths.
|
|
41
|
+
- **Conversation history updates are transactional.** Normal appends persist before
|
|
42
|
+
changing memory, while compaction, pruning, revert, and clear flows use atomic
|
|
43
|
+
replacement with coherent cancellation and rollback behavior. Concurrent revert
|
|
44
|
+
conflicts now stop after a bounded retry budget instead of starving indefinitely.
|
|
45
|
+
Existing JSONL records and restoration behavior remain compatible.
|
|
46
|
+
- **Agent definitions now resolve through one source-aware catalogue.** YAML and
|
|
47
|
+
Markdown definitions share deterministic precedence, collision diagnostics, and
|
|
48
|
+
safe provenance handling. Unknown fields warn in this release, become errors in
|
|
49
|
+
the following minor release, and the `LaborMarket`, `AgentTypeDefinition`, and
|
|
50
|
+
generated-wrapper adapters remain through that strict-default release.
|
|
51
|
+
- **Tool execution and MCP lifecycle behavior now have deterministic fault coverage.**
|
|
52
|
+
Publication rebuilds preserve the previous MCP tool registry if registration
|
|
53
|
+
fails. Characterization crossed the execution-overhead threshold, but a controlled
|
|
54
|
+
private extraction measured slightly worse and was reverted, so
|
|
55
|
+
`PythinkerToolset` remains the implementation boundary.
|
|
56
|
+
- **Agent-core seams hardened from review.** Persisted usage/checkpoint records reject
|
|
57
|
+
boolean and negative token counts, `update_token_count` validates at the boundary, a
|
|
58
|
+
temporary system-prompt descriptor is closed if `fdopen` fails, request finalization
|
|
59
|
+
surfaces every provider acknowledgement failure, a failed skill projection is always
|
|
60
|
+
recorded as failed (never blurred to not-applicable), and request-assembly telemetry no
|
|
61
|
+
longer emits unbounded per-request token values as metric attributes.
|
|
62
|
+
|
|
63
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.58.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
|
|
64
|
+
|
|
65
|
+
## 0.57.0 (2026-07-05)
|
|
66
|
+
|
|
67
|
+
- **No more ghost/duplicate input prompt while the agent works.** After
|
|
68
|
+
submitting a prompt, the input card no longer fossilizes above the stream as
|
|
69
|
+
a second, ghostly prompt. The prompt bar and top border now stay visible
|
|
70
|
+
through turn-start and lazy-load frames, and running-agent output renders
|
|
71
|
+
through a stable diff-rendered scene (ported from Pi) so the input card no
|
|
72
|
+
longer jumps. An experimental Focus TUI mode (`tui.focus_mode`) pins the
|
|
73
|
+
composer and hides file activity behind a compact live shelf for a cleaner
|
|
74
|
+
fullscreen view, and active subagent tool work now surfaces in the pinned
|
|
75
|
+
status tail instead of a generic composing spinner.
|
|
76
|
+
- **Added a native `/benchmark` command suite.** Run deterministic local
|
|
77
|
+
Pythinker model evaluations with bundled smoke tasks and SWE-style JSONL
|
|
78
|
+
tasks (`/benchmark:swe`), plus `/benchmark compare`, `/benchmark export`,
|
|
79
|
+
and `/benchmark discover` actions that produce replayable artifacts,
|
|
80
|
+
activity metrics, and branded markdown reports.
|
|
81
|
+
- **Hardened benchmark and skill security edges.** SWE verification commands
|
|
82
|
+
are shape-validated before execution, benchmark discovery requires explicit
|
|
83
|
+
network opt-in, run IDs avoid clock collisions, runtime overrides restore
|
|
84
|
+
after setup failures, and active-skill deactivation failures now surface
|
|
85
|
+
instead of being swallowed. Explicitly invoked skills stay active across
|
|
86
|
+
later turns through a compact reminder until stopped by name or
|
|
87
|
+
"normal mode".
|
|
88
|
+
|
|
89
|
+
Upgrade with `pythinker update`, `pip install --upgrade pythinker-code==0.57.0`, or use the native installer for your platform from the [Releases page](https://github.com/Pythoughts-labs/pythinker-code/releases/latest).
|
|
90
|
+
|
|
18
91
|
## 0.56.0 (2026-07-02)
|
|
19
92
|
|
|
20
93
|
- **Windows shell UI recovers from mid-session console blanking.** The TUI's
|
|
@@ -127,7 +127,7 @@ Default to `ImplementAndJudge` for non-trivial scoped edits (see §4.4); reserve
|
|
|
127
127
|
|
|
128
128
|
**Background shell** (root agent only). Launch long-running commands via `Shell` with `run_in_background=true` and a short `description`; the system notifies you at terminal states. `TaskList` re-enumerates active tasks (especially after context compaction); `TaskOutput` gives non-blocking snapshots (`block=true` only to intentionally wait); `TaskStop` cancels. After starting a background task, default to returning control to the user. The only task-management slash command for users is `/task` — never invent subcommands like `/task list` or `/tasks`. Subagents and sessions without these tools must not assume background-task control.
|
|
129
129
|
|
|
130
|
-
**Skills (`ReadSkill`).** Load a skill's exact instructions before applying its workflow — mandatory for `review-pr`, `diagnose-ci-failures`, `fix-errors`, `implement-specs`, `spec-driven-implementation`, `check-impl-against-spec`, `resolve-merge-conflicts`, and `create-pr`. Read skill details only when needed, to conserve context. Catalog and scope precedence in §12.
|
|
130
|
+
**Skills (`ReadSkill`).** Load a skill's exact instructions before applying its workflow — mandatory for `review-pr`, `diagnose-ci-failures`, `fix-errors`, `implement-specs`, `spec-driven-implementation`, `check-impl-against-spec`, `resolve-merge-conflicts`, and `create-pr`. If the user explicitly invokes or names a skill as an active mode, keep applying that loaded skill until they ask to stop it or return to normal mode. Read skill details only when needed, to conserve context. Catalog and scope precedence in §12.
|
|
131
131
|
|
|
132
132
|
**Inline `/command` references.** Slash commands execute only as their own message starting with `/`. A `/command` or `/skill:<name>` mentioned mid-message did not auto-run, but it still expresses intent — act on it rather than leading your reply by reporting it as failed. For `/plan`, call `EnterPlanMode` (a real tool in your toolset, not just prose); for `/goal`, pursue the described objective until it is verifiably done; for `/skill:<name>`, load it via `ReadSkill` and apply it; for other guidance commands, apply the equivalent guidance yourself. Mention invoking the real command only when genuinely needed. Never silently drop such a reference.
|
|
133
133
|
|
|
@@ -255,8 +255,8 @@ Precedence per §2. `README`/`README.md` files are optional supplementary contex
|
|
|
255
255
|
|
|
256
256
|
## 12. Skills
|
|
257
257
|
|
|
258
|
-
Skills are reusable, self-contained capability directories, each with a `SKILL.md` of instructions, examples, scripts, and reference material — specialized domain knowledge, workflow patterns, pre-configured tool chains, and templates.
|
|
258
|
+
Skills are reusable, self-contained capability directories, each with a `SKILL.md` of instructions, examples, scripts, and reference material — specialized domain knowledge, workflow patterns, pre-configured tool chains, and templates. When scopes define the same name, the more specific wins: **Project › User › Extra › Built-in.**
|
|
259
259
|
|
|
260
260
|
${PYTHINKER_SKILLS}
|
|
261
261
|
|
|
262
|
-
Identify the skills relevant to the current task and read their `SKILL.md` before applying the workflow (§5). If a skill `<name>` has a companion `<name>-local`, treat it as local project specialization applied after the core skill. Read skill details only when needed, to conserve the context window.
|
|
262
|
+
Identify the skills relevant to the current task and read their `SKILL.md` before applying the workflow (§5). If a skill `<name>` has a companion `<name>-local`, treat it as local project specialization applied after the core skill. Read skill details only when needed, to conserve the context window.
|